/*
 * Atlantic Image Defense - Public refinement layer
 * Version 1.15.4.19.35.451.244
 *
 * Keeps the existing visual identity: colours, gradients, buttons, badges and
 * backgrounds are not redefined here. The layer only corrects:
 *   1. typography (Lora for H1-H2, Lato for text),
 *   2. corners (rectangles at 2px, pills become rectangles, circles stay round),
 *   3. page width and side margins,
 *   4. vertical rhythm (excess empty space),
 *   5. mobile robustness (no sideways overflow, readable headings, touch targets),
 *   6. keyboard focus visibility.
 *
 * All rules live in the "aid-refine" cascade layer. An important declaration
 * inside a layer outranks unlayered important declarations, so the legacy
 * cascade and stylesheets appended later by the soft navigation cannot undo
 * these corrections. Browsers without layer support (pre-2022) ignore the
 * layer and keep the previous presentation.
 */

:root {
  --aid-font-display: "Lora", Georgia, "Times New Roman", serif;
  --aid-font-text: "Lato", "Helvetica Neue", Arial, sans-serif;
  --aid-radius: 2px;
  --aid-gutter: clamp(16px, 4vw, 40px);
  --aid-content: 1240px;
  --aid-section-y: clamp(28px, 3vw, 44px);
}

@layer aid-refine {

/* 1. Typography ------------------------------------------------------------ */
body.aid-context-public {
  font-family: var(--aid-font-text) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
/* Text face everywhere except icon fonts, code, SVG and heading content. */
body.aid-context-public :where(*:not(i):not(svg):not(svg *):not(code):not(pre):not(kbd):not(samp):not([class^="ti-"]):not([class*=" ti-"]):not([class^="fa"]):not([class*=" fa-"]):not(h1 *):not(h2 *)) {
  font-family: var(--aid-font-text) !important;
}
body.aid-context-public :where(h1, h2) {
  font-family: var(--aid-font-display) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  font-feature-settings: "kern", "liga", "lnum";
  text-wrap: balance;
}
body.aid-context-public :where(h1, h2) :where(*:not(i):not(svg):not(svg *):not([class^="ti-"]):not([class*=" ti-"]):not([class^="fa"]):not([class*=" fa-"])) {
  font-family: inherit !important;
}
/* Interface dialogs (cookie banner and panel) keep the text face for their titles. */
body.aid-context-public :where(.aid-cookie-banner, .aid-cookie-panel) :where(h2, h3) {
  font-family: var(--aid-font-text) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}
/* Outlined counters keep their outline style in the display face. */
body.aid-context-public .counter-num {
  font-weight: 500 !important;
}
body.aid-context-public :where(p, li, dd, td) {
  text-wrap: pretty;
}
body.aid-context-public :where(p, li, td, dd, a, span, strong, address) {
  overflow-wrap: anywhere;
}
body.aid-context-public :where(h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

/* Keyboard focus: visible outline in the site's existing cyan. */
body.aid-context-public :where(a, button, [role="button"], summary, input, select, textarea):focus-visible {
  outline: 2px solid #18fef5 !important;
  outline-offset: 3px !important;
}

body.aid-context-public :where(img, video, iframe, canvas) {
  max-width: 100%;
}

/* 2. Corners --------------------------------------------------------------- */
/* Rectangles and former "pill" shapes: square corners, 2px softening at most. */
body.aid-context-public :where(*),
body.aid-context-public :where(*)::before,
body.aid-context-public :where(*)::after {
  border-radius: var(--aid-radius) !important;
}
/* Elements designed as circles stay perfectly round. */
body.aid-context-public :where(input[type="radio"], .topcontrol, [class*="avatar"], [class*="-dot"], [class*="__dot"], [class*="orbit"], [class*="-ring"], [class*="__ring"], [style*="border-radius:50%"], [style*="border-radius: 50%"]) {
  border-radius: 50% !important;
}
/* Generated from rendered captures of every public page (1440, 1024 and 390 px). */
body.aid-context-public :is(
  .aid-dmca53-context span,
  .aid-fw-bullets span,
  .aid-fw-dot,
  .aid-fw-principles i,
  .aid-institutional-depth__references span,
  .aid-private-code-notice__icon,
  .aid-trust29-eyebrow span,
  .aid-trust29-orbit.aid-trust29-orbit--one,
  .aid-trust29-orbit.aid-trust29-orbit--two,
  .avm-classification-list i,
  .avm-control-topbar i,
  .avm-hero-orbit.avm-hero-orbit--one,
  .avm-hero-orbit.avm-hero-orbit--two,
  .avm-home-chip-icon,
  .avm-home-hub,
  .avm-home-hub-ring.avm-home-hub-ring--inner,
  .avm-home-hub-ring.avm-home-hub-ring--outer,
  .avm-signal b,
  .avm-workflow-grid span,
  .avm-world-grid,
  .avm-world-grid i,
  .high,
  .home_case_transition_glow.home_case_transition_glow_one,
  .home_case_transition_glow.home_case_transition_glow_two,
  .home_faq_list span,
  .medium,
  .normal,
  .port_details_list img,
  .ti-check,
  .ti-eye,
  .ti-pulse,
  .ti-search,
  .ti-shield,
  .ti-target,
  .ti-timer,
  .topcontrol
) {
  border-radius: 50% !important;
}
body.aid-context-public .aid-community-guidelines__card li::before,
body.aid-context-public .aid-contact-email-item a::before,
body.aid-context-public .aid-evidence-sidecar-v4517 li::before,
body.aid-context-public .aid-evidence-sidecar-v4517::after,
body.aid-context-public .aid-footer-contact-links a::before,
body.aid-context-public .aid-footer-trust-link::before,
body.aid-context-public .aid-fw-hero::after,
body.aid-context-public .aid-fw-toc a::before,
body.aid-context-public .aid-institutional-depth__principles li::before,
body.aid-context-public .aid-institutional-depth__principles.aid-institutional-depth__principles--enriched::after,
body.aid-context-public .aid-institutional-depth__readiness li::before,
body.aid-context-public .aid-trust29-card.aid-trust29-card--dmca::after,
body.aid-context-public .aid-trust29-card::after,
body.aid-context-public .avm-asset-avatar::before,
body.aid-context-public .avm-scenario-grid article::after,
body.aid-context-public .avm-signal b::after,
body.aid-context-public .avm-signal b::before,
body.aid-context-public .aid-cookie-eyebrow::before,
body.aid-context-public .aid-community-live__eyebrow::before,
body.aid-context-public .aid-community-page-hero__eyebrow::before,
body.aid-context-public .aid-home-authority__eyebrow::before,
body.aid-context-public .aid-home-authority__development-label::before {
  border-radius: 50% !important;
}

/* 3. Page width and side margins ------------------------------------------ */
html, body {
  overflow-x: clip !important;
}
body.aid-context-public .container {
  width: 100% !important;
  max-width: calc(var(--aid-content) + 2 * var(--aid-gutter)) !important;
  padding-left: var(--aid-gutter) !important;
  padding-right: var(--aid-gutter) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* 4. Vertical rhythm ------------------------------------------------------- */
body.aid-context-public :where(.section-padding, section.aid-institutional-depth, .aid-home-authority, .avm-home-teaser, .aid-community-live, .aid-trust29-hero) {
  padding-top: var(--aid-section-y) !important;
  padding-bottom: var(--aid-section-y) !important;
}
body.aid-context-public .section-top {
  padding-top: clamp(36px, 3.6vw, 52px) !important;
  padding-bottom: clamp(36px, 3.6vw, 52px) !important;
}
body.aid-context-public .section-title {
  margin-bottom: clamp(24px, 2.6vw, 40px) !important;
}
body.aid-context-public .footer.section-padding {
  padding-top: clamp(40px, 4vw, 56px) !important;
  padding-bottom: clamp(28px, 3vw, 40px) !important;
}
/* Button groups: regular spacing and clean wrapping (button styles unchanged). */
body.aid-context-public :where(.home_btns, .home_process_actions, .home_final_action_buttons, .aid-home-subscription-cta__actions,
  .aid-home-authority__actions, .aid-fw-hero__actions, .aid-fw-cta__actions, .aid-trust29-actions,
  .aid-community-page-hero__actions, .aid-plan-card__actions, .aid-plan-registration-note__actions,
  .avm-hero-actions, .avm-home-teaser-actions, .aid-home-ccb-pathway__actions) {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px !important;
}
body.aid-context-public :where(.home_btns, .home_process_actions, .home_final_action_buttons, .aid-home-subscription-cta__actions,
  .aid-home-authority__actions, .aid-fw-hero__actions, .aid-fw-cta__actions, .aid-trust29-actions,
  .aid-community-page-hero__actions, .aid-plan-card__actions, .aid-plan-registration-note__actions,
  .avm-hero-actions, .avm-home-teaser-actions, .aid-home-ccb-pathway__actions) > :where(a, button) {
  margin: 0 !important;
}
body.aid-context-public .footer .aid-footer-bottom-row-v451100825 {
  margin-top: clamp(24px, 2.4vw, 36px) !important;
  padding-top: 24px !important;
}
/* Counters and contact form: remove oversized inner padding and field spacing. */
body.aid-context-public :where(.contact .form-control, .contact_area .form-control) {
  height: auto !important;
  min-height: 52px !important;
  margin-bottom: 16px !important;
}
body.aid-context-public :where(.contact textarea.form-control, .contact_area textarea.form-control) {
  min-height: 150px !important;
}
@media (max-width: 767.98px) {
  body.aid-context-public :where(.single-project, .single-project2) {
    padding-top: 28px !important;
    padding-bottom: 28px !important;
  }
  body.aid-context-public :where(.home_case_metric_col, .counter_feature [class*="col-"]) {
    margin-bottom: 12px !important;
  }
}
/* @@RHYTHM@@ */

/* 5. Mobile robustness ----------------------------------------------------- */
@media (max-width: 575.98px) {
  body.aid-context-public :where(.section-title h2, .aid-institutional-depth__hero h2, [class*="__intro"] h2, [class*="__intro-copy"] h2,
    [class*="heading"] > h2, [class*="__copy"] > h2, [class*="-cta__copy"] h2, .ab_content > h2, .home_corporate_heading h2) {
    font-size: clamp(25px, 5.6vw + 4px, 30px) !important;
    line-height: 1.18 !important;
  }
  body.aid-context-public :where([class*="-hero"] h1, [class*="__hero"] h1, .aid-legal42-hero h1, .aid-fw-hero h1) {
    font-size: clamp(30px, 7vw + 4px, 36px) !important;
    line-height: 1.12 !important;
  }
}
@media (max-width: 991.98px) {
  body.aid-context-public :where(.single_footer ul li a, .single_footer .aid-footer-contact-links a, .single_footer .aid-cookie-manage-link,
    .aid-institutional-depth__toc li a, .footer_menu li a, .section-top-title ul li a) {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 40px !important;
  }
  body.aid-context-public :where(.single_footer ul li, .aid-institutional-depth__toc li) {
    margin-bottom: 0 !important;
  }
}

/* 6. Motion ---------------------------------------------------------------- */
@keyframes aid-refine-reveal {
  from { opacity: 0; transform: translate3d(0, 14px, 0); }
  to { opacity: 1; transform: none; }
}
/* Scroll reveals rise into place; sideways slides caused horizontal overflow on phones. */
body.aid-context-public .wow.animated:is(.fadeInRight, .fadeInLeft, .fadeInRightBig, .fadeInLeftBig, .slideInRight, .slideInLeft) {
  animation-name: aid-refine-reveal !important;
}
@media (prefers-reduced-motion: reduce) {
  /* The home hero crossfade is a slow 20-second dissolve with no movement; it is kept on purpose.
     v451.271: the loading bar is kept too. It reports progress (it is not a
     decorative effect) and lasts two seconds at most; freezing it showed a
     full, still bar from the first instant. */
  body.aid-context-public *:not(.aid-home-hero-crossfade-v451100123__layer):not(.loader),
  body.aid-context-public *:not(.loader)::before,
  body.aid-context-public *:not(.loader)::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  body.aid-context-public .wow {
    visibility: visible !important;
  }
}

} /* end @layer aid-refine */
