.with-bg {
    background: #F2F2F0;
}
/* ==========================================================================
   EXPERIENCE SECTION
   ========================================================================== */

.experience-section {
    position: relative;
    width: 100%;
}

.experience-inner {
    display: grid;
    grid-template-columns: minmax(0, 520px) minmax(0, 1fr);
    align-items: center;
    column-gap: 80px;
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    padding: 30px clamp(30px, calc((100vw - 1800px) / 2), 60px) 0;
}


/* Content
   ========================================================================== */

.experience-content {
    grid-column: 1;
    grid-row: 1;
    position: relative;
    z-index: 2;
}

.experience-title {
    margin: 0 0 30px;
    text-transform: uppercase;
}

.experience-title em {
    color: var(--bg-cyan);
    font-style: normal;
}

.experience-title span {
    color: var(--bg-cyan);
}

.experience-title.align-left {
    text-align: left;
}

.experience-title.align-center {
    text-align: center;
}

.experience-title.align-right {
    text-align: right;
}


/* Text
   ========================================================================== */

.experience-text p {
    margin: 0 0 25px;
}

.experience-text ul {
    display: grid;
    gap: 14px;
    margin: 0;
    margin-bottom: 60px;
    padding: 0;
    list-style: none;
}

.experience-text li {
    position: relative;
    padding-left: 34px;
}

.experience-text li::before {
    content: '\e909';
    position: absolute;
    top: 4px;
    left: 0;
    font-family: 'icomoon';
    color: var(--bg-pink);
}

/* Visual
   ========================================================================== */

.experience-visual {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    margin-bottom: 30px;
}

.experience-picture {
    display: block;
    width: 100%;
}

.experience-picture img,
.experience-image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}


/* Features
   ========================================================================== */

.experience-features {
    grid-column: 1 / -1;
    grid-row: 2;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 1265px;
    max-width: 100%;
    margin: 0 auto -50px;
    position: relative;
    z-index: 2;
    background: #fbfaf8;
    border-radius: 20px;
}

.experience-feature {
    position: relative;
    display: grid;
    grid-template-columns: 45px 1fr;
    justify-items: center;
    align-items: start;
    text-align: center;
    gap: 5px;
    min-width: 0;
    padding: 25px 20px;
}

.experience-feature:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 20%;
    right: 0;
    width: 1px;
    height: 60%;
    background: #dcdad7;
}

.experience-feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
}

.experience-feature-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}
.experience-feature-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    font-weight: 400;
    text-align: left;
    height: 100%;
    position: relative;
}
.experience-feature-text p {
    margin-bottom: 0;
}
/* ==========================================================================
   GIFT EXPERIENCE SECTION
   ========================================================================== */

.gift-experience-section {
    position: relative;
    width: 100%;
    background: #f9f9f8;
}
.gift-experience-section.home-mobile-studio {
    background: #d6d8da;
}
.gift-experience-inner {
    display: grid;
    grid-template-columns: minmax(0, 1004fr) minmax(0, 731fr);
    align-items: center;
    column-gap: 65px;
    width: min(1800px, calc(100% - 60px));
    margin: 0 auto;
}

.gift-experience-visual {
    position: relative;
    align-self: start;
    z-index: 2;
    margin-bottom: 20px;
}
.gift-experience-section:is(.home-mobile-studio) .gift-experience-visual {
    margin-top: 20px;
    margin-bottom: -20px;
}
.gift-experience-visual picture,
.gift-experience-visual img {
    display: block;
    width: 100%;
}

.gift-experience-visual img {
    height: auto;
}
.gift-experience-title {
    text-transform: uppercase;
    margin-bottom: 15px;
}
.gift-experience-content {
    min-width: 0;
    padding: 85px 0 90px;
}
.step-list {
    margin-bottom: 70px;
}
.step-list ol {
    counter-reset: gift-step;
    margin: 0;
    padding: 0;
    list-style: none;
}

.step-list li {
    counter-increment: gift-step;
    position: relative;
    padding-left: 100px;
}

.step-list li + li {
    margin-top: 35px;
}

.step-list li::before {
    content: counter(gift-step, decimal-leading-zero);
    position: absolute;
    top: 10px;
    left: 0;
    color: var(--bg-pink);
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
}
.step-list li::after {
    content: "";
    width: 1px;
    height: 100%;
    background: #bcb8b4;
    position: absolute;
    left: 65px;
    top: 0;
}
.step-list strong,
.step-list span {
    display: block;
}

.step-list strong {
    margin-bottom: 4px;
    font-size: 1.063rem;
}

/* ==========================================================================
   LOYALTY SECTION
   ========================================================================== */

.loyalty-section {
    position: relative;
    width: 100%;
    background: #f9f9f8;
}

.loyalty-inner {
    display: grid;
    grid-template-columns: minmax(0, 1004fr) minmax(0, 731fr);
    align-items: center;
    column-gap: 65px;
    width: min(1800px, calc(100% - 60px));
    margin: 0 auto;
    padding: 0 0 25px;
}


/* Visual
   ========================================================================== */

.loyalty-visual {
    min-width: 0;
}

.loyalty-picture,
.loyalty-image {
    display: block;
    width: 100%;
}

.loyalty-image {
    max-width: 100%;
    height: auto;
}


/* Content
   ========================================================================== */

.loyalty-content {
    min-width: 0;
}

.loyalty-title {
    margin: 0 0 25px;
    text-transform: uppercase;
}

.loyalty-title.align-left {
    text-align: left;
}

.loyalty-title.align-center {
    text-align: center;
}

.loyalty-title.align-right {
    text-align: right;
}

.loyalty-text {
    margin-bottom: 40px;
}

.loyalty-text p:last-child {
    margin-bottom: 0;
}


/* Features
   ========================================================================== */

.loyalty-features {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 30px;
}

.loyalty-feature {
    position: relative;
    min-width: 0;
    padding: 0 15px;
    text-align: center;
}

.loyalty-feature:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: 100%;
    background: #dcdad7;
}

.loyalty-feature-title {
    margin-bottom: 10px;
    font-size: 1.13rem;
    color: var(--bg-pink);
    font-weight: 700;
    text-transform: uppercase;
}

/* Notice
   ========================================================================== */

.loyalty-notice {
    padding: 20px 0;
    border-top: 1px solid #dcdad7;
    text-align: center;
    font-size: 1.13rem;
    font-weight: 600;
}
.loyalty-notice p {
    margin: 0;
}
.loyalty-notice em {
    color: var(--bg-pink);
    font-style: normal;
}

/* ==========================================================================
   CONTENT CTA
   ========================================================================== */
.content-cta {
    width: 100%;
}

.content-cta-inner {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: center;
    column-gap: 120px;
    width: min(1620px, calc(100% - 60px));
    margin: 0 auto;
    padding: 60px 0 32px 0;
}

.content-cta-heading,
.content-cta-content {
    min-width: 0;
}

.content-cta-content {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.content-cta-title {
    margin: 0;
    text-transform: uppercase;
}

.content-cta-text {
    line-height: 1.5;
}

.content-cta-text p:last-child {
    margin-bottom: 0;
}

.content-cta-content .dv-button-wrap {
    margin-top: 25px;
}

/* ==========================================================================
   LOYALTY / INFO SECTION
   ========================================================================== */

.loyalty-info-section {
	width: 100%;
	background: #f2f2f0;
}

.loyalty-info-inner {
	display: grid;
	grid-template-columns: minmax(0, 1040fr) minmax(0, 721fr);
	align-items: center;
	column-gap: 55px;

	width: min(1800px, calc(100% - 60px));
	margin: 0 auto;
	padding: 30px 0;
}

.loyalty-info-visual,
.loyalty-info-content {
	min-width: 0;
}
.loyalty-info-content .dv-button-wrap {
    margin-bottom: 30px;
}
.loyalty-info-picture,
.loyalty-info-image {
	display: block;
	width: 100%;
}

.loyalty-info-image {
	height: auto;
}

.loyalty-info-title,
.loyalty-info-steps-title {
	margin: 0 0 20px;
	text-transform: uppercase;
}
.loyalty-info-steps-title {
    margin-top: 35px;
}
/* Image right
   ========================================================================== */

.loyalty-info-section.image-right .loyalty-info-inner {
	grid-template-columns: minmax(0, 721fr) minmax(0, 1040fr);
}

.loyalty-info-section.image-right .loyalty-info-content {
	order: 1;
}

.loyalty-info-section.image-right .loyalty-info-visual {
	order: 2;
}

/* ==========================================================================
   LOYALTY LEVELS TABLE
   ========================================================================== */

.loyalty-levels-table {
    width: 100%;
}

.loyalty-levels-inner {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    width: min(1800px, calc(100% - 60px));
    margin: 0 auto;
    border-bottom: 1px solid #dcdad7;
}


/* Fixed left column
   ========================================================================== */

.loyalty-levels-labels {
    position: relative;
    z-index: 2;
    min-width: 0;
    background: #fff;
    border-right: 1px solid #dcdad7;
}

.loyalty-levels-label-head {
    min-height: 150px;
    padding: 25px 15px;
}

.loyalty-levels-label-title {
    font-family: var(--font-heading);
    font-size:  50px;
    font-weight: 400;
    text-align: center;
}

.loyalty-levels-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-top: 20px;
}
.loyalty-levels-controls.is-hidden {
    visibility: hidden;
    pointer-events: none;
}
.loyalty-levels-pagination {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
}

.loyalty-levels-current {
    color: var(--bg-pink);
}

.loyalty-levels-arrows {
    display: flex;
    gap: 12px;
}

.loyalty-levels-prev,
.loyalty-levels-next {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--bg-pink);
    border-radius: 50%;
    background: transparent;
    color: var(--bg-pink);
    transition: color .2s ease, background-color .2s ease, opacity .2s ease;
}

.loyalty-levels-prev:hover,
.loyalty-levels-next:hover {
    background: var(--bg-pink);
    color: #fff;
}

.loyalty-levels-prev.swiper-button-disabled,
.loyalty-levels-next.swiper-button-disabled {
    opacity: .3;
    pointer-events: none;
}


/* Left labels
   ========================================================================== */

.loyalty-levels-row-label {
    display: flex;
    align-items: center;
    min-height: 92px;
    padding: 15px;
    border-top: 1px solid #dcdad7;
}


/* Swiper
   ========================================================================== */

.loyalty-levels-slider {
    min-width: 0;
    width: 100%;
    overflow: hidden;
}

.loyalty-levels-slider .swiper-wrapper {
    align-items: stretch;
}

.loyalty-level-slide {
    height: auto;
    border-right: 1px solid #dcdad7;
}

.loyalty-level-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    min-height: 150px;
    padding: 20px 15px;
    text-align: center;
}

.loyalty-level-title {
    font-family: var(--font-heading);
    font-size: 50px;
    font-weight: 400;
}

.loyalty-level-condition {
    margin-top: 15px;
}

.loyalty-level-value {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 92px;
    padding: 15px;
    border-top: 1px solid #dcdad7;
}

.loyalty-level-value .icon-check {
    color: var(--bg-pink);
    font-size: 25px;
}


/* Bottom note
   ========================================================================== */

.loyalty-levels-note {
    width: min(1800px, calc(100% - 60px));
    margin: 0 auto;
    padding-top: 12px;
    font-size: 15px;
}

.loyalty-levels-note p {
    margin: 0;
}


/* Responsive
   ========================================================================== */

@media (max-width: 1000px) {
    .loyalty-levels-inner {
        grid-template-columns: minmax(250px, 33%) minmax(0, 67%);
    }

    .loyalty-level-slide {
        width: 100%;
    }
}

@media (max-width: 600px) {
    .loyalty-levels-inner {
        width: calc(100% - 30px);
        grid-template-columns: minmax(0, 50%) minmax(0, 50%);
    }

    .loyalty-levels-note {
        width: calc(100% - 30px);
    }

    .loyalty-levels-label-title,
    .loyalty-level-title {
        font-size: 30px;
    }

    .loyalty-levels-label-head,
    .loyalty-level-head {
        min-height: 148px;
    }
    .loyalty-level-head {
        padding:20px 16px;
    }
    .loyalty-levels-row-label,
    .loyalty-level-value {
        min-height: 85px;
        padding: 10px;
    }

    .loyalty-levels-prev,
    .loyalty-levels-next {
        width: 36px;
        height: 36px;
    }
}

/* ==========================================================================
   LOYALTY JOIN
   ========================================================================== */

.loyalty-join-section {
    width: 100%;
    background: #f2f2f0;
}
section.loyalty-join-section.yellow-bg {
    background: var(--bg-yellow);
}
.loyalty-join-inner {
    display: grid;
    grid-template-columns: minmax(0, 647px) minmax(0, 1008px);
    align-items: center;
    column-gap: 55px;
    width: min(1800px, calc(100% - 60px));
    margin: 0 auto;
    padding:30px 0;
    padding-left: 90px;
}

section.loyalty-join-section.dark-btn.yellow-bg .loyalty-join-inner {
    grid-template-columns: minmax(0, 724px) minmax(0, 954px);
}

.loyalty-join-content,
.loyalty-join-visual {
    min-width: 0;
}

.loyalty-join-title {
    margin: 0 0 25px;
    text-transform: uppercase;
}

.loyalty-join-title.align-left {
    text-align: left;
}

.loyalty-join-title.align-center {
    text-align: center;
}

.loyalty-join-title.align-right {
    text-align: right;
}

.loyalty-join-text {
    line-height: 1.5;
}

.loyalty-join-text p {
    margin: 0 0 25px;
}

.loyalty-join-text p:last-child {
    margin-bottom: 0;
}

.loyalty-join-content .dv-button-wrap {
    margin-top: 45px;
}

.loyalty-join-picture,
.loyalty-join-image {
    display: block;
    width: 100%;
}

.loyalty-join-image {
    max-width: 100%;
    height: auto;
}

/* ==========================================================================
   PRIVATE PARTY BLOCK
   ========================================================================== */

.tci-block {
    width: 100%;
}
section.tci-block.layout-image-left {
    background: #f2f2f0;
}
section.tci-block.layout-image-left.nobg {
    background: none;
}
.tci-block-inner {
    display: grid;
    grid-template-columns: minmax(0, 1060fr) minmax(0, 685fr);
    align-items: center;
    column-gap: 55px;
    width: min(1800px, calc(100% - 60px));
    margin: 0 auto;
    padding: 30px 0;
}

.tci-block-visual,
.tci-block-content {
    min-width: 0;
}

.tci-block-picture,
.tci-block-image {
    display: block;
    width: 100%;
}

.tci-block-image {
    max-width: 100%;
    height: auto;
}

.tci-block-title {
    margin: 0 0 30px;
    text-transform: uppercase;
}

.tci-block-title.align-left {
    text-align: left;
}

.tci-block-title.align-center {
    text-align: center;
}

.tci-block-title.align-right {
    text-align: right;
}

.tci-block-text {
    line-height: 1.5;
}
.tci-block-text.before {
    margin-bottom: 30px;
}
.tci-block-text p {
    margin: 0 0 20px;
}

.tci-block-text p:last-child {
    margin-bottom: 0;
}

.tci-block.layout-image-right .tci-block-inner {
    grid-template-columns: minmax(0, 685fr) minmax(0, 1060fr);
}
section.tci-block.layout-image-right.tc-img-1300 .tci-block-inner {
    grid-template-columns: minmax(0, 445fr) minmax(0, 1300fr);
    column-gap: 50px;
}

.tci-block.layout-image-left .tci-block-visual {
    grid-column: 1;
    grid-row: 1;
}

.tci-block.layout-image-left .tci-block-content {
    grid-column: 2;
    grid-row: 1;
}

.tci-block.layout-image-right .tci-block-content {
    grid-column: 1;
    grid-row: 1;
}

.tci-block.layout-image-right .tci-block-visual {
    grid-column: 2;
    grid-row: 1;
}

/* ==========================================================================
   DV LOCATIONS
   ========================================================================== */

.dv-locations-section {
    width: 100%;
}

.dv-locations-inner {
    width: min(1620px, calc(100% - 60px));
    margin: 0 auto;
    padding: 15px 0 50px;
}

.dv-locations-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 30px;
}

.dv-locations-title {
    margin: 0;
    text-transform: uppercase;
}
.dv-locations-controls {
    display: flex;
    align-items: center;
    gap: 25px;
}
.dv-locations-controls {
    display: none;
}
.dv-locations-pagination {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
}

.dv-locations-current {
    color: var(--bg-pink);
}

.dv-locations-arrows {
    display: flex;
    gap: 10px;
}

.dv-locations-prev,
.dv-locations-next {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--bg-pink);
    border-radius: 50%;
    background: transparent;
    color: var(--bg-pink);
}

.dv-locations-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 100px;
}

.dv-location-card {
    min-width: 0;
}

.dv-location-image-wrap,
.dv-location-image {
    display: block;
    width: 100%;
}

.dv-location-image {
    height: auto;
}

.dv-location-title {
    max-width: 250px;
    margin: 20px auto 0;
    font-family: var(--font-heading);
    font-size: 40px;
    font-weight: 400;
    text-transform: uppercase;
}

.dv-location-meta {
    max-width: 250px;
    margin: 15px auto 0;
}

.dv-location-places,
.dv-location-address {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dv-location-address {
    margin-top: 12px;
}

.dv-location-places .icon,
.dv-location-address .icon {
    flex: 0 0 auto;
    color: var(--bg-pink);
}
.dv-location-places .icon {
    font-size: 22px;
}
.dv-location-address .icon {
    font-size: 18px;
}
/* ==========================================================================
   PARTY OPPORTUNITIES
   ========================================================================== */

.party-opportunities-section {
    width: 100%;
    background: #f2f2f0;
}

.party-opportunities-inner {
    width: min(1800px, calc(100% - 60px));
    margin: 0 auto;
    padding: 50px 0;
}

.party-opportunities-title {
    margin: 0 0 55px;
    text-align: center;
    text-transform: uppercase;
}

.party-opportunities-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 85px;
}

.party-opportunity {
    min-width: 0;
    text-align: center;
}

.party-opportunity-visual,
.party-opportunity-picture,
.party-opportunity-image {
    display: block;
    width: 100%;
}

.party-opportunity-image {
    height: auto;
}

.party-opportunity-content {
    padding-top: 25px;
}

.party-opportunity-title {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
}

.party-opportunity-highlight {
    margin-top: 20px;
    font-family: var(--font-heading);
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1;
    color: var(--bg-cyan);
}

.party-opportunity-text {
    margin-top: 20px;
    line-height: 1.5;
}

.party-opportunity-text p {
    margin: 0;
}
.party-opportunity-button {
    margin-top: 30px;
}
.vc_row.dv-feature-group-overflow .dv-feature-group {
    margin-bottom: -38px;
}
.dv-feature-group {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: start;
    width: 1265px;
    max-width: 100%;
    margin: 0 auto;
    background: #fbfaf8;
    padding: 15px;
    border-radius: 20px;
    gap: 10px;
}

.dv-feature-item {
    position: relative;
    display: grid;
    grid-template-columns: 56px 1fr;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    gap: 5px;
}
.dv-feature-item:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 0;
    right: -5px;
    width: 1px;
    height: 100%;
    background: #dcdad7;
}
.dv-feature-item-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
}

.dv-feature-item-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.dv-feature-item-text p{
    margin: 0;
}

/* ==========================================================================
   ABOUT DALI POEM
   ========================================================================== */

.about-dali-poem {
    background: #f2f2f0;
}

.about-dali-poem-inner {
    display: grid;
    grid-template-columns: minmax(0, 34%) minmax(0, 36%) minmax(0, 30%);
    align-items: center;
    gap: 0;
    max-width: 1920px;
    margin: 0 auto;
    padding: 30px;
}

.about-dali-poem-portrait {
    align-self: stretch;
    display: flex;
    align-items: center;
}

.about-dali-poem-portrait-picture,
.about-dali-poem-decoration-picture {
    display: block;
    width: 100%;
}

.about-dali-poem-portrait-picture img,
.about-dali-poem-decoration-picture img {
    display: block;
    width: 100%;
    height: auto;
}

.about-dali-poem-content {
    padding: 60px 25px;
}

.about-dali-poem-title {
    margin: 0 0 12px;
}

.about-dali-poem-description {
    margin-bottom: 35px;
}

.about-dali-poem-verses {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
}

.about-dali-poem-verse p {
    margin: 0 0 15px;
}

.about-dali-poem-decoration {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Tablet */

@media (max-width: 1199px) {

    .about-dali-poem-inner {
        grid-template-columns: 32% 43% 25%;
        padding: 0 20px;
    }

    .about-dali-poem-content {
        padding: 40px 15px;
    }

    .about-dali-poem-verses {
        gap: 15px;
    }
}

/* Mobile */

@media (max-width: 767px) {

    .about-dali-poem-inner {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
        padding: 35px 20px;
    }

    .about-dali-poem-portrait {
        grid-column: 1;
        grid-row: 1;
    }

    .about-dali-poem-decoration {
        grid-column: 2;
        grid-row: 1;
    }

    .about-dali-poem-content {
        grid-column: 1 / -1;
        grid-row: 2;
        padding: 0;
    }

    .about-dali-poem-verses {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }
}

@media (max-width: 480px) {

    .about-dali-poem-verses {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

/* ==========================================================================
   ABOUT INTRO
   ========================================================================== */

.about-intro-section {
    width: 100%;
}

.about-intro-inner {
    display: grid;
    grid-template-columns: minmax(0, 1020fr) minmax(0, 750fr);
    align-items: center;
    column-gap: 70px;
    width: min(1800px, calc(100% - 60px));
    margin: 0 auto;
    padding: 30px 0;
}

.about-intro-visual,
.about-intro-content {
    min-width: 0;
}

.about-intro-picture,
.about-intro-image {
    display: block;
    width: 100%;
}

.about-intro-image {
    max-width: 100%;
    height: auto;
}
.about-intro-title {
    margin: 0 0 25px;
    text-transform: uppercase;
}
.about-intro-title span {
	color: var(--bg-cyan);
}
.about-intro-text p {
    margin: 0 0 20px;
}
.about-intro-text p:last-child {
    margin-bottom: 0;
}
.about-intro-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 35px;
    gap: 30px;
}

.about-intro-stat {
	min-width: 0;
    position: relative;
}
.about-intro-stat:not(:last-of-type)::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: 100%;
    background-color: #d8d8d8;
}
.about-intro-stat:first-child {
	padding-left: 0;
}

.about-intro-stat:last-child {
	padding-right: 0;
	border-right: 0;
}

.about-intro-stat-value {
	margin-bottom: 4px;
	color: var(--bg-pink);
	font-family: var(--font-heading);
	font-size: 40px;
	font-weight: 500;
	line-height: 1;
}

.about-intro-stat-text {
	font-family: var(--font-heading);
	font-size: 30px;
	font-weight: 500;
	line-height: 1.05;
	text-transform: uppercase;
}

/* ==========================================================================
   ABOUT EXP STEPS
   ========================================================================== */
.about-experience-section {
	width: 100%;
	background: #303338;
}

.about-experience-inner {
	display: grid;
	grid-template-columns: 325px minmax(0, 1fr);
	gap: 30px;
	width: min(1800px, calc(100% - 60px));
	margin: 0 auto;
	padding: 35px 0;
}

.about-experience-intro {
	align-self: center;
}

.about-experience-title {
	margin: 0 0 25px;
	color: #fff;
	text-transform: uppercase;
}

.about-experience-title span {
	display: block;
	color: var(--bg-cyan);
}

.about-experience-text {
	color: #fff;
}


/* Steps */

.about-experience-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 35px;

	counter-reset: experience-step;
}

.about-experience-step {
	min-width: 0;
	counter-increment: experience-step;
}

.about-experience-step-image {
	margin-bottom: 18px;
	overflow: hidden;
	border-radius: 50px;
}

.about-experience-step-image img {
	display: block;
	width: 100%;
	height: auto;
}

.about-experience-step-content {
    position: relative;
    min-height: 60px;
    padding-left: 70px;
    padding-top: 20px;
}

.about-experience-step-content::before {
	content: counter(experience-step);

	position: absolute;
	top: 0;
	left: 0;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 55px;
	height: 55px;

	border-radius: 50%;

	background: var(--bg-pink);
	color: #fff;

	font-family: var(--font-heading);
	font-size: 45px;
	line-height: 1;
}

.about-experience-step-title {
	margin-bottom: 10px;

	color: #fff;
	font-family: var(--font-heading);
	font-size: 30px;
	text-transform: uppercase;
}

.about-experience-step-text {
	color: #fff;
    white-space: pre-line;

}


/* ==========================================================================
   ABOUT CTA
   ========================================================================== */
.about-cta {
	width: 100%;
}

.about-cta-inner {
	position: relative;
	display: flex;
	align-items: center;
	gap: 115px;
	width: min(1800px, calc(100% - 60px));
	margin: 0 auto;
	padding: 70px 15px 30px 120px;
	background: var(--bg-yellow);
	border-radius: 60px;
	overflow: hidden;
}


/* Title */

.about-cta-title {
	position: relative;
	z-index: 2;
	flex: 0 0 auto;
	font-family: var(--font-heading);
	text-transform: uppercase;
}

.about-cta-title-main,
.about-cta-title-highlight {
	display: block;
}

.about-cta-title-highlight {
	color: var(--bg-cyan);
}
/* Content */
.about-cta-content {
	position: relative;
	z-index: 2;
	flex: 0 0 auto;
    text-align: center;
}
.about-cta-text {
    text-align: left;
    margin-bottom: 30px;
}
section.loyalty-join-section.dark-btn .dv-button,
section.about-cta .dv-button {
	background: var(--bg-dark);
	color: #fff;
}


/* Decorative image */

.about-cta-art {
	position: absolute;
	top: 0;
	right: 10px;
	bottom: -60px;
	z-index: 1;
	pointer-events: none;
}

.about-cta-art img {
	display: block;
	width: auto;
	height: 100%;
}

/* ==========================================================================
   CONTACT SECTION
   ========================================================================== */

.contact-section {
	width: 100%;
}

.contact-inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	column-gap: 120px;
	width: min(1620px, calc(100% - 60px));
	margin: 0 auto;
	padding: 30px 0;
}

.contact-locations,
.contact-form-column {
	min-width: 0;
}

.contact-form-column {
	display: flex;
	flex-direction: column;
    background: #f2f2f0;
    padding: 40px;
    border-radius: 20px;
}


/* Main titles
   ========================================================================== */

.title-icon-wrap {
    display: flex;
    align-items: center;
    gap:10px;
    margin: 0 0 40px;
}
.title-icon-wrap span.icon {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-cyan);
    color: #fff;
    font-size: 40px;
    border-radius: 50%;
}
.contact-column-title {
    margin-top: 7px;
	text-transform: uppercase;
}
.contact-column-title em {
	color: var(--bg-cyan);
	font-style: normal;
}


/* Tabs
   ========================================================================== */

.contact-tabs {
	display: flex;
    flex-wrap: wrap;
	align-items: flex-end;
	width: 100%;
	gap: 45px;
	margin-bottom: 30px;
}

.contact-tab {
	position: relative;
	flex: 0 0 auto;
	padding: 15px 0 15px;
	border: 0;
	background: transparent;
	color: var(--color-text);
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	font-size: 17px;
	font-weight: 600;
}

.contact-tab:not(:last-of-type)::before {
	content: '';
	position: absolute;
	right: -23px;
	top: 50%;
	width: 1px;
	height: 30px;
	transform: translateY(-50%);
	background: #bcb8b4;
}

.contact-tab::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 100%;
	height: 2px;
	background: var(--bg-pink);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .2s ease;
}

.contact-tab:hover::after,
.contact-tab.is-active::after {
	transform: scaleX(1);
}


/* Panels
   ========================================================================== */

.contact-tab-panels {
	width: 100%;
}

.contact-tab-panel {
	display: none;
}

.contact-tab-panel.is-active {
	display: block;
}


/* Location
   ========================================================================== */

.contact-location {
	width: 100%;
}

.contact-location-visual {
	position: relative;
	width: 100%;
	margin-bottom: 55px;
}

.contact-location-image {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	border-radius: 45px;
}


/* Location overlay
   ========================================================================== */

.contact-location-map-info {
	position: absolute;
	left: 50%;
	bottom: -25px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	width: calc(100% - 90px);
	min-height: 70px;
	padding: 12px 25px;
	background: #fff;
	border-radius: 18px;
	transform: translateX(-50%);
}

.contact-location-map-address {
	min-width: 0;
}

.contact-location-title {
	margin-bottom: 5px;
	color: var(--bg-pink);
	font-weight: 600;
	text-transform: uppercase;
}

.contact-location-address {
	color: var(--color-text);
	font-weight: 500;
}


/* Directions
   ========================================================================== */

.contact-location-directions {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	gap: 15px;
	min-height: 45px;
	padding: 8px 25px;
	border: 1px solid var(--bg-yellow);
	border-radius: 25px;
	color: var(--color-text);
	text-transform: uppercase;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: none;
}
.contact-location-directions:before {
    content: '';
    display: block;
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--bg-yellow);
    transform: translateX(-101%);
    transition: transform 280ms cubic-bezier(.22, 1, .36, 1);
}
.contact-location-directions:is(:hover,:focus-visible):before {
    transform: translateX(0);
}
.contact-location-directions:is(:hover,:focus-visible) {
    transform: none;
}



/* Location details
   ========================================================================== */

.contact-location-details {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	width: 100%;
}

.contact-location-detail {
	display: flex;
	align-items: center;
	gap: 20px;
	min-width: 0;
	padding: 20px 30px;
}

.contact-location-detail:nth-child(odd) {
	border-right: 1px solid #ddd;
}

.contact-location-detail:nth-child(n+3) {
	border-top: 1px solid #ddd;
}


/* Icons
   ========================================================================== */

.contact-location-detail-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 45px;
	width: 45px;
	height: 45px;
	border-radius: 50%;
	background: rgba(253, 24, 86, .1);
	color: var(--bg-pink);
}

.contact-location-detail-icon .icon {
	font-size: 22px;
}
.contact-location-detail-icon .icon-phone {
    font-size: 28px;
}
.contact-location-detail-icon .icon-email {
	font-size: 29px;
}

.contact-location-detail-icon .icon-location {
	font-size: 21px;
}


/* Detail content
   ========================================================================== */

.contact-location-detail-content {
	min-width: 0;
}

.contact-location-label {
	margin-bottom: 4px;
	color: var(--bg-pink);
	font-weight: 600;
}

.contact-location-value {
	display: block;
	color: var(--color-text);
	font-weight: 500;
}

a.contact-location-value {
	transition: color .2s ease;
}

a.contact-location-value:hover {
	color: var(--bg-pink);
}


/* Contact Form 7
   ========================================================================== */

.contact-form {
    width: 100%;
}
.contact-form .wpcf7-list-item {
    margin: 0;
}
.contact-form .wpcf7-form  .cf-row.two-col{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 30px;
    row-gap: 20px;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form input[type="number"],
.contact-form select,
.contact-form textarea {
    width: 100%;
    max-width: 100%;
    border: 1px solid #d0d0d0;
    border-radius: 10px;
    background: #fff;
    color: var(--color-text);
    font: inherit;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form input[type="number"],
.contact-form select {
    min-height: 52px;
    padding: 10px 15px;
}

.contact-form textarea {
    min-height: 160px;
    padding: 15px;
    resize: vertical;
}
button.dv-button {
    outline:none;
    border: none;
}
.contact-form .wpcf7-spinner {
    position: absolute;
}

.contact-form .wpcf7-response-output {
    grid-column: 1 / -1;
    margin: 15px 0 0;
}

/* ==========================================================================
   CALENDAR LOCATION BLOCK
   ========================================================================== */

.calendar-location-block {
    width: 100%;
}

.calendar-location-inner {
    display: grid;
    align-items: center;
    column-gap: 55px;
    width: min(1800px, calc(100% - 60px));
    margin: 0 auto;
    padding: 30px 0;
}

.calendar-location-block.layout-image-left .calendar-location-inner {
    grid-template-columns: minmax(0, 1034fr) minmax(0, 711fr);
}

.calendar-location-block.layout-image-right .calendar-location-inner {
    grid-template-columns: minmax(0, 711fr) minmax(0, 1034fr);
}

.calendar-location-visual,
.calendar-location-content {
    min-width: 0;
}

.calendar-location-picture,
.calendar-location-image {
    display: block;
    width: 100%;
}

.calendar-location-image {
    max-width: 100%;
    height: auto;
}

.calendar-location-block.layout-image-left .calendar-location-visual {
    grid-column: 1;
    grid-row: 1;
}

.calendar-location-block.layout-image-left .calendar-location-content {
    grid-column: 2;
    grid-row: 1;
}

.calendar-location-block.layout-image-right .calendar-location-content {
    grid-column: 1;
    grid-row: 1;
}

.calendar-location-block.layout-image-right .calendar-location-visual {
    grid-column: 2;
    grid-row: 1;
}

.calendar-location-title {
    margin: 0 0 25px;
    text-transform: uppercase;
}

.calendar-location-text p {
    margin: 0 0 20px;
}

.calendar-location-text p:last-child {
    margin-bottom: 0;
}

.calendar-location-content .dv-button-wrap {
    margin-top: 30px;
    gap:30px;
}

/* ==========================================================================
   WINE LIST
   ========================================================================== */

.wine-list {
	width: 100%;
    padding-bottom: 30px;
}

.wine-list-inner {
	display: grid;
	grid-template-columns: 420px minmax(0, 1fr);
	align-items: stretch;
	margin: 0 auto;
}

.wine-list-visual {
	min-width: 0;
}

.wine-list-winery-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}


/* ==========================================================================
   WINE GROUPS
   ========================================================================== */

.wine-list-groups {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
}

.wine-group {
	min-width: 0;
	padding: 25px 30px 35px;
	border-left: 1px solid #cbcbcb;
    height: 100%;
}


/* Group title
   ========================================================================== */

.wine-group-title {
	position: relative;
	margin-bottom: 25px;
	padding-bottom: 10px;
	font-family: var(--font-heading);
    font-size: 35px;
    font-weight: 500;
	text-transform: uppercase;
}

.wine-group-title::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: var(--bg-yellow);
}

.wine-group-yellow .wine-group-title::after {
	background: var(--bg-yellow);
}

.wine-group-pink .wine-group-title::after {
	background: var(--bg-pink);
}

.wine-group-cyan .wine-group-title::after {
	background: var(--bg-cyan);
}


/* ==========================================================================
   PRODUCTS
   ========================================================================== */

.wine-group-products {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.wine-product {
	display: grid;
	grid-template-columns: 70px minmax(0, 1fr) auto;
	column-gap: 20px;
    align-items: center;
}


/* Product image
   ========================================================================== */

.wine-product-image {
	display: flex;
	align-items: center;
	justify-content: center;
}

.wine-product-image img {
	display: block;
	width: auto;
	max-width: 100%;
	height: 100%;
	object-fit: contain;
}


/* Product title
   ========================================================================== */

.wine-product-title {
	min-width: 0;
	font-family: var(--font-heading);
    font-size: 35px;
    font-weight: 500;
}


/* Product price
   ========================================================================== */

.wine-product-price {
    font-size: 35px;
    font-weight: 500;
	color: var(--bg-pink);
    font-family: var(--font-heading);
	white-space: nowrap;
}

.wine-product-price del {
	display: none;
}

.wine-product-price ins {
	text-decoration: none;
}


/* ==========================================================================
   OPTIONAL GROUP SPACING
   ========================================================================== */

.wine-group:nth-child(n+3) {
	padding-top: 0;
}
.tci-block-text .notice {
    margin-bottom: 20px;
    background: #fff7da;
    padding: 10px 15px;
    border-radius: 10px;
}
.tci-block-text .notice.info {
    background: #def3f7;
    display: flex;
    align-items: center;
    gap: 10px;
}
.tci-block-text .notice.info .icon {
    font-size: 35px;
    width: unset;
    height: unset;
    line-height: 1;
    margin: 0;
    vertical-align: unset;
    flex: 0;
}

/* ==========================================================================
   FAQs
   ========================================================================== */

.faq-section {
	width: 100%;
	background: #f2f2f0;
}

.faq-inner {
	width: min(1800px, calc(100% - 60px));
	margin: 0 auto;
	padding: 60px 0;
}

.faq-title {
	margin: 0 0 25px;
	text-transform: uppercase;
}

.faq-title em {
	color: var(--bg-cyan);
	font-style: normal;
}

.faq-items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	gap: 18px 30px;
}

.faq-item {
	position: relative;
	min-width: 0;
	z-index: 1;
}

.faq-item.is-active {
	z-index: 10;
}

.faq-question {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 15px;
	width: 100%;
	padding: 15px 30px;
	border: 0;
	border-radius: 10px;
	background-color: #fbfaf8;
	color: var(--color-text);
	text-align: left;
	cursor: pointer;
    transition:
		border-radius .2s ease,
		background-color .2s ease,
		transform .2s ease;
}
.faq-item.is-active .faq-question {
    background-color: #fff;
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}

.faq-toggle {
	position: relative;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--bg-yellow);
}

.faq-toggle::before,
.faq-toggle::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 2px;
	background: #fff;
	transform: translate(-50%, -50%);
}

.faq-toggle::after {
	transform: translate(-50%, -50%) rotate(90deg);
	transition: transform .2s ease;
}

.faq-item.is-active .faq-toggle {
	background: var(--bg-cyan);
}

.faq-item.is-active .faq-toggle::after {
	transform: translate(-50%, -50%) rotate(0);
}

.faq-question-text {
	min-width: 0;
}

.faq-answer {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1;

	visibility: hidden;

	width: 100%;

	opacity: 0;

	transform: translateY(-8px) scaleY(.96);
	transform-origin: top center;

	clip-path: inset(0 0 100% 0);

	pointer-events: none;

	transition:
		opacity .22s ease,
		transform .28s cubic-bezier(.2, .8, .2, 1),
		clip-path .32s cubic-bezier(.2, .8, .2, 1),
		visibility 0s linear .32s;
}

.faq-answer-inner {
	padding: 0 30px 15px;

	border-radius: 0 0 10px 10px;

	background: #fff;
}

.faq-item.is-active .faq-answer {
	visibility: visible;

	opacity: 1;

	transform: translateY(0) scaleY(1);

	clip-path: inset(0 0 0 0);

	pointer-events: auto;

	transition:
		opacity .22s ease,
		transform .28s cubic-bezier(.2, .8, .2, 1),
		clip-path .32s cubic-bezier(.2, .8, .2, 1),
		visibility 0s;
}

/* ==========================================================================
   HOME VIDEO
   ========================================================================== */

.home-video {
    position: relative;
    width: 100%;
    background: #000;
}
.home-video-background {
    display: block;
    width: 100%;
    height: auto;
    pointer-events: none;
}
.home-video-background {
    pointer-events: none;
}
.home-video-image {
    position: absolute;
}
.home-video-image img {
    max-width: 90%;
}
@media(min-width:1921px) {
    .home-video-image {
        bottom: -60px;
        left:14%;
    }
}
@media(max-width:1920px) and (min-width:1521px) {
    .home-video-image {
        bottom: -60px;
        left:2%;
    }
}
@media(max-width:1700px) {
    .wine-list-inner {
        grid-template-columns: 1fr;
    }
}
@media(max-width:1520px) {
    .home-video-image {
        bottom: -50px;
        left: 15px;
    }
}
@media(max-width:1519px) and (min-width:1201px) {
    .home-padding-mobile section.experience-section {
        padding-top: 20px;
    }
    .home-padding-mobile .experience-inner {
        grid-template-columns: minmax(0, 361px) minmax(0, 1fr);
        column-gap: 30px;
    }
    .home-padding-mobile .experience-text ul {
        margin-bottom: 10px;
    }
    .home-padding-mobile .experience-content .dv-button-wrap {
        margin-top: 0;
        margin-bottom: 15px;
    }
    .home-padding-mobile .experience-visual {
        margin-bottom: 35px;
    } 
}
@media(max-width:1200px) {
    .wine-group-products {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }    
    .wine-product {
        grid-template-columns: 70px minmax(0, 1fr);
        column-gap: 20px;
        align-items: center;
    }
    .wine-product-image {
        grid-column: 1;
        grid-row: 1 / 3;
    }
    .wine-product-title {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
    }
    .wine-product-price {
        grid-column: 2;
        grid-row: 2;
        min-width: 0;
    }    
    .wine-list-groups {
        grid-template-columns: 1fr;
    }
    .wine-group {
        border-left: 0;
        padding: 25px 15px 35px;
    } 
    .vc_row.wpb_row.vc_row-fluid.loyal-program-content-top {
        padding: 0 15px;
    }  
    .loyal-program-content-top p br {
        display: none;
    } 
    .loyal-program-content-top p {
        text-align: left !important;
    }
    .loyal-program-content-top .dv-title.align-center {
        text-align: left;
    }
}
@media(min-width:601px) and (max-width:1200px) {
    .home-video-image {
        bottom: -125px;
        left: unset;
        right:2%;
    }    
    .home-video-image img {
        max-width: 90%;
        margin-left: auto;
    }
    .home-padding-mobile .experience-section {
        padding-top: 100px;
    }
}
@media(max-width:600px) {
    .home-video-image {
        bottom: -100px;
        left: 2%;
    }    
    .home-video-image img {
        max-width: 355px;
        width:100%;
    }
    .home-padding-mobile .experience-section {
        padding-top: 100px;
    }     
}
/* ==========================================================================
   HOME - UPCOMING EVENTS
   ========================================================================== */

.home-upcoming-events {
    width: min(1800px, calc(100% - 30px));
    margin: 0 auto;
    overflow: hidden;
}


/* Heading
   ========================================================================== */

.home-upcoming-events-heading {
    text-align: center;
    margin-bottom: 24px;
}

.home-upcoming-events-title {
    margin: 0;
    text-transform: uppercase;
}

.home-upcoming-events-title em {
    color: var(--bg-cyan);
    font-style: normal;
}

.home-upcoming-events-subtitle {
    margin-top: 10px;
}


/* Tabs
   ========================================================================== */

.home-upcoming-events-tabs {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
    margin-bottom: 25px;
    border: 0;
}

.home-upcoming-events-tab {
    position: relative;
    min-height: unset;
    padding: 6px 28px;
    border: 0;
    background: transparent;
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    cursor: pointer;
}

.home-upcoming-events-tab + .home-upcoming-events-tab {
    border-left: 1px solid #bcb8b4;
}

.home-upcoming-events-tab::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 100%;
    height: 68px;
    background: url(../svgs/paintbrush-yellow.svg) center / 100% 100% no-repeat;
    transform: translate(-50%, -50%);
    clip-path: inset(0 100% 0 0);
    transition: clip-path .15s ease;
    z-index: -1;
}

.home-upcoming-events-tab.is-active::after {
    clip-path: inset(0 0 0 0);
    transition: clip-path .35s ease;
}

/* Panel layout
   ========================================================================== */

.home-upcoming-events-panel {
    display: none;
    grid-template-columns: minmax(0, 295px) minmax(0, 1fr);
    column-gap: 20px;
    position: relative;
    align-items: start;
}

.home-upcoming-events-panel.is-active {
    display: grid;
}


/* Left column
   ========================================================================== */

.home-upcoming-events-location-info {
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.home-upcoming-events-location-info .dv-button {
    width: fit-content;
    margin-bottom: 20px;
    padding: 12px 15px 10px;
    width: 100%;
    max-width: 275px;

}
.home-upcoming-events-location-title {
    margin-bottom: 14px;
    font-family: var(--font-heading);
    font-size: 60px;
    font-weight: 500;
    text-transform: uppercase;
}

.home-upcoming-events-location-title em {
    color: var(--bg-cyan);
    font-style: normal;
    display: block;
}

.home-upcoming-events-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 42px;
}

/* Carousel
   ========================================================================== */

.home-upcoming-events-carousel {
    position: relative;
    min-width: 0;
    min-height: 502px;
    padding-top: 0;
}
.hidden-desktop {
    display: none;
}
.home-upcoming-events-slider {
    width: 100%;
    overflow: hidden;
}

.home-upcoming-events-slider .swiper-wrapper {
    align-items: stretch;
}

.home-upcoming-events-slider .swiper-slide {
    width: 356px;
    height: auto;
    flex-shrink: 0;
}

.home-upcoming-events-slider .event-card {
    width: 100%;
    height: 100%;
}


/* Pagination
   ========================================================================== */

.home-upcoming-events-pagination {
    position: static;
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
}

.home-upcoming-events-pagination .current {
    color: var(--bg-pink);
}

.home-upcoming-events-pagination .total {
    color: #282828;
}


/* Arrows
   ========================================================================== */

.home-upcoming-events-arrows {
    position: static;
    display: flex;
    align-items: center;
    gap: 14px;
    z-index: auto;
}

.home-upcoming-events-arrows.is-hidden {
    display: none;
}

.home-upcoming-events-prev,
.home-upcoming-events-next {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid #bbb7b3;
    border-radius: 50%;
    background: transparent;
    color: #282828;
    font-size: 14px;
    cursor: pointer;
    transition:
        border-color .2s ease,
        color .2s ease;
}

.home-upcoming-events-prev:hover,
.home-upcoming-events-prev:has(+ .home-upcoming-events-next.swiper-button-disabled),
.home-upcoming-events-next {
    border-color: var(--bg-pink);
    color: var(--bg-pink);
}

.home-upcoming-events-prev.swiper-button-disabled,
.home-upcoming-events-next.swiper-button-disabled {
    cursor: default;
    border: 1px solid #bbb7b3;
    color: #282828;
}


/* Loading / empty
   ========================================================================== */

.home-upcoming-events-panel.is-loading .home-upcoming-events-slider {
    opacity: .45;
    pointer-events: none;
}

.home-upcoming-events-empty {
    width: 100%;
    padding: 30px 0;
}

/* ==========================================================================
   MOBILE STUDIO - TCA BLOCK
   ========================================================================== */
.tci-block-title.mobile-studio {
    font-size: 55px;
}

/* ==========================================================================
   MOBILE STUDIO - INFO
   ========================================================================== */

.loyalty-info-section.image-right .loyalty-info-inner.mobile-studio {
    grid-template-columns: minmax(0, 500fr) minmax(0, 1003fr);
}   
.loyalty-info-inner.mobile-studio .loyalty-info-text {
    margin-bottom: 30px;
}
.loyalty-info-steps-title.underline {
    line-height: 1.3;
    font-size: 50px;
    text-transform: none;
}
.loyalty-info-steps-title.underline i {
    font-style: normal;
    text-transform: none;
    position: relative;
    z-index: 1;
}
.loyalty-info-steps-title.underline i::after {
    content: "";
    width: 100%;
    height: 17px;
    background: #f7e49f;
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: -1;
}
.loyalty-info-steps-block.mobile-studio .loyalty-info-steps.step-list {
    margin-bottom: 40px;
}
.loyalty-info-steps-block.mobile-studio .step-list li {
    min-height: 35px;
    display: flex;
    align-items: center;
}
.loyalty-info-steps-block.mobile-studio .step-list li::before {
    top: 50%;
    transform: translateY(-50%);
}

/* ==========================================================================
   Gallery
   ========================================================================== */
.dv-gallery {
    position: relative;
    width: 100%;
}

.dv-gallery-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    align-items: center;
    gap: 60px;
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    padding: 60px clamp(30px, calc((100vw - 1800px) / 2), 60px);
}

.dv-gallery-content {
    min-width: 0;
}

.dv-gallery-title {
    margin: 0 0 25px;
    font-family: var(--font-heading);
    font-size: clamp(36px, 3vw, 60px);
    font-weight: 500;
    line-height: 1;
}

.dv-gallery-text {
    margin-bottom: 30px;
    font-size: 15px;
    line-height: 1.6;
}

/* Image */
.dv-gallery-visual {
    min-width: 0;
}

.dv-gallery-preview {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    overflow: hidden;
    border-radius: 80px 15px 80px 15px;
}

.dv-gallery-image {
    display: block;
    width: 100%;
    aspect-ratio: 1.5;
    height: auto;
    object-fit: cover;
    transition: transform 400ms ease;
}

.dv-gallery-preview:hover .dv-gallery-image {
    transform: scale(1.04);
}

/* Layout */
.dv-gallery.layout-image-left .dv-gallery-visual {
    grid-column: 1;
    grid-row: 1;
}

.dv-gallery.layout-image-left .dv-gallery-content {
    grid-column: 2;
    grid-row: 1;
}

.dv-gallery.layout-image-right .dv-gallery-content {
    grid-column: 1;
    grid-row: 1;
}

.dv-gallery.layout-image-right .dv-gallery-visual {
    grid-column: 2;
    grid-row: 1;
}

/* Button */
.dv-gallery-open {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 46px;
    padding: 7px 22px;
    border: 0;
    border-radius: 9px;
    background: var(--bg-yellow, #ffcb08);
    color: var(--bg-dark, #282828);
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    cursor: pointer;
}

.dv-gallery-open::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background: var(--bg-cyan);
    clip-path: inset(0 100% 0 0);
    transition: clip-path 280ms cubic-bezier(.22, 1, .36, 1);
    pointer-events: none;
}

.dv-gallery-open:is(:hover, :focus-visible)::before {
    clip-path: inset(0 0 0 0);
}

.dv-gallery-open .icon {
    font-size: 17px;
    transition: transform 240ms ease;
}

.dv-gallery-open:is(:hover, :focus-visible) .icon {
    transform: translateX(4px);
}



/* ==========================================================================
   MOBILE STUDIO - TCI TCA BLOCK
   ========================================================================== */
section.tci-ms-cta {
    background: var(--bg-yellow);
}
.tci-ms-cta-inner {
    max-width: 1580px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 50px 30px;
}
.tci-ms-cta-left {
    border-right: 1px solid #b79619;
}
.tci-ms-cta-right {
    padding-left: 140px;
}
.tci-ms-cta-right .tci-ms-cta-visual {
    padding-left: 110px;
}
.tci-ms-cta-title,
.tci-ms-cta-right-title {
    text-transform: uppercase;
}
.tci-ms-cta-text {
    margin-top: 20px;
    margin-bottom: 40px;
}
.tci-ms-cta-right-text {
    margin-bottom: 35px;
}
.dv-button.tci-ms-cta-button {
    background: var(--bg-dark);
    color: #fff;
}
.dv-button.tci-ms-cta-button {
    background: var(--bg-dark);
    color: #fff;
    padding: 14px 20px 12px;
    margin-bottom: 30px;
}
.tci-ms-cta-contacts {
    display: flex;
    gap: 30px;
}
a.tci-ms-cta-contact {
    display: flex;
    gap: 30px;
    min-width: 250px;
}
.tci-ms-cta-contacts a span.tci-ms-cta-contact-icon {
    background: #fff;
    color: var(--bg-pink);
    width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 40px;
    border-radius: 50%;
}
.tci-ms-cta-contact-label {
    display: block;
    font-weight: 600;
    color: var(--bg-pink);
    font-size: 16px;
}
.tci-ms-cta-contact-value {
    font-size: 18px;
    font-weight: 500;
}
@media(max-width:1500px) {

    .contact-inner,
    .content-cta-inner,
    .loyalty-join-inner,
    .loyalty-info-inner,
    .tci-block-inner,
    .calendar-location-inner,
    .gift-experience-inner,
    .experience-inner,
    .loyalty-inner {
        column-gap:25px;
    }
    .gift-experience-visual {
        align-self: center;
    }
    .loyalty-join-inner {
        padding-left: 0;
    }
}
@media(max-width:1300px) {
    .experience-inner {
        padding: 30px clamp(15px, calc((100vw - 1800px) / 2), 60px) 0;
    }
    .gift-experience-inner,
    .home-upcoming-events {
        width:100%;
    }
    
    .tci-ms-cta-inner,
    .about-experience-inner,
    .about-intro-inner,
    .about-cta-inner,
    .loyalty-levels-inner,
    .loyalty-join-inner,
    .faq-inner,
    .loyalty-info-inner,
    .party-opportunities-inner,
    .tci-block-inner,
    .calendar-location-inner,
    .loyalty-inner {
        width: min(1800px, calc(100% - 30px));
    }
    .contact-inner,
    .dv-locations-inner,
    .content-cta-inner {
        width: min(1620px, calc(100% - 30px));
    }
    .party-opportunities-grid,
    .dv-locations-grid {
        gap:15px;
    }
    .vc_row.dv-feature-group-overflow .dv-feature-group {
        width: calc(100% - 30px);
    }
    .tci-ms-cta-inner {
        padding:30px 0;
    }
    .tci-ms-cta-right {
        padding-left: 30px;
    }
}
@media(max-width:1200px) {
    .contact-inner {
        display: block;
        max-width: 976px;
    }
    .contact-locations {
        margin-bottom: 30px;
    }
    .loyalty-info-section.image-right .loyalty-info-inner {
        grid-template-columns: 1fr;
    }
    .experience-inner {
        display: block;
    }
    section.experience-section.extra-padding-30-top .experience-inner {
        display: grid;
        grid-template-columns: 1fr;
        margin-bottom: 30px;
    }
    .gift-experience-section:is(.home-mobile-studio) .gift-experience-visual {
        margin-top:0;
        margin-bottom:0;
    }
    .gift-experience-inner {
        grid-template-columns: 1fr;
    }
    section.experience-section.extra-padding-30-top .experience-inner .experience-visual {
        grid-column: unset;
        grid-row: unset;
    }
    .experience-content {
        grid-column: unset;
        grid-row: 2;
    }
    .loyalty-inner .loyalty-visual {
        order:0;
    }
    .about-intro-inner,
    .loyalty-info-inner,
    .experience-inner {
        padding-top: 0;
    }
    .tci-block-inner,
    .content-cta-inner {
        padding-top:30px;
    }
    .about-intro-inner {
        padding-bottom: 0;
    }
    .experience-text br {
        display: none;
    }
    .experience-features {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        border-radius: 0;
        max-width: calc(100% + 30px);
        margin-left: -15px;
        margin-right: -15px;
        margin-bottom: 0;
    }
    .dv-feature-group-overflow .experience-features {
        max-width: 100%;
        margin: 0;
    }
    .dv-feature-item,
    .experience-feature {
        grid-template-columns: 45px max-content;
        justify-content: center;
        padding: 25px 20px;
        gap: 10px;
    }
     .dv-feature-item:nth-last-child(n + 3)::before,
    .experience-feature:nth-last-child(n + 3)::before {
        content: '';
        width: 80%;
        height: 1px;
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        background: #dcdad7;
    }
    .experience-feature-text {
        width: 100%;
    }
    .dv-feature-item:nth-child(even)::after,
    .experience-feature:nth-child(even)::after {
        display: none;
    }
    .experience-text ul {
        margin-bottom: 15px;
    }
    .experience-visual {
        margin: 30px 0;
    }
    .about-intro-inner,
    .loyalty-join-inner,
    .loyalty-info-inner {
        grid-template-columns: 1fr;
    }
    .loyalty-join-inner {
        gap:30px;
    }
    .home-upcoming-events-carousel {
        min-height: unset;
        margin-bottom: 30px;
    }
    .home-upcoming-events-controls {
        margin-bottom: 15px;
    }
    .home-upcoming-events-panels .dv-button {
        background: none;
        border: 1px solid var(--bg-yellow);
    }
    .gift-experience-inner {
        padding: 30px clamp(15px, calc((100vw - 1800px) / 2), 60px) 0;
    }
    .gift-experience-content {
        padding: 45px 0 25px;
    }
    .step-list {
        margin-bottom: 30px;
    }
    .loyalty-inner {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 30px 0;
    }
    .loyalty-visual {
        order:1;
    }
    .calendar-location-block .calendar-location-inner,
    .calendar-location-block.layout-image-right .calendar-location-inner,
    .calendar-location-block.layout-image-left .calendar-location-inner,
    .tci-block.layout-image-right .tci-block-inner,
    .tci-block-inner {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .calendar-location-block.layout-image-right .calendar-location-visual,
    .calendar-location-block.layout-image-left .calendar-location-visual
    .tci-block.layout-image-right .tci-block-content,
    .tci-block.layout-image-left .tci-block-content {
        grid-column: 1;
        grid-row: 1;
    }
    .calendar-location-block.layout-image-right .calendar-location-content,
    .calendar-location-block.layout-image-left .calendar-location-content,
    .tci-block.layout-image-right .tci-block-visual,
    .tci-block.layout-image-left .tci-block-visual {
        grid-column: 1;
        grid-row: 2;
    }
    .loyalty-info-section.image-right .loyalty-info-inner.mobile-studio,
    section.tci-block.layout-image-right.tc-img-1300 .tci-block-inner,
    section.loyalty-join-section.dark-btn.yellow-bg .loyalty-join-inner {
        grid-template-columns:1fr;
        gap: 30px;
    }
    .loyalty-info-text {
        margin-bottom: 30px;
    }
    .loyalty-join-content .dv-button-wrap {
        margin-top: 15px;
    }
    .faq-inner {
        padding:30px 0;
    }
    section.loyalty-info-section.extra-padding-30-top .loyalty-info-inner {
        padding-top: 30px;
    }
    .loyalty-info-visual {
        order:1;
    }
    
    .about-experience-text br,
    .about-intro-stat-text br {
        display: none;
    }
    .about-experience-inner {
        grid-template-columns: 1fr;
    }
    .about-experience-title span {
        display: inline-block;
    }
    .about-cta-inner {
        display: block;
        padding:30px;
    }
    .about-cta-content {
        text-align: left;
    }
    .about-cta-art {
        bottom: 0;
        height: 100%;
        display: flex;
        align-items: flex-end;
    }
    .about-cta-art img {
        height: calc((100vw - 100%) / 3);
    }
    .loyalty-info-inner.mobile-studio .loyalty-info-text {
        margin-bottom: 0;
    }
    .loyalty-info-section.image-right .loyalty-info-content {
        padding-top: 30px;
    }
    .tci-ms-cta-title,
    .tci-ms-cta-right-title {
        font-size: 44px;
    }
    .tci-ms-cta-right-text {
        margin-bottom: 22px;
    }
    .calendar-location-content .dv-button-wrap {
        flex-wrap: wrap;
        gap: 10px;
    }
}
@media(max-width:991px) {
    .content-cta-inner {
        grid-template-columns: 1fr;
    }
    .about-intro-stat-value {
        font-size: 37px;
    }
    .about-intro-stat-text {
        font-size: 27px;
    }
    .tci-ms-cta-inner {
        grid-template-columns: 1fr;
    }
    .tci-ms-cta-left {
        border-right: 0;
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 30px;
        align-content: start;
    }
    .tci-ms-cta-left .tci-ms-cta-button {
        justify-self: start;
        width: fit-content;
    }    
    .tci-ms-cta-text {
        margin-top: 0;
        margin-bottom: 20px;
    }   
    .tci-ms-cta-right,
    .tci-ms-cta-right .tci-ms-cta-visual {
        padding-left: 0;
    }
    .tci-ms-cta-right {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        grid-template-rows: auto auto;
        column-gap: 30px;
        padding-left: 0;
    }

    .tci-ms-cta-right .tci-ms-cta-right-title {
        grid-column: 1;
        grid-row: 1;
        align-self: end;
    }

    .tci-ms-cta-right .tci-ms-cta-right-text {
        grid-column: 1;
        grid-row: 2;
        align-self: start;
    }

    .tci-ms-cta-right .tci-ms-cta-visual {
        grid-column: 2;
        grid-row: 1 / 3;
        align-self: center;
        min-width: 0;
    }
    .content-cta-inner {
        row-gap: 15px;
    }
}
@media(max-width:930px) {
    .home-upcoming-events-tabs {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 15px 0;
    }
    .home-upcoming-events-tab + .home-upcoming-events-tab {
        border:0;
    }
    .home-upcoming-events-tab:nth-child(even) {
        border-left: 1px solid #bcb8b4;
    }
}
@media(max-width:900px) {
    .tci-ms-cta-left {
        align-items: center;
    }
    .tci-ms-cta-text,
    .tci-ms-cta-title {
        grid-column: span 2;
    }
    .tci-ms-cta-inner {
        gap:30px;
    }
    .tci-ms-cta-left .tci-ms-cta-button {
        margin-bottom: 0;
        height: max-content;
    }
    a.tci-ms-cta-contact,
    .tci-ms-cta-contacts {
        gap:15px;
        min-width: auto;
    }
    .tci-ms-cta-contact-content {
        white-space: nowrap;
    }
    .tci-ms-cta-title, .tci-ms-cta-right-title {
        font-size: 42px;
    }
}
@media(max-width:874px) {
    .home-upcoming-events-panel {
        grid-template-columns: 1fr;
    }
    .home-upcoming-events-panels .home-upcoming-events-location-info {
        margin-bottom: 30px;
    }
    .home-upcoming-events-panels .home-upcoming-events-location-info .dv-button {
        display: none;
    }
    .hidden-desktop {
        display: block;
        text-align: center;
    }    
    .home-upcoming-events-controls {
        order: 1;
    }
    .home-upcoming-events-location-title {
        text-align: center;
    }
    .home-upcoming-events-location-title em {
        display: inline;
    }
    .home-upcoming-events-location-text br {
        display: none;
    }
}
@media(max-width:800px) {
    .dv-locations-inner {
        padding:30px 0;
    }
    .dv-locations-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }   
    .dv-location-card {
        display: grid;
        grid-template-columns: minmax(180px, 32%) minmax(0, 1fr);
        column-gap: 32px;
        align-items: center;
    }
    .dv-location-image-wrap {
        grid-column: 1;
        grid-row: 1 / span 2;
        min-width: 0;
    }

    .dv-location-title {
        grid-column: 2;
        grid-row: 1;
        align-self: end;
        max-width: none;
        width: 100%;
        margin-top: 0;
    }

    .dv-location-meta {
        grid-column: 2;
        grid-row: 2;
        align-self: start;
        max-width: none;
        width: 100%;
    }
    .party-opportunities-title {
        margin-bottom: 30px;
    }
    .party-opportunities-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        gap:30px;
    }
    .party-opportunities-inner {
        padding:30px 0;
    }
    .faq-items {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
}
@media(max-width:767px) {
    .about-experience-steps {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        gap: 15px;
    }
    .about-experience-step {
        display: grid;
        grid-template-columns: minmax(0, 32%) minmax(0, 1fr);
    }
    .about-experience-step-content {
        left: -40px;
    }
    .about-experience-step-text {
        white-space: normal;
    }
    .about-intro-stat:not(:last-of-type)::after {
        display: none;
    }
    .about-intro-content {
        display: grid;
        grid-template-columns: minmax(0, 65%) minmax(180px, 1fr);
        column-gap: 15px;
        align-items: start;
    }

    .about-intro-title,
    .about-intro-text {
        grid-column: 1;
    }

    .about-intro-title {
        grid-row: auto;
        align-self: auto;
    }

    .about-intro-text {
        grid-row: auto;
        align-self: auto;
    }

    .about-intro-stats {
        grid-column: 2;
        grid-row: 1 / 3;
        align-self: start;
        display: grid;
        grid-template-columns: 1fr;
        grid-auto-rows: max-content;
        min-width: 0;
    }
    .tci-ms-cta-left,
    .tci-ms-cta-right {
        grid-template-columns: 1fr;
    }

    .tci-ms-cta-right .tci-ms-cta-visual,
    .tci-ms-cta-right .tci-ms-cta-right-title,
    .tci-ms-cta-right .tci-ms-cta-right-text {
        grid-column:auto;
        grid-row: auto;
    }
    .tci-ms-cta-text, .tci-ms-cta-title {
        grid-column:auto;
    }
    .tci-ms-cta-left .tci-ms-cta-button {
        margin-bottom: 30px;
    }
    .wine-group-products {
        grid-template-columns: 1fr;
    }
}
@media(max-width:600px) {
    .contact-inner {
        padding-top: 0;
    }
    .contact-tabs {
        display: grid;
        gap: 10px;
        grid-template-columns: 1fr 1fr;
    }
    .contact-location-detail,
    .contact-form-column {
        padding:15px;
    }
    .contact-tab:nth-of-type(odd)::before {
        content: '';
        position: absolute;
        right: -6px;
        top: 50%;
        width: 1px;
        height: 30px;
        transform: translateY(-50%);
        background: #bcb8b4;
    }
    .title-icon-wrap span.icon {
        width: 35px;
        height: 35px;
        font-size: 25px;
    }
    .contact-column-title {
        font-size: 32px;
        margin-top: 3px;
    }
    .contact-location-map-info {
        width: calc(100% - 30px);
    }
    .contact-location-details {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    .contact-location-detail {
        border-bottom: 1px solid #ddd;
    }
    .contact-location-detail:nth-child(n+3) {
        border-top: 0;
    }
    .contact-location-detail:nth-child(n+3),
    .contact-location-detail:nth-child(odd) {
        border-right: 0;
    }
    .contact-location-visual {
        margin-bottom: 30px;
    }
    .contact-location-map-info {
        position: relative;
        bottom: 0;
        border: 1px solid #eee;
        width: 100%;
    }
    .loyalty-info-steps-title.underline {
        font-size: 42px;
    }
    .experience-feature {
        grid-template-columns: 45px 1fr;
    }
    .home-upcoming-events-tab {
        padding: 6px 15px;
    }
}
@media(max-width:480px) {
    .tci-block-title.mobile-studio {
        font-size: 40px;
    }
    .contact-form .wpcf7-form .cf-row.two-col {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        gap: 0;
    }
    .home-upcoming-events-tabs {
        display: grid;
        grid-template-columns: 1fr;
        gap: 15px;
    }
    .home-upcoming-events-tab:nth-child(even) {
        border-left: 0;
    }
    .home-upcoming-events-tab {
        width: max-content;
        margin: 0 auto;
    }
    .home-upcoming-events-tab:not(:last-of-type)::before {
        content:"";
        position: absolute;
        width: 100px;
        height: 1px;
        bottom:-7px;
        left: 50%;
        transform: scaleX(1) translateX(-50%);
        background: #dcdad7;
        transition: all 0.3s ease-in-out;
    }

    .experience-feature {
        padding:15px 10px 10px;
    }
    .dv-feature-item:nth-last-child(n + 3)::before,
    .experience-feature:nth-last-child(n + 3)::before {
        display: none;
    }
    .experience-feature-text {
        justify-content: flex-start;
    }
    .dv-feature-item::after,
    .experience-feature:not(:last-child)::after {
        display: none;
    }
    .dv-feature-item,
    .experience-feature {
        border: 0;
    }

    /* Vertical divider: left side of every item in column 2 */
    .dv-feature-item:nth-child(even),
    .experience-feature:nth-child(even) {
        border-left: 1px solid #dcdad7;
    }

    /* Horizontal divider: everything after the first row */
    .dv-feature-item:nth-child(n + 3),
    .experience-feature:nth-child(n + 3) {
        border-top: 1px solid #dcdad7;
    }
    .loyalty-features {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        gap: 20px;
    }
    .loyalty-feature {
        padding: 0;
        padding-left: 40px;
        text-align: left;
        position: relative;
    }
    .loyalty-feature:not(:last-child)::after {
        display: none;
    }
    .loyalty-feature::before {
        content: "\e90e";
        font-family: 'icomoon';
        font-size: 14px;
        width: 24px;
        height: 24px;
        border: 1px solid var(--bg-pink);
        color: var(--bg-pink);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        left: 0;
        top: 13px;
        transform: translateY(-50%);
    }
    .loyalty-feature-title {
        margin-bottom: 0;
    }
    .loyalty-content .dv-button-wrap.align-center {
        justify-content: flex-start;
    }
    .loyalty-notice {
        margin: 0 -15px;
        padding-bottom: 0;
        padding-left: 15px;
        padding-right: 15px;
        text-align: left;
    }
    .dv-location-title {
        font-size: 26px;
    }
    .dv-feature-item {
        grid-template-columns: 40px 1fr;
        height: 100%;
        padding: 10px 15px;
    }
    .dv-feature-group-overflow .dv-feature-item {
        grid-template-columns: 1fr;
    }
    .vc_row.dv-feature-group-overflow .dv-feature-group {
        padding: 0;
        gap: 0;
    }
    .dv-feature-item-icon {
        width: 40px;
        height: 40px;
    }
    .about-intro-content {
        display: block;
        margin-top: 30px;
    }
    section.tci-block.layout-image-right.tc-img-1300 .tci-block-inner {
        padding-bottom: 0;
    }
    .contact-tabs {
        grid-template-columns: 1fr;
        gap:0;
    }
    .tci-ms-cta-contacts a span.tci-ms-cta-contact-icon {
        width: 36px;
        height: 36px;
        font-size: 27px;
    }
    .contact-tab:hover::after, .contact-tab.is-active::after {
        transform: translateY(-50%) scale(1);
    }
    .tci-ms-cta-contact-value {
        font-size: 16px;
    }
    .loyalty-info-steps-title.underline {
        font-size: 36px;
    }
    .step-list li {
        padding-left: 60px;
    }
    .step-list li::after {
        left: 48px;
    }
    section.experience-section.extra-padding-30-top .experience-inner {
        display: grid;
        grid-template-columns: 1fr;
    }
    section.experience-section.extra-padding-30-top .experience-inner .experience-content {
        order: 1;
        grid-column: unset;
        grid-row: unset;
        padding-bottom: 30px;
    }
    .loyalty-text,
    .experience-title,
    .gift-experience-title,
    .loyalty-title {
        margin-bottom: 25px;
    }
    .loyalty-features {
        margin-bottom: 20px;
    }
    .experience-feature-icon {
        width: 45px;
        height: 45px;
    }
    .contact-location-map-info {
        flex-wrap: wrap;
        gap: 10px;
        justify-content: center;
    }
    .contact-location-map-info .contact-location-map-address {
        width: 100%;
    }
    .contact-tab {
        display: inline-block;
        width: max-content;
        min-width: 170px;
        padding-left: 10px;
        margin: 0 auto;
    }
    .contact-tab:not(:last-of-type)::before, 
    .contact-tab::before {
        content: "";
        width: 100vw;
        height: 1px;
        display: block;
        position: absolute;
        top:unset;
        bottom: 0;
        right: unset;
        left: 50%;
        transform: translateX(-50%);
        background: #eee;
    }
    .contact-tab:is(:last-of-type)::before {
        display: none;
    }
    .contact-tab::after {
        width: 1px;
        height: 30px;
        top:50%;
    }
    .about-cta-art img {
        height: 25%;
    }
    .about-cta-title-main, .about-cta-title-highlight,
    .about-cta-title .about-cta-title-main {
        display: inline-block;
    }
    .calendar-location-inner .calendar-location-title br{
        display: none;
    }
    .calendar-location-inner {
        padding-top: 5px;
    }
    .calendar-location-inner .calendar-location-title {
        margin: 0 0 10px;
    }
    .calendar-location-block.layout-image-left .calendar-location-inner,
    .calendar-location-block .calendar-location-inner {
        gap:25px;
    }
    .dv-locations-grid {
        gap: 25px;
    }
    .dv-location-card {
        grid-template-columns: 1fr;
    }
    .dv-location-card .dv-location-image-wrap {
        margin-bottom: 15px;
    }
    .dv-location-title, .dv-location-meta {
        grid-column: 1;
        grid-row: auto;
        margin-left: 10px;
    }
    .party-opportunity-content,
    .party-opportunities-title {
        text-align: left;
    }
    .mobile-left .dv-title {
        text-align: left;
        padding:0 15px;
    }
    .dv-button-wrap.align-center.mobile-left {
        padding:0 15px;
        justify-content: flex-start;
    }
    .about-experience-step {
        grid-template-columns: 1fr;
    }
    .about-experience-step-content::before {
        top: -45px;
    }
    .about-experience-step-content {
        left: 0;
        padding-left: 10px;
        padding-top: 25px;
        margin-bottom: 20px;
    }
    .wine-product-title {
        font-size: 24px;
    }
    .wine-product-price {
        font-size: 26px;
    }
    .party-opportunity-button.align-center {
        text-align: left;
    }
}
@media (min-width: 380px) and (max-width: 480px) {

    .experience-feature {
        cursor: pointer;
        overflow: hidden;
    }

    .experience-feature-text p:nth-of-type(2) {
        display: none;
        position: absolute;
        background: #fbfaf8;
        font-size: 14px;
        height: 100%;
        width:100%;
    }

    .experience-feature-text p:first-of-type::after {
        content: '\e913';
        display: none !important;
        font-family: 'icomoon';
        font-size: 25px;
        font-weight: 400;
        color: var(--bg-pink);
        display: inline-block;
        margin-left: 8px;
        vertical-align: middle;
        position: absolute;
        top: 1px;
        right: 1px;
        z-index: 1;
    }

    .experience-feature.is-expanded .experience-feature-text p:nth-of-type(2) {
        display: block;
    }
}
@media(max-width:400px) {
    .loyalty-levels-controls {
        margin-top: 0;
        flex-direction: column;
    }
    .loyalty-levels-label-head, 
    .loyalty-level-head {
        min-height: 152px;
    }
}
@media(max-width:379px) {
    .home-upcoming-events-slider .swiper-slide {
        width: 100%;
    }
    .experience-features {
        grid-template-columns: 1fr;
    }
    .dv-feature-item:nth-child(even), .experience-feature:nth-child(even) {
        border-left: 0;
    }
    .experience-feature:not(:first-of-type) {
        border-top: 1px solid #dcdad7;
    }
}
@media(max-width:370px) {
    .tci-ms-cta-contacts {
        flex-wrap: wrap;
    }
    .tci-ms-cta-title, .tci-ms-cta-right-title {
        font-size: 35px;
    }
    .tci-ms-cta-title, .tci-ms-cta-right-title {
        font-size: 32px;
    }
    .loyalty-info-steps-title.underline {
        font-size: 31px;
    }
    .about-cta-art {
        display: none;
    }
}
@media(max-width:345px) {
    section.about-cta .dv-button {
        padding:12px 30px 10px;
    }
}