/*
 * style.css — Villa Azul Resort
 * Extracted from standalone bundle by extract.js
 */

/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_01.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_02.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_03.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_04.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_05.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_01.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_02.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_03.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_04.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_05.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_01.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_02.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_03.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_04.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_05.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_06.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_07.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_08.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_09.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_10.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_06.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_07.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_08.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_09.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_10.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_06.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_07.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_08.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_09.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_10.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/font_06.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/font_07.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/font_08.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/font_09.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/font_10.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_11.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_12.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_13.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_14.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/font_15.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_11.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_12.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_13.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_14.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/font_15.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/font_11.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/font_12.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/font_13.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/font_14.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/font_15.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_11.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_12.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_13.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_14.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/font_15.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ─────────────────────────────────────────────────────────── */

:root{
  --ink:    #0D1B2A;
  --ink-2:  #1C2E3E;
  --gold:   #C4A96B;
  --gold-lt:#DFC99A;
  --gold-dk:#9E8045;
  --white:  #FEFDFB;
  --off:    #FAF8F5;
  --off-2:  #F2EDE6;
  --muted:  #8A9BAA;
  --line:   rgba(13,27,42,0.1);
  --serif:  'Cormorant Garamond', Georgia, serif;
  --sans:   'Montserrat', sans-serif;
}

*,*::before,*::after {
  box-sizing:border-box;
  margin:0;
  padding:0}
html {
  scroll-behavior:smooth}
body {
  background:var(--white);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  overflow-x:hidden}
img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover}
::-webkit-scrollbar {
  width:3px}
::-webkit-scrollbar-track {
  background:var(--off)}
::-webkit-scrollbar-thumb {
  background:var(--gold)}

/* ─── NAV ─── */
nav{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:100;
  padding:32px 72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  transition:padding .5s,background .5s,box-shadow .5s;
}

nav.s{
  padding:16px 72px;
  background:rgba(255,255,255,0.96);
  backdrop-filter:blur(20px);
  box-shadow:0 1px 0 var(--line);
}

.logo{
  font-family:var(--serif);
  font-size:24px;
  font-weight:600;
  color:var(--white);
  text-decoration:none;
  letter-spacing:.12em;
  transition:color .4s;
  display:flex;
  align-items:center;
  gap:10px;
}
nav.s .logo{color:var(--ink)}
.logo em{
  font-style:italic;
  color:var(--gold-lt);
  transition:color .4s}
nav.s .logo em{color:var(--gold-dk)}
.logo-mark{
  display:block;
  flex-shrink:0;
  height:26px;
  width:auto;
}
.nl {
  display:flex;
  gap:40px;
  list-style:none}
.nl a{
  font-family:var(--sans);
  font-size:10px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(255,255,255,.8);
  text-decoration:none;
  transition:color .3s;
}

nav.s .nl a {
  color:var(--muted)}
.nl a:hover {
  color:var(--gold)!important}
.nbtn{
  font-family:var(--sans);
  font-size:9px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink);
  background:var(--gold);
  padding:13px 28px;
  text-decoration:none;
  transition:background .3s,transform .2s;
}

.nbtn:hover {
  background:var(--gold-dk);
  transform:translateY(-1px)}
.ham {
  display:none;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  background:none;
  border:none;
  padding:4px}
.ham span {
  width:22px;
  height:1px;
  background:var(--white);
  transition:.3s}
nav.s .ham span {
  background:var(--ink)}

/* ─── HERO ─── */
#hero {
  position:relative;
  height:100vh;
  min-height:700px;
  overflow:hidden}
.hero-img {
  position:absolute;
  inset:0}
.hero-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  animation:kz 18s ease-in-out infinite alternate;
  transform-origin:center;
}

@keyframes kz {
  from {
  transform:scale(1)}to {
  transform:scale(1.06)}}
.hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(
    to bottom,
    rgba(13,27,42,.15) 0%,
    rgba(13,27,42,.05) 40%,
    rgba(13,27,42,.55) 85%,
    rgba(13,27,42,.75) 100%
  );
}

.hero-content{
  position:absolute;
  bottom:14%;
  left:0;
  right:0;
  text-align:center;
  padding:0 40px;
  z-index:2;
}

.hero-tag{
  display:inline-flex;
  align-items:center;
  gap:14px;
  font-family:var(--sans);
  font-size:9px;
  font-weight:500;
  letter-spacing:.35em;
  text-transform:uppercase;
  color:var(--gold-lt);
  margin-bottom:24px;
  opacity:0;
  animation:fu .9s ease .2s forwards;
}

.hero-tag::before,.hero-tag::after {
  content:'';
  width:36px;
  height:1px;
  background:var(--gold-lt);
  opacity:.6}
h1{
  font-family:var(--serif);
  font-size:clamp(56px,9vw,120px);
  font-weight:300;
  line-height:.92;
  color:var(--white);
  letter-spacing:-.02em;
  margin-bottom:28px;
  opacity:0;
  animation:fu .9s ease .4s forwards;
}

h1 em {
  font-style:italic;
  font-weight:300;
  color:var(--gold-lt)}
.hero-sub{
  font-family:var(--serif);
  font-size:clamp(15px,2vw,20px);
  font-weight:300;
  font-style:italic;
  color:rgba(255,255,255,.75);
  margin-bottom:44px;
  opacity:0;
  animation:fu .9s ease .6s forwards;
}

.hero-ctas{
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
  opacity:0;
  animation:fu .9s ease .8s forwards;
}

.btn-g{
  font-family:var(--sans);
  font-size:9px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  background:var(--gold);
  color:var(--ink);
  padding:17px 44px;
  text-decoration:none;
  transition:all .3s;
}

.btn-g:hover {
  background:var(--gold-dk);
  transform:translateY(-2px)}
.btn-o{
  font-family:var(--sans);
  font-size:9px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  border:1px solid rgba(255,255,255,.55);
  color:var(--white);
  padding:17px 44px;
  text-decoration:none;
  transition:all .3s;
}

.btn-o:hover {
  border-color:var(--gold-lt);
  color:var(--gold-lt)}
.scroll-cue{
  position:absolute;
  bottom:5%;
  left:50%;
  transform:translateX(-50%);
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  opacity:0;
  animation:fu .9s ease 1.2s forwards;
}

.scroll-cue span {
  font-family:var(--sans);
  font-size:8px;
  font-weight:500;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:rgba(255,255,255,.55)}
.scroll-line {
  width:1px;
  height:44px;
  background:linear-gradient(to bottom,var(--gold-lt),transparent);
  animation:sp 2s ease-in-out infinite}
@keyframes sp {
  0%,100% {
  opacity:.5;
  transform:scaleY(1)}50% {
  opacity:1;
  transform:scaleY(1.3)}}
@keyframes fu {
  from {
  opacity:0;
  transform:translateY(22px)}to {
  opacity:1;
  transform:translateY(0)}}

/* ─── TICKER ─── */
.ticker{
  background:var(--ink);
  overflow:hidden;
  padding:18px 0;
  border-top:1px solid rgba(255,255,255,.06);
}

.ticker-inner{
  display:flex;
  gap:0;
  white-space:nowrap;
  animation:tick 30s linear infinite;
}

.ticker-inner:hover {
  animation-play-state:paused}
@keyframes tick {
  from {
  transform:translateX(0)}to {
  transform:translateX(-50%)}}
.tick-item{
  font-family:var(--sans);
  font-size:9px;
  font-weight:500;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:rgba(255,255,255,.45);
  padding:0 32px;
  display:flex;
  align-items:center;
  gap:32px;
}

.tick-dot {
  color:var(--gold);
  font-size:6px}

/* ─── SHARED ─── */
section {
  padding:120px 72px}
.ey{
  font-family:var(--sans);
  font-size:9px;
  font-weight:500;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--gold-dk);
  text-align:center;
  margin-bottom:14px;
}

.st{
  font-family:var(--serif);
  font-size:clamp(36px,5vw,68px);
  font-weight:300;
  line-height:1.05;
  text-align:center;
  color:var(--ink);
  margin-bottom:18px;
}

.st em {
  font-style:italic;
  color:var(--ink)}
.sb{
  font-family:var(--sans);
  font-size:14px;
  font-weight:300;
  line-height:1.9;
  color:var(--muted);
  text-align:center;
  max-width:520px;
  margin:0 auto;
}

/* gold hr */
.ghr {
  width:48px;
  height:1px;
  background:var(--gold);
  margin:28px auto}

/* ─── INTRO SPLIT ─── */
#intro {
  background:var(--white);
  padding:0}
.intro-split {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:90vh}
.intro-img {
  position:relative;
  overflow:hidden}
.intro-img img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .8s ease}
.intro-img:hover img {
  transform:scale(1.04)}
.intro-badge{
  position:absolute;
  bottom:48px;
  right:-1px;
  background:var(--gold);
  padding:28px 32px;
  font-family:var(--serif);
  text-align:center;
}

.ib-num {
  font-size:52px;
  font-weight:700;
  color:var(--ink);
  line-height:1;
  display:block}
.ib-lbl {
  font-family:var(--sans);
  font-size:9px;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink);
  margin-top:4px;
  opacity:.7}
.intro-txt{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:80px 80px;
  background:var(--off);
}

.intro-txt .ey,.intro-txt .st,.intro-txt .sb {
  text-align:left;
  margin-left:0;
  margin-right:0}
.intro-txt .st {
  margin-bottom:24px}
.intro-features {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-top:44px}
.ifc{
  padding:24px 20px 22px;
  background:var(--white);
  border:1px solid rgba(13,27,42,.07);
  border-top:2px solid var(--gold);
  transition:box-shadow .35s cubic-bezier(0.16,1,0.3,1),transform .35s cubic-bezier(0.16,1,0.3,1),border-color .3s;
}

.ifc:hover {
  box-shadow:0 10px 32px rgba(13,27,42,.1);
  transform:translateY(-3px)}
.ifc-icon {
  font-size:20px;
  margin-bottom:10px}
.ifc-name {
  font-family:var(--sans);
  font-size:10px;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:4px}
.ifc-desc {
  font-family:var(--sans);
  font-size:11px;
  font-weight:300;
  color:var(--muted);
  line-height:1.7}

/* ─── VILLAS ─── */
#villas {
  background:var(--white)}
.villas-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2px;
  max-width:1400px;
  margin:70px auto 0}
.vc {
  position:relative;
  overflow:hidden;
  cursor:pointer}
.vc.tall {
  grid-row:span 2}
.vc.wide {
  grid-column:span 2}
.vc.wide .vc-img {
  height:420px}
.villas-foot {
  font-family:var(--serif);
  font-style:italic;
  font-size:14px;
  color:var(--muted);
  text-align:center;
  margin:40px auto 0;
  max-width:1400px;
  letter-spacing:.02em}
.vc-img{
  width:100%;
  height:380px;
  overflow:hidden;
  position:relative;
}

.vc.tall .vc-img {
  height:100%}
.vc-img img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s ease}
.vc:hover .vc-img img {
  transform:scale(1.06)}
.vc-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(13,27,42,.85) 0%,rgba(13,27,42,.2) 50%,transparent 100%);
  transition:opacity .4s;
}

.vc:hover .vc-overlay {
  background:linear-gradient(to top,rgba(13,27,42,.9) 0%,rgba(13,27,42,.35) 55%,rgba(13,27,42,.05) 100%)}
.vc-body{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:32px 36px;
  z-index:2;
}

.vc-tag{
  font-family:var(--sans);
  font-size:8px;
  font-weight:600;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:var(--gold-lt);
  margin-bottom:8px;
}

.vc-name{
  font-family:var(--serif);
  font-size:clamp(22px,2.8vw,34px);
  font-weight:400;
  color:var(--white);
  line-height:1.15;
  margin-bottom:10px;
}

.vc-detail{
  font-family:var(--sans);
  font-size:11px;
  font-weight:300;
  color:rgba(255,255,255,.7);
  line-height:1.7;
  max-height:0;
  overflow:hidden;
  transition:max-height .45s ease,opacity .45s;
  opacity:0;
}

.vc:hover .vc-detail {
  max-height:80px;
  opacity:1}
.vc-meta {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:12px}
.vcm{
  font-family:var(--sans);
  font-size:9px;
  font-weight:400;
  color:rgba(255,255,255,.55);
  display:flex;
  align-items:center;
  gap:5px;
}

.vc-bot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:18px;
}

.vc-price {
  font-family:var(--serif);
  font-size:12px;
  font-weight:300;
  color:var(--gold-lt)}
.vc-price strong {
  font-size:26px;
  font-weight:600;
  display:block;
  line-height:1}
.vc-link{
  font-family:var(--sans);
  font-size:9px;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold-lt);
  text-decoration:none;
  border-bottom:1px solid rgba(196,169,107,.4);
  padding-bottom:2px;
  opacity:0;
  transform:translateY(4px);
  transition:opacity .35s,transform .35s,border-color .3s;
}

.vc:hover .vc-link {
  opacity:1;
  transform:translateY(0)}
.vc-link:hover {
  border-color:var(--gold-lt)}

/* ─── NUMBERS ─── */
.numbers{
  background:var(--ink);
  padding:80px 72px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background-color:rgba(255,255,255,.06);
}

.nitem{
  background:var(--ink);
  text-align:center;
  padding:48px 24px;
  transition:background .3s;
}

.nitem:hover {
  background:var(--ink-2)}
.nnum{
  font-family:var(--serif);
  font-size:clamp(44px,5vw,72px);
  font-weight:300;
  color:var(--white);
  line-height:1;
  margin-bottom:6px;
  display:block;
}

.nnum em {
  font-style:italic;
  color:var(--gold);
  font-size:.65em;
  vertical-align:super}
.nlbl{
  font-family:var(--sans);
  font-size:9px;
  font-weight:500;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:rgba(255,255,255,.4);
}

/* ─── GALLERY ─── */
#gallery {
  background:var(--off);
  padding:120px 0}
#gallery .ey,#gallery .st,#gallery .sb {
  padding:0 72px}
#gallery .sb {
  margin-bottom:0}
.gf{
  display:flex;
  gap:8px;
  justify-content:center;
  padding:40px 72px 48px;
  flex-wrap:wrap;
}

.gfb{
  font-family:var(--sans);
  font-size:9px;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  padding:10px 24px;
  border:1px solid var(--line);
  background:var(--white);
  color:var(--muted);
  cursor:pointer;
  transition:all .25s;
}

.gfb:hover,.gfb.active {
  background:var(--ink);
  color:var(--white);
  border-color:var(--ink)}
.gmosaic{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-template-rows:280px 280px;
  gap:3px;
}

.gmosaic-2 {
  margin-top:3px}
.gi.hide {
  display:none}
.gi {
  position:relative;
  overflow:hidden;
  cursor:pointer}
.gi:nth-child(1) {
  grid-column:span 5;
  grid-row:span 2}
.gi:nth-child(2) {
  grid-column:span 4}
.gi:nth-child(3) {
  grid-column:span 3}
.gi:nth-child(4) {
  grid-column:span 3}
.gi:nth-child(5) {
  grid-column:span 4}
.gi-img {
  position:absolute;
  inset:0;
  transition:transform .6s ease}
.gi-img img {
  width:100%;
  height:100%;
  object-fit:cover}
.gi:hover .gi-img {
  transform:scale(1.06)}
.gi-hover{
  position:absolute;
  inset:0;
  background:rgba(13,27,42,.4);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transition:opacity .3s;
}

.gi:hover .gi-hover {
  opacity:1}
.gi-icon{
  width:52px;
  height:52px;
  border:1px solid rgba(255,255,255,.7);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--white);
  font-size:22px;
  font-weight:300;
  transform:scale(.8);
  transition:transform .3s;
}

.gi:hover .gi-icon {
  transform:scale(1)}

/* ─── LIGHTBOX ─── */
.lb {
  position:fixed;
  inset:0;
  z-index:400;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  opacity:0;
  transition:opacity .25s cubic-bezier(0.16,1,0.3,1);
}
.lb.open {
  opacity:1;
  pointer-events:all;
}
.lb-backdrop {
  position:absolute;
  inset:0;
  background:rgba(7,17,26,.93);
  backdrop-filter:blur(6px);
}
.lb-img-wrap {
  position:relative;
  z-index:1;
  max-width:90vw;
  max-height:88vh;
  transform:scale(0.92);
  transition:transform .35s cubic-bezier(0.16,1,0.3,1);
}
.lb.open .lb-img-wrap {
  transform:scale(1);
}
.lb-img-wrap img {
  display:block;
  max-width:90vw;
  max-height:88vh;
  width:auto;
  height:auto;
  object-fit:contain;
}
.lb-close {
  position:absolute;
  top:-48px;
  right:0;
  background:none;
  border:none;
  color:var(--white);
  font-size:28px;
  cursor:pointer;
  opacity:.7;
  transition:opacity .2s,transform .2s;
  font-family:var(--sans);
  font-weight:300;
  line-height:1;
}
.lb-close:hover {
  opacity:1;
  transform:scale(1.1) rotate(90deg);
}
.lb-arrow {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15);
  color:var(--white);
  width:48px;
  height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  cursor:pointer;
  z-index:2;
  transition:background .2s,border-color .2s,transform .2s;
}
.lb-arrow:hover {
  background:rgba(196,169,107,.2);
  border-color:var(--gold);
}
.lb-arrow.prev { left:-80px; }
.lb-arrow.next { right:-80px; }
.lb-arrow.prev:hover { transform:translateY(-50%) translateX(-2px); }
.lb-arrow.next:hover { transform:translateY(-50%) translateX(2px); }
.lb-caption {
  position:absolute;
  bottom:-40px;
  left:0;
  right:0;
  text-align:center;
  font-family:var(--sans);
  font-size:10px;
  font-weight:300;
  letter-spacing:.15em;
  color:rgba(255,255,255,.4);
}

/* ─── BOOKING ─── */
#booking {
  background:var(--white)}
.bk-grid{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:100px;
  max-width:1200px;
  margin:0 auto;
  align-items:start;
}

.bk-left .ey,.bk-left .st,.bk-left .sb {
  text-align:left;
  margin-left:0;
  margin-right:0}
.bk-perks {
  margin-top:48px;
  display:flex;
  flex-direction:column;
  gap:0}
.bkp{
  display:flex;
  gap:20px;
  align-items:flex-start;
  padding:24px 0;
  border-bottom:1px solid var(--line);
}

.bkp:last-child {
  border-bottom:none}
.bkp-num{
  font-family:var(--serif);
  font-size:11px;
  font-weight:600;
  color:var(--gold);
  width:24px;
  flex-shrink:0;
  margin-top:2px;
  letter-spacing:.05em;
}

.bkp-title {
  font-family:var(--sans);
  font-size:12px;
  font-weight:500;
  color:var(--ink);
  margin-bottom:5px;
  letter-spacing:.04em}
.bkp-desc {
  font-family:var(--sans);
  font-size:11px;
  font-weight:300;
  color:var(--muted);
  line-height:1.8}

.bk-form{
  border:1px solid var(--line);
  box-shadow:0 24px 80px rgba(13,27,42,.08);
}

.bf-head{
  background:var(--ink);
  padding:32px 40px;
  position:relative;
  overflow:hidden;
}

.bf-head::after{
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:2px;
  background:linear-gradient(to right,transparent,var(--gold),transparent);
}

.bf-title {
  font-family:var(--serif);
  font-size:28px;
  font-weight:300;
  color:var(--white);
  margin-bottom:5px}
.bf-sub {
  font-family:var(--sans);
  font-size:10px;
  font-weight:300;
  color:rgba(255,255,255,.45);
  letter-spacing:.08em}
.bf-body {
  padding:36px 40px;
  background:var(--white)}
.fr {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-bottom:16px}
.fg {
  margin-bottom:16px}
.fg label{
  display:block;
  font-family:var(--sans);
  font-size:8px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
}

.fg input,.fg select,.fg textarea{
  width:100%;
  background:var(--off);
  border:1px solid var(--line);
  color:var(--ink);
  font-family:var(--sans);
  font-size:13px;
  font-weight:300;
  padding:13px 15px;
  outline:none;
  transition:border-color .25s,background .25s;
  -webkit-appearance:none;
}

.fg select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M5 6L0 0h10z' fill='%23C4A96B'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-color:var(--off);
  padding-right:36px;
  cursor:pointer;
}

.fg select option {
  background:var(--white)}
.fg textarea {
  resize:none;
  height:90px}
.fg input:focus,.fg select:focus,.fg textarea:focus {
  border-color:var(--gold);
  background:var(--white)}
.fg input::placeholder,.fg textarea::placeholder {
  color:rgba(138,155,170,.6)}
.av-row{
  display:flex;
  align-items:center;
  gap:10px;
  background:rgba(196,169,107,.08);
  border:1px solid rgba(196,169,107,.25);
  padding:11px 15px;
  margin-bottom:20px;
}

.av-dot {
  width:7px;
  height:7px;
  background:#4CAF50;
  border-radius:50%;
  flex-shrink:0;
  animation:pg 2s infinite}
@keyframes pg {
  0%,100% {
  box-shadow:0 0 0 0 rgba(76,175,80,.4)}50% {
  box-shadow:0 0 0 7px rgba(76,175,80,0)}}
.av-txt {
  font-family:var(--sans);
  font-size:10px;
  font-weight:400;
  color:var(--gold-dk);
  letter-spacing:.04em}
.fsub{
  width:100%;
  background:var(--ink);
  color:var(--white);
  font-family:var(--sans);
  font-size:9px;
  font-weight:600;
  letter-spacing:.25em;
  text-transform:uppercase;
  padding:18px;
  border:none;
  cursor:pointer;
  transition:background .3s,transform .2s;
  position:relative;
  overflow:hidden;
}

.fsub::after{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gold);
  transform:translateX(-100%);
  transition:transform .4s ease;
}

.fsub:hover::after {
  transform:translateX(0)}
.fsub span {
  position:relative;
  z-index:1}
.fsub:hover {
  transform:translateY(-1px)}
.fnote {
  font-family:var(--sans);
  font-size:9px;
  font-weight:300;
  color:var(--muted);
  text-align:center;
  margin-top:14px;
  letter-spacing:.05em}

/* Form validation states */
.fg.error label { color:#c0392b; }
.fg.error input,
.fg.error select,
.fg.error textarea {
  border-color:#c0392b;
  background:rgba(192,57,43,.04);
}
.fg .f-err {
  font-family:var(--sans);
  font-size:9px;
  font-weight:400;
  color:#c0392b;
  letter-spacing:.04em;
  margin-top:5px;
  display:none;
}
.fg.error .f-err { display:block; }

/* Submit success state */
.fsub.success::after { transform:translateX(0); }
.fsub.success {
  pointer-events:none;
}
.fsub .fsub-check {
  display:none;
  position:relative;
  z-index:1;
}
.fsub.success .fsub-text { display:none; }
.fsub.success .fsub-check { display:inline; }

@keyframes checkDraw {
  from { stroke-dashoffset:30; }
  to   { stroke-dashoffset:0; }
}
.fsub.success svg {
  animation:checkDraw .4s cubic-bezier(0.16,1,0.3,1) .1s both;
}
.check-svg {
  stroke-dasharray:30;
  stroke-dashoffset:30;
}

/* Form success message */
.form-success-msg {
  display:none;
  text-align:center;
  padding:32px 24px;
  font-family:var(--serif);
  font-size:18px;
  font-style:italic;
  color:var(--ink);
  line-height:1.6;
}
.form-success-msg.show { display:block; }

/* Input floating label transition */
.fg input:focus,
.fg select:focus,
.fg textarea:focus {
  border-color:var(--gold);
  background:var(--white);
  box-shadow:0 0 0 3px rgba(196,169,107,.1);
}

/* ─── AMENITIES ─── */
#amenities {
  background:var(--off);
  padding:120px 72px}

.am-groups {
  max-width:1300px;
  margin:70px auto 0;
  display:flex;
  flex-direction:column;
  gap:3px;
}

.am-group {
  display:grid;
  gap:3px;
}
.am-group.row-3 { grid-template-columns:repeat(3,1fr); }
.am-group.row-5 { grid-template-columns:2fr 1fr 1fr 1fr 1fr; }

.am-card {
  background:var(--white);
  padding:40px 36px;
  display:flex;
  align-items:flex-start;
  gap:22px;
  cursor:default;
  border-top:1px solid transparent;
  transition:border-color .3s,transform .35s cubic-bezier(0.16,1,0.3,1),box-shadow .35s;
}
.am-card.featured {
  padding:48px 44px;
  background:var(--ink);
  flex-direction:column;
  gap:16px;
}
.am-card:hover {
  border-color:var(--gold);
  transform:translateY(-3px);
  box-shadow:0 12px 32px rgba(13,27,42,.07);
}
.am-card.featured:hover {
  border-color:var(--gold);
  background:var(--ink-2);
}

/* SVG icon */
.am-icon-wrap {
  width:36px;
  height:36px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.am-icon-wrap svg {
  width:28px;
  height:28px;
  stroke:var(--gold);
  fill:none;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.am-card.featured .am-icon-wrap svg { width:34px; height:34px; }
.am-card.featured .am-icon-wrap { width:44px; height:44px; }

.am-text { flex:1; }
.am-name {
  font-family:var(--sans);
  font-size:10px;
  font-weight:600;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:6px;
}
.am-card.featured .am-name {
  font-size:11px;
  color:var(--white);
  letter-spacing:.2em;
}
.am-desc {
  font-family:var(--sans);
  font-size:11px;
  font-weight:300;
  color:var(--muted);
  line-height:1.75;
}
.am-card.featured .am-desc {
  color:rgba(255,255,255,.5);
  font-size:12px;
}

/* ─── EDITORIAL ─── */
#editorial {
  background:var(--white);
  padding:0}
.ed-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:600px;
}

.ed-row:nth-child(even) {
  direction:rtl}
.ed-row:nth-child(even) > * {
  direction:ltr}
.ed-img {
  position:relative;
  overflow:hidden}
.ed-img img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .8s}
.ed-img:hover img {
  transform:scale(1.04)}
.ed-txt{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:80px 90px;
}

.ed-tag{
  font-family:var(--sans);
  font-size:9px;
  font-weight:600;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--gold-dk);
  margin-bottom:16px;
}

.ed-h{
  font-family:var(--serif);
  font-size:clamp(28px,3.5vw,48px);
  font-weight:300;
  color:var(--ink);
  line-height:1.15;
  margin-bottom:20px;
}

.ed-h em {
  font-style:italic}
.ed-p {
  font-family:var(--sans);
  font-size:13px;
  font-weight:300;
  color:var(--muted);
  line-height:1.9;
  margin-bottom:28px}
.ed-link{
  font-family:var(--sans);
  font-size:9px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink);
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:10px;
  border-bottom:1px solid var(--gold);
  padding-bottom:3px;
  transition:color .3s,gap .3s;
}

.ed-link:hover {
  color:var(--gold-dk);
  gap:16px}

/* ─── TESTIMONIALS ─── */
#testimonials {
  background:var(--ink);
  padding:120px 72px}
#testimonials .ey {
  color:rgba(196,169,107,.7)}
#testimonials .st {
  color:var(--white)}
#testimonials .st em {
  color:var(--gold)}
.tgrid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px;
  max-width:1200px;
  margin:70px auto 0}
.tcard{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.07);
  padding:44px 36px;
  transition:background .3s,border-color .3s;
}

.tcard:hover {
  background:rgba(255,255,255,.07);
  border-color:rgba(196,169,107,.25)}
.tq-mark{
  font-family:var(--serif);
  font-size:72px;
  line-height:.55;
  color:var(--gold);
  opacity:.3;
  margin-bottom:22px;
  display:block;
}

.tstars {
  color:var(--gold);
  font-size:12px;
  letter-spacing:4px;
  margin-bottom:18px}
.tquote{
  font-family:var(--serif);
  font-size:16px;
  font-style:italic;
  font-weight:300;
  line-height:1.8;
  color:rgba(255,255,255,.82);
  margin-bottom:28px;
}

.tauthor {
  display:flex;
  align-items:center;
  gap:14px}
.tav{
  width:44px;
  height:44px;
  border-radius:50%;
  overflow:hidden;
  border:2px solid rgba(196,169,107,.4);
  flex-shrink:0;
  background:var(--ink-2);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--serif);
  font-size:18px;
  font-weight:600;
  color:var(--gold);
}

.tname {
  font-family:var(--sans);
  font-size:10px;
  font-weight:500;
  color:var(--white);
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:2px}
.tloc {
  font-family:var(--sans);
  font-size:9px;
  font-weight:300;
  color:rgba(255,255,255,.35);
  letter-spacing:.06em}

/* ─── CONTACT ─── */
#contact {
  background:var(--off);
  padding:120px 72px}
.ct-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  max-width:1200px;
  margin:70px auto 0}
.ct-items {
  display:flex;
  flex-direction:column;
  gap:0}
.cti{
  display:flex;
  gap:20px;
  align-items:flex-start;
  padding:24px 0;
  border-bottom:1px solid var(--line);
}

.cti:last-child {
  border-bottom:none}
.cti-ico{
  width:44px;
  height:44px;
  background:var(--ink);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:17px;
  flex-shrink:0;
}

.cti-lbl {
  font-family:var(--sans);
  font-size:8px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold-dk);
  margin-bottom:5px}
.cti-val {
  font-family:var(--sans);
  font-size:13px;
  font-weight:300;
  color:var(--ink);
  line-height:1.7}
.mapbox{
  background:var(--white);
  border:1px solid var(--line);
  min-height:400px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:48px;
  position:relative;
  overflow:hidden;
  text-align:center;
}

.mapbox::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    repeating-linear-gradient(0deg,rgba(13,27,42,.03) 0,rgba(13,27,42,.03) 1px,transparent 1px,transparent 48px),
    repeating-linear-gradient(90deg,rgba(13,27,42,.03) 0,rgba(13,27,42,.03) 1px,transparent 1px,transparent 48px);
}

.map-pin-icon {
  font-size:44px;
  position:relative;
  z-index:1}
.map-label {
  font-family:var(--serif);
  font-size:22px;
  font-weight:400;
  color:var(--ink);
  position:relative;
  z-index:1}
.map-addr {
  font-family:var(--sans);
  font-size:11px;
  font-weight:300;
  color:var(--muted);
  line-height:1.9;
  position:relative;
  z-index:1}
.map-btn{
  background:var(--ink);
  color:var(--white);
  font-family:var(--sans);
  font-size:9px;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  padding:13px 28px;
  text-decoration:none;
  transition:background .3s;
  position:relative;
  z-index:1;
}

.map-btn:hover {
  background:var(--gold-dk)}

/* ─── FOOTER ─── */
footer {
  background:#07111A;
  border-top:1px solid rgba(255,255,255,.05)}
.ft-top{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:60px;
  padding:80px 72px 64px;
  border-bottom:1px solid rgba(255,255,255,.05);
}

.fl-logo {
  font-family:var(--serif);
  font-size:28px;
  font-weight:400;
  color:var(--white);
  margin-bottom:4px;
  letter-spacing:.1em}
.fl-logo em {
  font-style:italic;
  color:var(--gold)}
.fl-tag {
  font-family:var(--serif);
  font-style:italic;
  font-size:13px;
  color:rgba(255,255,255,.3);
  margin-bottom:18px}
.fl-desc {
  font-family:var(--sans);
  font-size:11px;
  font-weight:300;
  color:rgba(255,255,255,.3);
  line-height:1.9;
  max-width:260px;
  margin-bottom:28px}
.fl-soc {
  display:flex;
  gap:10px}
.fl-s{
  width:36px;
  height:36px;
  border:1px solid rgba(255,255,255,.1);
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(255,255,255,.35);
  font-size:11px;
  text-decoration:none;
  transition:all .3s;
  font-family:var(--sans);
  font-weight:500;
}

.fl-s:hover {
  border-color:var(--gold);
  color:var(--gold)}
.fc-h {
  font-family:var(--sans);
  font-size:8px;
  font-weight:600;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:22px}
.fc-ul {
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:12px}
.fc-ul a {
  font-family:var(--sans);
  font-size:11px;
  font-weight:300;
  color:rgba(255,255,255,.3);
  text-decoration:none;
  transition:color .3s;
  letter-spacing:.04em}
.fc-ul a:hover {
  color:var(--white)}
.ft-bot{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  padding:22px 72px;
}

.ft-copy {
  font-family:var(--sans);
  font-size:9px;
  font-weight:300;
  color:rgba(255,255,255,.2);
  letter-spacing:.06em}
.ft-trust {
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--sans);
  font-size:9px;
  font-weight:300;
  color:rgba(255,255,255,.2)}
.ft-dot {
  color:var(--gold);
  font-size:6px}
.ft-by {
  font-family:var(--sans);
  font-size:9px;
  font-weight:300;
  color:rgba(255,255,255,.2)}
.ft-by a {
  color:var(--gold);
  text-decoration:none}
.ft-by a:hover {
  text-decoration:underline}

/* ─── FLOAT ─── */
.float-wrap {
  position:fixed;
  bottom:32px;
  right:32px;
  z-index:200;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:10px}
.float-tip{
  background:var(--ink);
  color:var(--white);
  border-bottom:1px solid var(--gold);
  font-family:var(--sans);
  font-size:10px;
  font-weight:300;
  padding:10px 16px;
  white-space:nowrap;
  letter-spacing:.04em;
  opacity:0;
  transform:translateX(8px);
  transition:opacity .25s cubic-bezier(0.16,1,0.3,1),transform .25s cubic-bezier(0.16,1,0.3,1);
  pointer-events:none;
}

.float-wrap:hover .float-tip {
  opacity:1;
  transform:translateX(0)}
.float-btn{
  width:52px;
  height:52px;
  background:var(--gold);
  border:none;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--ink);
  cursor:pointer;
  box-shadow:0 8px 28px rgba(196,169,107,.4);
  animation:fb 3s ease-in-out infinite;
  transition:transform .2s,box-shadow .2s;
  text-decoration:none;
}

@keyframes fb {
  0%,100% {
  transform:translateY(0)}50% {
  transform:translateY(-4px)}}
.float-btn:hover {
  transform:scale(1.08)!important;
  box-shadow:0 12px 36px rgba(196,169,107,.55)}

/* ─── MOBILE ─── */
.mob-menu{
  position:fixed;
  inset:0;
  background:rgba(7,17,26,.97);
  backdrop-filter:blur(20px);
  z-index:99;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:36px;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s;
}

.mob-menu.open {
  opacity:1;
  pointer-events:all}
.mob-menu a {
  font-family:var(--serif);
  font-size:34px;
  font-weight:300;
  color:var(--white);
  text-decoration:none;
  transition:color .3s;
  letter-spacing:.05em}
.mob-menu a:hover {
  color:var(--gold)}
.mob-close {
  position:absolute;
  top:28px;
  right:32px;
  background:none;
  border:none;
  color:var(--white);
  font-size:24px;
  cursor:pointer;
  letter-spacing:.05em;
  font-family:var(--sans);
  font-weight:300}

/* ─── REVEALS ─── */
.rev {
  opacity:0;
  transform:translateY(32px);
  transition:opacity .75s cubic-bezier(0.16,1,0.3,1),transform .75s cubic-bezier(0.16,1,0.3,1)}
.rev.in {
  opacity:1;
  transform:translateY(0)}
.d1 {
  transition-delay:.1s}.d2 {
  transition-delay:.2s}.d3 {
  transition-delay:.3s}.d4 {
  transition-delay:.4s}

/* ─── SCROLL PROGRESS ─── */
.scroll-progress {
  position:fixed;
  top:0;
  left:0;
  height:1px;
  background:var(--gold);
  z-index:300;
  transform-origin:left;
  transform:scaleX(0);
  transition:transform .05s linear;
}

/* ─── NUMBER COUNTER ─── */
.nnum[data-target] {
  transition:none;
}

/* ─── MAP PIN DROP ─── */
@keyframes pinDrop {
  0%   { transform:translateY(-24px) scale(1.15); opacity:0 }
  60%  { transform:translateY(4px) scale(0.97); opacity:1 }
  80%  { transform:translateY(-4px) scale(1.02) }
  100% { transform:translateY(0) scale(1); opacity:1 }
}
.mapbox.in .map-pin-icon {
  animation:pinDrop .6s cubic-bezier(0.16,1,0.3,1) .2s both;
}

/* ─── NAV LINK HOVER UNDERLINE ─── */
.nl a {
  position:relative;
}
.nl a::after {
  content:'';
  position:absolute;
  bottom:-3px;
  left:0;
  width:100%;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s cubic-bezier(0.16,1,0.3,1);
}
.nl a:hover::after {
  transform:scaleX(1);
}

/* ─── VILLA CARD PRICE PULSE ─── */
@keyframes pricePop {
  0%   { transform:scale(1) }
  40%  { transform:scale(1.06) }
  100% { transform:scale(1) }
}
.vc:hover .vc-price strong {
  animation:pricePop .35s cubic-bezier(0.16,1,0.3,1) .15s both;
}

/* ─── EDITORIAL PARALLAX WRAPPER ─── */
.ed-img {
  will-change:transform;
}

/* ─── TICKER VELOCITY STATE ─── */
.ticker-inner.fast {
  animation-duration:20s;
}

/* ─── REDUCED MOTION ─── */
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after {
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
  .rev {
    opacity:1;
    transform:none;
  }
}

/* ─── RESPONSIVE ─── */
@media(max-width:1100px){
  nav {
  padding:22px 32px}
  nav.s {
  padding:14px 32px}
  .nl,.nbtn {
  display:none}
  .ham {
  display:flex}
  section {
  padding:80px 32px}
  #amenities {
  padding:80px 32px}
  #gallery .ey,#gallery .st,#gallery .sb,#editorial {
  padding:0 32px}
  .gf {
  padding:30px 32px 38px}
  .intro-split {
  grid-template-columns:1fr;
  min-height:auto}
  .intro-txt {
  padding:60px 40px}
  .villas-layout {
  grid-template-columns:1fr;
  gap:3px}
  .vc.tall {
  grid-row:auto}
  .vc.wide {
  grid-column:auto}
  .vc-img,.vc.tall .vc-img,.vc.wide .vc-img {
  height:360px}
  .numbers {
  grid-template-columns:repeat(2,1fr)}
  .gmosaic {
  grid-template-columns:repeat(2,1fr);
  grid-template-rows:auto}
  .gi {
  grid-column:span 1!important;
  height:220px}
  .bk-grid {
  grid-template-columns:1fr;
  gap:56px}
  .am-groups { gap:2px; }
  .am-group.row-3,
  .am-group.row-5 { grid-template-columns:repeat(2,1fr); }
  .am-card.featured { grid-column:span 2; flex-direction:row; }
  .ed-row {
  grid-template-columns:1fr}
  .ed-img {
  height:380px}
  .ed-txt {
  padding:56px 40px}
  .tgrid {
  grid-template-columns:1fr}
  .ct-grid {
  grid-template-columns:1fr}
  .ft-top {
  grid-template-columns:1fr 1fr;
  gap:40px;
  padding:60px 32px 48px}
  .ft-bot {
  padding:20px 32px;
  flex-direction:column;
  text-align:center}
}

@media(max-width:640px){
  nav {
  padding:18px 18px}
  section {
  padding:60px 18px}
  #amenities {
  padding:60px 18px}
  #gallery .ey,#gallery .st,#gallery .sb {
  padding:0 18px}
  .gf {
  padding:22px 18px 30px}
  .intro-txt {
  padding:44px 24px}
  .intro-features {
  grid-template-columns:1fr}
  .fr {
  grid-template-columns:1fr}
  .am-group.row-3,
  .am-group.row-5 { grid-template-columns:1fr; }
  .am-card.featured { grid-column:auto; flex-direction:column; }
  .ft-top {
  grid-template-columns:1fr;
  padding:48px 18px 36px}
  .ft-bot {
  padding:16px 18px}
  .numbers {
  padding:60px 18px}
  .ed-txt {
  padding:44px 24px}
  .bk-grid {
  gap:44px}
}