/* =========================================================
   Haulway Logistics: shared page styles (scoped to .hw-page)
   Mobile-first. Breakpoints: tablet >=768 (<=1024), desktop >=1025, mobile <=767.
   Enqueued by the Haulway Pages plugin (v1.3.0). Animations live near the end; v1.3 polish, header CTA and footer are the last blocks.
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Montserrat:wght@700;800&display=swap');

/* Elementor entrance-animation fix: never leave content hidden */
.elementor-invisible { visibility: visible !important; opacity: 1 !important; animation: none !important; transform: none !important; }

/* Let the HTML widget run edge to edge with no stray gaps */
.elementor-widget-html:has(.hw-page),
.elementor-widget-html:has(.hw-page) > .elementor-widget-container { margin: 0 !important; padding: 0 !important; }
.elementor-element:has(> .elementor-widget-html .hw-page) { padding: 0 !important; }

.hw-page {
  --hw-navy: #0B1F3A; --hw-navy-2: #12305A; --hw-amber: #F5A623; --hw-amber-hover: #D48A0F;
  --hw-light: #F4F7FB; --hw-muted: #6B7280; --hw-text: #1A1A1A; --hw-border: #E5E7EB;
  --hw-radius: 12px; --hw-shadow: 0 6px 20px rgba(11,31,58,.06);
  font-family: Inter, "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 16px; line-height: 1.65; color: var(--hw-text); background: #fff;
  width: 100%; overflow-x: clip; -webkit-font-smoothing: antialiased;
}
.hw-page *, .hw-page *::before, .hw-page *::after { box-sizing: border-box; }
.hw-page img { max-width: 100%; height: auto; display: block; }
.hw-page p { margin: 0 0 16px; max-width: 68ch; }
.hw-page p:last-child { margin-bottom: 0; }
.hw-page ul, .hw-page ol { margin: 0; padding: 0; list-style: none; }
.hw-page a { color: var(--hw-navy); text-decoration-color: var(--hw-amber); text-underline-offset: 3px; }
.hw-page [id] { scroll-margin-top: 96px; }

/* ---------- Typography ---------- */
.hw-page h1, .hw-page h2, .hw-page h3, .hw-page h4 {
  font-family: Montserrat, Inter, system-ui, sans-serif; color: var(--hw-navy);
  margin: 0 0 16px; letter-spacing: -.01em; word-break: normal; overflow-wrap: break-word; text-wrap: balance;
}
.hw-page h1 { font-size: 34px; line-height: 1.1; font-weight: 800; }
.hw-page h2 { font-size: 28px; line-height: 1.2; font-weight: 800; }
.hw-page h3 { font-size: 19px; line-height: 1.3; font-weight: 700; }
.hw-page .hw-eyebrow {
  display: inline-block; font-size: 13px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .12em; color: #8A5A00; margin: 0 0 12px;
}
.hw-page .hw-dark .hw-eyebrow, .hw-page .hw-hero .hw-eyebrow, .hw-page .hw-cta-band .hw-eyebrow { color: var(--hw-amber); }
.hw-page .hw-lead { font-size: 17px; color: var(--hw-muted); }
.hw-page .hw-muted { color: var(--hw-muted); }
.hw-page .hw-center { text-align: center; }
.hw-page .hw-center p, .hw-page .hw-head p { margin-left: auto; margin-right: auto; }
.hw-page p.hw-eyebrow.hw-center { display: block; max-width: none; text-align: center; }
.hw-page .hw-head { text-align: center; max-width: 760px; margin: 0 auto 40px; }
.hw-page .hw-label {
  display: inline-block; font-size: 12px; font-weight: 600; color: var(--hw-muted);
  border: 1px solid var(--hw-border); border-radius: 999px; padding: 4px 12px; background: #fff;
}

/* ---------- Layout ---------- */
.hw-page .hw-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 16px; }
.hw-page .hw-section { padding: 56px 0; }
.hw-page .hw-bg-light { background: var(--hw-light); }
.hw-page .hw-dark { background: var(--hw-navy); color: #E6ECF5; }
.hw-page .hw-dark h2, .hw-page .hw-dark h3 { color: #fff; }
.hw-page .hw-dark p { color: #C9D4E5; }
.hw-page .hw-narrow { max-width: 860px; margin: 0 auto; }

/* ---------- Buttons ---------- */
.hw-page .hw-btns { display: flex; flex-direction: column; gap: 12px; margin-top: 28px; }
.hw-page .hw-center .hw-btns, .hw-page .hw-btns--center { align-items: stretch; }
.hw-page a.hw-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 52px; padding: 0 28px; border-radius: 8px !important; font-weight: 700 !important;
  font-size: 16px; line-height: 1.2; text-decoration: none !important; text-align: center;
  border: 2px solid transparent; transition: background .15s ease, transform .15s ease, color .15s ease, border-color .15s ease;
  width: 100%; cursor: pointer;
}
.hw-page a.hw-btn:hover { transform: translateY(-1px); }
.hw-page a.hw-btn--primary { background: var(--hw-amber); color: var(--hw-navy) !important; border-color: var(--hw-amber); }
.hw-page a.hw-btn--primary:hover { background: var(--hw-amber-hover); border-color: var(--hw-amber-hover); color: var(--hw-navy) !important; }
.hw-page a.hw-btn--light { background: transparent; color: #fff !important; border-color: #fff; }
.hw-page a.hw-btn--light:hover { background: #fff; color: var(--hw-navy) !important; }
.hw-page a.hw-btn--dark { background: transparent; color: var(--hw-navy) !important; border-color: var(--hw-navy); }
.hw-page a.hw-btn--dark:hover { background: var(--hw-navy); color: #fff !important; }
.hw-page a.hw-btn svg { width: 20px; height: 20px; flex: none; }
.hw-page a.hw-link {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-weight: 700;
  color: var(--hw-navy); text-decoration: underline; text-decoration-color: var(--hw-amber); text-decoration-thickness: 2px;
}
.hw-page .hw-dark a.hw-link { color: var(--hw-amber); }

/* ---------- Hero ---------- */
.hw-page .hw-hero {
  position: relative; display: flex; align-items: center; min-height: 78vh; padding: 72px 0;
  background-color: var(--hw-navy); background-size: cover; background-position: center 45%; background-repeat: no-repeat; color: #fff;
}
.hw-page .hw-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(8,22,42,.88) 0%, rgba(11,31,58,.80) 55%, rgba(8,22,42,.90) 100%);
}
.hw-page .hw-hero > .hw-container { position: relative; z-index: 1; }
.hw-page .hw-hero--page { min-height: 46vh; padding: 64px 0; }
.hw-page .hw-hero__content { max-width: 640px; padding: 0 4px; }
.hw-page .hw-hero h1 { color: #fff; }
.hw-page .hw-hero p { color: #E3EAF4; font-size: 17px; }
.hw-page .hw-micro {
  display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 20px; font-size: 14px; color: #D5DEEA; font-weight: 500;
}
.hw-page .hw-micro span { display: inline-flex; align-items: center; gap: 6px; }
.hw-page .hw-micro span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--hw-amber); }

/* ---------- Trust bar ---------- */
.hw-page .hw-trust { background: var(--hw-navy); border-top: 1px solid rgba(255,255,255,.08); padding: 28px 0; }
.hw-page .hw-trust__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px 16px; }
.hw-page .hw-trust__item { display: flex; align-items: flex-start; gap: 12px; color: #fff; }
.hw-page .hw-trust__item svg { flex: none; width: 28px; height: 28px; color: var(--hw-amber); }
.hw-page .hw-trust__item strong { display: block; font-family: Montserrat, Inter, sans-serif; font-size: 15px; line-height: 1.3; color: #fff; }
.hw-page .hw-trust__item span { display: block; font-size: 13px; line-height: 1.45; color: #B9C6D8; }

/* ---------- 50/50 split ---------- */
.hw-page .hw-split { display: grid; grid-template-columns: 1fr; gap: 28px; align-items: center; }
.hw-page .hw-split__media { position: relative; border-radius: var(--hw-radius); overflow: hidden; background: var(--hw-light); aspect-ratio: 4 / 3; min-height: 220px; }
.hw-page .hw-split__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hw-page .hw-split__media--icon {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
  background: linear-gradient(135deg, var(--hw-navy) 0%, var(--hw-navy-2) 100%); color: var(--hw-amber); text-align: center; padding: 24px;
}
.hw-page .hw-split__media--icon svg { width: 72px; height: 72px; }
.hw-page .hw-split__media--icon span { color: #fff; font-family: Montserrat, Inter, sans-serif; font-weight: 700; font-size: 18px; }
.hw-page .hw-split__body > *:first-child { margin-top: 0; }
.hw-page .hw-split__body { min-width: 0; }
.hw-page .hw-split__body p { max-width: none; }

/* ---------- Checklists ---------- */
.hw-page .hw-check { display: grid; gap: 12px; margin-top: 20px; }
.hw-page .hw-check li { position: relative; padding-left: 34px; line-height: 1.55; }
.hw-page .hw-check li::before {
  content: ""; position: absolute; left: 0; top: 1px; width: 24px; height: 24px; border-radius: 50%;
  background: var(--hw-amber) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1F3A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 14px no-repeat;
}
.hw-page .hw-check strong { color: var(--hw-navy); }
.hw-page .hw-dark .hw-check li { color: #DCE4EF; }
.hw-page .hw-dark .hw-check strong { color: #fff; }
.hw-page .hw-check--cols { grid-template-columns: 1fr; }
.hw-page .hw-check--boxed li { background: #fff; border: 1px solid var(--hw-border); border-radius: 10px; padding: 14px 16px 14px 50px; }
.hw-page .hw-check--boxed li::before { left: 14px; top: 15px; }

/* ---------- Grids & cards ---------- */
.hw-page .hw-grid { display: grid; gap: 24px; grid-template-columns: 1fr; }
.hw-page .hw-grid--equip { grid-template-columns: repeat(2, 1fr); gap: 16px; }
.hw-page .hw-card {
  position: relative; background: #fff; border: 1px solid var(--hw-border); border-radius: var(--hw-radius);
  box-shadow: var(--hw-shadow); padding: 28px; transition: transform .2s ease, box-shadow .2s ease;
  display: flex; flex-direction: column; height: 100%; overflow: hidden;
}
.hw-page .hw-card::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--hw-amber);
  transform: scaleX(0); transform-origin: left; transition: transform .2s ease;
}
.hw-page .hw-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(11,31,58,.10); }
.hw-page .hw-card:hover::before { transform: scaleX(1); }
.hw-page .hw-card h3 { margin: 18px 0 8px; }
.hw-page .hw-card p { color: var(--hw-muted); margin: 0; }
.hw-page .hw-card .hw-link { margin-top: auto; padding-top: 12px; }
.hw-page .hw-icon {
  width: 56px; height: 56px; border-radius: 50%; background: var(--hw-navy); color: var(--hw-amber);
  display: inline-flex; align-items: center; justify-content: center; flex: none;
}
.hw-page .hw-icon svg { width: 28px; height: 28px; }

/* Equipment cards (same media slot for every card) */
.hw-page .hw-equip { padding: 0; }
.hw-page .hw-equip__media {
  position: relative; aspect-ratio: 3 / 2; background: linear-gradient(135deg, var(--hw-navy) 0%, var(--hw-navy-2) 100%);
  display: flex; align-items: center; justify-content: center; color: var(--hw-amber);
}
.hw-page .hw-equip__media svg { width: 44px; height: 44px; position: relative; z-index: 1; }
.hw-page .hw-equip__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hw-page .hw-equip__media--photo::after { content: ""; position: absolute; inset: 0; background: rgba(11,31,58,.25); }
.hw-page .hw-equip__body { padding: 14px 14px 18px; flex: 1; }
.hw-page .hw-equip__body h3 { margin: 0 0 4px; font-size: 16px; }
.hw-page .hw-equip__body p { font-size: 14px; line-height: 1.5; }

/* ---------- Steps (horizontal on desktop) ---------- */
.hw-page .hw-steps { display: grid; grid-template-columns: 1fr; gap: 28px; counter-reset: hwstep; position: relative; }
.hw-page .hw-step { position: relative; padding-left: 72px; }
.hw-page .hw-step__num {
  position: absolute; left: 0; top: 0; width: 52px; height: 52px; border-radius: 50%;
  background: var(--hw-amber); color: var(--hw-navy); font-family: Montserrat, Inter, sans-serif; font-weight: 800; font-size: 20px;
  display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 6px #fff; z-index: 1;
}
.hw-page .hw-bg-light .hw-step__num { box-shadow: 0 0 0 6px var(--hw-light); }
.hw-page .hw-step h3 { margin: 10px 0 6px; }
.hw-page .hw-step p { color: var(--hw-muted); margin: 0; }

/* ---------- Timeline (vertical) ---------- */
.hw-page .hw-timeline { position: relative; max-width: 860px; margin: 0 auto; display: grid; gap: 20px; }
.hw-page .hw-timeline::before { content: ""; position: absolute; left: 25px; top: 26px; bottom: 26px; width: 2px; background: var(--hw-amber); }
.hw-page .hw-timeline__item { position: relative; padding-left: 76px; }
.hw-page .hw-timeline__item .hw-step__num { position: absolute; left: 0; top: 18px; }
.hw-page .hw-timeline__card { background: #fff; border: 1px solid var(--hw-border); border-radius: var(--hw-radius); box-shadow: var(--hw-shadow); padding: 22px 22px; }
.hw-page .hw-timeline__card h3 { margin: 0 0 6px; }
.hw-page .hw-timeline__card p { color: var(--hw-muted); margin: 0; }

/* ---------- Before / after columns ---------- */
.hw-page .hw-cols2 { display: grid; grid-template-columns: 1fr; gap: 24px; }
.hw-page .hw-panel { background: #fff; border: 1px solid var(--hw-border); border-radius: var(--hw-radius); box-shadow: var(--hw-shadow); padding: 28px; border-top: 4px solid var(--hw-amber); }
.hw-page .hw-panel--navy { background: var(--hw-navy); border-color: var(--hw-navy); border-top-color: var(--hw-amber); }
.hw-page .hw-panel--navy h3 { color: #fff; }
.hw-page .hw-panel--navy .hw-check li { color: #DCE4EF; }
.hw-page .hw-panel--navy .hw-icon { background: var(--hw-amber) !important; color: var(--hw-navy); }
.hw-page .hw-panel h3 { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; }

/* ---------- Testimonials ---------- */
.hw-page .hw-quotes { display: grid; grid-auto-flow: column; grid-auto-columns: 86%; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 4px 16px; -webkit-overflow-scrolling: touch; }
.hw-page .hw-quote { scroll-snap-align: start; margin: 0; }
.hw-page .hw-quote blockquote { margin: 14px 0 20px; padding: 0; border: 0; font-size: 16px; color: var(--hw-text); font-style: normal; }
.hw-page .hw-quote figcaption { margin-top: auto; font-size: 14px; color: var(--hw-muted); display: flex; align-items: center; gap: 12px; }
.hw-page .hw-quote figcaption strong { display: block; color: var(--hw-navy); font-size: 15px; }
.hw-page .hw-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--hw-navy); color: var(--hw-amber); font-weight: 800; display: flex; align-items: center; justify-content: center; font-family: Montserrat, Inter, sans-serif; flex: none; }
.hw-page .hw-stars { display: flex; gap: 2px; color: var(--hw-amber); }
.hw-page .hw-stars svg { width: 18px; height: 18px; }

/* ---------- FAQ accordion (details/summary, no JS) ---------- */
.hw-page .hw-faq { display: grid; gap: 12px; }
.hw-page .hw-faq details { background: #fff; border: 1px solid var(--hw-border); border-radius: 10px; box-shadow: var(--hw-shadow); overflow: hidden; }
.hw-page .hw-faq details[open] { border-color: var(--hw-amber); }
.hw-page .hw-faq summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 56px; padding: 16px 20px; font-family: Montserrat, Inter, sans-serif; font-weight: 700; font-size: 16px; color: var(--hw-navy);
}
.hw-page .hw-faq summary::-webkit-details-marker { display: none; }
.hw-page .hw-faq summary::after {
  content: "+"; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--hw-light); color: var(--hw-navy);
  display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 600; line-height: 1;
}
.hw-page .hw-faq details[open] summary::after { content: "\2212"; background: var(--hw-amber); }
.hw-page .hw-faq summary:focus-visible { outline: 3px solid var(--hw-amber); outline-offset: -3px; }
.hw-page .hw-faq .hw-faq__a { padding: 0 20px 20px; color: #374151; }
.hw-page .hw-faq-group + .hw-faq-group { margin-top: 48px; }
.hw-page .hw-faq-group h2 { display: flex; align-items: center; gap: 14px; font-size: 24px; }

/* ---------- Anchor chips ---------- */
.hw-page .hw-chips { position: sticky; top: 0; z-index: 20; background: #fff; border-bottom: 1px solid var(--hw-border); }
.hw-page .hw-chips__row { display: flex; gap: 8px; overflow-x: auto; padding: 12px 0; scrollbar-width: none; }
.hw-page .hw-chips__row::-webkit-scrollbar { display: none; }
.hw-page .hw-chips a {
  flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px;
  background: var(--hw-light); color: var(--hw-navy); font-weight: 600; font-size: 14px; text-decoration: none; border: 1px solid var(--hw-border);
}
.hw-page .hw-chips a:hover { background: var(--hw-amber); border-color: var(--hw-amber); }

/* ---------- Mission / quote band ---------- */
.hw-page .hw-mission { font-family: Montserrat, Inter, sans-serif; font-weight: 800; font-size: 24px; line-height: 1.35; color: #fff; max-width: 900px; margin: 0 auto; text-align: center; }
.hw-page .hw-mission::before { content: "\201C"; display: block; color: var(--hw-amber); font-size: 72px; line-height: .6; margin-bottom: 12px; }

/* ---------- Contact cards ---------- */
.hw-page .hw-contact-card a { font-weight: 700; color: var(--hw-navy); word-break: break-word; }
.hw-page .hw-hours { display: grid; gap: 12px; margin-top: 8px; }
.hw-page .hw-hours div { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 12px 0; border-bottom: 1px solid var(--hw-border); }
.hw-page .hw-hours div:last-child { border-bottom: 0; }
.hw-page .hw-hours dt { font-weight: 700; color: var(--hw-navy); margin: 0; }
.hw-page .hw-hours dd { margin: 0; color: var(--hw-muted); }

/* ---------- Pills row (equipment strip) ---------- */
.hw-page .hw-pills { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.hw-page .hw-pills li { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: #fff; border: 1px solid var(--hw-border); font-weight: 600; color: var(--hw-navy); font-size: 14px; }
.hw-page .hw-pills svg { width: 20px; height: 20px; color: #8A5A00; }

/* ---------- CTA band ---------- */
.hw-page .hw-cta-band {
  position: relative; padding: 72px 0; text-align: center; color: #fff;
  background-color: var(--hw-navy); background-size: cover; background-position: center 40%; background-repeat: no-repeat;
}
.hw-page .hw-cta-band::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at center, rgba(8,22,42,.72) 0%, rgba(8,22,42,.84) 75%), linear-gradient(180deg, rgba(11,31,58,.25), rgba(11,31,58,.35)); }
.hw-page .hw-cta-band > .hw-container { position: relative; z-index: 1; }
.hw-page .hw-cta-band h2 { color: #fff; }
.hw-page .hw-cta-band p { color: #DCE4EF; margin-left: auto; margin-right: auto; font-size: 17px; }
.hw-page .hw-cta-band .hw-btns { max-width: 520px; margin-left: auto; margin-right: auto; }

/* ---------- Mobile sticky CTA bar ---------- */
.hw-page .hw-sticky-cta {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 999; height: 60px; display: grid; grid-template-columns: 1fr 1fr;
  background: var(--hw-navy); box-shadow: 0 -4px 16px rgba(0,0,0,.18); padding-bottom: env(safe-area-inset-bottom);
}
.hw-page .hw-sticky-cta a { display: flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; font-size: 16px; text-decoration: none; min-height: 44px; }
.hw-page .hw-sticky-cta a svg { width: 20px; height: 20px; }
.hw-page .hw-sticky-cta__call { color: #fff !important; }
.hw-page .hw-sticky-cta__go { background: var(--hw-amber); color: var(--hw-navy) !important; }
.hw-page.hw-has-sticky { padding-bottom: 60px; }

/* =================== Tablet (>=768) =================== */
@media (min-width: 768px) {
  .hw-page { font-size: 17px; }
  .hw-page .hw-container { padding: 0 24px; }
  .hw-page .hw-section { padding: 72px 0; }
  .hw-page h1 { font-size: 44px; }
  .hw-page h2 { font-size: 34px; }
  .hw-page h3 { font-size: 20px; }
  .hw-page .hw-btns { flex-direction: row; flex-wrap: wrap; }
  .hw-page a.hw-btn { width: auto; }
  .hw-page .hw-center .hw-btns, .hw-page .hw-btns--center { justify-content: center; }
  .hw-page .hw-hero { padding: 96px 0; }
  .hw-page .hw-hero::before { background: linear-gradient(90deg, rgba(8,22,42,.95) 0%, rgba(11,31,58,.86) 42%, rgba(11,31,58,.58) 75%, rgba(11,31,58,.40) 100%), linear-gradient(0deg, rgba(8,22,42,.55) 0%, rgba(8,22,42,0) 40%); }
  .hw-page .hw-hero--page::before { background: linear-gradient(90deg, rgba(8,22,42,.95) 0%, rgba(11,31,58,.86) 50%, rgba(11,31,58,.62) 100%), linear-gradient(0deg, rgba(8,22,42,.5) 0%, rgba(8,22,42,0) 45%); }
  .hw-page .hw-hero p { font-size: 18px; }
  .hw-page .hw-trust__grid { grid-template-columns: repeat(4, 1fr); gap: 24px; }
  .hw-page .hw-split { grid-template-columns: 1fr 1fr; gap: 40px; align-items: stretch; }
  .hw-page .hw-split__media { min-height: 360px; height: 100%; aspect-ratio: auto; }
  .hw-page .hw-split__media img { position: absolute; inset: 0; width: 100%; height: 100%; }
  .hw-page .hw-split__body { align-self: center; }
  .hw-page .hw-split--reverse .hw-split__media { order: 2; }
  .hw-page .hw-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .hw-page .hw-grid--2 { grid-template-columns: repeat(2, 1fr); }
  .hw-page .hw-grid--equip { gap: 20px; }
  .hw-page .hw-equip__body { padding: 18px 20px 22px; }
  .hw-page .hw-equip__body h3 { font-size: 18px; }
  .hw-page .hw-steps { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  .hw-page .hw-cols2 { grid-template-columns: 1fr 1fr; }
  .hw-page .hw-check--cols { grid-template-columns: 1fr 1fr; gap: 14px 24px; }
  .hw-page .hw-quotes { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(2, 1fr); overflow: visible; padding: 0; }
  .hw-page .hw-mission { font-size: 30px; }
  .hw-page .hw-cta-band { padding: 88px 0; }
  .hw-page .hw-faq summary { font-size: 17px; padding: 18px 24px; }
  .hw-page .hw-faq .hw-faq__a { padding: 0 24px 22px; }
  .hw-page .hw-sticky-cta { display: none; }
  .hw-page.hw-has-sticky { padding-bottom: 0; }
}

/* =================== Desktop (>=1025) =================== */
@media (min-width: 1025px) {
  .hw-page .hw-section { padding: 96px 0; }
  .hw-page h1 { font-size: 56px; }
  .hw-page h2 { font-size: 40px; }
  .hw-page h3 { font-size: 22px; }
  .hw-page .hw-hero { min-height: 88vh; }
  .hw-page .hw-hero--page { min-height: 52vh; }
  .hw-page .hw-split { gap: 64px; }
  .hw-page .hw-split__media { min-height: 420px; }
  .hw-page .hw-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .hw-page .hw-grid--4 { grid-template-columns: repeat(4, 1fr); }
  .hw-page .hw-grid--equip { grid-template-columns: repeat(4, 1fr); gap: 24px; }
  .hw-page .hw-steps { grid-template-columns: repeat(4, 1fr); gap: 24px; }
  .hw-page .hw-steps::before { content: ""; position: absolute; top: 26px; left: 12.5%; right: 12.5%; height: 2px; background: var(--hw-amber); }
  .hw-page .hw-step { padding-left: 0; text-align: center; }
  .hw-page .hw-step__num { position: relative; margin: 0 auto; }
  .hw-page .hw-step p { margin: 0 auto; max-width: 30ch; }
  .hw-page .hw-quotes { grid-template-columns: repeat(3, 1fr); }
  .hw-page .hw-mission { font-size: 34px; }
}

/* =================== Mobile only (<=767) =================== */
@media (max-width: 767px) {
  .hw-page .hw-hero__content { text-align: left; }
  .hw-page .hw-steps::before, .hw-page .hw-deco { display: none; }
  .hw-page .hw-card { padding: 22px; }
  .hw-page .hw-equip { padding: 0; }
  .hw-page .hw-faq-group h2 { font-size: 22px; }
  .hw-page .hw-timeline::before { left: 21px; top: 22px; bottom: 22px; }
  .hw-page .hw-timeline__item { padding-left: 60px; }
  .hw-page .hw-timeline__item .hw-step__num { width: 44px; height: 44px; font-size: 18px; top: 16px; }
  .hw-page .hw-timeline__card { padding: 18px; }
  .hw-page .hw-step { padding-left: 64px; }
  .hw-page .hw-step__num { width: 46px; height: 46px; font-size: 18px; }
  .hw-page .hw-cta-band { padding: 56px 0; }
  .hw-page .hw-chips__row { padding: 10px 0; }
}

/* Tablet-only tweak (768-1024) */
@media (min-width: 768px) and (max-width: 1024px) {
  .hw-page .hw-hero { min-height: 70vh; }
  .hw-page .hw-split { gap: 32px; }
  .hw-page .hw-grid--equip { grid-template-columns: repeat(4, 1fr); gap: 14px; }
  .hw-page .hw-equip__body { padding: 14px 14px 18px; }
  .hw-page .hw-equip__body h3 { font-size: 16px; }
}


/* Stacked steps variant (always vertical, e.g. Register "What happens next") */
.hw-page .hw-steps.hw-steps--stack { grid-template-columns: 1fr !important; gap: 24px; }
.hw-page .hw-steps.hw-steps--stack::before { display: none; }
.hw-page .hw-steps--stack .hw-step { padding-left: 72px; text-align: left; }
.hw-page .hw-steps--stack .hw-step__num { position: absolute; margin: 0; }
.hw-page .hw-steps--stack .hw-step p { max-width: none; margin: 0; }

@media (prefers-reduced-motion: reduce) {
  .hw-page *, .hw-page *::before, .hw-page *::after { transition: none !important; animation: none !important; }
}

/* ---------- Contact Form 7 (outside .hw-page) ---------- */
.entry-content > .wpcf7,
.page .wpcf7,
.wpcf7 {
  max-width: 640px;
  margin: 0 auto 64px;
  padding: 0 16px 48px;
  font-family: Inter, "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color: #1A1A1A;
}
.wpcf7 form { display: grid; gap: 1rem; }
.wpcf7 form > p, .wpcf7 form .wpcf7-form > p { margin: 0; }
.wpcf7 form > div:not(.wpcf7-response-output):empty { display: none; }
.wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.wpcf7 label br { display: none; }
.wpcf7 .wpcf7-list-item { margin: 0 16px 6px 0; }
.wpcf7 .wpcf7-acceptance label, .wpcf7 .wpcf7-checkbox label, .wpcf7 .wpcf7-radio label { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; }
.wpcf7 label {
  display: block; font-weight: 600; color: #0B1F3A; font-size: 14px; margin-bottom: 0.35rem;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="file"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%; box-sizing: border-box; border: 1px solid #D1D5DB; border-radius: 10px;
  padding: 12px 14px; font-size: 15px; color: #1A1A1A; background: #fff;
  transition: border-color .15s, box-shadow .15s;
}
.wpcf7 textarea { min-height: 140px; resize: vertical; }
.wpcf7 input[type="checkbox"], .wpcf7 input[type="radio"] { width: 18px; height: 18px; accent-color: #F5A623; }
.wpcf7 select { appearance: auto; min-height: 48px; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="url"], .wpcf7 input[type="number"] { min-height: 48px; }
.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  outline: none; border-color: #F5A623; box-shadow: 0 0 0 3px rgba(245,166,35,.25);
}
.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit {
  background: #F5A623 !important; color: #0B1F3A !important; border: none !important;
  border-radius: 8px !important; padding: 14px 28px !important; font-weight: 700 !important;
  font-size: 16px !important; cursor: pointer; width: auto !important; min-height: 52px;
  transition: background .15s, transform .15s;
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 .wpcf7-submit:hover { background: #D48A0F !important; transform: translateY(-1px); }
@media (max-width: 767px) { .wpcf7 input[type="submit"], .wpcf7 .wpcf7-submit { width: 100% !important; } }
.wpcf7 .wpcf7-not-valid-tip { color: #B91C1C; font-size: 13px; }
.wpcf7 .wpcf7-response-output { margin: 1rem 0 0; border-radius: 8px; }


/* =========================================================
   Scroll animations (v1.2.0)
   Only active after assets/js/scroll-reveal.js adds .hw-anim-ready.
   Without JS (or with reduced motion) every element stays visible.
   ========================================================= */
.hw-page { --hw-ease: cubic-bezier(0.22, 1, 0.36, 1); --hw-dur: .75s; }

/* Hidden start states */
.hw-page.hw-anim-ready .hw-reveal { transition: opacity var(--hw-dur) var(--hw-ease), transform var(--hw-dur) var(--hw-ease), clip-path .9s var(--hw-ease); transition-delay: var(--hw-delay, 0ms); will-change: opacity, transform; }
.hw-page.hw-anim-ready .hw-reveal--up:not(.hw-in)   { opacity: 0; transform: translate3d(0, 28px, 0); }
.hw-page.hw-anim-ready .hw-reveal--fade:not(.hw-in) { opacity: 0; }
.hw-page.hw-anim-ready .hw-reveal--zoom:not(.hw-in) { opacity: 0; transform: scale(.94); }
.hw-page.hw-anim-ready .hw-reveal--pop:not(.hw-in)  { opacity: 0; transform: translate3d(0, 12px, 0) scale(.92); }

/* Split media: wipe in from its own side, photo settles from a slight zoom.
   The panel keeps its size/background the whole time, so nothing collapses or flashes blank. */
.hw-page.hw-anim-ready .hw-reveal--left:not(.hw-in)  { opacity: 0; transform: translate3d(-36px, 0, 0); clip-path: inset(0 100% 0 0 round var(--hw-radius)); }
.hw-page.hw-anim-ready .hw-reveal--right:not(.hw-in) { opacity: 0; transform: translate3d(36px, 0, 0);  clip-path: inset(0 0 0 100% round var(--hw-radius)); }
.hw-page.hw-anim-ready .hw-reveal--left.hw-in, .hw-page.hw-anim-ready .hw-reveal--right.hw-in { clip-path: inset(0 0 0 0 round var(--hw-radius)); }
.hw-page.hw-anim-ready .hw-split__media.hw-reveal img { transition: transform 1.4s var(--hw-ease); transition-delay: var(--hw-delay, 0ms); }
.hw-page.hw-anim-ready .hw-split__media.hw-reveal:not(.hw-in) img { transform: scale(1.12); }
.hw-page.hw-anim-ready .hw-split__media--icon.hw-reveal svg { transition: transform .9s var(--hw-ease) .25s; }
.hw-page.hw-anim-ready .hw-split__media--icon.hw-reveal:not(.hw-in) svg { transform: scale(.6) rotate(-12deg); }
@media (max-width: 767px) {
  /* Stacked on phones: rise up instead of sliding sideways */
  .hw-page.hw-anim-ready .hw-reveal--left:not(.hw-in), .hw-page.hw-anim-ready .hw-reveal--right:not(.hw-in) { transform: translate3d(0, 28px, 0); clip-path: inset(0 0 100% 0 round var(--hw-radius)); }
}

/* Cards keep their own fast hover transition once revealed (JS strips .hw-reveal afterwards) */
.hw-page.hw-anim-ready .hw-card.hw-reveal { transition: opacity var(--hw-dur) var(--hw-ease), transform var(--hw-dur) var(--hw-ease), box-shadow .2s ease; transition-delay: var(--hw-delay, 0ms); }

/* Step numbers pop as their step rises */
.hw-page.hw-anim-ready .hw-step.hw-reveal .hw-step__num,
.hw-page.hw-anim-ready .hw-timeline__item.hw-reveal .hw-step__num { transition: transform .6s cubic-bezier(.34, 1.56, .64, 1); transition-delay: calc(var(--hw-delay, 0ms) + 120ms); }
.hw-page.hw-anim-ready .hw-step.hw-reveal:not(.hw-in) .hw-step__num,
.hw-page.hw-anim-ready .hw-timeline__item.hw-reveal:not(.hw-in) .hw-step__num { transform: scale(.4); }
@media (min-width: 1025px) {
  .hw-page.hw-anim-ready .hw-step.hw-reveal .hw-step__num { margin: 0 auto; }
}

/* Connector lines draw across / down */
.hw-page.hw-anim-ready .hw-reveal--line::before { transition: transform 1.2s var(--hw-ease) .1s; }
.hw-page.hw-anim-ready .hw-steps.hw-reveal--line:not(.hw-in)::before { transform: scaleX(0); transform-origin: left center; }
.hw-page.hw-anim-ready .hw-steps.hw-reveal--line::before { transform-origin: left center; }
.hw-page.hw-anim-ready .hw-timeline.hw-reveal--line::before { transform-origin: top center; transition-duration: 1.6s; }
.hw-page.hw-anim-ready .hw-timeline.hw-reveal--line:not(.hw-in)::before { transform: scaleY(0); }

/* Checklist ticks pop in with their line */
.hw-page.hw-anim-ready .hw-check li.hw-reveal::before { transition: transform .5s cubic-bezier(.34, 1.56, .64, 1); transition-delay: calc(var(--hw-delay, 0ms) + 100ms); }
.hw-page.hw-anim-ready .hw-check li.hw-reveal:not(.hw-in)::before { transform: scale(0); }

/* Hero: cascade on page load (not scroll), background settles from a slow zoom */
@keyframes hw-hero-rise { from { opacity: 0; transform: translate3d(0, 26px, 0); } to { opacity: 1; transform: none; } }
@keyframes hw-hero-settle { from { transform: scale(1.08); } to { transform: scale(1); } }
.hw-page.hw-anim-ready .hw-hero-in { animation: hw-hero-rise .85s var(--hw-ease) var(--hw-delay, 0ms) backwards; }
.hw-page .hw-hero--layered { overflow: hidden; }
.hw-page .hw-hero__bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-repeat: no-repeat; pointer-events: none; animation: hw-hero-settle 2.4s var(--hw-ease) both; }
.hw-page .hw-hero--layered::before { z-index: 1; }
.hw-page .hw-hero--layered > .hw-container { z-index: 2; }

/* Mobile sticky CTA slides up once the hero has landed */
@keyframes hw-bar-up { from { transform: translateY(100%); } to { transform: none; } }
@media (max-width: 767px) { .hw-page.hw-anim-ready .hw-sticky-cta { animation: hw-bar-up .6s var(--hw-ease) .9s backwards; } }

/* Count-up digits keep their width so text never jiggles */
.hw-page .hw-count, .hw-page .hw-trust__item .hw-count { display: inline-block; font: inherit; color: inherit; line-height: inherit; font-variant-numeric: tabular-nums; text-align: right; }

/* Button shine on hover (primary only, subtle) */
.hw-page a.hw-btn--primary { position: relative; overflow: hidden; isolation: isolate; }
.hw-page a.hw-btn--primary::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; z-index: -1; background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform: skewX(-18deg); transition: left .6s var(--hw-ease, ease); pointer-events: none; }
.hw-page a.hw-btn--primary:hover::after { left: 120%; }

/* Icon chips nudge on card hover */
.hw-page .hw-card .hw-icon { transition: transform .3s var(--hw-ease, ease), background .3s ease; }
.hw-page .hw-card:hover .hw-icon { transform: translateY(-2px) rotate(-6deg); }

/* Scroll progress bar (added by JS, lives on <body>) */
.hw-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 100000; background: #F5A623; transform: scaleX(0); transform-origin: 0 50%; pointer-events: none; }
.admin-bar .hw-progress { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .hw-progress { top: 46px; } }

/* Reduced motion: snap everything to its final state */
@media (prefers-reduced-motion: reduce) {
  .hw-page .hw-reveal, .hw-page .hw-reveal::before, .hw-page .hw-reveal img, .hw-page .hw-reveal svg, .hw-page .hw-reveal .hw-step__num { opacity: 1 !important; transform: none !important; clip-path: none !important; transition: none !important; }
  .hw-page .hw-hero-in, .hw-page .hw-hero__bg, .hw-page .hw-sticky-cta { animation: none !important; }
  .hw-progress { display: none; }
}
@media print {
  .hw-page .hw-reveal, .hw-page .hw-hero-in { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .hw-progress { display: none; }
}


/* =========================================================
   v1.3.0 polish
   ========================================================= */

/* ---------- Readable text on photo bands ---------- */
.hw-page .hw-hero h1, .hw-page .hw-cta-band h2 { text-shadow: 0 2px 18px rgba(0,0,0,.35); }
.hw-page .hw-hero p, .hw-page .hw-cta-band p, .hw-page .hw-micro { text-shadow: 0 1px 10px rgba(0,0,0,.35); }
.hw-page .hw-hero p { color: #EEF3FA; }
.hw-page .hw-cta-band p { color: #E6ECF5; }
.hw-page .hw-hero .hw-btns, .hw-page .hw-cta-band .hw-btns { text-shadow: none; }
.hw-page a.hw-btn--light { background: rgba(8,22,42,.35); backdrop-filter: blur(2px); }

/* ---------- Spacing rhythm ---------- */
.hw-page .hw-section--tight { padding: 48px 0; }
.hw-page .hw-head > *:last-child { margin-bottom: 0; }
.hw-page .hw-head .hw-lead { margin-top: 4px; }
.hw-page .hw-btns--spaced { margin-top: 40px; }
.hw-page .hw-grid + .hw-btns, .hw-page .hw-quotes + .hw-btns { margin-top: 40px; }
.hw-page .hw-split__body .hw-check + .hw-btns, .hw-page .hw-split__body .hw-check + p { margin-top: 24px; }
.hw-page .hw-faq-more { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 4px 20px; margin: 28px auto 0; text-align: center; max-width: none; color: var(--hw-muted); font-size: 15px; }
.hw-page .hw-form-head { padding: 56px 0 24px; }
.hw-page .hw-form-head h2 { margin-bottom: 8px; }
.hw-page .hw-form-head p { font-size: 15px; }
.hw-page .hw-chips + .hw-section { padding-top: 64px; }
.hw-page .hw-card--accent { border-color: var(--hw-amber); background: linear-gradient(180deg, #FFF8EC 0%, #fff 60%); }
@media (min-width: 1025px) {
  .hw-page .hw-head { margin-bottom: 48px; }
  .hw-page .hw-section--tight { padding: 64px 0; }
  .hw-page .hw-form-head { padding: 72px 0 24px; }
}

/* ---------- Equipment illustration cards ---------- */
.hw-page .hw-equip__media--illus { background: var(--hw-light); aspect-ratio: 2 / 1; border-bottom: 1px solid var(--hw-border); overflow: hidden; }
.hw-page .hw-equip__media--illus img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .35s var(--hw-ease, ease); }
.hw-page .hw-equip:hover .hw-equip__media--illus img { transform: translateX(6px); }
.hw-page .hw-equip__body { display: flex; flex-direction: column; gap: 2px; }
.hw-page .hw-equip__body h3 { color: var(--hw-navy); }
.hw-page .hw-equip__body p { color: var(--hw-muted); margin: 0; }
@media (max-width: 767px) {
  .hw-page .hw-grid--equip { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .hw-page .hw-equip__body { padding: 12px 12px 14px; }
  .hw-page .hw-equip__body h3 { font-size: 15px; }
  .hw-page .hw-equip__body p { font-size: 13px; }
}

/* ---------- Lottie truck strip (Home: How It Works) ---------- */
.hw-page .hw-lottie { position: relative; width: 100%; max-width: 880px; margin: -8px auto 40px; aspect-ratio: 800 / 260; border-radius: 16px; overflow: hidden; background: var(--hw-light); }
.hw-page .hw-lottie__poster, .hw-page .hw-lottie__stage { position: absolute; inset: 0; width: 100%; height: 100%; }
.hw-page .hw-lottie__poster { object-fit: cover; transition: opacity .4s ease; }
.hw-page .hw-lottie__stage svg { display: block; width: 100% !important; height: 100% !important; }
.hw-page .hw-lottie.is-playing .hw-lottie__poster { opacity: 0; }
@media (max-width: 767px) { .hw-page .hw-lottie { margin: 0 auto 28px; border-radius: 12px; } }

/* ---------- Testimonials: real review cards ---------- */
.hw-page .hw-reviews .hw-quote { position: relative; padding: 32px 28px 26px; border-top: 4px solid var(--hw-amber); }
.hw-page .hw-quote__mark { position: absolute; top: 18px; right: 22px; width: 44px; height: 44px; color: rgba(245,166,35,.22); }
.hw-page .hw-quote__mark svg { width: 100%; height: 100%; }
.hw-page .hw-reviews .hw-quote blockquote { font-size: 16.5px; line-height: 1.7; color: #1F2937; margin: 16px 0 24px; flex: 1; }
.hw-page .hw-reviews .hw-quote figcaption { font-style: normal; padding-top: 18px; border-top: 1px solid var(--hw-border); align-items: center; }
.hw-page .hw-reviews .hw-quote figcaption > span:last-child { display: flex; flex-direction: column; gap: 1px; line-height: 1.35; }
.hw-page .hw-quote__meta { font-size: 13px; color: var(--hw-muted); }
.hw-page .hw-quote__tag { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 12px; font-weight: 600; color: #8A5A00; letter-spacing: .02em; }
.hw-page .hw-quote__tag svg { width: 15px; height: 15px; }
.hw-page .hw-reviews .hw-avatar { width: 48px; height: 48px; font-size: 15px; box-shadow: 0 0 0 3px #fff, 0 0 0 5px rgba(245,166,35,.55); }
.hw-page .hw-reviews .hw-stars svg { width: 19px; height: 19px; }

/* ---------- Timeline / panels inside About ---------- */
.hw-page .hw-hiw .hw-timeline { margin-top: 8px; }
.hw-page #your-rules .hw-head p { color: #C9D4E5; }

/* =========================================================
   Header: "Get Started" CTA button + logo tagline removal (sitewide)
   ========================================================= */
.site-header .site-description,
.site-footer .site-description,
.site-branding .site-description,
.site-description,
.elementor-widget-theme-site-tagline,
.elementor-location-header .elementor-widget-theme-site-tagline,
.elementor-location-footer .elementor-widget-theme-site-tagline { display: none !important; }

li.hw-nav-cta { list-style: none; display: flex; align-items: center; margin-left: 8px !important; }
li.hw-nav-cta > a.hw-nav-cta__btn,
.site-navigation ul.menu li.hw-nav-cta > a.hw-nav-cta__btn,
.elementor-nav-menu li.hw-nav-cta > a.hw-nav-cta__btn,
.site-header .menu li.hw-nav-cta > a.hw-nav-cta__btn {
  display: inline-flex !important; align-items: center; justify-content: center; min-height: 44px;
  padding: 10px 22px !important; border-radius: 8px !important; background: #F5A623 !important; color: #0B1F3A !important;
  font-weight: 700 !important; font-size: 15px; line-height: 1.2; text-decoration: none !important; white-space: nowrap;
  box-shadow: 0 4px 14px rgba(245,166,35,.30); border: 0 !important; transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
}
li.hw-nav-cta > a.hw-nav-cta__btn:hover,
li.hw-nav-cta > a.hw-nav-cta__btn:focus-visible { background: #D48A0F !important; color: #0B1F3A !important; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(212,138,15,.35); }
li.hw-nav-cta > a.hw-nav-cta__btn:focus-visible { outline: 3px solid #0B1F3A; outline-offset: 2px; }
li.hw-nav-cta > a.hw-nav-cta__btn::before, li.hw-nav-cta > a.hw-nav-cta__btn::after { display: none !important; }
/* Mobile dropdowns (Hello + Elementor): full-width button at the end of the list */
.site-navigation-dropdown li.hw-nav-cta,
.elementor-nav-menu--dropdown li.hw-nav-cta { margin: 10px 16px 14px !important; }
.site-navigation-dropdown li.hw-nav-cta > a.hw-nav-cta__btn,
.elementor-nav-menu--dropdown li.hw-nav-cta > a.hw-nav-cta__btn { width: 100%; }

/* =========================================================
   Footer (rendered by the plugin; theme footer hidden)
   ========================================================= */
body.hw-custom-footer #site-footer,
body.hw-custom-footer .site-footer:not(.hw-footer),
body.hw-custom-footer footer.elementor-location-footer,
body.hw-custom-footer .elementor-location-footer { display: none !important; }

/* v1.3.1: footer redesign. Link colours use `footer.hw-footer …` + !important on
   purpose: Customizer "Additional CSS" has `footer a{color:#0B1F3A !important}`,
   which painted every footer link navy-on-navy (the "empty columns" bug). */
.hw-footer { --hf-navy: #0B1F3A; --hf-deep: #081629; --hf-card: #102A4C; --hf-amber: #F5A623; --hf-amber-hover: #D48A0F; --hf-text: #C9D4E5; --hf-muted: #94A3B8; --hf-line: rgba(255,255,255,.09);
  position: relative; background: var(--hf-navy); background-image: radial-gradient(1200px 400px at 85% -10%, rgba(245,166,35,.08), transparent 60%); color: var(--hf-text); font-family: Inter, "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; border-top: 3px solid var(--hf-amber); }
.hw-footer *, .hw-footer *::before, .hw-footer *::after { box-sizing: border-box; }
.hw-footer p { margin: 0; }
.hw-footer ul { list-style: none; margin: 0; padding: 0; }
footer.hw-footer a { color: #E6ECF5 !important; text-decoration: none !important; transition: color .15s ease, transform .15s ease, background .15s ease, border-color .15s ease; }
footer.hw-footer a:hover, footer.hw-footer a:focus-visible { color: var(--hf-amber) !important; }
footer.hw-footer a:focus-visible { outline: 2px solid var(--hf-amber); outline-offset: 3px; border-radius: 4px; }
.hw-footer svg { width: 18px; height: 18px; flex: none; }
.hw-footer__container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* CTA band */
.hw-footer__cta { padding: 36px 0 0; }
.hw-footer__cta-inner { display: flex; flex-direction: column; gap: 20px; }
.hw-footer__cta-inner { background: linear-gradient(135deg, #12305A 0%, #0E2647 100%); border: 1px solid rgba(245,166,35,.28); border-radius: 18px; padding: 26px 22px; box-shadow: 0 18px 40px rgba(0,0,0,.25); }
.hw-footer__cta-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--hf-amber); margin-bottom: 6px !important; }
.hw-footer__cta-title { font-family: Montserrat, Inter, sans-serif; font-weight: 800; font-size: 24px; line-height: 1.2; color: #fff; }
.hw-footer__cta-text { margin-top: 8px !important; color: #B9C6D8; max-width: 52ch; }
.hw-footer__cta-actions { display: flex; flex-wrap: wrap; gap: 12px; }
footer.hw-footer a.hw-footer__btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 22px; border-radius: 10px; font-weight: 700; font-size: 15px; line-height: 1.2; white-space: nowrap; }
footer.hw-footer a.hw-footer__btn--primary { background: var(--hf-amber); color: var(--hf-navy) !important; box-shadow: 0 6px 18px rgba(245,166,35,.30); }
footer.hw-footer a.hw-footer__btn--primary:hover, footer.hw-footer a.hw-footer__btn--primary:focus-visible { background: var(--hf-amber-hover); color: var(--hf-navy) !important; transform: translateY(-1px); }
footer.hw-footer a.hw-footer__btn--ghost { border: 1.5px solid rgba(255,255,255,.35); color: #fff !important; }
footer.hw-footer a.hw-footer__btn--ghost:hover, footer.hw-footer a.hw-footer__btn--ghost:focus-visible { border-color: var(--hf-amber); color: var(--hf-amber) !important; }
.hw-footer__btn svg { width: 18px; height: 18px; }

/* Main grid */
.hw-footer__main { padding: 44px 0 28px; }
.hw-footer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 24px; }
.hw-footer__brand, .hw-footer__col--equipment, .hw-footer__contact { grid-column: 1 / -1; }
.hw-footer__logo { display: inline-block; background: #fff; border-radius: 12px; padding: 8px 12px; margin-bottom: 16px; box-shadow: 0 6px 18px rgba(0,0,0,.2); }
.hw-footer__logo img, .hw-footer__logo-img { display: block; max-height: 64px; width: auto; height: auto; }
.hw-footer__wordmark { display: block; font-family: Montserrat, Inter, sans-serif; font-weight: 800; font-size: 22px; color: var(--hf-navy); letter-spacing: .04em; line-height: 1; }
.hw-footer__wordmark small { display: block; font-size: 10px; letter-spacing: .4em; margin-top: 4px; font-weight: 700; }
.hw-footer__brand p { max-width: 36ch; color: #B9C6D8; margin-top: 0; }
.hw-footer__badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px !important; }
.hw-footer__badges li { font-size: 12px; font-weight: 600; color: #E6ECF5; background: rgba(245,166,35,.08); border: 1px solid rgba(245,166,35,.40); border-radius: 999px; padding: 4px 10px; white-space: nowrap; }
.hw-footer__title { font-family: Montserrat, Inter, sans-serif; font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .14em; color: #fff; margin-bottom: 18px !important; padding-bottom: 10px; position: relative; }
.hw-footer__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 2px; border-radius: 2px; background: var(--hf-amber); }
.hw-footer__links li + li { margin-top: 11px; }
footer.hw-footer .hw-footer__links a { color: var(--hf-text) !important; display: inline-flex; white-space: nowrap; align-items: center; gap: 8px; font-size: 15px; line-height: 1.35; }
.hw-footer__links a::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: rgba(245,166,35,.55); flex: none; transition: background .15s ease, transform .15s ease; }
footer.hw-footer .hw-footer__links a:hover, footer.hw-footer .hw-footer__links a:focus-visible { color: #fff !important; transform: translateX(3px); }
.hw-footer__links a:hover::before, .hw-footer__links a:focus-visible::before { background: var(--hf-amber); transform: scale(1.3); }
.hw-footer__links--2col { display: grid; grid-template-columns: repeat(2, max-content); gap: 11px 22px; }
.hw-footer__links--2col li + li { margin-top: 0; }
footer.hw-footer a.hw-footer__more { display: inline-flex; align-items: center; gap: 6px; margin-top: 18px; font-size: 14px; font-weight: 700; color: var(--hf-amber) !important; }
footer.hw-footer a.hw-footer__more:hover, footer.hw-footer a.hw-footer__more:focus-visible { color: #fff !important; }
.hw-footer__more svg { width: 16px; height: 16px; transition: transform .15s ease; }
.hw-footer__more:hover svg { transform: translateX(3px); }
.hw-footer__contact-list li { display: flex; gap: 12px; align-items: flex-start; }
.hw-footer__contact-list li + li { margin-top: 14px; }
.hw-footer__contact-list svg { color: var(--hf-amber); margin-top: 1px; width: 20px; height: 20px; padding: 0; }
footer.hw-footer .hw-footer__contact-list a { font-weight: 600; overflow-wrap: anywhere; color: #fff !important; }
footer.hw-footer .hw-footer__contact-list a:hover { color: var(--hf-amber) !important; }
.hw-footer__contact-list a[href^="mailto:"] { font-size: 14px; }
.hw-footer__contact-list span { color: var(--hf-text); }

/* Bottom bar */
.hw-footer__bottom { border-top: 1px solid var(--hf-line); background: var(--hf-deep); padding: 18px 0; }
.hw-footer__bottom-inner { display: flex; flex-direction: column; gap: 10px; font-size: 13px; color: var(--hf-muted); }
.hw-footer__legal { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 22px; }
footer.hw-footer .hw-footer__legal a { color: #B9C6D8 !important; display: inline-flex; align-items: center; gap: 6px; }
footer.hw-footer .hw-footer__legal a:hover { color: var(--hf-amber) !important; }
.hw-footer__top svg { width: 14px; height: 14px; }

/* Equipment cards: highlight the card a footer link jumps to */
.hw-page .hw-equip:target { outline: 3px solid #F5A623; outline-offset: 4px; box-shadow: 0 12px 32px rgba(245,166,35,.25); }

@media (min-width: 640px) {
  .hw-footer__cta-inner { flex-direction: row; align-items: center; justify-content: space-between; padding: 28px 32px; }
  .hw-footer__cta-actions { flex: none; }
}
@media (min-width: 768px) {
  .hw-footer__container { padding: 0 24px; }
  .hw-footer__grid { grid-template-columns: repeat(3, 1fr); gap: 40px 32px; }
  .hw-footer__brand { grid-column: 1 / -1; }
  .hw-footer__col--equipment { grid-column: auto; }
  .hw-footer__contact { grid-column: 1 / -1; }
  .hw-footer__contact-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 32px; }
  .hw-footer__contact-list li + li { margin-top: 0; }
  .hw-footer__bottom-inner { flex-direction: row; justify-content: space-between; align-items: center; }
}
@media (min-width: 1100px) {
  .hw-footer__cta { padding-top: 48px; }
  .hw-footer__cta-title { font-size: 28px; }
  .hw-footer__main { padding: 56px 0 40px; }
  .hw-footer__grid { grid-template-columns: 1.3fr .95fr 1.1fr 1.35fr 1.4fr; gap: 36px; }
  .hw-footer__container { max-width: 1280px; padding: 0 32px; }
  .hw-footer__brand, .hw-footer__contact { grid-column: auto; }
  .hw-footer__contact-list { display: block; }
  .hw-footer__contact-list li + li { margin-top: 14px; }
}
@media (max-width: 767px) {
  body.hw-has-sticky-bar .hw-footer { padding-bottom: 64px; }
  .hw-footer__cta-actions .hw-footer__btn { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .hw-footer a, .hw-footer__links a::before, .hw-footer__more svg { transition: none !important; transform: none !important; }
}

/* Footer: keep text styles independent of theme defaults */
.hw-footer figcaption, .hw-footer address { font-style: normal; }

/* =========================================================
   v1.3.1: Privacy Policy (legal) page
   ========================================================= */
.hw-page .hw-hero--legal { min-height: 0; padding: 72px 0 56px; }
.hw-page .hw-legal-meta { margin-top: 14px; font-size: 14px; color: #DCE4EF; }
.hw-page .hw-legal-meta strong { color: #F5A623; font-weight: 700; }
.hw-page .hw-legal__grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: start; }
.hw-page .hw-legal__toc { background: var(--hw-light, #F4F6FA); border: 1px solid var(--hw-border, #E5E7EB); border-left: 4px solid #F5A623; border-radius: 14px; padding: 20px 22px; }
.hw-page .hw-legal__toc-title { font-family: Montserrat, Inter, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #0B1F3A; margin: 0 0 10px; }
.hw-page .hw-legal__toc ol { margin: 0; padding-left: 20px; display: grid; gap: 6px; font-size: 14px; }
.hw-page .hw-legal__toc a { color: #0B1F3A; text-decoration: none; font-weight: 500; }
.hw-page .hw-legal__toc a:hover, .hw-page .hw-legal__toc a:focus-visible { color: #B36F00; text-decoration: underline; }
.hw-page .hw-legal__body { max-width: 780px; color: #334155; font-size: 16px; line-height: 1.7; }
.hw-page .hw-legal__body h2 { font-size: 1.45rem; color: #0B1F3A; margin: 44px 0 12px; padding-top: 4px; scroll-margin-top: 96px; }
.hw-page .hw-legal__body h2::after { content: ""; display: block; width: 36px; height: 3px; border-radius: 2px; background: #F5A623; margin-top: 10px; }
.hw-page .hw-legal__body h3 { font-size: 1.08rem; color: #0B1F3A; margin: 22px 0 8px; }
.hw-page .hw-legal__body p { margin: 0 0 14px; }
.hw-page .hw-legal__body > ul, .hw-page .hw-legal__body li > ul { margin: 0 0 16px; padding-left: 22px; }
.hw-page .hw-legal__body > ul > li, .hw-page .hw-legal__body li > ul > li { margin-bottom: 8px; }
.hw-page .hw-legal__body li::marker { color: #D48A0F; }
.hw-page .hw-legal__body strong { color: #0B1F3A; }
.hw-page .hw-legal__body a:not(.hw-btn) { color: #0B1F3A; text-decoration: underline; text-decoration-color: #F5A623; text-underline-offset: 3px; text-decoration-thickness: 2px; }
.hw-page .hw-legal__body a:not(.hw-btn):hover { color: #B36F00; }
.hw-page .hw-legal__summary { background: #0B1F3A; color: #DCE4EF; border-radius: 16px; padding: 24px 26px; box-shadow: 0 12px 30px rgba(11,31,58,.15); }
.hw-page .hw-legal__summary-title { font-family: Montserrat, Inter, sans-serif; font-weight: 800; color: #fff; font-size: 1.15rem; margin: 0 0 4px; }
.hw-page .hw-legal__summary .hw-check { margin-top: 12px; }
.hw-page .hw-legal__summary .hw-check li { color: #DCE4EF; }
.hw-page .hw-legal__contact { background: #F4F6FA; border: 1px solid #E5E7EB; border-radius: 14px; padding: 18px 22px; margin: 6px 0 22px; }
.hw-page .hw-legal__contact p { margin: 0 0 6px; }
.hw-page .hw-legal__contact p:last-child { margin: 0; }
.hw-page .hw-legal__back { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px !important; }
.hw-page a.hw-btn--outline { background: transparent; color: #0B1F3A !important; border: 2px solid #0B1F3A; }
.hw-page a.hw-btn--outline:hover { background: #0B1F3A; color: #fff !important; }
@media (min-width: 1025px) {
  .hw-page .hw-legal__grid { grid-template-columns: 260px minmax(0, 1fr); gap: 56px; }
  .hw-page .hw-legal__toc { position: sticky; top: 110px; }
}

/* =========================================================
   v1.3.1: privacy consent checkbox on CF7 forms
   ========================================================= */
.wpcf7 .hw-consent { display: block; margin: 6px 0 18px; padding: 14px 16px; background: #F8FAFC; border: 1px solid #E2E8F0; border-left: 4px solid #F5A623; border-radius: 10px; }
.wpcf7 .hw-consent .wpcf7-form-control-wrap { margin-top: 0; }
.wpcf7 .hw-consent .wpcf7-list-item { display: block; margin: 0; }
.wpcf7 .hw-consent label { display: flex !important; align-items: flex-start !important; gap: 12px !important; font-weight: 500 !important; font-size: 14px; line-height: 1.55; color: #334155; cursor: pointer; }
.wpcf7 .hw-consent input[type="checkbox"] { appearance: none; -webkit-appearance: none; flex: none; width: 20px; height: 20px; margin: 2px 0 0; border: 2px solid #94A3B8; border-radius: 5px; background: #fff; display: inline-grid; place-content: center; cursor: pointer; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.wpcf7 .hw-consent input[type="checkbox"]::before { content: ""; width: 10px; height: 6px; border-left: 2.5px solid #0B1F3A; border-bottom: 2.5px solid #0B1F3A; transform: rotate(-45deg) scale(0); transform-origin: center; margin-top: -2px; transition: transform .12s ease; }
.wpcf7 .hw-consent input[type="checkbox"]:checked { background: #F5A623; border-color: #F5A623; }
.wpcf7 .hw-consent input[type="checkbox"]:checked::before { transform: rotate(-45deg) scale(1); }
.wpcf7 .hw-consent input[type="checkbox"]:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(245,166,35,.35); border-color: #F5A623; }
.wpcf7 .hw-consent a { color: #0B1F3A; font-weight: 700; text-decoration: underline; text-decoration-color: #F5A623; text-underline-offset: 2px; }
.wpcf7 .hw-consent__req { color: #B91C1C; text-decoration: none; border: 0; font-weight: 700; }
.wpcf7 .hw-consent .wpcf7-not-valid-tip { margin-top: 8px; font-size: 13px; }
.wpcf7 .hw-consent:has(.wpcf7-not-valid) { border-color: #FCA5A5; border-left-color: #DC2626; background: #FEF2F2; }
.wpcf7 input.wpcf7-submit:disabled { opacity: .55 !important; cursor: not-allowed !important; box-shadow: none !important; }
