/* ==========================================================================
   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 old wordmark SVG floated in a 1440x810 artboard, which is why the theme
   sized it with width utilities (w-300px / w-250px) that made it overlap the
   menu. The Ayam Atlas standard lockup has a tight 1074x528 box, so it is
   sized by height and never stretched. 96px keeps it close to the brand's
   100px digital minimum at the top of the page. */
/* All logo sizes live in these variables - change only the numbers. */
:root {
    --logo-h-top: 72px;        /* desktop, top of page      (was 96px) */
    --logo-h-scrolled: 52px;   /* desktop, sticky header    (was 64px) */
    --logo-h-laptop: 62px;     /* 993-1199px screens        (was 76px) */
    --logo-h-mobile: 42px;     /* tablet / phone            (was 50px) */
    --logo-h-small: 38px;      /* small phones <=360px      (was 44px) */

    --logo-pad-top: 14px 0;        /* space above/below logo, top of page */
    --logo-pad-scrolled: 8px 0;    /* space above/below logo, sticky header */
    --logo-pad-mobile: 0 0 0 2px;  /* inside the 64px mobile bar */
}

header div#logo {
    max-width: none;
    padding: var(--logo-pad-top);
    transition: padding .3s ease;
}

header.smaller div#logo {
    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 {
    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,
.sw-overlay.op-2 {
    opacity: 1;
    background: linear-gradient(180deg,
        rgba(var(--brand-dark-teal-rgb), .45) 0%,
        rgba(var(--brand-dark-teal-rgb), .55) 50%,
        rgba(var(--brand-dark-teal-rgb), .70) 100%);
}

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), .50) 0%,
        rgba(var(--brand-dark-teal-rgb), .62) 55%,
        rgba(var(--brand-dark-teal-rgb), .80) 100%);
}

.slider-title, .slider-teaser,
#subheader h1, #subheader .lead, #subheader .sh-eyebrow {
    text-shadow: 0 2px 12px rgba(10, 50, 53, .45);
}

#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);
    }
}

@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;
    }
}


/* ==========================================================================
   Activities page, home teaser, garden-to-table story, footer links
   ========================================================================== */

.act-row + .act-row { margin-top: 70px; }
.act-text .subtitle { display: inline-block; }

.act-meta {
    list-style: none;
    padding: 0;
    margin: 18px 0 26px;
    border-top: 1px solid var(--border);
}
.act-meta li {
    display: flex;
    gap: 10px;
    align-items: baseline;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
    font-size: 15px;
}
.act-meta i { color: var(--accent); flex: 0 0 auto; }
.act-meta strong {
    flex: 0 0 90px;
    font-weight: 600;
    color: var(--text-heading);
}

.act-story { background: var(--brand-dark-teal); }
.act-story-img { aspect-ratio: 4 / 3; object-fit: cover; }
.story-step {
    height: 100%;
    padding: 26px 24px;
    border: 1px solid var(--border-on-dark);
    border-radius: var(--radius-ui);
}
.story-num {
    display: block;
    font-family: var(--brand-font-display);
    font-size: 30px;
    line-height: 1;
    color: var(--brand-gold);
    margin-bottom: 12px;
}
.story-step h3 { font-size: 22px; margin-bottom: 8px; }

.act-faq-item {
    border-bottom: 1px solid var(--border);
    padding: 16px 0;
}
.act-faq-item summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}
.act-faq-item summary::-webkit-details-marker { display: none; }
.act-faq-item summary::after {
    content: "+";
    font-size: 24px;
    line-height: 1;
    color: var(--accent);
    transition: transform .2s ease;
}
.act-faq-item[open] summary::after { transform: rotate(45deg); }
.act-faq-q { font-size: 18px; margin: 0; }
.act-faq-item p { margin: 12px 0 0; }

.act-card { color: inherit; }
.act-card img { transition: transform .4s ease; }
.act-card:hover img { transform: translateY(-4px); }
.act-card h3 { margin-top: 4px; }

/*.footer-seo-links {*/
/*    padding: 18px 0 22px;*/
/*    font-size: 14px;*/
/*    line-height: 2;*/
/*}*/
/*.footer-seo-links span { margin: 0 8px; opacity: .5; }*/

@media (max-width: 991px) {
    .act-row + .act-row { margin-top: 40px; }
    .act-text { padding: 26px 4px 0; }
}


/* Mobile logo size (overrides the fixed sizes in css/mobile.css) */
@media only screen and (max-width: 992px) {
    header div#logo,
    header.smaller div#logo {
        padding: var(--logo-pad-mobile);
    }
    #logo img.logo-mobile,
    header div#logo img.logo-mobile {
        height: var(--logo-h-mobile) !important;
    }
}

@media only screen and (max-width: 360px) {
    #logo img.logo-mobile,
    header div#logo img.logo-mobile {
        height: var(--logo-h-small) !important;
    }
}

/* --- desktop menu: always one line ---------------------------------------
   The theme floats each item with a fixed 30px gap; with the Activities
   item added the menu no longer fit and wrapped onto a second row. The
   menu is now a no-wrap flex row whose gaps and type size shrink with the
   screen width. */
@media only screen and (min-width: 993px) {
    header .header-col-mid {
        flex: 1 1 auto;
        min-width: 0;
        display: flex;
        justify-content: center;
    }
    #mainmenu {
        display: flex;
        flex-wrap: nowrap;
        white-space: nowrap;
        float: none;
    }
    #mainmenu > li {
        float: none;
        margin-right: clamp(10px, 1.5vw, 28px);
    }
    #mainmenu > li:last-child {
        margin-right: 0;
    }
    #mainmenu > li > a.menu-item {
        padding-right: 0;
    }
}

@media only screen and (min-width: 993px) and (max-width: 1199px) {
    #mainmenu > li > a.menu-item {
        font-size: 14px;
    }
    #mainmenu > li {
        margin-right: 9px;
    }
    .menu_side_area .btn-main {
        padding-left: 12px;
        padding-right: 12px;
        letter-spacing: 1px;
    }
}

/* Navbar "Reservation" button: always filled, so it stands out */
header .menu_side_area a.btn-main,
header .menu_side_area a.btn-main.btn-line,
header .menu_side_area a.btn-main:link,
header .menu_side_area a.btn-main:visited,
header .menu_side_area a.btn-main:focus {
    background: var(--brand-gold) !important;
    border-color: var(--brand-gold) !important;
    color: var(--brand-brown) !important;
    box-shadow: 0 4px 14px rgba(246, 206, 142, .35);
}

header .menu_side_area a.btn-main:hover,
header .menu_side_area a.btn-main:active {
    background: var(--brand-ivory) !important;
    border-color: var(--brand-ivory) !important;
    color: var(--brand-dark-teal) !important;
}

@keyframes resv-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(246, 206, 142, .55); }
    50%      { box-shadow: 0 0 0 8px rgba(246, 206, 142, 0); }
}
header .menu_side_area a.btn-main {
    animation: resv-pulse 2.4s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
    header .menu_side_area a.btn-main { animation: none; }
}

header #topbar,
header.transparent #topbar,
header.smaller #topbar {
    background: var(--brand-dark-teal) !important;
    border-bottom: 1px solid rgba(246, 206, 142, .18);
}

/* ==========================================================================
   v2 - Square, editorial imagery (no arches / rounded photo corners)
   Photos are shown full and square-cornered, like a magazine layout:
   large crops, thin rules and plenty of space around them.
   ========================================================================== */

.rounded-up-100,
.rounded-10,
.card-img-square,
.act-story-img,
.shape-mask-1,
.shape-mask-2,
#room-carousel .item img,
#facilities-carousel .item img,
.act-card img,
span.w-70px,
span.w-70px img {
    border-radius: 0 !important;
}

/* the arch masks become tall rectangles */
.shape-mask-1,
.shape-mask-2 {
    padding-top: 125%;
}

/* decorative arch frames behind hero / testimonial text */
.box-slider-decor {
    display: none;
}

/* inline radius left on the reservation success photo */
#success_message img {
    border-radius: 0 !important;
}

/* gentle zoom on image hover instead of shape effects */
.act-card,
.rr-img-wrap,
.rr-card-img,
.rr-thumb {
    overflow: hidden;
    display: block;
}
.act-card img,
.rr-img,
.rr-card-img img,
.rr-thumb img {
    transition: transform .8s ease;
}
.act-card:hover img,
.rr-img-wrap:hover .rr-img,
.rr-card:hover .rr-card-img img {
    transform: scale(1.04);
}

/* home: links under each room card */
.room-links {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
}
.room-link {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--brand-dark-teal);
    border-bottom: 1px solid currentColor;
    padding-bottom: 2px;
}
.room-link-book {
    color: var(--brand-earth-text);
}

/* ==========================================================================
   v2 - Rooms & Rates
   ========================================================================== */

.rr-room + .rr-room {
    margin-top: 90px;
}
.rr-img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}
.rr-body {
    padding: 34px 0 0;
}
@media (min-width: 992px) {
    .rr-body { padding: 0 0 0 56px; }
    .rr-room-rev .rr-body { padding: 0 56px 0 0; }
}
.rr-price {
    font-size: 14px;
    letter-spacing: .06em;
    color: var(--brand-earth-text);
    margin-bottom: 10px;
}
.text-light .rr-price,
#subheader .rr-price {
    color: var(--brand-gold);
}
.rr-amount {
    font-family: var(--brand-font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--brand-brown);
    letter-spacing: 0;
}
#subheader .rr-amount { color: var(--brand-ivory); font-size: 28px; }
.rr-price-lg .rr-amount { font-size: 32px; }

.rr-facts {
    list-style: none;
    padding: 0;
    margin: 18px 0 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    font-size: 14px;
}
.rr-facts li {
    display: flex;
    align-items: center;
    gap: 8px;
}
.rr-facts img {
    width: 20px;
    height: 20px;
    opacity: .75;
}
.rr-facts-list {
    display: block;
    border-top: 1px solid var(--border);
}
.rr-facts-list li {
    padding: 11px 0;
    border-bottom: 1px solid var(--border);
}

.rr-actions {
    display: flex;
    align-items: center;
    gap: 26px;
    flex-wrap: wrap;
    margin-top: 26px;
}
.rr-more {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--brand-dark-teal);
    border-bottom: 1px solid currentColor;
    padding-bottom: 2px;
}
.rr-more:hover { color: var(--brand-earth-text); }

.rr-aside {
    padding: 34px;
    background: var(--surface);
    border: 1px solid var(--border);
}
@media (min-width: 992px) {
    .rr-aside { position: sticky; top: 140px; }
}
.rr-wa {
    display: block;
    text-align: center;
    font-weight: 600;
    color: var(--brand-dark-teal);
}

.rr-thumb img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}

.rr-notes-list {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 1px solid var(--border);
}
.rr-notes-list li {
    padding: 14px 0 14px 28px;
    border-bottom: 1px solid var(--border);
    position: relative;
}
.rr-notes-list li::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 24px;
    width: 10px;
    height: 1px;
    background: var(--brand-earth-text);
}

/* other-room cards */
.rr-card {
    color: inherit;
    background: var(--surface);
    border: 1px solid var(--border);
    height: 100%;
}
.rr-card-img img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}
.rr-card-body {
    padding: 22px 24px 26px;
}
.rr-card-body h3 {
    font-size: 22px;
    margin-bottom: 6px;
}

/* reservation: how it works + your room */
.rr-how { margin-bottom: 34px; }
.rr-steps {
    counter-reset: rrstep;
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 14px;
}
@media (min-width: 768px) {
    .rr-steps { grid-template-columns: repeat(3, 1fr); gap: 22px; }
}
.rr-steps li {
    counter-increment: rrstep;
    border-top: 1px solid var(--border-strong);
    padding-top: 14px;
    font-size: 15px;
}
.rr-steps li::before {
    content: "0" counter(rrstep);
    display: block;
    font-family: var(--brand-font-display);
    font-size: 24px;
    color: var(--brand-earth-text);
    margin-bottom: 6px;
}
.rr-steps a {
    color: var(--brand-dark-teal);
    font-weight: 600;
    border-bottom: 1px solid currentColor;
}
.rr-summary-item {
    background: var(--surface);
    border: 1px solid var(--border);
}
.rr-summary-item[hidden] { display: none !important; }
.rr-summary-img img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}
.rr-summary-body {
    padding: 20px 24px;
}
.rr-summary-body .rr-facts { margin: 10px 0 14px; }

/* five activity cards in one row on desktop */
@media (min-width: 992px) {
    .act-col5 { flex: 0 0 20%; max-width: 20%; }
}
/* phones/tablets: the photo always comes before its text */
@media (max-width: 991px) {
    .rr-room-rev > .col-lg-7 { order: -1; }
    .rr-room + .rr-room { margin-top: 60px; }
}


/* ==========================================================================
   v3 - Homepage intro (full width) and Booking.com reviews
   ========================================================================== */
.home-intro-title { font-size: clamp(34px, 4.2vw, 54px); }
.home-intro-lead { max-width: 760px; margin-left: auto; margin-right: auto; }
.home-score {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-top: 18px;
    color: var(--text-primary);
}
.home-score-badge {
    background: var(--brand-dark-teal);
    color: var(--brand-ivory);
    font-weight: 700;
    padding: 8px 12px;
    font-size: 16px;
    white-space: nowrap;
}
.home-score-text { font-size: 14px; text-align: left; border-bottom: 1px solid var(--border-strong); }
.home-score:hover .home-score-text { color: var(--brand-earth-text); }

.review-quote { line-height: 1.35; }
.review-who { display: block; font-weight: 600; color: var(--brand-gold); }
.review-score {
    display: inline-block;
    margin-top: 8px;
    font-size: 13px;
    border: 1px solid var(--border-on-dark);
    padding: 2px 8px;
}
.review-all {
    display: inline-block;
    margin-top: 26px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    border-bottom: 1px solid currentColor;
}

/* ==========================================================================
   v3 - Reservation form: one block per room
   ========================================================================== */
.bk-room {
    border: 1px solid var(--border);
    padding: 22px 22px 8px;
    margin-bottom: 18px;
    background: var(--brand-ivory);
}
.bk-room-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.bk-room-head h4 { margin: 0; }
.bk-remove {
    background: none; border: 0; padding: 0;
    font-size: 13px; font-weight: 600; color: var(--brand-earth-text);
    border-bottom: 1px solid currentColor;
}
.bk-label {
    font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
    color: var(--brand-earth-text); margin: 14px 0 10px;
}
.bk-counters { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bk-counter {
    display: flex; justify-content: space-between; align-items: center;
    border: 1px solid var(--border); background: var(--surface); padding: 10px 14px;
}
.bk-counter-label { font-weight: 600; color: var(--text-heading); }
.bk-counter-ctrl { display: inline-flex; align-items: center; gap: 14px; }
.bk-counter-val { min-width: 14px; text-align: center; font-weight: 600; }
.bk-step {
    width: 32px; height: 32px; border-radius: 50%;
    border: 0; background: var(--brand-dark-teal); color: var(--brand-ivory);
    font-size: 18px; line-height: 1;
}
.bk-step:disabled { background: var(--border-strong); cursor: not-allowed; }
.bk-hint, .bk-fits { font-size: 13px; margin: 8px 0 12px; }
.bk-hint { color: var(--brand-earth-text); }
.bk-fits { opacity: .75; }

.bk-types { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 575px) { .bk-types { grid-template-columns: 1fr; } }
.bk-type {
    position: relative; display: flex; gap: 12px; align-items: stretch;
    border: 1px solid var(--border); background: var(--surface);
    cursor: pointer; transition: border-color .2s, box-shadow .2s;
}
.bk-type input { position: absolute; opacity: 0; pointer-events: none; }
.bk-type-img { flex: 0 0 88px; }
.bk-type-img img { width: 88px; height: 100%; min-height: 88px; object-fit: cover; display: block; }
.bk-type-body { padding: 10px 10px 10px 0; display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.bk-type-name { font-weight: 600; font-size: 15px; color: var(--text-heading); }
.bk-type-cap { opacity: .75; }
.bk-type-price strong { color: var(--brand-brown); }
.bk-type:hover { border-color: var(--border-strong); }
.bk-type.is-on { border-color: var(--brand-dark-teal); box-shadow: inset 0 0 0 1px var(--brand-dark-teal); }
.bk-type.is-on::after {
    content: "\2713"; position: absolute; top: 6px; right: 8px;
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--brand-dark-teal); color: var(--brand-ivory);
    font-size: 13px; line-height: 22px; text-align: center;
}
.bk-type.is-off { opacity: .4; cursor: not-allowed; filter: grayscale(.6); }
.bk-type input:focus-visible + .bk-type-img { outline: 2px solid var(--brand-gold); }

.bk-add {
    background: none; border: 1px dashed var(--border-strong);
    width: 100%; padding: 12px; margin-bottom: 8px;
    font-weight: 600; color: var(--brand-dark-teal);
}
.bk-add:hover { border-style: solid; }
#bk-pick-error { display: none; margin: 6px 0 12px; }

.bk-summary {
    border-top: 2px solid var(--brand-dark-teal);
    padding: 16px 0 6px; margin: 16px 0 26px;
}
.bk-summary-title {
    font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
    color: var(--brand-earth-text); margin-bottom: 8px;
}
.bk-summary ul { list-style: none; padding: 0; margin: 0; }
.bk-summary li {
    display: flex; justify-content: space-between; gap: 12px;
    padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 14px;
}
.bk-total { display: flex; justify-content: space-between; padding: 12px 0 4px; font-size: 15px; }
.bk-total strong { font-size: 20px; color: var(--brand-brown); }
.bk-note { font-size: 12px; opacity: .75; margin: 6px 0 0; }

/* success state: calm, readable */
#success_message { padding: 20px 0 10px; }
#success_message .result-icon { font-size: 54px; display: block; margin-bottom: 14px; }
#success_message .success-title { font-size: clamp(28px, 3.2vw, 40px); line-height: 1.2; }
#success_message .success-text { max-width: 560px; margin: 14px auto 0; }
#success_message .success-img {
    width: 100%; max-width: 620px; aspect-ratio: 16 / 9; object-fit: cover;
    display: block; margin: 28px auto 0;
}
