/*
Theme Name: Hotel Flora Parc
Description: Tema hijo de Hello Elementor para Hotel Flora Parc.
Author: Namastech
Template: hello-elementor
Version: 1.0.0
Text Domain: floraparc
*/
@font-face{font-family:"Geist";font-style:normal;font-weight:300 800;font-display:swap;src:url(fonts/geist-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Geist";font-style:normal;font-weight:300 800;font-display:swap;src:url(fonts/geist-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Host Grotesk";font-style:normal;font-weight:300 800;font-display:swap;src:url(fonts/host-grotesk-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Host Grotesk";font-style:normal;font-weight:300 800;font-display:swap;src:url(fonts/host-grotesk-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root {
	--fp-bg: hsl(40 20% 98%);
	--fp-fg: hsl(220 20% 15%);
	--fp-card: #fff;
	--fp-gold: hsl(49 92% 47%);
	--fp-gold-light: hsl(49 80% 90%);
	--fp-gold-dark: hsl(49 85% 35%);
	--fp-charcoal: hsl(220 20% 15%);
	--fp-charcoal-light: hsl(220 15% 25%);
	--fp-secondary: hsl(40 15% 94%);
	--fp-muted: hsl(40 10% 93%);
	--fp-muted-fg: hsl(220 10% 42%);
	--fp-border: hsl(40 15% 88%);
	--fp-font-heading: "Host Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
	--fp-font-body: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
	--fp-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);
	--fp-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);
	--fp-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);
	--fp-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);
}

html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
	background: var(--fp-bg);
	color: var(--fp-fg);
	font-family: var(--fp-font-body);
	font-size: 16px;
	line-height: 1.5;
	font-feature-settings: "kern" 1, "liga" 1, "ss01" 1;
	-webkit-font-smoothing: antialiased;
	text-rendering: geometricPrecision;
}
h1, h2, h3, h4, h5, h6 { font-family: var(--fp-font-heading); font-weight: 600; letter-spacing: 0; margin: 0; color: var(--fp-fg); }
a { color: var(--fp-gold-dark); text-decoration: none; transition: color .15s; }
a:hover { color: var(--fp-gold-dark); }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--fp-gold-dark); outline-offset: 2px; }
.screen-reader-text:focus, .skip-link:focus { background: #fff; color: var(--fp-fg); z-index: 100000; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Line icons (uploaded SVGs use stroke, not fill). */
.elementor-icon svg[stroke="currentColor"],
.elementor-icon-list-icon svg[stroke="currentColor"],
.elementor-button-icon svg[stroke="currentColor"],
.eael-accordion-tab-title svg[stroke="currentColor"],
.fp-ico svg { fill: none !important; stroke: currentColor; }

.elementor-widget-text-editor p { margin: 0 0 1em; }
.elementor-widget-text-editor p:last-child { --fp-mb: 0; margin-bottom: 0; }

/* ==========================================================================
   Sections
   ========================================================================== */
.fp-sec { --padding-top: 4rem; --padding-bottom: 4rem; --padding-left: 3rem; --padding-right: 3rem; }
@media (min-width: 768px) { .fp-sec { --padding-top: 6rem; --padding-bottom: 6rem; --padding-left: 4rem; --padding-right: 4rem; } }
@media (min-width: 1025px) { .fp-sec { --padding-left: 6rem; --padding-right: 6rem; } }
.fp-bg-secondary { background-color: var(--fp-secondary); }
.fp-bg-dark { background: linear-gradient(135deg, var(--fp-charcoal), var(--fp-charcoal-light)); color: #fff; }
.fp-center { text-align: center; }

/* Text roles */
.fp-eyebrow { --fp-mb: .5rem; margin-bottom: .5rem; }
.fp-eyebrow .elementor-heading-title { font-family: var(--fp-font-body); font-size: .875rem; line-height: 1.25rem; font-weight: 500; text-transform: uppercase; letter-spacing: .2em; color: var(--fp-gold); }
.fp-eyebrow-wide { --fp-mb: .75rem; margin-bottom: .75rem; }
.fp-eyebrow-wide .elementor-heading-title { letter-spacing: .25em; }
.fp-h2 .elementor-heading-title { font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; color: var(--fp-fg); }
@media (min-width: 768px) { .fp-h2:not(.fp-h2-sm) .elementor-heading-title { font-size: 2.25rem; line-height: 2.5rem; } }
.fp-h2-tight .elementor-heading-title { line-height: 1.25 !important; }
.fp-bg-dark .fp-h2 .elementor-heading-title { color: #fff; }
.fp-lead { font-size: 1rem; line-height: 1.5; color: var(--fp-muted-fg); }
.fp-text { font-size: 1rem; line-height: 1.625; color: var(--fp-muted-fg); }
.fp-small { font-size: .875rem; line-height: 1.25rem; color: var(--fp-muted-fg); }
.e-con .elementor-element.fp-rule { width: 4rem; max-width: 4rem; height: 1px; background: var(--fp-gold); --fp-mb: 1.5rem; margin-bottom: 1.5rem; }
.fp-rule .elementor-divider { display: none; }
.fp-gold-text { background: linear-gradient(135deg, var(--fp-gold), var(--fp-gold-dark)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.fp-mb-1 { --fp-mb: .25rem; margin-bottom: .25rem; } .fp-mb-2 { --fp-mb: .5rem; margin-bottom: .5rem; } .fp-mb-3 { --fp-mb: .75rem; margin-bottom: .75rem; } .fp-mb-4 { --fp-mb: 1rem; margin-bottom: 1rem; }
.fp-mb-5 { --fp-mb: 1.25rem; margin-bottom: 1.25rem; } .fp-mb-6 { --fp-mb: 1.5rem; margin-bottom: 1.5rem; } .fp-mb-8 { --fp-mb: 2rem; margin-bottom: 2rem; } .fp-mb-10 { --fp-mb: 2.5rem; margin-bottom: 2.5rem; }
.fp-mb-12 { --fp-mb: 3rem; margin-bottom: 3rem; } .fp-mb-14 { --fp-mb: 3.5rem; margin-bottom: 3.5rem; } .fp-mb-16 { --fp-mb: 4rem; margin-bottom: 4rem; }
.e-con .elementor-element.fp-mw-xl { max-width: 36rem; } .e-con .elementor-element.fp-mw-2xl { max-width: 42rem; } .e-con .elementor-element.fp-mw-4xl { max-width: 56rem; }
.fp-mx-auto { margin-left: auto; margin-right: auto; }

/* Buttons */
.elementor-button { font-family: var(--fp-font-body); border-radius: .125rem; transition: all .15s; }
.fp-btn .elementor-button { background: var(--fp-gold); color: hsl(220 20% 10%); font-size: 1rem; line-height: 1.5rem; font-weight: 600; padding: 1rem 2rem; }
.fp-btn .elementor-button:hover, .fp-btn .elementor-button:focus { filter: brightness(1.1); color: hsl(220 20% 10%); }
.fp-btn-sm .elementor-button { font-size: .875rem; line-height: 1.25rem; padding: .75rem 1.5rem; }
.fp-btn-xl .elementor-button { font-size: 1.125rem; line-height: 1.75rem; padding: 1.25rem 3rem; }
@media (min-width: 768px) { .fp-btn-xl .elementor-button { font-size: 1.25rem; } }
.fp-btn-ghost .elementor-button { background: transparent; color: #fff; border: 1px solid rgb(255 255 255 / .3); font-size: 1rem; line-height: 1.5rem; font-weight: 600; padding: 1rem 2rem; }
.fp-btn-ghost .elementor-button:hover, .fp-btn-ghost .elementor-button:focus { background: rgb(255 255 255 / .1); color: #fff; }
.fp-link .elementor-button { background: none; padding: 0; color: var(--fp-gold); font-size: .875rem; line-height: 1.25rem; font-weight: 600; }
.fp-link .elementor-button:hover, .fp-link .elementor-button:focus { color: var(--fp-gold-dark); background: none; }

/* ==========================================================================
   Hero
   ========================================================================== */
.fp-hero { position: relative; overflow: hidden; --padding-left: 1rem; --padding-right: 1rem; text-align: center; background-size: cover; background-position: center; }
.fp-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, #14181f4d, #14181f99, #14181fcc); z-index: 1; pointer-events: none; }
.fp-hero > .e-con-inner, .fp-hero.e-con-full > .elementor-element { position: relative; z-index: 2; }
.fp-hero-home { min-height: max(100vh, 600px); }
.fp-hero-page { min-height: max(40vh, 300px); }
.fp-hero-eyebrow { --fp-mb: 1rem; margin-bottom: 1rem; animation: fp-fade-in 1s ease-out both; }
.fp-hero-eyebrow .elementor-heading-title { font-family: var(--fp-font-body); font-size: .875rem; line-height: 1.25rem; font-weight: 500; text-transform: uppercase; letter-spacing: .3em; color: var(--fp-gold); }
.fp-hero-title .elementor-heading-title { color: #fff; font-weight: 700; font-size: 2.25rem; line-height: 1.25; }
.e-con .fp-hero-home .elementor-element.fp-hero-title { max-width: 56rem; --fp-mb: 1.5rem; margin-bottom: 1.5rem; animation: fp-fade-in-up .8s ease-out both; }
.fp-hero-page .fp-hero-title { --fp-mb: 1rem; margin-bottom: 1rem; }
.fp-hero-page .fp-hero-title .elementor-heading-title { line-height: 2.5rem; }
.e-con .elementor-element.fp-hero-sub { color: rgb(255 255 255 / .8); font-size: 1.125rem; line-height: 1.75rem; max-width: 42rem; }
.fp-hero-home .fp-hero-sub { --fp-mb: 2.5rem; margin-bottom: 2.5rem; animation: fp-fade-in-up .8s ease-out .2s both; }
.fp-hero-actions { animation: fp-fade-in-up .8s ease-out .4s both; }
@media (min-width: 768px) {
	.fp-hero-title .elementor-heading-title { font-size: 3rem; }
	.fp-hero-page .fp-hero-title .elementor-heading-title { line-height: 1; }
	.e-con .fp-hero-home .elementor-element.fp-hero-sub { font-size: 1.25rem; }
}
@media (min-width: 1025px) { .fp-hero-home .fp-hero-title .elementor-heading-title { font-size: 3.75rem; } }
@keyframes fp-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes fp-fade-in-up { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }

/* ==========================================================================
   Icon boxes
   ========================================================================== */
.fp-feature .elementor-icon-box-wrapper { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0; }
.fp-feature .elementor-icon-box-icon, .fp-svc .elementor-icon-box-icon, .fp-ibox .elementor-icon-box-icon { margin: 0 !important; line-height: 0; }
.fp-feature .elementor-icon-box-icon { margin-bottom: 1rem !important; }
.fp-feature .elementor-icon, .fp-ibox .elementor-icon, .fp-svc .elementor-icon {
	display: flex; align-items: center; justify-content: center; border-radius: 9999px;
	background: var(--fp-gold-light); color: var(--fp-gold-dark); width: 4rem; height: 4rem; font-size: 1.75rem; transition: background-color .3s, color .3s;
}
.fp-feature .elementor-icon svg, .fp-ibox .elementor-icon svg, .fp-svc .elementor-icon svg { width: 1em; height: 1em; }
.fp-feature .elementor-icon-box-title { font-size: 1.125rem; line-height: 1.75rem; font-weight: 600; color: var(--fp-fg); margin: 0 0 .5rem; }
.fp-feature .elementor-icon-box-description { font-size: .875rem; line-height: 1.25rem; color: var(--fp-muted-fg); margin: 0; }

/* Horizontal icon box (icon left). */
.elementor .fp-ibox.fp-ibox .elementor-icon-box-wrapper { display: flex; flex-direction: row; align-items: flex-start; text-align: left; gap: 1rem; }
.elementor .fp-ibox.fp-ibox .elementor-icon-box-content { text-align: left; flex: 1; min-width: 0; }
.fp-ibox .elementor-icon-box-icon { flex-shrink: 0; }
.fp-ibox .elementor-icon { width: 3rem; height: 3rem; font-size: 1.25rem; }
.fp-ibox .elementor-icon-box-title { font-family: var(--fp-font-body); font-size: 1rem; line-height: 1.5rem; font-weight: 600; color: var(--fp-fg); margin: 0 0 .25rem; }
.fp-ibox .elementor-icon-box-description { font-size: .875rem; line-height: 1.25rem; color: var(--fp-muted-fg); margin: 0; }
.fp-ibox .elementor-icon-box-description a { color: inherit; }
.fp-ibox .elementor-icon-box-description a:hover { color: var(--fp-gold); }
.fp-ibox .elementor-icon-box-description strong { font-weight: 500; color: var(--fp-fg); }
.fp-ibox-card { border: 1px solid var(--fp-border); background: var(--fp-card); border-radius: .75rem; padding: 1.25rem; transition: border-color .3s, box-shadow .3s; }
.fp-ibox-card:hover { border-color: hsl(49 92% 47% / .3); box-shadow: var(--fp-shadow-md); }
.fp-ibox-card .elementor-icon { width: 2.5rem; height: 2.5rem; }
.fp-ibox-card .elementor-icon-box-title { font-family: var(--fp-font-heading); }
.fp-ibox-plain { border: 1px solid var(--fp-border); background: var(--fp-card); border-radius: .5rem; padding: 1rem; }
.fp-ibox-plain .elementor-icon { background: none; width: auto; height: auto; color: var(--fp-gold); font-size: 1.25rem; margin-top: .125rem; border-radius: 0; }
.elementor .fp-ibox.fp-ibox-plain .elementor-icon-box-wrapper { gap: .75rem; }
.fp-ibox-plain .elementor-icon-box-title { font-size: .875rem; line-height: 1.25rem; --fp-mb: .125rem; margin-bottom: .125rem; }
.fp-ibox-plain .elementor-icon-box-description { font-size: .75rem; line-height: 1rem; }
.fp-ibox-hours { border: 1px solid var(--fp-border); background: var(--fp-card); border-radius: .375rem; padding: 1.5rem; }
.fp-ibox-hours .elementor-icon-box-title { font-family: var(--fp-font-heading); font-size: 1.125rem; line-height: 1.75rem; }
.fp-ibox-hours .elementor-icon-box-description strong { display: block; font-size: 1.125rem; line-height: 1.75rem; font-weight: 600; color: var(--fp-gold); }

/* Service cards (El Hotel). */
.fp-svc { border: 1px solid var(--fp-border); background: var(--fp-card); border-radius: .75rem; padding: 1.25rem; transition: border-color .3s, box-shadow .3s; }
.fp-svc:hover { border-color: hsl(49 92% 47% / .3); box-shadow: 0 10px 15px -3px hsl(49 92% 47% / .05), 0 4px 6px -4px hsl(49 92% 47% / .05); }
.fp-svc .elementor-icon-box-wrapper { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .75rem; }
.fp-svc .elementor-icon { width: 3rem; height: 3rem; font-size: 1.25rem; color: var(--fp-fg); }
.fp-svc:hover .elementor-icon { background: var(--fp-gold); color: hsl(220 20% 10%); }
.fp-svc .elementor-icon-box-title { font-size: .875rem; line-height: 1.25rem; font-weight: 600; color: var(--fp-fg); margin: 0 0 .75rem; }
.fp-svc .elementor-icon-box-description { font-size: .75rem; line-height: 1.625; color: var(--fp-muted-fg); margin: 0; }

/* ==========================================================================
   Cards
   ========================================================================== */
.fp-card { overflow: hidden; border-radius: .375rem; border: 1px solid var(--fp-border); background: var(--fp-card); box-shadow: var(--fp-shadow-sm); transition: box-shadow .15s; }
.fp-card:hover { box-shadow: var(--fp-shadow-lg); }
.fp-card-img { overflow: hidden; line-height: 0; }
.fp-card-img a { display: block; }
.elementor .elementor-widget-image.fp-card-img img { display: block; width: 100%; max-width: none; height: 14rem; object-fit: cover; transition: transform .5s; }
.fp-card:hover .fp-card-img img { transform: scale(1.05); }
.fp-card-body { --padding-top: 1.5rem; --padding-bottom: 1.5rem; --padding-left: 1.5rem; --padding-right: 1.5rem; }
.fp-card-title { --fp-mb: .5rem; margin-bottom: .5rem; }
.fp-card-title .elementor-heading-title { font-size: 1.25rem; line-height: 1.75rem; font-weight: 600; color: var(--fp-fg); }
.fp-card-title .elementor-heading-title a { color: inherit; }
.fp-card-text { font-size: .875rem; line-height: 1.25rem; color: var(--fp-muted-fg); --fp-mb: 1rem; margin-bottom: 1rem; }
.fp-img-cover, .fp-img-cover a { display: block; height: 100%; line-height: 0; }
.fp-img-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fp-rounded, .fp-rounded img { border-radius: .375rem; overflow: hidden; }
.fp-rounded-xl, .fp-rounded-xl img { border-radius: .75rem; overflow: hidden; }

/* Widget bottom spacing: classes set --fp-mb (Elementor resets widget margins inside containers). */
@property --fp-mb { syntax: "<length>"; inherits: false; initial-value: 0px; }
.e-con .elementor-widget.elementor-widget { margin-block-end: var(--fp-mb); }

/* ==========================================================================
   Header
   ========================================================================== */
body.ehf-header #masthead { position: fixed; top: 0; left: 0; right: 0; z-index: 50; transition: background-color .3s, box-shadow .3s; background: transparent; }
body.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { body.admin-bar #masthead { top: 46px; } }
body.fp-header-solid #masthead, body.fp-scrolled #masthead, body.ehf-header #masthead:has(.hfe-nav-menu__toggle.hfe-active-menu) {
	background: rgb(255 255 255 / .95); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: var(--fp-shadow-md);
}
#masthead .fp-header { --padding-top: 1rem; --padding-bottom: 1rem; --padding-left: 1rem; --padding-right: 1rem; }
@media (min-width: 768px) { #masthead .fp-header { --padding-left: 2rem; --padding-right: 2rem; } }
#masthead .fp-header > .e-con-inner { flex-wrap: nowrap; }

.fp-logo .elementor-heading-title { white-space: nowrap; font-family: var(--fp-font-heading); font-size: 1.25rem; line-height: 1.75rem; font-weight: 700; letter-spacing: .025em; margin: 0; }
@media (min-width: 768px) { .fp-logo .elementor-heading-title { font-size: 1.5rem; line-height: 2rem; } }
#masthead .fp-logo .elementor-heading-title a { color: #fff; transition: color .3s; }
.fp-header-solid #masthead .fp-logo a, .fp-scrolled #masthead .fp-logo a, #masthead:has(.hfe-active-menu) .fp-logo a { color: var(--fp-fg); }

/* Desktop menu */
#masthead .fp-nav { --fp-nav-color: #fff; }
.fp-header-solid #masthead .fp-nav, .fp-scrolled #masthead .fp-nav, #masthead:has(.hfe-active-menu) .fp-nav { --fp-nav-color: var(--fp-fg); }
#masthead .fp-nav ul.hfe-nav-menu { align-items: center; gap: 1.75rem; }
#masthead .fp-nav .menu-item a.hfe-menu-item, #masthead .fp-nav .menu-item a.hfe-sub-menu-item {
	padding: 0; font-family: var(--fp-font-body); font-size: .875rem; line-height: 1.25rem; font-weight: 500; letter-spacing: .025em; color: var(--fp-nav-color); transition: color .15s; background: none;
}
#masthead .fp-nav .menu-item a.hfe-menu-item:hover, #masthead .fp-nav .menu-item a.hfe-menu-item:focus,
#masthead .fp-nav .menu-item.current-menu-item > a.hfe-menu-item, #masthead .fp-nav .menu-item.current-menu-item > .hfe-has-submenu-container > a.hfe-menu-item { color: var(--fp-gold); }
#masthead .fp-nav .menu-item.pll-parent-menu-item.current-menu-item > .hfe-has-submenu-container > a.hfe-menu-item { color: var(--fp-nav-color); }
#masthead .fp-nav .menu-item.pll-parent-menu-item > .hfe-has-submenu-container > a.hfe-menu-item:hover { color: var(--fp-gold); }

/* "Reservar" button (menu item with CSS class fp-menu-cta) */
#masthead .fp-nav .menu-item.fp-menu-cta > a.hfe-menu-item {
	background: var(--fp-gold); color: hsl(220 20% 10%); font-weight: 600; letter-spacing: 0; padding: .625rem 1.25rem; border-radius: .125rem; transition: filter .15s;
}
#masthead .fp-nav .menu-item.fp-menu-cta > a.hfe-menu-item:hover, #masthead .fp-nav .menu-item.fp-menu-cta > a.hfe-menu-item:focus { filter: brightness(1.1); color: hsl(220 20% 10%); }

/* Language switcher (Polylang menu item) */
.fp-lang-label { display: inline-flex; align-items: center; gap: .375rem; text-transform: uppercase; }
.fp-lang-label svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; }
#masthead .fp-nav .menu-item .hfe-menu-toggle { display: none; }
#masthead .fp-nav nav.hfe-nav-menu__layout-horizontal ul.sub-menu {
	width: 11rem; right: 0; left: auto; top: 100%; margin-top: .5rem; overflow: hidden; border-radius: .375rem; border: 1px solid var(--fp-border); background: var(--fp-card); box-shadow: var(--fp-shadow-lg); padding: 0;
}
#masthead .fp-nav nav.hfe-nav-menu__layout-horizontal .pll-parent-menu-item::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: .5rem; }
#masthead .fp-nav ul.sub-menu li.menu-item { border: 0; }
#masthead .fp-nav ul.sub-menu a.hfe-sub-menu-item { display: block; padding: .625rem 1rem; color: var(--fp-fg); font-size: .875rem; letter-spacing: 0; }
#masthead .fp-nav ul.sub-menu a.hfe-sub-menu-item:hover, #masthead .fp-nav ul.sub-menu a.hfe-sub-menu-item:focus { background: var(--fp-secondary); color: var(--fp-fg); }
#masthead .fp-nav ul.sub-menu .current-lang > a.hfe-sub-menu-item { color: var(--fp-gold-dark); }

/* Mobile / tablet menu */
#masthead .fp-nav .hfe-nav-menu__toggle { margin: 0 0 0 auto; padding: 0; color: var(--fp-nav-color); }
#masthead .fp-nav .hfe-nav-menu-icon { padding: 0; line-height: 0; }
#masthead .fp-nav .hfe-nav-menu-icon svg { width: 1.5rem; height: 1.5rem; fill: var(--fp-nav-color); }
@media (max-width: 1024px) {
	#masthead .fp-nav nav.hfe-dropdown, #masthead .fp-nav nav.hfe-nav-menu__layout-horizontal { background: rgb(255 255 255 / .98); box-shadow: var(--fp-shadow-md); }
	#masthead .fp-nav nav ul.hfe-nav-menu { flex-direction: column; align-items: center; gap: 1.5rem; padding: 2rem 1rem; }
	#masthead .fp-nav nav .menu-item { border: 0 !important; width: auto; text-align: center; }
	#masthead .fp-nav nav .menu-item a.hfe-menu-item, #masthead .fp-nav nav .menu-item a.hfe-sub-menu-item { font-size: 1rem; line-height: 1.5rem; color: var(--fp-fg); justify-content: center; background: none; }
	#masthead .fp-nav nav .menu-item a.hfe-menu-item:hover, #masthead .fp-nav nav .menu-item.current-menu-item > a.hfe-menu-item { color: var(--fp-gold-dark); }
	#masthead .fp-nav nav .menu-item.fp-menu-cta > a.hfe-menu-item { font-size: .875rem; padding: .75rem 1.5rem; color: hsl(220 20% 10%); background: var(--fp-gold); }
	#masthead .fp-nav nav ul.sub-menu { position: static; width: auto; border: 0; box-shadow: none; background: none; margin: .75rem 0 0; display: flex; flex-direction: row; gap: 1.25rem; justify-content: center; visibility: visible; opacity: 1; height: auto; }
	#masthead .fp-nav nav ul.sub-menu a.hfe-sub-menu-item { padding: 0; font-size: .875rem; }
	#masthead .fp-nav nav .pll-parent-menu-item > .hfe-has-submenu-container > a { pointer-events: none; color: var(--fp-muted-fg); }
}

/* ==========================================================================
   Footer
   ========================================================================== */
#colophon .fp-footer { background: var(--fp-charcoal); --padding-top: 4rem; --padding-bottom: 4rem; --padding-left: 3rem; --padding-right: 3rem; color: rgb(255 255 255 / .6); }
@media (min-width: 768px) { #colophon .fp-footer { --padding-left: 4rem; --padding-right: 4rem; } }
.fp-logo-footer .elementor-heading-title { font-size: 1.25rem !important; line-height: 1.75rem !important; letter-spacing: 0; }
.fp-foot-text { font-size: .875rem; line-height: 1.625; color: rgb(255 255 255 / .6); }
.fp-foot-title { --fp-mb: 1rem; margin-bottom: 1rem; }
.fp-foot-title .elementor-heading-title { font-family: var(--fp-font-heading); font-size: .875rem; line-height: 1.25rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: rgb(255 255 255 / .8); }
.fp-foot-list .elementor-icon-list-items { display: flex; flex-direction: column; gap: .75rem; margin: 0; padding: 0; }
.fp-foot-list .elementor-icon-list-item { align-items: flex-start !important; padding: 0 !important; margin: 0 !important; }
#colophon .fp-foot-list .elementor-icon-list-item, #colophon .fp-foot-list .elementor-icon-list-item > a, #colophon .fp-foot-list .elementor-icon-list-text { font-size: .875rem; line-height: 1.25rem; }
#colophon .fp-foot-legal .elementor-icon-list-item > a, #colophon .fp-foot-legal .elementor-icon-list-text { font-size: .75rem; line-height: 1rem; }
.fp-foot-list .elementor-icon-list-item::after { display: none; }
.fp-foot-list .elementor-icon-list-item > a { align-items: flex-start !important; }
.fp-foot-list .elementor-icon-list-icon { flex-shrink: 0; margin-top: .125rem; padding-right: .5rem; color: var(--fp-gold); }
.fp-foot-list .elementor-icon-list-icon svg { width: 1rem; height: 1rem; stroke: var(--fp-gold); }
.fp-foot-list .elementor-icon-list-text { color: rgb(255 255 255 / .6); padding: 0; transition: color .15s; }
.fp-foot-list a:hover .elementor-icon-list-text, .fp-foot-list a:focus .elementor-icon-list-text { color: var(--fp-gold); }
.fp-foot-strong { font-weight: 500; color: rgb(255 255 255 / .8); }
.fp-foot-legal { margin-top: 2.5rem; }
.fp-foot-legal .elementor-icon-list-items { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.5rem; margin: 0; padding: 0; }
.fp-foot-legal .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; font-size: .75rem; line-height: 1rem; }
.fp-foot-legal .elementor-icon-list-item::after { display: none; }
.fp-foot-legal .elementor-icon-list-text { color: rgb(255 255 255 / .6); padding: 0; transition: color .15s; }
.fp-foot-legal a:hover .elementor-icon-list-text, .fp-foot-legal a:focus .elementor-icon-list-text { color: var(--fp-gold); text-decoration: underline; text-underline-offset: 4px; }
.fp-foot-copy { margin-top: 1rem; text-align: center; font-size: .75rem; line-height: 1rem; color: rgb(255 255 255 / .55); }

/* ==========================================================================
   Booking call to action
   ========================================================================== */
.fp-pill .elementor-heading-title { display: inline-block; border-radius: 9999px; border: 1px solid hsl(49 92% 47% / .4); background: hsl(49 92% 47% / .1); padding: .5rem 1.25rem; font-family: var(--fp-font-body); font-size: .875rem; line-height: 1.25rem; font-weight: 600; text-transform: uppercase; letter-spacing: .25em; color: var(--fp-gold); }
.fp-cta-title .elementor-heading-title { font-size: 3rem; line-height: 1.05; font-weight: 700; color: #fff; }
.fp-cta-text { font-size: 1.125rem; line-height: 1.75rem; color: rgb(255 255 255 / .8); }
.fp-cta-text strong { color: #fff; }
@media (min-width: 768px) { .fp-cta-title .elementor-heading-title { font-size: 3.75rem; } .fp-cta-text { font-size: 1.25rem; } }
@media (min-width: 1025px) { .fp-cta-title .elementor-heading-title { font-size: 4.5rem; } }
@media (max-width: 1024px) { #masthead .fp-nav nav ul.sub-menu { border: 0 !important; box-shadow: none !important; background: none !important; } }
.e-con.fp-foot-logos { margin-top: 1.25rem; display: flex; flex-direction: column; gap: .75rem; }
.elementor .fp-foot-logo img { display: block; height: auto; max-width: 100%; }
.elementor .fp-foot-logo-ue img { width: 150px; }
.elementor .fp-foot-logo-plan img { width: 170px; }

/* ==========================================================================
   FAQ accordion
   ========================================================================== */
.elementor .fp-faq.fp-faq .eael-adv-accordion { display: flex; flex-direction: column; gap: .75rem; }
.elementor .fp-faq.fp-faq .eael-accordion-list { border-radius: .75rem; border: 1px solid var(--fp-border); background: var(--fp-card); transition: border-color .3s, box-shadow .3s; }
.elementor .fp-faq.fp-faq .eael-accordion-list:hover { border-color: hsl(49 92% 47% / .2); box-shadow: var(--fp-shadow-md); }
.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header { display: flex; align-items: center; gap: 1rem; padding: 1.25rem 1.5rem; background: none; border: 0; cursor: pointer; border-radius: .75rem; }
.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header:hover, .elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header.active { background: none; }
.elementor .fp-faq.fp-faq .eael-accordion-header .fa-accordion-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 2.5rem; height: 2.5rem; margin: 0; border-radius: .5rem; background: var(--fp-gold-light); color: var(--fp-gold-dark); transition: background-color .3s; }
.elementor .fp-faq.fp-faq .eael-accordion-header .fa-accordion-icon.eael-advanced-accordion-icon-opened { display: none; }
.elementor .fp-faq.fp-faq .eael-accordion-header.active .fa-accordion-icon.eael-advanced-accordion-icon-opened { display: flex; }
.elementor .fp-faq.fp-faq .eael-accordion-header.active .fa-accordion-icon.eael-advanced-accordion-icon-closed { display: none; }
.elementor .fp-faq.fp-faq .eael-accordion-list:hover .fa-accordion-icon { background: hsl(49 92% 47% / .2); }
.elementor .fp-faq.fp-faq .eael-accordion-header .fa-accordion-icon svg { width: 1.25rem; height: 1.25rem; fill: none !important; stroke: currentColor; }
.elementor .fp-faq.fp-faq .eael-accordion-header .eael-accordion-tab-title { flex: 1; margin: 0; font-family: var(--fp-font-heading); font-size: 1rem; line-height: 1.5rem; font-weight: 600; color: var(--fp-fg); }
@media (min-width: 768px) { .fp-faq .eael-accordion-header .eael-accordion-tab-title { font-size: 1.125rem; line-height: 1.75rem; } }
.elementor .fp-faq.fp-faq .eael-accordion-header > svg, .elementor .fp-faq.fp-faq .eael-accordion-header > i { flex-shrink: 0; box-sizing: border-box; width: 2rem !important; height: 2rem !important; padding: .6rem; margin: 0; border-radius: 9999px; background: var(--fp-muted); fill: var(--fp-gold) !important; color: var(--fp-gold); transition: transform .3s, background-color .3s; transform: none; }
.elementor .fp-faq.fp-faq .eael-accordion-header.active > svg, .elementor .fp-faq.fp-faq .eael-accordion-header.active > i { transform: rotate(45deg); background: hsl(49 92% 47% / .2); }
.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-content { border: 0; padding: 0 1.5rem 1.5rem 5rem; background: none; }
@media (max-width: 767px) { .fp-faq .eael-accordion-list .eael-accordion-content { padding-left: 1.5rem; } }
.fp-faq-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .75rem; }
.fp-faq-list li { position: relative; padding-left: 1.25rem; font-size: .875rem; line-height: 1.625; color: var(--fp-muted-fg); }
.fp-faq-list li::before { content: ""; position: absolute; left: 0; top: .5rem; width: .5rem; height: .5rem; border-radius: 9999px; background: hsl(49 92% 47% / .6); }
.fp-faq-list li strong { font-weight: 600; color: var(--fp-fg); }

/* ==========================================================================
   Layout helpers
   ========================================================================== */
.e-con.fp-grid-2, .e-con.fp-grid-2-3 { display: grid; grid-template-columns: 1fr; gap: 4rem; align-items: center; }
.e-con.fp-grid-2.fp-gap-12 { gap: 3rem; } .e-con.fp-grid-2.fp-gap-6 { gap: 1.5rem; }
.e-con.fp-grid-2.fp-align-start { align-items: start; }
.e-con.fp-grid-2 > *, .e-con.fp-grid-2-3 > * { min-width: 0; }
@media (min-width: 768px) { .e-con.fp-grid-2.fp-grid-md, .e-con.fp-grid-2.fp-room { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1025px) { .e-con.fp-grid-2 { grid-template-columns: 1fr 1fr; } .e-con.fp-grid-2-3 { grid-template-columns: 2fr 3fr; } }
.fp-text-gap p { margin: 0 0 1.25rem; }
.fp-h-80 img { height: 20rem; }
.fp-ratio-4-3 img { aspect-ratio: 4 / 3; height: auto; }

/* El Hotel: image mosaic */
.e-con.fp-mosaic { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.fp-mosaic-main img { height: 18rem; }
@media (min-width: 1025px) { .fp-mosaic-main img { height: 24rem; } }
.e-con.fp-mosaic-side { display: flex; flex-direction: column; gap: .75rem; }
.e-con.fp-mosaic-side > .elementor-widget { flex: 1 1 0; min-height: 0; position: relative; }
.e-con.fp-mosaic-side img { position: absolute; inset: 0; }

/* El Hotel: timeline */
.e-con.fp-timeline { position: relative; }
.e-con.fp-timeline::before { content: ""; position: absolute; top: 0; bottom: 0; left: 1.5rem; width: 1px; background: hsl(49 92% 47% / .3); }
.e-con.fp-tl-item { position: relative; padding: 0 0 3.5rem 3.5rem; }
.e-con.fp-tl-item:last-child { padding-bottom: 0; }
.e-con.fp-tl-item::before { content: ""; position: absolute; left: 1.5rem; top: .25rem; width: .75rem; height: .75rem; margin-left: -.375rem; border-radius: 9999px; border: 2px solid var(--fp-gold); background: #fff; z-index: 1; box-sizing: border-box; }
.fp-tl-year .elementor-heading-title { font-family: var(--fp-font-heading); font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; color: var(--fp-gold); }
.fp-tl-title { margin-top: .25rem; }
.fp-tl-title .elementor-heading-title { font-size: 1.125rem; line-height: 1.75rem; font-weight: 600; color: #fff; }
.fp-tl-text { margin-top: .5rem; font-size: .875rem; line-height: 1.625; color: rgb(255 255 255 / .75); }
@media (min-width: 768px) {
	.e-con.fp-timeline::before { left: 50%; }
	.e-con.fp-tl-item { width: 50%; padding: 0 3rem 3.5rem 0; text-align: right; align-items: flex-end; }
	.e-con.fp-tl-item::before { left: 100%; }
	.e-con.fp-tl-item:nth-child(even) { margin-left: 50%; padding: 0 0 3.5rem 3rem; text-align: left; align-items: flex-start; }
	.e-con.fp-tl-item:nth-child(even)::before { left: 0; }
}

/* El Hotel: floating badge on the beach photo */
.e-con.fp-badge-wrap { position: relative; }
.e-con.fp-badge { position: absolute; bottom: -1.5rem; left: -1rem; width: auto; border-radius: .75rem; border: 1px solid var(--fp-border); background: var(--fp-card); padding: 1.25rem; box-shadow: var(--fp-shadow-xl); }
@media (min-width: 768px) { .e-con.fp-badge { left: auto; right: -1rem; } }
.fp-badge-num .elementor-heading-title { font-family: var(--fp-font-heading); font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: var(--fp-gold); }
.fp-badge-text { font-size: .75rem; line-height: 1rem; color: var(--fp-muted-fg); }

/* ==========================================================================
   Rooms
   ========================================================================== */
.e-con.fp-rooms { display: flex; flex-direction: column; gap: 4rem; }
.e-con.fp-grid-2.fp-room { gap: 2rem; }
@media (min-width: 768px) { .e-con.fp-room-alt > :first-child { order: 2; } }
.fp-room-slider { border-radius: .375rem; overflow: hidden; position: relative; }
.fp-room-slider .swiper-slide img, .fp-room-slider .swiper-slide-image { display: block; width: 100%; height: 18rem; object-fit: cover; }
.elementor .fp-room-slider .elementor-swiper-button { width: 2rem; height: 2rem; display: flex; align-items: center; justify-content: center; border-radius: 9999px; background: hsl(220 20% 15% / .5); color: #fff; font-size: 1rem; transition: background-color .15s; }
.elementor .fp-room-slider .elementor-swiper-button:hover { background: hsl(220 20% 15% / .7); }
.elementor .fp-room-slider .elementor-swiper-button svg { fill: #fff; width: 1rem; height: 1rem; }
.elementor .fp-room-slider .elementor-swiper-button-prev { left: .5rem; } .elementor .fp-room-slider .elementor-swiper-button-next { right: .5rem; }
.elementor .fp-room-slider .swiper { padding-bottom: 0 !important; }
.elementor .fp-room-slider .swiper-pagination { position: absolute; bottom: .75rem !important; top: auto; left: 0; right: 0; }
.elementor .fp-room-slider .swiper-pagination-bullet { width: .5rem; height: .5rem; margin: 0 .1875rem; background: rgb(255 255 255 / .6); opacity: 1; border-radius: 9999px; transition: all .15s; }
.elementor .fp-room-slider .swiper-pagination-bullet-active { width: 1rem; background: var(--fp-gold); }
.fp-chip-gold .elementor-heading-title { display: inline-block; border-radius: .125rem; background: var(--fp-gold-light); padding: .25rem .75rem; font-family: var(--fp-font-body); font-size: .75rem; line-height: 1rem; font-weight: 600; color: var(--fp-gold-dark); }
.fp-room-title .elementor-heading-title { font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: var(--fp-fg); }
.fp-amenities .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; padding: 0; justify-content: flex-start; }
.fp-amenities .elementor-icon-list-item { display: flex; align-items: center; gap: .375rem; margin: 0 !important; padding: .375rem .75rem !important; border: 1px solid var(--fp-border); border-radius: .125rem; font-size: .75rem; line-height: 1rem; }
.fp-amenities .elementor-icon-list-item::after { display: none; }
.fp-amenities .elementor-icon-list-icon { color: var(--fp-gold); padding: 0; line-height: 0; }
.fp-amenities .elementor-icon-list-icon svg { width: .875rem; height: .875rem; stroke: var(--fp-gold); }
.fp-amenities .elementor-icon-list-text { color: var(--fp-muted-fg); padding: 0; }

/* ==========================================================================
   Restaurant
   ========================================================================== */
.e-con.fp-figure { margin: 0; }
.fp-figure-img img { height: 18rem; }
@media (min-width: 768px) { .fp-figure-img img { height: 20rem; } }
.fp-figcaption { margin-top: .75rem; text-align: center; font-size: .875rem; line-height: 1.25rem; font-weight: 500; color: var(--fp-fg); }

/* ==========================================================================
   Contact
   ========================================================================== */
.fp-ibox-loose .elementor-icon-box-description { line-height: 1.6; }
.e-con.fp-form-card { border-radius: .375rem; border: 1px solid var(--fp-border); background: var(--fp-card); padding: 2rem; }
.fp-form-title .elementor-heading-title { font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: var(--fp-fg); }
.fp-form .fluentform .ff-el-group { margin: 0 0 1.25rem; }
.fp-form .fluentform .ff-el-input--label { margin: 0 0 .25rem; }
.fp-form .fluentform .ff-el-input--label label { font-size: .875rem; line-height: 1.25rem; font-weight: 500; color: var(--fp-fg); }
.fp-form .fluentform .ff-el-form-control { width: 100%; border-radius: .125rem; border: 1px solid var(--fp-border); background: var(--fp-bg); padding: .625rem 1rem; font-family: var(--fp-font-body); font-size: .875rem; line-height: 1.25rem; color: var(--fp-fg); box-shadow: none; }
.fp-form .fluentform .ff-el-form-control::placeholder { color: var(--fp-muted-fg); opacity: 1; }
.fp-form .fluentform .ff-el-form-control:focus { border-color: var(--fp-gold); outline: none; box-shadow: 0 0 0 1px var(--fp-gold); }
.fp-form .fluentform .ff-el-tc, .fp-form .fluentform .ff_t_c { font-size: .8125rem; line-height: 1.25rem; color: var(--fp-muted-fg); }
.fp-form .fluentform .ff_t_c a { color: var(--fp-gold-dark); text-decoration: underline; }
.fp-form .fluentform .ff_submit_btn_wrapper { margin: 0; }
.fp-form .fluentform .ff-btn-submit { width: 100%; border: 0; border-radius: .125rem; background: var(--fp-gold); color: hsl(220 20% 10%); padding: .75rem 1.5rem; font-family: var(--fp-font-body); font-size: .875rem; line-height: 1.25rem; font-weight: 600; cursor: pointer; transition: filter .15s; }
.fp-form .fluentform .ff-btn-submit:hover, .fp-form .fluentform .ff-btn-submit:focus { filter: brightness(1.1); background: var(--fp-gold); color: hsl(220 20% 10%); opacity: 1; }
.fp-form .fluentform .text-danger, .fp-form .fluentform .error { font-size: .8125rem; color: #b91c1c; }
.fp-form .ff-message-success { border: 1px solid var(--fp-border); border-radius: .375rem; background: var(--fp-gold-light); padding: 1rem 1.25rem; color: var(--fp-fg); box-shadow: none; }
.fp-map iframe { display: block; width: 100%; }

/* ==========================================================================
   Gallery (filters + grid)
   ========================================================================== */
.elementor .fp-gallery .eael-filter-gallery-control { margin: 0 0 2.5rem; padding: 0; background: none; }
.elementor .fp-gallery .eael-filter-gallery-control ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin: 0; padding: 0; }
.elementor .fp-gallery .eael-filter-gallery-control ul li.control { margin: 0; padding: .5rem 1.25rem; border: 1px solid var(--fp-border); border-radius: .125rem; background: var(--fp-card); color: var(--fp-muted-fg); font-family: var(--fp-font-body); font-size: .875rem; line-height: 1.25rem; font-weight: 500; cursor: pointer; transition: all .15s; }
.elementor .fp-gallery .eael-filter-gallery-control ul li.control:hover { color: var(--fp-fg); }
.elementor .fp-gallery .eael-filter-gallery-control ul li.control.active { background: var(--fp-gold); border-color: var(--fp-gold); color: hsl(220 20% 10%); }
.elementor .fp-gallery .eael-filter-gallery-container { margin: -.5rem; }
.elementor .fp-gallery .eael-filterable-gallery-item-wrap { padding: .5rem; }
.elementor .fp-gallery .eael-gallery-grid-item { margin: 0; border-radius: .375rem; overflow: hidden; position: relative; }
.elementor .fp-gallery .eael-gallery-grid-item > a { display: block; }
.elementor .fp-gallery .gallery-item-thumbnail-wrap { height: 16rem; overflow: hidden; }
.elementor .fp-gallery .gallery-item-thumbnail-wrap img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.elementor .fp-gallery .eael-gallery-grid-item:hover .gallery-item-thumbnail-wrap img { transform: scale(1.05); }
.elementor .fp-gallery .gallery-item-caption-wrap.caption-style-hoverer { position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: flex-start; padding: 0; background: linear-gradient(to top, hsl(220 20% 15% / .7), hsl(220 20% 15% / .2), transparent); opacity: 0; transition: opacity .3s; transform: none; text-align: left; }
.elementor .fp-gallery .eael-gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer, .elementor .fp-gallery .eael-gallery-grid-item > a:focus-visible .gallery-item-caption-wrap.caption-style-hoverer { opacity: 1; }
.elementor .fp-gallery .gallery-item-hoverer-bg { display: none; }
.elementor .fp-gallery .gallery-item-caption-over { position: static; width: 100%; padding: 1rem; transform: none; text-align: left; }
.elementor .fp-gallery .fg-item-title { margin: 0; font-family: var(--fp-font-heading); font-size: 1.125rem; line-height: 1.75rem; font-weight: 600; color: #fff; }
.elementor .fp-gallery .fg-item-content, .elementor .fp-gallery .fg-item-content p { margin: 0; font-size: .75rem; line-height: 1rem; color: rgb(255 255 255 / .7); }

/* ==========================================================================
   Blog grid
   ========================================================================== */
.elementor .fp-blog .eael-post-grid { margin: -1rem; }
.elementor .fp-blog .eael-grid-post { padding: 1rem; }
.elementor .fp-blog .eael-grid-post-holder { height: 100%; overflow: hidden; border-radius: .375rem; border: 1px solid var(--fp-border); background: var(--fp-card); box-shadow: var(--fp-shadow-sm); transition: box-shadow .15s; }
.elementor .fp-blog .eael-grid-post-holder:hover { box-shadow: var(--fp-shadow-lg); }
.elementor .fp-blog .eael-grid-post-holder-inner { display: flex; flex-wrap: wrap; align-items: center; }
.elementor .fp-blog .eael-entry-media, .elementor .fp-blog .eael-entry-wrapper { display: contents; }
.elementor .fp-blog .eael-entry-overlay { display: none; }
.elementor .fp-blog .eael-entry-thumbnail { order: 1; width: 100%; height: 12rem; padding: 0; overflow: hidden; }
.elementor .fp-blog .eael-entry-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.elementor .fp-blog .eael-grid-post-holder:hover .eael-entry-thumbnail img { transform: scale(1.05); }
.elementor .fp-blog .post-carousel-categories { order: 2; position: static; display: flex; margin: 1.5rem .75rem .75rem 1.5rem; padding: 0; list-style: none; opacity: 1; visibility: visible; }
.elementor .fp-blog .post-carousel-categories li { margin: 0; }
.elementor .fp-blog .post-carousel-categories li a { display: block; border-radius: .125rem; background: var(--fp-gold-light); padding: .125rem .5rem; font-size: .75rem; line-height: 1rem; font-weight: 600; color: var(--fp-gold-dark); }
.elementor .fp-blog .eael-entry-header-after { order: 3; margin: 1.5rem 1.5rem .75rem 0; padding: 0; }
.elementor .fp-blog .eael-entry-meta, .elementor .fp-blog .eael-entry-meta time { font-size: .75rem; line-height: 1rem; color: var(--fp-muted-fg); }
.elementor .fp-blog .eael-entry-meta i, .elementor .fp-blog .eael-entry-meta svg { display: none; }
.elementor .fp-blog .eael-entry-header { order: 4; width: 100%; margin: 0 0 .5rem; padding: 0 1.5rem; }
.elementor .fp-blog .eael-entry-title { margin: 0; font-family: var(--fp-font-heading); font-size: 1.25rem; line-height: 1.75rem; font-weight: 600; }
.elementor .fp-blog .eael-entry-title a { color: var(--fp-fg); }
.elementor .fp-blog .eael-entry-content { order: 5; width: 100%; padding: 0 1.5rem 1.5rem; }
.elementor .fp-blog .eael-grid-post-excerpt p { margin: 0 0 1rem; font-size: .875rem; line-height: 1.625; color: var(--fp-muted-fg); }
.elementor .fp-blog .eael-post-elements-readmore-btn { display: inline-block; padding: 0; font-size: .875rem; line-height: 1.25rem; font-weight: 600; color: var(--fp-gold); }
.elementor .fp-blog .eael-post-elements-readmore-btn:hover, .elementor .fp-blog .eael-post-elements-readmore-btn:focus { color: var(--fp-gold-dark); }

/* ==========================================================================
   Blog post, archives, search and 404 (theme templates)
   ========================================================================== */
body:not(.elementor-page):not(.home) main.site-main, body.error404 main.site-main { max-width: 48rem; margin: 0 auto; padding: 9rem 1.5rem 5rem; }
main.site-main .page-header .entry-title { font-size: 2.25rem; line-height: 1.2; font-weight: 700; margin: 0 0 1.5rem; }
main.site-main .page-content { font-size: 1.0625rem; line-height: 1.75; color: hsl(220 15% 25%); }
main.site-main .page-content h2 { font-size: 1.5rem; line-height: 2rem; font-weight: 700; margin: 2.25rem 0 .75rem; }
main.site-main .page-content h3 { font-size: 1.25rem; line-height: 1.75rem; margin: 1.75rem 0 .5rem; }
main.site-main .page-content p, main.site-main .page-content ul, main.site-main .page-content ol { margin: 0 0 1.25rem; }
main.site-main .page-content li { --fp-mb: .5rem; margin-bottom: .5rem; }
main.site-main .page-content a { color: var(--fp-gold-dark); text-decoration: underline; text-underline-offset: 3px; }
main.site-main .page-content img { border-radius: .375rem; }
.fp-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 0 0 1rem; font-size: .8125rem; color: var(--fp-muted-fg); }
.fp-post-meta a { border-radius: .125rem; background: var(--fp-gold-light); padding: .125rem .5rem; font-size: .75rem; font-weight: 600; color: var(--fp-gold-dark); }
.fp-post-thumb { margin: 0 0 2rem; }
.fp-post-thumb img { display: block; width: 100%; max-height: 26rem; object-fit: cover; border-radius: .375rem; }
.fp-post-back { margin-top: 2.5rem; }
.fp-post-back a, .fp-404 a.fp-button { display: inline-block; border-radius: .125rem; background: var(--fp-gold); padding: .75rem 1.5rem; font-size: .875rem; font-weight: 600; color: hsl(220 20% 10%); text-decoration: none !important; }
.fp-404 { text-align: center; }
.fp-404 .fp-404-code { font-family: var(--fp-font-heading); font-size: 6rem; line-height: 1; font-weight: 700; color: var(--fp-gold); margin: 0 0 1rem; }
.elementor .fp-blog .eael-grid-post-holder-inner { padding: 0 !important; }
.elementor .fp-blog .eael-entry-thumbnail { padding: 0 !important; margin: 0 !important; flex: 0 0 100%; }
.elementor .fp-blog .post-carousel-categories { width: auto !important; flex: 0 0 auto; top: auto; left: auto; }
.elementor .fp-blog .eael-entry-header-after { width: auto !important; flex: 0 0 auto; text-align: left; }
.elementor .fp-blog .eael-entry-header-after .eael-entry-meta { justify-content: flex-start; padding: 0; margin: 0; }
.elementor .fp-blog .eael-entry-header { flex: 0 0 100%; box-sizing: border-box; }
.elementor .fp-blog .eael-entry-content { flex: 0 0 100%; box-sizing: border-box; }
.elementor .fp-blog a.eael-post-elements-readmore-btn { color: var(--fp-gold) !important; }
.elementor .fp-blog a.eael-post-elements-readmore-btn:hover { color: var(--fp-gold-dark) !important; }
.elementor .fp-blog .eael-entry-media, .elementor .fp-blog .eael-entry-wrapper { display: contents !important; }
.elementor .fp-blog .eael-grid-post-holder-inner { display: flex !important; flex-direction: row !important; flex-wrap: wrap; align-items: center; justify-content: flex-start; }
.elementor .fp-blog .eael-entry-thumbnail { height: 12rem !important; }
.elementor .fp-blog .post-carousel-categories { position: static !important; transform: none !important; margin: 1.5rem .75rem .75rem 1.5rem !important; }
.elementor .fp-blog .eael-entry-header-after { margin: 1.5rem 1.5rem .75rem 0 !important; }
.elementor .fp-gallery .eael-filter-gallery-wrapper, .elementor .fp-gallery .eael-filter-gallery-container, .elementor .fp-gallery .eael-filter-gallery-control { background: transparent !important; box-shadow: none !important; }
.elementor .fp-gallery .eael-filter-gallery-control ul li.control { text-transform: none !important; letter-spacing: 0 !important; background: var(--fp-card) !important; color: var(--fp-muted-fg) !important; border: 1px solid var(--fp-border) !important; border-radius: .125rem !important; font-size: .875rem !important; font-weight: 500 !important; padding: .5rem 1.25rem !important; }
.elementor .fp-gallery .eael-filter-gallery-control ul li.control:hover { color: var(--fp-fg) !important; }
.elementor .fp-gallery .eael-filter-gallery-control ul li.control.active { background: var(--fp-gold) !important; border-color: var(--fp-gold) !important; color: hsl(220 20% 10%) !important; }
.elementor .fp-gallery .eael-filter-gallery-control ul li.control:focus-visible { outline: 2px solid var(--fp-gold-dark); outline-offset: 2px; }
.elementor .fp-blog a:not([href]) { cursor: default; text-decoration: none; }
.elementor .fp-blog .eael-entry-title a:not([href]) { color: var(--fp-fg); }

/* ==========================================================================
   Legal pages
   ========================================================================== */
.e-con.fp-legal-card, .fp-legal-body .fp-legal-card { border-radius: .375rem; border: 1px solid var(--fp-border); background: var(--fp-card); padding: 1.5rem; }
.fp-legal-toctitle { --fp-mb: 1rem; margin-bottom: 1rem; }
.fp-legal-toctitle .elementor-heading-title { font-family: var(--fp-font-heading); font-size: .75rem; line-height: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: .2em; color: var(--fp-muted-fg); }
.fp-legal-toc { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem 2rem; counter-reset: fp-toc; }
@media (min-width: 768px) { .fp-legal-toc { grid-template-columns: 1fr 1fr; } }
.fp-legal-toc li { counter-increment: fp-toc; }
.fp-legal-toc a { display: flex; align-items: baseline; gap: .5rem; font-size: .875rem; line-height: 1.25rem; color: var(--fp-muted-fg); text-underline-offset: 4px; }
.fp-legal-toc a::before { content: counter(fp-toc) "."; font-family: var(--fp-font-heading); font-size: .75rem; color: var(--fp-gold); }
.fp-legal-toc a:hover, .fp-legal-toc a:focus { color: var(--fp-gold-dark); text-decoration: underline; }
.e-con.fp-legal-sec { padding: 2rem 0; border-bottom: 1px solid var(--fp-border); scroll-margin-top: 7rem; }
.e-con.fp-legal-sec:first-of-type { padding-top: 0; }
.e-con.fp-legal-head { --fp-mb: 1rem; margin-bottom: 1rem; }
.fp-legal-icon { line-height: 0; }
.fp-legal-icon .elementor-icon { display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 9999px; background: var(--fp-gold-light); color: var(--fp-gold-dark); font-size: 1.25rem; }
.fp-legal-icon .elementor-icon svg { width: 1em; height: 1em; }
.fp-legal-title .elementor-heading-title { font-size: 1.25rem; line-height: 1.75rem; font-weight: 700; color: var(--fp-fg); }
@media (min-width: 768px) { .fp-legal-title .elementor-heading-title { font-size: 1.5rem; line-height: 2rem; } }
.fp-legal-body { font-size: .875rem; line-height: 1.625; color: var(--fp-muted-fg); }
@media (min-width: 768px) { .fp-legal-body { font-size: 15px; } }
.fp-legal-body p, .fp-legal-body ul, .fp-legal-body .fp-legal-card, .fp-legal-body .fp-legal-tablewrap { margin: 0 0 1rem; }
.fp-legal-body > :last-child { --fp-mb: 0; margin-bottom: 0; }
.fp-legal-body a { color: var(--fp-gold-dark); text-decoration: underline; text-underline-offset: 3px; }
.fp-legal-body strong { font-weight: 600; color: var(--fp-fg); }
.fp-legal-body .fp-legal-list { list-style: disc; padding-left: 1.25rem; }
.fp-legal-body .fp-legal-list li { --fp-mb: .5rem; margin-bottom: .5rem; }
.fp-legal-body .fp-legal-list li::marker { color: var(--fp-fg); }
.fp-legal-body .fp-legal-cardtitle { margin: 0 0 1rem; font-family: var(--fp-font-heading); font-size: .75rem; line-height: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: .2em; color: var(--fp-gold-dark); }
.fp-legal-body .fp-legal-dl { display: grid; gap: .75rem 2rem; margin: 0; }
@media (min-width: 768px) { .fp-legal-body .fp-legal-dl { grid-template-columns: 1fr 1fr; } }
.fp-legal-body .fp-legal-dl dt { font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .025em; color: var(--fp-muted-fg); font-weight: 400; }
.fp-legal-body .fp-legal-dl dd { margin: 0; font-size: .875rem; line-height: 1.25rem; font-weight: 500; color: var(--fp-fg); }
.fp-legal-body .fp-legal-tablewrap { overflow-x: auto; border: 1px solid var(--fp-border); border-radius: .375rem; background: var(--fp-card); }
.fp-legal-body table { width: 100%; min-width: 40rem; margin: 0; border-collapse: collapse; font-size: .8125rem; line-height: 1.4; }
.fp-legal-body table caption { caption-side: top; padding: .75rem 1rem; text-align: left; font-size: .75rem; color: var(--fp-muted-fg); }
.fp-legal-body table th, .fp-legal-body table td { padding: .75rem 1rem; border: 0; border-top: 1px solid var(--fp-border); text-align: left; vertical-align: top; background: none; }
.fp-legal-body table thead th { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--fp-muted-fg); font-weight: 600; background: var(--fp-secondary); }
.fp-legal-body table tbody th { font-weight: 600; color: var(--fp-fg); }
.fp-legal-updated { margin-top: 2rem; font-size: .75rem; line-height: 1rem; color: var(--fp-muted-fg); }

/* ==========================================================================
   Pixel-level alignment with the design (measured against the original)
   ========================================================================== */
:root { --fp-muted-fg: hsl(220 10% 45%); }

/* Width helpers must beat Elementor's ".elementor.elementor .e-con > .elementor-widget { max-width: 100% }". */
.elementor.elementor .e-con .elementor-widget.elementor-widget.fp-mw-xl { max-width: 36rem; }
.elementor.elementor .e-con .elementor-widget.elementor-widget.fp-mw-2xl { max-width: 42rem; }
.elementor.elementor .e-con .elementor-widget.elementor-widget.fp-mw-4xl { max-width: 56rem; }

/* Radii as in the design system: md = 4px, lg = 6px, xl = 12px. */
.fp-card, .fp-rounded, .fp-rounded img, .fp-ibox-hours, .e-con.fp-form-card, .e-con.fp-legal-card, .fp-legal-body .fp-legal-card,
.fp-room-slider, .elementor .fp-gallery .eael-gallery-grid-item, .elementor .fp-blog .eael-grid-post-holder, .fp-form .ff-message-success { border-radius: 4px; }
.fp-ibox-plain { border-radius: 6px; }

/* ---- Header ---- */
#masthead .fp-header > .e-con-inner { min-height: 32px; }
#masthead .fp-nav .menu-item.fp-menu-cta > a.hfe-menu-item { margin-top: -10px; --fp-mb: -10px; margin-bottom: -10px; }
@media (min-width: 1025px) {
	#masthead .fp-nav nav.hfe-nav-menu__layout-horizontal { width: auto !important; left: auto !important; }
	#masthead .fp-nav ul.hfe-nav-menu { justify-content: flex-end; }
	#masthead .fp-nav .hfe-nav-menu, #masthead .fp-nav .elementor-widget-container { line-height: 20px; }
	#masthead .fp-nav .menu-item, #masthead .fp-nav .menu-item .hfe-has-submenu-container { line-height: 20px; }
}

/* ---- Hero ---- */
.elementor.elementor .e-con.fp-hero-home .elementor-widget.fp-hero-title { max-width: 56rem; --fp-mb: 1.5rem; }
.elementor.elementor .e-con.fp-hero .elementor-widget.fp-hero-sub { max-width: 42rem; }
.elementor.elementor .e-con.fp-hero-home .elementor-widget.fp-hero-sub { --fp-mb: 2.5rem; }
.fp-hero-home .fp-hero-title .elementor-heading-title { line-height: 1.25; }
@media (min-width: 768px) {
	.fp-hero-home .fp-hero-title .elementor-heading-title { line-height: 1; }
	.fp-hero-home .fp-hero-sub { font-size: 1.25rem; line-height: 1.75rem; }
}

/* ---- Section titles ---- */
@media (min-width: 1025px) { .fp-h2-tight .elementor-heading-title { line-height: 2.5rem !important; } }

/* ---- Icon boxes: Elementor forces "align-items: unset !important" on the wrapper ---- */
.elementor .fp-feature .elementor-icon-box-wrapper, .elementor .fp-svc .elementor-icon-box-wrapper { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; }
.elementor .fp-feature .elementor-icon-box-icon, .elementor .fp-svc .elementor-icon-box-icon, .elementor .fp-ibox .elementor-icon-box-icon { display: flex !important; justify-content: center; line-height: 0; }
.elementor .fp-feature .elementor-icon-box-content, .elementor .fp-svc .elementor-icon-box-content { width: 100%; text-align: center; }
.elementor .fp-feature .elementor-icon-box-title, .elementor .fp-svc .elementor-icon-box-title, .elementor .fp-ibox .elementor-icon-box-title { display: block; }
.elementor .fp-feature .elementor-icon-box-title > span, .elementor .fp-svc .elementor-icon-box-title > span, .elementor .fp-ibox .elementor-icon-box-title > span { display: block; }
.elementor .fp-ibox.fp-ibox .elementor-icon-box-wrapper { display: flex !important; flex-direction: row !important; align-items: flex-start !important; text-align: left !important; }
.fp-ibox .elementor-icon-box-title { font-family: var(--fp-font-heading); }
.fp-ibox-plain .elementor-icon-box-title { font-family: var(--fp-font-body); }

/* Service cards (El Hotel) */
.fp-svc .elementor-icon { color: var(--fp-gold-dark); }
.fp-svc:hover .elementor-icon { background: var(--fp-gold); color: hsl(220 20% 10%); }
.elementor .fp-svc .elementor-icon-box-wrapper { gap: .75rem; }
.fp-svc .elementor-icon-box-title { margin: 0 0 .75rem; }

/* ---- El Hotel: intro grid (2 + 3 of 5 columns) and photo mosaic ---- */
@media (min-width: 1025px) {
	.e-con.fp-grid-2-3 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.e-con.fp-grid-2-3 > :first-child { grid-column: span 2; }
	.e-con.fp-grid-2-3 > :last-child { grid-column: span 3; }
}
.e-con.fp-mosaic { align-items: stretch; }
.e-con.fp-mosaic-side > .elementor-widget { flex: 1 1 auto; position: static; }
.e-con.fp-mosaic-side img { position: static; inset: auto; width: 100%; height: 100%; }

/* ---- FAQ accordion: closed, hover and open states ---- */
.elementor .fp-faq.fp-faq .eael-accordion-list { border-radius: 12px; border: 1px solid var(--fp-border); background: var(--fp-card); transition: all .3s; }
.elementor .fp-faq.fp-faq .eael-accordion-list:hover { border-color: hsl(49 92% 47% / .2); box-shadow: var(--fp-shadow-md); }
.elementor .fp-faq.fp-faq .eael-accordion-list:has(.eael-accordion-header.active) { border-color: hsl(49 92% 47% / .3); box-shadow: 0 10px 15px -3px hsl(49 92% 47% / .05), 0 4px 6px -4px hsl(49 92% 47% / .05); }
.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header,
.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header:hover,
.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header.active { background: transparent !important; padding: 1.25rem 1.5rem; gap: 1rem; border: 0; border-radius: 12px; }
.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header .eael-accordion-tab-title,
.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header:hover .eael-accordion-tab-title,
.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header.active .eael-accordion-tab-title { color: var(--fp-fg) !important; font-family: var(--fp-font-heading); font-size: 1rem; line-height: 1.5rem; font-weight: 600; margin: 0; padding: 0; }
@media (min-width: 768px) {
	.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header .eael-accordion-tab-title,
	.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header:hover .eael-accordion-tab-title,
	.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-header.active .eael-accordion-tab-title { font-size: 1.125rem; line-height: 1.75rem; }
}
.elementor .fp-faq.fp-faq .eael-accordion-header .fa-accordion-icon,
.elementor .fp-faq.fp-faq .eael-accordion-header:hover .fa-accordion-icon { width: 2.5rem; height: 2.5rem; margin: 0 !important; border-radius: 6px; background: var(--fp-gold-light); color: var(--fp-gold-dark) !important; transition: background-color .3s, color .3s; }
.elementor .fp-faq.fp-faq .eael-accordion-list:hover .eael-accordion-header:not(.active) .fa-accordion-icon { background: hsl(49 92% 47% / .2); }
.elementor .fp-faq.fp-faq .eael-accordion-header.active .fa-accordion-icon,
.elementor .fp-faq.fp-faq .eael-accordion-header.active:hover .fa-accordion-icon { background: var(--fp-gold); color: hsl(220 20% 10%) !important; }
.elementor .fp-faq.fp-faq .eael-accordion-header .fa-accordion-icon svg { width: 1.25rem; height: 1.25rem; stroke: currentColor; }
/* The "+" toggle of the design replaces the plugin's own icon. */
.elementor .fp-faq.fp-faq .eael-accordion-header > svg.fa-toggle, .elementor .fp-faq.fp-faq .eael-accordion-header > i.fa-toggle { display: none !important; }
.elementor .fp-faq.fp-faq .eael-accordion-header::after { content: "+"; flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 9999px; background: var(--fp-muted); color: var(--fp-gold); font-family: var(--fp-font-body); font-size: 1.25rem; line-height: 1; font-weight: 400; transition: all .3s; }
.elementor .fp-faq.fp-faq .eael-accordion-list:hover .eael-accordion-header::after { background: hsl(49 92% 47% / .1); }
.elementor .fp-faq.fp-faq .eael-accordion-header.active::after { background: hsl(49 92% 47% / .1); transform: rotate(45deg); }
.elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-content { padding: 0 1.5rem 1.5rem 5rem; border: 0; background: transparent; }
@media (max-width: 767px) { .elementor .fp-faq.fp-faq .eael-accordion-list .eael-accordion-content { padding-left: 5rem; } }
.fp-faq-list li::before { top: .375rem; }
.elementor .fp-faq.fp-faq .eael-accordion-header:focus-visible { outline: 2px solid var(--fp-gold-dark); outline-offset: 2px; }

/* ---- Booking call to action ---- */
.fp-cta-title .elementor-heading-title { line-height: 1.05; }
@media (min-width: 768px) { .fp-cta-title .elementor-heading-title { line-height: 1; } }

/* ---- Rooms ---- */
.fp-amenities .elementor-icon-list-item { gap: 0; }
.elementor .fp-amenities .elementor-icon-list-icon { padding: 0 !important; margin: 0 .375rem 0 0 !important; width: .875rem; min-width: 0; display: flex; }
.elementor .fp-amenities .elementor-icon-list-text { padding: 0 !important; }
.elementor .fp-room-slider .elementor-swiper-button { top: 50% !important; transform: translateY(-50%) !important; padding: 0; }
.elementor .fp-room-slider .elementor-swiper-button svg { width: 1.25rem; height: 1.25rem; }

/* ---- Gallery ---- */
.elementor .fp-gallery .gallery-item-thumbnail-wrap { height: 16rem !important; }
.elementor .fp-gallery .gallery-item-thumbnail-wrap img { height: 16rem !important; width: 100% !important; object-fit: cover; }
.elementor .fp-gallery .eael-filter-gallery-control ul li.control.active { border-color: transparent !important; }

/* ---- Blog ---- */
.elementor .fp-blog .post-carousel-categories li a { text-transform: none !important; }

/* ---- Contact ---- */
.fp-ibox-loose .elementor-icon-box-description { line-height: 1.5rem; }
.fp-form .fluentform legend, .fp-form .fluentform .ff_screen_reader_title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fp-form .fluentform .ff-el-group { margin: 0 0 1.25rem !important; }
.fp-form .fluentform .ff-el-input--label { margin: 0 0 .25rem !important; padding: 0; line-height: 1.25rem; }
.fp-form .fluentform .ff-el-input--label label { display: block; line-height: 1.25rem; margin: 0; }
.fp-form .fluentform input.ff-el-form-control { height: 42px; padding: .625rem 1rem; line-height: 1.25rem; border-radius: 2px; }
.fp-form .fluentform textarea.ff-el-form-control { padding: .625rem 1rem; line-height: 1.25rem; border-radius: 2px; min-height: 0; height: 122px; }
.fp-form .fluentform .ff-btn-submit { height: 44px; padding: .75rem 1.5rem; line-height: 1.25rem; border-radius: 2px; }

/* ---- Footer ---- */
#colophon .fp-logo-footer .elementor-heading-title a { color: #fff; }
.elementor .fp-foot-list .elementor-icon-list-icon { padding: 0 !important; margin: .125rem .5rem 0 0 !important; width: 1rem; min-width: 0; display: flex; }
.elementor .fp-foot-list .elementor-icon-list-text, .elementor .fp-foot-legal .elementor-icon-list-text { padding: 0 !important; }
.fp-foot-legal .elementor-icon-list-text { color: rgb(255 255 255 / .5); }
.fp-foot-copy { color: rgb(255 255 255 / .4); }
.elementor .fp-foot-copy p { margin: 0; }
.elementor .fp-foot-copy .fp-foot-credit { margin-top: .375rem; }
.fp-foot-copy a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.fp-foot-copy a:hover, .fp-foot-copy a:focus { color: var(--fp-gold); }
.elementor .fp-foot-logos-all { margin-top: 1.5rem; }
.elementor .fp-foot-logos-all img { display: block; width: 100%; max-width: 300px; height: auto; object-fit: contain; }

/* ---- Google map placeholder until functional cookies are accepted (CookieYes) ---- */
.video-placeholder-normal { width: 100% !important; max-width: 100%; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; gap: 1rem; padding: 1.5rem; box-sizing: border-box; background: var(--fp-secondary) !important; cursor: pointer; }
.video-placeholder-normal::before { content: ""; width: 2.5rem; height: 2.5rem; background: var(--fp-gold-dark); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat; }
.video-placeholder-normal .video-placeholder-text-normal { position: static !important; transform: none !important; margin: 0 !important; padding: .75rem 1.5rem !important; background: var(--fp-gold) !important; border: 0 !important; color: var(--fp-charcoal) !important; font-family: var(--fp-font-body); font-size: .875rem !important; line-height: 1.25rem; font-weight: 600; text-align: center; transition: background-color .15s; }
.video-placeholder-normal:hover .video-placeholder-text-normal { background: hsl(49 92% 42%) !important; }

/* ---- Legal pages ---- */
.fp-legal-toc li { margin: 0; padding: 0; line-height: 1.25rem; }
.fp-legal-toc a:hover, .fp-legal-toc a:focus { color: var(--fp-gold); }
.e-con.fp-legal-sec:first-of-type { padding-top: 2rem; }
.e-con.fp-legal-sec:last-of-type { border-bottom: 0; padding-bottom: 0; }
.fp-legal-body a { color: var(--fp-gold); text-decoration: none; }
.fp-legal-body a:hover { text-decoration: underline; text-underline-offset: 4px; }
.fp-legal-body strong { font-weight: 500; }
.fp-legal-body .fp-legal-cardtitle { color: var(--fp-gold); }
.fp-legal-body .fp-legal-tablewrap { border: 0; border-radius: 0; background: none; }
.fp-legal-body table { min-width: 0; font-size: .875rem; line-height: 1.25rem; border: 0; }
.fp-legal-body table caption { padding: 0 0 .75rem; font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .2em; color: var(--fp-muted-fg); text-align: left; }
.fp-legal-body table thead th, .fp-legal-body table tbody th, .fp-legal-body table td { border: 0 !important; border-bottom: 1px solid var(--fp-border) !important; background: none !important; font-size: .875rem; line-height: 1.25rem; text-transform: none; letter-spacing: 0; text-align: left; vertical-align: top; }
.fp-legal-body table thead th { padding: .5rem 1rem .5rem 0; font-weight: 600; color: var(--fp-fg); }
.fp-legal-body table tbody th { padding: .75rem 1rem .75rem 0; font-weight: 500; color: var(--fp-fg); }
.fp-legal-body table td { padding: .75rem 1rem .75rem 0; color: var(--fp-muted-fg); }
.fp-legal-body table th:last-child, .fp-legal-body table td:last-child { padding-right: 0; }
.fp-legal-body table tbody tr:nth-child(odd) > td, .fp-legal-body table tbody tr:nth-child(odd) > th, .fp-legal-body table tbody tr:hover > td, .fp-legal-body table tbody tr:hover > th { background: none !important; }

/* ---- Round 2 ---- */
#masthead .fp-nav ul.hfe-nav-menu::before, #masthead .fp-nav ul.hfe-nav-menu::after { display: none !important; content: none !important; }
@media (min-width: 768px) { .elementor.elementor .e-con.fp-hero-home .elementor-widget.fp-hero-sub { font-size: 1.25rem; line-height: 1.75rem; } }
.elementor .fp-feature .elementor-icon-box-wrapper { gap: 0 !important; }
.elementor .fp-svc .elementor-icon-box-wrapper { gap: .75rem !important; }
.elementor .fp-ibox.fp-ibox .elementor-icon-box-wrapper { gap: 1rem !important; }
.elementor .fp-ibox.fp-ibox-plain .elementor-icon-box-wrapper { gap: .75rem !important; }
/* FAQ icon: same colour on hover (only its background tint changes), as in the design. */
.elementor .fp-faq.fp-faq .eael-accordion-header .fa-accordion-icon svg,
.elementor .fp-faq.fp-faq .eael-accordion-header:hover .fa-accordion-icon svg,
.elementor .fp-faq.fp-faq .eael-accordion-list:hover .fa-accordion-icon svg { fill: none !important; stroke: currentColor !important; color: inherit !important; }
.elementor .fp-faq.fp-faq .eael-accordion-header:not(.active) .fa-accordion-icon,
.elementor .fp-faq.fp-faq .eael-accordion-header:not(.active):hover .fa-accordion-icon { color: var(--fp-gold-dark) !important; fill: none !important; }

/* ---- Round 3 ---- */
.fp-amenities .elementor-icon-list-item { gap: .375rem !important; }
.elementor .fp-amenities .elementor-icon-list-icon { margin: 0 !important; }
.elementor .fp-amenities .elementor-icon-list-icon svg { margin: 0 !important; }
.e-con .elementor-widget.elementor-widget.fp-blog { margin-block-end: -1rem; }
.fp-ibox:not(.fp-ibox-card):not(.fp-ibox-plain):not(.fp-ibox-hours) .elementor-icon-box-content { min-height: 4.5rem; }
.fp-form .fluentform .ff-el-input--label { display: block !important; }
.fp-form .fluentform .ff_submit_btn_wrapper { margin: 0 !important; }
.fp-legal-tocwrap ol { margin: 0 !important; padding: 0 !important; }
.fp-legal-toc a { line-height: 1.25rem; height: 1.25rem; }
.fp-legal-toc a::before { line-height: 1.25rem; }
.e-con.fp-legal-sec:last-of-type { border-bottom: 1px solid var(--fp-border); padding-bottom: 2rem; }
.elementor .fp-amenities .elementor-icon-list-items, .elementor .fp-foot-legal .elementor-icon-list-items { margin: 0 !important; }
@media (max-width: 767px) {
	.e-con.fp-hero-actions { align-items: stretch; width: auto; }
	.fp-hero-actions .elementor-button { display: block; width: 100%; text-align: center; }
}
.fp-ibox-loose .elementor-icon-box-description { line-height: 1.25rem; }
.fp-ibox-loose .fp-line { display: block; line-height: 1.25rem; }
.fp-ibox-loose .fp-line + .fp-line { margin-top: .25rem; }
.fp-legal-icon { flex-shrink: 0; }
.e-con.fp-legal-head > .fp-legal-title { flex: 1 1 0; min-width: 0; }
.fp-legal-tocwrap p:empty { display: none; margin: 0; }
