:root {
  --mr-navy: #0b395a;
  --mr-navy-deep: #06263d;
  --mr-cyan: #56c4e9;
  --mr-cyan-bright: #8fe7ff;
  --mr-frame: rgba(86, 196, 233, 0.76);
  --mr-focus: #ffdd66;
}

.mr-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.mr-privacy {
  margin-top: .45rem;
  font-size: .9rem;
  line-height: 1.5;
}

.mr-privacy label {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
}

.mr-privacy input {
  margin-top: .3rem;
  flex: 0 0 auto;
}

.mr-form-status {
  display: none;
  margin-top: 1rem;
  padding: .9rem 1rem;
  border-radius: 10px;
  font-weight: 700;
}

.mr-form-status.is-pending,
.mr-form-status.is-success,
.mr-form-status.is-error {
  display: block;
}

.mr-form-status.is-pending {
  background: #fff8d7;
  color: #5d4900;
}

.mr-form-status.is-success {
  background: #e6f7ec;
  color: #165b2f;
  border: 1px solid #8fd3a6;
}

.mr-form-status.is-error {
  background: #fff0f0;
  color: #8b1d1d;
  border: 1px solid #e6a1a1;
}

/* Shared focus and motion polish without replacing the original layout. */
a,
button,
input,
select,
textarea,
summary {
  transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease,
    box-shadow 180ms ease, transform 180ms ease, filter 180ms ease;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--mr-focus) !important;
  outline-offset: 4px !important;
}

/* Existing header CTA, now easier to identify on every breakpoint. */
.mr-emergency-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(34, 177, 225, 0.3), inset 0 0 0 1px rgba(255, 255, 255, 0.2) !important;
}

.mr-emergency-cta::after {
  content: "";
  position: absolute;
  inset: -70% -30%;
  z-index: -1;
  background: linear-gradient(110deg, transparent 36%, rgba(255, 255, 255, 0.5) 49%, transparent 62%);
  transform: translateX(-70%);
  transition: transform 520ms ease;
}

.mr-emergency-cta:hover,
.mr-emergency-cta:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 18px 38px rgba(34, 177, 225, 0.42), inset 0 0 0 1px rgba(255, 255, 255, 0.3) !important;
}

.mr-emergency-cta:hover::after,
.mr-emergency-cta:focus-visible::after {
  transform: translateX(70%);
}

/* Prominent bilingual switch using the translation links already present in WordPress. */
[class*="gt-wrapper"] {
  display: inline-flex !important;
  align-items: center;
  gap: 0 !important;
  min-height: 42px;
  padding: 4px !important;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 6px;
  background: rgba(4, 37, 59, 0.5);
  backdrop-filter: blur(8px);
}

html body [class*="gt-wrapper"] a img,
html body [class*="gt-wrapper"] img {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  opacity: 0 !important;
}

html body [class*="gt-wrapper"] a {
  display: inline-grid !important;
  place-items: center;
  min-width: 42px;
  min-height: 34px;
  padding: 0 10px !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: 4px;
}

[class*="gt-wrapper"] a:hover,
[class*="gt-wrapper"] a:focus-visible {
  color: var(--mr-navy-deep) !important;
  background: var(--mr-cyan-bright);
}

/* Framed imagery and the requested light behind the frame. */
.mr-image-frame {
  position: relative !important;
  isolation: isolate;
}

.mr-image-frame::before {
  content: "";
  position: absolute;
  inset: 9% 8% -3%;
  z-index: -1;
  border-radius: 20px;
  background: radial-gradient(circle at 50% 50%, rgba(86, 196, 233, 0.42), rgba(22, 95, 145, 0.12) 48%, transparent 73%);
  filter: blur(20px);
  opacity: 0.45;
  transform: scale(0.94);
  transition: opacity 260ms ease, transform 320ms ease, filter 320ms ease;
  pointer-events: none;
}

.mr-image-frame img,
img.mr-framed-image {
  border: 1px solid var(--mr-frame) !important;
  border-radius: 10px;
  box-shadow: 0 16px 38px rgba(6, 38, 61, 0.22), inset 0 0 0 1px rgba(255, 255, 255, 0.28);
  transition: transform 380ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 320ms ease,
    border-color 320ms ease, filter 320ms ease !important;
}

.mr-image-frame:hover::before,
.mr-image-frame:focus-within::before {
  opacity: 0.95;
  transform: scale(1.03);
  filter: blur(25px);
}

.mr-image-frame:hover img,
.mr-image-frame:focus-within img,
img.mr-framed-image:hover {
  transform: translateY(-6px) scale(1.012);
  border-color: var(--mr-cyan-bright) !important;
  box-shadow: 0 24px 54px rgba(6, 38, 61, 0.34), 0 0 28px rgba(86, 196, 233, 0.22);
  filter: saturate(1.04) contrast(1.02);
}

.elementor-cta,
.elementor-post,
.elementor-image-box-wrapper {
  transition: transform 240ms ease, box-shadow 260ms ease, border-color 260ms ease !important;
}

.elementor-cta:hover,
.elementor-post:hover,
.elementor-image-box-wrapper:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 42px rgba(6, 38, 61, 0.2) !important;
}

/* One-time electrical logo intro. */
.witscher-intro {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 50% 50%, rgba(86, 196, 233, 0.22), transparent 26%),
    linear-gradient(145deg, #041d30 0%, #0b395a 52%, #06263d 100%);
  animation: mr-intro-out 420ms ease 2s forwards;
}

.witscher-intro[hidden] {
  display: none;
}

.witscher-intro__stage {
  position: relative;
  width: min(74vw, 430px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
}

.witscher-intro__stage::before,
.witscher-intro__stage::after {
  content: "";
  position: absolute;
  inset: 4%;
  border: 1px solid rgba(143, 231, 255, 0.3);
  border-radius: 50%;
  transform: rotate(32deg) scaleY(0.46);
  animation: mr-orbit-pulse 980ms ease-out 520ms both;
}

.witscher-intro__stage::after {
  transform: rotate(-36deg) scaleY(0.46);
  animation-delay: 650ms;
}

.witscher-intro__logo {
  position: relative;
  z-index: 3;
  width: min(66vw, 330px);
  height: auto;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: drop-shadow(0 0 22px rgba(86, 196, 233, 0.68));
  animation: mr-logo-flight 1.42s cubic-bezier(0.16, 0.86, 0.22, 1) both;
}

.witscher-intro__burst {
  position: absolute;
  inset: 50%;
  z-index: 2;
}

.witscher-intro__spark {
  position: absolute;
  left: 0;
  top: 0;
  width: clamp(86px, 18vw, 190px);
  height: 2px;
  transform-origin: left center;
  background: linear-gradient(90deg, #fff, var(--mr-cyan-bright) 35%, transparent 100%);
  opacity: 0;
  animation: mr-spark 580ms ease-out 910ms both;
}

.witscher-intro__spark:nth-child(2) { transform: rotate(45deg); animation-delay: 940ms; }
.witscher-intro__spark:nth-child(3) { transform: rotate(90deg); animation-delay: 900ms; }
.witscher-intro__spark:nth-child(4) { transform: rotate(135deg); animation-delay: 960ms; }
.witscher-intro__spark:nth-child(5) { transform: rotate(180deg); animation-delay: 920ms; }
.witscher-intro__spark:nth-child(6) { transform: rotate(225deg); animation-delay: 950ms; }
.witscher-intro__spark:nth-child(7) { transform: rotate(270deg); animation-delay: 910ms; }
.witscher-intro__spark:nth-child(8) { transform: rotate(315deg); animation-delay: 970ms; }

.witscher-intro__skip {
  position: absolute;
  right: 20px;
  bottom: 20px;
  z-index: 5;
  min-width: 88px;
  min-height: 44px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 6px;
  background: rgba(3, 27, 43, 0.7);
  font: 700 13px/1 sans-serif;
  letter-spacing: 0.05em;
  cursor: pointer;
}

.witscher-intro__skip:hover,
.witscher-intro__skip:focus-visible {
  color: var(--mr-navy-deep);
  background: var(--mr-cyan-bright);
}

@keyframes mr-logo-flight {
  0% { opacity: 0; transform: translate3d(-28vw, 18vh, 0) scale(0.08) rotate(-26deg); filter: blur(10px) drop-shadow(0 0 0 transparent); }
  54% { opacity: 1; transform: translate3d(0, 0, 0) scale(1.09) rotate(1.2deg); filter: blur(0) drop-shadow(0 0 34px rgba(86, 196, 233, 0.9)); }
  68% { transform: translate3d(-2px, 1px, 0) scale(0.97) rotate(-0.7deg); }
  75% { transform: translate3d(2px, -1px, 0) scale(1.02) rotate(0.45deg); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1) rotate(0); filter: blur(0) drop-shadow(0 0 20px rgba(86, 196, 233, 0.58)); }
}

@keyframes mr-orbit-pulse {
  0% { opacity: 0; filter: blur(9px); }
  52% { opacity: 1; }
  100% { opacity: 0.45; filter: blur(0); }
}

@keyframes mr-spark {
  0% { opacity: 0; width: 0; filter: blur(4px); }
  18% { opacity: 1; }
  100% { opacity: 0; width: clamp(86px, 18vw, 190px); filter: blur(0); }
}

@keyframes mr-intro-out {
  to { opacity: 0; visibility: hidden; }
}

/* Visible, compliant footer attribution. */
.marketing-ritter-credit {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 46px;
  padding: 10px 18px;
  color: rgba(255, 255, 255, 0.76);
  background: #031b2b;
  border-top: 1px solid rgba(86, 196, 233, 0.25);
  font-size: 13px;
  line-height: 1.4;
  text-align: center;
}

.marketing-ritter-credit a {
  margin-left: 0.35em;
  color: var(--mr-cyan-bright);
  font-weight: 800;
  text-decoration: none;
}

.marketing-ritter-credit a:hover,
.marketing-ritter-credit a:focus-visible {
  color: #fff;
  text-decoration: underline;
}

.mr-mobile-emergency {
  display: none;
}

/* The cloned WordPress flag assets are not needed: clear text labels stay crisp and accessible. */
.gtranslate_wrapper {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.gtranslate_wrapper .glink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  min-height: 34px;
  padding: 5px 8px;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 999px;
  background: rgba(3, 27, 43, 0.46);
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.08em;
  text-decoration: none !important;
}

.gtranslate_wrapper .glink img {
  display: none !important;
}

.gtranslate_wrapper .glink:hover,
.gtranslate_wrapper .glink:focus-visible,
.gtranslate_wrapper .gt-current-lang {
  color: var(--mr-navy-deep) !important;
  background: var(--mr-cyan-bright);
  border-color: #fff;
  box-shadow: 0 0 20px rgba(86, 196, 233, 0.42);
}

/* The existing WhatsApp control remains intact; only its visual emphasis changes. */
.joinchat__button {
  box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.58), 0 12px 30px rgba(4, 38, 61, 0.32) !important;
  animation: mr-whatsapp-glow 2.8s ease-out infinite !important;
}

.joinchat__button:hover,
.joinchat__button:focus-visible {
  transform: translateY(-4px) scale(1.045);
  filter: saturate(1.12) brightness(1.04);
}

@keyframes mr-whatsapp-glow {
  0%, 42% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.54), 0 12px 30px rgba(4, 38, 61, 0.32); }
  72% { box-shadow: 0 0 0 17px rgba(37, 211, 102, 0), 0 16px 38px rgba(37, 211, 102, 0.24); }
  100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0), 0 12px 30px rgba(4, 38, 61, 0.32); }
}

@media (max-width: 767px) {
  [class*="gt-wrapper"] {
    min-height: 38px;
    margin-block: 8px;
  }

  [class*="gt-wrapper"] a {
    min-width: 46px;
    min-height: 34px;
  }

  .mr-image-frame:hover img,
  .mr-image-frame:focus-within img,
  img.mr-framed-image:hover {
    transform: translateY(-3px) scale(1.006);
  }

  .mr-mobile-emergency {
    position: fixed;
    left: 12px;
    bottom: 14px;
    z-index: 9990;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 17px;
    color: #06263d !important;
    background: var(--mr-cyan-bright);
    border: 1px solid #fff;
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(3, 27, 43, 0.32);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-decoration: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .witscher-intro {
    display: none !important;
  }
}
