/*
Template Name: TourDaddy
*/
/*=================================
    CSS Index Here
==================================*/
/*

01. Theme Base
    1.1. Mixin
    1.2. Function
    1.3. Variable
    1.4. Typography
    1.5. Extend
    1.7. Wordpress Default
02. Reset
    2.1. Container
    2.2. Grid
    2.3. Input
    2.4. Slick Slider
    2.5. Mobile Menu
03. Utilities
    3.1. Preloader
    3.2. Buttons
    3.3. Titles
    3.4. Common
    3.6. Font
    3.7. Background
    3.8. Text Color
    3.9. Overlay
    3.10. Animation
04. Template Style
    4.1. Widget
    4.2. Header
    4.3. Footer
    4.4. Breadcumb

05. Spacing

*/
/*=================================
    CSS Index End
==================================*/
/*=================================
   01. Theme Base
==================================*/
/*------------------- 1.1. Mixin -------------------*/
/*------------------- 1.2. Function -------------------*/
/*------------------- 1.3. Variable-------------------*/
:root {
    --theme-color: #003939;
    --theme-color2: #37d4d9;
    --secondary-color: #111330;
    --title-color: #1c1c1c;
    --body-color: #505050;
    --smoke-color: #f7f7f7;
    --black-color: #000000;
    --white-color: #ffffff;
    --yellow-color: #fec624;
    --success-color: #28a745;
    --error-color: #dc3545;
    --border-color: #37d4d9;
    --bg-color1: #fff5f0;
    --bg-color2: #f5f5f5;
    --title-font: "Jost", sans-serif;
    --body-font: "Jost", sans-serif;
    --icon-font: "Font Awesome 5 Pro";
    --main-container: 1220px;
    --container-gutters: 30px;
    --section-space: 120px;
    --section-space-mobile: 80px;
    --section-title-space: 80px;
    --ripple-ani-duration: 5s;
}

/*------------------- 1.5. Typography -------------------*/
html,
body {
    scroll-behavior: auto !important;
}

body {
    font-family: var(--body-font);
    font-size: 16px;
    font-weight: 400;
    color: var(--body-color);
    line-height: 26px;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

iframe {
    border: none;
    width: 100%;
}

.slick-slide:focus,
button:focus,
a:focus,
a:active,
input,
input:hover,
input:focus,
input:active,
textarea,
textarea:hover,
textarea:focus,
textarea:active {
    outline: none;
}

input:focus {
    outline: none;
    box-shadow: none;
}

img:not([draggable]),
embed,
object,
video {
    max-width: 100%;
    height: auto;
}

ul {
    list-style-type: disc;
}

ol {
    list-style-type: decimal;
}

table {
    margin: 0 0 1.5em;
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    border: 1px solid var(--border-color);
}

th {
    font-weight: 700;
    color: var(--title-color);
}

td,
th {
    border: 1px solid var(--border-color);
    padding: 9px 12px;
}

a {
    color: var(--body-color);
    text-decoration: none;
    outline: 0;
    transition: all ease 0.4s;
}
a:hover {
    color: var(--theme-color);
}
a:active,
a:focus,
a:hover,
a:visited {
    text-decoration: none;
    outline: 0;
}

button {
    transition: all ease 0.4s;
}

img {
    border: none;
    max-width: 100%;
}

p:empty {
    display: none;
}

p {
    margin: 0 0 18px 0;
    color: var(--body-color);
    line-height: 1.625;
}

h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a,
p a,
span a {
    font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.h1,
h1,
.h2,
h2,
.h3,
h3,
.h4,
h4,
.h5,
h5,
.h6,
h6 {
    font-family: var(--title-font);
    color: var(--title-color);
    text-transform: none;
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 15px 0;
}

.h1,
h1 {
    font-size: 48px;
}

.h2,
h2 {
    font-size: 36px;
}

.h3,
h3 {
    font-size: 30px;
}

.h4,
h4 {
    font-size: 24px;
}

.h5,
h5 {
    font-size: 20px;
}

.h6,
h6 {
    font-size: 18px;
}

/* Large devices */
@media (max-width: 1199px) {
    .h1,
    h1 {
        font-size: 40px;
    }
    .h2,
    h2 {
        font-size: 36px;
    }
    .h3,
    h3 {
        font-size: 30px;
    }
    .h4,
    h4 {
        font-size: 24px;
    }
    .h5,
    h5 {
        font-size: 20px;
    }
    .h6,
    h6 {
        font-size: 16px;
    }
}
/* Small devices */
@media (max-width: 767px) {
    .h1,
    h1 {
        font-size: 36px;
    }
    .h2,
    h2 {
        font-size: 30px;
    }
    .h3,
    h3 {
        font-size: 26px;
    }
    .h4,
    h4 {
        font-size: 22px;
    }
    .h5,
    h5 {
        font-size: 18px;
    }
    .h6,
    h6 {
        font-size: 16px;
    }
}
/*------------------- 1.6. Extend -------------------*/
/*------------------- 1.7. Wordpress Default -------------------*/
/*=================================
    02. Reset
==================================*/
/*------------------- 2.1. Container -------------------*/
@media only screen and (min-width: 1300px) {
    .container-xxl,
    .container-xl,
    .container-lg,
    .container-md,
    .container-sm,
    .container {
        max-width: calc(var(--main-container) + var(--container-gutters));
        padding-left: calc(var(--container-gutters) / 2);
        padding-right: calc(var(--container-gutters) / 2);
    }
    .outer-wrap {
        max-width: 1300px;
        background-color: var(--white-color);
        margin-left: auto;
        margin-right: auto;
        box-shadow: 0px 13px 48px 0px rgba(255, 104, 26, 0.07);
        margin-top: -70px;
        padding-bottom: 37px;
    }
}
@media only screen and (max-width: 1600px) {
    .outer-wrap {
        max-width: 1200px;
        background-color: var(--white-color);
        margin-left: auto;
        margin-right: auto;
        box-shadow: 0px 13px 48px 0px rgba(255, 104, 26, 0.07);
        margin-top: -70px;
        padding-bottom: 37px;
    }
}
/*------------------- 2.2. Grid -------------------*/
@media (min-width: 767px) {
    .row:not([class*="gx-"]) {
        --bs-gutter-x: 26px;
    }
}

.gx-30 {
    --bs-gutter-x: 30px;
}

/* Small devices */
@media (max-width: 767px) {
    .gx-30 {
        --bs-gutter-x: 0;
    }
}
/*------------------- 2.3. Input -------------------*/

.form-control,
.form-select,
textarea,
input {
    height: 60px;
    padding: 0 30px 0 25px;
    padding-right: 45px;
    border-radius: 10px;
    color: var(--body-color);
    border: 1px solid var(--border-color);
    background-color: var(--white-color);
    font-size: 14px;
    width: 100%;
}

.form-control:focus,
.form-select:focus,
textarea:focus,
input:focus {
    outline: 0;
    box-shadow: none;
    border-color: var(--theme-color);
}

.form-control::-moz-placeholder,
.form-select::-moz-placeholder,
textarea::-moz-placeholder,
input::-moz-placeholder {
    color: var(--body-color);
}

.form-control::-webkit-input-placeholder,
.form-select::-webkit-input-placeholder,
textarea::-webkit-input-placeholder,
input::-webkit-input-placeholder {
    color: var(--body-color);
}

.form-control:-ms-input-placeholder,
.form-select:-ms-input-placeholder,
textarea:-ms-input-placeholder,
input:-ms-input-placeholder {
    color: var(--body-color);
}

.form-control::placeholder,
.form-select::placeholder,
textarea::placeholder,
input::placeholder {
    color: var(--body-color);
}

.form-select,
select {
    display: block;
    width: 100%;
    line-height: 1.5;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
    background-position: right 26px center;
    background-repeat: no-repeat;
    background-size: 16px 12px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    cursor: pointer;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type="number"] {
    -moz-appearance: textfield;
}

textarea.form-control,
textarea {
    min-height: 150px;
    padding-top: 16px;
    padding-bottom: 17px;
    border-radius: 10px;
}

input[type="checkbox"] {
    visibility: hidden;
    opacity: 0;
    display: none;
    vertical-align: middle;
    width: 0;
    height: 0;
}
input[type="checkbox"]:checked ~ label:before {
    content: "\f00c";
    color: var(--white-color);
    background-color: var(--theme-color);
    border-color: var(--theme-color);
}
input[type="checkbox"] ~ label {
    position: relative;
    padding-left: 30px;
    cursor: pointer;
    display: block;
}
input[type="checkbox"] ~ label:before {
    content: "";
    font-family: var(--icon-font);
    font-weight: 700;
    position: absolute;
    left: 0px;
    top: 3.5px;
    background-color: var(--white-color);
    border: 1px solid var(--border-color);
    height: 18px;
    width: 18px;
    line-height: 18px;
    text-align: center;
    font-size: 12px;
}

input[type="radio"] {
    visibility: hidden;
    opacity: 0;
    display: none;
    vertical-align: middle;
    width: 0;
    height: 0;
}
input[type="radio"] ~ label {
    position: relative;
    padding-left: 30px;
    cursor: pointer;
    line-height: 1;
    display: inline-block;
    font-weight: 600;
    margin-bottom: 0;
}
input[type="radio"] ~ label::before {
    content: "\f111";
    position: absolute;
    font-family: var(--icon-font);
    left: 0;
    top: -2px;
    width: 20px;
    height: 20px;
    padding-left: 0px;
    font-size: 0.6em;
    line-height: 19px;
    text-align: center;
    border: 1px solid var(--theme-color);
    border-radius: 10px;
    font-weight: 700;
    background: var(--white-color);
    color: transparent;
    transition: all 0.2s ease;
}
input[type="radio"]:checked ~ label::before {
    border-color: var(--theme-color);
    background-color: var(--theme-color);
    color: var(--white-color);
}

label {
    margin-bottom: 0.5em;
    margin-top: -0.3em;
    display: block;
    color: var(--title-color);
    font-family: var(--body-font);
    font-size: 16px;
    font-weight: 500;
}

.form-group {
    margin-bottom: var(--bs-gutter-x);
    position: relative;
}
.form-group > i {
    position: absolute;
    right: calc(var(--bs-gutter-x) / 2 + 30px);
    top: 18px;
    font-size: 14px;
    color: #a0abb4;
}

textarea.is-invalid,
select.is-invalid,
input.is-invalid {
    border: 1px solid var(--error-color) !important;
    background-position: right calc(0.375em + 0.8875rem) center;
    background-image: none;
}
textarea.is-invalid:focus,
select.is-invalid:focus,
input.is-invalid:focus {
    outline: 0;
    box-shadow: none;
}

textarea.is-invalid {
    background-position: top calc(0.375em + 0.5875rem) right
        calc(0.375em + 0.8875rem);
}

.form-messages {
    display: none;
}
.form-messages.mb-0 * {
    margin-bottom: 0;
}
.form-messages.success {
    color: var(--success-color);
    display: block;
}
.form-messages.error {
    color: var(--error-color);
    display: block;
}
.form-messages pre {
    padding: 0;
    background-color: transparent;
    color: inherit;
}

/*------------------- 2.4. Slick Slider -------------------*/
.slick-track {
    min-width: 100%;
}
.slick-track > [class*="col"] {
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    padding-right: calc(var(--bs-gutter-x) / 2);
    padding-left: calc(var(--bs-gutter-x) / 2);
    margin-top: var(--bs-gutter-y);
}
.slick-track .col-auto {
    width: auto;
}

.slick-slide img {
    display: inline-block;
}

.slick-dots {
    list-style-type: none;
    padding: 0 0;
    margin: 0 0 30px 0;
    line-height: 0;
    text-align: center;
    height: max-content;
}
.slick-dots li {
    display: inline-block;
    margin-right: 10px;
}
.slick-dots li:last-child {
    margin-right: 0;
}
.slick-dots button {
    font-size: 0;
    padding: 0;
    width: 60px;
    height: 10px;
    line-height: 0;
    background-color: transparent;
    border: none;
    border-bottom: 3px solid #d1d1d1;
    transition: all ease 0.4s;
    position: relative;
    display: inline-block;
}
.slick-dots button:hover {
    border-color: var(--theme-color);
}
.slick-dots .slick-active button {
    background-color: var(--theme-color);
    border-color: transparent;
}

.slick-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    background-color: var(--white-color);
    position: absolute;
    top: 50%;
    border: 2px solid var(--theme-color);
    left: var(--pos-x, -100px);
    width: var(--icon-size, 60px);
    height: var(--icon-size, 60px);
    font-size: var(--icon-font-size, 20px);
    margin-top: calc(var(--icon-size, 66px) / -2);
    transition: 0.5s ease-in-out;
    z-index: 2;
    border-radius: 50%;
}
.slick-arrow.default {
    position: relative;
    --pos-x: 0;
    margin-top: 0;
}
.slick-arrow.slick-next {
    right: var(--pos-x, -100px);
    left: auto;
}
.slick-arrow i {
    vertical-align: middle;
}
.slick-arrow:hover {
    background-color: var(--theme-color);
    color: var(--white-color);
    border-color: transparent;
}

.arrow-wrap .slick-arrow {
    opacity: 0;
    visibility: hidden;
}
.arrow-wrap:hover .slick-arrow {
    opacity: 1;
    visibility: visible;
}

/* Extra large devices */
@media (max-width: 1500px) {
    .slick-arrow {
        --arrow-horizontal: -20px;
    }
}
/* Medium Large devices */
@media (max-width: 1399px) {
    .slick-arrow {
        --arrow-horizontal: 40px;
    }
}
/* Medium devices */
@media (max-width: 991px) {
    .slick-arrow {
        --icon-size: 40px;
        margin-right: 40px;
    }
    .slick-arrow.slick-next {
        margin-right: 0;
        margin-left: 40px;
    }
    .slick-dots {
        margin: 8px 0 38px 0;
    }
}
/*------------------- 2.5. Mobile Menu -------------------*/
.vs-menu-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 999;
    width: 100%;
    height: 100%;
    transition: all ease 0.8s;
    opacity: 0;
    visibility: hidden;
}
.vs-menu-wrapper .vs-menu-toggle {
    border: none;
    font-size: 16px;
    position: absolute;
    right: 10px;
    top: 10px;
    padding: 0;
    line-height: 1;
    width: 33px;
    height: 33px;
    z-index: 1;
    color: var(--white-color);
    background-color: var(--theme-color);
    border-radius: 50%;
}
.vs-menu-wrapper .vs-menu-toggle i {
    line-height: inherit;
}
.vs-menu-wrapper .vs-menu-toggle:hover {
    background-color: var(--title-color);
    color: var(--white-color);
}
.vs-menu-wrapper.vs-body-visible {
    opacity: 1;
    visibility: visible;
}

.vs-menu-toggle {
    width: 50px;
    height: 50px;
    padding: 0;
    font-size: 24px;
    border: none;
    background-color: var(--theme-color);
    color: var(--white-color);
    display: inline-block;
    border-radius: 0;
    vertical-align: middle;
}
/*=================================
    03. Utilities
==================================*/
/* mystyling */

/*------------------- 3.1. Preloader -------------------*/
.preloader {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: 999;
    background-color: var(--white-color);
}
.preloader .vs-btn {
    padding: 15px 20px;
    border-radius: 0;
    font-size: 14px;
}

@keyframes animloader {
    0% {
        background-image: linear-gradient(
                var(--theme-color) 20px,
                transparent 0
            ),
            linear-gradient(var(--theme-color) 20px, transparent 0),
            linear-gradient(var(--theme-color) 20px, transparent 0),
            linear-gradient(var(--theme-color) 20px, transparent 0);
    }
    25% {
        background-image: linear-gradient(
                var(--theme-color2) 20px,
                transparent 0
            ),
            linear-gradient(var(--theme-color) 20px, transparent 0),
            linear-gradient(var(--theme-color) 20px, transparent 0),
            linear-gradient(var(--theme-color) 20px, transparent 0);
    }
    50% {
        background-image: linear-gradient(
                var(--theme-color2) 20px,
                transparent 0
            ),
            linear-gradient(var(--theme-color2) 20px, transparent 0),
            linear-gradient(var(--theme-color) 20px, transparent 0),
            linear-gradient(var(--theme-color) 20px, transparent 0);
    }
    75% {
        background-image: linear-gradient(
                var(--theme-color2) 20px,
                transparent 0
            ),
            linear-gradient(var(--theme-color2) 20px, transparent 0),
            linear-gradient(var(--theme-color2) 20px, transparent 0),
            linear-gradient(var(--theme-color) 20px, transparent 0);
    }
    100% {
        background-image: linear-gradient(
                var(--theme-color2) 20px,
                transparent 0
            ),
            linear-gradient(var(--theme-color2) 20px, transparent 0),
            linear-gradient(var(--theme-color2) 20px, transparent 0),
            linear-gradient(var(--theme-color2) 20px, transparent 0);
    }
}

/* iOS-centered dropdown */
@supports (-webkit-touch-callout: none) {
    .custom-dropdown-menu {
        position: fixed !important;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) !important;
        -webkit-transform: translate(-50%, -50%) !important;
        max-height: 70vh;
        overflow-y: auto;
        z-index: 2147483647 !important;
        -webkit-overflow-scrolling: touch;
    }

    .custom-dropdown-menu.show {
        transform: translate(-50%, -50%) scale(1) !important;
        -webkit-transform: translate(-50%, -50%) scale(1) !important;
    }

    .dropdown-backdrop.show {
        z-index: 2147483646 !important;
    }
}

/* ----------------------custom css----------------------- */

/* ---------------------------home hero section */
/* Hero Section */
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
    z-index: 1;
}

.hero-container {
    position: relative;
    z-index: 2;
    height: 100%;
}

.hero-title {
    color: white;
    margin-bottom: 30px;
    text-align: center;
    font-size: 50px;
    font-weight: bold;
}

/* Mobile Search Trigger */
.mobile-search-trigger {
    background: white;
    border-radius: 50px;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
    width: 100%;
    max-width: 400px;
}

.mobile-search-trigger input {
    flex: 1;
    border: none;
    outline: none;
    font-size: 18px;
    color: #555;
    cursor: pointer;
    background: transparent;
    padding-right: 7px;
}

/* Desktop Search Box */
.desktop-search-box {
    background: white;
    border-radius: 50px;
    padding: 12px 16px;
    align-items: center;
    gap: 15px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
    max-width: 650px;
    width: 100%;
    position: relative;
}

/* Search Fields */
.search-field {
    flex: 1;
    padding-right: 10px;
    position: relative;
    min-width: 0;
}

.search-field--bordered {
    border-right: 1px solid #e0e0e0;
}

.search-label {
    display: block;
    font-size: 16px;
    color: #444;
    font-weight: 700;
    margin-bottom: -3px;
    text-align: left;
    padding-left: 6px;
}

.search-field input {
    height: auto;
    border: none;
    outline: none;
    width: 100%;
    font-size: 15px;
    color: #555;
    cursor: pointer;
    background: transparent;
    padding-left: 6px;
    padding-right: 2px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

/* Search Dropdown */
.search-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: -20px;
    right: -15px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    margin-top: 8px;
    z-index: 1000;
    max-height: 400px;
    overflow-y: auto;
}

.dropdown-list {
    padding: 8px 0;
}

.dropdown-item {
    text-align: left;
    padding: 10px 20px;
    cursor: pointer;
    transition: background 0.2s;
}

.dropdown-item:hover {
    background: #f5f5f5;
}

.dropdown-item-title {
    font-weight: 500;
    color: #333;
}

.dropdown-item-subtitle {
    font-size: 12px;
    color: #888;
}

/* Search Button */
.search-btn {
    background: #0c5460;
    border: none;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.search-btn:hover {
    background: #094450;
}

/* Mobile Modal */
.mobile-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9999;
}

.mobile-modal-content {
    background: white;
    border-radius: 0 0 20px 20px;
    max-height: 80vh;
    overflow-y: auto;
}

.mobile-modal-header {
    padding: 20px;
    border-bottom: 1px solid #e0e0e0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.mobile-modal-header h3 {
    margin: 0;
    font-size: 20px;
    color: #333;
}

.mobile-modal-close {
    background: none;
    border: none;
    font-size: 28px;
    color: #666;
    cursor: pointer;
    padding: 0;
    line-height: 1;
}

.mobile-modal-section {
    padding: 20px;
    border-bottom: 1px solid #e0e0e0;
}

.mobile-modal-section .search-label {
    margin-bottom: 10px;
}

.mobile-select {
    width: 100%;
    padding: 12px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-size: 15px;
    cursor: pointer;
    color: #000;
}

.mobile-modal-footer {
    padding: 20px;
}

.mobile-modal-footer button {
    width: 100%;
}
/* ---------------------------blog faq section */

.back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #003939;
    text-decoration: none;
    font-weight: 500;
    margin-top: 30px;
}

.back-link:hover {
    color: #005454;
}

.faq-section-wrapper {
    background: linear-gradient(135deg, #003939 0%, #005454 50%, #004545 100%);
    padding: 60px 20px;
    margin-top: 40px;
    border-radius: 16px;
}

.faq-inner {
    max-width: 900px;
    margin: 0 auto;
}

.faq-main-title {
    font-size: 42px;
    font-weight: 300;
    text-align: center;
    margin-bottom: 40px;
    color: #fff;
    letter-spacing: 2px;
}

.faq-accordion {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.faq-item {
    display: flex;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: box-shadow 0.3s ease;
}

.faq-item:hover {
    box-shadow: 0 6px 25px rgba(0, 0, 0, 0.3);
}

.faq-content {
    flex: 1;
    background: #fff;
    padding: 22px 28px;
    cursor: pointer;
    transition: background 0.3s ease;
}

.faq-content:hover {
    background: #f5fafa;
}

.faq-question {
    font-size: 17px;
    color: #003939;
    font-weight: 500;
    line-height: 1.5;
}

.faq-answer {
    display: none;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid #e0e0e0;
    color: #444;
    line-height: 1.7;
    font-size: 15px;
}

.faq-answer p {
    margin-bottom: 10px;
}

.faq-answer p:last-child {
    margin-bottom: 0;
}

.faq-toggle {
    width: 60px;
    min-width: 60px;
    background: #003939;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.3s ease;
}

.faq-toggle:hover {
    background: #005454;
}

.faq-chevron {
    width: 28px;
    height: 28px;
    fill: #fff;
    transition: transform 0.3s ease;
}

.faq-chevron.rotated {
    transform: rotate(180deg);
}

/* Mobile responsive */
@media (max-width: 768px) {
    .faq-section-wrapper {
        padding: 40px 15px;
        margin-top: 30px;
        border-radius: 0;
        margin-left: -15px;
        margin-right: -15px;
    }

    .faq-main-title {
        font-size: 32px;
        margin-bottom: 30px;
    }

    .faq-content {
        padding: 18px 20px;
    }

    .faq-question {
        font-size: 15px;
    }

    .faq-toggle {
        width: 50px;
        min-width: 50px;
    }
}

/* listing page pop ups for location and category */
.filter-tooltip {
    position: absolute;
    background: #1a4d4d;
    color: white;
    padding: 10px 16px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 10000;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    top: 0;
    left: 0;
}

.filter-tooltip-arrow {
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid #1a4d4d;
}
/* yacht page */

.form-select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    height: auto !important;
    min-height: unset !important;
}

.form-select:focus {
    outline: none;
    box-shadow: none;
}

/* Flatpickr styling */

/* Make sure inputs are clickable but invisible */
#datePicker:focus,
#timePicker:focus {
    outline: none;
}

/* Improve mobile touch targets */
#datePicker,
#timePicker {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 5;
    -webkit-tap-highlight-color: transparent;
}

/* Make the parent containers pointer-friendly */
#dateSelector,
#timeSelector {
    position: relative;
    -webkit-tap-highlight-color: transparent;
}

@media (min-width: 992px) {
    /* Desktop breakpoint */
    .booking-card {
        margin-top: -111px;
    }
}

.gallery-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.95);
    overflow: hidden;
}

.modal-content {
    margin: auto;
    display: block;
    max-width: 90%;
    max-height: 90vh;
    object-fit: contain;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.close-modal {
    position: absolute;
    top: 20px;
    right: 35px;
    color: #f1f1f1;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    z-index: 10000;
    transition: 0.3s;
}

.close-modal:hover,
.close-modal:focus {
    color: #bbb;
}

.modal-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(255, 255, 255, 0.3);
    color: white;
    border: none;
    padding: 16px 20px;
    cursor: pointer;
    font-size: 24px;
    transition: 0.3s;
    z-index: 10000;
    border-radius: 4px;
}

.modal-btn:hover {
    background-color: rgba(255, 255, 255, 0.5);
}

.modal-btn.prev {
    left: 20px;
}

.modal-btn.next {
    right: 20px;
}

.modal-counter {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    color: white;
    font-size: 18px;
    background-color: rgba(0, 0, 0, 0.5);
    padding: 8px 16px;
    border-radius: 20px;
    z-index: 10000;
}

.loading-spinner {
    border: 5px solid #f3f3f3;
    border-top: 5px solid #0c5460;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    animation: spin 1s linear infinite;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10001;
}

.modal-image-wrapper {
    width: 100%;
    height: 100vh;
    position: relative;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .gallery-item img {
        height: 351px !important;
    }

    .modal-btn {
        padding: 12px 16px;
        font-size: 18px;
    }

    .close-modal {
        font-size: 32px;
        top: 10px;
        right: 15px;
    }

    .modal-counter {
        font-size: 14px;
        padding: 6px 12px;
    }
}

.btn-logout {
    background-color: #fff;
    color: #000;
    border: 1px solid #fff;
    transition: all 0.3s ease;
}

.btn-logout:hover {
    background-color: #6c757d;
    color: #fff;
    border: 1px solid #6c757d;
}

.form-control:focus {
    border-color: #0066cc;
    box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);
}

.editable-field {
    border: 2px solid #90caf9;
    background-color: #ffffff;
    transition: all 0.3s ease;
}

.editable-field:hover {
    border-color: #42a5f5;
    box-shadow: 0 0 8px rgba(66, 165, 245, 0.3);
}

.editable-field:focus {
    border-color: #0066cc;
    box-shadow: 0 0 0 4px rgba(0, 102, 204, 0.15);
    background-color: #fff;
}

.image-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 15px;
    margin-top: 15px;
}

.image-item {
    position: relative;
    border: 2px solid #dee2e6;
    border-radius: 8px;
    overflow: hidden;
    cursor: move;
    transition: transform 0.2s;
    aspect-ratio: 1;
}

.image-item:hover {
    transform: scale(1.02);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.image-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    font-size: 0.75rem;
    padding: 4px 8px;
}

.image-remove {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    padding: 0;
    line-height: 1;
    font-size: 1.2rem;
    border-radius: 50%;
}
/* yacht gallery */

/* Hide scrollbar for Chrome, Safari and Opera */
.yacht-gallery-wrapper::-webkit-scrollbar {
    display: none;
}

/* Ensure smooth scrolling on mobile */
.yacht-gallery-wrapper {
    -webkit-overflow-scrolling: touch;
}

/* Gallery item hover effect */
.gallery-item img {
    transition: transform 0.3s ease;
}

/* Arrow buttons hover effect */
.gallery-arrow:hover {
    background: #f8f9fa !important;
}

.gallery-arrow:active {
    transform: translateY(-50%) scale(0.95);
}

/* pending reg */
.btn-outline-secondary:hover {
    background-color: #6c757d;
    color: #fff;
    border-color: #6c757d;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
}

.vs-btn:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
}

@media (max-width: 576px) {
    .signup-form {
        padding: 40px 30px !important;
    }

    .d-flex.flex-column.flex-sm-row {
        flex-direction: column !important;
    }
}
/* login and register  */
.form-control:focus {
    border-color: #0066cc;
    box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);
}

.btn-outline-dark:hover {
    background-color: #f8f9fa;
    border-color: #333;
    color: #000 !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* edit page */

.image-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 15px;
    margin-top: 15px;
}

.image-item {
    position: relative;
    border: 2px solid #dee2e6;
    border-radius: 8px;
    overflow: hidden;
    cursor: move;
    transition: transform 0.2s;
    aspect-ratio: 1;
}

.image-item:hover {
    transform: scale(1.02);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.image-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    font-size: 0.75rem;
    padding: 4px 8px;
}

.image-remove {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    padding: 0;
    line-height: 1;
    font-size: 1.2rem;
    border-radius: 50%;
}

/* dashboard logout btn */
.btn-logout {
    background-color: #fff;
    color: #000;
    border: 1px solid #fff;
    transition: all 0.3s ease;
}

.btn-logout:hover {
    background-color: #6c757d;
    /* grey */
    color: #fff;
    border: 1px solid #6c757d;
}
/*----------------------- home page slider under hero */

/* Hide scrollbar */
.pig-products-wrapper::-webkit-scrollbar {
    display: none;
}

.pig-products-wrapper {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Product Card */

/* Product Link */

/* Product Image */

/* Product Info */

/* Product Meta */

/* Product Footer */

/* View Details Button */

/* Scroll Arrows */
.scroll-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: white;
    border: none;
    border-radius: 50%;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    color: #003939;
}

.scroll-arrow i {
    font-size: 16px;
}

.scroll-arrow-left {
    left: -20px;
}

.scroll-arrow-right {
    right: -20px;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .scroll-arrow-left {
        left: 5px;
    }

    .scroll-arrow-right {
        right: 5px;
    }
}

/*----------------------- blog page */

.journey-promo-wrapper {
    margin-top: 30px;
    margin-bottom: 30px;
    width: 100%;
}

.journey-promo-card {
    background-image: url("../img/bg/offer-bg-4.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 16px;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.journey-promo-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(
        135deg,
        rgba(0, 0, 0, 0.75) 0%,
        rgba(0, 0, 0, 0.5) 100%
    );
    z-index: 1;
}

.journey-promo-card .row {
    position: relative;
    z-index: 2;
}

.promo-text-content {
    color: #ffffff;
}

.promo-tagline {
    display: block;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2.5px;
    color: #ffffffff;
    margin-bottom: 10px;
    opacity: 0.95;
}

.promo-heading {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.3;
    color: #ffffff;
    margin: 0;
    text-shadow: 1px 2px 8px rgba(0, 0, 0, 0.4);
}

.journey-promo-card .vs-btn {
    padding: 12px 32px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 8px;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.journey-promo-card .col-lg-8 {
    margin-bottom: 0;
}

.journey-promo-card .col-lg-4 {
    margin-bottom: 0;
}

/* Responsive Styles */
@media (max-width: 991px) {
    .journey-promo-card {
        padding: 30px 30px;
    }

    .promo-heading {
        font-size: 20px;
        margin-bottom: 15px;
    }

    .promo-tagline {
        font-size: 10px;
        letter-spacing: 2px;
    }

    .journey-promo-card .col-lg-8 {
        margin-bottom: 20px;
    }
}

@media (max-width: 767px) {
    .journey-promo-card {
        padding: 25px 20px;
        border-radius: 12px;
    }

    .promo-heading {
        font-size: 18px;
        margin-bottom: 20px;
        line-height: 1.4;
    }

    .promo-tagline {
        font-size: 9px;
        letter-spacing: 1.8px;
        margin-bottom: 8px;
    }

    .journey-promo-card .vs-btn {
        padding: 11px 28px;
        font-size: 13px;
        width: 100%;
        max-width: 250px;
    }

    .journey-promo-card .col-lg-8 {
        margin-bottom: 20px;
    }

    .journey-promo-card .col-lg-4 {
        margin-bottom: 0;
    }
}

@media (max-width: 575px) {
    .journey-promo-wrapper {
        margin-top: 20px;
        margin-bottom: 20px;
    }

    .journey-promo-card {
        padding: 20px 15px;
    }

    .promo-heading {
        font-size: 16px;
    }

    .promo-tagline {
        font-size: 9px;
        letter-spacing: 1.5px;
    }

    .journey-promo-card .vs-btn {
        padding: 10px 24px;
        font-size: 12px;
    }
}

/*----------------------- header */
/* Style the button */
.hamburger-btn {
    background: none;
    border: none;
    font-size: 34px;
    color: black;
    cursor: pointer;
}

/* Dropdown menu - HIDDEN BY DEFAULT */
.menu-dropdown1 {
    position: relative;
}

.dropdown-menu1 {
    display: none !important; /* Force hidden by default */
    position: absolute;
    top: 100%;
    right: 0;
    background: white;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 10px;
    box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.15);
    min-width: 229px;
    max-width: 255px;
    z-index: 9999;
    flex-direction: column;
}

/* Show when active class is added (for mobile) */
.dropdown-menu1.active {
    display: flex !important;
}

/* Links inside dropdown */
.dropdown-menu1 a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    text-decoration: none;
    color: #333;
    border-radius: 4px;
    transition: background 0.2s;
    font-size: 14px;
}

.dropdown-menu1 a svg {
    flex-shrink: 0;
}

.dropdown-menu1 a:hover {
    background: #f5f5f5;
    color: #000;
}

/* Show dropdown on hover - desktop only */
@media (min-width: 768px) {
    .menu-dropdown1:hover .dropdown-menu1 {
        display: flex !important;
    }
}

/* Mobile styles */
@media (max-width: 767px) {
    .vs-header {
        padding: 0 20px !important;
    }

    .row {
        padding: 0 10px !important;
    }

    .vs-logo {
        margin-left: -30px;
    }

    .vs-logo img {
        width: 150px !important;
    }

    .header-right ul {
        gap: 0 !important;
    }
}

/*-----------------------location filter btn */

.hidden {
    display: none !important;
}

.custom-select-wrapper {
    position: relative;
}

.custom-select-wrapper.disabled {
    opacity: 0.5;
    pointer-events: none;
}

.custom-select {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 14px 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.custom-select:hover {
    border-color: #003939;
}

.custom-select.active {
    border-color: #003939;
    box-shadow: 0 0 0 2px rgba(0, 57, 57, 0.1);
}

.custom-select.active i {
    transform: rotate(180deg);
    color: #003939;
}

.custom-select-trigger {
    font-size: 14px;
    color: #9ca3af;
    font-weight: 400;
}

.custom-select.has-value .custom-select-trigger {
    color: #1f2937;
    font-weight: 500;
}

.custom-select i {
    color: #6b7280;
    font-size: 12px;
    transition: transform 0.2s ease;
}

.custom-options {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    max-height: 280px;
    overflow-y: auto;
    z-index: 10001;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: all 0.2s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.custom-options.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.custom-option {
    padding: 12px 18px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background 0.15s ease;
    font-size: 14px;
    color: #374151;
}

.custom-option:hover {
    background: #f9fafb;
}

.custom-option.selected {
    background: #003939;
    color: white;
    font-weight: 500;
}

.custom-option i {
    font-size: 13px;
    color: #9ca3af;
    min-width: 14px;
}

.custom-option.selected i {
    color: white;
}

/* Scrollbar styling */
.custom-options::-webkit-scrollbar {
    width: 5px;
}

.custom-options::-webkit-scrollbar-track {
    background: #f3f4f6;
}

.custom-options::-webkit-scrollbar-thumb {
    background: #003939;
    border-radius: 10px;
}

.custom-options::-webkit-scrollbar-thumb:hover {
    background: #002828;
}

/* Location Modal Styles */
.location-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    align-items: center;
    justify-content: center;
}

.location-modal.show {
    display: flex;
}

.location-modal-content {
    background: white;
    border-radius: 12px;
    width: 90%;
    max-width: 400px;
    max-height: 90vh;
    overflow: visible; /* Changed from hidden */
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.location-modal-header {
    padding: 20px 24px;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.location-modal-header h3 {
    font-size: 20px;
    font-weight: 600;
    color: #1f2937;
    margin: 0;
}

.close-modal-location {
    background: none;
    border: none;
    font-size: 28px;
    color: #6b7280;
    cursor: pointer;
    padding: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
}

.close-modal-location:hover {
    color: #1f2937;
}

.location-modal-body {
    padding: 24px;
    overflow: visible; /* Changed from overflow-y: auto */
    flex: 1;
}

.form-group {
    margin-bottom: 20px;
    position: relative;
}

.form-group:last-child {
    margin-bottom: 0;
}

.form-group label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 8px;
}

.form-group label i {
    color: #003939;
    font-size: 14px;
}

/* Custom Select Wrapper */
.custom-select-wrapper {
    position: relative;
}

.custom-select-wrapper.disabled {
    opacity: 0.5;
    pointer-events: none;
}

/* Custom Select Trigger */
.custom-select {
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
}

.custom-select:hover {
    border-color: #003939;
}

.custom-select.active {
    border-color: #003939;
    box-shadow: 0 0 0 3px rgba(0, 57, 57, 0.1);
}

.custom-select-trigger {
    color: #6b7280;
    font-size: 14px;
}

.custom-select.has-value .custom-select-trigger {
    color: #1f2937;
}

.custom-select i.fa-chevron-down {
    color: #6b7280;
    font-size: 12px;
    transition: transform 0.2s;
}

.custom-select.active i.fa-chevron-down {
    transform: rotate(180deg);
}

/* Custom Options - Pop Out Style */
.custom-options {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    z-index: 1000;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition: all 0.2s ease;
}

.custom-options.show {
    max-height: 280px; /* Fixed maximum height */
    overflow-y: auto; /* Only the options list scrolls */
    overflow-x: hidden;
    opacity: 1;
    visibility: visible;
}

/* Custom Scrollbar for Options */
.custom-options::-webkit-scrollbar {
    width: 6px;
}

.custom-options::-webkit-scrollbar-track {
    background: #f3f4f6;
    border-radius: 0 8px 8px 0;
}

.custom-options::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 3px;
}

.custom-options::-webkit-scrollbar-thumb:hover {
    background: #9ca3af;
}

/* Custom Option Items */
.custom-option {
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    transition: background 0.2s;
    font-size: 14px;
    color: #374151;
}

.custom-option:hover {
    background: #f9fafb;
}

.custom-option.selected {
    background: #f0fdf4;
    color: #003939;
    font-weight: 600;
}

.custom-option i {
    color: #6b7280;
    font-size: 14px;
    width: 16px;
    text-align: center;
}

.custom-option.selected i {
    color: #003939;
}

.custom-option span {
    flex: 1;
}

/* Hidden native select */
.hidden {
    display: none;
}

.location-modal-footer {
    padding: 16px 24px;
    border-top: 1px solid #e5e7eb;
}

.apply-btn {
    width: 100%;
    background: #003939;
    color: white;
    border: none;
    border-radius: 8px;
    padding: 14px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: background 0.2s;
}

.apply-btn:hover {
    background: #002828;
}

.apply-btn:disabled {
    background: #9ca3af;
    cursor: not-allowed;
}

@media (max-width: 768px) {
    .location-modal-content {
        width: 95%;
        max-height: 85vh;
    }

    .custom-options.show {
        max-height: 220px; /* Slightly smaller on mobile */
    }
}
/*-----------------------tour filter btn */
.city-filter-wrapper {
    position: static;
    display: inline-block;
}

#cityLocationFilterBtn {
    position: relative;
    touch-action: manipulation;
    z-index: 1;
    display: flex;
    align-items: center;
    transition: all 0.3s ease;
}

#cityLocationFilterBtn:hover {
    opacity: 0.85;
}

#cityLocationFilterBtn.active .fa-angle-down {
    transform: rotate(180deg);
}

#cityLocationFilterBtn .fa-angle-down {
    transition: transform 0.3s ease;
}

/* Custom Dropdown Menu - Fixed positioning */
.custom-dropdown-menu {
    position: fixed;
    min-width: 320px;
    max-width: 380px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.05);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px) scale(0.95);
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 999999;
    /* Increased z-index */
    overflow: hidden;
    pointer-events: none;
    /* iOS Safari fixes */
    -webkit-transform: translateY(-10px) scale(0.95);
    -webkit-backface-visibility: hidden;
    -webkit-perspective: 1000px;
    transform-style: preserve-3d;
    will-change: transform, opacity;
}

.custom-dropdown-menu.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
    -webkit-transform: translateY(0) scale(1);
    pointer-events: auto;
}

/* Mobile centered positioning with iOS fixes */
@media (max-width: 768px) {
    .custom-dropdown-menu {
        position: fixed !important;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) scale(0.95) translate3d(0, 0, 0);
        -webkit-transform: translate(-50%, -50%) scale(0.95)
            translate3d(0, 0, 0);
        width: calc(100% - 32px);
        max-width: 400px;
        min-width: unset;
        max-height: 70vh;
        display: flex;
        flex-direction: column;
        /* Additional iOS Safari fixes */
        -webkit-overflow-scrolling: touch;
    }

    .custom-dropdown-menu.show {
        transform: translate(-50%, -50%) scale(1) translate3d(0, 0, 0);
        -webkit-transform: translate(-50%, -50%) scale(1) translate3d(0, 0, 0);
    }

    .dropdown-options {
        max-height: calc(70vh - 80px);
        -webkit-overflow-scrolling: touch;
        /* Smooth scrolling on iOS */
    }
}

/* Search Input */
.dropdown-search-wrapper {
    position: relative;
    padding: 12px;
    border-bottom: 1px solid #e5e7eb;
    background: #fafafa;
    flex-shrink: 0;
}

.dropdown-search-wrapper i {
    position: absolute;
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    font-size: 14px;
}

.dropdown-search {
    width: 100%;
    padding: 10px 12px 10px 36px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: 16px;
    /* Prevents zoom on iOS */
    outline: none;
    transition: all 0.2s ease;
    background: white;
    -webkit-appearance: none;
    /* Remove iOS default styling */
}

.dropdown-search:focus {
    border-color: #003939;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

/* Dropdown Options */
.dropdown-options {
    max-height: 320px;
    overflow-y: auto;
    padding: 8px;
    background: white;
    flex: 1;
    -webkit-overflow-scrolling: touch;
    /* Smooth scrolling on iOS */
}

.dropdown-options::-webkit-scrollbar {
    width: 8px;
}

.dropdown-options::-webkit-scrollbar-track {
    background: #f9fafb;
    border-radius: 10px;
}

.dropdown-options::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 10px;
    border: 2px solid #f9fafb;
}

.dropdown-options::-webkit-scrollbar-thumb:hover {
    background: #9ca3af;
}

.dropdown-option {
    padding: 12px 14px;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.15s ease;
    font-size: 14px;
    color: #374151;
    display: flex;
    align-items: center;
    gap: 10px;
    -webkit-tap-highlight-color: transparent;
    /* Remove tap highlight on iOS */
}

.dropdown-option:hover {
    background: #f3f4f6;
    color: #111827;
    transform: translateX(2px);
}

/* iOS touch state */
@media (hover: none) {
    .dropdown-option:active {
        background: #f3f4f6;
        color: #111827;
    }
}

.dropdown-option.selected {
    background: #eff6ff;
    color: #003939;
    font-weight: 500;
}

.dropdown-option.selected::after {
    content: "\f00c";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: auto;
    color: #003939;
    font-size: 12px;
}

.dropdown-option .option-icon {
    color: #9ca3af;
    font-size: 13px;
    width: 16px;
    flex-shrink: 0;
}

.dropdown-option.selected .option-icon {
    color: #003939;
}

.dropdown-option.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.no-results {
    padding: 24px;
    text-align: center;
    color: #9ca3af;
    font-size: 14px;
}

/* Reset Button */
.reset-x1 {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ef4444;
    color: white;
    border-radius: 50%;
    font-size: 11px;
    font-weight: bold;
    cursor: pointer;
    line-height: 1;
    z-index: 30;
    pointer-events: auto;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
    -webkit-tap-highlight-color: transparent;
}

.reset-x1:hover {
    background: #dc2626;
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
}

.reset-x1::before {
    content: "";
    position: absolute;
    top: -8px;
    right: -8px;
    bottom: -8px;
    left: -8px;
    z-index: 31;
}

/* Backdrop overlay */
.dropdown-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.1);
    z-index: 999998;
    /* Just below dropdown */
    opacity: 0;
    visibility: hidden;
    transition: all 0.25s ease;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    /* iOS Safari support */
}

.dropdown-backdrop.show {
    opacity: 1;
    visibility: visible;
}

/* Mobile backdrop darker */
@media (max-width: 768px) {
    .dropdown-backdrop {
        background: rgba(0, 0, 0, 0.5);
    }
}

/* ---------------------- category filter btn like city */
/* City Filter Wrapper */
.city-filter-wrapper {
    position: static;
    display: inline-block;
}

/* Category Filter Wrapper */
.category-filter-wrapper {
    position: static;
    display: inline-block;
}

#cityLocationFilterBtn,
#categoryFilterBtn {
    position: relative;
    touch-action: manipulation;
    z-index: 1;
    display: flex;
    align-items: center;
    transition: all 0.3s ease;
}

#cityLocationFilterBtn:hover,
#categoryFilterBtn:hover {
    opacity: 0.85;
}

#cityLocationFilterBtn.active .fa-angle-down,
#categoryFilterBtn.active .fa-angle-down {
    transform: rotate(180deg);
}

#cityLocationFilterBtn .fa-angle-down,
#categoryFilterBtn .fa-angle-down {
    transition: transform 0.3s ease;
}

/* Custom Dropdown Menu - Fixed positioning */
.custom-dropdown-menu {
    position: fixed;
    min-width: 320px;
    max-width: 380px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.05);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px) scale(0.95);
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 999999;
    /* Increased z-index */
    overflow: hidden;
    pointer-events: none;
    /* iOS Safari fixes */
    -webkit-transform: translateY(-10px) scale(0.95);
    -webkit-backface-visibility: hidden;
    -webkit-perspective: 1000px;
    transform-style: preserve-3d;
    will-change: transform, opacity;
}

.custom-dropdown-menu.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
    -webkit-transform: translateY(0) scale(1);
    pointer-events: auto;
}

/* Mobile centered positioning with iOS fixes */
@media (max-width: 768px) {
    .custom-dropdown-menu {
        position: fixed !important;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) scale(0.95) translate3d(0, 0, 0);
        -webkit-transform: translate(-50%, -50%) scale(0.95)
            translate3d(0, 0, 0);
        width: calc(100% - 32px);
        max-width: 400px;
        min-width: unset;
        max-height: 70vh;
        display: flex;
        flex-direction: column;
        /* Additional iOS Safari fixes */
        -webkit-overflow-scrolling: touch;
    }

    .custom-dropdown-menu.show {
        transform: translate(-50%, -50%) scale(1) translate3d(0, 0, 0);
        -webkit-transform: translate(-50%, -50%) scale(1) translate3d(0, 0, 0);
    }

    .dropdown-options {
        max-height: calc(70vh - 80px);
        -webkit-overflow-scrolling: touch;
        /* Smooth scrolling on iOS */
    }
}

/* Search Input */
.dropdown-search-wrapper {
    position: relative;
    padding: 12px;
    border-bottom: 1px solid #e5e7eb;
    background: #fafafa;
    flex-shrink: 0;
}

.dropdown-search-wrapper i {
    position: absolute;
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    font-size: 14px;
}

.dropdown-search {
    width: 100%;
    padding: 10px 12px 10px 36px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: 16px;
    /* Prevents zoom on iOS */
    outline: none;
    transition: all 0.2s ease;
    background: white;
    -webkit-appearance: none;
    /* Remove iOS default styling */
}

.dropdown-search:focus {
    border-color: #003939;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

/* Dropdown Options */
.dropdown-options {
    max-height: 320px;
    overflow-y: auto;
    padding: 8px;
    background: white;
    flex: 1;
    -webkit-overflow-scrolling: touch;
    /* Smooth scrolling on iOS */
}

.dropdown-options::-webkit-scrollbar {
    width: 8px;
}

.dropdown-options::-webkit-scrollbar-track {
    background: #f9fafb;
    border-radius: 10px;
}

.dropdown-options::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 10px;
    border: 2px solid #f9fafb;
}

.dropdown-options::-webkit-scrollbar-thumb:hover {
    background: #9ca3af;
}

.dropdown-option {
    padding: 12px 14px;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.15s ease;
    font-size: 14px;
    color: #374151;
    display: flex;
    align-items: center;
    gap: 10px;
    -webkit-tap-highlight-color: transparent;
    /* Remove tap highlight on iOS */
}

.dropdown-option:hover {
    background: #f3f4f6;
    color: #111827;
    transform: translateX(2px);
}

/* iOS touch state */
@media (hover: none) {
    .dropdown-option:active {
        background: #f3f4f6;
        color: #111827;
    }
}

.dropdown-option.selected {
    background: #eff6ff;
    color: #003939;
    font-weight: 500;
}

.dropdown-option.selected::after {
    content: "\f00c";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: auto;
    color: #003939;
    font-size: 12px;
}

.dropdown-option .option-icon {
    color: #9ca3af;
    font-size: 13px;
    width: 16px;
    flex-shrink: 0;
}

.dropdown-option.selected .option-icon {
    color: #003939;
}

.dropdown-option.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.no-results {
    padding: 24px;
    text-align: center;
    color: #9ca3af;
    font-size: 14px;
}

/* Reset Button */
.reset-x1 {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ef4444;
    color: white;
    border-radius: 50%;
    font-size: 11px;
    font-weight: bold;
    cursor: pointer;
    line-height: 1;
    z-index: 30;
    pointer-events: auto;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
    -webkit-tap-highlight-color: transparent;
}

.reset-x1:hover {
    background: #dc2626;
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
}

.reset-x1::before {
    content: "";
    position: absolute;
    top: -8px;
    right: -8px;
    bottom: -8px;
    left: -8px;
    z-index: 31;
}

/* Backdrop overlay */
.dropdown-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.1);
    z-index: 999998;
    /* Just below dropdown */
    opacity: 0;
    visibility: hidden;
    transition: all 0.25s ease;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    /* iOS Safari support */
}

.dropdown-backdrop.show {
    opacity: 1;
    visibility: visible;
}

/* Mobile backdrop darker */
@media (max-width: 768px) {
    .dropdown-backdrop {
        background: rgba(0, 0, 0, 0.5);
    }
}

/*-----------------------hero section new layou */
/* Mobile selects */
#mobileSearchModal select option:disabled {
    color: #888;
}

/* Dropdown improvements for mobile */
#whereDropdown,
#whatDropdown {
    display: none;
    position: absolute;
    background: white;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    margin-top: 8px;
    z-index: 1000;
    max-height: 400px;
    overflow-y: auto;
}

/* Desktop styles */
@media (min-width: 768px) {
    #whereDropdown {
        top: 100%;
        left: -20px;
        right: -15px;
    }

    #whatDropdown {
        top: 100%;
        left: 0;
        right: -15px;
    }
}

/* Mobile styles - full width dropdowns */
@media (max-width: 767px) {
    #whereDropdown {
        top: 100%;
        left: -16px !important;
        right: -16px !important;
        width: auto !important;
        min-width: calc(100vw - 32px);
    }

    #whatDropdown {
        top: 100%;
        left: -111px !important;
        right: 0 !important;
        width: auto !important;
        min-width: 280px;
        max-width: calc(100vw - 32px);
    }

    /* Adjust input containers on mobile */
    #whereInput,
    #whatInput {
        font-size: 14px !important;
    }
}

/* Smooth scrolling for dropdowns */
#whereDropdown,
#whatDropdown {
    -webkit-overflow-scrolling: touch;
}

/*-----------------------restaurant details page */

.toggle-menus {
    font-size: 0.9rem;
    transition: all 0.3s ease;
    border-width: 1.5px;
}

.toggle-menus:hover {
    background-color: rgba(108, 117, 125, 0.1);
    transform: translateY(-1px);
}

.toggle-menus.active {
    background-color: var(--bs-secondary) !important;
    color: white !important;
    border-color: var(--bs-secondary) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.toggle-menus.active:hover {
    background-color: #5a6268 !important;
    transform: translateY(-1px);
}

.toggle-menus i.fa-chevron-down {
    transition: transform 0.3s ease;
}

.menu-toggle-wrapper {
    position: relative;
}

/* Optional: Add a subtle connecting effect when active */
.menu-toggle-wrapper:has(.toggle-menus.active) {
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.08));
}

.booking-widget-container1 {
    margin-left: -16px;
}

/* Apply only on mobile (max-width: 576px) */
@media (max-width: 576px) {
    .booking-widget-container1 {
        margin-left: -42px;
    }
}
/* Modal Background */

/* Modal Content Box */

/* Close Button */
.custom-modal-close {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    font-size: 1.5rem;
    font-weight: bold;
    border: none;
    background: none;
    color: black;
    cursor: pointer;
}

/* Animate modal */

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/*-----------------------hero image */
.hero-image1 {
    position: relative;
    background-image: url("/cdn-cgi/image/width=1500,height=650,fit=cover,format=webp,quality=75/assets/img/banner/HomeImg2.webp");
    background-size: cover;
    background-position: center;
    height: 64vh;
}

@media (max-width: 768px) {
    .hero-image1 {
        height: 90vh;
    }
}

/*-----------------------restaurants */
/* Inside Viewer Section */
.inside-viewer-section {
    padding: 80px 0;
    background: #f8f9fa;
}

.viewer-title {
    font-size: 36px;
    font-weight: 700;
    color: #1a1a1a;
    text-align: center;
    margin: 0 0 40px 0;
}

.inside-viewer-container {
    background: #fff;
    padding: 20px;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
    min-height: 600px;
}

/*-----------------------ds header booking form */

.ds-header {
    margin-bottom: 7px;
}
/* sticky booking form */
@media (min-width: 768px) {
    .row {
        align-items: stretch;
        /* make columns full height */
    }

    .sidebar-area {
        display: flex;
        flex-direction: column;
        /* stack sticky + ninja */
        height: 100%;
        /* full height of column */
    }

    .sticky-container {
        position: -webkit-sticky;
        position: sticky;
        top: 100px;
        z-index: 10;
    }

    #ninja-container {
        margin-top: auto;
        /* push CommonNinja below sticky */
    }
}

/*-----------------------you might also like section */
.products-wrapper {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.products-wrapper::-webkit-scrollbar {
    display: none;
}

.product-card {
    min-width: 240px;
    max-width: 240px;
    flex-shrink: 0;
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.product-card:hover {
    transform: none;
    box-shadow: none;
}

.product-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.product-image {
    width: 100%;
    height: 180px;
    overflow: hidden;
    background: #f0f0f0;
    position: relative;
}

.product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.image-overlay {
    display: none;
}

.product-card:hover .product-image img {
    transform: scale(1.05);
}

.product-card:hover .image-overlay {
    opacity: 0;
}

.product-info {
    padding: 12px;
    display: flex;
    flex-direction: column;
    min-height: 150px;
    height: auto;
}

.product-title {
    font-size: 13px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0 0 8px 0;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    /* show more lines */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    flex-grow: 1;
    word-break: break-word;
}

.product-meta {
    display: flex;
    gap: 12px;
    margin-bottom: 8px;
    font-size: 12px;
    color: #666;
    flex-wrap: wrap;
}

.meta-icon {
    display: flex;
    align-items: center;
    gap: 4px;
}

.product-card:hover .meta-icon {
    background: transparent;
}

.meta-icon i {
    font-size: 11px;
    color: #666;
}

.meta-icon span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 90px;
}

.product-price {
    display: flex;
    align-items: baseline;
    gap: 4px;
    margin-top: auto;
}

.price-label {
    font-size: 12px;
    color: #666;
    font-weight: normal;
}

.price-amount {
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
}

.scroll-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid #ddd;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.scroll-arrow:hover {
    background: white;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    transform: translateY(-50%);
}

.scroll-arrow:hover i {
    color: #333;
}

.scroll-arrow i {
    color: #333;
    transition: color 0.3s ease;
}

.scroll-arrow-left {
    left: 10px;
}

.scroll-arrow-right {
    right: 10px;
}

@media (max-width: 768px) {
    .product-card {
        min-width: 200px;
        max-width: 200px;
    }

    .product-image {
        height: 150px;
    }

    .product-info {
        min-height: 130px;
        height: auto;
    }

    .product-title {
        font-size: 12px;
        -webkit-line-clamp: 4;
    }

    .meta-icon span {
        max-width: 90px;
    }
}

/*-----------------------location page*/
.select-wrapper {
    position: relative;
    width: 100%;
}

.category-select {
    width: 100%;
    color: black;
    padding: 12px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-size: 14px;
    font-family: inherit;
    background-color: white;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 40px;
}

.category-select:focus {
    outline: none;
    border-color: #007bff;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.category-select:hover {
    border-color: #b0b0b0;
}

/*-----------------------booking form new design */
#ninja-container {
    display: none;
}
/* Booking widget container border */
#tour_form_widget {
    border: 1px solid #000;
    /* black border */
    border-radius: 12px;
    /* rounded corners */
    padding: 2px;
    box-sizing: border-box;
    background: #fff;
}

/* Container */
.guests-dropdown {
    position: relative;
    width: 100%;
    max-width: 320px;
}

/* Unified dropdown button / select */
.booking-item select,
.booking-item input,
.booking-item button.guest-select {
    width: 100%;
    height: 44px;
    padding: 0 10px;
    border: 1px solid #ccc;
    border-radius: 8px;
    background: #fff;
    font-size: 16px;
    text-align: left;
    cursor: pointer;
    box-sizing: border-box;
}

.guest-select:hover {
    border-color: #003939;
    box-shadow: 0 0 0 3px rgba(10, 138, 86, 0.15);
}

.guest-select {
    color: #000;
    /* black text */
}

/* Guest options dropdown */
.guest-options {
    display: none;
    position: absolute;
    top: 99%;
    left: 50%;
    transform: translateX(-73%);
    width: 320px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 12px 16px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
    z-index: 100;
    max-height: 300px;
    overflow-y: auto;
}

.guest-options3 {
    display: none;
    position: absolute;
    top: 99%;
    left: 50%;
    transform: translateX(-27%);
    width: 320px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 12px 16px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
    z-index: 100;
    max-height: 300px;
    overflow-y: auto;
}

.guest-options2 {
    display: none;
    position: absolute;
    top: 77%;
    left: 50%;
    transform: translateX(-51%);
    width: 320px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 12px 16px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
    z-index: 100;
    max-height: 300px;
    overflow-y: auto;
}

/* Guest row card */
.guest-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 10px;
    margin-bottom: 10px;
    background: #f9f9f9;
    border-radius: 8px;
    transition: background 0.2s;
}

.guest-row:hover {
    background: #d8d8d8ff;
}

.guest-row:last-child {
    margin-bottom: 0;
}

/* Guest label */
.guest-row span {
    font-weight: 600;
    font-size: 16px;
    color: #222;
    margin-right: 10px;
}

/* Guest controls */
.guest-controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

.guest-btn {
    width: 43px;
    aspect-ratio: 1;
    /* Forces perfect square */
    height: auto;
    font-size: 18px;
    border: 1.5px solid #003939;
    color: #003939;
    border-radius: 50%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.25s ease;
    font-weight: bold;
}

.guest-btn:hover {
    background: #003939;
    color: #fff;
    transform: scale(1.1);
}

.guest-qty {
    width: 40px;
    height: 36px;
    text-align: center !important;
    border: none;
    background: #fff;
    font-weight: 600;
    font-size: 16px;
    color: #222;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.1);
}

/* Scrollbar for guest options */
.guest-options::-webkit-scrollbar {
    width: 6px;
}

.guest-options::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 3px;
}

/* Grid layout */
.booking-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.booking-item label {
    font-size: 0.9rem;
    font-weight: 600;
    color: #666;
    display: block;
    margin-bottom: 5px;
}

.booking-item.full-width {
    grid-column: span 2;
}

.booking-item input::placeholder {
    color: #000;
    /* black placeholder text */
    opacity: 1;
    /* ensures consistent color across browsers */
}

.booking-item select option[value=""] {
    color: #000;
    /* black text for the placeholder option */
}

/*-----------------------cart buttons and design */
.payment-options-wrapper {
    margin-bottom: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
    max-width: 600px;
    margin-inline: auto;
}

.payment-label {
    font-size: 1.25rem;
    font-weight: 600;
    color: #1e1e1e;
    text-align: center;
}

.payment-card {
    width: 100%;
    border: 2px solid #e0e0e0;
    border-radius: 10px;
    padding: 16px 20px;
    background-color: #fff;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.payment-card:hover {
    border-color: #003939;
    box-shadow: 0 2px 10px rgba(0, 123, 255, 0.1);
}

.payment-card-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}

.payment-card-content strong {
    font-size: 1.1rem;
    color: #333;
}

.payment-desc {
    font-size: 0.875rem;
    color: #6c757d;
    margin: 4px 0 0;
}

#paypal-button-container {
    min-width: 200px;
}

/*-----------------------restaurant booking widget center */
.booking-widget {
    display: block;
    justify-content: center;
    width: 100%;
    text-align: center;
}

/* Mobile only */
@media (max-width: 767.98px) {
    .booking-widget {
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }

    .booking-widget iframe,
    .booking-widget > * {
        display: inline-block;
        margin-left: auto;
        margin-right: auto;
    }
}

/*-----------------------home page hero section */

/* iPad / tablet: width between 769px and 1024px */
@media (min-width: 769px) and (max-width: 1024px) {
    .hero-layout2 .hero-content {
        text-align: center;
    }

    .hero-layout2 .hero-slide {
        height: auto;
        min-height: 400px;
    }
}

/* Mobile: width up to 768px */
@media (max-width: 768px) {
    .hero-layout2 .hero-content {
        margin-top: 40px !important;
        text-align: center;
    }

    .hero-layout2 h1 {
        bottom: 30px !important;
        font-size: 41px !important;
    }

    .hero-layout2 p {
        font-size: 18px !important;
        font-weight: 600;
    }

    .hero-layout2 .vs-btn {
        margin-top: 20px !important;
        font-size: 16px;
        padding: 15px 20px;
    }

    .hero-layout2 .row {
        align-items: center !important;
        justify-content: center !important;
    }

    .hero-layout2 .container {
        height: auto !important;
    }
}

/* Modal Overlay */
.modal-overlay1 {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    justify-content: center;
    align-items: center;
}

.modal-overlay1.active {
    display: flex;
}

/* Modal Container */
.modal-container1 {
    background: white;
    width: 90%;
    max-width: 600px;
    border-radius: 8px;
    position: relative;
    max-height: 75vh;
    display: flex;
    flex-direction: column;
    /* stack header, body, footer */
}

/* Modal Header */
.modal-header {
    padding: 20px 24px;
    border-bottom: 1px solid #e0e0e0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-title {
    font-size: 20px;
    font-weight: 600;
    color: #333;
}

.close-btn {
    background: none;
    border: none;
    font-size: 28px;
    cursor: pointer;
    color: #666;
    line-height: 1;
    padding: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.close-btn:hover {
    color: #333;
}

/* Modal Body */
.modal-body {
    padding: 24px;
    overflow-y: auto;
    flex-grow: 1;
}

/* Filter Section */
.filter-section1 {
    margin-bottom: 32px;
}

.filter-section1:last-of-type {
    margin-bottom: 24px;
}

.filter-label1 {
    font-size: 16px;
    font-weight: 600;
    color: #333;
    margin-bottom: 16px;
    display: block;
}

/* Checkbox Grid */
.checkbox-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.checkbox-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.checkbox-item input[type="checkbox"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: #0a5f5c;
}

.checkbox-item label {
    font-size: 14px;
    color: #666;
    cursor: pointer;
    user-select: none;
}

/* Price Range Slider */
.price-range1 {
    padding: 8px 0;
}

.price-labels {
    display: flex;
    justify-content: space-between;
    margin-bottom: 16px;
}

.price-label {
    font-size: 14px;
    font-weight: 500;
    color: #333;
}

.slider-container1 {
    position: relative;
    height: 6px;
    background-color: #e0e0e0;
    border-radius: 3px;
    margin: 20px 0;
}

.slider-track {
    position: absolute;
    height: 100%;
    background-color: #0a5f5c;
    border-radius: 3px;
}

.slider-input {
    position: absolute;
    width: 100%;
    height: 6px;
    background: transparent;
    pointer-events: none;
    -webkit-appearance: none;
    top: 0;
    padding: 0 0px 0 0px !important;
    border: 0px solid;
}

.slider-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    background: white;
    border: 2px solid #0a5f5c;
    border-radius: 50%;
    cursor: pointer;
    pointer-events: all;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.slider-input::-moz-range-thumb {
    width: 20px;
    height: 20px;
    background: white;
    border: 2px solid #0a5f5c;
    border-radius: 50%;
    cursor: pointer;
    pointer-events: all;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* Modal Footer */
.modal-footer {
    padding: 16px 24px;
    border-top: 1px solid #e0e0e0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

@media (max-width: 600px) {
    .checkbox-grid {
        grid-template-columns: 1fr;
    }

    .modal-footer {
        justify-content: flex-end;
        padding: 16px;
    }

    .reset-btn,
    .apply-btn {
        padding: 8px 16px;
        font-size: 15px;
    }
}

.reset-btn {
    background: none;
    border: none;
    color: #666;
    font-size: 14px;
    text-decoration: underline;
    cursor: pointer;
    padding: 8px 12px;
}

.reset-btn:hover {
    color: #333;
}

.apply-btn {
    background-color: #0a5f5c;
    color: white;
    border: none;
    padding: 12px 32px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    text-transform: uppercase;
}

.apply-btn:hover {
    background-color: #084946;
}

/*-----------------------listing page filter button */
.filter-btn {
    position: relative;
    padding: 0.625rem 1.5rem;
    border: 1.5px solid #ddd;
    border-radius: 50px;
    background: white;
    color: #333;
    font-size: 0.9375rem;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: all 0.3s ease;
    flex-shrink: 0;
    text-decoration: none;
}

.filter-btn:hover {
    background: #f8f9fa !important;
    border-color: #999 !important;
}

.filter-btn.active {
    background: #003939;
    color: white;
    border-color: #003939 !important;
}

.filter-btn.active:hover {
    background: #003939 !important;
    color: white !important;
    border-color: #003939 !important;
}

.filter-btn:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.filter-btn1 {
    position: relative;
    padding: 0.625rem 1.5rem;
    border: 1.5px solid #ddd;
    border-radius: 50px;
    background: white;
    color: #333;
    font-size: 0.9375rem;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: all 0.3s ease;
    flex-shrink: 0;
    text-decoration: none;
}

.filter-btn1:hover {
    background: #f8f9fa !important;
    border-color: #999 !important;
}

.reset-x {
    position: absolute;
    top: -2px;
    right: -2px;
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: gray;
    color: white;
    border-radius: 50%;
    font-size: 12px;
    font-weight: bold;
    cursor: pointer;
    line-height: 1;
}

.reset-x:hover {
    background: darkred;
}

.filter-buttons-wrapper::-webkit-scrollbar {
    display: none;
}

.scroll-arrow:hover {
    background: #f8f9fa !important;
    border-color: #999 !important;
}

.scroll-arrow:active {
    transform: translateY(-50%) scale(0.95);
}

@media (max-width: 768px) {
    .scroll-arrow-left {
        left: 0 !important;
    }

    .scroll-arrow-right {
        right: 0 !important;
    }
}

/*-----------------------categegory widget new */
.widget_categories1 {
    background: #fff;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    margin-bottom: 20px;
}

.widget_title1 {
    margin: 0 0 16px 0;
    font-size: 18px;
    font-weight: 600;
    color: #1a1a1a;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    user-select: none;
    padding-bottom: 12px;
    border-bottom: 2px solid #f0f0f0;
}

.categories-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: none;
}

.category-item1 {
    position: relative;
    padding: 8px 12px;
    /* reduced from 12px 16px */
    margin-bottom: 4px;
    border-radius: 6px;
    transition: all 0.2s ease;
    background: #f6f5f5ff;
}

.category-item1:hover {
    background: #003939;
    transform: translateX(4px);
}

.category-item1:hover .category-name1 {
    color: #fff;
}

.category-name1 {
    font-size: 13px;
    /* slightly smaller */
    color: #333;
    font-weight: 500;
}

.category-link {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-indent: -9999px;
    z-index: 1;
}

@media (max-width: 768px) {
    .widget_categories1 {
        padding: 16px;
        margin-bottom: 16px;
    }

    .widget_title1 {
        font-size: 16px;
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: none;
    }

    .category-item1 {
        padding: 10px 12px;
    }

    .category-name1 {
        font-size: 13px;
    }
}

/*-----------------------dashboard account page form */

/* Simple Card Styles */
.simple-card {
    background: white;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    overflow: hidden;
}

.simple-card-header {
    background: #003939;
    color: white;
    padding: 1.5rem 2rem;
    border-bottom: 3px solid #37d4d9;
}

.simple-card-header h2,
.simple-card-header h3 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 600;
    color: white;
}

.simple-card-body {
    padding: 2rem;
}

/* Form Sections */
.form-section {
    margin-bottom: 2.5rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid #e5e5e5;
}

.form-section:last-of-type {
    border-bottom: none;
}

.section-heading {
    color: #003939;
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: 1.25rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #37d4d9;
}

/* Form Controls */
.form-label {
    font-weight: 500;
    color: #333;
    margin-bottom: 0.5rem;
}

.form-control,
.form-select {
    border: 1px solid #d1d5db;
    border-radius: 4px;
    padding: 0.625rem 0.875rem;
}

.form-control:focus,
.form-select:focus {
    border-color: #37d4d9;
    box-shadow: 0 0 0 3px rgba(55, 212, 217, 0.1);
}

/* Buttons */
.btn-primary {
    background-color: #003939;
    border-color: #003939;
    color: white;
}

.btn-primary:hover {
    background-color: #37d4d9;
    border-color: #37d4d9;
}

.btn-danger {
    background-color: #dc3545;
    border-color: #dc3545;
}

.btn-outline-secondary {
    border-color: #6c757d;
    color: #6c757d;
}

.btn-outline-secondary:hover {
    background-color: #6c757d;
    color: white;
}

/* Input Groups */
.input-group {
    margin-bottom: 0.75rem;
}

.input-group .btn {
    min-width: 42px;
}

/* Image Grid */
.image-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 1rem;
    padding: 1rem;
    background: #f9fafb;
    border-radius: 4px;
    min-height: 80px;
}

.image-item {
    position: relative;
    aspect-ratio: 1;
    border-radius: 4px;
    overflow: hidden;
    cursor: move;
    background: white;
    border: 2px solid #e5e5e5;
}

.image-item:hover {
    border-color: #37d4d9;
}

.image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.image-badge {
    position: absolute;
    top: 4px;
    left: 4px;
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
}

.image-remove {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 24px;
    height: 24px;
    padding: 0;
    line-height: 1;
    font-size: 16px;
    border-radius: 50%;
}

/* Restaurant Cards */
.restaurant-card {
    background: white;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    transition: box-shadow 0.3s;
}

.restaurant-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.restaurant-image {
    width: 100%;
    height: 200px;
    overflow: hidden;
    background: #f3f4f6;
}

.restaurant-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.restaurant-content {
    padding: 1.25rem;
}

.restaurant-content h5 {
    font-size: 1.125rem;
    font-weight: 600;
    color: #003939;
    margin-bottom: 0.75rem;
}

.restaurant-content .location {
    font-size: 0.875rem;
    color: #6b7280;
    margin-bottom: 0.5rem;
}

.restaurant-content .location i {
    color: #37d4d9;
    margin-right: 0.25rem;
}

.restaurant-content .link {
    font-size: 0.875rem;
    color: #37d4d9;
    text-decoration: none;
    display: block;
    margin-bottom: 0.75rem;
    word-break: break-all;
}

.delete-form {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 10;
}

.delete-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: white;
    border: 2px solid #dc3545;
    color: #dc3545;
    font-size: 20px;
    font-weight: bold;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.delete-btn:hover {
    background: #dc3545;
    color: white;
}

/* Responsive */
@media (max-width: 768px) {
    .simple-card-body {
        padding: 1.5rem;
    }

    .image-grid {
        grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    }
}

/*------------------- 3.2. Buttons -------------------*/

.vs-btn {
    border: none;
    vertical-align: middle;
    display: inline-block;
    text-align: center;
    font-family: var(--title-font);
    background-color: var(--body-color);
    color: var(--white-color);
    font-weight: 700;
    font-size: 16px;
    line-height: 1;
    padding: 15px 30px;
    border-radius: 10px;
    position: relative;
    z-index: 1;
    overflow: hidden;
    text-transform: uppercase;
}
.vs-btn:before,
.vs-btn:after {
    content: "";
    position: absolute;
    top: -1px;
    right: -1px;
    bottom: -1px;
    left: -1px;
    background-color: var(--theme-color);
    transform: scale(0);
    z-index: -1;
    border-radius: inherit;
    transform-origin: right bottom;
    transition: opacity ease 0.4s, visibility ease 0.4s, transform ease 0.4s;
}
.vs-btn:before {
    transform-origin: left top;
}
.vs-btn:hover {
    color: var(--white-color);
}
.vs-btn:hover:before,
.vs-btn:hover:after {
    transform: scale(1);
    opacity: 1;
    visibility: visible;
}
.vs-btn.style2 {
    background-color: var(--white-color);
    color: var(--theme-color);
}
.vs-btn.style2::before,
.vs-btn.style2::after {
    background-color: var(--theme-color2);
}
.vs-btn.style2:hover {
    color: var(--white-color);
}
.vs-btn.style4 {
    background-color: var(--theme-color);
}
.vs-btn.style4::before,
.vs-btn.style4::after {
    background-color: var(--theme-color2);
}
.vs-btn.style5 {
    font-size: 16px;
    font-weight: 600;
    text-transform: capitalize;
    border-radius: 15px;
    padding: 22px 50px;
    background: var(--theme-color);
    min-height: 60px;
}
.vs-btn.style5::before,
.vs-btn.style5::after {
    background: var(--theme-color2);
}
.vs-btn.style5 > i {
    min-width: 20px;
    min-height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--theme-color2);
    border-radius: 50%;
    transition: all ease 0.4s;
}
.vs-btn.has-arrow i {
    margin-left: 6px;
}

.play-btn {
    display: inline-block;
    position: relative;
    z-index: 1;
}
.play-btn > i {
    display: inline-block;
    width: var(--icon-size, 124px);
    height: var(--icon-size, 124px);
    line-height: var(--icon-size, 124px);
    text-align: center;
    background-color: rgba(255, 104, 26, 0.8);
    color: var(--theme-color);
    font-size: var(--icon-font-size, 1.5em);
    border-radius: 50%;
    z-index: 1;
    transition: all ease 0.5s;
}
.play-btn:after,
.play-btn:before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 104, 26, 0.8);
    z-index: -1;
    border-radius: 50%;
    transition: all ease 0.5s;
}
.play-btn:after {
    animation-delay: 2s;
}
.play-btn:hover > i {
    background-color: rgba(55, 212, 217, 0.8);
}
.play-btn:hover:after,
.play-btn:hover::before {
    background-color: rgba(55, 212, 217, 0.8);
    color: var(--white-color);
}
.play-btn.style2 > i:hover {
    background-color: var(--theme-color);
}

.scroll-btn {
    position: fixed;
    bottom: 100px;
    right: 30px;
    z-index: 94;
    opacity: 0;
    visibility: hidden;
    display: inline-block;
    border-radius: 50%;
    /* Small devices */
}
.scroll-btn i {
    display: inline-block;
    background-color: #003939;
    color: var(--white-color);
    text-align: center;
    font-size: 16px;
    width: var(--btn-size, 50px);
    height: var(--btn-size, 50px);
    line-height: var(--btn-size, 50px);
    z-index: 2;
    border-radius: inherit;
    position: relative;
    transition: all ease 0.8s;
    box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.02);
}
.scroll-btn:before {
    content: "";
    position: absolute;
    left: var(--extra-shape, -6px);
    top: var(--extra-shape, -6px);
    right: var(--extra-shape, -6px);
    bottom: var(--extra-shape, -6px);
    background-color: transparent;
    border-radius: inherit;
    z-index: 1;
    border: 2px dashed #003939;
    transition: all ease 0.4s;
    animation: spin 13s infinite linear;
}
.scroll-btn:focus i,
.scroll-btn:hover i {
    background-color: #37d4d9;
    color: var(--white-color);
}
.scroll-btn:focus:before,
.scroll-btn:hover:before {
    border-color: #37d4d9;
}
.scroll-btn.show {
    bottom: 120px;
    opacity: 1;
    visibility: visible;
}
@media (max-width: 767px) {
    .scroll-btn {
        --btn-size: 40px;
        --extra-shape: -4px;
        right: 15px;
        bottom: 50px;
    }
    .scroll-btn.show {
        bottom: 15px;
    }
}

.scrollToTop {
    position: fixed;
    right: 30px;
    bottom: 500px;
    opacity: 0;
    visibility: hidden;
    transition: all ease 0.4s;
    z-index: 96;
}
.scrollToTop.show {
    bottom: 23px;
    opacity: 1;
    visibility: visible;
}

/* Medium devices */
@media (max-width: 991px) {
    .vs-btn {
        font-size: 14px;
        padding-left: 20px;
        padding-right: 20px;
    }
    .play-btn {
        --icon-size: 60px;
        --icon-font-size: 20px;
    }
    .scrollToTop {
        right: 20px;
    }
    .scrollToTop.show {
        bottom: 20px;
    }
}
/*------------------- 3.3. Titles -------------------*/
.sec-title {
    margin: -0.2em 0 15px 0;
}

.sec-subtitle {
    display: block;
    font-size: 20px;
    font-weight: 600;
    color: var(--theme-color);
    margin: -0.2em 0 15px 0;
    text-transform: capitalize;
}

.sec-text,
.sec-text {
    margin: 0 0 18px 0;
    font-size: 16px;
    color: var(--body-color);
    line-height: 1.625;
}

.title-area {
    margin-bottom: calc(var(--section-title-space) - 30px);
}

.white-title .sec-title,
.white-title .sec-subtitle,
.white-title .sec-text,
.white-title2 .sec-title,
.white-title2 .sec-subtitle,
.white-title2 .sec-text {
    color: var(--white-color);
}

.white-title2 .sec-subtitle {
    color: var(--theme-color);
}

/* Large devices */
@media (max-width: 1199px) {
    .sec-title {
        font-size: 40px;
    }
}
/* Medium devices */
@media (max-width: 991px) {
    .title-area {
        margin-bottom: 40px;
        text-align: center;
    }
    .sec-title {
        font-size: 36px;
    }
}
/* Small devices */
@media (max-width: 767px) {
    .sec-title {
        font-size: 30px;
    }
    .sec-subtitle {
        font-size: 14px;
        margin-bottom: 10px;
    }
}
/*------------------- 3.4. Common -------------------*/

.z-index-common {
    position: relative;
    z-index: 3;
}

.badge {
    position: absolute;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    display: inline-block;
    text-align: center;
    background-color: var(--theme-color);
    color: var(--white-color);
    padding: 0.35em 0.55em;
    border-radius: 50%;
}

.shape-mockup-wrap {
    position: relative;
    overflow: hidden;
}

.shape-mockup {
    display: inline-block;
    position: absolute;
}

@keyframes newlabel {
    0% {
        background-color: var(--theme-color);
    }
    50% {
        background-color: var(--theme-color2);
    }
    100% {
        background-color: var(--theme-color);
    }
}
/*------------------- 3.6. Font -------------------*/

.fw-semibold {
    font-weight: 600;
}

.fw-bold {
    font-weight: 700;
}

/* Small devices */
/*------------------- 3.7. Background -------------------*/

.bg-smoke {
    background-color: var(--smoke-color) !important;
}

.background-image,
[data-bg-src] {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
}

.bg-light {
    background-color: var(--smoke-color) !important;
}

/*------------------- 3.8. Text Color -------------------*/

.text-white {
    color: var(--white-color) !important;
}

/*------------------- 3.9. Overlay -------------------*/
.overlay {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
}

/*------------------- 3.10. Animation -------------------*/

.jump {
    animation: jumpping var(--duration, 6s) infinite linear;
}

.rotate {
    animation: rotate var(--duration, 12s) infinite linear;
}

.spin {
    animation: spin var(--duration, 40s) infinite linear;
}

.fadeInUp {
    -webkit-animation-name: fadeInUp;
    animation-name: fadeInUp;
}

.wow-animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

.fadein {
    --animation-name: fadein-custom;
}

.animated {
    animation-fill-mode: both;
    animation-iteration-count: 1;
    animation-duration: 1s;
    animation-delay: 0.3s;
    animation-name: var(--animation-name);
}

.play-btn:after,
.play-btn:before {
    animation-duration: var(--ripple-ani-duration);
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-name: ripple;
}

@keyframes ripple {
    0% {
        transform: scale(1);
        opacity: 0;
    }
    50% {
        opacity: 0.8;
    }
    100% {
        transform: scale(1.2);
        opacity: 0;
    }
}
@keyframes ripple2 {
    0% {
        transform: scale(1);
        opacity: 0;
    }
    50% {
        opacity: 0.8;
    }
    100% {
        transform: scale(1.8);
        opacity: 0;
    }
}
@keyframes slideinup {
    0% {
        opacity: 0;
        transform: translateY(70px);
    }
    100% {
        transform: translateY(0);
    }
}
@keyframes slideindown {
    0% {
        opacity: 0;
        transform: translateY(-70px);
    }
    100% {
        transform: translateY(0);
    }
}
@keyframes slideinleft {
    0% {
        opacity: 0;
        transform: translateX(-70px);
    }
    100% {
        transform: translateX(0);
    }
}
@keyframes slideinright {
    0% {
        opacity: 0;
        transform: translateX(70px);
    }
    100% {
        transform: translateX(0);
    }
}
@keyframes fadein-custom {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
@keyframes fadeInUp {
    0% {
        opacity: 0;
        -webkit-transform: translateY(20px);
        -ms-transform: translateY(20px);
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
        transform: translateY(0);
    }
}
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}
@keyframes jumpping {
    0%,
    100% {
        transform: translate3d(0, 0, 0);
    }
    40% {
        transform: translate3d(0, var(--jump-y, 20px), var(--jump-x, 0));
    }
}
@keyframes rotate {
    0% {
        transform: rotate(0);
    }
    100% {
        transform: rotate(var(--rotate-angle, 360deg));
    }
}
@keyframes leftToRight {
    0%,
    100% {
        left: 0px;
    }
    50% {
        left: 56px;
    }
}
/*=================================
    04. Template Style
==================================*/
/*------------------- 4.1. Widget  -------------------*/

/* modal for homepage categories cta btn */

.modal-close {
    position: absolute;
    top: 20px;
    right: 30px;
    font-size: 32px;
    background: none;
    border: none;
    color: white;
    cursor: pointer;
}

/* modal for locations */

.modal-title {
    font-size: 32px;
    color: #37d4d9;
    font-weight: 800;
}

@media (max-width: 768px) {
    .modal-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 0;
    }

    .modal-title {
        font-size: 23px;
        margin-bottom: 0;
    }
}

.modal-close {
    position: absolute;
    top: 20px;
    right: 30px;
    font-size: 32px;
    background: none;
    border: none;
    color: white;
    cursor: pointer;
}

@media (max-width: 900px) {
    /* two columns */
}

@media (max-width: 600px) {
    /* one column */
}

/* Hide navigation buttons on mobile */

/* Make it full width on mobile */

.space2 {
    padding: 60px 0;
}

.space-extra-bottom2 {
    padding-bottom: 120px;
}

.title-area2 {
    margin-bottom: 60px;
}

.sec-subtitle2 {
    color: #37d4d9;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    display: block;
}

.sec-title2 {
    color: #333;
    font-weight: 700;
    margin: 0;
}

/* Responsive adjustments */

.loading-spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    border: 4px solid rgba(255, 255, 255, 0.3);
    border-top: 4px solid #fff;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    z-index: 5;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}
.custom-gallery {
    position: relative;
    max-width: 100%;
    margin-bottom: 25px;
}

.gallery-main {
    position: relative;
}

.gallery-main img {
    width: 100%;
    height: auto;
    object-fit: cover;
    cursor: pointer;
    border-radius: 5px;
}

@media (max-width: 768px) {
    .gallery-main img {
        height: 220px !important;
    }
}

.gallery-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: transparent;
    color: white;
    border: none;
    font-size: 2rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    z-index: 10;
}

.gallery-btn.prev {
    left: 10px;
}

.gallery-btn.next {
    right: 10px;
}

.gallery-modal {
    display: none;
    /* hide by default */
    position: fixed;
    z-index: 999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.95);
    justify-content: center;
    align-items: center;
}

.modal-image-wrapper {
    position: relative;
    text-align: center;
}

.modal-content {
    max-width: 90%;
    max-height: 80vh;
    width: auto;
    height: auto;
}

.modal-counter {
    position: absolute;
    bottom: -30px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    font-size: 1rem;
}

.modal-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 3rem;
    color: #fff;
    background-color: rgba(0, 0, 0, 0.3);
    border: none;
    padding: 0.5rem 1rem;
    cursor: pointer;
    z-index: 10;
}

.modal-btn.prev {
    left: 10px;
}

.modal-btn.next {
    right: 10px;
}

.close-modal {
    position: absolute;
    top: 20px;
    right: 30px;
    font-size: 40px;
    color: #fff;
    cursor: pointer;
}

.payment-options-wrapper {
    margin-bottom: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
    max-width: 600px;
    margin-inline: auto;
}

.payment-label {
    font-size: 1.25rem;
    font-weight: 600;
    color: #1e1e1e;
    text-align: center;
}

.payment-card {
    width: 100%;
    border: 2px solid #e0e0e0;
    border-radius: 10px;
    padding: 16px 20px;
    background-color: #fff;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.payment-card:hover {
    border-color: #003939;
    box-shadow: 0 2px 10px rgba(0, 123, 255, 0.1);
}

.payment-card-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}

.payment-card-content strong {
    font-size: 1.1rem;
    color: #333;
}

.payment-desc {
    font-size: 0.875rem;
    color: #6c757d;
    margin: 4px 0 0;
}

#paypal-button-container {
    min-width: 200px;
}

.widget_nav_menu ul {
    list-style: none;
    margin: 0 0 -10px 0;
    padding: 0;
}

/* Large devices */
@media (max-width: 1199px) {
    .widget_nav_menu {
        padding: 18px 20px;
        font-size: 14px;
    }
}
/* Small devices */
.widget {
    padding: var(--widget-padding-y, 30px) var(--widget-padding-x, 20px);
    background-color: var(--smoke-color);
    position: relative;
    margin-bottom: 20px;
    border-radius: 6px;
}
.widget:last-child {
    margin-bottom: 0;
}

.widget_title {
    font-size: 24px;
    font-weight: 600;
    line-height: 1em;
    position: relative;
    font-family: var(--title-font);
    margin: -0.07em 0 1px 0;
    color: var(--secondary-color);
    padding-bottom: 15px;
    margin-bottom: 8px;
}
.widget_title::before,
.widget_title::after {
    content: "";
    height: 2px;
    border-radius: 50px;
    background-color: var(--theme-color);
    position: absolute;
    bottom: 0;
}
.widget_title::before {
    width: 15px;
    left: 0;
}
.widget_title::after {
    width: 55px;
    left: 20px;
}

.sidebar-area {
    margin-bottom: -10px;
}

.newsletter-form .form-control {
    margin-bottom: 15px;
}
.newsletter-form .vs-btn {
    width: 100%;
}

/* Medium Large devices */
@media (max-width: 1399px) {
    .widget {
        --widget-padding-y: 30px;
        --widget-padding-x: 30px;
    }
    .widget_title {
        font-size: 20px;
    }
}
/* Medium devices */
@media (max-width: 991px) {
    .sidebar-area {
        padding-top: 30px;
        margin-bottom: 30px;
    }
}
/* Extra small devices */
@media (max-width: 575px) {
    .widget {
        padding: 15px 20px;
    }
}

.widget-area2 {
    padding-top: 60px;
    padding-bottom: 80px;
}

.footer-widget,
.footer-widget .widget {
    padding: 0;
    border: none;
    padding-bottom: 0;
    background-color: transparent;
}
.footer-widget .widget_title {
    border: none;
    font-size: 22px;
    margin: 0 0 30px 0;
    padding: 0 0 20px 0;
    color: var(--white-color);
    position: relative;
}
.footer-widget .widget_title::before,
.footer-widget .widget_title::after {
    content: "";
    position: absolute;
}
.footer-widget .widget_title::before {
    width: 60px;
    height: 2px;
    background-color: var(--theme-color);
    left: 0;
    bottom: 0;
}
.footer-widget .widget_title::after {
    width: 5px;
    height: 5px;
    outline: 4px solid var(--theme-color);
    border-radius: 50%;
    background-color: var(--white-color);
    left: 4px;
    bottom: -1px;
    animation: leftToRight infinite 5s linear;
}
.footer-widget .vs-btn {
    background-color: var(--theme-color);
}
.footer-widget .vs-btn::before,
.footer-widget .vs-btn::after {
    background-color: var(--theme-color2);
}
.footer-widget.widget_nav_menu {
    margin-bottom: 45px;
}
.footer-widget.widget_nav_menu .widget_title {
    margin-bottom: 35px;
}
.footer-widget.widget_nav_menu a {
    width: max-content;
    display: block;
    border: none;
    font-size: 16px;
    font-weight: 400;
    margin-bottom: 15px;
    max-width: 100%;
    padding: 0 0 0 15px;
    color: var(--white-color);
    background-color: transparent;
    position: relative;
}
.footer-widget.widget_nav_menu a i {
    position: absolute;
    left: 0;
    top: 4px;
}
.footer-widget.widget_nav_menu a:hover {
    background-color: transparent;
    color: var(--theme-color);
}
.footer-widget.widget_nav_menu li > span {
    width: auto;
    height: auto;
    position: relative;
    background-color: transparent;
    color: var(--body-color);
    line-height: 1;
}
.footer-widget.widget_nav_menu li:last-child a {
    margin-bottom: 0;
}

.vs-widget-about .footer-text {
    max-width: 275px;
    font-family: var(--body-font);
    font-size: 16px;
}

.social-style1 a {
    width: 45px;
    height: 45px;
    margin-right: 10px;
    border-radius: 50%;
    color: var(--white-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--white-color);
}
.social-style1 a:hover {
    background-color: var(--theme-color);
    border-color: var(--theme-color);
}
.social-style1 a:last-child {
    margin-right: 0;
}

.footer-widget .newsletter-form .form_text {
    font-size: 16px;
    font-family: var(--body-font);
}
.footer-widget .newsletter-form .form-control {
    margin-bottom: 15px;
    background-color: transparent;
    height: 46px;
}
.footer-widget .newsletter-form .form-control:focus {
    color: var(--white-color);
}
.footer-widget .newsletter-form .vs-btn {
    width: unset;
}

/* Large devices */
@media (max-width: 1199px) {
    .footer-widget {
        margin-bottom: 60px;
    }
    .footer-widget .widget_title {
        font-size: 26px;
        margin-bottom: 20px;
    }

    .footer-widget.widget_nav_menu .widget_title {
        margin-bottom: 25px;
    }

    .footer-widget.widget_nav_menu a {
        font-size: 14px;
    }
}
/* Medium devices */
@media (max-width: 991px) {
    .footer-widget .widget_title {
        font-size: 22px;
    }
    .widget-area2 {
        padding-bottom: 20px;
    }
}
/*------------------- 4.2. Header  -------------------*/
.header-new {
    padding: 0px 50px 0px 50px;
    margin-left: 0px;
}

/* iPad and tablet devices */
@media (max-width: 1024px) {
    .header-new {
        padding: 0px 15px !important;
    }
}

/* Smaller tablets and mobile */
@media (max-width: 768px) {
    .header-new {
        padding: 0px 5px !important;
    }
}

.vs-header {
    position: relative;
    z-index: 41;
}

.vs-logo img {
    /* Medium devices */
    /* Small devices */
}
@media (max-width: 991px) {
    .vs-logo img {
        padding: 20px 0;
    }
}
@media (max-width: 767px) {
    .vs-logo img {
        max-width: 150px;
    }
}

.will-sticky .sticky-active {
    position: fixed;
    top: -100%;
    right: 0;
    left: 0;
    background-color: var(--white-color);
    transition: all ease 0.8s;
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07);
}
.will-sticky .sticky-active.active {
    top: 0;
}

/* ===========================
Header Customization
============================= */

.vs-header .form-select {
    background-color: var(--theme-color);
    background-position: right 15px center;
    font-size: 16px;
    padding: 0 40px 0 15px;
    margin-left: 15px;
    position: relative;
    border: 0px;
    border-radius: 0;
    width: unset;
    color: var(--white-color);
    height: 60px;
}
.vs-header .form-select::before {
    content: "";
    width: 100%;
    height: 100%;
    background-color: var(--theme-color);
    position: absolute;
    top: 0;
    left: 0;
}
.vs-header .form-select option {
    background-color: var(--white-color);
    color: var(--black-color);
}
.vs-header .sticky-wrapper {
    background-color: var(--white-color);
}

/* Small devices */
@media (max-width: 767px) {
    .vs-header .form-select {
        margin-left: 0;
        padding-left: 10px;
        padding-right: 32px;
    }
}
/*------------------- 4.3. Footer  -------------------*/

.footer-logo {
    margin-bottom: 20px;
    display: inline-block;
}

.footer-layout4 {
    --body-color: #ffffff;
}

.footer-layout4 .form-group {
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid var(--theme-color);
    border-radius: 10px;
}

.footer-layout4 .form-group .form-control {
    border: none;
    margin: 5px;
    color: var(--white-color);
    padding-right: 15px;
    background-color: transparent;
}

.footer-layout4 .form-group .vs-btn {
    margin: 5px;
    overflow: unset;
    display: inline-block;
}

.footer-layout4 .footer-widget.widget_nav_menu {
    margin-bottom: 0px;
}

.copyright-wrap {
    text-align: center;
    padding: 20px 0;
    position: relative;
    z-index: 2;
    border-top: 1px solid var(--border-color);
}

.copyright-menu ul {
    margin: 0;
}
.copyright-menu li {
    display: inline-block;
    margin-right: 30px;
    position: relative;
}
.copyright-menu li::after {
    content: "";
    width: 1px;
    height: 50%;
    background-color: var(--theme-color);
    position: absolute;
    right: -18px;
    top: 50%;
    transform: translateY(-50%);
}
.copyright-menu li:last-child {
    margin-right: 0;
}
.copyright-menu li:last-child::after {
    display: none;
}
.copyright-menu a {
    font-size: 16px;
    font-weight: 400;
    color: var(--white-color);
}
.copyright-menu a:hover {
    color: var(--theme-color);
}

.copyright-text {
    margin: 0;
    font-size: 16px;
    font-weight: 400;
}
.copyright-text a {
    color: var(--theme-color);
}
.copyright-text a:hover {
    color: var(--theme-color);
    text-decoration: underline;
}

.footer-newsletter2 {
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 32px;
}

/* Large devices */
@media (max-width: 1199px) {
    .footer-widget {
        margin-bottom: 60px;
    }
    .footer-widget .widget_title {
        font-size: 26px;
        margin-bottom: 20px;
    }
    .footer-widget.widget_nav_menu .widget_title {
        margin-bottom: 25px;
    }
    .footer-widget.widget_nav_menu a {
        font-size: 16px;
    }
}
/* Medium devices */
@media (max-width: 991px) {
    .footer-widget .widget_title {
        font-size: 22px;
    }
    .copyright-text {
        font-size: 14px;
    }
}
/* Small devices */
/*------------------- 4.4. Breadcumb  -------------------*/
.breadcumb-menu {
    max-width: 100%;
    margin: 0 0 0 0;
    padding: 1px 0;
    list-style-type: none;
}
.breadcumb-menu li {
    display: inline;
    list-style: none;
    position: relative;
}
.breadcumb-menu li:after {
    content: "/";
    position: relative;
    margin-left: 7px;
    margin-right: 3px;
}
.breadcumb-menu li:last-child {
    padding-right: 0;
    margin-right: 0;
}
.breadcumb-menu li:last-child:after {
    display: none;
}
.breadcumb-menu li,
.breadcumb-menu a,
.breadcumb-menu span {
    white-space: normal;
    word-break: break-word;
    font-weight: 400;
    font-size: 16px;
    color: var(--white-color);
}
.breadcumb-menu li > i,
.breadcumb-menu a > i,
.breadcumb-menu span > i {
    margin-right: 10px;
}
.breadcumb-menu a:hover {
    color: var(--theme-color);
}

.breadcumb-title {
    font-size: 26px;
    color: var(--white-color);
    margin: 0 0 -5px 0;
}

.breadcumb-wrapper {
    margin-bottom: 20px;
    padding-top: 10px;
    padding-bottom: 10px;
    background-color: black;
    position: relative;
    display: flex;
    align-items: center;
    /* Medium devices */
}
@media (max-width: 991px) {
    .breadcumb-wrapper {
        padding-top: 20px;
        padding-bottom: 20px;
    }
}

/* Large devices */
@media (max-width: 1199px) {
    .breadcumb-title {
        font-size: 26px;
    }
}
/* Medium devices */
@media (max-width: 991px) {
    .breadcumb-title {
        font-size: 24px;
        margin: -0.15em 0 -0.4em 0;
    }
}
/* Small devices */
@media (max-width: 767px) {
    .breadcumb-title {
        font-size: 24px;
    }
    .breadcumb-menu li,
    .breadcumb-menu a,
    .breadcumb-menu span {
        font-size: 14px;
    }
    .breadcumb-menu li:after {
        margin-left: 11px;
        margin-right: 9px;
    }
}
/*------------------- 4.5. Pagination  -------------------*/
.vs-pagination {
    text-align: center;
    margin-bottom: 30px;
}
.vs-pagination ul {
    margin: 0;
    padding: 0;
}
.vs-pagination li {
    display: inline-block;
    margin: 0 3px;
    list-style-type: none;
}
.vs-pagination li:last-child {
    margin-right: 0;
}
.vs-pagination li:first-child {
    margin-left: 0;
}
.vs-pagination span,
.vs-pagination a {
    display: inline-block;
    text-align: center;
    position: relative;
    font-family: var(--body-font);
    color: var(--title-color);
    background-color: var(--white-color);
    width: 50px;
    height: 50px;
    line-height: 52px;
    font-weight: 400;
    padding: 0;
    font-size: 16px;
    z-index: 1;
    border-radius: 6px;
    vertical-align: middle;
    border: 1px solid var(--border-color);
}
.vs-pagination span.active,
.vs-pagination span:hover,
.vs-pagination a.active,
.vs-pagination a:hover {
    color: var(--white-color);
    background-color: var(--theme-color);
    box-shadow: none;
}

/* Medium Large devices */
/* Small devices */
@media (max-width: 767px) {
    .vs-pagination span,
    .vs-pagination a {
        width: 40px;
        height: 40px;
        line-height: 40px;
        font-size: 14px;
        padding: 0 10px;
        vertical-align: middle;
    }
    .vs-pagination span i,
    .vs-pagination a i {
        vertical-align: middle;
    }
}
/*------------------- 4.6. Blog  -------------------*/

.blog-meta span,
.blog-meta a {
    display: inline-block;
    margin-right: 18px;
    font-size: 16px;
    color: var(--title-color);
}
.blog-meta span i,
.blog-meta a i {
    margin-right: 4px;
}
.blog-meta span:last-child,
.blog-meta a:last-child {
    margin-right: 0;
}
.blog-meta a:hover {
    color: var(--theme-color);
}

.blog-title a {
    color: inherit;
}
.blog-title a:hover {
    color: var(--theme-color);
}

.vs-blog {
    margin-bottom: 30px;
}
.blog-card5 {
    position: relative;
    overflow: hidden;
}

.blog-card5::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: inherit; /* uses the same background image */
    background-size: cover;
    background-position: center;
    transition: transform 0.5s ease;
    z-index: 0;
}

.blog-card5:hover::before {
    transform: scale(1.05);
}

/* Ensure content stays above the pseudo-element */
.blog-card5 .blog-content {
    position: relative;
    z-index: 1;
}

.vs-blog-details .blog-single {
    border: none;
    box-shadow: 0px 13px 48px 0px rgba(255, 104, 26, 0.07);
}
.vs-blog-details .blog-single .blog-content {
    margin-top: 25px;
}
.vs-blog-details .blog-single .blog-title {
    margin-bottom: 15px;
}
.vs-blog-details .blog-meta {
    margin-bottom: 18px;
}
.vs-blog-details .blog-meta span,
.vs-blog-details .blog-meta a {
    margin-bottom: 10px;
}
.vs-blog-details .blog-meta span i,
.vs-blog-details .blog-meta a i {
    color: var(--theme-color);
    margin-right: 10px;
}

.blog-inner-author {
    --theme-color: #ffffff;
    padding: 28px 20px 20px 20px;
    display: inline-block;
    border-radius: 0px 10px 10px 0px;
    background-color: rgba(28, 28, 28, 0.8);
    padding-left: 100px;
    min-height: 100px;
}
.blog-inner-author img {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    background-color: var(--smoke-color);
}
.blog-inner-author .author-name {
    display: block;
    font-size: 20px;
    font-weight: 600;
    color: var(--white-color);
}
.blog-inner-author .author-degi,
.blog-inner-author .blog-date {
    color: var(--theme-color);
    font-size: 14px;
    font-weight: 400;
}

.blog-single {
    margin-bottom: 60px;
    padding: 10px 15px;
    border-radius: 10px;
    border: 1px solid var(--border-color);
}
.blog-single .blog-img {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 30px;
}
.blog-single .blog-inner-author {
    position: absolute;
    left: 0;
    bottom: 60px;
}
.blog-single .blog-content {
    padding: 0;
    position: relative;
}
.blog-title {
    font-size: 20px !important;
}
.blog-single .blog-title {
    font-size: 24px;
    line-height: 1.2;
    margin-bottom: 18px;
}
.blog-single .blog-date {
    color: var(--body-color);
}
.blog-single .blog-date i {
    margin-right: 4px;
}
.blog-single .blog-date:hover {
    color: var(--theme-color);
}
.blog-single .blog-bottom {
    margin-top: 40px;
    padding: 40px 0 0 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid var(--border-color);
}
.blog-single .blog-meta {
    margin: 0;
    padding: 0;
    list-style: none;
}
.blog-single .blog-meta li {
    display: inline-block;
    position: relative;
    margin-right: 20px;
}
.blog-single .blog-meta li::before {
    content: "";
    width: 1px;
    height: 70%;
    background-color: var(--title-color);
    opacity: 0.5;
    position: absolute;
    left: -14px;
    top: 50%;
    transform: translateY(-50%);
}
.blog-single .blog-meta li:first-child::before {
    content: none;
}
.blog-single .play-btn {
    position: absolute;
    top: 10%;
    right: 10%;
}
.blog-single .play-btn i {
    color: var(--white-color);
}

.blog-style2 {
    margin-bottom: 30px;
    border-radius: 10px;
    background-color: var(--smoke-color);
    padding: 30px 24px;
}
.blog-style2 .blog-img {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 40px;
    background-color: var(--smoke-color);
}
.blog-style2 .blog-inner-author {
    position: absolute;
    left: 0;
    bottom: 30px;
}
.blog-style2 .blog-inner-author .author-name {
    font-size: 16px;
}
.blog-style2 .blog-title {
    font-size: 24px;
    line-height: 1.2;
    margin-bottom: 18px;
}
.blog-style2 .blog-date {
    color: var(--body-color);
}
.blog-style2 .blog-date i {
    margin-right: 5px;
}
.blog-style2 .blog-date:hover {
    color: var(--theme-color);
}
.blog-style2 .blog-bottom {
    padding: 30px 0 0 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid var(--border-color);
}
.blog-style2 .vs-btn {
    padding: 16px 20px;
    font-size: 14px;
}
.vs-carousel {
    overflow: visible !important;
}

/* Large devices */
@media (max-width: 1199px) {
    .blog-single .blog-meta li:last-child {
        display: none;
    }
}
/* Medium devices */
/* Small devices */
@media (max-width: 767px) {
    .blog-inner-author {
        min-height: unset;
        padding: 15px 13px 15px 75px;
    }
    .blog-inner-author .author-name {
        font-size: 14px;
    }
    .blog-inner-author .author-degi {
        font-size: 10px;
    }
    .blog-inner-author img {
        width: 50px;
        height: 50px;
        left: 15px;
    }
    .blog-single {
        padding: 20px;
        margin-bottom: 30px;
    }
    .blog-single .blog-title {
        font-size: 18px;
        line-height: 1.6;
    }
    .blog-single .blog-img .blog-date {
        right: 15px;
        top: 15px;
        font-size: 14px;
        padding: 12px 15px;
    }
    .blog-single .blog-inner-author {
        bottom: 0;
    }
    .blog-single .blog-content {
        margin-top: 20px;
    }
    .blog-single .play-btn {
        --icon-size: 60px;
        --icon-font-size: 18px;
    }
    .blog-single .blog-meta li {
        display: none;
    }
    .blog-single .blog-meta li:first-child {
        display: inline-block;
    }
    .blog-single .blog-meta span,
    .blog-single .blog-meta a {
        font-size: 13px;
    }
    .blog-single .vs-btn {
        font-size: 13px;
        padding: 12px 10px;
    }
    .blog-single .blog-bottom {
        margin-top: 0;
        padding-top: 20px;
    }
    .blog-style2 .blog-img {
        margin-bottom: 20px;
    }
    .blog-style2 .blog-inner-author {
        bottom: 0;
    }
    .blog-style2 .blog-inner-author .author-name {
        font-size: 14px;
    }
    .blog-style2 .vs-btn {
        padding: 12px 14px;
        font-size: 13px;
    }
    .blog-style2 .blog-date {
        font-size: 14px;
    }
    .blog-style2 .blog-title {
        font-size: 20px;
    }
    .vs-blog-details .blog-single {
        padding: 0;
        box-shadow: none;
    }
}
/*------------------- 4.6. Comments  -------------------*/

/* Small devices */
/*------------------- 4.8. Hero Area  -------------------*/
.hero-mask {
    padding-top: 100px;
    padding-bottom: 100px;
}

.hero-layout2 {
    position: relative;
}

.hero-layout2 .form-group > i {
    right: unset;
    left: 20px;
    top: 23px;
    color: var(--body-color);
}

.hero-layout2 .form-group select,
.hero-layout2 .form-group input {
    padding-left: 45px;
}

.hero-layout2 .form-group > i {
    top: 17px;
}

.hero-layout2 {
    position: relative;
}
.hero-layout2 .hero-mask {
    padding-bottom: 160px;
}
/* Extra large devices */
/* Large devices */
@media (max-width: 1199px) {
    .hero-content {
        text-align: center;
    }
    .hero-layout2 .hero-content {
        text-align: start;
    }
    .hero-layout2 .hero-mask {
        padding-bottom: 170px;
    }
}
/* Medium devices */
/* Small devices */
/* Extra small devices */
/*------------------- 4.7. Simple Sections  -------------------*/

/* Medium Large devices */
/* Large devices */
/* Medium devices */
/* Small devices */
/*------------------- 4.8. Error  -------------------*/

/* Large devices */
/* Medium devices */
/* Small devices */
/*------------------- 4.9. Packages  -------------------*/

.package-meta a {
    margin-right: 20px;
    position: relative;
}
.package-meta a i {
    margin-right: 4px;
}
.package-meta a::before {
    content: "";
    width: 1px;
    height: 70%;
    opacity: 0.7;
    background-color: var(--body-color);
    position: absolute;
    top: 50%;
    right: -10px;
    transform: translateY(-50%);
}
.package-meta a:last-child {
    margin-right: 0;
}
.package-meta a:last-child::before {
    display: none;
}

.package-price {
    font-size: 20px;
    font-weight: 600;
    transition: 0.5s;
}

.package-style1 {
    background-color: var(--white-color);
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 30px;
    transition: all ease 0.4s;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); /* more subtle shadow */
}

.ribbon-wrapper {
    position: relative;
}

.ribbon {
    position: absolute;
    top: 12px;
    left: 0;
    background: #000000ff;
    /* red */
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 17px;
    text-transform: uppercase;
    z-index: 10;
    clip-path: polygon(0 0, 100% 0, 90% 100%, 0% 100%);
    /* creates angled end */
}

.package-style1 .package-img {
    overflow: hidden;
}

.package-img {
    height: 210px !important;
}

.package-style1 .package-img img {
    transition: 0.5s;
}
.package-style1 .package-content {
    padding: 25px 30px 30px;
}
.package-style1 .package-title {
    font-size: 20px;
    font-weight: 600;
    margin: 3px 0;
}
.package-style1 .package-title a {
    color: var(--body-color);
}

.package-title a {
    font-size: 13px !important;
    line-height: 1.4em;
    display: inline-block;
}

.package-style1 .package-title a:hover {
    color: var(--theme-color);
}
.package-style1 .package-meta {
    border-top: 1px solid var(--border-color);
    padding-top: 12px;
}
.package-style1 .package-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    margin-top: 15px;
}
.package-style1 .vs-btn {
    padding: 10px 15px;
    font-size: 14px;
}
.package-style1:hover {
    box-shadow: 0px 13px 48px 0px rgba(255, 104, 26, 0.07);
    transition: all ease 0.4s;
}
.package-style1:hover .package-img img {
    transform: scale(1.1);
}
.package-style1:hover .package-price {
    color: var(--theme-color);
}

/*------------------- 4.10. Cities  -------------------*/

/* Extra large devices */
/* Large devices */
/* Medium devices */
/* Small devices */
/*------------------- 4.11. Features  -------------------*/

/* Small devices */
/*------------------- 4.12. Offers  -------------------*/

/* Extra large devices */
/* Large devices */
/* Medium devices */
/* Medium devices */
@keyframes spin {
    100% {
        transform: rotate(360deg);
    }
}
/*------------------- 4.12. Testimonials  -------------------*/

/* Large devices */
/*------------------- 4.13. Destinations  -------------------*/

.title-confirmation {
    text-align: center;
    color: #003939;
    margin-bottom: 30px;
}

.subtitle-confirmation {
    text-align: center;
    color: #555;
    margin-bottom: 30px;
    font-style: italic;
    font-size: 1em;
}

.booking-card-confirmation {
    background-color: #f1f9f2;
    padding: 20px;
    border-left: 5px solid #37d4d9;
    margin-bottom: 20px;
    border-radius: 5px;
}

.booking-card-confirmation h2 {
    margin-top: 0;
    color: #003939;
}

pre {
    background-color: #eef6ee;
    padding: 10px;
    border-radius: 5px;
    overflow-x: auto;
}

.no-bookings {
    text-align: center;
    color: #6c757d;
}

/* Style for links in blog content */
.blog-content1 a {
    color: blue;
    text-decoration: underline;
}

.blog-content1 a:hover {
    color: darkblue;
}

.blog-content1 img {
    max-width: 100%; /* Makes the image responsive */
    height: auto; /* Ensures the aspect ratio is maintained */
    display: block; /* Removes extra space below the image */
    margin: 20px 0; /* Adds space above and below the image */
    border-radius: 8px; /* Optional: Adds rounded corners to the image */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Optional: Adds a subtle shadow around the image */
}

/* Scoped styles for the booking cart */
.booking-cart {
    background: #fdfdfd;
    border-radius: 10px;
    padding: 20px;
}

.booking-cart-title {
    font-size: 1.8rem;
    margin-bottom: 20px;
    font-weight: bold;
    color: #333;
    border-bottom: 2px solid #eee;
    padding-bottom: 10px;
}

.booking-cart-item {
    background: #fafafa;
    border-radius: 8px;
    padding: 15px;
    position: relative;
    transition: background 0.3s ease;
}

.booking-cart-item:hover {
    background: #f0f8ff;
}

.booking-type-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.booking-type {
    font-size: 1.1rem;
    color: #37d4d9;
    margin: 0;
}

.booking-remove-btn {
    background: none;
    border: none;
    font-size: 1.5rem;
    color: #ff4d4f;
    cursor: pointer;
    line-height: 1;
    transition: transform 0.2s ease, color 0.2s ease;
}

.booking-remove-btn:hover {
    transform: scale(1.2);
    color: #d9363e;
}

.booking-details {
    margin-top: 10px;
}

.booking-detail {
    margin: 5px 0;
    font-size: 0.95rem;
    color: #555;
}

.booking-cart-total {
    margin-top: 20px;
    padding-top: 10px;
    border-top: 2px solid #eee;
    text-align: right;
    font-size: 1.2rem;
    font-weight: bold;
    color: #28a745;
}

.booking-empty {
    font-style: italic;
    color: #888;
}

.details p {
    font-size: 0.95rem;
    color: #444;
}

.step-header1 {
    border-left: 4px solid #003939;
    /* Bootstrap primary color */
}

.step-header1 h4 {
    font-size: 1.3rem;
}

.step-header1 p {
    font-size: 0.95rem;
}

.step-header {
    margin-top: 50px;
    border-left: 4px solid #003939;
    /* Bootstrap primary color */
}

.step-header h4 {
    font-size: 1.3rem;
}

.step-header p {
    font-size: 0.95rem;
}

.extra-item {
    display: flex;
    align-items: flex-start;
    border-bottom: 1px solid #eee;
    padding: 10px 0;
    gap: 15px;
}

.extra-thumbnail {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 8px;
    flex-shrink: 0;
}

.extra-name {
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
}

.extra-description {
    font-size: 0.9rem;
    color: #666;
    margin: 0;
    line-height: 1.4;
}

.extra-controls {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.qty-btn {
    background-color: #f0f0f0;
    border: none;
    padding: 5px 10px;
    font-size: 1.2rem;
    cursor: pointer;
    border-radius: 4px;
    transition: background-color 0.2s;
}

.qty-btn:hover {
    background-color: #e0e0e0;
}

.qty-input {
    width: 50px;
    text-align: center;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 5px;
}

.price-label {
    font-weight: 600;
    color: #333;
    margin-left: 10px;
}

.confirm-btn-wrapper {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px;
}

#submitBtn {
    width: 100%;
    margin-top: 1.5rem;
    padding: 0.75rem 1.5rem;
    color: white;
    border: none;
    border-radius: 0.5rem;
    font-size: 1rem;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

input.flatpickr-input {
    width: 100%;
    padding: 0.625rem 1rem;
    border: 1px solid #d1d5db;
    border-radius: 0.5rem;
    background-color: #ffffff;
    font-size: 1rem;
    color: #111827;
    transition: border-color 0.3s, box-shadow 0.3s;
    appearance: none;
    cursor: pointer;
}

input.flatpickr-input::placeholder {
    color: #9ca3af;
}

input.flatpickr-input:focus {
    outline: none;
    border-color: #003939;
    box-shadow: 0 0 0 3px rgb(1, 121, 121);
}

select#tour_booking_time {
    width: 100%;
    padding: 0.625rem 1rem;
    border: 1px solid #d1d5db;
    border-radius: 0.5rem;
    background-color: #ffffff;
    font-size: 1rem;
    color: #111827;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg fill='none' stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 1rem;
    cursor: pointer;
    transition: border-color 0.3s, box-shadow 0.3s;
}

select#tour_booking_time:focus {
    outline: none;
    border-color: #003939;
    box-shadow: 0 0 0 3px rgb(1, 121, 121);
}

.extras-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    background-color: rgba(0, 0, 0, 0.7);
    justify-content: center;
    align-items: center;
}

.extras-modal-content {
    background: white;
    width: 100vw;
    height: 100vh;
    padding: 40px;
    overflow-y: auto;
    position: relative;
}

.extras-close {
    position: absolute;
    top: 20px;
    right: 30px;
    font-size: 2rem;
    background: none;
    border: none;
    color: #666;
    cursor: pointer;
}

.extras-close:hover {
    color: #000;
}

.extras-list {
    margin-top: 30px;
}

.extra-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    border-bottom: 1px solid #e2e2e2;
    padding: 15px 0;
}

.extra-name {
    font-weight: bold;
    font-size: 1.2rem;
}

.extra-description {
    color: #555;
    margin-top: 5px;
    font-size: 0.95rem;
}

.extra-controls {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 5px;
}

.qty-btn {
    width: 30px;
    height: 30px;
    font-size: 1.2rem;
    background-color: #f0f0f0;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.qty-btn:hover {
    background-color: #e0e0e0;
}

.qty-input {
    width: 50px;
    text-align: center;
    font-size: 1rem;
    padding: 4px;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.price-label {
    font-size: 1rem;
    color: #444;
}
#extrasModal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6); /* dark backdrop */
    justify-content: center;
    align-items: center;
}

.destination-details .ds-title:first-child {
}

.extras-modal {
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.5);
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.extras-modal-content {
    background: white;
    border-radius: 10px;
    padding: 1.5rem;
    max-width: 600px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
}

.extras-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
}

.extra-item {
    border-bottom: 1px solid #eee;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
}

.extra-row {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.extra-thumbnail {
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 6px;
    flex-shrink: 0;
}

.extra-info-controls {
    flex: 1;
}

.extra-top-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.extra-name {
    font-weight: 600;
    font-size: 1rem;
    flex: 1;
}

.extra-controls {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: nowrap;
}

.qty-btn {
    width: 32px;
    height: 32px;
    font-size: 1.2rem;
    font-weight: bold;
    background-color: #eee;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.qty-input {
    width: 50px;
    text-align: center;
    border: 1px solid #ccc;
    border-radius: 4px;
    height: 32px;
}

.price-label {
    font-weight: 500;
    white-space: nowrap;
}

.extra-description {
    font-size: 0.875rem;
    color: #666;
    margin-top: 0.25rem;
}

@media (max-width: 600px) {
    .extra-row {
        flex-direction: row;
        align-items: flex-start;
    }

    .extra-top-line {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .extra-controls {
        flex-shrink: 0;
    }

    .extra-name {
        flex-grow: 1;
    }

    .extra-description {
        margin-left: 0;
    }
}
.destination-details .ds-text {
    margin-top: 15px;
}

/* Large devices */
/* Small devices */
/*------------------- 4.13. Destinations  -------------------*/
.about-list1 {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    list-style: none;
}
.about-list1 li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 5px;
    margin-right: 15px;
}
.about-list1 li::before {
    content: "";
    width: 6px;
    height: 6px;
    outline: 5px solid var(--border-color);
    background-color: var(--theme-color);
    border-radius: 50%;
    position: absolute;
    left: 5px;
    top: 10px;
}

.about-content .title-area {
    margin: 0;
}
.about-content .vs-btn {
    margin-top: 30px;
}

.image-box1 {
    margin: 80px 0;
    position: relative;
}
.image-box1 .img1 {
    border-radius: 25% 0 25% 0;
}
.image-box1 .img2 {
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background-color: var(--white-color);
    padding: 40px;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 1;
}
.image-box1 .media-box1,
.image-box1 .media-box2 {
    width: 260px;
    border-radius: 10px;
    outline: 15px solid var(--white-color);
    background-color: var(--theme-color);
    padding: 45px 40px 45px;
    position: absolute;
    right: 0;
    top: -55px;
    z-index: 0;
}
.image-box1 .media-box1 .media-info,
.image-box1 .media-box2 .media-info {
    font-size: 36px;
    font-weight: 700;
    color: var(--white-color);
    font-family: var(--body-font);
    margin-bottom: 5px;
}
.image-box1 .media-box1 .media-text,
.image-box1 .media-box2 .media-text {
    font-size: 22px;
    font-weight: 600;
    margin: 0;
    color: var(--white-color);
}
.image-box1 .media-box1 {
    background-color: var(--theme-color);
    bottom: unset;
    right: -5px;
    top: -55px;
}
.image-box1 .media-box2 {
    background-color: var(--theme-color2);
    bottom: -55px;
    top: unset;
    right: 125px;
}

/* Large devices */
@media (max-width: 1199px) {
    .about-list1 {
        grid-template-columns: 1fr 1fr;
    }
}
/* Medium devices */
@media (max-width: 991px) {
    .about-list1 {
        grid-template-columns: 1fr 1fr;
    }
}
/* Small devices */
@media (max-width: 767px) {
    .about-list1 {
        grid-template-columns: 1fr;
    }
    .image-box1 {
        display: flex;
        flex-wrap: wrap;
        margin-top: 0;
        margin-bottom: 30px;
    }
    .image-box1 .img2 {
        width: 150px;
        height: 150px;
        padding: 10px;
        top: 0;
        transform: translate(0);
    }
    .image-box1 .media-box1,
    .image-box1 .media-box2 {
        width: 45%;
        padding: 15px;
        height: fit-content;
        border: none;
        text-align: center;
        margin-top: 20px;
    }
    .image-box1 .media-box1 .media-info,
    .image-box1 .media-box2 .media-info {
        font-size: 20px;
    }
    .image-box1 .media-box1 .media-text,
    .image-box1 .media-box2 .media-text {
        font-size: 15px;
    }
    .image-box1 .media-box1 {
        position: relative;
        top: unset;
        right: unset;
        border: none;
    }
    .image-box1 .media-box2 {
        position: relative;
        bottom: 0;
        right: 0;
        margin-left: 20px;
    }
}
/*------------------- 4.14. Destinations  -------------------*/

/* Large devices */
/* Medium devices */
/* Small devices */
/*------------------- 4.15. Destinations  -------------------*/

/* Large devices */
/* Medium devices */
/*------------------- 4.16. Tour Bookings  -------------------*/

.tours-active .package-style1 {
    box-shadow: 0px 13px 48px 0px rgba(255, 104, 26, 0.07);
    transition: 0.5s ease-in-out;
}
.tours-active .package-style1:hover {
    box-shadow: 0px 13px 48px 0px rgba(255, 104, 26, 0.15);
}

/* fluid 5 columns */
.grid-item {
    margin-bottom: 24px;
}
.grid-item img {
    border-radius: 10px;
}

/* Small devices */
/*------------------- 4.17. Tour Bookings  -------------------*/

.quantity {
    display: inline-flex;
    align-items: center;
    border-radius: 10px;
    overflow: hidden;
}
.quantity .qty-btn {
    border: 1px solid var(--theme-color);
    background-color: var(--theme-color);
    padding: 0;
    width: 50px;
    height: 50px;
    line-height: 50px;
    color: var(--white-color);
    font-size: 16px;
}
.quantity .qty-btn:hover {
    background-color: var(--theme-color2);
    border-color: var(--theme-color2);
}
.quantity input {
    height: 50px;
    width: 50px;
    margin: 0;
    font-size: 16px;
    padding-right: 0;
    padding-left: 0;
    text-align: center;
    color: var(--black-color);
    background-color: var(--smoke-color);
    border-color: transparent;
    border-radius: 0;
}

.tab-content {
    padding: 25px 40px 35px;
}

.rating-select {
    margin-top: -0.4em;
}
.rating-select label {
    margin: 0 10px 0 0;
    display: inline-block;
    color: var(--body-color);
}
.rating-select p {
    display: inline-block;
}
.rating-select p.stars {
    margin-bottom: 0;
    line-height: 1;
}
.rating-select p.stars a {
    position: relative;
    height: 14px;
    width: 18px;
    text-indent: -999em;
    display: inline-block;
    text-decoration: none;
}
.rating-select p.stars a::before {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 18px;
    height: 14px;
    line-height: 1;
    font-family: var(--icon-font);
    content: "\f005";
    font-weight: 400;
    text-indent: 0;
    color: var(--theme-color);
}
.rating-select p.stars a:hover ~ a::before {
    content: "\f005";
    font-weight: 400;
}
.rating-select p.stars:hover a::before {
    content: "\f005";
    font-weight: 700;
}
.rating-select p.stars.selected a.active::before {
    content: "\f005";
    font-weight: 700;
}
.rating-select p.stars.selected a.active ~ a::before {
    content: "\f005";
    font-weight: 400;
}
.rating-select p.stars.selected a:not(.active)::before {
    content: "\f005";
    font-weight: 700;
}

/* Small devices */
@media (max-width: 767px) {
    .tab-content {
        padding: 0px 15px 15px;
    }
}
/*------------------- 4.18. Cart  -------------------*/

/* Medium devices */
/* Small devices */
/*------------------- 4.20. Checkout  -------------------*/

/*------------------- 4.21. woocommerce  -------------------*/

.shipping-calculator-form {
    display: none;
}
.shipping-calculator-form p:first-child {
    margin-top: 20px;
}
.shipping-calculator-form select,
.shipping-calculator-form .form-control,
.shipping-calculator-form .form-select,
.shipping-calculator-form textarea,
.shipping-calculator-form input {
    height: 50px;
    padding-left: 20px;
    padding-right: 25px;
}

.woocommerce-form-login {
    display: none;
    padding: 40px 40px 35px;
    margin-bottom: 30px;
    border-radius: 10px;
}
.woocommerce-form-login .form-group:last-child {
    margin-bottom: 0;
}

.woocommerce-form-coupon {
    padding: 40px;
    border-radius: 10px;
}
.woocommerce-form-coupon .form-group:last-child {
    margin-bottom: 0;
}

/* Small devices */
@media (max-width: 767px) {
    .woocommerce-form-coupon {
        padding: 20px;
    }
    .woocommerce-form-login {
        padding: 20px 20px 15px;
    }
}
/*------------------- 4.22 Contct  -------------------*/
.contact-box_wrapper .outer-wrap {
    background-color: var(--theme-color);
    border-radius: 10px;
    padding: 30px 0px 60px;
    max-width: 1340px;
    margin-top: 0;
}

.contact-box {
    background-color: var(--white-color);
    border: 1px solid var(--theme-color);
    border-radius: 10px;
    margin-top: 30px;
    padding: 30px 25px;
    padding-left: 110px;
    position: relative;
}
.contact-box .contact-box_icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    transition: 0.5s ease-in-out;
    background-color: var(--theme-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: var(--white-color);
    position: absolute;
    left: 30px;
}
.contact-box .contact-box__title {
    margin-bottom: 5px;
}
.contact-box .contact-box__text {
    margin-bottom: -5px;
    font-size: 14px;
    font-weight: 400;
    line-height: 2;
    font-family: var(--body-font);
    color: var(--title-color);
}
.contact-box .contact-box_list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.contact-box .contact-box_list li {
    display: block;
    margin-top: 2px;
    font-size: 14px;
    font-weight: 400;
    font-family: var(--body-font);
    color: var(--title-color);
}
.contact-box:hover .contact-box_icon {
    background-color: var(--theme-color2);
}

/*------------------- 4.23 Contct  -------------------*/
.signup-form {
    padding: 40px 30px;
    border-radius: 10px;
}

/* Medium devices */
@media (max-width: 991px) {
    .signup-form {
        padding: 20px 15px;
    }
}
/*------------------- 4.26. Popup Search  -------------------*/
.popup-search-box {
    position: fixed;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.95);
    height: 100%;
    width: 0;
    overflow: hidden;
    z-index: 99999;
    opacity: 0;
    visibility: hidden;
    transition: all ease 0.4s;
}
.popup-search-box button.searchClose {
    width: 60px;
    height: 60px;
    line-height: 60px;
    position: absolute;
    top: 40px;
    right: 40px;
    border: none;
    background-color: var(--theme-color);
    color: var(--white-color);
    font-size: 30px;
    border-radius: 50%;
    transition: all ease 0.4s;
}
.popup-search-box button.searchClose i {
    line-height: inherit;
}
.popup-search-box button.searchClose:hover {
    color: var(--white-color);
    background-color: var(--theme-color2);
}
.popup-search-box form {
    position: absolute;
    top: 50%;
    left: 50%;
    display: inline-block;
    padding-bottom: 40px;
    cursor: auto;
    width: 100%;
    max-width: 700px;
    transform: translate(-50%, -50%) scale(0);
    transition: transform ease 0.4s;
    /* Large devices */
}
@media (max-width: 1199px) {
    .popup-search-box form {
        max-width: 600px;
    }
}
.popup-search-box form input {
    font-size: 14px;
    height: 70px;
    width: 100%;
    border: 2px solid var(--theme-color);
    background-color: transparent;
    padding-left: 30px;
    color: #fff;
    border-radius: 50px;
}
.popup-search-box form input::-moz-placeholder {
    color: #fff;
}
.popup-search-box form input::-webkit-input-placeholder {
    color: #fff;
}
.popup-search-box form input:-ms-input-placeholder {
    color: #fff;
}
.popup-search-box form input::placeholder {
    color: #fff;
}
.popup-search-box form button {
    position: absolute;
    top: 0px;
    background-color: transparent;
    border: none;
    font-size: 20px;
    right: 13px;
    color: var(--white-color);
    cursor: pointer;
    width: 70px;
    height: 70px;
    transition: all ease 0.4s;
    transform: scale(1.001);
}
.popup-search-box form button:hover {
    transform: scale(1.1);
}
.popup-search-box.show {
    opacity: 1;
    visibility: visible;
    width: 100.1%;
    transition: all ease 0.4s;
}
.popup-search-box.show form {
    transition-delay: 0.5s;
    transform: translate(-50%, -50%) scale(1);
}

/*------------------- 4.27. Popup Side Menu  -------------------*/

/*=================================
    05. Spacing
==================================*/

.mb-30 {
    margin-bottom: 30px;
}

.space,
.space-top {
    padding-top: 50px;
}

.space {
    padding-bottom: var(--section-space);
}

.space-extra-bottom {
    padding-bottom: calc(var(--section-space) - 30px);
}

/* Medium devices */
@media (max-width: 991px) {
    .space,
    .space-top {
        padding-top: var(--section-space-mobile);
    }
    .space {
        padding-bottom: var(--section-space-mobile);
    }

    .space-extra-bottom {
        padding-bottom: calc(var(--section-space-mobile) - 30px);
    }
}
/* Small devices */
/*=================================
    06. Pages
==================================*/

.header-right ul {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
    display: flex;
    align-items: center;
}
.item2__text > a {
    display: block;
    font-size: 16px;
    font-weight: 600;
    color: var(--title-color);
}

.link {
    display: inline-flex;
    align-items: center;
    font-size: 16px;
    font-weight: 700;
    color: var(--title-color);
    gap: 12px;
}
.link > i {
    min-width: 20px;
    min-height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--theme-color2);
    border-radius: 50%;
    transition: all ease 0.4s;
}
.link:hover > i {
    background-color: var(--theme-color);
}

.gallery-style5 {
    position: relative;
    min-height: 600px;
    display: flex;
    align-items: center;
    padding: 0 107px;
    border-radius: 28px;
    margin-top: -270px;
    z-index: 1;
    overflow: hidden;
    /* Medium devices */
}
@media (max-width: 991px) {
    .gallery-style5 {
        min-height: 390px;
        padding: 0 30px;
    }
}
.gallery-style5::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, #1c1c1c 1.32%, rgba(28, 28, 28, 0) 100%);
    z-index: -1;
    left: 0;
}
.gallery-style5 .gallery-content {
    max-width: 300px;
}
.gallery-style5 .play-btn {
    margin-bottom: 70px;
}
.gallery-style5 .play-btn > i {
    color: var(--white-color);
    background-color: rgb(55, 212, 217);
    width: var(--icon-size, 100px);
    height: var(--icon-size, 100px);
    line-height: var(--icon-size, 100px);
}
.gallery-style5 .play-btn::before,
.gallery-style5 .play-btn::after {
    background-color: rgba(255, 255, 255, 0.2);
    animation-name: ripple2;
}

.destination-style2 {
    position: relative;
    z-index: 1;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 30px;
}
.destination-style2::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 235px;
    background: linear-gradient(0deg, #000000 0%, rgba(0, 0, 0, 0) 100%);
    border-radius: 0px 0px 10px 10px;
    bottom: 0;
    z-index: 1;
}
.destination-style2 .destination-img {
    width: 100%;
    transition: all 1s ease-in-out 0s;
}
.destination-style2 .destination-info {
    position: absolute;
    bottom: 40px;
    left: 30px;
    z-index: 2;
}
.destination-style2 .destination-name {
    margin-bottom: 5px;
}
.destination-style2 .destination-name > a {
    color: var(--white-color);
}
.destination-style2 .destination-name > a:hover {
    color: var(--theme-color);
}
.destination-style2 .destination-text {
    margin-bottom: 1px;
    color: var(--white-color);
}

.destination-style2:hover .destination-img {
    transform: scale(1.2) rotate(5deg);
    transition: all 1s ease-in-out 0s;
}

.item {
    display: flex;
    gap: 58px;
    padding-right: 92px;
    margin-bottom: 45px;
    /* Large devices */
    /* Small devices */
}
@media (max-width: 1199px) {
    .item {
        gap: 20px;
        padding-right: 0;
    }
}
@media (max-width: 767px) {
    .item {
        padding-right: 0;
        gap: 15px;
    }
}
.item:last-child {
    margin-bottom: 0;
}

.blog-style5 {
    min-height: 570px;
    display: flex;
    align-items: flex-end;
    padding: 35px;
    border-radius: 20px;
    /* Medium devices */
    /* Small devices */
}
@media (max-width: 991px) {
    .blog-style5 {
        padding: 20px;
    }
}
@media (max-width: 767px) {
    .blog-style5 {
        padding: 10px;
    }
}
.blog-style5 .blog-content {
    background: var(--white-color);
    padding: 0 30px 25px;
    text-align: center;
    border-radius: 10px;
    /* Medium devices */
    /* Small devices */
}
@media (max-width: 991px) {
    .blog-style5 .blog-content {
        padding: 0 20px 20px;
    }
}
@media (max-width: 767px) {
    .blog-style5 .blog-content {
        padding: 0 10px 10px;
    }
}
.blog-style5 .blog-date {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    color: var(--white-color);
    background: var(--theme-color);
    font-weight: 600;
    padding: 0 22px;
    border-radius: 20px;
    margin-bottom: 20px;
}
.blog-style5 .blog-body {
    margin-top: -18px;
}
.blog-style5 .blog-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding-right: 15px;
    margin-right: 15px;
    position: relative;
}
.blog-style5 .blog-link::after {
    position: absolute;
    content: "";
    height: 16px;
    width: 1px;
    background-color: #505050;
    right: 0;
}
.blog-style5 .blog-link:last-child {
    padding-right: 0;
    margin-right: 0;
}
.blog-style5 .blog-link:last-child::after {
    display: none;
}

.offer-block {
    padding: 80px 65px 50px;
    border: 3px solid #505050;
    border-radius: 24px;
    min-height: 250px;
    margin-bottom: -125px;
    position: relative;
    z-index: 9;
    /* Medium devices */
    /* Small devices */
}
@media (max-width: 991px) {
    .offer-block {
        padding: 80px 65px 50px;
    }
}
@media (max-width: 767px) {
    .offer-block {
        padding: 30px 30px 0;
        min-height: 100%;
        text-align: center;
    }
}

.footer-layout4 {
    padding-top: 195px;
    padding-bottom: 40px;
}
.footer-layout4 .footer-newsletter2 {
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}
.footer-layout4 .copyright-wrap {
    text-align: center;
    padding: 15px 25px;
    position: relative;
    z-index: 2;
    border-top: 1px solid transparent;
    background: var(--title-color);
    border-radius: 10px;
}
.footer-layout4 .widget-area2 {
    padding-top: 60px;
    padding-bottom: 60px;
}
.footer-layout4 .footer-widget.widget_nav_menu li {
    float: left;
    width: 50%;
}
.footer-layout4 .footer-widget.widget_nav_menu li a {
    padding-left: 0;
    margin-bottom: 10px;
}
.footer-layout4 .footer-widget .newsletter-form .form-control {
    margin-bottom: 25px;
    background-color: #505050;
    height: 60px;
    border: 1px solid transparent;
}
.footer-layout4 .copyright-menu li::after {
    background-color: var(--theme-color2);
}
.footer-layout4 .footer-widget .newsletter-form .vs-btn {
    border-radius: 10px;
}
.footer-layout4 .social-style1 a {
    border: 1px solid var(--theme-color2);
}
.footer-layout4 .social-style1 a:hover {
    border-color: var(--theme-color);
}

.footer-layout4 .copyright-text a {
    color: var(--white-color);
    text-decoration: underline;
}
.footer-layout4 .copyright-text a:hover {
    color: var(--theme-color);
}
.footer-layout4 .vs-widget-about .footer-text {
    max-width: 257px;
}

.testimonial-style4 {
    padding-bottom: 75px;
}
/* Extra large devices */

.item.style2 {
    gap: 20px;
    padding-right: 0;
}

.offer-block.style2 {
    margin-top: -67px;
    margin-bottom: 0;
    /* Medium devices */
}
@media (max-width: 991px) {
    .offer-block.style2 {
        margin-top: -40px;
    }
}
/* Extra large devices */
/* Large devices */
/* Medium devices */
/* Small devices */
