/* Cloud-Fi site styles — anything Tailwind can't cover cleanly.
 * The Equator palette + fonts live in the inline Tailwind config in each page's <head>.
 */

html { scroll-behavior: smooth; }
body { background-color: #F1EADD; }
::selection { background: #D9663D; color: #FAF4E8; }

/* Honeypot field on the contact form — off-screen for humans, visible to bots */
.hp-wrap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Hide scrollbars in headless screenshots / when desired */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Rotated pill — used on hero headlines */
.rotated-pill {
  display: inline-block;
  transform: rotate(-3deg);
  padding: 0 1rem;
  border-radius: 9999px;
  background-color: #D9663D;
  color: #FAF4E8;
  font-family: "Instrument Serif", serif;
  font-style: italic;
}

/* Trust-strip marquee */
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.marquee-track {
  display: flex;
  width: max-content;
  gap: 4rem;
  align-items: center;
  animation: marquee 42s linear infinite;
}

/* FAQ accordion — content collapses by default, expands via JS toggling .open */
.faq-item .faq-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 350ms ease, padding 350ms ease;
  padding-top: 0;
  padding-bottom: 0;
}
.faq-item.open .faq-body {
  max-height: 600px;
  padding-top: 0.5rem;
  padding-bottom: 1.25rem;
}
.faq-item .faq-toggle-icon {
  transition: transform 250ms ease;
}
.faq-item.open .faq-toggle-icon {
  transform: rotate(45deg);
}

/* Quote builder — step visibility controlled by data-active-step on the form */
.quote-step { display: none; }
.quote-form[data-active-step="1"] .quote-step[data-step="1"],
.quote-form[data-active-step="2"] .quote-step[data-step="2"],
.quote-form[data-active-step="3"] .quote-step[data-step="3"] { display: block; }

/* Stepper indicator */
.quote-form[data-active-step="2"] .step-pip[data-step="1"],
.quote-form[data-active-step="3"] .step-pip[data-step="1"],
.quote-form[data-active-step="3"] .step-pip[data-step="2"] {
  background-color: #D9663D;
}
.quote-form[data-active-step="1"] .step-pip[data-step="1"],
.quote-form[data-active-step="2"] .step-pip[data-step="2"],
.quote-form[data-active-step="3"] .step-pip[data-step="3"] {
  background-color: #18120B;
}

/* Coverage map — hotspot pulse + highlight */
@keyframes hotspot-pulse {
  0%, 100% { transform: scale(1); opacity: 0.7; }
  50%      { transform: scale(1.6); opacity: 0; }
}
.map-hotspot { position: relative; }
.map-hotspot::after {
  content: "";
  position: absolute; inset: -4px;
  border-radius: 9999px;
  background-color: currentColor;
  animation: hotspot-pulse 2.2s ease-out infinite;
  pointer-events: none;
}
.map-hotspot.active {
  outline: 3px solid #D9663D;
  outline-offset: 4px;
}

/* Active nav link — set automatically via JS based on data-active on <nav> */
#main-nav a[data-nav].active {
  color: #D9663D;
  font-weight: 700;
}

/* Highlight active nav with a small underline pip */
#main-nav a[data-nav].active::after {
  content: "";
  display: block;
  margin: 0 auto;
  margin-top: 4px;
  width: 14px;
  height: 2px;
  background-color: #D9663D;
  border-radius: 2px;
}

/* Active sticky nav — looks more solid once scrolled */
#main-nav.scrolled {
  box-shadow: 0 14px 40px -22px rgba(24,18,11,0.32);
  background-color: rgba(250, 244, 232, 0.95);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
  html { scroll-behavior: auto; }
}
