.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.86rem 1.2rem;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:600;
  letter-spacing:.01em;
  overflow:hidden;
  isolation:isolate;
  transition:
    transform .82s cubic-bezier(.16,1,.3,1),
    background-color .72s cubic-bezier(.16,1,.3,1),
    filter .82s cubic-bezier(.16,1,.3,1),
    box-shadow .82s cubic-bezier(.16,1,.3,1),
    border-color .72s cubic-bezier(.16,1,.3,1);
}
.btn::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg, rgba(255,255,255,.1), rgba(255,255,255,.02));
  opacity:0;
  pointer-events:none;
  transition:opacity .9s cubic-bezier(.16,1,.3,1);
  z-index:0;
}
.btn > *{
  position:relative;
  z-index:1;
}
.btn:focus-visible{
  outline:none;
  border-color:rgba(190,255,199,.52);
  box-shadow:
    0 0 0 4px rgba(190,255,199,.1),
    0 12px 26px rgba(8,14,35,.14);
}
.btn-primary{
  background:linear-gradient(135deg, color-mix(in srgb, var(--c-accent-cta) 90%, white 10%), #c92c85);
  color:white;
  box-shadow:0 14px 30px rgba(228,63,158,.18);
}
.btn-secondary{background:rgba(85,108,139,.16);border-color:rgba(167,182,201,.28);color:var(--c-text)}
.btn-subtle{
  color:color-mix(in srgb, var(--c-text-soft) 90%, white 10%);
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.025)),
    linear-gradient(135deg, rgba(109,136,196,.18), rgba(61,83,136,.08) 58%, rgba(255,255,255,.01));
  border-color:rgba(188,205,236,.18);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 -12px 28px rgba(11,18,42,.14),
    0 14px 30px rgba(7,12,30,.12);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.btn-subtle::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:inherit;
  background:linear-gradient(115deg, transparent 18%, rgba(255,255,255,.12) 48%, transparent 78%);
  opacity:0;
  transform:translateX(-24%);
  transition:
    opacity .72s cubic-bezier(.16,1,.3,1),
    transform .9s cubic-bezier(.16,1,.3,1);
  pointer-events:none;
  z-index:0;
}
.btn-subtle::after{
  opacity:.42;
  background:
    linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.02) 38%, rgba(255,255,255,.01)),
    radial-gradient(circle at 18% 50%, rgba(154,190,255,.08), rgba(154,190,255,0) 34%);
}
.btn-subtle > *{
  position:relative;
  z-index:1;
}
.btn-subtle:active{
  transform:translateY(0);
  filter:brightness(.99);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    inset 0 -10px 20px rgba(11,18,42,.14),
    0 8px 18px rgba(7,12,30,.12);
}

.card{
  position:relative;
  background:linear-gradient(180deg, rgba(37,53,99,.62), rgba(23,34,74,.4));
  border:1px solid var(--c-border);
  border-radius:var(--radius-xl);
  padding:clamp(1.45rem,3vw,2.05rem);
  box-shadow:var(--shadow-panel);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  overflow:hidden;
}
.card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0) 24%, rgba(255,255,255,.02) 100%);
  pointer-events:none;
}

.visual{
  position:relative;
  border-radius:var(--radius-xl);
  overflow:visible;
  border:none;
  background:none;
  box-shadow:none;
}
.visual::before{
  content:"";
  position:absolute;
  inset:10% 8% 6%;
  border-radius:inherit;
  background:radial-gradient(circle at 50% 50%, rgba(154,190,255,.08), rgba(154,190,255,0) 72%);
  filter:blur(12px);
  pointer-events:none;
  z-index:0;
}
.visual::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg, rgba(255,255,255,.04), transparent 22%, transparent 78%, rgba(255,255,255,.02));
  pointer-events:none;
  z-index:1;
  opacity:.55;
}
.visual img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border-radius:calc(var(--radius-xl) - 10px);
  box-shadow:
    0 28px 70px rgba(7,12,30,.16),
    0 10px 24px rgba(7,12,30,.08);
}

.solution-tabs-shell{
  width:min(100%, 64rem);
  margin-inline:auto;
  border-radius:999px;
  background:rgba(255,255,255,.42);
  border:1px solid rgba(36,51,107,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62);
}

.solution-tabs{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  --solution-tab-indicator-x:0px;
  --solution-tab-indicator-y:0px;
  --solution-tab-indicator-width:0px;
  --solution-tab-indicator-height:0px;
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:.34rem;
  border:none;
  padding:.24rem;
  border-radius:999px;
  background:transparent;
  box-shadow:none;
}
.solution-tab-indicator{
  position:absolute;
  top:0;
  left:0;
  width:var(--solution-tab-indicator-width);
  height:var(--solution-tab-indicator-height);
  border-radius:999px;
  opacity:0;
  pointer-events:none;
  transform:translate3d(var(--solution-tab-indicator-x), var(--solution-tab-indicator-y), 0);
  will-change:transform, width, height, opacity;
  background:color-mix(in srgb, var(--c-accent-cta) 8%, white 92%);
  border:1px solid color-mix(in srgb, var(--c-accent-cta) 10%, rgba(36,51,107,.08));
  box-shadow:
    inset 0 -2px 0 color-mix(in srgb, var(--c-accent-cta) 76%, white 24%);
  z-index:0;
}
.solution-tabs.has-selection .solution-tab-indicator{opacity:1}
.solution-tabs.is-ready .solution-tab-indicator{
  transition:
    transform .58s cubic-bezier(.22,1,.36,1),
    width .58s cubic-bezier(.22,1,.36,1),
    height .58s cubic-bezier(.22,1,.36,1),
    opacity .3s cubic-bezier(.22,1,.36,1),
    filter .58s cubic-bezier(.22,1,.36,1);
}
.solution-tab{
  position:relative;
  z-index:1;
  cursor:pointer;
  border:1px solid transparent;
  background:transparent;
  color:color-mix(in srgb, var(--c-text) 82%, var(--c-text-soft) 18%);
  min-width:0;
  padding:.62rem .92rem;
  border-radius:999px;
  text-align:center;
  font-weight:500;
  line-height:1.2;
  text-wrap:balance;
  transition:
    transform .34s cubic-bezier(.22,1,.36,1),
    border-color .36s cubic-bezier(.22,1,.36,1),
    background-color .42s cubic-bezier(.22,1,.36,1),
    box-shadow .42s cubic-bezier(.22,1,.36,1),
    color .32s cubic-bezier(.22,1,.36,1);
}
.solution-tab:focus-visible{
  outline:none;
  border-color:color-mix(in srgb, var(--c-accent-cta) 18%, rgba(36,51,107,.1));
  box-shadow:
    0 0 0 4px color-mix(in srgb, var(--c-accent-cta) 10%, transparent),
    inset 0 0 0 1px color-mix(in srgb, var(--c-accent-cta) 8%, rgba(36,51,107,.06));
}
.solution-tab[aria-selected="true"]{
  color:var(--c-accent-cta);
  font-weight:600;
  text-shadow:none;
}

.solution-stage .solution-tabs{
  box-shadow:none;
}

@media (hover: hover) and (pointer: fine){
  .btn-primary:hover{
    transform:translateY(-3px) scale(1.015);
    filter:brightness(1.07) saturate(1.04);
    box-shadow:
      0 22px 40px rgba(235,30,153,.32),
      0 8px 18px rgba(199,24,128,.18);
  }

  .btn-primary:hover::after{opacity:1}

  .btn-secondary:hover{
    background:rgba(85,108,139,.28);
    border-color:rgba(167,182,201,.4);
    transform:translateY(-3px) scale(1.012);
    box-shadow:
      0 18px 34px rgba(8,14,35,.16),
      inset 0 1px 0 rgba(255,255,255,.06);
  }

  .btn-secondary:hover::after{opacity:.72}

  .btn-subtle:hover{
    color:var(--c-text);
    background:
      linear-gradient(180deg, rgba(255,255,255,.11), rgba(255,255,255,.03)),
      linear-gradient(135deg, rgba(122,148,214,.24), rgba(68,92,150,.12) 58%, rgba(255,255,255,.02));
    border-color:rgba(205,219,255,.28);
    transform:translateY(-2px);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.1),
      inset 0 -14px 30px rgba(11,18,42,.16),
      0 18px 34px rgba(7,12,30,.16);
  }

  .btn-subtle:hover::before{
    opacity:.82;
    transform:translateX(16%);
  }

  .btn-subtle:hover::after{opacity:.72}

  .solution-tab:hover{
    transform:translateY(-1px);
    border-color:rgba(167,182,201,.12);
    background:rgba(245,248,255,.032);
    box-shadow:
      0 8px 18px rgba(8,14,35,.08),
      inset 0 1px 0 rgba(255,255,255,.04);
  }

  .solution-tab[aria-selected="true"]:hover{
    border-color:transparent;
    background:transparent;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.05);
  }
}

.solution-subtitle{
  margin-top:.2rem;
  color:var(--c-text-soft);
  font-weight:400;
}

.solution-subtitle-part{
  display:block;
  white-space:normal;
}

.solution-subtitle-part + .solution-subtitle-part{
  margin-top:clamp(.5rem, 1vw, .78rem);
}

.field{
  position:relative;
  display:grid;
}
.field label{
  position:absolute;
  top:1rem;
  left:1.05rem;
  z-index:1;
  font-size:.88rem;
  letter-spacing:.01em;
  color:color-mix(in srgb, var(--c-muted) 82%, white 18%);
  transform-origin:left top;
  transition:
    transform .28s ease,
    color .28s ease,
    opacity .28s ease;
  pointer-events:none;
}
.field-optional{
  text-transform:none;
  letter-spacing:.01em;
  font-size:.9em;
  color:color-mix(in srgb, var(--c-muted) 90%, white 10%);
}
.field input,.field textarea{
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015)),
    rgba(14,22,45,.36);
  border:1px solid rgba(214,224,242,.12);
  border-radius:20px;
  padding:1.6rem 1.1rem .78rem;
  color:var(--c-text);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 12px 26px rgba(8,14,35,.06);
  transition:border-color .28s ease, box-shadow .28s ease, background-color .28s ease, transform .28s ease;
}
.field input::placeholder,.field textarea::placeholder{color:transparent}
.field input:focus,.field textarea:focus{
  border-color:rgba(231,239,255,.22);
  background:
    linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.02)),
    rgba(15,24,49,.48);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    0 0 0 4px rgba(200,247,207,.06),
    0 16px 34px rgba(8,14,35,.1);
  transform:translateY(-1px);
}
.field:focus-within label,
.field input:not(:placeholder-shown) + label,
.field textarea:not(:placeholder-shown) + label{
  transform:translateY(-.38rem) scale(.78);
  color:color-mix(in srgb, var(--c-text-soft) 82%, white 18%);
}
.field textarea{min-height:190px;resize:vertical;line-height:1.7;padding-top:1.85rem}
.helper{font-size:.85rem;color:color-mix(in srgb, var(--c-muted) 90%, white 10%);margin:.5rem 0 0;padding-left:.2rem}

.legal-links{display:flex;gap:1rem;flex-wrap:wrap}
.legal-links a{color:var(--c-muted);text-decoration:underline;text-underline-offset:3px}

.status-badge{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.55rem .9rem;
  border-radius:999px;
  border:1px solid rgba(167,182,201,.22);
  background:rgba(255,255,255,.05);
  color:var(--c-text-soft);
  font-size:.9rem;
}

.contact-checklist{
  max-width:18rem;
}

.contact-details{
  display:grid;
  gap:.28rem;
  padding-top:.95rem;
  border-top:1px solid rgba(214,224,242,.1);
}

.contact-details p{margin:0}

.footer-company strong,
.footer-legal .section-kicker{
  color:var(--c-banner-text);
}

.footer-company{
  display:grid;
  position:relative;
  z-index:1;
  gap:.7rem;
  min-height:100%;
  padding:clamp(.45rem,1vw,.7rem) 0;
}

.footer-company-name{
  margin:0;
  font-size:clamp(1.05rem, 1.15vw, 1.18rem);
}

.footer-company-name strong{
  letter-spacing:.01em;
}

.footer-company-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:.55rem 1.15rem;
}

.footer-company-grid p{
  margin:0;
  color:color-mix(in srgb, var(--c-banner-muted) 88%, white 12%);
}

.footer-company-grid a{
  color:var(--c-banner-text);
  text-decoration:underline;
  text-decoration-color:rgba(214,224,242,.34);
  text-decoration-thickness:1px;
  text-underline-offset:.18em;
}

.footer-note{
  max-width:31ch;
  margin:0;
  color:color-mix(in srgb, var(--c-banner-muted) 90%, white 10%);
}

.footer-legal{
  position:relative;
  z-index:1;
  min-height:100%;
  padding:clamp(.45rem,1vw,.7rem) 0;
}

.footer-legal .section-kicker{
  color:color-mix(in srgb, var(--c-accent-positive) 64%, white 36%);
}

/* Corporate identity refresh */
.btn{
  padding:.9rem 1.24rem;
  border-radius:999px;
  letter-spacing:.005em;
}

.btn::after{
  background:linear-gradient(180deg, rgba(255,255,255,.5), rgba(255,255,255,0));
}

.btn:focus-visible{
  border-color:color-mix(in srgb, var(--c-accent-cta) 72%, var(--c-panel-strong) 28%);
  box-shadow:
    0 0 0 4px rgba(235,30,153,.16),
    0 12px 28px rgba(25,36,77,.12);
}

.btn-primary{
  background:
    linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,0) 34%),
    linear-gradient(180deg, color-mix(in srgb, var(--c-accent-cta) 84%, white 16%), color-mix(in srgb, var(--c-accent-cta) 92%, black 8%));
  border-color:rgba(154,12,95,.18);
  color:#fff;
  box-shadow:
    0 18px 38px rgba(235,30,153,.22),
    0 10px 22px rgba(25,36,77,.08),
    inset 0 1px 0 rgba(255,255,255,.24),
    inset 0 -8px 18px rgba(124,7,75,.18);
}

.btn-secondary{
  background:rgba(36,51,107,.05);
  border-color:rgba(36,51,107,.14);
  color:var(--c-text);
}

.btn-subtle{
  color:var(--c-panel-strong);
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(246,248,251,.9)),
    var(--c-surface);
  border-color:rgba(36,51,107,.12);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 14px 30px rgba(25,36,77,.08);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

.btn-subtle::before{
  background:linear-gradient(115deg, transparent 22%, rgba(235,30,153,.14) 48%, transparent 78%);
}

.btn-subtle::after{
  opacity:.68;
  background:
    linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,0)),
    radial-gradient(circle at 18% 50%, rgba(235,30,153,.08), rgba(235,30,153,0) 34%);
}

.card{
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(245,247,250,.92)),
    var(--c-surface);
  border:1px solid rgba(36,51,107,.1);
  box-shadow:
    0 22px 44px rgba(25,36,77,.08),
    inset 0 1px 0 rgba(255,255,255,.94);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

.card::before{
  background:linear-gradient(180deg, rgba(255,255,255,.7), rgba(255,255,255,0) 24%, rgba(255,255,255,.18) 100%);
}

.visual::before{
  inset:10% 8% 8%;
  background:
    radial-gradient(circle at 22% 70%, rgba(190,255,199,.16), rgba(190,255,199,0) 40%),
    radial-gradient(circle at 78% 18%, rgba(235,30,153,.08), rgba(235,30,153,0) 42%);
  filter:blur(16px);
}

.visual::after{
  background:linear-gradient(180deg, rgba(255,255,255,.18), transparent 22%, transparent 78%, rgba(255,255,255,.08));
  opacity:.4;
}

.visual img{
  box-shadow:
    0 22px 50px rgba(25,36,77,.12),
    0 10px 24px rgba(25,36,77,.06);
}

.solution-tabs{
  border:none;
  background:transparent;
  box-shadow:none;
}
.solution-tab-indicator{
  background:color-mix(in srgb, var(--c-accent-cta) 7%, white 93%);
  border:1px solid color-mix(in srgb, var(--c-accent-cta) 12%, rgba(36,51,107,.08));
  box-shadow:
    inset 0 -2px 0 color-mix(in srgb, var(--c-accent-cta) 78%, white 22%);
}

.solution-tab{
  color:color-mix(in srgb, var(--c-text) 82%, var(--c-text-soft) 18%);
}

.solution-tab:focus-visible{
  border-color:color-mix(in srgb, var(--c-accent-cta) 18%, rgba(36,51,107,.1));
  box-shadow:
    0 0 0 4px color-mix(in srgb, var(--c-accent-cta) 10%, transparent),
    inset 0 0 0 1px color-mix(in srgb, var(--c-accent-cta) 8%, rgba(36,51,107,.06));
}

.solution-tab[aria-selected="true"]{
  color:var(--c-accent-cta);
  text-shadow:none;
  font-weight:600;
}

.status-badge{
  border:1px solid rgba(36,51,107,.16);
  background:rgba(255,255,255,.72);
  color:var(--c-text-soft);
}

.field label{
  color:color-mix(in srgb, var(--c-muted) 92%, white 8%);
}

.field input,.field textarea{
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(245,247,250,.92)),
    var(--c-surface);
  border:1px solid rgba(36,51,107,.12);
  color:var(--c-text);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 12px 22px rgba(25,36,77,.05);
}

.field input:focus,.field textarea:focus{
  border-color:rgba(36,51,107,.2);
  background:
    linear-gradient(180deg, rgba(255,255,255,1), rgba(245,247,250,.96)),
    var(--c-surface);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.94),
    0 0 0 4px rgba(235,30,153,.1),
    0 16px 34px rgba(25,36,77,.08);
}

.contact-details{
  border-top:1px solid rgba(36,51,107,.1);
}

.legal-links a{
  color:var(--c-text-soft);
}

.footer-legal-links{
  display:grid;
  gap:.35rem;
  margin:0;
}

.footer .footer-legal-links a{
  display:inline;
  min-height:auto;
  padding:0;
  border:none;
  background:none;
  color:var(--c-banner-text);
  text-decoration:underline;
  text-underline-offset:3px;
}

.footer .legal-links a:not(.partner-program-cta){
  display:inline-flex;
  align-items:center;
  min-height:2.5rem;
  padding:.62rem .88rem;
  border-radius:999px;
  border:1px solid rgba(214,224,242,.1);
  background:
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.015)),
    rgba(255,255,255,.03);
  color:var(--c-banner-text);
  text-decoration:none;
}

@media (hover: hover) and (pointer: fine){
  .btn-primary:hover{
    transform:translateY(-2px) scale(1.01);
    filter:brightness(1.04) saturate(1.02);
    box-shadow:
      0 24px 48px rgba(235,30,153,.28),
      0 12px 24px rgba(25,36,77,.1),
      inset 0 1px 0 rgba(255,255,255,.28),
      inset 0 -10px 20px rgba(124,7,75,.2);
  }

  .btn-secondary:hover{
    background:rgba(36,51,107,.08);
    border-color:rgba(36,51,107,.18);
    box-shadow:
      0 14px 28px rgba(25,36,77,.08),
      inset 0 1px 0 rgba(255,255,255,.5);
  }

  .btn-subtle:hover{
    color:var(--c-panel-strong);
    background:
      linear-gradient(180deg, rgba(255,255,255,1), rgba(244,247,251,.94)),
      var(--c-surface);
    border-color:rgba(36,51,107,.16);
    transform:translateY(-2px);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.94),
      0 18px 34px rgba(25,36,77,.08);
  }

  .solution-tab:hover{
    transform:translateY(-1px);
    border-color:rgba(36,51,107,.06);
    background:rgba(36,51,107,.045);
    box-shadow:none;
  }

  .solution-tab[aria-selected="true"]:hover{
    border-color:color-mix(in srgb, var(--c-accent-cta) 12%, rgba(36,51,107,.08));
    background:transparent;
    box-shadow:none;
  }

  .footer-company-grid a:hover{
    color:var(--c-banner-text);
    text-decoration-color:rgba(214,224,242,.56);
  }

  .footer .footer-legal-links a:hover{
    transform:none;
    border-color:transparent;
    background:none;
    text-decoration-color:rgba(214,224,242,.72);
  }

  .footer .legal-links a:not(.partner-program-cta):hover{
    transform:translateY(-2px);
    border-color:rgba(214,224,242,.16);
    background:
      linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.022)),
      rgba(255,255,255,.04);
  }
}
