/* Louaa Site System 1.1.0 — contact & conversion components (CTA A–D, map, social, mobile dock).
   New selectors only; loaded where these components exist. */
.louaa-action .elementor-button { transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease; }
.louaa-action .elementor-button:hover { transform: translateY(-1px); }
.louaa-link--whatsapp .elementor-button-icon svg, .louaa-link--whatsapp .elementor-button-icon i { color: #1f9d55; fill: #1f9d55; }
.louaa-cta2 .louaa-link--appointment .elementor-button { box-shadow: 0 10px 26px rgba(15,82,147,.20); }

/* CTA type C — assessment band */
.louaa-assess-box { position: relative; overflow: hidden; }
.louaa-assess-box::after { content: "" !important; position: absolute !important; top: 0 !important; bottom: 0 !important;
  right: 0 !important; left: auto !important; width: 4px !important; height: auto !important; opacity: 1 !important;
  background: linear-gradient(180deg, #46A8E5, #0F5293) !important; }
.louaa-assess-box .elementor-button { white-space: nowrap; }

/* map */
.louaa-map { position: relative; width: 100%; aspect-ratio: 4 / 3; border-radius: 18px; overflow: hidden;
  background: #F1F7FB; box-shadow: 0 0 0 1px #DCE7EF, 0 24px 48px rgba(0,41,91,.08); }
.louaa-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.louaa-map-box { position: relative; }
.louaa-map-box::before { content: "" !important; position: absolute !important; width: 56% !important; height: auto !important;
  aspect-ratio: 1; left: -7% !important; top: -9% !important; right: auto !important; bottom: auto !important;
  border-radius: 50% !important; border: 1px solid rgba(70,168,229,.45); background: none !important; opacity: 1 !important;
  pointer-events: none; z-index: 2; }
@media (max-width: 1024px) { .louaa-map-box { overflow-x: clip; } .louaa-map-box::before { left: -3% !important; top: -4% !important; } }
@media (max-width: 767px) {
  .louaa-map { aspect-ratio: auto !important; height: clamp(280px, 62vh, 460px); min-height: 280px; }
  .louaa-map iframe { position: absolute; inset: 0; width: 100% !important; height: 100% !important; display: block; }
  .louaa-map-box { overflow: visible !important; padding-bottom: 8px; }
  body.louaa-has-dock .louaa-map-box { margin-bottom: 84px; }   /* the dock never covers the map */
}
@media (max-width: 767px) { .louaa-map { aspect-ratio: 1 / 1; } .louaa-map-box::before { display: none; } }

/* social */
.louaa-social { display: flex; gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; }
.louaa-social a { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  background: #00295B; transition: background-color .25s ease, transform .25s ease; }
.louaa-social a:hover, .louaa-social a:focus-visible { background: #0F5293; transform: translateY(-2px); }
.louaa-social svg { width: 18px; height: 18px; }
.louaa-social--dark .louaa-social a { background: rgba(252,253,252,.08); box-shadow: inset 0 0 0 1px rgba(252,253,252,.18); }
.louaa-social--dark .louaa-social a:hover { background: rgba(145,216,241,.18); }
.louaa-social a:focus-visible { outline: 2px solid #46A8E5; outline-offset: 3px; }

/* mobile action dock — mobile only, above the safe area, never full width */
.louaa-dock { display: none; }
@media (max-width: 767px) {
  .louaa-dock { position: fixed; z-index: 90; left: 50%; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); translate: -50% 0;
    display: flex; gap: 6px; padding: 6px; border-radius: 999px; width: max-content; max-width: calc(100vw - 150px);
    background: rgba(7,28,50,.92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    box-shadow: 0 12px 30px rgba(3,12,24,.28); }
  .louaa-dock a { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 0 14px;
    border-radius: 999px; font: 600 14px/1 inherit; color: #FCFDFC; text-decoration: none; white-space: nowrap; }
  .louaa-dock a svg { width: 18px; height: 18px; flex: 0 0 18px; }
  .louaa-dock__book { background: #FCFDFC; color: #071C32 !important; }
  .louaa-dock__wa svg { fill: #25D366; }
  .louaa-dock a:focus-visible { outline: 2px solid #91D8F1; outline-offset: 2px; }
  body.louaa-has-dock { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  body.louaa-menu-open .louaa-dock { display: none; }   /* never on top of the open mobile menu */
}
@media (prefers-reduced-motion: reduce) { .louaa-action .elementor-button, .louaa-social a { transition: none; } }
