/* Canonical brand tokens. Keep semantic feedback and photographic overlays intact. */
@font-face { font-family:'DM Sans'; font-style:normal; font-weight:500; font-display:swap; src:url('../fonts/dm-sans-500.ttf') format('truetype'); }
:root {
  --lre-brand-gold:#c2902e;
  --lre-brand-satin:#ddb45f;
  --lre-brand-ink:#2b2b2b;
  --lre-brand-accent:#1d3d79;
  --lre-brand-muted:#595959;
  --lre-brand-body:Khula,Arial,sans-serif;
  --lre-brand-action:'DM Sans',Arial,sans-serif;
}
body { font-family:var(--lre-brand-body); color:var(--lre-brand-ink); }
body :is(.elementor-heading-title,.elementor-widget-text-editor,.bootstrap-realtypress,.wpforms-container,.lre-component-heading) { font-family:var(--lre-brand-body) !important; }
/* Deliberate !important contract beats widget-specific Elementor and WPForms styles. */
body :is(.lre-primary-action .elementor-button,.lre-secondary-action .elementor-button,
  .wpforms-submit,.lre-book,.lre-desktop-book,.lre-search-contact-launcher,.lso-launch,.lre-apply-filters,.lre-header-question) {
  font-family:var(--lre-brand-action) !important;
  font-size:16px !important; font-weight:500 !important; line-height:24px !important;
  letter-spacing:normal !important; text-transform:none !important; border-radius:4px !important;
}
body :is(.lre-primary-action .elementor-button,.wpforms-submit,.lre-book,.lre-desktop-book,
  .lre-search-contact-launcher,.lso-launch,.lre-apply-filters,.lre-header-question) {
  background-color:var(--lre-brand-gold) !important;
  background-image:linear-gradient(110deg,transparent 35%,#ffffff38 48%,transparent 61%),linear-gradient(115deg,var(--lre-brand-gold),var(--lre-brand-satin) 50%,var(--lre-brand-gold)) !important;
  background-size:250% 100%,100% 100% !important;
  background-position:100% 0,0 0;
  color:#111 !important; border:0 !important; text-decoration:none;
  animation:lre-satin 8s ease-in-out infinite;
}
body :is(.lre-primary-action .elementor-button,.wpforms-submit,.lre-book,.lre-desktop-book,
  .lre-search-contact-launcher,.lso-launch,.lre-apply-filters,.lre-header-question):hover {
  filter:brightness(1.04);
}
body :is(.lre-primary-action .elementor-button,.lre-secondary-action .elementor-button,
  .wpforms-submit,.lre-book,.lre-desktop-book,.lre-search-contact-launcher,.lso-launch,.lre-apply-filters):focus-visible {
  outline:3px solid var(--lre-brand-accent) !important; outline-offset:3px;
}
body :is(.wpforms-submit,.lre-apply-filters):is(:disabled,[aria-disabled="true"]) {
  animation:none; opacity:.6; cursor:wait; filter:none;
}
@keyframes lre-satin { 0%,35% { background-position:100% 0,0 0; } 75%,100% { background-position:-100% 0,0 0; } }
@media(prefers-reduced-motion:reduce) {
  body :is(.lre-primary-action .elementor-button,.wpforms-submit,.lre-book,.lre-desktop-book,
    .lre-search-contact-launcher,.lso-launch,.lre-apply-filters,.lre-header-question) { animation:none; }
}
/* Never flash a mobile fixed action before its scroll threshold, including fallback launchers. */
@media(max-width:1024px) {
  body:not(.lre-contact-scroll-ready) :is(.lre-booking-bar,#lso-root .lso-launch) { visibility:hidden !important; pointer-events:none; }
}
