@import url('/assets/f10a75442ac711cf-fonts.css');

:root { color-scheme: dark; }
/* Shared type scale. Important declarations override the archived inline and
   runtime Framer presets consistently, including after client navigation. */
:root {
  --ph-type-hero: clamp(2.125rem, 1.625rem + 2.5vw, 3.5rem);
  --ph-type-title: clamp(1.75rem, 1.375rem + 1.875vw, 2.5rem);
  --ph-type-subheading: clamp(1.125rem, 1rem + .625vw, 1.375rem);
  --ph-type-lead: clamp(1rem, .9375rem + .3125vw, 1.125rem);
  --ph-type-body: 1rem;
}
body :is(h1, h2, h3, h4, h5, h6) {
  height: auto !important;
  max-height: none !important;
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal !important;
  text-wrap: pretty;
}
body h1 {
  font-size: var(--ph-type-hero) !important;
  line-height: 1.12 !important;
  letter-spacing: -.03em !important;
}
body :is(h2, .phd-title, h1.framer-styles-preset-12bf5sf),
body :is(.framer-owr0fk, .framer-q5grfd-container) h1,
body .phs-wrap :is(.sec-title, .ase-title, .ase-h2, .fecha-title, .cta-title),
body [data-framer-name="CTA elements"] :is(h2, h3) {
  font-size: var(--ph-type-title) !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
}
body h3, body .phs-wrap :is(.sub-title, .dial-title, .hititle) {
  font-size: var(--ph-type-subheading) !important;
  line-height: 1.35 !important;
  letter-spacing: -.01em !important;
}
body :is(h4, h5, h6) {
  font-size: var(--ph-type-lead) !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
}
body :is(h1, h2, h3, h4, h5, h6) :is(span, strong, em) {
  font-size: inherit !important;
  line-height: inherit !important;
}
body p:not(:where(nav *, a *, button *, footer *, .phf-wrap *)), body .pcard .pdesc {
  font-size: var(--ph-type-body) !important;
  line-height: 1.65 !important;
  overflow-wrap: anywhere;
}
body :is(.phd-sub, .phead-sub, .ph-contact__intro > p),
body .phs-wrap :is(.hero-sub, .fecha-text, .cta-text),
body [data-framer-name="Paragraph Wrapper"] > div > p {
  font-size: var(--ph-type-lead) !important;
  line-height: 1.65 !important;
}
/* These six card headings were exported as paragraphs, not h3 elements. */
body .framer-1qqv8pu [data-framer-name="txt"] > div:first-child p {
  font-size: var(--ph-type-subheading) !important;
  line-height: 1.35 !important;
  letter-spacing: -.01em !important;
}
/* The mobile CTA uses h3 while desktop uses h2. Both need the same title
   treatment and an explicit white fill instead of the inherited dark token. */
body [data-framer-name="CTA elements"] :is(h2, h3) {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  --framer-text-color: #fff !important;
  font-weight: 500 !important;
}
body [data-framer-name="CTA elements"] :is(h2, h3) br { display: none; }
body [data-framer-name="CTA elements"] [data-framer-component-type="RichTextContainer"] {
  min-width: 0;
  max-width: 100%;
  height: auto !important;
}
body [data-framer-name="CTA elements"] a {
  width: fit-content !important;
  max-width: 100%;
  height: auto !important;
  min-height: 48px;
}
body [data-framer-name="CTA elements"] .framer-1su0xa4-container {
  width: 100% !important;
  display: flex;
  justify-content: center;
}
body [data-framer-name="CTA elements"] a [data-framer-component-type="RichTextContainer"] {
  flex: 1 1 auto !important;
  width: auto !important;
}
body [data-framer-name="CTA elements"] a p {
  font-size: var(--ph-type-body) !important;
  line-height: 1.4 !important;
  white-space: normal !important;
  text-align: center !important;
}
/* Let strategic-solution cards and testimonial copy grow with their text. */
.framer-1wjm5ul-container [style*="grid-auto-rows"] { grid-auto-rows: auto !important; }
.framer-1wjm5ul-container [style*="grid-auto-rows"] > div {
  height: auto !important;
  min-height: 285px;
}
.framer-1wjm5ul-container [style*="grid-auto-rows"] > div > div {
  flex: 0 0 180px !important;
  height: 180px;
  min-height: 180px !important;
}
.framer-06ktc .framer-1go9nhf { height: auto !important; min-height: 370px; }
.framer-06ktc .framer-1jtf742 { height: auto !important; align-self: stretch; }
/* The legacy legal-page footer animates its links beyond these wrappers. */
.framer-Mn2OT :is(.framer-19cx8oh, .framer-3ijvxn) { overflow: visible !important; }
@media (max-width: 479px) {
  .framer-1wjm5ul-container [style*="grid-auto-rows"] { grid-template-columns: minmax(0, 1fr) !important; }
}
html { scroll-padding-top: 0; }
a, button, input, textarea { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, [role="button"]:focus-visible { outline: 2px solid #87b4ff !important; outline-offset: 5px; }
[id] { scroll-margin-top: 100px; }
.ph-contact, .ph-contact *, .ph-contact *::before, .ph-contact *::after { box-sizing: border-box; }
.ph-contact { width: 100%; flex: none; padding: 104px 28px; color: #f2f5ff; background: radial-gradient(ellipse at 0 40%, #15264d55, transparent 55%), #06070d; font-family: Poppins, system-ui, sans-serif; }
.ph-contact__inner { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 64px; align-items: center; }
.ph-contact__eyebrow { font-size: 11px; font-weight: 500; color: #8aaeff; letter-spacing: .15em; }
.ph-contact h2 { margin: 20px 0 24px; font-size: clamp(30px, 3.3vw, 44px); font-weight: 500; letter-spacing: -.035em; line-height: 1.15; }
.ph-contact h2 span { color: #85a8ff; }
.ph-contact__intro > p { color: #aab2cc; font-size: 15px; line-height: 1.8; margin: 0 0 28px; }
.ph-contact__email { display: inline-flex; gap: 12px; align-items: center; color: #edf2ff; font-size: 16px; text-decoration: none; min-height: 44px; overflow-wrap: anywhere; }
.ph-contact__email > span { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid #85a8ff40; border-radius: 12px; color: #85a8ff; }
.ph-contact__note { display: flex; gap: 12px; align-items: flex-start; color: #8791b0; margin-top: 40px; max-width: 34ch; font-size: 12px; line-height: 1.8; }
.ph-contact__note > span { flex: 0 0 6px; height: 6px; margin-top: 7px; background: #5b8dff; border-radius: 50%; box-shadow: 0 0 14px #3974ff70; }
.ph-contact__form { margin: 0; min-width: 0; padding: 32px; border: 1px solid #8097d12b; border-radius: 24px; background: linear-gradient(145deg, #121a30, #0b0e1a); box-shadow: 0 24px 64px #0003; display: flex; flex-direction: column; gap: 22px; }
.ph-contact__form label { display: block; min-width: 0; color: #e4e9f9; font-size: 12px; font-weight: 500; line-height: 1.6; }
.ph-contact__form label > span { color: #8eabf2; }
.ph-contact__form input:not([type="hidden"]), .ph-contact__form textarea { display: block; width: 100%; min-width: 0; margin-top: 9px; padding: 14px 15px; border: 1px solid #899acc33; border-radius: 12px; background: #070b1680; color: #fff; font: 400 14px/1.5 Poppins, system-ui, sans-serif; transition: border-color .2s, box-shadow .2s; }
.ph-contact__form input::placeholder, .ph-contact__form textarea::placeholder { color: #8390b1; opacity: 1; }
.ph-contact__form input:focus, .ph-contact__form textarea:focus { border-color: #719bff; box-shadow: 0 0 0 3px #4275eb25; outline: none; }
.ph-contact__form textarea { resize: vertical; min-height: 112px; max-height: 400px; }
.ph-contact__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ph-contact__submit { display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.ph-contact__submit > span { color: #8d98b5; font-size: 10px; }
.ph-contact__submit button { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 50px; border: 1px solid #8badff55; border-radius: 12px; padding: 14px 22px; background: linear-gradient(110deg, #3769f6, #2650c9); color: #fff; font: 500 13px/1.4 Poppins, system-ui, sans-serif; cursor: pointer; transition: background .2s, box-shadow .2s; }
.ph-contact__submit button:hover { background: #396efb; box-shadow: 0 6px 28px #2860ed30; }
.ph-contact__submit button:disabled { opacity: .65; cursor: wait; }
.ph-contact__status { color: #acccff; font-size: 13px; line-height: 1.65; margin: 0; }
.ph-contact__status:empty { display: none; }
.ph-contact__status[data-state="error"] { color: #ffc0c0; }
.ph-contact__trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.pcard[href] { text-decoration: none; }
.pcard[href] .pchev { transform: rotate(-90deg); }
.pcard[href] .ptoggle { color: #b0c6ff; }
.phs-wrap { overflow: clip; }
.phs-wrap .sec { scroll-margin-top: 104px; }
.framer-jmefmv[href] { text-decoration: none; cursor: pointer; }
button.framer-1pwuivu { appearance: none; border: 0; padding: 0; background: transparent; min-width: 44px; min-height: 44px; cursor: pointer; }
.framer-06ktc .framer-xf9p6l { height: auto !important; }
.framer-06ktc .framer-11hjlot { width: 100% !important; max-width: 588px; flex-wrap: wrap !important; overflow: visible !important; }
.framer-06ktc .framer-1qqv8pu { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; grid-template-rows: auto !important; grid-auto-rows: auto !important; gap: 40px 32px !important; width: 100% !important; align-items: start; }
.framer-1qqv8pu > div, .framer-1qqv8pu > div > div { min-width: 0; }
/* Every item has a fixed-size icon and a text column that fills the remaining
   space. The archived first column used min-content, collapsing percentage-
   width text into one character per line. Normalize all six text columns. */
.framer-06ktc .framer-1qqv8pu > div > [data-framer-name="txt"] { flex: 1 1 0 !important; width: 0 !important; min-width: 0; max-width: none; }
.framer-1qqv8pu [data-framer-component-type="RichTextContainer"] { width: 100% !important; max-width: 100% !important; }
@media (max-width: 1199px) { .framer-06ktc .framer-1qqv8pu { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 599px) {
  .framer-06ktc .framer-11hjlot { flex-direction: column !important; align-items: stretch !important; gap: 14px !important; }
  .framer-11hjlot > div, .framer-11hjlot a { width: 100% !important; }
  .framer-06ktc .framer-1qqv8pu { grid-template-columns: minmax(0, 1fr) !important; }
}
.phf-col a, .phf-social, .phf-top-btn { min-height: 44px; display: inline-flex; align-items: center; }
.phf-col a:not([href]), .phf-social:not([href]) { cursor: default; }
.ph-standalone { margin: 0; background: #06070d; color: #f2f5ff; font-family: Poppins, system-ui, sans-serif; }
.ph-simple-nav, .ph-simple-footer { box-sizing: border-box; max-width: 1176px; margin: 0 auto; padding: 24px 28px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.ph-simple-nav img { width: 132px; height: auto; }
.ph-simple-nav > div, .ph-simple-footer > div { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.ph-simple-nav a, .ph-simple-footer a { color: #dee6ff; text-decoration: none; font-size: 13px; min-height: 44px; display: inline-flex; align-items: center; }
.ph-simple-nav .ph-simple-ase { padding: 0 16px; border-radius: 10px; background: #2b5ad7; }
.ph-simple-footer { border-top: 1px solid #8097d12b; color: #aab2cc; font-size: 12px; }
@media (max-width: 1100px) { .ph-contact__inner { gap: 36px; } .ph-contact__row { grid-template-columns: 1fr; gap: 22px; } }
@media (max-width: 809px) {
  .framer-Mn2OT .framer-1oj2ru5 { flex-direction: column !important; gap: 16px !important; }
  .framer-Mn2OT .framer-5usm9i { flex: none !important; width: 100% !important; justify-content: flex-start !important; }
  .framer-Mn2OT .framer-q86csp, .framer-Mn2OT .framer-qfbui0 { width: 100% !important; white-space: normal !important; }
  .ph-contact { padding: 64px 24px; }
  .ph-contact__inner { grid-template-columns: 1fr; gap: 32px; max-width: 620px; }
  .ph-contact__intro { max-width: 500px; }
  .ph-contact__note { display: none; }
  .ph-contact__form { padding: 24px; }
  .ph-contact__form input:not([type="hidden"]), .ph-contact__form textarea { font-size: 16px; }
  .ph-simple-nav > div { gap: 12px 20px; }
  .ph-simple-nav a, .ph-simple-footer a { min-height: 44px; }
}
@media (max-width: 479px) {
  .ph-contact { padding-inline: 20px; }
  .ph-contact__form { padding: 22px 18px; border-radius: 18px; }
  .ph-contact__submit { align-items: stretch; flex-direction: column; gap: 12px; }
  .ph-contact__submit button { width: 100%; }
  .ph-simple-nav, .ph-simple-footer { padding-inline: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .ph-contact * { transition: none !important; }
}
