/* Content and imagery remain native, editable Elementor elements. */
.sp-header-root .sp-header-booking {
 border-radius:999px!important;
 padding:14px 30px!important;
 font-size:14px!important;
 font-weight:500!important;
 line-height:1.35!important;
 white-space:nowrap;
 transition:background-color .2s ease,color .2s ease,transform .2s ease;
}
.sp-header-root .sp-header-booking:hover { transform:translateY(-1px); }
.sp-header-root .sp-header-toggle {
 position:relative;
 display:inline-flex;
 align-items:center;
 justify-content:flex-start;
 width:auto!important;
 min-width:96px;
 height:44px!important;
 padding:0 42px 0 0!important;
 border:0;
 border-radius:0;
 background:transparent;
 font:500 14px/1.35 Heebo,sans-serif;
 white-space:nowrap;
 direction:rtl;
 cursor:pointer;
 transition:color .2s ease,opacity .2s ease;
}
.sp-header-root .sp-header-toggle:hover { opacity:.68; }
.sp-header-toggle::before,.sp-header-toggle::after {
 content:"";
 position:absolute;
 width:30px;
 height:2px;
 background:currentColor;
 right:0;
 left:auto;
 top:50%;
 transform:translateY(-5px);
 transform-origin:center;
 transition:transform .35s cubic-bezier(.4,0,.2,1);
}
.sp-header-toggle::after { transform:translateY(5px); }
.sp-header-toggle[aria-expanded="true"]::before { transform:translateY(-50%) rotate(45deg); }
.sp-header-toggle[aria-expanded="true"]::after { transform:translateY(-50%) rotate(-45deg); }
.sp-header-toggle:focus-visible { outline:1px solid currentColor; outline-offset:5px; }

.sp-header-root { transition:background-color .3s ease,box-shadow .3s ease; }
.sp-header-root.sp-menu-open { background:var(--sp-ivory,#fffdf9)!important; box-shadow:none!important; }
.sp-header-root.sp-menu-open :is(.sp-header-toggle,.sp-header-language) { color:var(--sp-ink,#163b50)!important; }
.sp-header-root.sp-menu-open .sp-header-logo { filter:none!important; }
.sp-header-root > .sp-header-shell { position:relative; z-index:1; }

.sp-header-panel {
 width:100vw!important;
 max-width:none!important;
 height:auto!important;
 position:fixed!important;
 inset:auto!important;
 top:var(--sp-menu-top,88px)!important;
 right:0!important;
 bottom:0!important;
 left:0!important;
 z-index:0!important;
 padding:0!important;
 margin:0;
 background:var(--sp-ivory,#fffdf9);
 opacity:0;
 transform:translate3d(0,-8px,0);
 visibility:hidden;
 pointer-events:none;
 overflow-y:auto;
 overscroll-behavior:contain;
 transition:opacity .3s ease,transform .3s ease,visibility .3s ease;
}
.sp-header-panel.is-open {
 visibility:visible;
 opacity:1;
 pointer-events:auto;
 transform:translateY(0);
}
.sp-header-panel[hidden] { display:none!important; }
.sp-header-menu-link.is-active { color:var(--sp-gold,#c98736)!important; }
.sp-header-menu-image:first-child,.sp-header-menu-image.is-active { opacity:1; }
.sp-header-menu-image.is-inactive { opacity:0; }
.sp-header-booking:not([href]),.sp-header-language:not([href]) { cursor:default; }

/* Keep the Theme Builder wrapper sticky while preserving layout space. */
.elementor-location-header:has(.sp-header-root) { position:sticky; top:0; z-index:1000; }
body.admin-bar .elementor-location-header:has(.sp-header-root) { top:32px; }
body.elementor-editor-active .elementor-location-header:has(.sp-header-root) { position:relative; top:auto; }

/* Keep the panel editable inside its own Theme Builder document. */
body.elementor-editor-active:is(.elementor-page-199,.postid-199) .sp-header-panel,
body.elementor-editor-preview:is(.elementor-page-199,.postid-199) .sp-header-panel {
 position:relative!important;
 inset:auto!important;
 width:100%!important;
 visibility:visible;
 opacity:1;
 pointer-events:auto;
 transform:none;
 min-height:32rem;
}
body.elementor-editor-active .sp-header-menu-stage:has(.elementor-element-editable) .sp-header-menu-image { opacity:0; }
body.elementor-editor-active .sp-header-menu-image.elementor-element-editable { opacity:1!important; }

@media(max-width:782px) { body.admin-bar .elementor-location-header:has(.sp-header-root) { top:46px; } }
@media(max-width:767px) {
 .sp-header-root .sp-header-booking { padding:11px 13px!important; font-size:12px!important; min-width:72px; width:auto; box-sizing:border-box; text-align:center; }
 .sp-header-root .sp-header-toggle { min-width:82px; height:38px!important; padding-right:34px!important; font-size:12px; }
 .sp-header-toggle::before,.sp-header-toggle::after { width:24px; }
}
@media(prefers-reduced-motion:reduce) {
 .sp-header-toggle::before,.sp-header-toggle::after,.sp-header-panel,.sp-header-menu-image,.sp-header-menu-link { transition:none!important; }
}

