@font-face {
  font-display: block;
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 900;
  src: url("../fonts/fa-solid-900.woff2") format("woff2");
}

.fa-solid { font-family: "Font Awesome 6 Free"; font-style: normal; font-weight: 900; }
.fa-phone::before { content: "\f095"; }

.has-scroll-reveal .scroll-reveal-block {
  opacity: 0;
  transform: translateY(1.25rem);
  transition: opacity 650ms ease, transform 650ms ease;
  transition-delay: var(--reveal-delay, 0ms);
}

.has-scroll-reveal .scroll-reveal-block.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

.utility-bar {
  background: var(--color-primary-dark);
  color: #fff;
  font-size: var(--text-sm);
}

.utility-bar__inner,
.utility-bar__links,
.site-header__inner,
.primary-navigation,
.menu,
.button-group,
.hero-proof {
  align-items: center;
  display: flex;
}

.utility-bar__inner {
  justify-content: space-between;
  min-height: 2.6rem;
}

.utility-bar p { margin: 0; }
.utility-bar__links { gap: var(--space-5); }
.utility-bar a { align-items: center; color: #fff; display: inline-flex; gap: var(--space-2); text-decoration: none; }
.utility-bar .icon--phone { animation: utility-phone-pulse 1.8s ease-in-out infinite; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.3); border-radius: 50%; height: 1.75rem; padding: .38rem; transform-origin: center; width: 1.75rem; }

@keyframes utility-phone-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .65; transform: scale(1.18); }
}

.site-header {
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--color-border);
  position: sticky;
  top: 0;
  z-index: 100;
}

body.admin-bar .site-header { top: 32px; }

.site-header__inner {
  justify-content: space-between;
  min-height: 6.25rem;
}

.custom-logo-link,
.default-logo-link { display: block; }
.custom-logo,
.default-logo { height: auto; max-height: 4.75rem; width: auto; }

.text-logo {
  color: var(--color-primary);
  display: flex;
  flex-direction: column;
  line-height: 1;
  text-decoration: none;
}

.text-logo span { font-size: 1.7rem; font-weight: 800; letter-spacing: -0.04em; }
.text-logo small { font-size: 0.56rem; font-weight: 700; letter-spacing: 0.12em; margin-top: 0.3rem; text-transform: uppercase; }
.text-logo--light { color: #fff; }

.primary-navigation { gap: var(--space-6); }
.menu { gap: clamp(1rem, 2vw, 1.6rem); list-style: none; margin: 0; padding: 0; }
.menu a { color: var(--color-ink); font-size: 0.94rem; font-weight: 600; text-decoration: none; }
.menu a:hover, .menu .current-menu-item > a { color: var(--color-primary); }

.menu-item-has-children { position: relative; }
.sub-menu {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-sm);
  display: none;
  left: -1rem;
  list-style: none;
  min-width: 14rem;
  padding: var(--space-3);
  position: absolute;
  top: calc(100% + 0.75rem);
}
.sub-menu a { display: block; padding: 0.65rem 0.75rem; }
.menu-item-has-children:hover > .sub-menu,
.menu-item-has-children:focus-within > .sub-menu { display: block; }

.nav-toggle { background: transparent; border: 0; color: var(--color-primary); display: none; padding: var(--space-2); }
.nav-toggle .icon { height: 1.8rem; width: 1.8rem; }
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: block; }
.site-header__mobile-actions { align-items: center; display: flex; gap: .25rem; }
.mobile-header-call { align-items: center; background: var(--color-surface); border: 2px solid var(--color-accent); border-radius: 50%; color: var(--color-primary-dark); display: none; height: 2.6rem; justify-content: center; text-decoration: none; width: 2.6rem; }
.mobile-header-call .fa-phone { font-size: 1.05rem; line-height: 1; }

.button {
  align-items: center;
  background: var(--color-primary);
  border: 1px solid var(--color-primary);
  border-radius: var(--radius-pill);
  color: #fff;
  display: inline-flex;
  font-size: 0.95rem;
  font-weight: 700;
  gap: var(--space-2);
  justify-content: center;
  line-height: 1.2;
  min-height: 3.25rem;
  padding: 0.85rem 1.5rem;
  text-align: center;
  text-decoration: none;
  transition: background var(--transition), border var(--transition), transform var(--transition);
}
.button:hover { background: var(--color-primary-dark); border-color: var(--color-primary-dark); transform: translateY(-2px); }
.button--small { min-height: 2.75rem; padding: 0.7rem 1.15rem; }
.button--outline { background: transparent; color: var(--color-primary); }
.button--light { background: #fff; border-color: #fff; color: var(--color-primary-dark); }
.button--full { width: 100%; }
.button-group { flex-wrap: wrap; gap: var(--space-3); }
.text-link { align-items: center; display: inline-flex; font-weight: 700; gap: var(--space-2); text-decoration: none; }
.text-link .icon { transition: transform var(--transition); }
.text-link:hover .icon { transform: translateX(0.25rem); }
.text-link--muted { color: var(--color-muted); font-size: var(--text-sm); }

.price-note { color: var(--color-primary); font-size: 1.2rem; font-weight: 800; margin-bottom: var(--space-5); }
.page-hero__content .button:not(.button--outline) {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-primary-dark);
}
.page-hero__content .button:not(.button--outline):hover {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-primary-dark);
}
.hero-proof { color: var(--color-muted); flex-wrap: wrap; font-size: var(--text-sm); gap: var(--space-5); margin-top: var(--space-5); }
.hero-proof span { align-items: center; display: inline-flex; gap: var(--space-2); }

.trust-strip {
  background: #fff;
  border-bottom: 1px solid var(--color-border);
  overflow: hidden;
  padding-block: var(--space-4);
}

.logo-marquee {
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  overflow: hidden;
  width: 100%;
}

.logo-marquee__track {
  animation: mapshore-logo-marquee 38s linear infinite;
  display: flex;
  width: max-content;
  will-change: transform;
}

.logo-marquee__group {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  gap: clamp(1.5rem, 3vw, 3rem);
  padding-right: clamp(1.5rem, 3vw, 3rem);
}

.logo-marquee__item {
  align-items: center;
  display: flex;
  flex: 0 0 clamp(7.5rem, 10vw, 9.5rem);
  height: 5.25rem;
  justify-content: center;
}

.logo-marquee__item img {
  filter: grayscale(1);
  height: auto;
  max-height: 3.5rem;
  max-width: 100%;
  object-fit: contain;
  width: auto;
}

.logo-marquee:hover .logo-marquee__track {
  animation-play-state: paused;
}

@keyframes mapshore-logo-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.section--offer { padding-bottom: 0; }
.offer-panel {
  align-items: center;
  border-radius: var(--radius-sm);
  display: flex;
  overflow: hidden;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  position: relative;
}
.offer-panel::before {
  background-image: linear-gradient(90deg, rgb(9 29 52 / 42%), rgb(9 29 52 / 12%)), url("../img/hero-mapshore.jpg");
  background-position: center 48%;
  background-size: cover;
  content: "";
  filter: blur(2px);
  inset: -4px;
  position: absolute;
}
.offer-card {
  align-items: center;
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 2.25rem);
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: clamp(1.75rem, 3.5vw, 3rem);
  position: relative;
  width: 100%;
  z-index: 1;
}
.offer-card__icon {
  align-items: center;
  background: var(--color-accent);
  border-radius: 50%;
  color: var(--color-primary-dark);
  display: flex;
  flex: 0 0 auto;
  height: 3.5rem;
  justify-content: center;
  width: 3.5rem;
}
.offer-card__icon .icon { height: 1.65rem; width: 1.65rem; }
.offer-card__content { max-width: 47rem; }
.offer-card .eyebrow { margin-bottom: var(--space-2); }
.offer-card h2 { font-size: clamp(1.65rem, 3vw, 2rem); margin-bottom: var(--space-2); }
.offer-card__price { background-image: linear-gradient(to bottom, transparent 62%, rgb(201 163 72 / 38%) 62%); box-decoration-break: clone; padding-inline: .08em; -webkit-box-decoration-break: clone; }
.offer-card p:last-child { margin-bottom: 0; }
.offer-card .button { white-space: nowrap; }

.setup-card { border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius-lg); color: #fff; min-height: 22rem; overflow: hidden; padding: clamp(2rem, 4vw, 3.5rem); position: relative; }
.setup-card::before {
  background-size: cover;
  content: "";
  inset: 0;
  position: absolute;
  transition: transform 400ms ease;
  z-index: 0;
}
.setup-card:hover::before { transform: scale(1.04); }
.setup-card::after { border: 1px solid currentColor; border-radius: 50%; content: ""; height: 16rem; opacity: .09; position: absolute; right: -5rem; top: -5rem; width: 16rem; z-index: 1; }
.setup-card--freezone::before {
  background-image: linear-gradient(0deg, rgb(7 26 48 / 88%) 0%, rgb(22 59 101 / 92%) 52%, rgb(22 59 101 / 0%) 100%), url("../img/free-zone.jpg");
  background-position: center;
}
.setup-card--mainland::before {
  background-image: linear-gradient(0deg, rgb(7 26 48 / 88%) 0%, rgb(22 59 101 / 92%) 52%, rgb(22 59 101 / 0%) 100%), url("../img/mainland.jpg");
  background-position: center;
}
.setup-card .card-icon,
.setup-card h3,
.setup-card p,
.setup-card .button { position: relative; z-index: 2; }
.setup-card h3,
.setup-card p { color: #fff; }
.setup-card h3 { margin: var(--space-7) 0 var(--space-4); }
.setup-card p { max-width: 30rem; }
.setup-card .button--outline { border-color: rgba(255,255,255,.7); color: #fff; }
.setup-card .button--outline:hover { background: #fff; border-color: #fff; color: var(--color-primary-dark); }

.card-icon { align-items: center; background: var(--color-primary-soft); border-radius: var(--radius-sm); color: var(--color-primary); display: inline-flex; height: 3rem; justify-content: center; width: 3rem; }
.card-icon .icon { height: 1.45rem; width: 1.45rem; }
.setup-card .card-icon { background: rgba(255,255,255,.14); color: #fff; }

.service-card { align-items: center; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-ink); display: flex; flex-direction: column; gap: var(--space-4); justify-content: center; min-height: 10rem; padding: var(--space-5); text-align: center; text-decoration: none; transition: border var(--transition), box-shadow var(--transition), transform var(--transition); }
.service-card:hover { border-color: rgba(22,59,101,.4); box-shadow: var(--shadow-sm); transform: translateY(-3px); }
.service-card__content { align-items: center; display: flex; flex-direction: column; }
.service-card__content h3 { color: var(--color-primary-dark); font-size: 1.25rem; margin-bottom: 0; }
.service-card__content p { font-size: var(--text-sm); line-height: 1.45; margin-top: .6rem; }

.stats-section {
  background-color: var(--color-primary-dark);
  background-image: linear-gradient(rgb(13 41 73 / 84%), rgb(13 41 73 / 84%)), url("../img/stats-background.jpg");
  background-position: center;
  background-size: cover;
  color: #fff;
}
.stats-panel { background: transparent; border-radius: 0; color: inherit; padding-block: 0; }
.stats-section .eyebrow { color: var(--color-accent); }
.stats-panel h2 { color: #fff; }
.stats-grid > div { background: #d6def7; border: 1px solid rgba(255,255,255,.22); border-radius: var(--radius-md); color: var(--color-primary-dark); display: flex; flex-direction: column; padding: var(--space-5); }
.stats-grid h3 { color: var(--color-primary-dark); font-size: clamp(2rem, 3vw, 2.9rem); font-weight: 500; line-height: 1; margin-bottom: 0; }
.stats-grid p { color: inherit; font-size: var(--text-sm); margin-top: var(--space-4); }

.steps-section { display: none; }
.steps-tabs { align-items: stretch; display: grid; gap: var(--space-6); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.steps-tabs__list { display: flex; flex-direction: column; gap: var(--space-3); list-style: none; margin: 0; padding: 0; }
.steps-tab { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; transition: background var(--transition), border-color var(--transition), color var(--transition); }
.steps-tab.is-active { background: var(--color-primary); border-color: var(--color-primary-dark); color: #fff; }
.steps-tab__button { align-items: flex-start; background: transparent; border: 0; color: var(--color-primary-dark); display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-5); text-align: left; width: 100%; }
.steps-tab.is-active .steps-tab__button { color: #fff; }
.step-number { color: var(--color-accent-dark); font-size: .75rem; font-weight: 800; }
.steps-tab.is-active .step-number { color: var(--color-accent); }
.steps-tab__title { font-size: 1.2rem; font-weight: 600; line-height: 1.25; }
.steps-tab__panel { padding: 0 var(--space-5) var(--space-5); }
.steps-tab__panel p { color: inherit; font-size: .95rem; line-height: 1.6; margin: 0; }
.steps-tabs__media { border-radius: var(--radius-lg); min-height: 100%; overflow: hidden; position: relative; }
.steps-tabs__media img { height: 100%; inset: 0; object-fit: cover; position: absolute; transition: opacity 180ms ease, transform 400ms ease; width: 100%; }
.steps-tabs__media img.is-changing { opacity: .2; transform: scale(1.02); }

.reviews-carousel { position: relative; }
.google-rating { align-items: center; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-pill); box-shadow: 0 5px 18px rgba(13,41,73,.06); color: var(--color-ink); display: inline-flex; font-size: .78rem; font-weight: 700; gap: var(--space-3); margin-top: var(--space-4); padding: .65rem 1rem; }
.google-rating img { flex: 0 0 auto; height: 1.25rem; width: 1.25rem; }
.google-rating__stars { color: #fbbc04; letter-spacing: .08em; }
.google-rating strong { color: var(--color-ink); }
.reviews-grid { -webkit-overflow-scrolling: touch; cursor: grab; display: flex; gap: var(--space-5); overscroll-behavior-inline: contain; overflow-x: auto; padding: var(--space-2); scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.reviews-grid.is-dragging { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; user-select: none; }
.reviews-grid::-webkit-scrollbar { display: none; }
.review-card { background: #fff; border: 1px solid rgba(13,41,73,.08); border-radius: var(--radius-md); box-shadow: 0 8px 24px rgba(13,41,73,.08); display: flex; flex: 0 0 calc(33.333% - 1rem); flex-direction: column; margin: 0; min-height: 15rem; padding: clamp(1.75rem, 3vw, 2.5rem); scroll-snap-align: start; }
.stars { color: var(--color-accent); letter-spacing: .12em; }
.review-card blockquote { color: var(--color-ink); font-size: 1rem; line-height: 1.7; margin: var(--space-5) 0; }
.review-card figcaption { align-items: center; border-top: 0; display: flex; gap: var(--space-3); margin-top: auto; padding-top: var(--space-3); }
.review-avatar { align-items: center; background: var(--color-primary-soft); border-radius: 50%; color: var(--color-primary); display: inline-flex; height: 2.5rem; justify-content: center; width: 2.5rem; }
.reviews-carousel__button { align-items: center; background: #fff; border: 1px solid var(--color-border); border-radius: 50%; box-shadow: var(--shadow-sm); color: var(--color-primary-dark); display: flex; height: 3.25rem; justify-content: center; padding: 0; position: absolute; top: calc(50% - 2rem); transition: opacity var(--transition), transform var(--transition); width: 3.25rem; z-index: 2; }
.reviews-carousel__button:hover { transform: scale(1.06); }
.reviews-carousel__button:disabled { cursor: default; opacity: .35; transform: none; }
.reviews-carousel__button--prev { left: -1.15rem; }
.reviews-carousel__button--prev .icon { transform: rotate(180deg); }
.reviews-carousel__button--next { right: -1.15rem; }
.reviews-carousel__dots { align-items: center; display: flex; gap: .5rem; justify-content: center; margin-top: var(--space-5); }
.reviews-carousel__dot { background: #c4c9cf; border: 0; border-radius: 50%; height: .5rem; padding: 0; transition: background var(--transition), transform var(--transition); width: .5rem; }
.reviews-carousel__dot.is-active { background: var(--color-primary-dark); transform: scale(1.2); }

.media-placeholder { align-items: center; aspect-ratio: 3/2; background: linear-gradient(135deg, var(--color-primary-soft), var(--color-surface-alt)); border: 1px dashed #9aaabc; border-radius: var(--radius-lg); color: var(--color-muted); display: flex; justify-content: center; padding: var(--space-6); text-align: center; }
.team-section .media-placeholder { background: none; border: 0; overflow: hidden; padding: 0; }
.team-section .media-placeholder img { height: 100%; object-fit: cover; width: 100%; }

.summary-card, .lead-form { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: clamp(1.5rem, 4vw, 2.5rem); }
.summary-card { position: sticky; top: 2rem; }
.summary-card h2 { font-size: 1.35rem; }
.check-list { display: grid; gap: var(--space-3); list-style: none; margin: var(--space-5) 0; padding: 0; }
.check-list li { align-items: flex-start; display: flex; gap: var(--space-3); }
.check-list .icon { color: var(--color-success); flex: 0 0 auto; margin-top: .25rem; }
.check-list--inline { display: flex; flex-wrap: wrap; }

.lead-section { background: var(--color-surface-alt); }
.lead-panel__intro { padding-left: clamp(0rem, 3vw, 2rem); }
.form-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: var(--space-5); }
.form-grid label { display: flex; flex-direction: column; gap: var(--space-2); }
.form-grid label > span { color: var(--color-primary-dark); font-size: var(--text-sm); font-weight: 700; }
.form-grid__full { grid-column: 1 / -1; }
.lead-form input, .lead-form select, .lead-form textarea { background: #fff; border: 1px solid #bfc9d3; border-radius: var(--radius-sm); min-height: 3.2rem; padding: .75rem .9rem; width: 100%; }
.lead-form input:focus, .lead-form select:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(22,59,101,.12); outline: 0; }
.form-heading h2 { font-size: 1.75rem; }
.form-note, .form-status { color: var(--color-muted); font-size: .75rem; margin: var(--space-3) 0 0; text-align: center; }
.form-status:not(:empty) { color: var(--color-success); font-size: var(--text-sm); font-weight: 700; }

.accordion { border-top: 1px solid var(--color-border); }
.accordion__item { border-bottom: 1px solid var(--color-border); }
.accordion__item h3 { margin: 0; }
.accordion__button { align-items: center; background: transparent; border: 0; color: var(--color-primary-dark); display: flex; font-weight: 700; justify-content: space-between; padding: 1.4rem 0; text-align: left; width: 100%; }
.accordion__mark { color: var(--color-primary); font-size: 1.6rem; font-weight: 400; transition: transform var(--transition); }
.accordion__button[aria-expanded="true"] .accordion__mark { transform: rotate(45deg); }
.accordion__panel { color: var(--color-muted); padding: 0 2.5rem var(--space-5) 0; }

.contact-details { display: grid; gap: var(--space-4); }
.contact-details > a { align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-ink); display: flex; gap: var(--space-4); padding: var(--space-4); text-decoration: none; }
.contact-details > a span:last-child { display: flex; flex-direction: column; }
.contact-details small { color: var(--color-muted); }
.office-card { background: var(--color-surface-alt); border-radius: var(--radius-md); padding: var(--space-5); }
.office-card h3 { font-size: 1.15rem; }
.office-card address { font-style: normal; }

.cta-band {
  background-color: var(--color-primary);
  background-image: linear-gradient(90deg, rgb(9 29 52 / 90%), rgb(9 29 52 / 62%)), url("../img/cta-background.jpg");
  background-position: center;
  background-size: cover;
  color: #fff;
  padding-block: var(--space-9);
}
.cta-band h2 { color: #fff; font-size: clamp(2.4rem, 4.5vw, 3.5rem); margin-bottom: 0; text-transform: capitalize; }
.cta-band .eyebrow { color: var(--color-accent); }
.cta-band__description { color: rgba(255,255,255,.8); font-size: .95rem; margin: var(--space-3) auto 0; max-width: 38rem; }
.cta-band .button:not(.button--outline) { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-primary-dark); }
.cta-band .button:not(.button--outline):hover { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-primary-dark); }
.cta-band .button--outline { border-color: rgba(255,255,255,.72); color: #fff; }
.cta-band .button--outline:hover { background: #fff; border-color: #fff; color: var(--color-primary-dark); }

.site-footer { background: #041322; color: rgba(255,255,255,.72); padding-top: var(--space-8); }
.site-footer__grid { display: grid; gap: clamp(2rem, 4vw, 4.5rem); grid-template-columns: 1.35fr 1fr 1fr 1fr; }
.site-footer__logo { display: inline-block; margin-bottom: var(--space-5); }
.site-footer__logo img { display: block; height: auto; max-width: 9.5rem; }
.site-footer__brand p { line-height: 1.7; max-width: 22rem; }
.footer-heading { color: #fff; font-size: 1.1rem; letter-spacing: 0; margin-bottom: var(--space-5); }
.footer-menu, .legal-menu { display: grid; gap: var(--space-2); list-style: none; margin: 0; padding: 0; }
.footer-menu a, .legal-menu a, .site-footer__contact a { color: rgba(255,255,255,.78); text-decoration: none; }
.footer-menu a:hover, .legal-menu a:hover, .site-footer__contact a:hover { color: #fff; }
.site-footer__contact { display: flex; flex-direction: column; gap: var(--space-3); }
.site-footer__contact address { font-style: normal; line-height: 1.6; }
.site-footer__connect p { line-height: 1.6; margin-bottom: var(--space-5); }
.site-footer__social { display: flex; gap: var(--space-3); }
.site-footer__social a { align-items: center; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius-sm); color: #fff; display: flex; height: 2.75rem; justify-content: center; text-decoration: none; transition: background var(--transition), border-color var(--transition), transform var(--transition); width: 2.75rem; }
.site-footer__social a:hover { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-primary-dark); transform: translateY(-2px); }
.site-footer__social .icon { height: 1.1rem; width: 1.1rem; }
.site-footer__bottom { align-items: center; border-top: 1px solid rgba(255,255,255,.12); display: flex; font-size: .8rem; justify-content: space-between; margin-top: var(--space-7); min-height: 5rem; }
.site-footer__bottom p { margin: 0; }
.legal-menu { display: flex; }

.whatsapp-float { align-items: center; background: #20b866; border-radius: 50%; bottom: 1.5rem; box-shadow: var(--shadow-sm); color: #fff; display: flex; height: 3.5rem; justify-content: center; position: fixed; right: 1.5rem; width: 3.5rem; z-index: 50; }
.whatsapp-float .icon { height: 1.65rem; width: 1.65rem; }

.site-header--landing .site-header__inner { min-height: 5rem; }
.header-contact { align-items: center; display: flex; font-weight: 700; gap: var(--space-2); text-decoration: none; }
.landing-hero .eyebrow { color: var(--color-accent); }
.landing-hero .hero-proof { color: rgba(255,255,255,.8); }
.landing-hero .lead-form { color: var(--color-ink); }
.landing-footer { background: #091d34; color: rgba(255,255,255,.7); font-size: .8rem; padding-block: var(--space-5); text-align: center; }
.landing-footer p { margin: 0; }

@media (max-width: 70rem) {
  .nav-toggle { display: block; }
  .mobile-header-call { display: flex; }
  .primary-navigation { align-items: stretch; background: #fff; border-top: 1px solid var(--color-border); display: none; flex-direction: column; inset: 100% 0 auto; padding: var(--space-6); position: absolute; }
  .primary-navigation.is-open { display: flex; }
  .menu--primary { align-items: stretch; flex-direction: column; gap: 0; width: 100%; }
  .menu--primary > li { border-bottom: 1px solid var(--color-border); }
  .menu--primary a { display: block; padding: var(--space-3) 0; }
  .sub-menu { border: 0; box-shadow: none; display: block; padding: 0 0 var(--space-2) var(--space-4); position: static; }
}

@media (max-width: 64rem) {
  .steps-tabs { grid-template-columns: 1fr; }
  .steps-tabs__media { aspect-ratio: 3 / 2; min-height: 0; }
  .site-footer__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 47.99rem) {
  body.admin-bar .site-header { top: 46px; }
  .utility-bar { display: none; }
  .hero-proof { row-gap: var(--space-2); }
  .site-header__inner { min-height: 4.75rem; }
  .custom-logo,
  .default-logo { max-height: 3.75rem; }
  .page-hero { padding-block: 4rem; }
  .button-group { align-items: stretch; flex-direction: column; }
  .button-group .button { width: 100%; }
  .logo-marquee__track { animation-duration: 30s; }
  .logo-marquee__item { flex-basis: 7rem; height: 4.75rem; }
  .logo-marquee__item img { max-height: 3.25rem; }
  .review-card { flex-basis: calc(100vw - 4.5rem); }
  .reviews-grid { scroll-snap-type: x proximity; }
  .reviews-carousel__button { display: none; }
  .offer-panel { padding: var(--space-4); }
  .offer-card { grid-template-columns: 1fr; }
  .offer-card .button { justify-self: start; white-space: normal; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid__full { grid-column: auto; }
  .site-footer__grid { grid-template-columns: 1fr; }
  .site-footer__bottom { align-items: flex-start; flex-direction: column; gap: var(--space-3); justify-content: center; }
  .whatsapp-float { display: none; }
  .header-contact span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .has-scroll-reveal .scroll-reveal-block {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .page-hero__video { display: none; }
  .utility-bar .icon--phone { animation: none; }
  .setup-card::before { transition: none; }
  .setup-card:hover::before { transform: none; }
  .steps-tabs__media img { transition: none; }

  .logo-marquee {
    mask-image: none;
    overflow-x: auto;
  }

  .logo-marquee__track {
    animation: none;
    transform: none;
  }

  .logo-marquee__group[aria-hidden="true"] {
    display: none;
  }
}
