/*
Theme Name: Divi Child
Theme URI: https://example.com/
Description: Child theme custom per Divi.
Author: TestWPAI
Template: Divi
Version: 2.0.12
Text Domain: divi-child
*/

:root {
    --ve-ink: #1b1d18;
    --ve-paper: #f7f3ea;
    --ve-paper-soft: #eee5d6;
    --ve-moss: #56614b;
    --ve-olive: #808768;
    --ve-clay: #9a6145;
    --ve-line: rgba(27, 29, 24, 0.14);
    --ve-shadow: 0 24px 70px rgba(25, 24, 18, 0.14);
    --ve-serif: "Libre Baskerville", Georgia, serif;
    --ve-sans: "Montserrat", Arial, sans-serif;
    --ve-copy: "Montserrat", Arial, sans-serif;
}

body {
    background: var(--ve-paper);
    color: var(--ve-ink);
    font-family: var(--ve-sans);
}

body.ve-home-page.et_fixed_nav #page-container {
    padding-top: 0 !important;
}

body.ve-home-page #main-header {
    background: transparent;
    box-shadow: none;
}

body.ve-home-page #main-header.et-fixed-header {
    background: rgba(247, 243, 234, 0.96);
    box-shadow: 0 12px 32px rgba(27, 29, 24, 0.08);
}

body.ve-home-page #main-header .container {
    min-height: 66px;
    max-width: none;
    padding-inline: clamp(20px, 4vw, 56px);
    width: 100%;
}

body.ve-home-page #main-header .logo_container {
    align-items: center;
    display: flex;
    height: 100%;
    left: clamp(20px, 4vw, 56px);
    position: absolute;
    top: 0;
    width: auto;
}

body.ve-home-page #main-header .logo_container a {
    align-items: center;
    background: transparent;
    border-radius: 50%;
    color: #fff;
    display: flex;
    gap: 10px;
    height: 62px;
    justify-content: center;
    overflow: hidden;
    padding: 3px;
    width: 62px;
}

body.ve-home-page #main-header.et-fixed-header .logo_container a {
    color: var(--ve-ink);
}

body.ve-home-page #main-header #logo {
    border-radius: 50%;
    display: inline-block;
    filter: contrast(1.2);
    height: 56px;
    margin: 0;
    max-height: 56px;
    mix-blend-mode: multiply;
    width: 56px;
}

body.ve-home-page #main-header #et-top-navigation {
    float: right;
}

body.ve-home-page #main-header .logo_container a::before {
    content: none;
}

body.ve-home-page #main-header .logo_container a::after {
    content: none;
}

body.ve-home-page #main-content img {
    border: 0;
    border-radius: 10px;
    box-shadow: 0 2px 18px 0 rgba(26, 26, 26, 0.22);
}

body.ve-home-page #top-menu > li {
    padding-right: 26px;
}

body.ve-home-page #top-menu > li > a {
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

body.ve-home-page #main-header.et-fixed-header #top-menu > li > a {
    color: var(--ve-ink);
}

body.ve-home-page #top-menu .ve-menu-book > a {
    border: 1px solid currentColor;
    padding: 11px 16px !important;
}

body.ve-home-page #top-menu .ve-language-switcher {
    align-items: center;
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 7px;
    padding-right: 0;
    white-space: nowrap;
}

#top-menu .ve-language-switcher {
    flex-wrap: nowrap;
    white-space: nowrap;
}

#top-menu .ve-language-switcher > a,
#top-menu .ve-language-switcher > span {
    display: inline-block;
    white-space: nowrap;
}

body.ve-home-page #top-menu .ve-language-switcher > a,
body.ve-home-page #top-menu .ve-language-switcher > span {
    color: rgba(255, 255, 255, 0.62);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    padding: 12px 0 0;
}

body.ve-home-page #top-menu .ve-language-switcher > a[aria-current="page"] {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 4px;
}

body.ve-home-page #main-header.et-fixed-header #top-menu .ve-language-switcher > a,
body.ve-home-page #main-header.et-fixed-header #top-menu .ve-language-switcher > span {
    color: rgba(27, 29, 24, 0.48);
}

body.ve-home-page #main-header.et-fixed-header #top-menu .ve-language-switcher > a[aria-current="page"] {
    color: var(--ve-ink);
}

body.ve-home-page #et_top_search {
    display: none;
}

body.ve-home-page .et_pb_image.et-waypoint {
    opacity: 1;
}

body.ve-home-page #page-container #et-main-area #main-content .ve-hero.et_pb_section {
    background-image: url("/wp-content/uploads/2026/07/villa-europa-43.webp") !important;
    background-position: left center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    margin: 0 !important;
    overflow: hidden;
}

body.ve-home-page #et-main-area,
body.ve-home-page #main-content {
    margin: 0 !important;
    padding: 0 !important;
}

.ve-hero {
    padding: 0 !important;
    min-height: max(900px, 125svh);
}

.ve-hero::before {
    background: radial-gradient(
        ellipse at center,
        rgba(7, 11, 14, 0.04) 0%,
        rgba(7, 11, 14, 0.08) 34%,
        rgba(7, 11, 14, 0.28) 58%,
        rgba(7, 11, 14, 0.62) 82%,
        rgba(7, 11, 14, 0.84) 100%
    );
    content: "";
    inset: 0;
    position: absolute;
}

.ve-hero .header-content-container {
    align-items: flex-end;
    display: flex;
    min-height: 100svh;
    padding: 100px 20px clamp(76px, 10vh, 120px);
}

.ve-hero__row {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: max(900px, 125svh);
    padding: 66px 20px 0 !important;
    position: relative;
    z-index: 1;
}

.ve-hero__row .et_pb_column {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ve-hero__copy {
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    margin: 0 auto !important;
    max-width: 980px;
    min-height: 0 !important;
    padding: clamp(80px, 11vh, 130px) 40px !important;
    text-align: center !important;
    width: min(100%, 980px);
}

.ve-hero__copy::before {
    background: url("/wp-content/uploads/2026/07/logo-villa-europa-redondo.webp") center / contain no-repeat;
    content: "";
    display: block;
    filter: invert(1);
    height: clamp(130px, 16vw, 190px);
    margin: 0 auto 28px;
    mix-blend-mode: screen;
    width: clamp(130px, 16vw, 190px);
}

.ve-hero__copy.et_pb_text,
.ve-hero__copy .et_pb_text_inner {
    text-align: center !important;
}

.ve-hero__copy .et_pb_text_inner > p:nth-child(2) {
    display: none;
}

.ve-hero__copy h1,
.ve-hero__copy .ve-eyebrow,
.ve-hero__copy .et_pb_text_inner > p:first-child {
    color: #f7f3ea !important;
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.72);
}

body.ve-home-page #page-container #et-main-area #main-content .ve-hero .ve-hero__copy h1 {
    background: transparent !important;
    color: #fff !important;
    display: table;
    font-family: var(--ve-serif) !important;
    font-size: 90px !important;
    font-weight: 400 !important;
    line-height: 1.25 !important;
    margin: 0 auto !important;
    max-width: min(720px, 92vw);
    padding: 0 !important;
    text-shadow: 0 2px 22px rgba(0, 0, 0, 0.78) !important;
    -webkit-text-fill-color: #fff !important;
}

.ve-hero__button {
    text-align: center !important;
}

.ve-hero__button .et_pb_button_module_wrapper {
    text-align: center !important;
}

.ve-hero__button .et_pb_button {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid #fff;
    border-radius: 0;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.ve-hero__header {
    background-color: transparent !important;
}

.ve-hero .header-content {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
}

.ve-hero h1,
.ve-heading h2,
.ve-feature-card h3 {
    font-family: var(--ve-serif);
    font-weight: 400;
}

.ve-hero h1 {
    color: #f7f3ea !important;
    font-size: 30px;
    line-height: 1.08;
    padding-bottom: 24px;
}

.ve-hero .et_pb_fullwidth_header_subhead,
.ve-eyebrow {
    font-family: var(--ve-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

body.ve-home-page #main-content .et_pb_section:not(.ve-hero) .ve-eyebrow,
body.ve-home-page #main-content .ve-services-eyebrow {
    color: #c17d00;
    font-family: var(--ve-sans);
    font-size: 12px;
    font-weight: 300;
}

.ve-hero .et_pb_fullwidth_header_subhead {
    color: #fff;
    order: -1;
    padding-bottom: 16px;
}

.ve-hero .et_pb_button {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid #fff;
    border-radius: 0;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.ve-booking-strip {
    background: transparent;
    margin-top: -48px;
    overflow: visible !important;
    padding: 0 20px !important;
    position: relative;
    z-index: 10000;
}

.ve-avaibook-search-strip {
    padding-right: 20px !important;
    padding-left: 20px !important;
}

.ve-avaibook-widget-row {
    max-width: 1180px !important;
    overflow: visible !important;
    padding: 0 !important;
    position: relative;
    width: 100% !important;
    z-index: 10001;
}

.ve-avaibook-search-strip .et_pb_column,
.ve-avaibook-search-strip .et_pb_code,
.ve-avaibook-search-strip .et_pb_code_inner,
.ve-avaibook-widget-shell,
.ve-avaibook-widget-shell.is-loaded,
.ve-avaibook-widget-shell .avaibook-search-widget {
    overflow: visible !important;
}

.ve-avaibook-widget-shell {
    min-height: 118px;
    color: #3d2b1f;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    font-family: var(--ve-sans);
    overflow: visible;
    position: relative;
    z-index: 10002;
}

body.ve-home-page #main-content .ve-booking-strip + .et_pb_section,
body.ve-home-page #main-content .ve-intro {
    position: relative;
    z-index: 1;
}

.ve-avaibook-widget-placeholder {
    display: flex;
    gap: 18px;
    align-items: center;
    justify-content: center;
    min-height: 118px;
    padding: 22px;
    text-align: center;
}

.ve-avaibook-widget-placeholder strong {
    color: #724000;
    font-family: var(--ve-serif);
    font-size: 18px;
}

.ve-avaibook-widget-placeholder p { margin: 0; }
.ve-avaibook-widget-placeholder button {
    padding: 12px 18px;
    color: #fff;
    background: #724000;
    border: 0;
    font: 600 12px var(--ve-sans);
    cursor: pointer;
}

@media (max-width: 767px) {
    .ve-avaibook-search-strip { padding-right: 12px !important; padding-left: 12px !important; }
    .ve-avaibook-widget-placeholder { flex-direction: column; }
}

/* Client proposal 2: reorganised relaxation and additional services. */
.ve-extra-proposal-relax {
    padding: clamp(82px, 10vw, 140px) 20px !important;
    background-image: linear-gradient(135deg, rgba(198, 122, 0, .84), rgba(198, 122, 0, .68)), url("/wp-content/uploads/2026/07/skincare.jpg") !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
}

.ve-extra-proposal-relax .et_pb_row,
.ve-extra-proposal-additional .et_pb_row {
    width: 100% !important;
    max-width: 1220px !important;
}

.ve-extra-proposal-heading,
.ve-extra-proposal-heading .et_pb_text_inner {
    text-align: center !important;
}

.ve-extra-proposal-heading .ve-eyebrow {
    color: rgba(255, 255, 255, .82) !important;
}

.ve-extra-proposal-heading h2 {
    max-width: 900px;
    margin: 10px auto 22px;
    color: #fff !important;
    font-family: var(--ve-serif) !important;
    font-size: clamp(42px, 6vw, 76px) !important;
    font-weight: 400;
    line-height: 1.1;
}

.ve-extra-proposal-heading h3 {
    margin: 0 auto 44px;
    color: #fff !important;
    font-family: var(--ve-sans) !important;
    font-size: 16px !important;
    font-weight: 500;
    letter-spacing: .08em;
    line-height: 1.5;
    text-transform: uppercase;
}

.ve-extra-proposal-availability {
    margin: 32px auto 0 !important;
    color: rgba(255, 255, 255, .92) !important;
    font-family: var(--ve-sans) !important;
    font-size: 12px !important;
    font-weight: 600;
    letter-spacing: .13em;
    line-height: 1.5;
    text-align: center;
    text-transform: uppercase;
}

.ve-relax-services-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.ve-relax-services-grid article {
    overflow: hidden;
    background: #f7f3ea;
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: 0 20px 55px rgba(61, 31, 4, .22);
}

.ve-extra-proposal-relax .ve-relax-services-grid article > img {
    display: block;
    width: 100%;
    height: 270px;
    border: 0 !important;
    border-radius: 10px 10px 0 0 !important;
    border-top-left-radius: 10px !important;
    border-top-right-radius: 10px !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    box-shadow: none !important;
    clip-path: none !important;
    object-fit: cover;
}

.ve-relax-services-grid article > div {
    padding: 28px;
    border: 0 !important;
    border-radius: 0 0 10px 10px !important;
}

.ve-relax-services-grid h4,
.ve-additional-services-grid h4 {
    margin: 0 0 14px;
    color: #724000;
    font-family: var(--ve-serif);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.3;
}

.ve-relax-services-grid p,
.ve-additional-services-grid p {
    margin: 0;
    color: rgba(61, 43, 31, .78);
    font-size: 15px;
    line-height: 1.75;
}

.ve-extra-proposal-additional {
    padding: clamp(76px, 9vw, 120px) 20px !important;
    background: #fff !important;
}

.ve-additional-services-heading,
.ve-additional-services-heading .et_pb_text_inner {
    text-align: center !important;
}

.ve-additional-services-heading h2 {
    color: #724000 !important;
    font-family: var(--ve-serif) !important;
    font-size: clamp(38px, 5vw, 62px) !important;
    font-weight: 400;
    line-height: 1.15;
}

.ve-additional-services-heading p {
    margin: 16px 0 42px;
    color: #c17d00;
    font-family: var(--ve-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.ve-additional-services-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.ve-additional-services-grid article {
    padding: 30px;
    background: #f2e4d2;
    border-radius: 10px;
}

.ve-celebration-proposal {
    width: 100% !important;
    padding: 0 !important;
    background: #3d2b1f !important;
}

.ve-celebration-proposal > .et_pb_row {
    display: flex;
    align-items: stretch;
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
}

.ve-celebration-proposal > .et_pb_row > .et_pb_column {
    display: flex;
    float: none !important;
    flex-direction: column;
    justify-content: center;
    width: 50% !important;
    margin: 0 !important;
}

.ve-celebration-proposal-image,
.ve-celebration-proposal-image .et_pb_image_wrap {
    display: block;
    height: 100%;
}

.ve-celebration-proposal-image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 680px;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    object-fit: cover;
}

.ve-celebration-proposal-copy {
    margin: 0 !important;
    padding: clamp(48px, 7vw, 100px) clamp(34px, 7vw, 100px) !important;
}

.ve-celebration-proposal-copy .ve-eyebrow {
    color: #d89321 !important;
}

.ve-celebration-proposal-copy h2 {
    max-width: 670px;
    margin: 12px 0 34px;
    color: #fff !important;
    font-family: var(--ve-serif);
    font-size: clamp(36px, 4vw, 58px);
    font-weight: 400;
    line-height: 1.15;
}

.ve-celebration-proposal-copy article {
    padding: 28px 0;
    border-top: 1px solid rgba(242, 228, 210, .24);
}

.ve-celebration-proposal-copy article > div {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.ve-celebration-proposal-copy h3 {
    margin: 0;
    color: #fff !important;
    font-family: var(--ve-serif);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.35;
}

.ve-celebration-proposal-copy article strong {
    flex: none;
    color: #d89321;
    font-family: var(--ve-sans);
    font-size: 20px;
    white-space: nowrap;
}

.ve-celebration-proposal-copy article p {
    max-width: 720px;
    margin: 16px 0 0;
    color: rgba(255, 255, 255, .78);
    font-size: 15px;
    line-height: 1.75;
}

.ve-celebration-proposal-note {
    margin: 24px 0 0 !important;
    color: rgba(242, 228, 210, .7) !important;
    font-size: 12px !important;
    line-height: 1.65 !important;
}

@media (max-width: 980px) {
    .ve-relax-services-grid,
    .ve-additional-services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ve-relax-services-grid article:last-child,
    .ve-additional-services-grid article:last-child {
        grid-column: 1 / -1;
    }

    .ve-celebration-proposal > .et_pb_row {
        display: block;
    }

    .ve-celebration-proposal > .et_pb_row > .et_pb_column {
        width: 100% !important;
    }

    .ve-celebration-proposal-image img {
        min-height: 0;
        aspect-ratio: 3 / 2;
    }
}

@media (max-width: 640px) {
    .ve-extra-proposal-relax,
    .ve-extra-proposal-additional {
        padding-right: 14px !important;
        padding-left: 14px !important;
    }

    .ve-extra-proposal-heading h2 {
        font-size: 46px !important;
    }

    .ve-additional-services-heading h2 {
        font-size: 42px !important;
    }

    .ve-relax-services-grid,
    .ve-additional-services-grid {
        grid-template-columns: 1fr;
    }

    .ve-relax-services-grid article:last-child,
    .ve-additional-services-grid article:last-child {
        grid-column: auto;
    }

    .ve-celebration-proposal-copy {
        padding: 54px 22px !important;
    }

    .ve-celebration-proposal-copy h2 {
        font-size: 42px;
    }

    .ve-celebration-proposal-copy article > div {
        display: block;
    }

    .ve-celebration-proposal-copy article strong {
        display: block;
        margin-top: 10px;
    }
}

.ve-booking-row {
    background: #fff;
    border-radius: 10px;
    box-shadow: var(--ve-shadow);
    max-width: 1120px;
    overflow: hidden;
    padding: 0;
}

.ve-booking-row .et_pb_column {
    border-right: 1px solid var(--ve-line);
    margin: 0;
}

.ve-booking-item {
    margin: 0 !important;
    min-height: 96px;
    padding: 22px 28px;
}

.ve-booking-item span {
    color: var(--ve-moss);
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.ve-booking-item strong {
    display: block;
    font-family: var(--ve-serif);
    font-size: 19px;
    font-weight: 400;
    margin-top: 4px;
}

.ve-booking-item label {
    display: block;
}

.ve-booking-item input {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--ve-line);
    border-radius: 0;
    color: var(--ve-ink);
    font-family: var(--ve-sans);
    font-size: 15px;
    margin-top: 7px;
    min-height: 34px;
    padding: 2px 0;
    width: 100%;
}

.ve-button--booking,
.ve-button--booking .et_pb_button_module_wrapper,
.ve-button--booking .et_pb_button {
    height: 100%;
    margin: 0 !important;
    width: 100%;
}

.ve-button--booking .et_pb_button {
    align-items: center;
    background: var(--ve-ink);
    border: 0;
    border-radius: 10px;
    color: #fff;
    display: flex;
    font-size: 12px;
    font-weight: 700;
    justify-content: center;
    letter-spacing: 0.14em;
    min-height: 96px;
}

.ve-button--booking .et_pb_button_module_wrapper {
    align-items: center;
    display: flex;
    justify-content: center;
}

.ve-booking-row .et_pb_column:last-child {
    align-items: center;
    display: flex;
    justify-content: center;
}

.ve-booking-row .et_pb_column:last-child .et_pb_button_module_wrapper {
    align-items: center;
    display: flex;
    height: 100%;
    justify-content: center;
    text-align: center;
    width: 100%;
}

.ve-booking-strip a.et_pb_button.ve-button--booking {
    background: transparent !important;
    background-color: transparent !important;
    border-color: #9a6500 !important;
    border-style: solid !important;
    border-width: 2px !important;
    border-radius: 10px !important;
    color: #9a6500 !important;
    height: auto !important;
    line-height: 1.2 !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 14px 26px !important;
    -webkit-text-fill-color: #9a6500 !important;
    width: auto !important;
}

.ve-booking-strip a.et_pb_button.ve-button--booking:hover,
.ve-booking-strip a.et_pb_button.ve-button--booking:focus-visible {
    background: rgba(154, 101, 0, 0.08) !important;
    background-color: rgba(154, 101, 0, 0.08) !important;
    border-color: #724000 !important;
    color: #724000 !important;
    -webkit-text-fill-color: #724000 !important;
}

.ve-intro {
    background-position: right center !important;
    background-repeat: no-repeat !important;
    background-size: min(68vw, 936px) auto !important;
}

.ve-family-story {
    background-position: center 56% !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    width: 100% !important;
}

.ve-family-story .ve-info-card {
    border-top: 0 !important;
}

.ve-outdoor-background {
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    width: 100% !important;
}

.ve-booking-strip + .ve-intro .ve-lead,
.ve-booking-strip + .ve-intro .ve-lead .et_pb_text_inner,
.ve-booking-strip + .ve-intro .ve-lead p {
    font-size: 20px !important;
    line-height: 1.6 !important;
    text-align: center !important;
}

.ve-booking-strip + .ve-intro .ve-lead p:last-child {
    color: #c17d00 !important;
    font-family: "Libre Baskerville", Georgia, serif !important;
    font-style: italic !important;
    text-align: center !important;
}

.ve-gallery-invitation {
    color: #fff;
    font-family: var(--ve-serif) !important;
    font-size: 40px !important;
    font-style: italic;
    line-height: 1.3;
    margin-bottom: 24px !important;
    text-align: center;
}

.ve-gallery-invitation,
.ve-gallery-invitation .et_pb_text_inner {
    text-align: center !important;
    width: 100%;
}

.ve-gallery-home-button .et_pb_button {
    background: #fff !important;
    border-color: #fff !important;
    border-radius: 10px !important;
    color: #c17d00 !important;
}

.ve-section {
    background: var(--ve-paper);
    padding: clamp(72px, 10vw, 140px) 0;
}

.ve-section .et_pb_row,
.ve-feature-band .et_pb_row {
    max-width: 1220px;
    width: calc(100% - 40px);
}

.ve-heading h2 {
    color: var(--ve-ink);
    font-size: 20px;
    line-height: 1.08;
    padding: 12px 0 0;
}

.ve-heading p:not(.ve-eyebrow),
.ve-lead {
    color: rgba(27, 29, 24, 0.72);
    font-size: 14px;
    line-height: 1.75;
}

.ve-info-grid {
    padding-top: 44px;
}

.ve-info-grid .et_pb_column {
    display: flex;
}

.ve-info-card {
    border-top: 1px solid var(--ve-line);
    margin: 0 !important;
    padding: 30px 8px 0;
    width: 100%;
}

.ve-info-card h3,
.ve-floor h3,
.ve-form-heading h3 {
    color: var(--ve-ink);
    font-family: var(--ve-serif);
    font-size: 25px;
    font-weight: 400;
}

.ve-info-card p,
.ve-floor p {
    color: rgba(27, 29, 24, 0.72);
    font-size: 14px;
    line-height: 1.75;
}

/* Titoli delle due schede di piano salvate dal Visual Builder con markup diverso. */
.ve-info-card .et_pb_text_inner > p:first-child {
    line-height: 1.25 !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
}

.ve-info-card .et_pb_text_inner > p:first-child strong,
.ve-info-card .et_pb_text_inner > p:first-child strong * {
    display: block;
    font-family: var(--ve-copy) !important;
    font-size: 20px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ve-info-card.et_pb_text_9,
.ve-info-card.et_pb_text_10 {
    padding-top: 0 !important;
}

.ve-wide-heading {
    max-width: 950px;
}

.ve-photo-strip,
.ve-photo-strip .et_pb_row,
.ve-photo-strip .et_pb_column,
.ve-photo-strip .et_pb_code {
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    width: 100% !important;
}

.ve-photo-strip-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr 1fr;
}

.ve-photo-strip-grid img {
    height: clamp(280px, 36vw, 560px);
    object-fit: cover;
    width: 100%;
}

/* Fascia fotografica a tre immagini nella sezione La Villa. */
.ve-villa-photo-strip {
    max-width: none !important;
    padding: 0 !important;
    width: 100% !important;
}

.ve-villa-photo-strip .et_pb_column,
.ve-villa-photo-strip .et_pb_image {
    margin: 0 !important;
}

.ve-villa-photo-strip .et_pb_image,
.ve-villa-photo-strip .et_pb_image_wrap {
    background: #724000;
    border-radius: 0 !important;
    overflow: hidden;
}

.ve-villa-photo-strip .et_pb_image_wrap {
    position: relative;
}

.ve-villa-photo-strip .et_pb_image_wrap::after {
    background: #724000;
    content: "";
    inset: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    z-index: 2;
}

.ve-villa-photo-strip.ve-reveal-ready .et_pb_image_wrap::after {
    opacity: 1;
}

.ve-villa-photo-strip.ve-reveal-visible .et_pb_image_wrap::after {
    animation: ve-villa-brown-reveal 2.4s ease-out 200ms both;
}

.ve-villa-photo-strip.ve-reveal-visible .et_pb_column:nth-child(2) .et_pb_image_wrap::after {
    animation-duration: 3.1s;
    animation-delay: 450ms;
}

.ve-villa-photo-strip.ve-reveal-visible .et_pb_column:nth-child(3) .et_pb_image_wrap::after {
    animation-duration: 3.8s;
    animation-delay: 700ms;
}

.ve-villa-photo-strip .et_pb_image,
.ve-villa-photo-strip .et_pb_image_wrap,
.ve-villa-photo-strip img {
    display: block;
    width: 100% !important;
}

.ve-villa-photo-strip img {
    aspect-ratio: 3 / 2;
    border-radius: 0 !important;
    height: auto;
    object-fit: cover;
    opacity: 1;
}

.ve-villa-statement {
    max-width: 920px !important;
    padding-bottom: 70px !important;
    padding-top: 70px !important;
}

.ve-villa-statement .et_pb_text h4 {
    font-style: normal !important;
    line-height: 1.45 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ve-villa-statement .et_pb_text h4::before {
    display: none !important;
}

.ve-villa-floors {
    align-items: stretch;
    display: flex;
    gap: clamp(48px, 7vw, 92px);
    max-width: 1120px !important;
    padding: 0 40px 90px !important;
}

.ve-villa-floors .et_pb_column {
    flex: 1 1 0;
    float: none;
    margin: 0 !important;
    width: 0 !important;
}

.ve-villa-floors .ve-info-card {
    border-top: 0;
    height: 100%;
    padding: 0 !important;
}

.ve-villa-floors .et_pb_column:last-child {
    border-left: 0;
    padding-left: clamp(48px, 7vw, 92px);
}

@keyframes ve-villa-brown-reveal {
    from { opacity: 1; }
    to { opacity: 0; }
}

/* Brown photographic reveal, triggered as each image enters the viewport. */
body.ve-home-page .ve-photo-reveal {
    --ve-photo-delay: 0ms;
    background-color: #724000;
    overflow: hidden;
    position: relative;
}

body.ve-home-page .ve-photo-reveal:not(.ve-photo-reveal--background) {
    border-radius: 10px;
}

body.ve-home-page .ve-scroll-photo-frame {
    display: block;
    width: 100%;
}

body.ve-home-page .ve-photo-reveal::after {
    background: #724000;
    border-radius: inherit;
    content: "";
    inset: 0;
    opacity: 1;
    pointer-events: none;
    position: absolute;
    transition: opacity 2.2s cubic-bezier(0.22, 0.61, 0.36, 1) var(--ve-photo-delay);
    z-index: 3;
}

body.ve-home-page .ve-photo-reveal--pool,
body.ve-home-page .ve-photo-reveal--pool::after {
    background-color: #fff;
}

body.ve-home-page .ve-photo-reveal--pool::after {
    background: #fff;
}

body.ve-home-page .ve-photo-reveal img {
    opacity: 0.32;
    transition: opacity 2.2s ease var(--ve-photo-delay);
}

body.ve-home-page .ve-photo-reveal.ve-photo-reveal-visible::after {
    opacity: 0;
}

body.ve-home-page .ve-photo-reveal.ve-photo-reveal-visible img {
    opacity: 1;
}

body.ve-home-page .ve-photo-reveal--background > .et_pb_row {
    position: relative;
    z-index: 4;
}

body.ve-home-page .ve-photo-reveal--background::after {
    z-index: 3;
}

body.ve-home-page .ve-villa-photo-strip .ve-photo-reveal,
body.ve-home-page .ve-season .ve-photo-reveal {
    border-radius: 0;
}

@media (min-width: 981px) {
    .ve-villa-photo-strip {
        display: flex;
    }

    .ve-villa-photo-strip .et_pb_column {
        flex: 0 0 33.333333%;
        width: 33.333333% !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ve-villa-photo-strip .et_pb_image_wrap::after {
        animation: none;
        display: none;
    }

    body.ve-home-page .ve-photo-reveal::after {
        display: none;
        transition: none;
    }

    body.ve-home-page .ve-photo-reveal img {
        opacity: 1;
        transition: none;
    }
}

.ve-villa {
    background: var(--ve-paper-soft);
}

.ve-services-image img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    width: 100%;
}

.ve-floor {
    border-bottom: 1px solid var(--ve-line);
    border-top: 1px solid var(--ve-line);
    padding: 34px 8px;
}

.ve-floor .et_pb_text_inner {
    align-items: start;
    display: grid;
    gap: clamp(30px, 6vw, 80px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ve-floor .et_pb_text_inner > div {
    align-self: start;
}

.ve-floor h3,
.ve-floor h3 * {
    font-family: var(--ve-serif) !important;
    font-size: 25px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 1.25 !important;
}

.ve-floor h3 {
    margin: 0;
    padding: 0 0 10px;
}

.ve-villa-cards .et_pb_column {
    display: flex;
    flex-direction: column;
}

.ve-villa-card-image {
    margin: 0 !important;
}

.ve-villa-card-image img {
    aspect-ratio: 4 / 3;
    display: block;
    object-fit: cover;
    width: 100%;
}

.ve-villa-card {
    flex: 1;
    padding-top: 24px;
}

.ve-villa-card-divi-icon,
.ve-villa-cards .et_pb_icon {
    margin: 24px auto 4px !important;
    text-align: center;
}

.ve-number {
    color: var(--ve-clay);
    font-family: var(--ve-serif);
    font-size: 18px;
}

.ve-lead {
    font-size: 14px;
    padding-top: 34px;
}

.ve-split__image img {
    aspect-ratio: 4 / 5;
    object-fit: cover;
    width: 100%;
}

.ve-split__copy {
    align-items: center;
    display: flex;
}

.ve-text-button .et_pb_button {
    background: transparent;
    border: 0;
    color: var(--ve-clay);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    padding-left: 0;
}

.ve-feature-band {
    background: var(--ve-ink);
    color: #fff;
    padding: clamp(72px, 10vw, 140px) 0;
}

.ve-heading--light h2,
.ve-heading--light .ve-eyebrow {
    color: #fff;
}

.ve-feature-grid {
    padding-top: 40px;
}

.ve-experiences .ve-feature-card {
    background: transparent !important;
    box-shadow: none !important;
    margin-bottom: 18px;
    min-height: 0;
}

.ve-experiences {
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
}

.ve-experiences .ve-feature-card h3 {
    color: #fff !important;
    font-size: 33px !important;
    margin-top: 24px;
}

.ve-experiences .ve-feature-card p {
    color: rgba(255, 255, 255, 0.92) !important;
    font-size: 17px !important;
    line-height: 1.7 !important;
}

.ve-celebration-packs-row {
    margin-top: clamp(52px, 7vw, 90px) !important;
}

.ve-celebration-packs,
.ve-celebration-packs .et_pb_text_inner {
    text-align: center;
}

.ve-celebration-packs > .et_pb_text_inner > h3 {
    max-width: 850px;
    margin: 10px auto 34px;
    color: #fff;
    font-family: var(--ve-serif);
    font-size: clamp(32px, 4vw, 48px);
    font-weight: 400;
    line-height: 1.2;
}

.ve-celebration-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    text-align: left;
}

.ve-celebration-grid article {
    padding: clamp(28px, 4vw, 46px);
    background: #f2e4d2;
    border-radius: 10px;
    color: #3d2b1f;
}

.ve-celebration-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 20px;
}

.ve-celebration-title h4 {
    margin: 0;
    color: #724000;
    font-family: var(--ve-serif);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.3;
}

.ve-celebration-title strong {
    flex: none;
    display: inline-block;
    color: #c17d00;
    font-family: var(--ve-sans);
    font-size: 20px;
    white-space: nowrap;
}

.ve-celebration-grid article p {
    margin: 0;
    color: rgba(61, 43, 31, .82) !important;
    font-size: 16px;
    line-height: 1.75;
}

.ve-celebration-note {
    max-width: 850px;
    margin: 24px auto 0 !important;
    color: rgba(255, 255, 255, .78) !important;
    font-size: 13px;
    line-height: 1.65;
}

@media (max-width: 767px) {
    .ve-celebration-grid {
        grid-template-columns: 1fr;
    }

    .ve-celebration-title {
        display: block;
    }

    .ve-celebration-title strong {
        display: block;
        margin-top: 10px;
    }
}

.ve-experience-image {
    margin-top: 34px;
}

.ve-experience-image img {
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.ve-book-ahead {
    color: rgba(255, 255, 255, 0.68);
    font-size: 13px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ve-extra-services-row {
    align-items: stretch;
    background: #fff;
    border: 0;
    border-radius: 10px;
    display: flex;
    margin-top: clamp(40px, 6vw, 76px);
    overflow: hidden;
    padding: 0 !important;
}

.ve-extra-services-row .et_pb_column {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ve-extra-services-image,
.ve-extra-services-image .et_pb_image_wrap {
    display: block;
    height: 100%;
    margin: 0;
}

.ve-extra-services-image img {
    aspect-ratio: 3 / 2;
    border-radius: 0;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.ve-extra-services-copy {
    padding: clamp(24px, 5vw, 64px);
}

.ve-extra-services-copy h3 {
    color: #c17d00 !important;
    font-family: var(--ve-serif);
    font-size: clamp(28px, 3vw, 44px);
    font-weight: 400;
    line-height: 1.15;
}

.ve-extra-services-copy .ve-eyebrow,
.ve-extra-services-copy .ve-eyebrow * {
    color: #724000 !important;
    -webkit-text-fill-color: #724000 !important;
}

.ve-extra-services-copy ul {
    color: var(--ve-ink);
    font-size: 18px;
    line-height: 1.5;
    list-style-position: inside;
    margin: 12px 0 0 !important;
    padding-left: 0 !important;
}

.ve-extra-services-copy .ve-extra-availability {
    color: #724000 !important;
    font-family: var(--ve-sans) !important;
    font-size: 13px !important;
    font-weight: 600;
    letter-spacing: 0.08em;
    margin: 14px 0 0 !important;
    text-transform: uppercase;
}

.ve-extra-services-copy li {
    margin-bottom: 10px;
    padding-left: 0;
}

.ve-extra-services-copy li::marker {
    color: var(--ve-clay);
}

.ve-retreats {
    background-image: linear-gradient(rgba(70, 35, 14, 0.48), rgba(46, 25, 14, 0.66)), url("/wp-content/uploads/2026/07/villa-europa-yoga-retreat-sunset.webp") !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    overflow: hidden;
    padding: clamp(110px, 15vw, 210px) 0 !important;
    position: relative;
    text-align: center;
}

.ve-retreats::before {
    background: var(--ve-clay);
    content: "";
    height: 2px;
    left: 50%;
    position: absolute;
    top: clamp(54px, 7vw, 90px);
    transform: translateX(-50%);
    width: 54px;
}

.ve-retreats .et_pb_row {
    max-width: 940px;
    text-align: center;
}

.ve-retreats-copy,
.ve-retreats-copy .et_pb_text_inner {
    text-align: center !important;
}

.ve-retreats-copy h2 {
    color: #fff;
    font-family: var(--ve-serif);
    font-size: clamp(34px, 5vw, 62px);
    font-weight: 400;
    line-height: 1.13;
    margin: 10px auto 24px;
    text-align: center !important;
}

.ve-retreats-copy p:not(.ve-eyebrow) {
    color: rgba(255, 255, 255, 0.92);
    font-size: 17px;
    line-height: 1.8;
    margin: 0 auto;
    max-width: 780px;
    text-align: center;
}

.ve-retreats-copy .ve-eyebrow {
    color: #fff !important;
    text-align: center;
}

.ve-retreats-button {
    margin-top: 30px;
    text-align: center;
}

.ve-retreats-button .et_pb_button {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid #fff !important;
    border-radius: 0 !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em;
    padding: 14px 22px !important;
    text-transform: uppercase;
}

.ve-retreats-button .et_pb_button:hover {
    background: var(--ve-clay) !important;
    border-color: var(--ve-clay) !important;
}

@media (max-width: 767px) {
    .ve-extra-services-row {
        display: block;
    }

    .ve-extra-services-row .et_pb_column {
        width: 100% !important;
    }

    .ve-extra-services-copy {
        padding: 34px 28px;
    }
}

.ve-services-list ul {
    columns: 2;
    list-style: none;
    padding: 12px 0 0;
}

.ve-services-list li {
    border-top: 1px solid var(--ve-line);
    break-inside: avoid;
    padding: 13px 8px;
}

.ve-services-new {
    background: #fff;
}

.ve-services-eyebrow,
.ve-services-title {
    margin: 0 auto 34px;
    max-width: 920px;
    text-align: center;
}

.ve-services-eyebrow {
    color: var(--ve-clay);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    margin-bottom: 12px;
    text-transform: uppercase;
}

.ve-services-title {
    color: var(--ve-ink);
    font-family: var(--ve-serif);
    font-size: 20px;
    font-weight: 400;
    line-height: 1.08;
}

.ve-services-eyebrow .et_pb_text_inner,
.ve-services-title .et_pb_text_inner {
    text-align: center;
}

.ve-services-grid {
    padding: 22px 0;
}

.ve-services-grid .et_pb_column {
    display: flex;
    flex-direction: column;
}

.ve-service-icon {
    margin: 0 auto 18px !important;
    text-align: center;
}

.ve-service-item {
    margin: 0 !important;
    text-align: center;
}

.ve-service-item h3 {
    color: var(--ve-ink);
    font-family: var(--ve-sans);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.45;
    padding-bottom: 8px;
}

.ve-service-item p {
    color: rgba(27, 29, 24, 0.68);
    font-size: 14px;
    line-height: 1.65;
}

.ve-island-care {
    border-radius: 10px !important;
    overflow: hidden;
}

.ve-island-care .et_pb_icon::after {
    background: rgba(255, 255, 255, 0.75);
    content: "";
    display: block;
    height: 1px;
    margin: 18px auto 20px;
    width: 44px;
}

@media (max-width: 767px) {
    .ve-island-care {
        margin-left: auto !important;
        margin-right: auto !important;
        padding: 44px 24px !important;
        width: calc(100% - 32px) !important;
    }

    .ve-island-care .et_pb_column,
    .ve-island-care .et_pb_text,
    .ve-island-care .et_pb_text_inner {
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: none !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }

    .ve-island-care .et_pb_text_inner p {
        hyphens: none;
        overflow-wrap: normal;
        text-align: center !important;
        white-space: normal;
        word-break: normal;
    }

    .ve-info-card {
        box-sizing: border-box;
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: none !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
        width: 100% !important;
    }

    .ve-info-card .et_pb_text_inner {
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: none !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }

    .ve-info-card h3,
    .ve-info-card p,
    .ve-info-card span {
        hyphens: none;
        overflow-wrap: normal;
        white-space: normal;
        word-break: normal;
    }

    .ve-services-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
        width: 100% !important;
    }

    .ve-services-grid .et_pb_column {
        float: none !important;
        margin: 0 0 34px !important;
        min-width: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }

    .ve-service-item,
    .ve-service-item .et_pb_text_inner,
    .ve-service-item p {
        hyphens: none;
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: none !important;
        overflow-wrap: normal;
        padding-left: 0 !important;
        padding-right: 0 !important;
        text-align: center !important;
        white-space: normal;
        width: 100% !important;
        word-break: normal;
    }
}

.ve-season {
    background: #724000 !important;
    padding: 0 !important;
}

.ve-season > .et_pb_row {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr 1fr;
    max-width: none !important;
    min-height: clamp(560px, 62vw, 780px);
    padding: 0 !important;
    width: 100% !important;
}

.ve-season > .et_pb_row > .et_pb_column {
    margin: 0 !important;
    width: 100% !important;
}

.ve-season > .et_pb_row > .et_pb_column:first-child {
    min-height: 100%;
    overflow: hidden;
    position: relative;
}

.ve-season > .et_pb_row > .et_pb_column:first-child::after {
    background: linear-gradient(90deg, rgba(114, 64, 0, 0) 42%, #724000 100%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 5;
}

.ve-season .et_pb_image,
.ve-season .et_pb_image_wrap,
.ve-season .et_pb_code,
.ve-season .ve-scroll-photo-frame {
    display: block;
    height: 100% !important;
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    width: 100% !important;
}

.ve-season .et_pb_image img,
.ve-season .et_pb_code img,
.ve-season .ve-season-image {
    border-radius: 0 !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center center;
    width: 100% !important;
}

.ve-season > .et_pb_row > .et_pb_column:last-child {
    align-items: center;
    display: flex;
}

.ve-season-copy {
    color: #fff;
    max-width: 650px;
    padding: clamp(20px, 4vw, 60px);
}

.ve-season-image {
    height: clamp(420px, 56vw, 720px);
    object-fit: cover;
    width: 100%;
}

.ve-season-copy h2 {
    color: #fff;
    font-family: var(--ve-serif);
    font-size: 20px;
    font-weight: 400;
    line-height: 1.08;
}

.ve-season-copy p:not(.ve-eyebrow) {
    font-size: 14px;
    line-height: 1.75;
}

.ve-reviews {
    background: var(--ve-paper-soft);
}

.ve-photo-pair {
    background: var(--ve-paper-soft);
    padding: 0 0 clamp(70px, 9vw, 120px);
}

.ve-photo-pair .et_pb_row {
    max-width: 1220px;
    width: calc(100% - 40px);
}

.ve-photo-pair img {
    aspect-ratio: 4 / 3;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.ve-faq-list {
    margin-top: 34px;
}

.ve-faq-list details {
    border-top: 1px solid var(--ve-line);
    padding: 21px 4px;
}

.ve-faq-list details:last-child {
    border-bottom: 1px solid var(--ve-line);
}

.ve-faq-list summary {
    cursor: pointer;
    font-family: var(--ve-serif);
    font-size: 21px;
    list-style-position: outside;
}

.ve-faq-list details p {
    color: rgba(27, 29, 24, 0.72);
    line-height: 1.75;
    max-width: 850px;
    padding: 18px 0 0 22px;
}

.ve-contact {
    background: #fff;
}

.ve-contact-details {
    font-size: 16px;
    line-height: 1.8;
}

.ve-contact-details a {
    color: var(--ve-ink);
}

.ve-whatsapp {
    border: 1px solid var(--ve-ink);
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    margin: 12px 0 28px;
    padding: 13px 18px;
}

.ve-map iframe {
    border: 0;
    height: 320px;
    width: 100%;
}

.ve-contact-form label {
    color: var(--ve-moss);
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ve-contact-form input,
.ve-contact-form textarea {
    background: var(--ve-paper);
    border: 0;
    border-bottom: 1px solid var(--ve-line);
    border-radius: 0;
    color: var(--ve-ink);
    display: block;
    font-family: var(--ve-sans);
    font-size: 16px;
    margin-top: 7px;
    padding: 14px;
    width: 100%;
}

.ve-contact-form button {
    background: #c17d00;
    border: 0;
    color: #fff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    padding: 16px 22px;
}

.ve-contact > .et_pb_row:last-child {
    background: #f7f3ea !important;
}

.ve-contact .ve-contact-form button {
    background: #c17d00 !important;
    border-radius: 10px;
    color: #fff !important;
}

.ve-contact .ve-contact-form button:hover,
.ve-contact .ve-contact-form button:focus-visible {
    background: #9d6500 !important;
}

.ve-form-trap {
    left: -9999px;
    position: absolute;
}

.ve-form-notice {
    border: 1px solid var(--ve-line);
    padding: 14px;
}

.ve-booking-final {
    background: var(--ve-moss);
    color: #fff;
    padding: clamp(58px, 8vw, 100px) 0;
}

.ve-booking-final .et_pb_row {
    align-items: center;
    display: flex;
    max-width: 1220px;
    width: calc(100% - 40px);
}

.ve-booking-final-copy h2 {
    color: #fff;
    font-family: var(--ve-serif);
    font-size: 20px;
    font-weight: 400;
}

.ve-booking-final-copy p {
    color: rgba(255, 255, 255, 0.76);
    font-size: 14px;
}

.ve-booking-final-button .et_pb_button {
    background: transparent;
    border: 1px solid #fff;
    border-radius: 0;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.ve-feature-grid .et_pb_column {
    background: rgba(255, 255, 255, 0.06);
}

.ve-feature-card {
    min-height: 250px;
    padding: 34px;
}

.ve-feature-card span {
    color: var(--ve-olive);
    font-family: var(--ve-serif);
}

.ve-feature-card h3 {
    color: #fff;
    font-size: 24px;
    margin-top: 52px;
}

.ve-feature-card p {
    color: rgba(255, 255, 255, 0.72);
}

.ve-gallery__heading {
    max-width: 820px;
}

.ve-gallery__grid {
    padding-top: 24px;
}

.ve-gallery__main img {
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.ve-gallery__small img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.ve-booking-panel {
    padding-top: 20px;
}

.ve-booking-panel__copy,
.ve-booking-card {
    border-top: 1px solid var(--ve-line);
    padding-top: 42px;
}

.ve-booking-card {
    background: #fff;
    border: 0;
    border-radius: 0;
    box-shadow: var(--ve-shadow);
    padding: 34px;
}

.ve-booking-card .et_pb_promo_button {
    background: var(--ve-ink);
    border: 0;
    border-radius: 0;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.ve-footer {
    background: #f2e4d2;
    color: var(--ve-ink);
    padding: clamp(56px, 7vw, 96px) 0 28px;
}

.ve-footer .et_pb_row {
    max-width: 1220px;
    width: calc(100% - 40px);
}

.ve-footer__heading h2 {
    color: var(--ve-ink);
    font-family: var(--ve-serif);
    font-size: 20px;
    font-weight: 400;
    line-height: 1.08;
    padding-top: 12px;
}

.ve-footer__contact,
.ve-footer__contact a {
    color: var(--ve-ink);
    line-height: 1.9;
}

.ve-footer__button .et_pb_button {
    background: transparent;
    border: 1px solid var(--ve-ink);
    border-radius: 0;
    color: var(--ve-ink);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.ve-footer__bottom {
    border-top: 1px solid rgba(27, 29, 24, 0.2);
    font-size: 12px;
    letter-spacing: 0.08em;
    margin-top: 48px;
    padding-top: 22px !important;
    text-transform: uppercase;
}

body.ve-home-page #main-footer {
    display: none;
}

/* Gallery page */
body.ve-gallery-page #main-header {
    background: rgba(247, 243, 234, 0.97);
    box-shadow: 0 8px 30px rgba(27, 29, 24, 0.08);
}

body.ve-contact-page #main-header {
    background: rgba(247, 243, 234, 0.97);
    box-shadow: 0 8px 30px rgba(27, 29, 24, 0.08);
}

body.ve-gallery-page #main-header .container {
    max-width: none;
    padding-inline: clamp(20px, 4vw, 56px);
    width: 100%;
}

body.ve-contact-page #main-header .container {
    max-width: none;
    padding-inline: clamp(20px, 4vw, 56px);
    width: 100%;
}

body.ve-gallery-page #main-header #logo {
    border-radius: 50%;
    max-height: 56px;
}

body.ve-contact-page #main-header #logo {
    border-radius: 50%;
    max-height: 56px;
}

body.ve-gallery-page #main-header #et-top-navigation {
    float: right;
}

body.ve-contact-page #main-header #et-top-navigation {
    float: right;
}

body.ve-gallery-page #top-menu > li {
    padding-right: 22px;
}

body.ve-contact-page #top-menu > li {
    padding-right: 22px;
}

body.ve-gallery-page #top-menu > li > a {
    color: var(--ve-ink);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.ve-contact-page #top-menu > li > a {
    color: var(--ve-ink);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.ve-booking-page #top-menu > li > a {
    color: var(--ve-ink);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.ve-gallery-page #et_top_search,
body.ve-gallery-page #main-footer,
body.ve-contact-page #et_top_search,
body.ve-contact-page #main-footer,
body.ve-booking-page #et_top_search,
body.ve-booking-page #main-footer {
    display: none;
}

#top-menu .ve-menu-booking > a {
    color: #c17d00 !important;
}

.ve-booking-page-hero {
    min-height: clamp(380px, 52vh, 580px);
    padding: clamp(150px, 20vh, 230px) 20px 72px !important;
    background-image: linear-gradient(90deg, rgba(54, 31, 12, .72), rgba(54, 31, 12, .18)), url("/wp-content/uploads/2026/07/villa-europa-43.webp") !important;
    background-position: center 58% !important;
    background-size: cover !important;
}

.ve-booking-page-hero .et_pb_row,
.ve-booking-page-engine .et_pb_row {
    width: calc(100% - 40px) !important;
    max-width: 1180px !important;
}

.ve-booking-page-heading {
    max-width: 760px;
}

.ve-booking-page-heading .ve-eyebrow,
.ve-booking-page-heading h1,
.ve-booking-page-heading p {
    color: #fff !important;
}

.ve-booking-page-heading h1 {
    padding: 14px 0 20px;
    font-family: var(--ve-serif);
    font-size: clamp(42px, 6vw, 76px);
    font-weight: 400;
    line-height: 1.08;
}

.ve-booking-page-heading p:last-child {
    max-width: 600px;
    font-family: var(--ve-sans);
    font-size: 16px;
    line-height: 1.75;
}

.ve-booking-page-engine {
    padding: clamp(60px, 8vw, 110px) 0 !important;
    background: #f2e4d2 !important;
}

.ve-booking-page-engine .ve-avaibook-frame,
.ve-booking-page-engine .ve-avaibook-frame iframe {
    min-height: 1080px;
}

@media (max-width: 640px) {
    .ve-booking-page-hero .et_pb_row,
    .ve-booking-page-engine .et_pb_row {
        width: calc(100% - 24px) !important;
    }

    .ve-booking-page-heading h1 { font-size: 44px; }
    .ve-booking-page-engine .ve-avaibook-frame,
    .ve-booking-page-engine .ve-avaibook-frame iframe { min-height: 1200px; }
}

.ve-gallery-page-hero {
    background-image: linear-gradient(90deg, rgba(8, 12, 12, 0.7), rgba(8, 12, 12, 0.12)), url("/wp-content/uploads/2026/07/villa-europa-43.webp");
    background-position: center 54%;
    background-size: cover;
    min-height: clamp(440px, 62vh, 680px);
    padding: clamp(170px, 24vh, 270px) 0 90px !important;
}

.ve-gallery-page-hero .et_pb_row {
    max-width: 1220px;
    width: calc(100% - 40px);
}

.ve-gallery-page-heading {
    max-width: 720px;
}

.ve-gallery-page-heading .ve-eyebrow {
    color: #f2eadb;
    font-weight: 300;
}

.ve-gallery-page-heading h1 {
    color: #fff;
    font-family: var(--ve-serif);
    font-size: clamp(34px, 5vw, 68px);
    font-weight: 400;
    line-height: 1.08;
    padding: 16px 0 22px;
}

.ve-gallery-page-heading p:last-child {
    color: rgba(255, 255, 255, 0.86);
    font-size: 14px;
    line-height: 1.8;
    max-width: 580px;
}

.ve-gallery-page-content {
    background: var(--ve-paper);
    padding: clamp(64px, 8vw, 120px) 20px !important;
}

.ve-gallery-grid {
    display: grid;
    gap: clamp(10px, 1.3vw, 20px);
    grid-auto-flow: dense;
    grid-auto-rows: clamp(180px, 18vw, 290px);
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ve-gallery-grid__item {
    background: #d8d3c8;
    display: block;
    overflow: hidden;
    position: relative;
}

.ve-gallery-grid__item:nth-child(9n + 1),
.ve-gallery-grid__item:nth-child(9n + 6) {
    grid-column: span 2;
    grid-row: span 2;
}

body.ve-gallery-page #main-content .ve-gallery-grid__item img {
    border-radius: 0;
    box-shadow: none;
    height: 100%;
    object-fit: cover;
    transition: filter 500ms ease, transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
    width: 100%;
}

.ve-gallery-grid__item::after {
    border: 1px solid rgba(255, 255, 255, 0.5);
    content: "+";
    color: #fff;
    display: grid;
    font: 300 25px/1 var(--ve-sans);
    height: 46px;
    opacity: 0;
    place-items: center;
    position: absolute;
    right: 20px;
    top: 20px;
    transform: translateY(8px);
    transition: opacity 300ms ease, transform 300ms ease;
    width: 46px;
}

.ve-gallery-grid__item:hover img,
.ve-gallery-grid__item:focus-visible img {
    filter: brightness(0.78);
    transform: scale(1.025);
}

.ve-gallery-grid__item:hover::after,
.ve-gallery-grid__item:focus-visible::after {
    opacity: 1;
    transform: translateY(0);
}

.ve-lightbox {
    background: transparent;
    border: 0;
    height: 100%;
    margin: auto;
    max-height: none;
    max-width: none;
    padding: 54px 76px 42px;
    width: 100%;
}

.ve-lightbox::backdrop {
    background: rgba(10, 11, 9, 0.94);
    backdrop-filter: blur(5px);
}

.ve-lightbox figure {
    align-items: center;
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: center;
    margin: 0;
}

body.ve-gallery-page #main-content .ve-lightbox img {
    border-radius: 0;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.4);
    max-height: calc(100vh - 125px);
    max-width: min(1280px, 100%);
    object-fit: contain;
}

.ve-lightbox figcaption {
    color: rgba(255, 255, 255, 0.72);
    font-size: 12px;
    letter-spacing: 0.08em;
    min-height: 24px;
    padding-top: 12px;
    text-transform: uppercase;
}

.ve-lightbox__close,
.ve-lightbox__nav {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.42);
    color: #fff;
    cursor: pointer;
    position: fixed;
    z-index: 2;
}

.ve-lightbox__close {
    font: 300 34px/1 var(--ve-sans);
    height: 48px;
    right: 24px;
    top: 20px;
    width: 48px;
}

.ve-lightbox__nav {
    font: 300 48px/1 var(--ve-serif);
    height: 64px;
    top: calc(50% - 32px);
    width: 48px;
}

.ve-lightbox__nav--prev {
    left: 18px;
}

.ve-lightbox__nav--next {
    right: 18px;
}

html.ve-lightbox-open {
    overflow: hidden;
}

/* Contact page */
.ve-contact-page-hero {
    background-image: linear-gradient(90deg, rgba(54, 31, 12, 0.66), rgba(54, 31, 12, 0.12)), url("/wp-content/uploads/2026/07/villa-europa-03.webp");
    background-position: center 54%;
    background-size: cover;
    min-height: clamp(420px, 58vh, 640px);
    padding: clamp(160px, 22vh, 250px) 0 80px !important;
}

.ve-contact-page-hero .et_pb_row,
.ve-contact-page-content .et_pb_row {
    max-width: 1220px;
    width: calc(100% - 40px);
}

.ve-contact-page-heading {
    max-width: 720px;
}

.ve-contact-page-heading .ve-eyebrow {
    color: #f2eadb;
    font-weight: 300;
}

.ve-contact-page-heading h1 {
    color: #fff;
    font-family: var(--ve-serif);
    font-size: clamp(34px, 5vw, 68px);
    font-weight: 400;
    line-height: 1.08;
    padding: 16px 0 22px;
}

.ve-contact-page-heading p:last-child {
    color: rgba(255, 255, 255, 0.86);
    font-size: 14px;
    line-height: 1.8;
    max-width: 580px;
}

.ve-contact-page-content {
    background: var(--ve-paper);
    color: #4b2f18;
    padding: clamp(70px, 9vw, 130px) 0 !important;
}

.ve-contact-page-grid {
    display: grid;
    gap: clamp(48px, 8vw, 110px);
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
}

.ve-contact-page-details,
.ve-contact-page-form {
    min-width: 0;
}

.ve-contact-page-details h2,
.ve-contact-page-form h2,
.ve-contact-page-map h2 {
    color: #4b2f18;
    font-family: var(--ve-serif);
    font-size: 30px;
    font-weight: 400;
    line-height: 1.25;
    padding: 12px 0 30px;
}

.ve-contact-page-details dl {
    margin: 0;
}

.ve-contact-page-details dl > div {
    border-top: 1px solid var(--ve-line);
    display: grid;
    gap: 18px;
    grid-template-columns: 120px 1fr;
    padding: 20px 0;
}

.ve-contact-page-details dt {
    color: #c17d00;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ve-contact-page-details dd {
    color: #4b2f18;
    font-family: var(--ve-sans);
    font-size: 14px;
    line-height: 1.7;
    margin: 0;
}

.ve-contact-page-details a {
    color: inherit;
}

.ve-instagram-link {
    align-items: center;
    border-top: 1px solid var(--ve-line);
    color: #4b2f18;
    display: flex;
    gap: 16px;
    padding: 24px 0;
}

.ve-instagram-link svg {
    fill: none;
    height: 34px;
    stroke: #c17d00;
    stroke-width: 1.5;
    width: 34px;
}

.ve-instagram-link span {
    font-size: 14px;
    font-weight: 500;
}

.ve-instagram-link small {
    display: block;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.1em;
    margin-bottom: 3px;
    text-transform: uppercase;
}

.ve-contact-page-form {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 20px 55px rgba(35, 31, 24, 0.09);
    padding: clamp(30px, 4vw, 56px);
}

.ve-contact-page-content .ve-contact-form label {
    color: #4b2f18;
}

.ve-contact-page-content .ve-contact-form input,
.ve-contact-page-content .ve-contact-form textarea {
    border-radius: 10px;
    color: #4b2f18;
}

.ve-contact-page-content .ve-contact-form button {
    background: #c17d00;
    border-radius: 10px;
    color: #fff;
    transition: background-color 220ms ease, transform 220ms ease;
}

.ve-contact-page-content .ve-contact-form button:hover,
.ve-contact-page-content .ve-contact-form button:focus-visible {
    background: #9d6500;
    transform: translateY(-2px);
}

.ve-contact-page-form .ve-contact-form p {
    margin-bottom: 20px;
}

.ve-contact-page-map {
    border-top: 1px solid var(--ve-line);
    margin-top: clamp(70px, 9vw, 120px);
    padding-top: clamp(55px, 7vw, 90px);
}

.ve-contact-page-map .ve-map,
.ve-contact-page-map iframe {
    display: block;
    height: clamp(380px, 52vw, 620px);
    width: 100%;
}

.ve-whatsapp-float {
    align-items: center;
    background: #25d366;
    border: 2px solid rgba(255, 255, 255, 0.92);
    border-radius: 50%;
    bottom: 24px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.24);
    display: flex;
    height: 62px;
    justify-content: center;
    position: fixed;
    right: 24px;
    transition: transform 220ms ease, box-shadow 220ms ease;
    width: 62px;
    z-index: 99999;
}

.ve-whatsapp-float:hover,
.ve-whatsapp-float:focus-visible {
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.3);
    transform: translateY(-3px);
}

.ve-whatsapp-float svg {
    fill: none;
    height: 34px;
    stroke: #fff;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
    width: 34px;
}

@media (max-width: 980px) {
    .ve-contact-page-grid {
        grid-template-columns: 1fr;
    }

    .ve-gallery-grid {
        grid-auto-rows: clamp(170px, 30vw, 260px);
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ve-gallery-grid__item:nth-child(9n + 1),
    .ve-gallery-grid__item:nth-child(9n + 6) {
        grid-column: span 2;
        grid-row: span 1;
    }
}

@media (max-width: 640px) {
    .ve-contact-page-hero {
        min-height: 500px;
        padding-bottom: 62px !important;
    }

    .ve-contact-page-details dl > div {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .ve-whatsapp-float {
        bottom: 16px;
        height: 56px;
        right: 16px;
        width: 56px;
    }

    .ve-gallery-page-hero {
        min-height: 520px;
        padding-bottom: 64px !important;
    }

    .ve-gallery-grid {
        display: block;
    }

    .ve-gallery-grid__item {
        height: 68vw;
        margin-bottom: 12px;
    }

    .ve-lightbox {
        padding: 66px 16px 60px;
    }

    .ve-lightbox__nav {
        bottom: 10px;
        top: auto;
    }
}

/* Full-width island care split: copy and icon on the left, Papagayo on the right. */
body.ve-home-page #page-container #main-content .ve-island-care {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    background-color: #c17d00 !important;
    background-image: url("/wp-content/uploads/2026/07/playa-papagayo-lanzarote-villa-europa.png") !important;
    background-position: right center !important;
    background-repeat: no-repeat !important;
    background-size: 50% 100% !important;
    margin: 100px calc(50% - 50vw) 0 !important;
    max-width: none !important;
    padding: 0 !important;
    width: 100vw !important;
}

body.ve-home-page #page-container #main-content .ve-island-care::after {
    display: block;
    clear: none !important;
    height: auto !important;
    min-height: 540px;
    background: transparent !important;
    content: "";
    visibility: visible !important;
}

body.ve-home-page #page-container #main-content .ve-island-care > .et_pb_column {
    display: flex !important;
    float: none !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: clamp(58px, 8vw, 120px) clamp(32px, 7vw, 110px) !important;
    width: 100% !important;
}

body.ve-home-page #page-container #main-content .ve-island-care .et_pb_icon {
    margin: 0 auto 22px !important;
    order: 0;
}

body.ve-home-page #page-container #main-content .ve-island-care .et_pb_text {
    margin: 0 auto !important;
    max-width: 560px !important;
    order: 1;
    padding: 0 !important;
    width: 100% !important;
}

body.ve-home-page #page-container #main-content .ve-island-care p {
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
}

body.ve-home-page #page-container #main-content .ve-island-care .et_pb_icon::after {
    display: none !important;
}

/* One visual language for every direct-booking CTA. */
body.ve-home-page #page-container #main-content .ve-outdoor-cta__button,
body.ve-home-page #page-container #main-content .ve-digital-guide-button.et_pb_button,
body.ve-home-page #page-container #main-content .ve-digital-guide-button .et_pb_button,
body.ve-home-page #page-container #main-content .ve-retreats-button.et_pb_button,
body.ve-home-page #page-container #main-content .ve-retreats-button .et_pb_button,
body.ve-home-page #page-container #main-content .ve-gallery-home-button.et_pb_button,
body.ve-home-page #page-container #main-content .ve-gallery-home-button .et_pb_button,
body.ve-home-page #page-container #main-content .ve-booking-final-button.et_pb_button,
body.ve-home-page #page-container #main-content .ve-booking-final-button .et_pb_button {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 190px !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 13px 20px !important;
    color: #fff !important;
    background: #c17d00 !important;
    border: 2px solid #c17d00 !important;
    border-radius: 10px !important;
    font-family: "Montserrat", Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .12em !important;
    text-align: center;
    text-transform: uppercase;
}

/* Preserve each section's colour treatment while sharing one button geometry. */
body.ve-home-page #page-container #main-content .ve-retreats-button.et_pb_button,
body.ve-home-page #page-container #main-content .ve-retreats-button .et_pb_button,
body.ve-home-page #page-container #main-content .ve-booking-final-button.et_pb_button,
body.ve-home-page #page-container #main-content .ve-booking-final-button .et_pb_button {
    background: rgba(255, 255, 255, 0.08) !important;
    border-color: #fff !important;
}

body.ve-home-page #page-container #main-content .ve-gallery-home-button.et_pb_button,
body.ve-home-page #page-container #main-content .ve-gallery-home-button .et_pb_button {
    color: #c17d00 !important;
    background: #fff !important;
    border-color: #fff !important;
    padding: 13px 20px !important;
}

body.ve-home-page #page-container #main-content .ve-gallery-home-button.et_pb_button::after,
body.ve-home-page #page-container #main-content .ve-gallery-home-button .et_pb_button::after {
    display: inline-block !important;
    position: static !important;
    margin: 0 0 0 8px !important;
    content: "\35" !important;
    font-family: "ETmodules" !important;
    font-size: 16px !important;
    line-height: 1 !important;
    opacity: 0 !important;
    transform: translateX(-5px);
    transition: opacity .2s ease, transform .2s ease !important;
    vertical-align: middle;
}

body.ve-home-page #page-container #main-content .ve-gallery-home-button.et_pb_button:hover::after,
body.ve-home-page #page-container #main-content .ve-gallery-home-button.et_pb_button:focus-visible::after,
body.ve-home-page #page-container #main-content .ve-gallery-home-button .et_pb_button:hover::after,
body.ve-home-page #page-container #main-content .ve-gallery-home-button .et_pb_button:focus-visible::after {
    opacity: 1 !important;
    transform: translateX(0);
}

body.ve-home-page #page-container #main-content .ve-outdoor-cta__button:hover,
body.ve-home-page #page-container #main-content .ve-outdoor-cta__button:focus-visible,
body.ve-home-page #page-container #main-content .ve-digital-guide-button.et_pb_button:hover,
body.ve-home-page #page-container #main-content .ve-digital-guide-button.et_pb_button:focus-visible {
    color: #fff !important;
    background: #9d6500 !important;
    border-color: #9d6500 !important;
}

body.ve-home-page #page-container #main-content .ve-digital-guide-button {
    margin-top: 24px !important;
    text-align: center !important;
}

@media (max-width: 980px) {
    body.ve-home-page #page-container #main-content .ve-island-care {
        grid-template-columns: 1fr;
        background-position: center bottom !important;
        background-size: 100% auto !important;
        margin-top: 72px !important;
        width: 100vw !important;
    }

    body.ve-home-page #page-container #main-content .ve-island-care::after {
        min-height: clamp(340px, 62vw, 520px);
    }

    body.ve-home-page #page-container #main-content .ve-island-care > .et_pb_column {
        padding: 60px 28px !important;
    }
}

/* Cookie consent */
.ve-cookie-banner,
.ve-cookie-panel,
.ve-cookie-manage,
.ve-external-content {
    font-family: "Montserrat", sans-serif;
}

.ve-cookie-banner[hidden],
.ve-cookie-overlay[hidden],
.ve-cookie-manage[hidden] {
    display: none !important;
}

.ve-cookie-banner {
    position: fixed;
    z-index: 100000;
    right: 24px;
    bottom: 24px;
    left: 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    align-items: center;
    max-width: 1180px;
    margin: auto;
    padding: 25px 28px;
    color: #3d2b1f;
    background: #f2e4d2;
    border: 1px solid rgba(114, 64, 0, .2);
    border-radius: 10px;
    box-shadow: 0 12px 45px rgba(61, 43, 31, .22);
}

.ve-cookie-banner h2,
.ve-cookie-panel h2 {
    margin: 0 0 8px;
    color: #724000;
    font-family: "Libre Baskerville", serif;
    font-size: clamp(22px, 2vw, 28px);
    line-height: 1.25;
}

.ve-cookie-banner p,
.ve-cookie-panel p {
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
}

.ve-cookie-banner a,
.ve-cookie-panel a {
    color: #724000;
    font-weight: 600;
    text-decoration: underline;
}

.ve-cookie-actions {
    display: flex;
    gap: 10px;
    align-items: stretch;
}

.ve-cookie-actions button,
.ve-external-content button {
    min-width: 118px;
    padding: 12px 16px;
    color: #fff;
    background: #724000;
    border: 2px solid #724000;
    border-radius: 0;
    font: 600 12px/1.2 "Montserrat", sans-serif;
    letter-spacing: .06em;
    cursor: pointer;
}

.ve-cookie-actions .ve-cookie-button--secondary {
    color: #724000;
    background: transparent;
}

.ve-cookie-actions button:focus-visible,
.ve-cookie-manage:focus-visible,
.ve-external-content button:focus-visible {
    outline: 3px solid #d47b00;
    outline-offset: 3px;
}

.ve-cookie-overlay {
    position: fixed;
    z-index: 100001;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(35, 25, 18, .55);
}

.ve-cookie-panel {
    width: min(650px, 100%);
    max-height: min(720px, calc(100vh - 40px));
    overflow: auto;
    padding: clamp(24px, 5vw, 44px);
    color: #3d2b1f;
    background: #fffaf4;
    border-radius: 10px;
    box-shadow: 0 18px 60px rgba(0, 0, 0, .28);
}

.ve-cookie-panel__back {
    margin: 0 0 22px;
    padding: 0;
    color: #724000;
    background: none;
    border: 0;
    font: 600 13px "Montserrat", sans-serif;
    cursor: pointer;
}

.ve-cookie-choice {
    display: flex;
    gap: 24px;
    align-items: center;
    justify-content: space-between;
    margin: 22px 0;
    padding: 18px 0;
    color: #3d2b1f;
    border-top: 1px solid rgba(114, 64, 0, .2);
}

.ve-cookie-choice strong { color: #724000; font-size: 16px; }
.ve-cookie-choice > span { flex: none; color: #724000; font-size: 12px; font-weight: 700; }
.ve-cookie-choice input { width: 44px; height: 24px; accent-color: #d47b00; }
.ve-cookie-panel .ve-cookie-actions { margin-top: 28px; }

.ve-cookie-manage {
    position: fixed;
    z-index: 99998;
    bottom: 14px;
    left: 14px;
    padding: 9px 12px;
    color: #fff;
    background: #724000;
    border: 0;
    border-radius: 4px;
    font-size: 11px;
    cursor: pointer;
}

.ve-external-content {
    display: grid;
    place-items: center;
    min-height: 360px;
    padding: 28px;
    text-align: center;
    color: #3d2b1f;
    background: #f2e4d2;
}

.ve-external-content.is-loaded { display: block; min-height: 0; padding: 0; }
.ve-external-content iframe { width: 100%; height: 100%; min-height: 360px; border: 0; }
.ve-external-content strong { color: #724000; font: 24px/1.3 "Libre Baskerville", serif; }
.ve-external-content p { margin: 10px 0 18px; }

.ve-avaibook-booking {
    padding: clamp(72px, 9vw, 120px) 0 !important;
    background: #f2e4d2 !important;
}

.ve-avaibook-booking > .et_pb_row {
    max-width: 1180px !important;
    width: calc(100% - 40px) !important;
}

.ve-avaibook-heading {
    margin: 0 auto 38px !important;
    max-width: 880px;
    text-align: center;
}

.ve-avaibook-heading h2 {
    color: #724000;
    font-family: var(--ve-serif);
    font-size: clamp(34px, 5vw, 62px);
    line-height: 1.12;
}

.ve-avaibook-heading p {
    margin: 18px auto 0;
    max-width: 720px;
    font-family: var(--ve-sans);
    font-size: 16px;
    line-height: 1.75;
}

.ve-avaibook-frame,
.ve-avaibook-frame iframe {
    min-height: 920px;
    background: #fff;
    border-radius: 10px;
}

@media (max-width: 640px) {
    .ve-avaibook-booking > .et_pb_row { width: calc(100% - 24px) !important; }
    .ve-avaibook-frame,
    .ve-avaibook-frame iframe { min-height: 1080px; }
}

.ve-cookie-policy {
    max-width: 900px;
    margin: 80px auto;
    padding: 0 28px;
    color: #3d2b1f;
    font: 16px/1.8 "Montserrat", sans-serif;
}
.ve-cookie-policy h1,
.ve-cookie-policy h2,
.ve-cookie-policy h3 { color: #724000; font-family: "Libre Baskerville", serif; }
.ve-cookie-policy h1 { font-size: clamp(38px, 6vw, 72px); line-height: 1.1; }
.ve-cookie-policy h2 { margin-top: 42px; font-size: 28px; }
.ve-cookie-policy h3 { margin-top: 26px; font-size: 20px; }
.ve-cookie-policy .ve-kicker { color: #d47b00; font-size: 13px; font-weight: 600; letter-spacing: .18em; }

.ve-contact-license {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) minmax(0, 1fr);
    gap: 18px;
    max-width: 420px;
    margin: 18px 0;
    font-family: "Montserrat", sans-serif;
}

.ve-contact-license dt {
    color: #c17d00;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ve-contact-license dd {
    margin: 0;
    color: #4b2f18;
    font-size: 14px;
}

body.ve-home-page .ve-contact-license dt,
body.ve-home-page .ve-contact-license dd {
    color: #fff;
}

body.ve-cookie-policy-page #main-content .container {
    width: 100%;
    max-width: none;
    padding-top: 0;
}

body.ve-cookie-policy-page #main-content .container::before {
    display: none;
}

body.ve-cookie-policy-page #left-area {
    float: none;
    width: 100%;
    padding: 0;
}

body.ve-cookie-policy-page #sidebar {
    display: none;
}

body.ve-cookie-policy-page #footer-widgets {
    display: none;
}

.ve-site-credits {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: center;
    justify-content: center;
    padding: 18px clamp(24px, 5vw, 72px);
    color: #f2e4d2;
    background: #3d2b1f;
    font: 400 12px/1.5 "Montserrat", sans-serif;
    letter-spacing: .03em;
}

.ve-site-credits__legal,
.ve-site-credits__signature {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px 22px;
    text-align: center;
}

.ve-site-credits__legal a {
    font-size: 11px;
}

.ve-site-credits a {
    color: #fff;
    text-decoration: none;
}

.ve-site-credits a:hover,
.ve-site-credits a:focus-visible {
    color: #d47b00;
}

.ve-site-credits__instagram {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ve-site-credits__instagram svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
}

body #footer-info {
    display: none;
}

@media (max-width: 800px) {
    .ve-cookie-banner { grid-template-columns: 1fr; gap: 18px; right: 12px; bottom: 12px; left: 12px; padding: 22px; }
    .ve-cookie-actions { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; }
    .ve-cookie-actions button { min-width: 0; padding-right: 8px; padding-left: 8px; }
}

@media (max-width: 480px) {
    .ve-cookie-actions { grid-template-columns: 1fr; }
    .ve-cookie-banner { max-height: calc(100svh - 24px); overflow: auto; }
    .ve-cookie-choice { align-items: flex-start; }
    .ve-site-credits { flex-direction: column; gap: 12px; text-align: center; }
    .ve-site-credits__legal { flex-direction: column; gap: 9px; }
}

/* Legal pages */
body.ve-legal-page #main-header {
    background: rgba(247, 243, 234, 0.98);
    box-shadow: 0 8px 30px rgba(27, 29, 24, 0.08);
}

body.ve-legal-page #main-header .container {
    max-width: none;
    padding-inline: clamp(20px, 4vw, 56px);
    width: 100%;
}

body.ve-legal-page #main-header #logo {
    border-radius: 50%;
    max-height: 56px;
}

body.ve-legal-page #top-menu > li > a {
    color: var(--ve-ink);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.ve-legal-page #et_top_search,
body.ve-legal-page #main-footer,
body.ve-legal-page #sidebar,
body.ve-legal-page #footer-widgets {
    display: none !important;
}

body.ve-legal-page #main-content .container {
    max-width: none;
    padding-top: 0;
    width: 100%;
}

body.ve-legal-page #main-content .container::before {
    display: none;
}

body.ve-legal-page #left-area {
    float: none;
    padding: 0;
    width: 100%;
}

.ve-legal-document {
    box-sizing: border-box;
    max-width: 960px;
    margin: 0 auto;
    padding: clamp(150px, 17vw, 210px) 32px clamp(80px, 10vw, 130px);
    color: #3d2b1f;
    font: 16px/1.85 var(--ve-sans);
}

.ve-legal-document .ve-kicker {
    margin-bottom: 18px;
    color: #c17d00;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .18em;
}

.ve-legal-document h1,
.ve-legal-document h2,
.ve-legal-document h3 {
    color: #724000;
    font-family: var(--ve-serif);
    font-weight: 400;
}

.ve-legal-document h1 {
    max-width: 850px;
    padding-bottom: 18px;
    font-size: clamp(42px, 6vw, 72px);
    line-height: 1.1;
}

.ve-legal-document h2 {
    margin-top: 48px;
    padding-bottom: 14px;
    font-size: 29px;
    line-height: 1.25;
}

.ve-legal-document h3 {
    margin-top: 24px;
    padding-bottom: 8px;
    color: #c17d00;
    font-size: 20px;
}

.ve-legal-document p,
.ve-legal-document li {
    margin-bottom: 12px;
}

.ve-legal-document a,
.ve-form-legal a,
.ve-booking-terms-link a {
    color: #c17d00;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ve-legal-document ul {
    margin: 8px 0 24px;
    padding-left: 24px;
}

.ve-legal-updated {
    color: rgba(61, 43, 31, .66);
    font-size: 13px;
}

.ve-legal-data {
    margin-top: 24px;
}

.ve-legal-data > div {
    display: grid;
    grid-template-columns: minmax(150px, .4fr) 1fr;
    gap: 24px;
    padding: 13px 0;
    border-top: 1px solid var(--ve-line);
}

.ve-legal-data dt {
    color: #724000;
    font-weight: 600;
}

.ve-legal-data dd {
    margin: 0;
}

.ve-form-legal {
    margin-top: 18px !important;
    font-size: 12px !important;
    line-height: 1.65 !important;
}

.ve-booking-terms-link {
    margin-top: 16px !important;
    font-size: 13px !important;
}

@media (max-width: 980px) {
    .ve-legal-document {
        max-width: 820px;
        padding-right: 28px;
        padding-left: 28px;
    }
}

@media (max-width: 767px) {
    .ve-legal-document {
        padding: 125px 18px 72px;
        font-size: 15px;
        line-height: 1.75;
    }

    .ve-legal-document h1 {
        font-size: 50px;
    }

    .ve-legal-document h2 {
        margin-top: 38px;
        font-size: 25px;
    }

    .ve-legal-data > div {
        grid-template-columns: 1fr;
        gap: 3px;
    }
}

/* Requested August 2026 layout refinements. */
.ve-hero__copy::before {
    background-image: url("assets/images/villa-europa-wordmark-light.png") !important;
    background-size: contain !important;
    filter: none !important;
    height: clamp(120px, 18vw, 210px) !important;
    mix-blend-mode: normal !important;
    width: clamp(230px, 34vw, 390px) !important;
}

.ve-outdoor-background {
    margin-top: 0 !important;
}

.ve-outdoor-background .ve-heading,
.ve-outdoor-background .ve-heading .et_pb_text_inner,
.ve-outdoor-list,
.ve-outdoor-list .et_pb_text_inner {
    text-align: center !important;
}

.ve-outdoor-list {
    background: #fff !important;
    border-radius: 10px !important;
    border-top: 0 !important;
    font-family: "Montserrat", sans-serif !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 820px;
    padding-left: clamp(40px, 10vw, 130px) !important;
    padding-right: clamp(40px, 10vw, 130px) !important;
}

.ve-outdoor-list h3 {
    font-family: "Montserrat", sans-serif !important;
    font-size: 18px !important;
    margin: 15px 0 0 !important;
    padding-left: 20px;
    position: relative;
}

.ve-outdoor-list h3::before {
    content: none !important;
}

.ve-outdoor-cta {
    margin-top: 36px;
    text-align: center;
}

.ve-outdoor-cta h4 {
    margin: 0 0 20px !important;
    padding: 0 !important;
    color: #c17d00 !important;
    font-family: "Libre Baskerville", Georgia, serif !important;
    font-size: 22px !important;
    font-style: italic !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
}

.ve-outdoor-cta__button {
    display: inline-block;
    padding: 14px 24px;
    color: #fff !important;
    background: #c17d00;
    border: 2px solid #c17d00;
    border-radius: 10px;
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: background-color .2s ease, border-color .2s ease;
}

.ve-outdoor-cta__button:hover,
.ve-outdoor-cta__button:focus-visible {
    color: #fff !important;
    background: #9d6500;
    border-color: #9d6500;
}

.ve-philosophy-card {
    border-top: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 1100px;
    padding-left: clamp(44px, 17vw, 267px) !important;
    padding-right: clamp(44px, 17vw, 267px) !important;
    text-align: center !important;
}

.ve-villa-floors {
    position: relative;
}

.ve-villa-floors::after {
    background: rgba(255, 255, 255, 0.32);
    bottom: 70px;
    content: "";
    left: 50%;
    position: absolute;
    top: 0;
    width: 1px;
}

.ve-extra-services-row,
.ve-extra-services-image,
.ve-extra-services-image .et_pb_image_wrap,
.ve-extra-services-image img {
    border-radius: 0 !important;
}

.ve-experiences > .et_pb_row:first-child {
    display: block;
}

.ve-experiences > .et_pb_row:first-child > .et_pb_column {
    float: none;
    margin: 0 !important;
    width: 100% !important;
}

.ve-experiences .ve-heading,
.ve-experiences .ve-heading .et_pb_text_inner {
    text-align: center !important;
}

.ve-experiences .ve-feature-stack .et_pb_text_inner {
    display: grid;
    gap: clamp(24px, 5vw, 70px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 36px;
}

.ve-experiences .ve-feature-card {
    margin: 0 !important;
    text-align: center;
}

.ve-experiences .ve-book-ahead {
    grid-column: 1 / -1;
    text-align: center;
}

.ve-island-care {
    margin-top: 130px !important;
}

.ve-island-care,
.ve-island-care p,
.ve-island-care span,
.ve-island-care .et_pb_text_inner {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

@media (max-width: 980px) {
    .ve-villa-floors::after {
        display: none;
    }

    .ve-experiences .ve-feature-stack .et_pb_text_inner {
        grid-template-columns: 1fr;
    }

    .ve-experiences .ve-book-ahead {
        grid-column: auto;
    }

    .ve-outdoor-list,
    .ve-philosophy-card {
        box-sizing: border-box !important;
        max-width: 100% !important;
        padding-left: 32px !important;
        padding-right: 32px !important;
        width: 100% !important;
    }
}

.ve-digital-guide {
    background-color: var(--ve-paper) !important;
    background-image: linear-gradient(rgba(247, 243, 234, 0.91), rgba(247, 243, 234, 0.91)), url("/wp-content/uploads/2026/07/graficamap-1080x615.jpg") !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    padding: clamp(72px, 9vw, 120px) 0 !important;
}

.ve-digital-guide-title,
.ve-digital-guide-title .et_pb_text_inner {
    text-align: center !important;
}

.ve-digital-guide-title h2 {
    color: #724000 !important;
    font-family: var(--ve-serif) !important;
    font-size: clamp(34px, 5vw, 62px) !important;
    font-weight: 400;
}

.ve-digital-guide-title .ve-eyebrow {
    color: #724000 !important;
    font-family: "Montserrat", Arial, sans-serif !important;
    font-size: 13px !important;
    letter-spacing: 0.14em;
    margin-bottom: 16px;
}

.ve-digital-guide-copy .ve-guide-gift {
    color: #c17d00 !important;
    font-family: "Libre Baskerville", Georgia, serif !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    line-height: 1.4 !important;
    margin: 0 0 18px !important;
}

.ve-digital-guide-row {
    align-items: center;
    display: flex;
    margin-top: 40px;
    max-width: 1180px !important;
}

.ve-digital-guide-copy {
    color: rgba(27, 29, 24, 0.76);
    font-size: 18px;
    line-height: 1.8;
    padding: clamp(24px, 5vw, 68px) !important;
}

.ve-digital-guide-image,
.ve-digital-guide-image .et_pb_image_wrap,
.ve-digital-guide-image img {
    border-radius: 10px !important;
    display: block;
    width: 100%;
}

.ve-digital-guide-image img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.ve-digital-guide-button {
    margin-top: 34px;
    text-align: center;
}

.ve-digital-guide-button .et_pb_button {
    background: #c17d00 !important;
    border-color: #c17d00 !important;
    border-radius: 0 !important;
    color: #fff !important;
    font-family: var(--ve-sans) !important;
}

@media (max-width: 980px) {
    .ve-digital-guide-row {
        display: block;
    }

    .ve-digital-guide-row > .et_pb_column {
        margin-bottom: 28px !important;
        width: 100% !important;
    }

    .ve-digital-guide-copy {
        padding: 10px 24px 28px !important;
        text-align: center;
    }
}

@media (max-width: 980px) {
    body.ve-home-page #page-container #et-main-area #main-content .ve-hero.et_pb_section {
        background-position: 38% center !important;
        background-size: cover !important;
    }

    body.ve-home-page #main-header {
        background: rgba(247, 243, 234, 0.96);
    }

    body.ve-home-page #main-header .logo_container a {
        color: var(--ve-ink);
    }

    .ve-booking-strip {
        margin-top: 0;
        padding: 0 !important;
    }

    .ve-booking-row {
        width: 100% !important;
    }

    .ve-booking-row .et_pb_column {
        border-bottom: 1px solid var(--ve-line);
        border-right: 0;
    }

    .ve-season > .et_pb_row {
        display: grid;
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .ve-season > .et_pb_row > .et_pb_column:first-child {
        height: clamp(420px, 78vw, 620px);
        min-height: 0;
    }

    .ve-season > .et_pb_row > .et_pb_column:first-child::after {
        background: linear-gradient(180deg, rgba(114, 64, 0, 0) 48%, #724000 100%);
    }

    .ve-season-copy {
        margin: 0 auto;
        padding: 48px 28px 72px;
    }

    .ve-lead {
        padding-top: 0;
    }

    .ve-villa-floors {
        display: block;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    .ve-villa-floors .et_pb_column {
        flex: none;
        width: 100% !important;
    }

    .ve-villa-floors .et_pb_column:last-child {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.32);
        margin-top: 38px !important;
        padding-left: 0;
        padding-top: 38px;
    }

    .ve-floor .et_pb_text_inner {
        grid-template-columns: 1fr;
    }

    .ve-booking-final .et_pb_row {
        display: block;
    }

    .ve-photo-strip-grid {
        grid-template-columns: 1fr;
    }

    .ve-photo-strip-grid img {
        height: 56vw;
        min-height: 260px;
    }
}

@media (max-width: 640px) {
    .ve-hero,
    .ve-hero .header-content-container,
    .ve-hero__row {
        min-height: 88svh;
    }

    .ve-feature-card,
    .ve-booking-card {
        padding: 24px;
    }

    .ve-services-list ul {
        columns: 1;
    }
}

/* Responsive typography and readable centred copy. These selectors are kept
   deliberately specific so they override Divi's page-level generated CSS. */
@media (max-width: 980px) {
    body.ve-home-page #page-container #main-content .et_builder_inner_content h1,
    body.ve-home-page #page-container #main-content .ve-heading h2,
    body.ve-home-page #page-container #main-content .ve-digital-guide-title h2,
    body.ve-home-page #page-container #main-content .ve-retreats-copy h2 {
        font-size: 60px !important;
        line-height: 1.12 !important;
        overflow-wrap: anywhere;
    }

    body.ve-home-page #page-container #main-content .ve-philosophy-card,
    body.ve-home-page #page-container #main-content .ve-island-care {
        box-sizing: border-box !important;
        margin-right: auto !important;
        margin-left: auto !important;
        max-width: 100% !important;
        padding-right: 40px !important;
        padding-left: 40px !important;
        width: calc(100% - 48px) !important;
    }

    body.ve-home-page #page-container #main-content .ve-philosophy-card .et_pb_text_inner,
    body.ve-home-page #page-container #main-content .ve-island-care .et_pb_column,
    body.ve-home-page #page-container #main-content .ve-island-care .et_pb_text,
    body.ve-home-page #page-container #main-content .ve-island-care .et_pb_text_inner,
    body.ve-home-page #page-container #main-content .ve-island-care p {
        box-sizing: border-box !important;
        margin-right: auto !important;
        margin-left: auto !important;
        max-width: 760px !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
        width: 100% !important;
    }

    body.ve-home-page #page-container #main-content .ve-philosophy-card p,
    body.ve-home-page #page-container #main-content .ve-island-care p {
        font-size: 16px !important;
        line-height: 1.75 !important;
        hyphens: none !important;
        overflow-wrap: normal !important;
        white-space: normal !important;
        word-break: normal !important;
    }

    body.ve-home-page #page-container #main-content .ve-island-care {
        margin-top: 72px !important;
        padding-top: 52px !important;
        padding-bottom: 52px !important;
    }

    body.ve-home-page #page-container #main-content .ve-lead,
    body.ve-home-page #page-container #main-content .ve-lead .et_pb_text_inner,
    body.ve-home-page #page-container #main-content .ve-season-copy,
    body.ve-home-page #page-container #main-content .ve-retreats-copy,
    body.ve-home-page #page-container #main-content .ve-digital-guide-copy {
        box-sizing: border-box !important;
        margin-right: auto !important;
        margin-left: auto !important;
        max-width: 760px !important;
        padding-right: 24px !important;
        padding-left: 24px !important;
        width: 100% !important;
    }
}

@media (max-width: 640px) {
    body.ve-home-page #page-container #main-content .et_builder_inner_content h1,
    body.ve-home-page #page-container #main-content .ve-heading h2,
    body.ve-home-page #page-container #main-content .ve-digital-guide-title h2,
    body.ve-home-page #page-container #main-content .ve-retreats-copy h2 {
        font-size: 44px !important;
        line-height: 1.14 !important;
    }

    body.ve-home-page #page-container #main-content .ve-philosophy-card,
    body.ve-home-page #page-container #main-content .ve-island-care {
        padding-right: 22px !important;
        padding-left: 22px !important;
        width: calc(100% - 24px) !important;
    }

    body.ve-home-page #page-container #main-content .ve-philosophy-card p,
    body.ve-home-page #page-container #main-content .ve-island-care p {
        font-size: 15px !important;
        line-height: 1.7 !important;
    }
}

/* Keep the Papagayo split full-bleed after the general mobile readability rules. */
@media (max-width: 980px) {
    body.ve-home-page #page-container #main-content .ve-island-care {
        grid-template-columns: 1fr !important;
        margin: 72px calc(50% - 50vw) 0 !important;
        max-width: none !important;
        padding: 0 !important;
        width: 100vw !important;
    }

    body.ve-home-page #page-container #main-content .ve-island-care > .et_pb_column {
        margin: 0 !important;
        max-width: none !important;
        padding: 60px 28px !important;
        width: 100% !important;
    }
}

@media (max-width: 640px) {
    body.ve-home-page #page-container #main-content .ve-island-care > .et_pb_column {
        padding: 52px 22px !important;
    }
}

/* Final mobile pass: compact spacing, readable centred copy and stable header. */
@media (max-width: 767px) {
    body.ve-home-page #main-header .container {
        min-height: 64px !important;
        padding-right: 14px !important;
        padding-left: 14px !important;
    }

    body.ve-home-page #main-header .logo_container {
        left: 14px !important;
        height: 64px !important;
    }

    body.ve-home-page #main-header .logo_container a {
        flex: 0 0 58px !important;
        width: 58px !important;
        height: 58px !important;
        aspect-ratio: 1 / 1 !important;
        padding: 2px !important;
    }

    body.ve-home-page #main-header #logo {
        display: block !important;
        width: 54px !important;
        min-width: 54px !important;
        max-width: 54px !important;
        height: 54px !important;
        min-height: 54px !important;
        max-height: 54px !important;
        aspect-ratio: 1 / 1 !important;
        object-fit: contain !important;
    }

    #mobile_menu .ve-language-switcher,
    .et_mobile_menu .ve-language-switcher {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 7px !important;
        white-space: nowrap !important;
    }

    #mobile_menu .ve-language-switcher > a,
    #mobile_menu .ve-language-switcher > span,
    .et_mobile_menu .ve-language-switcher > a,
    .et_mobile_menu .ve-language-switcher > span {
        display: inline-block !important;
        width: auto !important;
        white-space: nowrap !important;
    }

    body.ve-home-page #page-container #main-content .et_builder_inner_content h1,
    body.ve-home-page #page-container #main-content .ve-heading h2,
    body.ve-home-page #page-container #main-content .ve-services-title h2,
    body.ve-home-page #page-container #main-content .ve-season-copy h2,
    body.ve-home-page #page-container #main-content .ve-digital-guide-title h2,
    body.ve-home-page #page-container #main-content .ve-retreats-copy h2,
    body.ve-booking-page #page-container #main-content .ve-booking-page-heading h1,
    body.ve-booking-page #page-container #main-content .ve-avaibook-heading h2,
    body.ve-gallery-page #page-container #main-content .ve-gallery-page-heading h1,
    body.ve-contact-page #page-container #main-content .ve-contact-page-heading h1,
    body.ve-cookie-policy-page #page-container #main-content .ve-cookie-policy h1 {
        font-size: 50px !important;
        line-height: 1.08 !important;
    }

    body.ve-home-page #page-container #main-content .ve-philosophy-card,
    body.ve-home-page #page-container #main-content .ve-lead,
    body.ve-home-page #page-container #main-content .ve-season-copy,
    body.ve-home-page #page-container #main-content .ve-retreats-copy,
    body.ve-home-page #page-container #main-content .ve-digital-guide-copy {
        box-sizing: border-box !important;
        margin-right: auto !important;
        margin-left: auto !important;
        max-width: none !important;
        padding-right: 16px !important;
        padding-left: 16px !important;
        width: 100% !important;
    }

    body.ve-home-page #page-container #main-content .ve-intro {
        padding-top: 48px !important;
        padding-bottom: 48px !important;
    }

    body.ve-home-page #page-container #main-content .ve-booking-strip + .ve-intro .ve-lead {
        padding-bottom: 0 !important;
    }

    body.ve-home-page #page-container #main-content .ve-island-care > .et_pb_column {
        padding: 44px 20px 24px !important;
    }

    body.ve-home-page #page-container #main-content .ve-digital-guide-row {
        display: flex !important;
        flex-direction: column !important;
    }

    body.ve-home-page #page-container #main-content .ve-digital-guide-row > .et_pb_column:first-child {
        order: 2;
    }

    body.ve-home-page #page-container #main-content .ve-digital-guide-row > .et_pb_column:last-child {
        order: 1;
    }

    body.ve-home-page #page-container #main-content .ve-digital-guide-copy {
        padding-top: 16px !important;
        padding-bottom: 18px !important;
    }

    body.ve-home-page #page-container #main-content .ve-faq-list {
        box-sizing: border-box;
        margin-right: 10px !important;
        margin-left: 10px !important;
    }

    body.ve-home-page #page-container #main-content .ve-faq-list details {
        padding-right: 8px !important;
        padding-left: 8px !important;
    }

    body.ve-home-page #page-container #et-main-area #main-content .ve-hero .ve-hero__copy {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
        text-align: center !important;
    }

    body.ve-home-page #page-container #et-main-area #main-content .ve-hero .ve-hero__copy .et_pb_text_inner {
        width: 100% !important;
        text-align: center !important;
    }

    body.ve-home-page #page-container #et-main-area #main-content .ve-hero .ve-hero__copy h1 {
        display: block !important;
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 420px !important;
        margin-right: auto !important;
        margin-left: auto !important;
        padding-right: 12px !important;
        padding-left: 12px !important;
        position: static;
        font-size: 42px !important;
        line-height: 1.12 !important;
        letter-spacing: -0.025em !important;
        hyphens: none !important;
        overflow-wrap: normal !important;
        text-align: center !important;
        text-wrap: balance;
        transform: none;
        white-space: normal !important;
        word-break: normal !important;
    }
}
