/* ============================================================
   Aeolia Mobile Menu — Luxury Stone Aesthetic
   ============================================================ */

:root {
	--amm-bg:            #0f0d0a;
	--amm-text:          #f0ebe2;
	--amm-accent:        #c4a882;
	--amm-muted:         rgba(240, 235, 226, 0.85);
	--amm-border:        rgba(240, 235, 226, 0.1);
	--amm-trigger-color: #3d3530;
	--amm-ease:          cubic-bezier(0.76, 0, 0.24, 1);
	--amm-dur:           0.65s;
	--amm-item-size:     clamp(28px, 5.5vw, 52px);
	--amm-sub-size:      clamp(20px, 2.5vw, 20px);
	--amm-z:             999999;
}

/* ── Mobile Header Bar ── */

.amm-mobile-header {
	position:        fixed;
	top:             20px;
	left:            15px;
	right:           10px;
	z-index:         calc(var(--amm-z) + 1);
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	padding:         0 20px;
	height:          70px;
	background:      transparent;
	transition:      top 0.4s ease, left 0.4s ease, right 0.4s ease, background 0.4s ease, backdrop-filter 0.4s ease;
}

body.admin-bar .amm-mobile-header { top: 58px; }

.amm-mobile-header--open {
	top:   0 !important;
	left:  0 !important;
	right: 0 !important;
}

body.admin-bar .amm-mobile-header--open { top: 32px !important; }

.amm-mobile-header--scrolled {
	top:             0;
	left:            0;
	right:           0;
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
}

body.admin-bar .amm-mobile-header--scrolled { top: 32px; }

/* ── Scrolled: darken brand + hamburger for legibility over the
      light blurred background (logo & bars are white over the hero). ── */

/* Logo: the sticky variant is hidden until scrolled */
.amm-mobile-header__brand .amm-logo--sticky { display: none; }

/* (a) A dedicated sticky logo was provided → swap the image on scroll */
.amm-mobile-header--scrolled.amm-has-sticky-logo .amm-mobile-header__brand .amm-logo--default { display: none; }
.amm-mobile-header--scrolled.amm-has-sticky-logo .amm-mobile-header__brand .amm-logo--sticky  { display: block; }

/* (b) No sticky logo set → recolor the (white) logo to dark as a fallback */
.amm-mobile-header--scrolled:not(.amm-has-sticky-logo) .amm-mobile-header__brand img {
	filter: brightness(0) opacity(0.9);
	transition: filter 0.4s ease;
}

.amm-mobile-header--scrolled .amm-mobile-header__brand span {
	color: var(--amm-trigger-scrolled, #1a1714);
}

.amm-mobile-header--scrolled .amm-bar {
	background: var(--amm-trigger-scrolled, #1a1714);
}

/* Keep the open-overlay (X) state on the light text, regardless of scroll */
.amm-trigger.is-open .amm-bar {
	background: var(--amm-text) !important;
}

/* When the overlay menu is OPEN, always show the white (overlay) logo,
   regardless of scroll state — the overlay background is dark, so the
   scrolled/dark logo must never win here. */
.amm-mobile-header--open .amm-mobile-header__brand .amm-logo--default {
	display: block !important;
	filter:  none  !important;
}
.amm-mobile-header--open .amm-mobile-header__brand .amm-logo--sticky {
	display: none !important;
}

.amm-mobile-header__brand a,
.amm-mobile-header__brand a:visited,
.amm-mobile-header__brand a:link {
	display:         flex;
	align-items:     center;
	line-height:     0;
	text-decoration: none !important;
}

.amm-mobile-header__brand img {
	display:    block;
	max-width:  209px;
	height:     auto;
	object-fit: contain;
}

.amm-mobile-header__brand span {
	font-family:    "Syne", sans-serif;
	font-size:      13px;
	font-weight:    500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color:          var(--amm-trigger-color);
}

/* ── Trigger (Hamburger) ── */

.amm-trigger {
	display:         flex;
	flex-direction:  column;
	justify-content: center;
	align-items:     center;
	gap:             5px;
	width:           32px;
	height:          44px;
	padding:         0;
	background:      transparent !important;
	border:          none !important;
	box-shadow:      none !important;
	border-radius:   0 !important;
	cursor:          pointer;
	outline:         none;
	flex-shrink:     0;
	transition:      opacity 0.3s;
}

.amm-trigger:focus-visible {
	outline: 2px solid var(--amm-accent);
	outline-offset: 4px;
}

.amm-bar {
	display:          block;
	height:           2px;
	background:       var(--amm-trigger-color);
	border-radius:    1px;
	transform-origin: center;
	transition:
		transform  var(--amm-dur) var(--amm-ease),
		opacity    0.3s ease,
		width      0.4s ease,
		background 0.3s ease;
}

.amm-bar:nth-child(1) { width: 24px; }
.amm-bar:nth-child(2) { width: 24px; }
.amm-bar:nth-child(3) { width: 24px; }

.amm-trigger.is-open .amm-bar { background: var(--amm-text); }
.amm-trigger.is-open .amm-bar:nth-child(1) { width: 26px; transform: translateY(6.5px) rotate(45deg); }
.amm-trigger.is-open .amm-bar:nth-child(2) { opacity: 0; width: 0; }
.amm-trigger.is-open .amm-bar:nth-child(3) { width: 26px; transform: translateY(-6.5px) rotate(-45deg); }

/* ── Overlay ── */

.amm-overlay {
	position:   fixed;
	inset:      0;
	background: var(--amm-bg);
	z-index:    var(--amm-z);
	display:    flex;
	flex-direction: column;
	justify-content: center;
	padding:    90px 10vw 90px;
	overflow-y: auto;

	visibility: hidden;
	opacity:    0;
	transition:
		opacity    var(--amm-dur) var(--amm-ease),
		visibility var(--amm-dur) var(--amm-ease);
}

.amm-overlay::before {
	content:  '';
	position: absolute;
	inset:    0;
	background:
		radial-gradient(ellipse at 80% 10%, rgba(196,168,130,0.06) 0%, transparent 60%),
		radial-gradient(ellipse at 10% 90%, rgba(196,168,130,0.04) 0%, transparent 50%);
	pointer-events: none;
}

.amm-overlay.is-open {
	visibility: visible;
	opacity:    1;
}

/* ── Brand (top-left) ── */

.amm-brand {
	position:    absolute;
	top:         26px;
	left:        8vw;
}

.amm-brand a,
.amm-brand a:visited,
.amm-brand a:link {
	display:         inline-block;
	text-decoration: none !important;
	opacity:         0.85;
	transition:      opacity 0.25s;
}

.amm-brand a:hover { opacity: 1; }

.amm-brand img {
	display:    block;
	height:     28px;
	width:      auto;
	max-width:  200px;
	object-fit: contain;
}

/* ── Close Button ── */

.amm-close {
	position:        absolute;
	top:             22px;
	right:           22px;
	width:           40px;
	height:          40px;
	background:      transparent !important;
	border:          none !important;
	box-shadow:      none !important;
	border-radius:   0 !important;
	cursor:          pointer;
	display:         flex;
	align-items:     center;
	justify-content: center;
	padding:         0;
	opacity:         0.4;
	outline:         none;
	transition:      opacity 0.3s, transform 0.4s var(--amm-ease);
}

.amm-close:hover      { opacity: 0.9; transform: rotate(90deg); }
.amm-close:focus-visible { outline: 1px solid var(--amm-accent); }

.amm-close span {
	position:     absolute;
	width:        22px;
	height:       1.5px;
	background:   var(--amm-text);
	border-radius: 1px;
}
.amm-close span:first-child { transform: rotate(45deg); }
.amm-close span:last-child  { transform: rotate(-45deg); }

/* ── Eyebrow label ── */

.amm-nav::before {
	content:        'MENU';
	display:        block;
	font-size:      10px;
	font-weight:    500;
	letter-spacing: 0.25em;
	color:          var(--amm-muted);
	margin-bottom:  32px;
}

/* ── Navigation list ── */

.amm-nav { width: 100%; }

.amm-list {
	list-style: none;
	margin:     0;
	padding:    0;
}

/* ── Menu Items ── */

.amm-item {
	overflow:      hidden;
	margin-bottom: 2px;
	border-bottom: 1px solid transparent;
	transition:    border-color 0.3s;
}

.amm-item:last-child { border-bottom: 1px solid var(--amm-border); }
.amm-item:first-child { border-top: 1px solid var(--amm-border); }

.amm-overlay .amm-link,
.amm-overlay .amm-link:visited,
.amm-overlay .amm-link:link {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	font-family:     inherit;
	font-size:       var(--amm-item-size);
	font-weight:     400;
	line-height:     1;
	letter-spacing:  0.18em;
	color:           var(--amm-text) !important;
	text-decoration: none !important;
	position:        relative;
	padding:         20px 0;

	transform:       translateY(100%);
	opacity:         0;
	transition:
		transform var(--amm-dur) var(--amm-ease),
		opacity   var(--amm-dur) var(--amm-ease),
		color     0.3s ease,
		letter-spacing 0.4s ease;
	transition-delay: var(--amm-delay, 0s), var(--amm-delay, 0s), 0s, 0s;
}

/* Arrow icon on hover */
.amm-overlay .amm-link::after {
	content:    '→';
	font-size:  0.45em;
	letter-spacing: 0;
	color:      var(--amm-accent);
	opacity:    0;
	transform:  translateX(-8px);
	transition: opacity 0.3s, transform 0.3s var(--amm-ease);
}

.amm-overlay.is-open .amm-link {
	transform: translateY(0);
	opacity:   1;
}

.amm-overlay .amm-link:hover,
.amm-overlay .amm-link:focus-visible {
	color:          var(--amm-accent) !important;
	letter-spacing: 0.22em;
}

.amm-overlay .amm-link:hover::after { opacity: 1; transform: translateX(0); }

.amm-overlay .amm-item--active > .amm-link { color: var(--amm-accent) !important; }

/* ── Language switcher override ── */

.amm-overlay .amm-item a:not(.amm-link),
.amm-overlay .amm-item a:not(.amm-link):visited,
.amm-overlay .amm-item a:not(.amm-link):link {
	color:           var(--amm-text) !important;
	text-decoration: none !important;
}

/* ── Sub-menu ── */

.amm-list--sub {
	padding:     0 0 12px 0;
	margin-top:  -8px;
}

.amm-item--parent { overflow: visible; }

.amm-item__row {
	display:     flex;
	align-items: center;
}

.amm-item__row .amm-link {
	flex: 1;
}

/* Toggle button */
.amm-toggle {
	display:         flex;
	align-items:     center;
	justify-content: center;
	width:           40px;
	height:          40px;
	padding:         0;
	background:      transparent !important;
	border:          none !important;
	box-shadow:      none !important;
	border-radius:   0 !important;
	cursor:          pointer;
	flex-shrink:     0;
	outline:         none;
}

.amm-toggle__icon {
	display:     block;
	font-size:   22px;
	font-weight: 300;
	line-height: 1;
	color:       var(--amm-muted);
	transition:  transform 0.35s var(--amm-ease), color 0.3s;
}

.amm-toggle__icon::before {
	content: '+';
}

.amm-item--parent.is-open .amm-toggle__icon {
	transform: rotate(45deg);
	color:     var(--amm-accent);
}

/* Sub-menu collapsed by default */
.amm-list--sub {
	max-height: 0;
	overflow:   hidden;
	transition: max-height 0.45s var(--amm-ease);
	padding:    0;
	margin:     0;
}

.amm-item--parent.is-open .amm-list--sub {
	max-height: 600px;
}

.amm-item--sub { overflow: hidden; border: none; }

.amm-overlay .amm-item--sub .amm-link,
.amm-overlay .amm-item--sub .amm-link:visited,
.amm-overlay .amm-item--sub .amm-link:link {
	font-size:      var(--amm-sub-size);
	letter-spacing: 0.2em;
	color:          var(--amm-muted) !important;
	padding:        8px 0;
}

.amm-overlay .amm-item--sub .amm-link:hover { color: var(--amm-accent) !important; }
.amm-overlay .amm-item--sub .amm-link::after { display: none; }

/* ── Footer ── */

.amm-footer {
	margin-top:   40px;
	padding-top:  28px;
	border-top:   1px solid var(--amm-border);

	transform:    translateY(24px);
	opacity:      0;
	transition:
		transform var(--amm-dur) var(--amm-ease),
		opacity   var(--amm-dur) var(--amm-ease);
	transition-delay: 0.45s;
}

.amm-overlay.is-open .amm-footer {
	transform: translateY(0);
	opacity:   1;
}

.amm-footer a {
	color:           var(--amm-muted);
	text-decoration: none;
	font-size:       11px;
	letter-spacing:  0.18em;
	text-transform:  uppercase;
	transition:      color 0.25s;
}

.amm-footer a:hover { color: var(--amm-accent); }

/* ── CTA Button (inside overlay) ── */

.amm-cta-wrap {
	margin-top: 44px;

	transform:  translateY(24px);
	opacity:    0;
	transition:
		transform var(--amm-dur) var(--amm-ease),
		opacity   var(--amm-dur) var(--amm-ease);
	transition-delay: 0.5s;
}

.amm-overlay.is-open .amm-cta-wrap {
	transform: translateY(0);
	opacity:   1;
}

.amm-overlay .amm-cta,
.amm-overlay .amm-cta:visited,
.amm-overlay .amm-cta:link {
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	padding:         18px 44px;
	background:      var(--amm-accent);
	color:           var(--amm-bg) !important;
	font-family:     "Syne", sans-serif;
	font-size:       16px;
	font-weight:     600;
	letter-spacing:  0.14em;
	text-transform:  uppercase;
	text-decoration: none !important;
	border-radius:   100px;
	box-shadow:      0 8px 30px rgba(196, 168, 130, 0.28);
	transition:      background 0.25s, box-shadow 0.25s, transform 0.25s;
}

.amm-overlay .amm-cta:hover,
.amm-overlay .amm-cta:focus-visible {
	background: #d8bd95;
	box-shadow: 0 10px 36px rgba(196, 168, 130, 0.42);
	transform:  translateY(-2px);
	outline:    none;
}

/* ── Floating Booking Button (sticky FAB, mobile) ── */

.amm-book-fab {
	position:        fixed;
	left:            50%;
	bottom:          22px;
	transform:       translateX(-50%);
	z-index:         calc(var(--amm-z) - 1); /* below overlay, above page content */

	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	gap:             8px;
	padding:         15px 34px;
	max-width:       calc(100vw - 32px);

	background:              rgba(20, 17, 13, 0.22);
	-webkit-backdrop-filter: blur(18px) saturate(150%);
	backdrop-filter:         blur(18px) saturate(150%);
	border:                  1px solid rgba(255, 255, 255, 0.55);
	border-radius:           100px;
	box-shadow:              0 8px 28px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.25);

	font-family:     "Syne", sans-serif;
	font-size:       15px;
	font-weight:     600;
	letter-spacing:  0.08em;
	text-transform:  uppercase;
	white-space:     nowrap;
	color:           #ffffff !important;
	text-shadow:     0 1px 4px rgba(0, 0, 0, 0.55);
	text-decoration: none !important;

	animation:  amm-fab-in 0.6s var(--amm-ease) 0.5s backwards;
	transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.4s var(--amm-ease), border-color 0.3s ease, opacity 0.4s ease, visibility 0.4s ease;
}

/* Fade out when the footer is reached; fades back in on scroll up (JS toggles) */
.amm-book-fab--hidden {
	opacity:        0;
	visibility:     hidden;
	pointer-events: none;
	transform:      translateX(-50%) translateY(20px);
}

.amm-book-fab:hover,
.amm-book-fab:focus-visible {
	background:   rgba(20, 17, 13, 0.42);
	border-color: var(--amm-accent);
	box-shadow:   0 14px 42px rgba(0, 0, 0, 0.4);
	transform:    translateX(-50%) translateY(-3px);
	outline:      none;
}

/* Hide the FAB while the menu overlay is open (the in-menu CTA shows instead) */
.amm-overlay.is-open ~ .amm-book-fab {
	opacity:        0;
	visibility:     hidden;
	pointer-events: none;
	transform:      translateX(-50%) translateY(12px);
}

@keyframes amm-fab-in {
	from { opacity: 0; transform: translateX(-50%) translateY(20px); }
	to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* ── Mobile Responsive ── */

@media (max-width: 480px) {
	.amm-overlay { padding: 80px 7vw 80px; }
	.amm-overlay .amm-cta {
		width:       100%;
		padding:     18px 24px;
		font-size:   15px;
	}
}


/* ============================================================
   DESKTOP HEADER
   ============================================================ */

.amm-dh {
	position:      fixed;
	top:           16px;
	left:          50%;
	transform:     translateX(-50%);
	width:         calc(100% - 40px);
	max-width:     1320px;
	z-index:       99998;
	border-radius: 100px;
	overflow:      hidden;
	background:    var(--dh-bg, #b8a99a);
	transition:
		background      0.5s ease,
		border-radius   0.5s ease,
		top             0.5s ease,
		width           0.5s ease,
		max-width       0.5s ease,
		backdrop-filter 0.5s ease;
}

/* ── Homepage: transparent over hero ── */

.amm-dh.amm-dh--home {
	/* flush with the hero image top edge (page has 20px top padding) */
	top:           20px;
	left:          50%;
	transform:     translateX(-50%);
	/* match the hero image bounds (hero container has 20px side padding) */
	width:         calc(100% - 40px);
	max-width:     none;
	border-radius: 0;
	/* same dark glass as the scrolled state, shown from the very start —
	   also passes WCAG AA contrast for the white links */
	background:              rgba(10, 10, 10, 0.78) !important;
	backdrop-filter:         blur(18px);
	-webkit-backdrop-filter: blur(18px);
	overflow:      visible;
}

/* Unified hero-header bar on ALL pages: 20px radius; keeps the base 62px
   inner height so the bar stays slim. */
.amm-dh.amm-dh--home {
	border-radius: 20px;
}

/* Account for WP admin bar when logged in */
body.admin-bar .amm-dh.amm-dh--home {
	top: 52px;
}

body.admin-bar .amm-trigger {
	top: 50px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .amm-dh.amm-dh--home {
		top: 46px;
	}
	body.admin-bar .amm-trigger {
		top: 50px;
	}
}

/* ── Homepage scrolled: dark blur, snap to top ── */

.amm-dh.amm-dh--home.amm-dh--scrolled {
	top:                     0;
	left:                    50%;
	transform:               translateX(-50%);
	/* keep the full container width on scroll — don't shrink to 1320px */
	width:                   calc(100% - 40px);
	max-width:               none;
	background:              rgba(10, 10, 10, 0.78) !important;
	backdrop-filter:         blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border-radius:           0 0 16px 16px;
}

body.admin-bar .amm-dh.amm-dh--home.amm-dh--scrolled {
	top: 32px;
}

.amm-dh__inner {
	display:     flex;
	align-items: center;
	padding:     0 80px;
	height:      62px;
	gap:         24px;
}

/* ── Brand ── */

.amm-dh__brand { flex-shrink: 0; }

.amm-dh__brand a,
.amm-dh__brand a:visited,
.amm-dh__brand a:link {
	display:         inline-block;
	font-size:       12px;
	font-weight:     500;
	letter-spacing:  0.2em;
	text-transform:  uppercase;
	color:           var(--dh-text, #f0ebe2) !important;
	text-decoration: none !important;
}

.amm-dh__brand img {
	display:    block;
	height:     28px;
	width:      auto;
	max-width:  220px;
	object-fit: contain;
}

/* ── Nav ── */

.amm-dh__nav { flex-shrink: 0; display: flex; margin-left: auto; }

.amm-dh__list {
	display:     flex;
	align-items: center;
	gap:         0;
	list-style:  none;
	margin:      0;
	padding:     0;
}

.amm-dh__item { position: relative; }
.amm-dh__item:last-child .amm-dh__link { margin-right: 0; }

.amm-dh__link,
.amm-dh__link:visited,
.amm-dh__link:link {
	display:         inline-flex;
	align-items:     center;
	gap:             5px;
	font-family:     "Syne", sans-serif;
	font-size:       17px;
	font-weight:     400;
	color:           #ffffff !important;
	text-decoration: none !important;
	white-space:     nowrap;
	margin:          0 60px 0 0;
	padding:         4px 0;
	border-style:    solid;
	border-width:    0 0 1px 0;
	border-color:    transparent;
	transition:      border-color 0.3s ease, opacity 0.2s;
}

.amm-dh__link:hover               { border-color: rgba(255,255,255,0.6); opacity: 1; }
.amm-dh__item--active .amm-dh__link { border-color: #ffffff; }

.amm-dh__chevron {
	display:    inline-block;
	flex-shrink: 0;
	transition: transform 0.25s;
}

.amm-dh__item--has-children:hover .amm-dh__chevron {
	transform: rotate(180deg);
}

/* ── Dropdown ── */

.amm-dh__dropdown {
	position:   absolute;
	top:        calc(100% + 10px);
	left:       50%;
	transform:  translateX(-50%) translateY(6px);
	background: #ffffff;
	border-radius: 10px;
	padding:    8px 0;
	min-width:  160px;
	list-style: none;
	margin:     0;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);

	opacity:    0;
	visibility: hidden;
	transition:
		opacity    0.25s ease,
		transform  0.25s ease,
		visibility 0.25s ease;
}

.amm-dh__item--has-children:hover .amm-dh__dropdown {
	opacity:    1;
	visibility: visible;
	transform:  translateX(-50%) translateY(0);
}

/* Invisible hover bridge across the 10px gap between the link and the box */
.amm-dh__dropdown::after {
	content:  '';
	position: absolute;
	top:      -12px;
	left:     0;
	right:    0;
	height:   12px;
}

/* Arrow pointer */
.amm-dh__dropdown::before {
	content:      '';
	position:     absolute;
	top:          -6px;
	left:         50%;
	transform:    translateX(-50%);
	border-left:  6px solid transparent;
	border-right: 6px solid transparent;
	border-bottom: 6px solid #ffffff;
}

.amm-dh__sub-item { display: block; }

.amm-dh__sub-link,
.amm-dh__sub-link:visited,
.amm-dh__sub-link:link {
	display:         block;
	padding:         9px 20px;
	font-size:       16px;
	font-weight:     400;
	letter-spacing:  0.02em;
	color:           #374151 !important;
	text-decoration: none !important;
	white-space:     nowrap;
	transition:      background 0.15s, color 0.15s;
}

.amm-dh__sub-link:hover       { background: #f9f7f4; color: #1f2937 !important; }
/* darker bronze than --amm-accent: 5:1 on the white dropdown for WCAG AA */
.amm-dh__sub-item--active .amm-dh__sub-link { color: #8a6a35 !important; font-weight: 500; }

/* ── CTA Button ── */

.amm-dh__actions { flex-shrink: 0; margin-left: 60px; }

.amm-dh__cta,
.amm-dh__cta:visited,
.amm-dh__cta:link {
	display:         inline-block;
	padding:         12px 28px;
	background:      #ffffff;
	color:           #1f2937 !important;
	font-family:     "Syne", sans-serif;
	font-size:       15px;
	font-weight:     400;
	letter-spacing:  0.02em;
	border-radius:   100px;
	text-decoration: none !important;
	white-space:     nowrap;
	border:          1px solid rgba(255,255,255,0.3);
	box-shadow:      0 2px 12px rgba(0,0,0,0.08);
	transition:      background 0.25s, box-shadow 0.25s, transform 0.25s;
}

.amm-dh__cta:hover {
	background:  #f5f0e8;
	box-shadow:  0 4px 20px rgba(0,0,0,0.14);
	transform:   translateY(-1px);
}


/* ════════════════════════════════════════
   HERO BADGE — small image bottom-right of
   the home hero, links to a PDF, fades out
   on scroll
════════════════════════════════════════ */

.amm-hero-badge {
	position:       fixed;
	right:          20px; /* refined by JS to hug the hero's rounded corner */
	bottom:         0;
	z-index:        calc(var(--amm-z) - 1);
	display:        block;
	width:          370px;
	max-width:      calc(100vw - 52px);
	opacity:        1;
	visibility:     visible;
	transform:      translateY(0);
	/* outer corner matches the hero banner radius so it sits flush in the corner */
	border-radius:  0 0 20px 0;
	overflow:       hidden;
	transition:     opacity 0.5s ease, transform 0.5s ease, visibility 0.5s ease;
}

.amm-hero-badge img {
	display: block;
	width:   100%;
	height:  auto;
}

.amm-hero-badge--hidden {
	opacity:        0;
	visibility:     hidden;
	transform:      translateY(24px);
	pointer-events: none;
}

/* Hide while the mobile menu overlay is open */
.amm-overlay.is-open ~ .amm-hero-badge {
	opacity:        0;
	visibility:     hidden;
	pointer-events: none;
}

@media (max-width: 767px) {
	.amm-hero-badge {
		width: 314px;
	}
	.amm-hero-badge--hide-mobile {
		display: none !important;
	}
}


/* ════════════════════════════════════════
   LIGHTBOX OPEN — hide the site chrome
   The Elementor lightbox sits at z-index 9999, well below the headers
   (99998 / 1000000), so it would otherwise cover the gallery controls.
   JS toggles .amm-lightbox-open on <html> while a lightbox is visible.
════════════════════════════════════════ */

html.amm-lightbox-open .amm-dh,
html.amm-lightbox-open .amm-mobile-header,
html.amm-lightbox-open .amm-book-fab,
html.amm-lightbox-open .amm-hero-badge {
	opacity:        0 !important;
	visibility:     hidden !important;
	pointer-events: none !important;
	transition:     opacity 0.25s ease, visibility 0.25s ease;
}
