/*
Theme Name: Hello Elementor Child
Theme URI: https://elementor.com/
Description: Hello Elementor Child Theme
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

@font-face {
    font-family: 'Backstreet';
    src: url('fonts/Backstreet 400.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Trajan Pro';
    src: url('fonts/TrajanPro-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Trajan Pro';
    src: url('fonts/TrajanPro-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

body .e-con {
    --container-max-width: 1270px;
}

.phone-call .elementor-icon-list-icon {
    width: 44px;
    height: 44px;
    text-align: center;
    line-height: 44px;
    border-radius: 50%;
    background: linear-gradient(270deg, #67C1DB 0%, #366988 100%);
    margin-right: 15px;
}

.phone-call .elementor-icon-list-icon svg {
    position: relative;
    top: 10px;
    left: 12px;
    rotate: -40deg;
}

#top-booknow {
    width: 186px;
    height: 51px;
    border-radius: 80px;
    background: #E3C88F;
    font-family: Inter;
    font-weight: 400;
    font-size: 18px;
    line-height: 100%;
    text-transform: uppercase;
    color: #ffffff;
}

.gtranslate_wrapper .gt_switcher-popup {
    position: relative;
    top: 3px;
}

.gtranslate_wrapper .gt_switcher-popup img {
    position: relative;
    top: -3px;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #fff;
    margin-right: 10px;
}

.gtranslate_wrapper .gt_switcher-popup span {
    font-family: Inter;
    font-weight: 400;
    font-style: Regular;
    font-size: 18px;
    line-height: 100%;
    text-transform: uppercase;
    color: #fff;
    display: inline-block;
    max-width: 3ch;
    overflow: hidden;
    white-space: nowrap;
}

/* Split menu into 2 parts (left and right), 3 items each side, 200px gap in between on desktop */
@media (min-width: 1025px) {
    .boostify-menu {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .boostify-menu>li:nth-child(3) {
        margin-right: 230px;
    }

    .boostify-menu>li:nth-child(4) {
        margin-left: 230px;
    }

    .boostify-menu>li>a {
        border-top: 1px solid #fff;
        border-bottom: 1px solid #fff;
    }
}

.blue-gradient {
    background: linear-gradient(90deg, #427D9F 0%, #69C5DE 100%);
}

.hero-button {
    position: relative;
    top: 175px;
}

.phone-call-discover .elementor-icon-list-icon {
    background: linear-gradient(270deg, #EFD797 0%, #A7825E 100%);
    height: 60px;
    width: 60px;
    border-radius: 50%;
}

.phone-call-discover .elementor-icon-list-icon svg {
    top: 15px;
    left: 18px;
}

.phone-call-discover span {
    font-size: 23px;
    color: #345E82;
}

.our-testimonial .swiper-backface-hidden .swiper-slide {
    padding-bottom: 30px;
}

/* Common */
.elementor-swiper-button.elementor-swiper-button-prev,
.elementor-swiper-button.elementor-swiper-button-next {
    position: absolute;
    z-index: 10;
}

.elementor-swiper-button.elementor-swiper-button-prev::before {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(100% + 20px);
    width: 30vw;
    height: 1px;
    background: #033923;
    transform: translateY(-50%);
}

.elementor-swiper-button.elementor-swiper-button-next::before {
    content: "";
    position: absolute;
    top: 50%;
    left: calc(100% + 20px);
    width: 30vw;
    height: 1px;
    background: #033923;
    transform: translateY(-50%);
}

.footer-middle h2.e-heading-base {
    position: relative;
}

.footer-middle h2.e-heading-base:after {
    content: "";
    width: 65px;
    height: 1px;
    background-color: #A9845F;
    position: absolute;
    left: 0;
    bottom: 0;
}

#discover .elementor-icon-list-items .elementor-icon-list-text b {
    color: #345E82;
}

/* ===================================================
   CONTACT FORM 7 - BOOK NOW STYLING
   =================================================== */

/* Form Card Container */
form.wpcf7-form {
    background: #ffffff;
    border-radius: 28px;
    padding: 38px 32px 32px;
    box-shadow: 0px 21px 33px 0px #D5E4EE;
    box-sizing: border-box;
    width: 100%;
    position: relative;
    max-width: 600px;
    border-top: 3px solid #4481A3;
}

/* "BOOK NOW" Title */
form.wpcf7-form .title-contact {
    font-family: 'Trajan Pro', Georgia, serif;
    font-size: 35px;
    font-weight: 700;
    color: #111111;
    letter-spacing: 0.5px;
    margin-bottom: 26px;
    line-height: 1.2;
}

/* Remove unwanted CF7 auto-inserted line breaks */
.wpcf7-form br {
    display: none;
}

/* Form Paragraphs (Field Rows) */
.wpcf7-form p {
    position: relative;
    margin-bottom: 35px;
}

/* Field Labels */
.wpcf7-form label {
    display: block;
    position: relative;
    width: 100%;
    font-style: italic;
    font-weight: 700;
    font-size: 16px;
    color: #111111;
    line-height: 1.4;
    cursor: default;
}

/* Form Control Wrappers */
.wpcf7-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
    position: relative;
}

/* Text, Tel, Email Inputs & Textarea */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="email"],
.wpcf7-form textarea.wpcf7-textarea {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid #E2E5E8;
    border-radius: 0;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    color: #1a1a1a;
    padding: 6px 36px 8px 0;
    box-sizing: border-box;
    outline: none;
    box-shadow: none;
    transition: border-color 0.3s ease;
}

/* Placeholder styling */
.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder {
    color: #8C96A0;
    font-size: 13.5px;
    font-style: normal;
    font-weight: 400;
    opacity: 1;
}

/* Focus State */
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form textarea.wpcf7-textarea:focus {
    border-bottom-color: #366988;
    outline: none;
    box-shadow: none;
}

/* Textarea Specifics */
.wpcf7-form textarea.wpcf7-textarea {
    height: 38px;
    min-height: 38px;
    resize: none;
    line-height: 22px;
    display: block;
    overflow-y: auto;
}

/* SVGs inside labels (User, Phone, Email, Comment Icons) */
.wpcf7-form label>svg {
    position: absolute;
    right: 0;
    bottom: 8px;
    pointer-events: none;
    display: block;
    max-height: 20px;
    width: auto;
}

.wpcf7-form label>svg path {
    fill: #222222;
    opacity: 0.78;
    transition: fill 0.3s ease, opacity 0.3s ease;
}

.wpcf7-form label:focus-within>svg path {
    fill: #366988;
    opacity: 1;
}

/* ---------------------------------------------------
   Attach Files Field & File Upload Info
   --------------------------------------------------- */
.wpcf7-form p:has(input[type="file"]) {
    margin-top: 8px;
    margin-bottom: 26px;
}

.wpcf7-form label:has(input[type="file"]),
.wpcf7-form p:has(input[type="file"]) label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    position: relative;
    cursor: pointer;
    font-style: normal;
    font-weight: 500;
    font-size: 14px;
    color: #1a1a1a;
    padding: 4px 0;
}

/* Khung chứa input file hiển thị ở góc phải */
.wpcf7-form .wpcf7-form-control-wrap[data-name="file-attach"] {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    width: auto;
    max-width: 65%;
    position: static;
    opacity: 1;
}

/* Hiển thị thông tin file upload (tên file sau khi chọn) */
.wpcf7-form input[type="file"].wpcf7-file {
    position: static;
    opacity: 1;
    display: inline-block;
    width: auto;
    max-width: 240px;
    font-size: 13px;
    font-family: inherit;
    color: #345E82;
    font-weight: 500;
    cursor: pointer;
    border: none;
    background: transparent;
    padding: 0;
    margin: 0;
    outline: none;
    text-align: right;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

/* Nút chọn file bo tròn tinh tế theo tông màu Mansa Bay */
.wpcf7-form input[type="file"]::file-selector-button,
.wpcf7-form input[type="file"]::-webkit-file-upload-button {
    font-family: inherit;
    font-size: 12px;
    font-weight: 500;
    color: #345E82;
    background: #edf5f9;
    border: 1px solid #b8d7e6;
    border-radius: 20px;
    padding: 3px 12px;
    margin-right: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.wpcf7-form input[type="file"]::file-selector-button:hover,
.wpcf7-form input[type="file"]::-webkit-file-upload-button:hover {
    background: #345E82;
    color: #ffffff;
    border-color: #345E82;
}

/* ---------------------------------------------------
   Submit Button (.button-send)
   --------------------------------------------------- */
.wpcf7-form .button-send {
    margin-top: 8px;
    width: 100%;
}

.wpcf7-form .button-send p {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    height: 52px;
    margin: 0;
    padding: 0;
    border-radius: 50px;
    background: linear-gradient(90deg, #387396 0%, #5eb8d1 100%);
    box-shadow: 0 4px 15px rgba(56, 115, 150, 0.25);
    cursor: pointer;
    overflow: hidden;
    transition: all 0.3s ease;
}

.wpcf7-form .button-send p:hover {
    background: linear-gradient(90deg, #2e6584 0%, #4eaec8 100%);
    box-shadow: 0 6px 20px rgba(56, 115, 150, 0.35);
    transform: translateY(-1px);
}

.wpcf7-form .button-send p:active {
    transform: translateY(0);
}

.wpcf7-form .button-send input[type="submit"] {
    background: transparent !important;
    border: none !important;
    color: #ffffff !important;
    font-family: 'Trajan Pro', Georgia, serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    cursor: pointer;
    padding: 0 !important;
    margin: 0 !important;
    height: 100%;
    outline: none !important;
    box-shadow: none !important;
}

.wpcf7-form .button-send svg {
    width: 18px;
    height: 18px;
    pointer-events: none;
    flex-shrink: 0;
}

.wpcf7-form .button-send svg path {
    fill: #ffffff;
}

/* Spinner */
.wpcf7-form .button-send .wpcf7-spinner {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
}

/* ---------------------------------------------------
   Validation & Output Messages
   --------------------------------------------------- */
.wpcf7-form input.wpcf7-not-valid,
.wpcf7-form textarea.wpcf7-not-valid {
    border-bottom-color: #dc3545 !important;
}

/* Thông báo lỗi dạng absolute để không chiếm chiều cao của label, giữ icon cố định */
.wpcf7-form .wpcf7-not-valid-tip {
    position: absolute;
    top: calc(100% + 5px);
    left: 0;
    color: #dc3545;
    font-size: 12px;
    font-weight: 500;
    font-style: normal;
    line-height: 1.2;
    z-index: 2;
    pointer-events: none;
    margin: 0;
}

.wpcf7-form .wpcf7-response-output {
    margin: 16px 0 0 0;
    padding: 10px 16px;
    border-radius: 12px;
    font-size: 13px;
    text-align: center;
    border-width: 1px;
}

/* ===================================================
   NEWSLETTER SUBSCRIPTION FORM (TNP)
   =================================================== */

.tnp.tnp-subscription {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100%;
}

/* Thanh capsule bo tròn nền trắng */
.tnp.tnp-subscription form {
    display: flex;
    align-items: center;
    background: #ffffff;
    border-radius: 100px;
    padding: 5px;
    position: relative;
    box-sizing: border-box;
    width: 100%;
    margin: 0 auto;
}

/* Khung ô nhập email */
.tnp.tnp-subscription .tnp-field-email {
    flex: 1;
    position: relative;
    margin: 0 !important;
    padding: 0 !important;
}

/* Ẩn nhãn label Email */
.tnp.tnp-subscription .tnp-field-email label {
    display: none !important;
}

/* Icon phong bì thư trước placeholder */
.tnp.tnp-subscription .tnp-field-email::before {
    content: "";
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 14px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 17' fill='none' stroke='%23222222' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='1.5' width='20' height='14' rx='2'%3E%3C/rect%3E%3Cpath d='M2 3l9 7 9-7'%3E%3C/path%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
    pointer-events: none;
    z-index: 2;
}

/* Input nhập email */
.tnp.tnp-subscription input.tnp-email {
    width: 100%;
    height: 48px;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    padding: 0 16px 0 50px !important;
    font-size: 15px;
    font-family: inherit;
    color: #111111;
    box-sizing: border-box;
}

/* Placeholder */
.tnp.tnp-subscription input.tnp-email::placeholder {
    color: #111111;
    font-size: 15px;
    opacity: 1;
}

/* Khung nút submit */
.tnp.tnp-subscription .tnp-field-button {
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0;
    text-align: right !important;
}

/* Nút bấm "SIGN UP" gradient xanh */
.tnp.tnp-subscription input.tnp-submit {
    height: 48px;
    padding: 0 38px !important;
    border: none !important;
    border-radius: 50px !important;
    background: linear-gradient(90deg, #387396 0%, #5eb8d1 100%) !important;
    color: #ffffff !important;
    font-family: 'Trajan Pro', Georgia, serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px;
    text-transform: uppercase !important;
    cursor: pointer;
    box-shadow: none !important;
    outline: none !important;
    transition: all 0.3s ease;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.tnp.tnp-subscription input.tnp-submit:hover {
    background: linear-gradient(90deg, #2e6584 0%, #4eaec8 100%) !important;
    box-shadow: 0 4px 15px rgba(56, 115, 150, 0.35) !important;
}

.tnp.tnp-subscription input.tnp-submit:active {
    transform: scale(0.98);
}

/* Responsive cho màn hình nhỏ */
@media (max-width: 480px) {
    .tnp.tnp-subscription input.tnp-submit {
        padding: 0 20px !important;
        font-size: 14px !important;
        height: 44px;
    }
    .tnp.tnp-subscription input.tnp-email {
        font-size: 13.5px;
        padding-left: 44px !important;
        height: 44px;
    }
    .tnp.tnp-subscription .tnp-field-email::before {
        left: 15px;
    }
}