/* Glue styles for the Astro rebuild: everything the WordPress plugins
   (Oxygen JS, Flickity, Formidable) provided at runtime, now in plain CSS. */

/* Custom display font carried over from the WP "MA Custom Fonts" snippet */
@font-face {
  font-family: "Hauracherell NC";
  font-weight: 400;
  font-style: normal;
  src: url("/fonts/Hauracherell-NC.woff2") format("woff2");
  font-display: block;
}
.has-hauracherell-nc-font-family { font-family: "Hauracherell NC"; }

/* --- Header / dropdown menu (was Oxygen pro-menu JS) --- */
.oxy-header-row .oxy-header-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 auto;
}
.oxy-pro-menu .menu-item .sub-menu {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(21, 42, 63, 0.12);
  padding: 10px 16px;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.oxy-pro-menu .menu-item-has-children:hover > .sub-menu,
.oxy-pro-menu .menu-item-has-children:focus-within > .sub-menu {
  visibility: visible;
  opacity: 1;
}
/* Inside the mobile overlay the submenu is always expanded */
.oxy-pro-menu.oxy-pro-menu-open .sub-menu {
  display: flex;
  opacity: 1;
  box-shadow: none;
  background: transparent;
}

/* --- Logo marquee (was a script in an Oxygen code block) --- */
.oxel_logo_slider__image_carrier {
  animation: ptb-marquee 30s linear infinite;
  gap: 20px;
}
@keyframes ptb-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-100%); }
}
.orange-box img { max-width: 100%; height: auto; }
.orange-box.lower { margin-top: 60px; }

/* --- Enquiry modal (was Oxygen modal JS) --- */
.oxy-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2147483640;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 0, 0, 0.7);
}
.oxy-modal-backdrop[hidden] { display: none; }
.ct-modal {
  display: flex;
  max-height: 90vh;
  overflow-y: auto;
}

/* --- Enquiry / contact forms (replaces Formidable) --- */
.ptb-form {
  width: 100%;
  text-align: left;
  padding-bottom: 40px;
}
.ptb-form label {
  display: block;
  font-weight: 500;
  font-size: 14px;
  margin-top: 14px;
}
.ptb-form .ptb-required { color: #dd008b; }
.ptb-form input,
.ptb-form select,
.ptb-form textarea {
  width: 100%;
  margin-top: 4px;
  padding: 9px 12px;
  font: inherit;
  font-size: 14px;
  color: #152a3f;
  border: 1px solid #cfd3d7;
  border-radius: 6px;
  background: #fff;
}
.ptb-form input:focus,
.ptb-form select:focus,
.ptb-form textarea:focus {
  outline: 2px solid #ff00a0;
  outline-offset: -1px;
  border-color: #ff00a0;
}
.ptb-form-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 479px) {
  .ptb-form-cols { grid-template-columns: 1fr; }
}
.ptb-submit {
  margin-top: 22px;
  border: 0;
  cursor: pointer;
  font-family: inherit;
}
.ptb-submit:disabled { opacity: 0.6; cursor: default; }

/* Honeypot: off-screen, never shown to real users */
.ptb-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.ptb-status {
  margin-top: 14px;
  font-size: 14px;
  font-weight: 500;
}
.ptb-status[data-kind="ok"] { color: #157a3f; }
.ptb-status[data-kind="error"] { color: #dd008b; }
.ptb-status[data-kind="pending"] { color: #606e79; }

/* --- Activity photo carousel (replaces Flickity) --- */
.oxy-carousel-builder { position: relative; width: 100%; }
.oxy-carousel-builder_gallery-images {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.oxy-carousel-builder_gallery-images::-webkit-scrollbar { display: none; }
.oxy-carousel-builder_gallery-image {
  flex-shrink: 0;
  scroll-snap-align: center;
  max-width: min(768px, 90%);
}
.oxy-carousel-builder_gallery-image img {
  width: 100%;
  height: auto;
  border-radius: 15px;
  display: block;
}
.oxy-carousel-builder_icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.oxy-carousel-builder_icon svg {
  width: 26px;
  height: 26px;
  fill: currentColor;
}

/* --- Small fixes --- */
.ct-image { max-width: 100%; height: auto; }
.rank-math-breadcrumb p { margin: 0; }
.rank-math-breadcrumb a { color: inherit; text-decoration: none; }
.oxel_reviewbox__image_wrapper__image {
  width: 100%;
  object-fit: cover;
}
