/* ==========================================================================
   Ayam Atlas - brand layer
   --------------------------------------------------------------------------
   Loaded LAST on every page (after css/site-custom.css). It re-themes the
   existing Designesia/Almaris site to the Ayam Atlas identity WITHOUT touching
   layout, spacing, animation timings or behaviour. Only colour, typeface,
   weight, surface, border and logo sizing are set here.

   Source of truth: Ayam Atlas Brand Book (palette, type, iconography) and the
   Ayam Atlas SVG Brand Assets V2 pack (logos, favicon, icons).

    0. Tokens (brand + semantic) and theme-variable remap
    1. Typography
    2. Links, selection, focus
    3. Header, top bar, navigation, language switch
    4. Buttons
    5. Home hero, inner-page hero, testimonials
    6. Section surfaces and rhythm
    7. Cards, room cards, amenity chips, carousels
    8. Forms and form plugins (date picker, select2, steppers, messages)
    9. Footer
   10. Utilities: back-to-top, preloader, gallery overlay, misc
   11. Responsive
   ========================================================================== */


/* ==========================================================================
   0. Tokens
   ========================================================================== */

:root {
    /* Core palette (Brand Book - "Core palette reference") */
    --brand-ivory:      #F8F7F1;   /* Creamy Ivory                        */
    --brand-dark-teal:  #0A3235;   /* Vert Sarcelle                       */
    --brand-muted-teal: #3B5656;   /* Bleu Sarcelle Foncé                 */
    --brand-brown:      #473217;   /* Brun Terre - the logo brown         */
    --brand-earth:      #936F48;   /* Earth / Violet Terreux              */
    --brand-gold:       #F6CE8E;   /* Brume Dorée / Golden Mist           */

    --brand-ivory-rgb:      248, 247, 241;
    --brand-dark-teal-rgb:  10, 50, 53;
    --brand-muted-teal-rgb: 59, 86, 86;
    --brand-brown-rgb:      71, 50, 23;
    --brand-earth-rgb:      147, 111, 72;
    --brand-gold-rgb:       246, 206, 142;

    /* Derived tones (tints / mixes of core colours only) */
    --brand-sand:       #FDF5E8;   /* Golden Mist 20% tint - warm light surface */
    --brand-earth-text: #7C5D39;   /* Earth 70% + Brun Terre 30%: Earth hue that
                                      passes WCAG AA as small text on ivory/sand
                                      (5.3:1); plain Earth is 4.25:1          */
    --brand-brown-deep: #3A2812;   /* Brun Terre shaded - subfooter band        */

    /* UI alert colours (Brand Book - "UI palette") */
    --brand-error:   #FD4645;
    --brand-success: #549C35;

    /* Typefaces. Brandon Grotesque is a licensed face that was not supplied
       with the project; it is named first so an installed copy, an Adobe
       Fonts kit ("brandon-grotesque") or files added under
       fonts/brandon-grotesque/ take over automatically. Jost - a geometric
       grotesque of the same lineage, already used by the site - stands in. */
    --brand-font-display: "Brandon Grotesque", "brandon-grotesque", "Jost", "Century Gothic", "Helvetica Neue", Arial, sans-serif;
    --brand-font-body: "Inter", "Helvetica Neue", Arial, sans-serif;

    /* Semantic tokens */
    --background:     var(--brand-ivory);
    --surface:        #ffffff;
    --surface-alt:    var(--brand-sand);
    --surface-dark:   var(--brand-dark-teal);
    --surface-warm:   var(--brand-brown);
    --text-heading:   var(--brand-brown);
    --text-subheading: var(--brand-dark-teal);
    --text-primary:   var(--brand-muted-teal);
    --text-on-dark:   var(--brand-ivory);
    --text-on-dark-muted: rgba(var(--brand-ivory-rgb), .8);
    --accent:         var(--brand-earth-text);
    --accent-on-dark: var(--brand-gold);
    --primary:        var(--brand-dark-teal);
    --primary-hover:  var(--brand-muted-teal);
    --border:         rgba(var(--brand-brown-rgb), .14);
    --border-strong:  rgba(var(--brand-muted-teal-rgb), .32);
    --border-on-dark: rgba(var(--brand-ivory-rgb), .16);
    --radius-ui: 3px;
}

/* The theme declares its variables on `*`, so they are remapped on `*` too
   (same specificity, later file wins). */
* {
    --title-font: var(--brand-font-display);
    --title-font-weight: 600;
    --title-font-color: var(--brand-brown);
    --body-font: var(--brand-font-body);
    --mainmenu-font: var(--brand-font-display);
    --mainmenu-font-weight: 400;   /* the original weight: the fixed-width menu fits at 400 */
    --body-font-color: var(--brand-muted-teal);
    --dark-body-font-color: rgba(var(--brand-ivory-rgb), .8);
    --bg-dark-1: var(--brand-dark-teal);
    --bg-dark-1-rgb: var(--brand-dark-teal-rgb);
    --bg-dark-2: #0D3A3E;
    --bg-dark-3: var(--brand-muted-teal);
    --bg-light: var(--brand-sand);
    --bg-grey: var(--brand-ivory);
    --bg-color-even: var(--brand-sand);
    --bg-color-odd: var(--brand-ivory);
    --border-default: solid 1px var(--border);
    --swiper-theme-color: var(--brand-gold);
}


/* ==========================================================================
   1. Typography
   Brand Book: Brandon Grotesque Light for intro/hero headers, Bold/SemiBold
   for headlines, Regular for subheads; Inter for body. Sizes, line-heights
   and the responsive scale are left exactly as the site defines them.
   ========================================================================== */

body {
    font-family: var(--brand-font-body);
    color: var(--text-primary);
}

h1, h2, .h1, .h2 {
    font-family: var(--brand-font-display);
    font-weight: 600;
    color: var(--text-heading);
}

h3, h4, h5, h6, .h3, .h4, .h5, .h6 {
    font-family: var(--brand-font-display);
    font-weight: 500;
    color: var(--text-subheading);
}

/* Intro / hero headers - Light */
h1.slider-title,
#subheader h1,
#page-title h1 {
    font-weight: 300;
}

/* Pull quotes: Regular (the book's subhead weight). Light is too thin to
   read over the dusk photograph behind the testimonials. */
.owl-single-dots .item h3 {
    font-weight: 400;
}

/* Emphasised body copy: Inter Medium/SemiBold per the book */
strong, b { font-weight: 600; }
.fw-bold { font-weight: 600 !important; }

/* Eyebrows / subtitles keep the site's tracked uppercase, now in Inter */
.subtitle,
#subheader .sh-eyebrow {
    font-family: var(--brand-font-body);
    font-weight: 600;
}

.subtitle.id-color,
.subtitle {
    color: var(--accent);
}

.text-light .subtitle.id-color,
.section-dark .subtitle.id-color,
.brand-surface-teal .subtitle {
    color: var(--accent-on-dark);
}

/* Theme sets pure white on dark surfaces; use the brand's warm white */
.text-light h1:not(.id-color),
.text-light h2:not(.id-color),
.text-light h3:not(.id-color),
.text-light h4:not(.id-color),
.text-light h5:not(.id-color),
.text-light h6:not(.id-color),
footer h1, footer h2, footer h4, footer h5, footer h6 {
    color: var(--text-on-dark);
}

.text-light,
.text-light p {
    color: var(--text-on-dark-muted);
}

.lead { color: inherit; }


/* ==========================================================================
   2. Links, selection, focus
   ========================================================================== */

a {
    color: var(--accent);
    transition: color .2s ease;
}

a:hover {
    color: var(--brand-brown);
}

.text-light a:not(.btn-main):not(.btn-line),
footer a {
    color: var(--text-on-dark-muted);
}

.text-light a:not(.btn-main):not(.btn-line):hover,
footer a:hover {
    color: var(--brand-gold);
}

/* .id-color: warm earth on light surfaces, golden mist on dark ones */
.id-color {
    color: var(--accent);
}

.text-light .id-color,
.section-dark .id-color,
header .id-color {
    color: var(--accent-on-dark);
}

::selection {
    background: var(--brand-gold);
    color: var(--brand-brown);
}

::-moz-selection {
    background: var(--brand-gold);
    color: var(--brand-brown);
}

/* Visible, on-brand keyboard focus everywhere */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.btn-main:focus-visible {
    outline: 2px solid var(--brand-earth);
    outline-offset: 3px;
}

header a:focus-visible,
header button:focus-visible,
.text-light a:focus-visible,
footer a:focus-visible,
.section-dark a:focus-visible {
    outline-color: var(--brand-gold);
}


/* ==========================================================================
   3. Header, top bar, navigation, language switch
   ========================================================================== */

/* --- logo: official lockups from the brand asset pack ----------------------
   The Ayam Atlas standard lockup has a tight 1074x528 box, so it is sized by
   HEIGHT ONLY (width follows) and is never stretched or cropped.

   To resize the logo, change only the --logo-h-* values below:
     --logo-h-top       desktop, top of page (transparent header)
     --logo-h-scrolled  desktop, sticky header after scrolling
     --logo-h-laptop    993-1199px wide screens
     --logo-h-mobile    tablet / phone (<= 992px)
     --logo-h-small     small phones (<= 360px)
   The --logo-pad-* values set the breathing room around the logo. */
:root {
    --logo-h-top: 72px;
    --logo-h-scrolled: 52px;
    --logo-h-laptop: 62px;
    --logo-h-mobile: 42px;
    --logo-h-small: 38px;

    --logo-pad-top: 14px 0;        /* vertical padding, top of page      */
    --logo-pad-scrolled: 8px 0;    /* vertical padding, sticky header    */
    --logo-pad-mobile: 0 0 0 2px;  /* inside the fixed 64px mobile bar   */
}

header div#logo {
    max-width: none;
}

header div#logo a {
    display: inline-block;
    padding: var(--logo-pad-top);
    line-height: 0;
    transition: padding .3s ease;
}

header.smaller div#logo a {
    padding: var(--logo-pad-scrolled);
}

header div#logo img,
header div#logo img.w-300px,
header div#logo img.w-250px {
    width: auto !important;
    max-width: none;
    height: var(--logo-h-top);
    transition: height .3s ease;
}

header.smaller div#logo img,
header.smaller div#logo img.w-300px,
header.smaller div#logo img.w-250px {
    height: var(--logo-h-scrolled);
}

/* --- top bar --------------------------------------------------------------- */
#topbar {
    border-bottom-color: var(--border-on-dark);
}

#topbar a {
    color: var(--text-on-dark-muted);
}

#topbar a:hover {
    color: var(--brand-gold);
}

#topbar a i,
#topbar i {
    color: var(--brand-gold);
}

#topbar:not(.topbar-noborder) .topbar-right .topbar-widget {
    border-left-color: var(--border-on-dark);
}

/* --- solid / scrolled header ---------------------------------------------- */
header,
header.smaller {
    background: var(--brand-dark-teal);
}

header.transparent:not(.smaller) {
    background: none;
}

header.smaller {
    box-shadow: 0 1px 0 rgba(var(--brand-gold-rgb), .18), 0 8px 24px rgba(var(--brand-dark-teal-rgb), .25);
}

/* --- navigation ------------------------------------------------------------ */
#mainmenu a,
#mainmenu a.menu-item {
    color: var(--brand-ivory);
    font-family: var(--brand-font-display);
}

#mainmenu > li > a.menu-item:hover,
#mainmenu a.menu-item.active,
header.smaller #mainmenu a.menu-item.active {
    color: var(--brand-gold);
}

#mainmenu li a.menu-item:after {
    color: var(--brand-gold);
}

/* dropdowns (theme default is white + primary hover) */
#mainmenu ul {
    background: var(--brand-ivory);
}

#mainmenu ul:not(.mega) {
    border-color: var(--border);
}

#mainmenu li li a,
#mainmenu li li a.menu-item {
    color: var(--brand-muted-teal);
}

header #mainmenu li li a:hover,
#mainmenu li li a.menu-item:hover,
#mainmenu ul li:hover > a.menu-item {
    background: var(--brand-dark-teal);
    color: var(--brand-ivory);
}

#menu-btn:before {
    color: var(--brand-ivory);
}

/* --- language switch (markup + behaviour in site-custom.css / i18n.js) ---- */
.lang-switch {
    border-color: rgba(var(--brand-ivory-rgb), .32);
    border-radius: var(--radius-ui);
}

.lang-switch .lang-btn {
    color: var(--brand-ivory);
    font-family: var(--brand-font-body);
}

.lang-switch .lang-btn:hover,
.lang-switch .lang-btn:focus-visible {
    background: rgba(var(--brand-ivory-rgb), .12);
    color: var(--brand-ivory);
}

.lang-switch .lang-btn.active {
    background: var(--brand-gold);
    color: var(--brand-brown);
}

.lang-switch .lang-btn:focus-visible {
    outline-color: var(--brand-gold);
}


/* ==========================================================================
   4. Buttons
   One family, two contexts:
     light surfaces  -> Dark Teal fill, ivory label      (hover: Muted Teal)
     dark surfaces   -> Golden Mist fill, brown label    (hover: Ivory)
   Brand Book accessibility page: CTAs are approved on Dark Teal, Muted Teal
   and Golden Mist. Shape, padding, size and tracking are the site's own.
   ========================================================================== */

a.btn-main,
a.btn-main:active,
a.btn-main:focus,
a.btn-main:visited,
.btn-main,
input[type=button].btn-main,
input[type=submit].btn-main,
.btn-gold,
a.btn-gold,
input.btn-gold {
    font-family: var(--brand-font-body);
    font-weight: 600;
    border-radius: var(--radius-ui);
    background: var(--primary) !important;
    border-color: var(--primary) !important;
    color: var(--brand-ivory) !important;
    transition: background-color .25s ease, color .25s ease, box-shadow .25s ease;
}

a.btn-main:hover,
.btn-main:hover,
input[type=submit].btn-main:hover,
.btn-gold:hover,
a.btn-gold:hover,
input.btn-gold:hover {
    background: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    color: var(--brand-ivory) !important;
    box-shadow: 0 8px 22px rgba(var(--brand-dark-teal-rgb), .22);
}

/* dark surfaces: header, hero, photo overlays, room-card hover panel, footer */
header .btn-main,
header .btn-gold,
.text-light .btn-main,
.text-light .btn-gold,
.text-light a.btn-line,
.section-dark .btn-main,
footer .btn-main {
    background: var(--brand-gold) !important;
    border-color: var(--brand-gold) !important;
    color: var(--brand-brown) !important;
}

header .btn-main:hover,
header .btn-gold:hover,
.text-light .btn-main:hover,
.text-light .btn-gold:hover,
.text-light a.btn-line:hover,
.section-dark .btn-main:hover,
footer .btn-main:hover {
    background: var(--brand-ivory) !important;
    border-color: var(--brand-ivory) !important;
    color: var(--brand-dark-teal) !important;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .22);
}

/* stand-alone .btn-line (no fill) on light surfaces */
a.btn-line:not(.btn-gold) {
    border: solid 1px var(--brand-dark-teal);
    color: var(--brand-dark-teal);
    border-radius: var(--radius-ui);
}


/* ==========================================================================
   5. Heroes and testimonials
   ========================================================================== */

/* Home slider: the black wash becomes a Dark Teal wash at the SAME opacity
   (.op-2 is untouched), so photos keep their natural colour. */
.sw-overlay {
    background: var(--brand-dark-teal);
}

h1.slider-title,
.slider-title {
    color: var(--brand-ivory);
}

.slider-teaser {
    color: rgba(var(--brand-ivory-rgb), .9);
}

.slider-title .underline:before {
    background: var(--brand-gold);
}

/* Arched glass panel behind hero copy / testimonials */
.box-slider-decor {
    border-color: rgba(var(--brand-gold-rgb), .75);
}

.d-stars i {
    color: var(--brand-gold);
}

/* on light surfaces the stars need more weight than Golden Mist gives */
section:not(.text-light):not(.section-dark) .de-rating-ext .d-stars i {
    color: var(--brand-earth);
}

.swiper-button-next,
.swiper-button-prev {
    color: var(--brand-gold);
}

/* Inner-page hero: flat 50% wash -> Dark Teal, weighted to the bottom-left
   where the copy sits (site-custom.css section 4). */
#subheader .de-overlay {
    background: linear-gradient(180deg,
        rgba(var(--brand-dark-teal-rgb), .38) 0%,
        rgba(var(--brand-dark-teal-rgb), .5) 55%,
        rgba(var(--brand-dark-teal-rgb), .7) 100%);
}

#subheader h1 {
    color: var(--brand-ivory);
}

#subheader .sh-eyebrow {
    color: var(--brand-gold);
}

#subheader .lead {
    color: rgba(var(--brand-ivory-rgb), .9);
}

/* Reservation page title band */
#page-title {
    background: var(--brand-ivory);
}

/* Testimonials: quote mark and pager in Golden Mist */
.owl-single-dots .item span {
    color: var(--brand-gold);
    font-family: var(--brand-font-body);
    font-weight: 500;
    letter-spacing: 1px;
}


/* ==========================================================================
   6. Section surfaces and rhythm
   Ivory is the canvas; Sand alternates with it; Muted Teal, Dark Teal and
   Brun Terre give the page its darker beats (brand "Color balance").
   ========================================================================== */

html {
    background: var(--brand-dark-teal);
}

#content {
    background: var(--brand-ivory);
}

.bg-light {
    background: var(--brand-sand) !important;
}

.bg-white {
    background-color: #ffffff !important;
}

.bg-dark {
    background-color: var(--brand-dark-teal) !important;
}

.bg-color {
    background: var(--brand-dark-teal);
}

.bg-color-2 {
    background: var(--brand-brown);
}

section.dark {
    background: rgba(var(--brand-dark-teal-rgb), .98);
}

/* Vertical hairlines ("lines-deco") in warm earth rather than black */
section.lines-deco:before,
section.lines-deco:after {
    border-left-color: rgba(var(--brand-earth-rgb), .24);
}

section.text-light.lines-deco:before,
section.text-light.lines-deco:after {
    border-left-color: rgba(var(--brand-ivory-rgb), .16);
}

/* Home - "Our Facilities": the third warm band in a row becomes the brand's
   Muted Teal, giving the page a cool beat between Rooms and Instagram. */
#section-facilities.bg-light {
    background: var(--brand-muted-teal) !important;
}

#section-facilities h2,
#section-facilities h4 {
    color: var(--brand-ivory);
}

#section-facilities .subtitle.id-color {
    color: var(--brand-gold);
}

#section-facilities.lines-deco:before,
#section-facilities.lines-deco:after {
    border-left-color: rgba(var(--brand-ivory-rgb), .14);
}

#section-facilities .owl-custom-nav .btn-prev:before,
#section-facilities .owl-custom-nav .btn-next:before {
    background-color: var(--brand-gold);
}

#section-facilities .owl-custom-nav .btn-prev:after,
#section-facilities .owl-custom-nav .btn-next:after {
    background-color: var(--brand-brown);
}

#section-facilities .owl-dot { background: rgba(var(--brand-ivory-rgb), .3); }
#section-facilities .owl-dot.active { background: var(--brand-gold); }


/* ==========================================================================
   7. Cards, room cards, amenity chips, carousels
   ========================================================================== */

.border-grey,
.border-1 {
    border-color: var(--border) !important;
}

.border-bottom { border-bottom-color: var(--border) !important; }
.border-top    { border-top-color: var(--border) !important; }

/* feature cards on the home page (restaurant / pool / gardens) */
.bg-white.border-grey {
    box-shadow: 0 1px 2px rgba(var(--brand-brown-rgb), .04);
    transition: box-shadow .3s ease, border-color .3s ease;
}

.bg-white.border-grey:hover {
    border-color: rgba(var(--brand-earth-rgb), .35) !important;
    box-shadow: 0 12px 30px rgba(var(--brand-brown-rgb), .08);
}

/* Room cards: name sits on a Dark Teal fade; hover panel is Dark Teal glass */
.gradient-trans-color-bottom {
    background: linear-gradient(180deg,
        rgba(var(--brand-dark-teal-rgb), 0) 0%,
        rgba(var(--brand-dark-teal-rgb), .9) 100%);
}

.hover > .abs.bg-color {
    background: rgba(var(--brand-dark-teal-rgb), .86);
}

/* Amenity chips */
.d-tagline-s2 {
    background: rgba(var(--brand-earth-rgb), .1);
    color: var(--brand-muted-teal);
    border-radius: var(--radius-ui);
}

/* Contact info boxes */
.icon-box {
    border: solid 1px var(--border);
    background: #ffffff;
    transition: background-color .3s ease, border-color .3s ease;
}

.icon-box i {
    color: var(--brand-earth);
}

.icon-box span {
    color: var(--brand-dark-teal);
}

.icon-box:hover {
    background: var(--brand-dark-teal);
    border-color: var(--brand-dark-teal);
}

.icon-box:hover i { color: var(--brand-gold); }
.icon-box:hover span { color: var(--brand-ivory); }

/* Carousel arrows: brand arrow icon (04_icons/icon-arrow) drawn with a mask
   so it takes the button colour; the theme's circle-tab shape is kept. */
.owl-custom-nav .btn-prev,
.owl-custom-nav .btn-next {
    position: relative;
}

.owl-custom-nav .btn-prev:before,
.owl-custom-nav .btn-next:before {
    content: "" !important;
    background-color: var(--brand-earth);
    transition: background-color .25s ease;
}

.owl-custom-nav .btn-prev:after,
.owl-custom-nav .btn-next:after {
    content: "";
    position: absolute;
    top: 50%;
    width: 20px;
    height: 20px;
    margin-top: -10px;
    background-color: var(--brand-ivory);
    -webkit-mask: url("../images/brand/icons/icon-arrow.svg") center / contain no-repeat;
            mask: url("../images/brand/icons/icon-arrow.svg") center / contain no-repeat;
    pointer-events: none;
}

.owl-custom-nav .btn-next:after { right: 10px; }
.owl-custom-nav .btn-prev:after { left: 10px; transform: scaleX(-1); }

.owl-custom-nav .btn-prev:hover:before,
.owl-custom-nav .btn-next:hover:before {
    background-color: var(--brand-dark-teal);
}

#section-facilities .owl-custom-nav .btn-prev:hover:before,
#section-facilities .owl-custom-nav .btn-next:hover:before {
    background-color: var(--brand-ivory);
}

.owl-dot { background: rgba(var(--brand-muted-teal-rgb), .25); }
.owl-dot.active { background: var(--brand-earth); }
.text-light .owl-dot { background: rgba(var(--brand-ivory-rgb), .3); }
.text-light .owl-dot.active { background: var(--brand-gold); }

/* About page - room-feature icon list and counters */
.de_count h3,
.de_count .timer {
    color: var(--brand-ivory);
}


/* ==========================================================================
   8. Forms and form plugins
   ========================================================================== */

.form-control,
.form-border input[type=text],
.form-border textarea,
.form-border input[type=email],
.form-border input[type=password],
.form-border input[type=date],
.form-border select {
    background-color: var(--brand-ivory);
    border: solid 1px var(--border-strong);
    border-radius: var(--radius-ui);
    color: var(--brand-dark-teal);
    font-family: var(--brand-font-body);
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.form-control:hover,
.form-border input:hover,
.form-border textarea:hover {
    border-color: rgba(var(--brand-muted-teal-rgb), .55);
}

.form-control:focus,
.form-border input[type=text]:focus,
.form-border textarea:focus,
.form-border input[type=email]:focus,
.form-border input[type=date]:focus,
.form-border select:focus {
    background-color: #ffffff;
    border-color: var(--brand-dark-teal);
    box-shadow: 0 0 0 3px rgba(var(--brand-muted-teal-rgb), .18);
    color: var(--brand-dark-teal);
    outline: none;
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
    color: rgba(var(--brand-muted-teal-rgb), .72);
    opacity: 1;
}

.form-border h4,
#booking_form h4,
label {
    color: var(--brand-dark-teal);
}

/* Guest / room steppers */
.d-minus,
.d-plus {
    background: var(--brand-dark-teal);
    color: var(--brand-ivory);
    transition: background-color .2s ease;
}

.d-minus:hover,
.d-plus:hover {
    background: var(--brand-muted-teal);
}

.d-minus:active,
.d-plus:active {
    background: var(--brand-gold);
    color: var(--brand-brown);
}

.de-number input {
    color: var(--brand-dark-teal);
}

/* Validation / status messages - brand UI alert colours */
.error {
    color: var(--brand-brown);
    background: rgba(253, 70, 69, .07);
    border: solid 1px rgba(253, 70, 69, .45);
    border-left: solid 3px var(--brand-error);
    border-radius: var(--radius-ui);
}

.success {
    color: var(--brand-dark-teal);
    background: rgba(84, 156, 53, .08);
    border: solid 1px rgba(84, 156, 53, .45);
    border-left: solid 3px var(--brand-success);
    border-radius: var(--radius-ui);
}

/* Date range picker (template default was bootstrap blue) */
.daterangepicker {
    font-family: var(--brand-font-body);
    color: var(--brand-dark-teal);
    border-color: var(--border);
    border-radius: var(--radius-ui);
}

.daterangepicker td.available:hover,
.daterangepicker th.available:hover {
    background-color: var(--brand-sand);
}

.daterangepicker td.in-range {
    background-color: rgba(var(--brand-gold-rgb), .45);
    color: var(--brand-brown);
}

.daterangepicker td.active,
.daterangepicker td.active:hover {
    background-color: var(--brand-dark-teal);
    color: var(--brand-ivory);
}

.daterangepicker td.off,
.daterangepicker td.off.in-range,
.daterangepicker td.off.start-date,
.daterangepicker td.off.end-date {
    background-color: #ffffff;
    color: #9aa5a5;
}

.daterangepicker .input-mini.active {
    border-color: var(--brand-dark-teal);
}

.daterangepicker .ranges li {
    color: var(--brand-muted-teal);
}

.daterangepicker .ranges li:hover,
.daterangepicker .ranges li.active {
    background-color: var(--brand-dark-teal);
    border-color: var(--brand-dark-teal);
    color: var(--brand-ivory);
}

.daterangepicker .applyBtn,
.applyBtn.btn-success {
    background: var(--brand-dark-teal) !important;
    border-color: var(--brand-dark-teal) !important;
    color: var(--brand-ivory) !important;
}

/* Room picker (select2) */
.select2-container--default .select2-selection--single {
    background-color: var(--brand-ivory);
    border: solid 1px var(--border-strong);
    border-radius: var(--radius-ui);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--brand-dark-teal);
}

.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--single {
    border-color: var(--brand-dark-teal);
}

.select2-dropdown {
    border-color: var(--border-strong);
    font-family: var(--brand-font-body);
    color: var(--brand-dark-teal);
}

.select2-container--default .select2-results__option--selected {
    background-color: var(--brand-sand);
}

.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: var(--brand-dark-teal);
    color: var(--brand-ivory);
}

/* Payment panels (reservation.html, site-custom.css section 5) */
#payment_success {
    border-color: var(--border);
}

#payment_success .result-icon {
    color: var(--brand-success);
}

#payment_failed {
    background: rgba(253, 70, 69, .06);
    border-color: rgba(253, 70, 69, .3);
    border-left-color: var(--brand-error);
}

#payment_failed > i,
#payment_failed .pf-icon {
    color: var(--brand-error);
}

html.lang-ar body #payment_failed {
    border-left-color: rgba(253, 70, 69, .3);
    border-right-color: var(--brand-error);
}

#payment_failed h4 { color: var(--brand-brown); }
#payment_failed .pf-link { color: var(--accent); }

#booking-ref {
    background: var(--brand-sand);
    border-color: var(--border);
}


/* ==========================================================================
   9. Footer
   Brun Terre, with the ivory full lockup - the Brand Book's "logo on brown"
   application. Golden Mist for the divider, headings and hover states.
   ========================================================================== */

footer,
footer.section-dark {
    background: var(--brand-brown);
    color: var(--text-on-dark-muted);
}

footer h3,
footer.text-light h3:not(.id-color) {
    color: var(--brand-gold);
    font-weight: 500;
}

.footer-brand-logo {
    display: block;
    width: 100%;
    height: auto;
}

.footer-split {
    border-color: rgba(var(--brand-gold-rgb), .55) !important;
}

.social-icons.social-icons-lg i {
    background: rgba(var(--brand-ivory-rgb), .1);
    color: var(--brand-ivory);
}

.social-icons.social-icons-lg i:hover {
    background: var(--brand-gold);
    color: var(--brand-brown);
}

.subfooter {
    background: var(--brand-brown-deep);
    border-top-color: rgba(var(--brand-gold-rgb), .14);
    color: rgba(var(--brand-ivory-rgb), .72);
}

footer .subfooter {
    margin-bottom: 0;
}


/* ==========================================================================
   10. Utilities
   ========================================================================== */

/* Back to top: brand arrow, turned upward */
#back-to-top {
    background: var(--brand-dark-teal);
    border-radius: var(--radius-ui);
    box-shadow: 0 6px 18px rgba(var(--brand-dark-teal-rgb), .28);
}

#back-to-top:hover {
    background: var(--brand-muted-teal);
}

#back-to-top:before {
    content: "" !important;
    display: block;
    width: 20px;
    height: 20px;
    margin: 6px auto 0;
    background-color: var(--brand-gold);
    -webkit-mask: url("../images/brand/icons/icon-arrow.svg") center / contain no-repeat;
            mask: url("../images/brand/icons/icon-arrow.svg") center / contain no-repeat;
    transform: rotate(-90deg);
}

/* Preloader */
#de-loader {
    background: var(--brand-ivory);
}

.lds-roller div:after {
    background: var(--brand-earth);
}

/* Gallery: hover veil in Dark Teal (opacity handled by .hover-op-05) */
.image-popup .bg-dark {
    background-color: var(--brand-dark-teal) !important;
}

.image-popup h4 {
    color: var(--brand-ivory);
}

.rounded-10 {
    border-radius: 10px;
}

/* Magnific popup (gallery lightbox) backdrop */
.mfp-bg {
    background: var(--brand-dark-teal);
}

/* Scrollbar thumb */
body::-webkit-scrollbar-thumb {
    background: var(--brand-earth);
}


/* ==========================================================================
   11. Responsive
   Colour/typeface only - the breakpoints and sizes live in css/mobile.css.
   ========================================================================== */

@media only screen and (max-width: 1199px) and (min-width: 993px) {
    /* 7 menu items + CTA + language switch share a laptop-width bar */
    header div#logo img,
    header div#logo img.w-300px,
    header div#logo img.w-250px {
        height: var(--logo-h-laptop);
    }
}

/* Mobile / tablet logo. css/mobile.css also sizes it; these rules load later
   and win, so the logo size lives in one place (the tokens above). */
@media only screen and (max-width: 992px) {
    header div#logo a,
    header.smaller div#logo a {
        display: flex;
        align-items: center;
        height: 100%;
        padding: var(--logo-pad-mobile);
    }

    header div#logo img.logo-mobile,
    header.smaller div#logo img.logo-mobile {
        height: var(--logo-h-mobile) !important;
        width: auto !important;
    }
}

@media only screen and (max-width: 360px) {
    header div#logo img.logo-mobile,
    header.smaller div#logo img.logo-mobile {
        height: var(--logo-h-small) !important;
    }
}

@media only screen and (max-width: 992px) {
    #mainmenu,
    header #mainmenu,
    header.header-mobile #mainmenu,
    .header-col-mid #mainmenu {
        background: var(--brand-dark-teal);
    }

    #mainmenu > li {
        border-bottom-color: rgba(var(--brand-ivory-rgb), .1);
    }

    #mainmenu a.menu-item:hover,
    #mainmenu a.menu-item.active {
        color: var(--brand-gold);
    }
}

@media (prefers-reduced-motion: reduce) {
    header div#logo img,
    a.btn-main,
    .btn-main,
    .icon-box,
    .bg-white.border-grey {
        transition: none;
    }
}