/*
Author: Shadow Themes
Author URL: https://shadow-themes.com
Name: cinematicart Photography
Version: 1.0
License: Themeforest

-----------------
Table of Contents
-----------------
01. GENERAL
    1.1 - Grid
    1.2 - BrickWall Styles
    1.3 - Disable Selection
    1.4 - Spotlight

02. TYPOGRAPHY

03. FORMS & FIELDS

04. HEADER
    4.1 - General
    4.2 - Simple Menu
    4.3 - Fullscreen Menu

05. CONTENT

06. FOOTER

07. ALBUMS LISTING
    7.1 - General
    7.2 - Galleries Navigation
    7.3 - GL Carousel Gallery
    7.4 - GL Roll Gallery
    7.5 - GL Slider
    7.6 - Flat Carousel
    7.7 - Flat Grid

08. ALBUM POST
    8.1 - General
    8.2 - Adjusted Grid Gallery
    8.3 - Bricks Grid Gallery
    8.4 - Masonry Grid Gallery
    8.5 - Justified Grid Gallery
    8.6 - Next Album
    8.7 - Fullscreen Albums Navigation

09. ELEMENTS
    9.1 - General
    9.2 - CTA
    9.3 - Price Item
    9.4 - Toggles
    9.5 - Counter
    9.6 - Grid Gallery
    9.7 - Before After
    9.8 - Team Carousel
    9.9 - Testimonials

10. WIDGETS

11. RIGHT CLICK PROTECTION MESSAGE

12. PRELOADER

13. BACK TO TOP

14. INTERRACTIVE CURSOR
    14.1 - General
    14.2 - Scroll Cursor
    14.3 - Cursor States

15. LAZY LOADING

16. HOVER STATES
    15.1 - Typography
    15.2 - Forms and Fields
    15.3 - Header
    15.4 - Footer
    15.5 - Works Listing
    15.6 - Album Post
    15.7 - Elements
    15.8 - Widgets
    15.9 - Back 2 Top
   15.10 - PhotoSwipe UI

17. ANIMATIONS

-------------------------------------- */

/* 01. GENERAL
   ----------- */
* {
   box-sizing: border-box;
   outline: none;
}
body,
html {
   padding: 0;
   margin: 0;
   min-height: 100%;
   overscroll-behavior: none;
   overflow-x: hidden;
   max-width: 100vw;
}

body {
    background: var(--cinematicart-s-bg-body);
    color: var(--cinematicart-s-content);
    font-family: var(--cinematicart-t-content-ff);
    font-size: var(--cinematicart-t-content-fs);
    line-height: var(--cinematicart-t-content-lh);
    font-weight: var(--cinematicart-t-content-fw);
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}
body.is-init {
	opacity: 1;
}
body.cinematicart-unload {
    pointer-events: none;
}
body.is-loaded:not(.is-locked) {
	pointer-events: auto;
}
body.is-locked,
body.is-locked * {
	pointer-events: none;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}
.pswp {
    display: none;
}
.pswp.pswp--open {
    display: block;
}

/* --- Grid --- */
section.cinematicart-section.cinematicart-section-no-spacing,
.cinematicart-container section.cinematicart-section:last-child {
	margin-bottom: 0;
}
section.cinematicart-section {
	margin-bottom: var(--cinematicart-section-gap);
	display: block;
	width: 100%;
}
section.cinematicart-section.cinematicart-section-grid-spacing {
	margin-bottom: var(--cinematicart-grid-gap);
}

.cinematicart-grid {
    display: grid;
    grid-column-gap: var(--cinematicart-grid-gap);
    grid-row-gap: var(--cinematicart-grid-gap);
    max-width: 100%;
}
.cinematicart-grid.cinematicart-grid-small-gap {
    grid-column-gap: var(--cinematicart-grid-small-gap);
    grid-row-gap: var(--cinematicart-grid-small-gap);
}
.cinematicart-grid--2cols {
    grid-template-columns: repeat(2, 1fr);
}
.cinematicart-grid--3cols {
    grid-template-columns: repeat(3, 1fr);
}
.cinematicart-grid--4cols {
    grid-template-columns: repeat(4, 1fr);
}
.cinematicart-grid--33-66 {
    grid-template-columns: 1fr 2fr;
    grid-auto-columns: minmax(33%, 66%);
}
.cinematicart-grid--66-33 {
    grid-template-columns: 2fr 1fr;
}

.cinematicart-grid--2cols > * {
    max-width: calc(var(--cinematicart-container-width) * 0.5 - 0.5 * var(--cinematicart-grid-gap));
}
.cinematicart-grid--4cols > * {
    max-width: calc(var(--cinematicart-container-width) * 0.25 - 0.5 * var(--cinematicart-grid-gap));
}
.cinematicart-grid--3cols > *,
.cinematicart-grid--66-33 > :nth-child(2n),
.cinematicart-grid--33-66 > :nth-child(2n+1) {
    max-width: calc(var(--cinematicart-container-width) * 0.3333 - 0.5 * var(--cinematicart-grid-gap));
}
.cinematicart-grid--66-33 > :nth-child(2n+1),
.cinematicart-grid--33-66 > :nth-child(2n) {
    max-width: calc(var(--cinematicart-container-width) * 0.6666 - 0.5 * var(--cinematicart-grid-gap));
}

.cinematicart-offset-left--25 {
    padding-left: calc(25% + var(--cinematicart-grid-gap) * 0.5);
}
.cinematicart-offset-left--33 {
    padding-left: calc(33.33% + var(--cinematicart-grid-gap) * 0.5);
}
.cinematicart-offset-left--50 {
    padding-left: calc(50% + var(--cinematicart-grid-gap) * 0.5);
}
.cinematicart-offset-left--66 {
    padding-left: calc(66.66% + var(--cinematicart-grid-gap) * 0.5);
}

.cinematicart-offset-right--25 {
    padding-right: calc(25% + var(--cinematicart-grid-gap) * 0.5);
}
.cinematicart-offset-right--33 {
    padding-right: calc(33.33% + var(--cinematicart-grid-gap) * 0.5);
}
.cinematicart-offset-right--50 {
    padding-right: calc(50% + var(--cinematicart-grid-gap) * 0.5);
}
.cinematicart-offset-right--66 {
    padding-right: calc(66.66% + var(--cinematicart-grid-gap) * 0.5);
}

.cinematicart-bottom-gap--none,
section.cinematicart-bottom-gap--none,
div.cinematicart-bottom-gap--none {
    margin-bottom: 0px;
}
.cinematicart-bottom-gap--small,
section.cinematicart-bottom-gap--small,
div.cinematicart-bottom-gap--small {
    margin-bottom: var(--cinematicart-bottom-gap-small);
}
.cinematicart-bottom-gap--medium,
section.cinematicart-bottom-gap--medium,
div.cinematicart-bottom-gap--medium {
    margin-bottom: var(--cinematicart-bottom-gap-medium);
}
.cinematicart-bottom-gap--large,
section.cinematicart-bottom-gap--large,
div.cinematicart-bottom-gap--large {
    margin-bottom: var(--cinematicart-bottom-gap-large);
}

/* --- BrickWall Styles --- */
.brickwall-grid {
	position: relative;
}
.brickwall-grid > div {
	position: absolute;
	left: 0;
	top: 0;
}
.brickwall-grid > div.is-appended,
.brickwall-grid > div.is-prepended {
	transform: scale(0);
}
.brickwall-grid:not(.animation--none) > div.brickwall-item {
	transition: transform 0.4s, opacity 0.4s;
	will-change: transform, opacity;
}
.brickwall-grid.animation--slow > div.brickwall-item {
	transition: transform 0.8s, opacity 0.8s;
	will-change: transform, opacity;
}

/* --- Disable Selection --- */
a img,
.main-menu li,
.main-menu a,
.cinematicart-gallery-nav,
.cinematicart-no-selection,
.cinematicart-no-selection > *,
.cinematicart-gl-container-wrap,
.cinematicart-gl-gallery-item__content,
.cinematicart-gallery-item__content,
.cinematicart-toggles-item--title,
.cinematicart-fixed-album-title,
header#cinematicart-header a {
	-webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* --- Spotlight --- */
.cinematicart-spotlight {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
    z-index: -1;
    overflow: hidden;
}
.cinematicart-spotlight::before,
.cinematicart-spotlight::after {
    content: '';
    position: absolute;
    left: -50vw;
    width: 200vw;
    height: 200vh;
    display: block;
}
.cinematicart-spotlight::before {
    opacity: 0.07;
    top: -50vh;
    background: var(--cinematicart-s-spotlight01);
	background-size: 100% 100%;
    transform: translate(0vw, -50vh);
}
.cinematicart-spotlight::after {
    opacity: 0.05;
    bottom: -50vh;
    background: var(--cinematicart-s-spotlight02);
	background-size: 100% 100%;
    transform: translate(0vw, 50vh);
}

/* 02. TYPOGRAPHY
   -------------- */
p {
	margin: 0 0 var(--cinematicart-t-content-lh) 0;
}
p:last-child {
	margin: 0;
}
p:empty {
	display: none;
}
a {
    position: relative;
}
a,
a:focus,
a:visited {
    text-decoration: none;
    color: var(--cinematicart-s-link);
}
ol,
ul {
	padding: 0 0 0 17px;
	margin: 0 0 var(--cinematicart-t-content-lh) 0;
}
ol li,
ul li {
	padding: 0 0 0 13px;
}
strong {
   font-weight: var(--cinematicart-t-content-strong-fw);
}
sup {
	font-size: 0.5em;
	margin-right: 3px;
}
cite {
	text-align: right;
	display: block;
	font-style: normal;
}

h1, h2, h3, h4, h5, h6, .cinematicart-caption {
    font-family: var(--cinematicart-t-heading-ff);
    font-weight: var(--cinematicart-t-heading-fw);
    line-height: var(--cinematicart-t-heading-lh);
    margin: 0 0 var(--cinematicart-t-content-lh) 0;
    color: var(--cinematicart-s-heading);
}
h1:last-child, h2:last-child, h3:last-child, h4:last-child, h5:last-child, h6:last-child {
    margin-bottom: 0;
}
h1 span, h2 span, h3 span, h4 span, h5 span, h6 span {
	color: var(--cinematicart-s-heading);
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
	color: var(--cinematicart-s-heading);
}
h1 sup, h2 sup, h3 sup, h4 sup, h5 sup, h6 sup {
	color: var(--cinematicart-s-heading);
    opacity: var(--cinematicart-o-heading-sup);
}
.cinematicart-caption {
    font-size: var(--cinematicart-t-caption-fs);
    margin: 0;
}
.cinematicart-caption.cinematicart-caption-large,
h1.cinematicart-page-title {
    font-size: var(--cinematicart-t-title-fs);
}
h1 {
    font-size: var(--cinematicart-t-h1-fs);
    margin: 0 0 var(--cinematicart-t-h1-spacing) 0;
}
h2 {
    font-size: var(--cinematicart-t-h2-fs);
    margin: 0 0 var(--cinematicart-t-h2-spacing) 0;
}
h3 {
    font-size: var(--cinematicart-t-h3-fs);
    margin: 0 0 var(--cinematicart-t-h3-spacing) 0;
}
h4 {
    font-size: var(--cinematicart-t-h4-fs);
    margin: 0 0 var(--cinematicart-t-h4-spacing) 0;
}
h5 {
    font-size: var(--cinematicart-t-h5-fs);
    margin: 0 0 var(--cinematicart-t-h5-spacing) 0;
}
h6 {
    font-size: var(--cinematicart-t-h6-fs);
    margin: 0 0 var(--cinematicart-t-h6-spacing) 0;
}
.cinematicart-underline {
    position: relative;
    display: inline-block;
}
.cinematicart-underline::after {
    content: '';
    position: absolute;
    bottom: -2px;
    height: 2px;
    width: 100%;
    background: var(--cinematicart-s-heading);
    display: block;
    transition: transform 0.3s;
    will-change: transition;
    transform-origin: 50% 50%;
}
.cinematicart-meta {
    font-size: var(--cinematicart-t-meta-fs);
    color: var(--cinematicart-s-meta);
    line-height: 1.7;
}

/* --- Format --- */
.align-left {
    text-align: left;
}
.align-center {
    text-align: center;
}
.align-right {
    text-align: right;
}
.align-center img {
	margin-left: auto;
	margin-right: auto;
}
.align-right img {
	margin-left: auto;
}

/* 03. FORMS & FIELDS
   ------------------ */
select {
    max-width: 100%;
}
select option {
    white-space: normal;
}
textarea {
    resize: none;
}
input,
textarea {
    width: 100%;
    display: block;
    font-family: var(--cinematicart-t-content-ff);
    font-size: var(--cinematicart-t-input-fs);
    font-weight: var(--cinematicart-t-content-fw);
    line-height: 1.2em;
    color: var(--cinematicart-s-input-text);
    border: 2px solid var(--cinematicart-s-input-border);
    background: var(--cinematicart-s-input-background);
    margin: 0 0 var(--cinematicart-t-content-lh) 0;
    transition: border 0.3s, color 0.3s, background-color 0.3s;
    padding: 14px 16px 16px 16px;
}
input:focus,
textarea:focus {
    color: var(--cinematicart-s-input-focus-text);
    background: var(--cinematicart-s-input-focus-background);
    border-color: var(--cinematicart-s-input-focus-border);
}
textarea {
    height: 197px;
}
.cinematicart-input-wrap {
    margin: 0 0 var(--cinematicart-t-content-lh) 0;
    position: relative;
}
.cinematicart-input-wrap input,
.cinematicart-input-wrap textarea {
    margin: 0;
    position: relative;
    z-index: 3;
}
.cinematicart-input-wrap span {
    pointer-events: none;
    position: absolute;
    left: 17px;
    top: 16px;
    will-change: transform;
    transition: color 0.3s, transform 0.3s, font-size 0.3s;
    transform-origin: 0 0;
    color: var(--cinematicart-s-input-text);
    font-size: var(--cinematicart-t-input-fs);
    line-height: 1.2em;
    z-index: 5;
}
.cinematicart-input-wrap span::before {
    content: '';
    width: calc(100% + 8px);
    height: 3px;
    display: block;
    position: absolute;
    left: -4px;
    bottom: 5px;
    z-index: -1;
    background: var(--cinematicart-s-input-background);
    transition: background-color 0.3s, opacity 0.3s;
    will-change: opacity;
    opacity: 0;
}
.cinematicart-input-wrap.is-focus span {
    color: var(--cinematicart-s-input-focus-text);
}
.cinematicart-input-wrap.is-focus span::before {
    background: var(--cinematicart-s-input-focus-background);
}
.cinematicart-input-wrap.is-valued span {
    transform: translate(-1px, -23px);
    font-size: 12px;
}
.cinematicart-input-wrap.is-valued span::before {
    opacity: 1;
}
.cinematicart-input-wrap.is-error input,
.cinematicart-input-wrap.is-error textarea {
    border-color: var(--cinematicart-s-input-border-error);
    color: var(--cinematicart-s-input-color-error);
}
.cinematicart-input-wrap.is-error span {
    color: var(--cinematicart-s-input-border-error);
}

input[type="button"],
input[type="reset"],
input[type="submit"],
button:not([class*='pswp']):not([class*='owl']),
a.cinematicart-button {
    transition: background-color 0.3s, border-color 0.3s, color 0.3s;
	display: inline-block;
    border-style: solid;
    border-width: 2px;
    border-color: var(--cinematicart-s-button-border);
    color: var(--cinematicart-s-button-text);
    background: var(--cinematicart-s-button-bg);
    padding: var(--cinematicart-button-padding);
    font-size: var(--cinematicart-t-button-fs);
    font-family: var(--cinematicart-t-heading-ff);
    font-weight: var(--cinematicart-t-heading-fw);
    line-height: 1em;
    -webkit-appearance: none;
	cursor: pointer;
	width: auto;
    text-align: center;
}
a.cinematicart-button.is-fullwidth {
    width: 100%;
}
button.pswp__button {
    transition: transform 0.12s;
}

/* Contact Form */
.cinematicart-contact-form {
    transition: transform 0.3s, opacity 0.3s;
    will-change: transform, opacity;
}
.cinematicart-contact-form::after {
    content: '';
    width: 72px;
    height: 72px;
    border: 3px solid transparent;
    border-top-color: var(--cinematicart-s-heading);
    border-radius: 50%;
    animation: cinematicart_spin 1s infinite;
    pointer-events: none;
    position: absolute;
    z-index: 5;
    top: calc(50% - 36px);
    left: calc(50% - 36px);
    display: block;
    will-change: transform, opacity;
    opacity: 0;
    transition: opacity 0.3s;
}
.cinematicart-contact-form.is-busy::after {
    opacity: 1;
}
.cinematicart-contact-form.is-busy {
    opacity: 0.8;
    transform: scale(0.9);
    pointer-events: none;
}
.cinematicart-contact-form.is-error {
    animation: cinematicart_shake 0.3s linear;
}
.cinematicart-contact-form__footer {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
}
.cinematicart-contact-form__footer input[type="submit"] {
    margin: 0;
}
.cinematicart-contact-form__response {
    padding-left: 40px;
    font-size: var(--cinematicart-t-meta-fs);
    color: var(--cinematicart-s-heading);
}

/* 04. HEADER
   ---------- */
header#cinematicart-header {
    display: block;
	width: 100%;
	position: relative;
	z-index: 111;
   
}
header#cinematicart-header.is-sticky {
    position: fixed;
    left: 0;
    top: 0;
}
.cinematicart-header-inner {
    padding: var(--cinematicart-header-spacing);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}
.cinematicart-header-inner > div {
    position: relative;
    z-index: 3;
}
.cinematicart-logo {
    display: block;
    pointer-events: all;
}
.cinematicart-whatsapp {
    display: block;
    pointer-events: all;
}
/* --- Simple Menu --- */
nav.cinematicart-simple-nav .main-menu {
    display: flex;
    padding: 0;
    margin: 0;
}
nav.cinematicart-simple-nav .main-menu li {
    display: block;
    position: relative;
    list-style: none;
    margin-left: 20px;
    padding: 0;
}
nav.cinematicart-simple-nav .main-menu > li > a {
    font-size: var(--cinematicart-t-simple-menu-fs);
    line-height: 1em;
    color: var(--cinematicart-s-menu-link);
    padding: 8px 20px;
}
nav.cinematicart-simple-nav .main-menu li a {
    display: block;
    transition: color 0.3s;
    pointer-events: auto;
}
nav.cinematicart-simple-nav .main-menu li.current-menu-parent > a,
nav.cinematicart-simple-nav .main-menu li.current-menu-item > a,
nav.cinematicart-simple-nav .main-menu li.current-menu-ancestor > a {
    color: var(--cinematicart-s-menu-link-active);
}
nav.cinematicart-simple-nav .main-menu > li.menu-item-has-children::after {
    content: '';
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 8px 8px 8px;
    border-color: transparent transparent var(--cinematicart-s-sub-menu-bg) transparent;
    position: absolute;
    bottom: -10px;
    left: 50%;
    transition: transform 0.3s, opacity 0.3s;
    pointer-events: none;
    opacity: 0;
    transform: scale(1, 1.1) translateX(-8px);
    transform-origin: 50% 100%;
}
nav.cinematicart-simple-nav .sub-menu {
    position: absolute;
    left: 0;
    top: calc(100% + 10px);
    background: var(--cinematicart-s-sub-menu-bg);
    width: 220px;
    padding: 9px 0px 14px 0px;
    transition: transform 0.3s, opacity 0.3s;
    will-change: opacity, transform;
    pointer-events: none;
    opacity: 0;
    transform: scale(1, 1.1);
    transform-origin: 50% 0%;
}
nav.cinematicart-simple-nav .main-menu > li > .sub-menu.cinematicart-menu-offset {
    left: auto;
    right: 0;
}
nav.cinematicart-simple-nav li.menu-item-has-children:hover::after,
nav.cinematicart-simple-nav li.menu-item-has-children:hover > .sub-menu {
    opacity: 1;
    transform: scale(1, 1);
    pointer-events: all;
}
nav.cinematicart-simple-nav li.menu-item-has-children:hover::after {
    transform: scale(1, 1) translateX(-8px);
}
nav.cinematicart-simple-nav .sub-menu::before {
    content: '';
    width: 100%;
    height: 10px;
    top: -10px;
    display: block;
    position: absolute;
}
nav.cinematicart-simple-nav .sub-menu li {
    margin: 0;
}
nav.cinematicart-simple-nav .sub-menu li a {
    font-size: var(--cinematicart-t-sub-menu-fs);
    line-height: 1em;
    color: var(--cinematicart-s-sub-menu-link);
    padding: 13px 20px;
    pointer-events: inherit;
    transition: color 0.3s;
}
nav.cinematicart-simple-nav .sub-menu > li.menu-item-has-children > a::after {
    content: '+';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-8px);
    font-size: 18px;
    line-height: 1em;
}
nav.cinematicart-simple-nav .sub-menu .sub-menu {
    top: -10px;
    left: calc(100% + 4px);
    transform: scale(1.05, 1);
    transform-origin: 0% 50%;
}
nav.cinematicart-simple-nav .sub-menu .sub-menu.cinematicart-menu-offset {
    right: calc(100% + 4px);
    left: auto;
}
nav.cinematicart-simple-nav .sub-menu .sub-menu::before {
    width: 4px;
    height: 100%;
    left: -4px;
    top: 0;
}
nav.cinematicart-simple-nav .sub-menu .sub-menu.cinematicart-menu-offset::before {
    left: auto;
    right: -4px;
}
nav.cinematicart-simple-nav .sub-menu li.current-menu-parent > a,
nav.cinematicart-simple-nav .sub-menu li.current-menu-item > a,
nav.cinematicart-simple-nav .sub-menu li.current-menu-ancestor > a {
    color: var(--cinematicart-s-sub-menu-link-active);
}

/* --- Fullscreen Menu --- */
.cinematicart-menu-toggler {
    width: 44px;
    height: 44px;
    display: block;
    position: relative;
    margin-right: -6px;
    pointer-events: all;
    transition: transform 0.12s;
}
.cinematicart-mobile-menu-toggler {
    display: none;
}
.cinematicart-menu-toggler::before {
    content: '';
    position: absolute;
    left: -10px;
    top: -10px;
    right: -10px;
    bottom: -10px;
    display: block;
}
.cinematicart-menu-toggler i {
    width: 32px;
    height: 14px;
    position: absolute;
    left: 6px;
    top: 15px;
    display: block;
}
.cinematicart-menu-toggler i::before,
.cinematicart-menu-toggler i::after {
    content: '';
    display: block;
    background: var(--cinematicart-s-menu-link);
    height: 3px;
    border-radius: 2px;
    position: absolute;
    transition: transform 0.3s, background-color 0.3s;
    will-change: transform;
    transform-origin: 0% 50%;
}
.cinematicart-menu-toggler i::before {
    width: 100%;
    left: 0;
    top: 0;
}
.cinematicart-menu-toggler i::after {
    width: 28px;
    right: 0;
    bottom: 0;
}
body.cinematicart-show-menu .cinematicart-menu-toggler i::before {
    transform: translate(5px, -6px) rotate(45deg);
}
body.cinematicart-show-menu .cinematicart-menu-toggler i::after {
    transform: translate(1px, 5px) rotate(-45deg) scale(1.14, 1);
}

.cinematicart-fullscreen-menu-wrap {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 101;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.5s;
    will-change: opacity;
    pointer-events: none;
    opacity: 0;
    overflow: hidden;
    background: var(--cinematicart-s-bg-body);
}
.cinematicart-mobile-menu-wrap {
    display: none;
}
.cinematicart-show-menu .cinematicart-fullscreen-menu-wrap {
    opacity: 1;
    pointer-events: all;
}
.cinematicart-menu-overlay {
    background: var(--cinematicart-s-bg-body);
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 5;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav {
    overflow-y: scroll;
    max-width: var(--cinematicart-container-width);
    min-width: 400px;
    max-height: 100vh;
    padding: var(--cinematicart-container-top-spacing) 40px;
    position: relative;
    z-index: 7;
    transition: transform 0.5s;
    will-change: transform;
    transform: scale(0.85);
    scrollbar-width: none;
}
body.cinematicart-show-menu .cinematicart-fullscreen-menu-wrap nav.cinematicart-nav {
    transform: scale(1);
}
body.cinematicart-show-menu.cinematicart-unload .cinematicart-fullscreen-menu-wrap nav.cinematicart-nav {
    transform: scale(1.2);
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav::-webkit-scrollbar {
    width: 0;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav li {
    list-style: none;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav sup {
    margin-right: 14px;
    opacity: 0.25;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.main-menu {
    padding: 0;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.main-menu li {
    padding: 0;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav > ul.main-menu > li {
    transition: transform 0.3s, opacity 0.3s;
    will-change: transform, opacity;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav > ul.main-menu > li.is-hidden {
    opacity: 0;
    transform: scale(0.9);
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.main-menu a {
    transition: color 0.3s;
    display: block;
    color: var(--cinematicart-s-menu-link);
    position: relative;
    overflow: hidden;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.main-menu > li.menu-item-has-children > a {
    padding-right: 50px;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.main-menu > li.menu-item-has-children > a::before,
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.main-menu > li.menu-item-has-children > a::after {
    content: '';
    width: 32px;
    height: 4px;
    display: block;
    background: var(--cinematicart-s-menu-link);
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: 5px;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.sub-menu > li.menu-item-has-children > a::before,
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.sub-menu > li.menu-item-has-children > a::after {
    content: '';
    width: 16px;
    height: 2px;
    display: block;
    background: var(--cinematicart-s-sub-menu-link);
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: -3px;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav li.menu-item-has-children > a::after {
    transition: opacity 0.3s, transform 0.3s;
    will-change: opacity, transform;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav li.menu-item-has-children > a::after {
    transform: rotate(90deg);
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav li.menu-item-has-children.is-open > a::after {
    transform: rotate(90deg) translateX(200%);
    opacity: 0;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.main-menu > li {
    margin-bottom: 26px;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.main-menu > li > a {
    font-family: var(--cinematicart-t-heading-ff);
    font-weight: var(--cinematicart-t-heading-fw);
    font-size: var(--cinematicart-t-fullscreen-menu-fs);
    line-height: 1.2em;
    padding: 11px 0;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.sub-menu {
    padding: 0 40px 0 55px;
    margin: 0;
    position: relative;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.sub-menu::after {
    content: '';
    display: block;
    background: var(--cinematicart-s-menu-link);
    width: 4px;
    height: 100%;
    position: absolute;
    right: 14px;
    top: 0;
    opacity: 0.5;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.sub-menu ul.sub-menu::after {
    width: 2px;
    right: 7px;
    background: var(--cinematicart-s-sub-menu-link);
    opacity: 0.3;
    transition: opacity 0.3s;
    will-change: opacity;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.sub-menu a {
    font-size: var(--cinematicart-t-fullscreen-sub-menu-fs);
    line-height: 1.8;
    font-family: var(--cinematicart-t-content-ff);
    padding: 5px 0 6px 0;
    color: var(--cinematicart-s-sub-menu-link);
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.sub-menu ul.sub-menu {
    padding: 0 25px 10px 25px;
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav .main-menu li.current-menu-parent > a,
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav .main-menu li.current-menu-item > a,
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav .main-menu li.current-menu-ancestor > a {
    color: var(--cinematicart-s-menu-link-active);
}
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav .sub-menu li.current-menu-parent > a,
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav .sub-menu li.current-menu-item > a,
.cinematicart-fullscreen-menu-wrap nav.cinematicart-nav .sub-menu li.current-menu-ancestor > a {
    color: var(--cinematicart-s-sub-menu-link-active);
}

/* --- Mobile Menu --- */
.cinematicart-mobile-menu-wrap {
    display: none;
}

/* 05. CONTENT
   ----------- */
.cinematicart-main {
    position: relative;
    z-index: 2;
    overflow: hidden;
}
.cinematicart-main.cinematicart-min-content {
    display: flex;
    align-items: center;
}
.cinematicart-container {
    display: block;
    max-width: var(--cinematicart-container-width);
    margin: 0 auto;
    padding: var(--cinematicart-container-top-spacing) 0 var(--cinematicart-container-bottom-spacing) 0;
    transition: transform 0.3s;
    will-change: transform;
}
body.cinematicart-show-menu .cinematicart-container,
body.cinematicart-show-menu .cinematicart-page-background {
    transform: scale(1.1);
}
.cinematicart-container.half-top-spacing {
    padding-top: calc(0.5 * var(--cinematicart-container-top-spacing));
}
.cinematicart-container.no-top-spacing {
    padding-top: 0;
}
.cinematicart-container.half-bottom-spacing {
    padding-bottom: calc(0.5 * var(--cinematicart-container-bottom-spacing));
}
.cinematicart-container.no-bottom-spacing {
    padding-bottom: 0;
}
.cinematicart-page-background-wrap,
.cinematicart-page-background {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    pointer-events: none;
}
.cinematicart-page-background {
    background-position: center;
    background-size: cover;
    will-change: transform;
    transition: transform 0.5s;
}
.cinematicart-page-background.is-fixed {
    position: fixed;
}
.cinematicart-page-background:not(.is-fixed)::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
    background: var(--cinematicart-s-overlay-gradient);
    z-index: 3;
}
.cinematicart-page-background video {
    position: absolute;
    left: 50%;
    top: 50%;
    height: 100%;
    width: 100%;
    object-fit: cover;
    display: block;
    transform: translate(-50%,-50%);
}
.cinematicart-data-background {
    background: no-repeat center;
    background-size: cover;
}
.cinematicart-page-title,
.cinematicart-page-subtitle {
    margin: 0;
}
.cinematicart-page-intro {
    padding-top: var(--cinematicart-bottom-gap-large);
}

/* 06. FOOTER
   ---------- */
#cinematicart-footer {
    position: relative;
    width: 100%;
    z-index: 33;
}
#cinematicart-footer.is-sticky {
    position: fixed;
    left: 0;
    bottom: 0;
    pointer-events: none;
}
#cinematicart-footer.is-sticky a {
    pointer-events: all;
}
#cinematicart-footer .cinematicart-footer-inner {
    display: flex;
    justify-content: space-between;
    padding: var(--cinematicart-footer-spacing);
    font-size: var(--cinematicart-t-footer-fs);
    line-height: 1.7em;
}
.cinematicart-copyright {
    color: var(--cinematicart-s-footer-copyright);
}
.cinematicart-socials-list {
    padding: 0;
    margin: 0;
    display: flex;
}
.cinematicart-socials-list li {
    margin: 0 40px 0 0;
    padding: 0;
    list-style: none;
}
.cinematicart-socials-list li:last-child {
    margin: 0;
}
.cinematicart-socials-list a {
    display: inline-block;
    transition: transform 0.12s;
    will-change: transform;
    position: relative;
}
.cinematicart-socials-list a::before {
    content: '';
    position: absolute;
    left: -10px;
    top: -10px;
    right: -10px;
    bottom: -10px;
}
#cinematicart-footer a {
    color: var(--cinematicart-s-footer-link);
}

/* 07. ALBUMS LISTING
   ------------------ */
.cinematicart-main > canvas {
    opacity: 0;
    will-change: opacity, transform;
    transition: opacity 0.5s, transform 0.5s;
}
.cinematicart-main > canvas.is-loaded {
    opacity: 1;
}
.cinematicart-gl-container-wrap.is-loaded .cinematicart-gl-container {
    opacity: 1;
}
.cinematicart-gl-container {
    transition: opacity 0.5s;
    will-change: opacity;
    opacity: 0;
}
.cinematicart-gl-container-wrap::after {
    content: '';
    width: 64px;
    height: 64px;
    display: block;
    position: absolute;
    top: calc(50% - 32px);
    left: calc(50% - 32px);
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: var(--cinematicart-s-content);
    opacity: 0;
    will-change: opacity, transform;
    transition: opacity 0.2s;
}
.cinematicart-gl-container-wrap:not(.is-loaded)::after {
    opacity: 1;
    animation: cinematicart_spin 1s infinite;
}

/* --- Galleries Navigation --- */
.cinematicart-gallery-nav {
    width: 64px;
    height: 64px;
    display: block;
    position: absolute;
    top: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 7;
    opacity: 0.7;
    will-change: opacity;
    transition: opacity 0.3s, border-color 0.3s, transform 0.12s;
    pointer-events: all;
    margin-top: -32px;
    background: #00000040;
    border-radius: 50%;
}
.cinematicart-gallery-nav::after {
    content: '';
    width: calc(100% - 4px);
    height: calc(100% - 4px);
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    border-radius: 50%;
    border: 2px solid var(--cinematicart-s-heading);
    transition: opacity 0.3s, transform 0.3s;
    will-change: opacity, transform;
    transform: scale(1);
}
.cinematicart-gallery-nav__prev {
    left: 50px;
}
.cinematicart-gallery-nav__prev::before {
    content: '\f341';
    transform: translateX(-1px);
}
.cinematicart-gallery-nav__next {
    right: 50px;
}
.cinematicart-gallery-nav__next::before {
    content: '\f345';
    transform: translateX(1px);
}
.cinematicart-gallery-nav::before {
    font-family: 'dashicons';
	color: var(--cinematicart-s-heading);
	font-size: 24px;
	line-height: 1;
}
.cinematicart-gallery-nav.is-disabled {
    opacity: 0.25;
    pointer-events: none;
}
.cinematicart-gallery-nav span {
    position: absolute;
    display: block;
    white-space: nowrap;
    font-size: var(--cinematicart-t-meta-fs);
    color: var(--cinematicart-s-heading);
    pointer-events: none;
    will-change: transform, opacity;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.3s, transform 0.3s;
    text-shadow: 0 0 8px #00000080;
}
.cinematicart-gallery-nav__prev span {
    left: 100%;
    padding-left: 20px;
}
.cinematicart-gallery-nav__next span {
    right: 100%;
    padding-right: 20px;
}

/* --- GL Carousel Gallery --- */
.cinematicart-gl-carousel-canvas {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 0;
    pointer-events: none;
}
.cinematicart-gl-carousel-gallery-wrap {
    position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	display: block;
	overflow: hidden;
	cursor: grab;
    z-index: 4;
}
.cinematicart-gl-carousel-gallery-wrap::before {
    content: '';
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	display: block;
	background: linear-gradient(0deg, #000000a0 0%,#00000080 25%,#00000000 50%, #00000000 100%);
	z-index: 5;
	pointer-events: none;
}
.cinematicart-gl-carousel-gallery-wrap.is-grabbed {
	cursor: grabbing;
}
.cinematicart-gl-carousel-gallery {
    position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	display: flex;
	flex-wrap: nowrap;
	z-index: 7;
	padding-left: 25vw;
}
.cinematicart-gl-gallery-item {
    width: 50vw;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	position: relative;
	z-index: 7;
	pointer-events: none;
    padding-bottom: 120px;
    transition: opacity 0.5s;
    will-change: opacity;
    opacity: 0.4;
}
.cinematicart-gl-gallery-item.is-active {
    pointer-events: all;
    opacity: 1;
}
.cinematicart-gl-gallery-item a {
    cursor: pointer;
}
.cinematicart-gl-gallery-item__content {
    position: relative;
    transition: transform 1s;
    will-change: transform;
}
.cinematicart-gl-gallery-item__content > a {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
}
.cinematicart-gl-gallery__meta {
    margin: 0 0 8px 0;
    display: block;
    color: var(--cinematicart-s-heading);
    opacity: 0.75;
}
.cinematicart-gl-gallery__caption {
    display: block;
    width: 100%;
    text-align: center;
    font-size: var(--cinematicart-t-caption-fs);
    line-height: 1;
    margin: 0 0 4px 0;
    text-shadow: 0 0 12px #00000080;
}
.cinematicart-gl-gallery__caption sup {
    margin-right: 6px;
}
.cinematicart-gl-gallery__explore {
    display: inline-block;
    float: right;
    opacity: 0;
    color: var(--cinematicart-s-heading);
    transition: opacity 0.5s;
    will-change: opacity;
}
.is-active .cinematicart-gl-gallery__explore {
    opacity: 0.75;
}
.cinematicart-gl-gallery-item video {
    position: absolute;
    left: 0;
    top: 0;
    pointer-events: none;
    width: 1px;
    height: 1px;
    opacity: 0;
}

/* --- GL Roll Gallery --- */
.cinematicart-gl-roll-canvas {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 0;
    pointer-events: none;
}
.cinematicart-gl-roll-gallery-wrap {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    cursor: grabbing;
    z-index: 4;
}
.cinematicart-gl-roll-gallery-wrap.is-grabbed {
    cursor: grab;
}
.cinematicart-gl-roll-gallery-wrap::before {
    content: '';
    height: 100%;
    width: 100%;
    position: absolute;
    pointer-events: none;
    left: 0;
}
.cinematicart-gl-roll-gallery-wrap::before {
    top: 0;
    background: linear-gradient(0deg, #000000c0 0% #00000000 12.5%, #00000000 87.5% #000000c0 100%);
}
.cinematicart-gl-roll-gallery {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    min-height: 100%;
    /* padding-top: 5vh; */
    z-index: 3;
}
.cinematicart-gl-roll-gallery > div.cinematicart-gl-gallery-item {
    height: 50vh;
    padding: 0 60px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: calc(50vw + 120px);
}
.cinematicart-gl-roll-gallery .cinematicart-album-link {
    position: absolute;
    left: -40px;
    top: -40px;
    width: calc(100% + 80px);
    height: calc(100% + 80px);
    display: block;
    pointer-events: none;
}
.cinematicart-gl-roll-gallery .is-active .cinematicart-album-link {
    pointer-events: all;
}
.cinematicart-gl-roll-gallery .cinematicart-gl-gallery__caption {
    text-align: left;
}
.cinematicart-gl-roll-gallery .cinematicart-gl-gallery-item__content {
    transition: transform 1s;
    will-change: transform;
    position: relative;
}

.cinematicart-gl-roll-gallery-wrap .cinematicart-gallery-nav__prev {
    right: 138px;
    left: auto;
}
.cinematicart-gl-roll-gallery-wrap .cinematicart-gallery-nav__prev::before {
    content: "\f343";
    transform: translate(1px, -2px);
}
.cinematicart-gl-roll-gallery-wrap .cinematicart-gallery-nav__next {
    right: 50px;
}
.cinematicart-gl-roll-gallery-wrap .cinematicart-gallery-nav__next::before {
    content: "\f347";
    transform: translate(1px, 2px);
}
.cinematicart-gl-roll-gallery-wrap .cinematicart-gallery-nav span {
    left: 50%;
    right: auto;
}
.cinematicart-gl-roll-gallery-wrap .cinematicart-gallery-nav__prev span {
    padding: 0 0 20px 0;
    bottom: 100%;
    transform: translate(-50%, 10px);
}
.cinematicart-gl-roll-gallery-wrap .cinematicart-gallery-nav__next span {
    padding: 20px 0 0 0;
    top: 100%;
    transform: translate(-50%, -10px);
}

/* --- GL Slider --- */
.cinematicart-gl-slider-canvas {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 0;
    pointer-events: none;
}
.cinematicart-gl-slider-gallery-wrap {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    cursor: grab;
    z-index: 4;
}
.is-grabbed.cinematicart-gl-slider-gallery-wrap {
    cursor: grabbing;
}
.cinematicart-gl-slider-gallery {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
}
.cinematicart-gl-slider-gallery::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
    background: linear-gradient(0deg, #000000a0 0%,#00000080 25%,#00000000 50%, #00000000 100%);
}
.cinematicart-gl-slider-gallery > div {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    transition: opacity 1s;
    will-change: opacity;
    opacity: 0;
    z-index: 5;
}
.cinematicart-gl-slider-gallery > div.is-active {
    opacity: 1;
}
.cinematicart-gl-slider-gallery .cinematicart-gl-gallery__meta {
    color: var(--cinematicart-s-heading);
    opacity: 0.7;
}

/* --- Flat Carousel --- */
.cinematicart-carousel-gallery-wrap {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: fixed;
    left: 0;
    top: 0;
    cursor: grab;
    transition: transform 0.5s;
    will-change: transform;
}
.cinematicart-show-menu .cinematicart-carousel-gallery-wrap {
    transform: scale(1.1);
}
.cinematicart-carousel-gallery-wrap::before {
    content: '';
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	display: block;
	background: linear-gradient(0deg, #000000a0 0%,#00000080 25%,#00000000 50%, #00000000 100%);
	z-index: 2;
	pointer-events: none;
}
.cinematicart-carousel-gallery-wrap.is-grabbed {
    cursor: grabbing;
}
.cinematicart-carousel-gallery {
    display: flex;
    flex-wrap: nowrap;
    width: auto;
    min-width: 100%;
    align-items: center;
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    will-change: transform;
    z-index: 1;
}
.cinematicart-carousel-gallery > div {
    will-change: transform;
    transition: transform 0.5s;
    position: relative;
}
.cinematicart-carousel-gallery.has-zoomed > div:not(.is-zoomed) {
    transform: scale(0.9);
}
.cinematicart-carousel-gallery > div.is-active.is-zoomed {
    transform: scale(1.1);
}
.cinematicart-carousel-gallery > div.is-active {
    z-index: 3;
}
.cinematicart-carousel-gallery > div .cinematicart-gallery-item__content {
    display: none;
}
.cinematicart-carousel-gallery img,
.cinematicart-carousel-gallery video {
    height: 100%;
    width: auto;
    display: block;
    max-width: none;
    transition: opacity 0.5s;
    opacity: 0.5;
}
.cinematicart-carousel-gallery .is-active img,
.cinematicart-carousel-gallery .is-active video {
    opacity: 1;
}
.cinematicart-carousel-gallery-captions {
    padding: 0 25vw;
    display: flex;
    flex-wrap: nowrap;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    margin: 0;
    align-items: flex-end;
    will-change: transform;
    z-index: 3;
}
.cinematicart-carousel-gallery-captions li {
    list-style: none;
    margin: 0;
    display: flex;
    justify-content: center;
    padding: 0 0 120px 0;
    width: 50vw;
    position: relative;
    z-index: 7;
    transition: opacity 0.5s;
    opacity: 0.3;
    pointer-events: none;
}
.cinematicart-carousel-gallery-captions li.is-active {
    opacity: 1;
    pointer-events: all;
}
.cinematicart-carousel-gallery-captions div {
    position: relative;
}
.cinematicart-carousel-gallery-captions .cinematicart-gallery-item__content {
    will-change: transform;
    transition: transform 0.5s;
}
.cinematicart-carousel-gallery-captions .cinematicart-gallery__explore {
    display: inline-block;
    float: right;
    opacity: 0.75;
    will-change: opacity;
    color: var(--cinematicart-s-heading);
    transition: opacity 0.5s;
}
.cinematicart-carousel-gallery-captions .cinematicart-album-link {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
}
.cinematicart-carousel-gallery-captions .cinematicart-gallery__meta {
    margin: 0 0 8px 0;
    display: block;
    color: var(--cinematicart-s-heading);
    opacity: 0.75;
}
.cinematicart-carousel-gallery-captions .cinematicart-gallery__caption {
    display: block;
    width: 100%;
    text-align: center;
    font-size: var(--cinematicart-t-caption-fs);
    line-height: 1;
    margin: 0 0 4px 0;
}
.cinematicart-carousel-gallery-captions .cinematicart-gallery__caption sup {
    margin-right: 6px;
}

/* --- Flat Grid --- */
.cinematicart-item-zoom-hover .cinematicart-grid-gallery-item {
    overflow: visible;
}
.cinematicart-grid-item__inner {
    width: 100%;
    position: relative;
    transition: opacity 0.3s, transform 0.3s;
    will-change: opacity, transform;
}
.cinematicart-item-fade-hover.is-hover .cinematicart-grid-gallery-item .cinematicart-grid-item__inner {
    opacity: 0.5;
}
.cinematicart-item-fade-hover.is-hover .cinematicart-grid-item__inner.is-hover {
    opacity: 1;
}
.cinematicart-item-zoom-hover.is-hover .cinematicart-grid-item__inner {
    transform: scale(0.98);
}
.cinematicart-item-zoom-hover.is-hover .cinematicart-grid-item__inner.is-hover {
    transform: scale(1.05);
}

.cinematicart-grid-item__inner a {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
}
.cinematicart-works-grid .cinematicart-grid-item__image {
    margin-bottom: 10px;
}
.cinematicart-grid-item__image {
    overflow: hidden;
}
.cinematicart-works-grid-meta {
    display: flex;
    justify-content: space-between;
    font-size: var(--cinematicart-t-meta-fs);
    color: var(--cinematicart-s-meta);
    line-height: 1.7;
}
.cinematicart-grid-item__inner h5 {
    margin: 0;
}

/* 08. ALBUM POST
   -------------- */
.cinematicart-fixed-album-title .cinematicart-album-title {
    display: block;
    margin: 0 0 120px 0;
}
.cinematicart-album-title .cinematicart-albums-back {
    display: inline-flex;
    align-items: flex-start;
    margin: 0;
}
.cinematicart-album-title .cinematicart-albums-back::before {
    content: '\f341';
    font-family: "dashicons";
    color: var(--cinematicart-s-link);
    font-size: 20px;
    line-height: 1em;
    margin: 0 0 0 -26px;
    padding-right: 8px;
    display: flex;
    align-items: center;
    align-self: stretch;
}
.cinematicart-album-title h1 {
    margin: -6px 0 0 0;
}
.cinematicart-album-title .cinematicart-post-meta {
    margin-top: -4px;
}
.cinematicart-post-meta {
    display: flex;
    flex-wrap: wrap;
}
.cinematicart-post-meta span {
    display: block;
}
.cinematicart-post-meta span:not(:last-child)::after {
    content: '';
    width: 2px;
    height: 2px;
    display: inline-block;
    vertical-align: middle;
    background: var(--cinematicart-s-meta);
    margin: 0 15px;
    transform: translateY(-1px);
}
.cinematicart-fixed-album-title {
    position: fixed;
    left: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    z-index: 9;
    width: 100%;
    padding-left: 28px;
}
.cinematicart-grid--2cols.cinematicart-item-zoom-hover.is-hover .cinematicart-grid-item__inner.is-hover,
.cinematicart-grid-2cols.cinematicart-item-zoom-hover.is-hover .cinematicart-grid-item__inner.is-hover {
    transform: scale(1.03);
}

/* --- Adjusted Grid Gallery --- */
.cinematicart-adjusted-grid .cinematicart-grid-gallery-item {
    align-items: center;
    display: flex;
}

/* --- Bricks Grid Gallery --- */
.cinematicart-bricks-grid {
    display: flex;
    flex-wrap: wrap;
    margin: calc(-0.5 * var(--cinematicart-grid-gap));
}
.cinematicart-bricks-grid > div {
    margin: calc(0.5 * var(--cinematicart-grid-gap));
}
.cinematicart-bricks-1x2 > div {
    width: calc(50% - var(--cinematicart-grid-gap));
}
.cinematicart-bricks-1x2 > div:nth-child(3n) {
    width: calc(100% - var(--cinematicart-grid-gap));
}
.cinematicart-bricks-1x2.cinematicart-item-zoom-hover.is-hover .cinematicart-grid-item__inner.is-hover {
    transform: scale(1.02);
}
.cinematicart-bricks-1x2.cinematicart-item-zoom-hover.is-hover > div:nth-child(3n) .cinematicart-grid-item__inner {
    transform: scale(0.99);
}
.cinematicart-bricks-1x2.cinematicart-item-zoom-hover.is-hover > div:nth-child(3n) .cinematicart-grid-item__inner.is-hover {
    transform: scale(1.01);
}
.cinematicart-bricks-2x3 > div {
    width: calc(33.33% - var(--cinematicart-grid-gap));
}
.cinematicart-bricks-2x3 > div:nth-child(5n),
.cinematicart-bricks-2x3 > div:nth-child(5n - 1) {
    width: calc(50% - var(--cinematicart-grid-gap));
}
.cinematicart-bricks-2x3.cinematicart-item-zoom-hover.is-hover > div:nth-child(5n) .cinematicart-grid-item__inner.is-hover,
.cinematicart-bricks-2x3.cinematicart-item-zoom-hover.is-hover > div:nth-child(5n - 1) .cinematicart-grid-item__inner.is-hover {
    transform: scale(1.02);
}

/* --- Masonry Grid Gallery --- */
.cinematicart-masonry.cinematicart-grid-gallery > div {
    margin: 0;
    padding: calc(0.5 * var(--cinematicart-grid-gap));
    position: absolute;
}
.cinematicart-masonry.cinematicart-grid-2cols > div {
    width: 50%;
}
.cinematicart-masonry.cinematicart-grid-3cols > div {
    width: 33.33%;
}
.cinematicart-masonry.cinematicart-grid-4cols > div {
    width: 25%;
}

/* --- Justified Grid Gallery --- */
.cinematicart-justified-fade-hover.justified-gallery > .entry-visible img {
    transition: opacity 0.3s;
    will-change: opacity;
}
.cinematicart-justified-image-zoom-hover.justified-gallery > .entry-visible img {
    transition: transform 0.3s;
    will-change: transform;
}
.cinematicart-justified-image-zoom-hover.cinematicart-justified-fade-hover.justified-gallery > .entry-visible img {
    transition: opacity 0.3s, transform 0.3s;
    will-change: opacity transform;
}
.cinematicart-justified-zoom-hover.justified-gallery > a.entry-visible {
    transition: transform 0.3s;
    will-change: transform;
}
.cinematicart-justified-fade-hover.is-hovered.justified-gallery > .entry-visible img {
    opacity: 0.5;
}
.cinematicart-justified-fade-hover.is-hovered.justified-gallery > a.entry-visible.is-hovered img {
    opacity: 1;
}
.cinematicart-justified-zoom-hover.is-hovered.justified-gallery > a.entry-visible {
    transform: scale(0.98);
}
.cinematicart-justified-zoom-hover.is-hovered.justified-gallery > a.entry-visible.is-hovered {
    transform: scale(1.03);
}

/* --- Next Album --- */
.cinematicart-next-album-wrap {
    position: relative;
    display: flex;
    justify-content: center;
    text-align: center;
}
.cinematicart-next-album-title {
    position: relative;
}
.cinematicart-next-album-wrap a {
    position: relative;
    z-index: 5;
}
.cinematicart-next-album-wrap h4 {
    position: relative;
    z-index: 3;
    margin: 0;
}
.cinematicart-next-album-wrap .cinematicart-page-background {
    width: 256px;
    height: 256px;
    right: -128px;
    left: auto;
    top: calc(50% - 128px);
    border-radius: 50%;
    transition: opacity 0.3s, transform 0.3s;
    will-change: opacity, transform;
    z-index: 1;
    opacity: 0;
    transform: scale(0.9);
}
.cinematicart-next-album-wrap .cinematicart-page-background.is-hover {
    opacity: 0.5;
    transform: scale(1);
}
.cinematicart-next-album-wrap .cinematicart-page-background::before {
    display: none;
}

/* --- Fullscreen Albums Navigation --- */
.cinematicart-album-nav-prev,
.cinematicart-album-nav-next {
    position: absolute;
    bottom: 170px;
    height: 64px;
    z-index: 11;
    max-width: 25vw;
}
.cinematicart-album-nav-prev {
    left: 50px;
}
.cinematicart-album-nav-next {
    right: 50px;
}
.cinematicart-prev-album-link,
.cinematicart-next-album-link {
    height: 64px;
    transition: transform 0.3s, opacity 0.3s;
    will-change: transform;
    opacity: 0.5;
    display: flex;
    align-items: center;
    position: relative;
}
.cinematicart-prev-album-link::before,
.cinematicart-next-album-link::before {
    content: '';
    position: absolute;
    z-index: 1;
    top: -10px;
    right: -30px;
    bottom: -10px;
    left: -30px;
    display: block;
    border-radius: 42px;
    overflow: hidden;
    transition: opacity 0.3s;
    will-change: opacity;
}
.cinematicart-prev-album-link::before {
    background: linear-gradient(90deg, #0E0E1040 0%, #0E0E1020 40%, #0E0E1000 80%);
}
.cinematicart-next-album-link::before {
    background: linear-gradient(270deg, #0E0E1040 0%, #0E0E1020 40%, #0E0E1000 80%);
}

.cinematicart-prev-album-link .cinematicart-data-background,
.cinematicart-next-album-link .cinematicart-data-background {
    position: absolute;
    top: 0;
    width: 64px;
    height: 64px;
    background: no-repeat center;
    background-size: cover;
    border-radius: 50%;
    opacity: 0;
    transform: scale(0);
    will-change: opacity, transform;
    transition: opacity 0.3s, transform 0.3s;
}
.cinematicart-prev-album-link .cinematicart-data-background {
    left: -20px;
}
.cinematicart-next-album-link .cinematicart-data-background {
    right: -20px;
}

.cinematicart-prev-album-link > span,
.cinematicart-next-album-link > span {
    max-width: 25vw;
    display: flex;
    flex-direction: column;
    white-space: nowrap;
    font-size: var(--cinematicart-t-meta-fs);
    line-height: 1.2;
    color: var(--cinematicart-s-meta);
    position: relative;
    z-index: 3;
    transition: transform 0.3s;
    will-change: transform;
}
.cinematicart-prev-album-link > span span,
.cinematicart-next-album-link > span span {
    font-size: var(--cinematicart-t-content-fs);
    color: var(--cinematicart-s-heading);
    display: block;
    margin-top: 4px;
}
.cinematicart-prev-album-link > span {
    align-items: flex-start;
}
.cinematicart-next-album-link > span {
    align-items: flex-end;
}

/* 09. ELEMENTS
   ------------ */
.cinematicart-owl-container.owl-carousel {
   cursor: grab;
}
.cinematicart-owl-container.owl-carousel.owl-grab {
   cursor: grabbing;
}
.cinematicart-owl-container.owl-carousel button.owl-dot {
   width: 12px;
   height: 12px;
   display: block;
   background: none;
   border: 0;
   margin: 0 12px;
   display: flex;
   align-items: center;
   justify-content: center;
}
.cinematicart-owl-container.owl-carousel button.owl-dot span {
    width: 8px;
    height: 8px;
    transition: opacity 0.3s, transform 0.3s;
    border-radius: 50%;
    background: var(--cinematicart-s-heading);
    display: block;
    opacity: 0.5;
    position: relative;
}
.cinematicart-owl-container.owl-carousel button.owl-dot span::before {
    content: '';
    display: block;
    position: absolute;
    top: -6px;
    right: -6px;
    bottom: -6px;
    left: -6px;
}
.cinematicart-owl-container.owl-carousel button.owl-dot.active span {
    transform: scale(1.5);
    opacity: 1;
}
.cinematicart-owl-container .owl-dots {
    display: flex;
    justify-content: center;
    padding: 40px 0 0 0;
}

/* --- CTA --- */
.cinematicart-cta {
    text-align: center;
}
.cinematicart-cta h2 {
    margin: 0;
}

/* --- Price Item --- */
.cinematicart-price-item {
    display: block;
    background: var(--cinematicart-s-bg-container);
    padding: 35px 40px 40px 40px;
    position: relative;
}
.cinematicart-price-item::before{
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
    opacity: 0.1;
    background: radial-gradient(circle, #84ABD5 0%, #84ABD500) no-repeat bottom right;
    background-size: 200% 200%;
    pointer-events: none;
}
.cinematicart-price-item--head {
    margin-bottom: 44px;
}
.cinematicart-price-item--heading {
    font-family: var(--cinematicart-t-heading-ff);
    font-weight: var(--cinematicart-t-heading-fw);
    line-height: var(--cinematicart-t-heading-lh);
    color: var(--cinematicart-s-heading);
    font-size: var(--cinematicart-t-h4-fs);
    margin-bottom: 44px;
}
.cinematicart-price-item--price {
    font-family: var(--cinematicart-t-heading-ff);
    font-weight: var(--cinematicart-t-heading-fw);
    line-height: var(--cinematicart-t-heading-lh);
    color: var(--cinematicart-s-heading);
    font-size: var(--cinematicart-t-h2-fs);
}
.cinematicart-price-item--price-descr {
    font-size: var(--cinematicart-t-meta-fs);
    color: var(--cinematicart-s-meta);
    line-height: 1;
}
.cinematicart-price-item--content {
    padding: 0 0 55px 0;
}
.cinematicart-price-item--list-heading {
    font-family: var(--cinematicart-t-heading-ff);
    font-weight: var(--cinematicart-t-heading-fw);
    line-height: var(--cinematicart-t-heading-lh);
    color: var(--cinematicart-s-heading);
    font-size: var(--cinematicart-t-h6-fs);
    margin: 0 0 24px 0;
}
.cinematicart-price-item--list {
    padding: 0;
    margin: 0
}
.cinematicart-price-item--list li {
    list-style: none;
    margin: 0 0 1em 0;
    padding: 0;
    display: flex;
    align-items: center;
}
.cinematicart-price-item--list li:last-child {
    margin: 0;
}
.cinematicart-price-item--list li::before {
    content: "\f15e";
    font-family: "dashicons";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 12px;
    width: 20px;
    height: 20px;
    font-size: 20px;
    line-height: 1;
}
.cinematicart-price-item--footer {
    display: flex;
    justify-content: center;
}

/* --- Toggles --- */
.cinematicart-toggles-item {
    border-bottom: 2px solid var(--cinematicart-s-content);
    margin-bottom: 30px;
}
.cinematicart-toggles-item:last-child {
    margin: 0;
}
.cinematicart-toggles-item--title {
    display: block;
    font-size: var(--cinematicart-t-h5-fs);
    font-family: var(--cinematicart-t-heading-ff);
    font-weight: var(--cinematicart-t-heading-fw);
    line-height: var(--cinematicart-t-heading-lh);
    color: var(--cinematicart-s-heading);
    cursor: pointer;
    position: relative;
    margin: 0 0 28px 0;
    padding: 0 40px 0 0;
}
.cinematicart-toggles-item--title::before,
.cinematicart-toggles-item--title::after {
    content: '';
    width: 16px;
    height: 2px;
    background: var(--cinematicart-s-heading);
    display: block;
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: 1px;
}
.cinematicart-toggles-item--title::after {
    transition: transform 0.3s;
    will-change: transform;
    transform: rotate(90deg);
}
.cinematicart-toggles-item--title.is-active::after {
    transform: rotate(180deg);
}
.cinematicart-toggles-item--title sup {
    opacity: 0.25;
    margin-right: 0;
}
.cinematicart-toggles-item--title {
    transition: opacity 0.3s;
    will-change: opacity;
    opacity: 0.75;
}
.cinematicart-toggles-item--title.is-active {
    opacity: 1;
}
.cinematicart-toggles-item--content {
    padding: 4px 0px 37px 20px;
}

/* --- Counter --- */
.cinematicart-counter {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--cinematicart-s-bg-container);
    padding: 24px 20px 30px 20px;
}
.cinematicart-counter-number {
    font-size: var(--cinematicart-t-caption-fs);
    font-family: var(--cinematicart-t-heading-ff);
    font-weight: var(--cinematicart-t-heading-fw);
    line-height: var(--cinematicart-t-heading-lh);
    color: var(--cinematicart-s-heading);
    margin-bottom: 8px;
}

/* --- Grid Gallery --- */
.cinematicart-grid-gallery {
    display: grid;
    grid-column-gap: var(--cinematicart-grid-gap);
    grid-row-gap: var(--cinematicart-grid-gap);
}
.cinematicart-grid-gallery img {
    display: block;
    width: 100%;
    height: auto;
}
.cinematicart-grid-gallery > div {
    position: relative;
    overflow: hidden;
}
.cinematicart-grid-gallery > div a {
    display: block;
}

/* --- Before After --- */
.cinematicart-before-after {
	position: relative;
	overflow: hidden;
	cursor: grab;
}
.cinematicart-before-after img {
	display: block;
	width: 100%;
	height: auto;
	opacity: 0;
}
.cinematicart-before-after div.cinematicart-before-after-img {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	background: no-repeat center;
	background-size: cover;
}
.cinematicart-before-after.cinematicart-before-after--h div.cinematicart-before-after-img {
	background-position: left center;
}
.cinematicart-before-after.cinematicart-before-after--v div.cinematicart-before-after-img {
	background-position: center top;
}
.cinematicart-before-after div.cinematicart-after-img-wrap {
	width: 50%;
	overflow: hidden;
	display: flex;
	flex-wrap: nowrap;
}
.cinematicart-before-after div.cinematicart-after-img {
	width: 100%;
	background: no-repeat center;
	background-size: cover;
	position: absolute;
	left: 0;
	top: 0;
}
.cinematicart-before-after div.cinematicart-after-img img {
	display: block;
	max-width: none;
}
.cinematicart-before-after-divider {
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	pointer-events: none;
    background: var(--cinematicart-s-bg-body);
    width: 4px;
    height: 100%;
    z-index: 5;
    transform: translateX(-2px);
}
.cinematicart-before-after-divider::before {
	content: '';
	display: block;
	width: 40px;
	height: 40px;
	background: var(--cinematicart-s-bg-body);
	transform: rotate(45deg);
	margin: -20px 0 0 -20px;
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 3;
}
.cinematicart-before-after-divider svg {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 24px;
	height: 14px;
	margin: -8px 0 0 -12px;
	z-index: 5;
	display: block;
}

/* --- Team Carousel --- */
.cinematicart-cards-carousel-wrap {
    max-width: 100%;
    overflow: hidden;
    display: block;
}
.cinematicart-team-carousel .cinematicart-carousel-card__image {
    margin: 0 0 16px 0;
}
.cinematicart-carousel-card__heading h5 {
    margin: 0 0 0 0;
}
.cinematicart-carousel-card__caption {
    color: var(--cinematicart-s-meta);
    font-size: var(--cinematicart-t-meta-fs);
    margin: -4px 0 0 0px;
}
.cinematicart-carousel-card__heading sup {
    display: none;
}

/* --- Testimonials --- */
.cinematicart-testimonials-grid {
    margin: -20px;
    display: flex;
    flex-wrap: wrap;
    position: relative;
}
.cinematicart-testimonials-grid.is-hover .cinematicart-testimonials-item {
    opacity: 0.3;
}
.cinematicart-testimonials-grid.is-hover .cinematicart-testimonials-item.is-hover {
    opacity: 1;
}
.cinematicart-testimonials-item.is-hover .cinematicart-testimonials-item_inner {
    transform: scale(1.07);
}
.cinematicart-testimonials-item {
    padding: 20px;
    will-change: opacity;
    opacity: 0.3s;
}
.cinematicart-testimonials-item_inner {
    transition: transform 0.3s;
    will-change: transform;
}
.cinematicart-testimonials-2cols .cinematicart-testimonials-item {
    width: 50%;
}
.cinematicart-testimonials-3cols .cinematicart-testimonials-item {
    width: 33.33%;
}
.cinematicart-testimonials-4cols .cinematicart-testimonials-item {
    width: 25%;
}
.cinematicart-testimonials-5cols .cinematicart-testimonials-item {
    width: 20%;
}
.cinematicart-testimonials-item__author {
	display: flex;
	justify-content: space-between;
	position: relative;
	z-index: 3;
    min-height: 100px;
}
.cinematicart-testimonials-item__author img {
	width: 100px;
    border-radius: 50%;
}
.cinematicart-testimonials-item__author-name {
    text-align: right;
}
.cinematicart-testimonials-item__author-name h6 {
    margin: 5px 0 0 0;
}
.cinematicart-testimonials-item__author-name span {
    color: var(--cinematicart-s-meta);
    font-size: var(--cinematicart-t-meta-fs);
    transform: translateY(-2px);
    display: block;
}
.cinematicart-testimonials-item__content {
    background: var(--cinematicart-s-bg-container);
    padding: 10px 20px 18px 20px;
    margin: -30px 0 0 20px;
    position: relative;
}
.cinematicart-testimonials-item__content::before{
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: block;
    opacity: 0.05;
    background: radial-gradient(circle, #84ABD5 0%, #84ABD500) no-repeat bottom center;
    background-size: 200% 200%;
    pointer-events: none;
}
.cinematicart-testimonials-item__stars {
	text-align: right;
	margin: 0 0 4px 0;
}
.cinematicart-testimonials-item__stars::before {
	font-family: "dashicons";
	color: var(--cinematicart-s-heading);
	font-size: 16px;
	line-height: 20px;
}
.cinematicart-testimonials-item__stars.cinematicart-stars0::before {
	content: '\f154\f154\f154\f154\f154';
}
.cinematicart-testimonials-item__stars.cinematicart-stars1::before {
	content: '\f155\f154\f154\f154\f154';
}
.cinematicart-testimonials-item__stars.cinematicart-stars2::before {
	content: '\f155\f155\f154\f154\f154';
}
.cinematicart-testimonials-item__stars.cinematicart-stars3::before {
	content: '\f155\f155\f155\f154\f154';
}
.cinematicart-testimonials-item__stars.cinematicart-stars4::before {
	content: '\f155\f155\f155\f155\f154';
}
.cinematicart-testimonials-item__stars.cinematicart-stars5::before {
	content: '\f155\f155\f155\f155\f155';
}

/* 10. WIDGETS
   ----------- */
.cinematicart-widget--contacts__descr {
    margin-bottom: 40px;
}
.cinematicart-contact-details__list {
    padding: 0;
    margin: 0;
}
.cinematicart-contact-details__list li {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
}
.cinematicart-contact-details__list li:not(:last-child) {
    margin-bottom: 24px;
}
.cinematicart-contact-details__list.has-labels > li {
    padding-left: 60px;
    min-height: 40px;
    position: relative;
}
.cinematicart-contact-details__list li i {
    border: 2px solid var(--cinematicart-s-heading);
    color: var(--cinematicart-s-heading);
    width: 40px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    opacity: 1;
    position: absolute;
    left: 0;
    top: 0;
}
.cinematicart-contact-details__list .cinematicart-socials-list li {
    margin: 0 28px 0 0;
}

/* 11. RIGHT CLICK PROTECTION MESSAGE
   ---------------------------------- */
.cinematicart-rcp-message {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s;
    will-change: opacity;
    z-index: 999;
}
.cinematicart-rcpm-overlay {
    background: var(--cinematicart-s-bg-body);
    opacity: 0.9;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 5;
    cursor: pointer;
}
.cinematicart-rcpm-box {
    position: relative;
    z-index: 7;
    background: var(--cinematicart-s-bg-container);
    max-width: 480px;
    padding: 40px 40px 40px 40px;
    width: 100%;
    overflow: hidden;
    transition: transform 0.3s;
	will-change: transform;
    text-align: center;
    transform: translateY(0px);
    display: flex;
    flex-direction: column;
    align-items: center;
}
.cinematicart-rcp-message-show .cinematicart-rcp-message {
    opacity: 1;
    pointer-events: all;
}
.cinematicart-rcp-message-show .cinematicart-rcpm-box {
    transform: translateY(0px);
}

/* 12. PRELOADER
   ------------- */
.cinematicart-preloader-wrap {
   display: block;
   position: fixed;
   left: 0;
   top: 0;
   width: 100%;
   height: 100%;
   z-index: 9999;
   transition: opacity 0.5s;
   will-change: opacity;
   background: var(--cinematicart-s-bg-body);
}
.cinematicart-preloader-spotlight.cinematicart-spotlight {
   position: absolute;
}

/* --- Loading State --- */
body.is-loading {
   overflow: hidden;
}
body.is-loading .cinematicart-page-background {
    transform: scale(1.05);
}
body.is-loading .cinematicart-container {
   transform: scale(1);
   opacity: 0;
}

/* --- Loaded State --- */
body.is-loaded .cinematicart-preloader-wrap {
   opacity: 0;
   pointer-events: none;
}

/* --- Unloading State --- */
body.cinematicart-unload .cinematicart-preloader-wrap {
   opacity: 1;
}
body.cinematicart-unload {
   overflow: hidden;
}
body.cinematicart-unload .cinematicart-page-background,
body.cinematicart-unload .cinematicart-container {
   transform: scale(1.1);
}
body.cinematicart-unload.cinematicart-show-menu .cinematicart-nav {
   transition: transform 0.5s;
   transform: scale(0.9);
}

/* 13. BACK TO TOP
   --------------- */
.cinematicart-back2top-wrap.is-fixed {
    transform: translateY(-50px);
}
.cinematicart-back2top-wrap {
    width: 64px;
    height: 64px;
    display: block;
    position: fixed;
    right: 50px;
    bottom: 50px;
    z-index: 99;
    transition: opacity 0.3s, transform 0.3s;
}
.cinematicart-back2top {
    width: 64px;
    height: 64px;
    display: block;
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0.7;
    will-change: opacity;
    transition: opacity 0.3s, transform 0.12s;
    background: #00000040;
    border-radius: 50%;
}
.cinematicart-back2top-wrap:not(.is-visible) {
    pointer-events: none;
}
.cinematicart-back2top-wrap:not(.is-visible) .cinematicart-back2top {
    pointer-events: none;
    opacity: 0;
}
.cinematicart-back2top::after {
    content: '';
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    left: -2px;
    top: -2px;
    border: 2px solid var(--cinematicart-s-heading);
    border-radius: 50%;
    transition: opacity 0.3s, transform 0.3s;
    transform: scale(1);
    will-change: opacity;
}
.cinematicart-back2top::before {
    content: "\f343";
    transform: translateY(-1px);
    font-family: "dashicons";
	color: var(--cinematicart-s-heading);
	font-size: 24px;
	line-height: 1;
}
.cinematicart-back2top span {
    position: absolute;
    display: block;
    white-space: nowrap;
    font-size: var(--cinematicart-t-meta-fs);
    color: var(--cinematicart-s-heading);
    pointer-events: none;
    will-change: transform, opacity;
    opacity: 0;
    transform: translate(-20px, 0);
    transition: opacity 0.3s, transform 0.3s;
    text-shadow: 0 0 8px #00000080;
    right: 100%;
    padding-right: 20px;
}

/* 14. INTERRACTIVE CURSOR
   ----------------------- */
.cinematicart-cursor {
    position: fixed;
    left: 0;
    top: 0;
    transform: translate(50vw, 50vh);
    z-index: 99999;
    will-change: opacity, transform;
    transition: opacity 0.3s;
    opacity: 0;
    pointer-events: none;
    transform-origin: 0 0;
    width: 48px;
    height: 48px;
}
.cinematicart-cursor.is-init {
    opacity: 1;
}
.cinematicart-cursor > div {
    width: 48px;
    height: 48px;
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    margin: -24px 0 0 -24px;
}
.cinematicart-cursor--pointer {
    border-radius: 50%;
    border: 2px solid var(--cinematicart-s-cursor);
    will-change: transform;
    transition: transform 0.3s, border 0.3s, opacity 0.3s;
    opacity: 0.25;
    box-shadow: 0 0 8px #0E0E1040, inset 0 0 4px #0E0E1040;
}
.cinematicart-cursor--pointer::before {
    content: '';
    position: absolute;
    top: -10px;
    right: -10px;
    bottom: -10px;
    left: -10px;
    border: transparent 2px solid;
    border-top-color: var(--cinematicart-s-cursor);
    border-radius: 50%;
    opacity: 0;
    transition: opacity 0.3s, border 0.3s,
    
}

/* --- Scroll Cursor --- */
.cinematicart-cursor--arrowsNS,
.cinematicart-cursor--arrowsEW {
    transition: transform 0.3s, opacity 0.3s;
    will-change: opacity, transform;
    transform: scale(0.5);
    opacity: 0;
}
.cinematicart-cursor--arrowsNS::before,
.cinematicart-cursor--arrowsNS::after,
.cinematicart-cursor--arrowsEW::before,
.cinematicart-cursor--arrowsEW::after {
    font-family: "dashicons";
	color: var(--cinematicart-s-cursor);
	font-size: 14px;
	line-height: 1;
    position: absolute;
    display: block;
    text-shadow: 0 0 8px #0E0E1040;
}
.cinematicart-cursor--arrowsEW::before {
    content: "\f341";
    left: -20px;
    top: 50%;
    transform: translateY(-50%);
}
.cinematicart-cursor--arrowsEW::after {
    content: "\f345";
    right: -20px;
    top: 50%;
    transform: translateY(-50%);
}
.cinematicart-cursor--arrowsNS::before {
    content: "\f343";
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
}
.cinematicart-cursor--arrowsNS::after {
    content: "\f347";
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
}

/* --- Cursor States --- */
.is-scrollEW .cinematicart-cursor--pointer,
.is-scrollNS .cinematicart-cursor--pointer {
    border-width: 1.5px;
    transform: scale(1.5);
    opacity: 0.5;
}
.is-scrollEW .cinematicart-cursor--arrowsEW,
.is-scrollNS .cinematicart-cursor--arrowsNS {
    transform: scale(1.5);
    opacity: 0.5;
}
.is-hover.is-scrollEW .cinematicart-cursor--arrowsEW,
.is-hover.is-scrollNS .cinematicart-cursor--arrowsNS {
    opacity: 0;
}
.is-hover:not(.is-busy) .cinematicart-cursor--pointer {
    border-width: 1px;
    transform: scale(2);
    opacity: 1;
}
.is-loading .cinematicart-cursor--pointer::before,
.is-busy .cinematicart-cursor--pointer::before {
    animation: cinematicart_spin 1s ease-in-out infinite;
    opacity: 1;
}
.is-loading .is-scrollEW .cinematicart-cursor--arrowsEW,
.is-loading .is-scrollNS .cinematicart-cursor--arrowsNS,
.is-busy.is-scrollEW .cinematicart-cursor--arrowsEW,
.is-busy.is-scrollNS .cinematicart-cursor--arrowsNS {
    opacity: 0;
}
.is-loading .is-scrollEW .cinematicart-cursor--pointer::before,
.is-loading .is-scrollNS .cinematicart-cursor--pointer::before,
.is-busy.is-scrollEW .cinematicart-cursor--pointer::before,
.is-busy.is-scrollNS .cinematicart-cursor--pointer::before {
    border-width: 1.5px;
}
.is-busy.is-scrollEW.is-hover .cinematicart-cursor--pointer::before,
.is-busy.is-scrollNS.is-hover .cinematicart-cursor--pointer::before,
.is-loading .is-hover .cinematicart-cursor--pointer::before,
.is-hover.is-busy .cinematicart-cursor--pointer::before {
    border-width: 1px;
}

/* 15. LAZY LOADING
   ---------------- */
.cinematicart-lazy {
    opacity: 0;
}
.cinematicart-lazy-wrapper {
    background: var(--cinematicart-s-bg-container);
    position: relative;
}
.cinematicart-lazy-wrapper img {
    will-change: opacity, transform;
    transition: opacity 0.5s, transform 0.5s;
}
.cinematicart-lazy-wrapper:not(.is-loaded) {
    overflow: hidden;
}
.cinematicart-lazy-wrapper:not(.is-loaded) img {
    opacity: 0;
    transform: scale(1.1);
}
.cinematicart-lazy-wrapper::before {
    content: '';
    display: block;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -16px 0 0 -16px;
    border: 2px solid transparent;
    border-top-color: var(--cinematicart-s-heading);
    transition: opacity 0.3s;
    opacity: 0;
}
.cinematicart-lazy-wrapper:not(.is-loaded)::before {
    opacity: 1;
    animation: cinematicart_spin 1s ease-in-out infinite;
}

/* 16. HOVER STATES
   ---------------- */
@media (hover: hover) {
    /* --- Typography --- */
    h1 a:hover,
    h2 a:hover,
    h3 a:hover,
    h4 a:hover,
    h5 a:hover,
    h6 a:hover {
       color: var(--cinematicart-s-heading);
    }
    a:hover {
       color: var(--cinematicart-s-link-hover);
    }

    /* --- Forms and Fields --- */
    input[type="button"]:hover,
    input[type="reset"]:hover,
    input[type="submit"]:hover,
    button:not([class*='pswp']):not([class*='owl']):hover,
    a.cinematicart-button:hover {
       color: var(--cinematicart-s-button-hover-text);
       border-color: var(--cinematicart-s-button-hover-border);
       background: var(--cinematicart-s-button-hover-bg);
    }

    /* --- Header --- */
    nav.cinematicart-nav .main-menu li:hover > a,
    nav.cinematicart-simple-nav .main-menu li:hover > a {
       color: var(--cinematicart-s-menu-link-hover);
    }
    .cinematicart-menu-toggler:hover i::after,
    .cinematicart-menu-toggler:hover i::before {
       background-color: var(--cinematicart-s-menu-link-hover);
    }
    body:not(.cinematicart-show-menu) .cinematicart-menu-toggler:hover i::before {
       transform: translateX(-2px);
    }
    body:not(.cinematicart-show-menu) .cinematicart-menu-toggler:hover i::after {
       transform: translateX(2px);
    }
    .cinematicart-fullscreen-menu-wrap nav.cinematicart-nav ul.sub-menu > li:hover > ul.sub-menu::after {
       opacity: 0.5;
    }
    nav.cinematicart-nav .sub-menu li:hover > a,
    nav.cinematicart-simple-nav .sub-menu li:hover > a {
       color: var(--cinematicart-s-sub-menu-link-hover);
    }

    /* --- Footer --- */
    #cinematicart-footer a:hover {
        transition: transform 0.12s, color 0.3s;
        color: var(--cinematicart-s-footer-link-hover);
    }

    /* --- Works Listing --- */
    .cinematicart-carousel-gallery-captions .cinematicart-gallery-item__content:hover,
    .cinematicart-gl-container .cinematicart-gl-gallery-item__content:hover {
       transform: scale(1.1);
    }
    .cinematicart-gl-gallery-item__content:hover .cinematicart-gl-gallery__explore {
       opacity: 1;
    }
    .cinematicart-gallery-nav:hover {
       opacity: 1;
    }
    .cinematicart-gallery-nav:hover span {
       opacity: 1;
       transform: translateY(0);
    }
    .cinematicart-gallery-nav:hover::after {
       opacity: 0;
       transform: scale(1.5);
    }
    .cinematicart-gl-roll-gallery .cinematicart-gl-gallery-item__content:hover {
       transform: scale(1.1);
       transition: transform 0.5s;
    }
    .cinematicart-gl-roll-gallery-wrap .cinematicart-gallery-nav:hover span {
       transform: translate(-50%, 0);
    }

    /* --- Album Post --- */
    .cinematicart-albums-back {
       opacity: 0.75;
       transition: opacity 0.3s, transform 0.3s;
       will-change: opacity, transform;
    }
    .cinematicart-albums-back:hover {
       opacity: 1;
       transform: scale(1.05);
    }
    .cinematicart-justified-image-zoom-hover.justified-gallery > .entry-visible:hover img {
       transform: scale(1.05);
    }
    .cinematicart-albums-prev a:hover,
    .cinematicart-albums-next a:hover {
       opacity: 1;
    }
    .cinematicart-albums-prev a:hover::before {
       transform: translateX(-25px);
    }
    .cinematicart-albums-next a:hover::before {
       transform: translateX(25px);
    }
    .cinematicart-prev-album-link:hover,
    .cinematicart-next-album-link:hover {
       opacity: 1;
    }
    .cinematicart-prev-album-link:hover::before,
    .cinematicart-next-album-link:hover::before {
       opacity: 0.5;
    }
    .cinematicart-prev-album-link:hover > span {
       transform: translateX(64px);
    }
    .cinematicart-next-album-link:hover > span {
       transform: translateX(-64px);
    }
    .cinematicart-prev-album-link:hover .cinematicart-data-background,
    .cinematicart-next-album-link:hover .cinematicart-data-background {
       transform: scale(1);
       opacity: 1;
    }

    /* --- Elements --- */
    .cinematicart-underline:hover::after {
       transform: scale(0, 1);
    }
    .cinematicart-zoom-hover > div img {
       transition: transform 0.3s;
       will-change: transform;
    }
    .cinematicart-zoom-hover .cinematicart-lightbox-link:hover .cinematicart-lazy-wrapper.is-loaded img,
    .cinematicart-zoom-hover .cinematicart-lightbox-link:hover img,
    .cinematicart-zoom-hover .cinematicart-grid-item__inner:hover .cinematicart-lazy-wrapper.is-loaded img,
    .cinematicart-zoom-hover .cinematicart-grid-item__inner:hover img {
       transform: scale(1.03);
    }
    .cinematicart-owl-container.owl-carousel button.owl-dot:hover span {
       opacity: 1;
    }
    .cinematicart-toggles-item--title:hover {
       opacity: 1;
    }

    /* --- Widgets --- */
    .cinematicart-contact-details__list a:hover {
       transform: scale(1.1);
    }
    .cinematicart-contact-details__list > li > a:hover {
       transform: scale(1.03);
    }

    /* --- Back 2 Top --- */
    .cinematicart-back2top:hover {
       transform: scale(1.05);
       opacity: 1;
    }
    .cinematicart-back2top.is-fixed:hover {
       transform: translateY(-50px) scale(1.05);
    }
    .cinematicart-back2top:hover span {
       opacity: 1;
       transform: translate(-0px, 0);
    }
    .cinematicart-back2top:hover::after {
       opacity: 0;
       transform: scale(1.5);
    }

    /* --- PhotoSwipe UI --- */
    .cinematicart-pswp-close:hover i::before,
    .cinematicart-pswp-close:hover i::after {
       opacity: 1;
    }
    .cinematicart-pswp-nav:hover {
       opacity: 1;
    }
    .cinematicart-pswp-nav:hover::after {
       opacity: 0;
       transform: scale(1.5);
    }
}


/* 17. ANIMATIONS
   -------------- */
@keyframes cinematicart_spin {
	0% {
		transform: rotate(0);
	}
	100% {
		transform: rotate(360deg);
	}
}

@keyframes cinematicart_shake {
    0% {
        transform: translateX(0);
    }
    10% {
        transform: translateX(-10px);
    }
    30% {
        transform: translateX(10px);
    }
    50% {
        transform: translateX(-10px);
    }
    70% {
        transform: translateX(10px);
    }
    90% {
        transform: translateX(-10px);
    }
    100% {
        transform: translateX(0);
    }
}
#loader {
    position: relative;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: radial-gradient(circle, #444, #111);
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
  }
  
  .camera-lens {
    position: absolute;
    width: 100px;
    height: 100px;
    top: 25px;
    left: 25px;
    border-radius: 50%;
    background: radial-gradient(circle, #222, #000);
    animation: spin 1s linear infinite;
  }
  
  .flash {
    position: absolute;
    width: 150%;
    height: 150%;
    top: -25%;
    left: -25%;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    animation: flash 2s ease-in-out infinite;
    opacity: 0;
  }
  
  @keyframes spin {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  }
  
  @keyframes flash {
    0%, 100% {
      opacity: 0;
    }
    50% {
      opacity: 0.2;
    }
  }
  
  .container-media {
        display: flex;
        gap: 20px;
      }
  
      .social-button {
        width: 30px;
        height: 30px;
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 50%;
        text-decoration: none;
        overflow: hidden;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        transition: transform 0.3s, box-shadow 0.3s;
        animation: blink 5s infinite;
    }
    @keyframes blink {
      20%, 100% {
        opacity: 1;
      }
      50% {
        opacity: 20;
      }
    }
      .social-button:hover {
        transform: scale(1.1);
        box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15);
      }
  
      .social-button img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
  
         .whatsapp-container {
  
        position: absolute;
        top: 0;
        right: 0;
        margin-bottom: 20px;
        margin: 10px; /* Optional: Add space from the edges */
      }
  
      .whatsapp-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background-color: #25D366;
        color: white;
        border: none;
        border-radius: 50px;
        padding: 12px 20px;
        text-decoration: none;
        font-size: 16px;
        font-weight: bold;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        cursor: pointer;
        transition: background-color 0.3s ease;
      }
  
      .whatsapp-button:hover {
        background-color: #20b65a;
      }
  
      .whatsapp-button img {
        width: 20px;
        height: 20px;
        margin-right: 8px;
      }
    