/* Connected Experience v36 - additive responsive, contact and consent layer. */
:root {
  --aa-navy: #071535;
  --aa-navy-2: #0c2154;
  --aa-gold: #d5aa2d;
  --aa-gold-soft: #f2d77a;
  --aa-paper: #f7f8fc;
  --aa-ink: #101a36;
  --aa-safe-bottom: env(safe-area-inset-bottom, 0px);
}

html {
  max-width: 100%;
  overflow-x: clip;
  scroll-behavior: smooth;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  max-width: 100%;
  overflow-x: clip;
}

*, *::before, *::after { box-sizing: border-box; }
img, picture, video, canvas, svg { max-inline-size: 100%; }

.aa-profile-bridge {
  position: relative;
  isolation: isolate;
  width: min(1120px, calc(100% - 32px));
  margin: clamp(36px, 6vw, 80px) auto 112px;
  padding: clamp(22px, 4vw, 42px);
  color: #f8f4e8;
  border: 1px solid rgba(224, 186, 75, .42);
  border-radius: 28px;
  background:
    radial-gradient(circle at 90% 0%, rgba(62, 116, 255, .22), transparent 34%),
    linear-gradient(135deg, rgba(7, 21, 53, .98), rgba(14, 34, 82, .95));
  box-shadow: 0 24px 70px rgba(4, 12, 34, .24), inset 0 1px rgba(255,255,255,.1);
  overflow: hidden;
  contain: layout paint;
}

.aa-profile-bridge::after {
  content: "";
  position: absolute;
  inset: -60% 45% 15% -25%;
  z-index: -1;
  background: linear-gradient(110deg, transparent 20%, rgba(213, 170, 45, .17), transparent 70%);
  transform: rotate(8deg);
  pointer-events: none;
}

.aa-profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  gap: clamp(24px, 4vw, 54px);
  align-items: center;
}

.aa-eyebrow {
  margin: 0 0 8px;
  color: var(--aa-gold-soft);
  font: 700 .75rem/1.4 system-ui, sans-serif;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.aa-profile-bridge h2 {
  margin: 0;
  color: #fff;
  font: 700 clamp(1.65rem, 3vw, 2.55rem)/1.08 Georgia, serif;
}

.aa-profile-bridge p {
  max-width: 68ch;
  margin: 12px 0 0;
  color: rgba(244, 240, 229, .82);
  font: 400 clamp(.95rem, 1.35vw, 1.05rem)/1.72 system-ui, sans-serif;
}

.aa-profile-links,
.aa-profile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.aa-profile-links a,
.aa-profile-actions a {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 16px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 14px;
  color: #fff;
  background: rgba(255,255,255,.08);
  font: 700 .9rem/1.2 system-ui, sans-serif;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

.aa-profile-actions a:first-child {
  color: #10204d;
  border-color: rgba(242, 215, 122, .9);
  background: linear-gradient(135deg, #f3d878, #c99b1e);
}

.aa-profile-facts {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.aa-profile-facts li {
  min-height: 52px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 15px;
  background: rgba(255,255,255,.055);
  color: rgba(255,255,255,.9);
  font: 600 .9rem/1.35 system-ui, sans-serif;
}

.aa-profile-facts span[aria-hidden="true"] { color: var(--aa-gold-soft); font-size: 1.15rem; }

.aa-contact-dock {
  position: fixed;
  z-index: 2147483000;
  right: 18px;
  bottom: 18px;
  display: flex;
  gap: 8px;
  padding: 8px;
  border: 1px solid rgba(213, 170, 45, .35);
  border-radius: 18px;
  background: rgba(7, 21, 53, .9);
  box-shadow: 0 16px 48px rgba(4, 12, 34, .3);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
}

.aa-contact-dock a {
  min-width: 48px;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 13px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 13px;
  color: #fff;
  background: rgba(255,255,255,.08);
  font: 700 .82rem/1 system-ui, sans-serif;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}

.aa-contact-dock a:hover,
.aa-contact-dock a:focus-visible,
.aa-profile-links a:hover,
.aa-profile-links a:focus-visible,
.aa-profile-actions a:hover,
.aa-profile-actions a:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(242, 215, 122, .78);
  outline: none;
}

.aa-contact-dock .aa-whatsapp { background: #06723d; }
.aa-contact-dock .aa-blog { color: #11214c; background: var(--aa-gold); }

.aa-contact-dock svg {
  width: 21px;
  height: 21px;
  flex: 0 0 auto;
}

#aa-swipe-consultation {
  display: none;
}

#aa-info-consent[hidden] { display: none !important; }

#aa-info-consent {
  position: fixed;
  z-index: 2147483640;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(3, 9, 25, .72);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.aa-consent-panel {
  position: relative;
  width: min(760px, 100%);
  max-height: min(82vh, 680px);
  overflow: auto;
  overscroll-behavior: contain;
  padding: clamp(22px, 4vw, 38px);
  border: 1px solid rgba(224, 186, 75, .56);
  border-radius: 24px;
  color: #17213e;
  background: rgba(255,255,255,.98);
  box-shadow: 0 30px 100px rgba(0,0,0,.38), inset 0 1px #fff;
}

.aa-consent-panel h2 {
  margin: 0 52px 12px 0;
  color: #0a183c;
  font: 700 clamp(1.45rem, 3vw, 2rem)/1.15 Georgia, serif;
}

.aa-consent-panel p,
.aa-consent-panel li {
  color: #35405d;
  font: 400 .98rem/1.65 system-ui, sans-serif;
}

.aa-consent-panel ul { margin: 14px 0; padding-inline-start: 22px; }

.aa-consent-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(10, 24, 60, .16);
  border-radius: 50%;
  color: #0a183c;
  background: #eef2fb;
  font: 500 1.5rem/1 system-ui, sans-serif;
  cursor: pointer;
}

.aa-consent-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 20px;
}

.aa-consent-agree {
  min-width: 150px;
  min-height: 50px;
  border: 0;
  border-radius: 14px;
  color: #0c1a45;
  background: linear-gradient(135deg, #f0d36b, #c7991c);
  box-shadow: 0 10px 28px rgba(166, 121, 9, .24);
  font: 800 .98rem/1 system-ui, sans-serif;
  cursor: pointer;
}

.aa-consent-close:focus-visible,
.aa-consent-agree:focus-visible {
  outline: 3px solid #315ee9;
  outline-offset: 3px;
}

.aa-runtime-fallback {
  position: fixed;
  z-index: 2147483500;
  top: 12px;
  left: 50%;
  width: min(620px, calc(100% - 24px));
  transform: translateX(-50%);
  padding: 12px 54px 12px 16px;
  border: 1px solid rgba(242, 215, 122, .6);
  border-radius: 14px;
  color: #fff;
  background: rgba(7, 21, 53, .96);
  box-shadow: 0 16px 48px rgba(0,0,0,.28);
  font: 600 .88rem/1.45 system-ui, sans-serif;
}

.aa-runtime-fallback a { color: var(--aa-gold-soft); }
.aa-runtime-fallback button {
  position: absolute;
  inset: 6px 6px auto auto;
  width: 40px;
  height: 40px;
  border: 0;
  color: #fff;
  background: transparent;
  font-size: 1.25rem;
}

.aa-blog-tab,
nav a.aa-blog-tab {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: inherit;
  white-space: nowrap;
}

.aa-ambient-canvas {
  position: fixed;
  z-index: -1;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: .38;
}

.aa-reveal {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition: opacity .55s ease, transform .55s cubic-bezier(.2,.75,.25,1);
}

.aa-reveal.aa-visible { opacity: 1; transform: none; }

/* Retire duplicated legacy mobile controls in favor of the single v36 dock. */
#mobile-floating-actions { display: none !important; }
#static-bci-consent { display: none !important; }

/* Existing light footer text receives an accessibility-only contrast lift. */
footer [style*="rgb(108, 120, 147)"],
footer [style*="rgb(123, 133, 157)"],
footer [style*="rgb(138, 147, 168)"],
footer [style*="rgb(152, 160, 179)"],
footer [style*="rgb(168, 131, 36)"],
footer [style*="rgb(37, 211, 102)"],
footer .text-gold {
  color: #465473 !important;
}

@media (min-width: 1024px) {
  .aa-main-home .aa-contact-dock { display: none; }
}

@media (max-width: 767px) {
  body::before,
  body::after {
    display: none !important;
    content: none !important;
  }

  body { padding-bottom: calc(84px + var(--aa-safe-bottom)); }

  .aa-profile-bridge {
    width: calc(100% - 24px);
    margin: 28px auto;
    padding: 22px 18px;
    border-radius: 22px;
  }

  .aa-profile-grid { grid-template-columns: 1fr; gap: 22px; }
  .aa-profile-links,
  .aa-profile-actions { display: grid; grid-template-columns: 1fr; }
  .aa-profile-links a,
  .aa-profile-actions a { width: 100%; }

  .aa-contact-dock {
    right: 10px;
    bottom: calc(78px + var(--aa-safe-bottom));
    flex-direction: column;
    gap: 7px;
    padding: 7px;
    border-radius: 18px;
  }

  button[aria-label="Toggle menu"],
  .v35-menu,
  #v35-nav a,
  #mobile-quick-topics a {
    min-width: 48px;
    min-height: 48px;
  }

  .aa-contact-dock a {
    width: 50px;
    height: 50px;
    min-width: 50px;
    min-height: 50px;
    padding: 0;
    border-radius: 15px;
  }

  .aa-contact-dock .aa-dock-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  #aa-swipe-consultation {
    position: fixed;
    z-index: 2147483100;
    left: 10px;
    right: 10px;
    bottom: calc(8px + var(--aa-safe-bottom));
    height: 62px;
    display: block;
    border: 1px solid rgba(242, 215, 122, .55);
    border-radius: 22px;
    color: #fff;
    background: linear-gradient(110deg, #071535 0%, #142d69 45%, #071535 100%);
    box-shadow: 0 18px 48px rgba(3, 10, 28, .4), inset 0 1px rgba(255,255,255,.12);
    overflow: hidden;
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
    -webkit-tap-highlight-color: transparent;
  }

  #aa-swipe-consultation::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, transparent 16%, rgba(255,255,255,.28) 46%, transparent 70%);
    transform: translate3d(-120%,0,0);
    animation: aa-attention-flow 2.4s ease-in-out infinite;
    pointer-events: none;
  }

  .aa-swipe-track {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    padding: 6px 14px 6px 70px;
  }

  .aa-swipe-thumb {
    position: absolute;
    left: 6px;
    top: 6px;
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 17px;
    color: #0a183c;
    background: linear-gradient(135deg, #f2d56d, #c79316);
    box-shadow: 0 8px 24px rgba(0,0,0,.24);
    font: 900 1.2rem/1 system-ui, sans-serif;
    will-change: transform;
    transition: transform .22s cubic-bezier(.2,.75,.25,1);
  }

  #aa-swipe-consultation[data-dragging="true"] .aa-swipe-thumb { transition: none; }
  #aa-swipe-consultation[data-complete="true"] .aa-swipe-thumb { box-shadow: 0 0 0 5px rgba(242,213,109,.2), 0 8px 24px rgba(0,0,0,.24); }

  .aa-swipe-label {
    width: 100%;
    display: grid;
    gap: 2px;
    text-align: center;
    pointer-events: none;
  }

  .aa-swipe-label strong {
    font: 800 clamp(.78rem, 3.5vw, .94rem)/1.15 system-ui, sans-serif;
  }

  .aa-swipe-label small {
    color: rgba(255,255,255,.7);
    font: 600 .68rem/1.15 system-ui, sans-serif;
  }

  #mobile-appointment-bar { display: none !important; }

  .aa-consent-panel {
    max-height: calc(100dvh - 28px);
    padding: 24px 18px 20px;
    border-radius: 22px;
  }

  .aa-consent-actions { justify-content: stretch; }
  .aa-consent-agree { width: 100%; }
  .aa-ambient-canvas { display: none; }
}

@media (max-width: 420px) {
  .aa-consent-panel p,
  .aa-consent-panel li { font-size: .91rem; line-height: 1.55; }
  .aa-profile-bridge h2 { font-size: 1.55rem; }
}

@media (prefers-color-scheme: dark) {
  .aa-consent-panel { color: #f5f7ff; background: rgba(8, 19, 48, .98); }
  .aa-consent-panel h2 { color: #fff; }
  .aa-consent-panel p,
  .aa-consent-panel li { color: rgba(240,244,255,.82); }
  .aa-consent-close { color: #fff; background: #172956; border-color: rgba(255,255,255,.16); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; }
  .aa-reveal { opacity: 1; transform: none; }
}

@media print {
  .aa-contact-dock,
  #aa-swipe-consultation,
  #aa-info-consent,
  .aa-ambient-canvas,
  .aa-runtime-fallback { display: none !important; }
  .aa-profile-bridge { color: #111; background: #fff; box-shadow: none; break-inside: avoid; }
}

@keyframes aa-attention-flow {
  0%, 22% { transform: translate3d(-120%,0,0); }
  72%, 100% { transform: translate3d(130%,0,0); }
}
