:root {
   --public-ink: #07112f;
   --public-muted: #5c6375;
   --public-line: #e1e6f0;
   --public-surface: #f5f7fb;
   --public-purple: #7417cb;
   --public-pink: #ef19bd;
   --public-green: #169b68;
}

.public-hero {
   position: relative;
   overflow: hidden;
   padding: 108px 0 88px;
   background: linear-gradient(128deg, #06102d 0%, #172967 58%, #6e179f 100%);
}

.public-hero::before {
   content: "";
   position: absolute;
   inset: 0;
   background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
   background-size: 42px 42px;
   mask-image: linear-gradient(to bottom,#000,transparent 94%);
}

.public-hero .container {
   position: relative;
   z-index: 1;
}

.public-language {
   position: absolute;
   top: 20px;
   right: 20px;
   color: rgba(255,255,255,.82);
   font-size: 13px;
   font-weight: 700;
}

.public-language:hover {
   color: #fff;
}

.public-kicker {
   display: inline-flex;
   align-items: center;
   gap: 9px;
   color: var(--public-pink);
   font-size: 12px;
   font-weight: 800;
   letter-spacing: .12em;
   text-transform: uppercase;
}

.public-hero .public-kicker {
   padding: 9px 15px;
   color: #fff;
   border: 1px solid rgba(255,255,255,.28);
   border-radius: 999px;
   background: rgba(255,255,255,.09);
}

.public-hero h1 {
   max-width: 820px;
   margin: 22px 0 20px;
   color: #fff;
   font-size: clamp(43px,5.2vw,70px);
   line-height: 1.02;
   letter-spacing: -.035em;
}

.public-hero p {
   max-width: 760px;
   margin: 0;
   color: rgba(255,255,255,.82);
   font-size: 18px;
   line-height: 1.72;
}

.public-actions {
   display: flex;
   flex-wrap: wrap;
   gap: 12px;
   margin-top: 30px;
}

.public-btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 9px;
   min-height: 50px;
   padding: 13px 21px;
   border: 1px solid transparent;
   border-radius: 7px;
   font-weight: 800;
}

.public-btn-primary {
   color: #fff;
   background: linear-gradient(135deg,var(--public-purple),var(--public-pink));
}

.public-btn-primary:hover {
   color: #fff;
}

.public-btn-ghost {
   color: #fff;
   border-color: rgba(255,255,255,.38);
   background: rgba(255,255,255,.06);
}

.public-btn-ghost:hover {
   color: #fff;
   background: rgba(255,255,255,.13);
}

.public-hero-card {
   padding: 16px;
   border: 1px solid rgba(255,255,255,.18);
   border-radius: 9px;
   background: rgba(5,10,32,.42);
   box-shadow: 0 28px 75px rgba(0,0,0,.23);
}

.public-hero-card img {
   display: block;
   width: 100%;
   border-radius: 5px;
}

.public-section {
   padding: 92px 0;
}

.public-section-muted {
   background: var(--public-surface);
}

.public-heading {
   max-width: 800px;
   margin: 13px 0 18px;
   color: var(--public-ink);
   font-size: clamp(35px,4.3vw,53px);
   line-height: 1.08;
   letter-spacing: -.03em;
}

.public-lead {
   max-width: 780px;
   color: var(--public-muted);
   font-size: 17px;
   line-height: 1.75;
}

.public-grid {
   margin-top: 42px;
}

.public-card {
   height: 100%;
   padding: 28px;
   border: 1px solid var(--public-line);
   border-radius: 8px;
   background: #fff;
}

.public-card-icon {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 48px;
   height: 48px;
   margin-bottom: 20px;
   border-radius: 8px;
   color: #fff;
   background: linear-gradient(135deg,var(--public-purple),var(--public-pink));
   font-size: 20px;
}

.public-card h2,
.public-card h3 {
   color: var(--public-ink);
   font-size: 21px;
   margin-bottom: 12px;
}

.public-card p {
   color: var(--public-muted);
   line-height: 1.68;
}

.public-list {
   display: grid;
   gap: 10px;
   margin: 20px 0 0;
   padding: 0;
   list-style: none;
}

.public-list li {
   display: flex;
   gap: 9px;
   color: #30384d;
}

.public-list i {
   margin-top: 4px;
   color: var(--public-green);
}

.public-screen {
   overflow: hidden;
   border: 1px solid var(--public-line);
   border-radius: 9px;
   background: #fff;
   box-shadow: 0 22px 60px rgba(12,21,48,.1);
}

.public-screen img {
   display: block;
   width: 100%;
}

.public-cta {
   position: relative;
   overflow: hidden;
   padding: 58px;
   border-radius: 10px;
   color: #fff;
   background: linear-gradient(120deg,#07112f,#24327b 62%,#8312ac);
}

.public-cta h2 {
   max-width: 760px;
   color: #fff;
   font-size: clamp(34px,4.2vw,50px);
}

.public-cta p {
   max-width: 740px;
   color: rgba(255,255,255,.76);
   font-size: 17px;
   line-height: 1.7;
}

.legal-layout {
   display: grid;
   grid-template-columns: 260px minmax(0,1fr);
   gap: 46px;
   align-items: start;
}

.legal-index {
   position: sticky;
   top: 120px;
   padding: 22px;
   border-left: 3px solid var(--public-pink);
   background: var(--public-surface);
}

.legal-index strong {
   display: block;
   margin-bottom: 14px;
   color: var(--public-ink);
}

.legal-index a {
   display: block;
   padding: 6px 0;
   color: var(--public-muted);
   font-size: 14px;
}

.legal-index a:hover { color: var(--public-purple); }

.legal-document {
   max-width: 850px;
}

.legal-summary {
   margin-bottom: 34px;
   padding: 24px 28px;
   border: 1px solid var(--public-line);
   border-radius: 8px;
   background: var(--public-surface);
   color: var(--public-muted);
   line-height: 1.75;
}

.legal-section {
   padding: 32px 0;
   border-bottom: 1px solid var(--public-line);
   scroll-margin-top: 130px;
}

.legal-section:first-of-type { padding-top: 0; }
.legal-section h2 { margin-bottom: 12px; color: var(--public-ink); font-size: 29px; }
.legal-section h3 { margin: 19px 0 9px; color: #28314a; font-size: 19px; }
.legal-section p,
.legal-section li { color: var(--public-muted); line-height: 1.82; }
.legal-section ul { padding-left: 21px; }
.legal-section a { color: var(--public-purple); font-weight: 700; }
.legal-updated { margin-top: 28px; color: var(--public-muted); font-size: 14px; }

.compliance-standard {
   display: flex;
   flex-direction: column;
   min-height: 310px;
   padding: 34px;
   border: 1px solid rgba(255,255,255,.15);
   border-radius: 9px;
   color: #fff;
   background: linear-gradient(145deg,#07112f,#25347d 65%,#7814a2);
}

.compliance-standard span { color: rgba(255,255,255,.7); font-weight: 700; }
.compliance-standard h2 { margin: auto 0 5px; color: #fff; font-size: 50px; }
.compliance-standard p { color: rgba(255,255,255,.78); line-height: 1.65; }
.compliance-status { display: inline-flex; align-items: center; gap: 8px; color: #a8f4d2 !important; }

.social-grid { margin-top: 44px; }
.social-channel {
   display: flex;
   flex-direction: column;
   height: 100%;
   padding: 30px;
   border: 1px solid var(--public-line);
   border-radius: 9px;
   color: var(--public-ink);
   background: #fff;
   transition: transform .2s ease, border-color .2s ease;
}
.social-channel:hover { color: var(--public-ink); border-color: #c8b0dd; transform: translateY(-3px); }
.social-channel > i { margin-bottom: 35px; color: var(--public-purple); font-size: 30px; }
.social-channel h2 { margin-bottom: 8px; font-size: 23px; }
.social-channel p { flex: 1; color: var(--public-muted); line-height: 1.65; }
.social-channel strong { color: var(--public-purple); font-size: 14px; }
.social-channel strong i { margin-left: 5px; }

@media (max-width: 991px) {
   .legal-layout { grid-template-columns: 1fr; gap: 28px; }
   .legal-index { position: static; columns: 2; }
   .legal-index strong { column-span: all; }
}

@media (max-width: 575px) {
   .legal-index { columns: 1; }
   .legal-section h2 { font-size: 25px; }
}

.ispapp-brand {
   display: flex;
   align-items: center;
   gap: 12px;
   margin-bottom: 24px;
   color: #fff;
   font-size: 20px;
   font-weight: 800;
   letter-spacing: .04em;
}

.ispapp-brand img,
.ispapp-cta-logo img {
   width: 58px;
   height: 58px;
   object-fit: contain;
   border-radius: 14px;
}

.ispapp-phone-stage {
   position: relative;
   display: flex;
   justify-content: center;
   padding: 18px 0;
}

.ispapp-stage-logo {
   position: absolute;
   right: 8%;
   bottom: 8%;
   width: 88px;
   height: 88px;
   padding: 8px;
   border: 1px solid rgba(255,255,255,.32);
   border-radius: 22px;
   background: rgba(255,255,255,.94);
   box-shadow: 0 18px 40px rgba(0,0,0,.25);
}

.ispapp-iphone-shot {
   position: relative;
   margin: 0;
}

.ispapp-iphone-shot-hero {
   width: min(100%, 390px);
}

.ispapp-iphone-shot img {
   display: block;
   width: 100%;
}

.ispapp-screen-pair {
   display: flex;
   align-items: flex-start;
   justify-content: center;
   gap: 22px;
}

.ispapp-app-screen {
   width: min(48%, 300px);
   margin: 0;
}

.ispapp-app-screen:nth-child(2) {
   margin-top: 42px;
}

.ispapp-app-screen img {
   display: block;
   width: 100%;
}

.ispapp-app-screen figcaption,
.ispapp-gallery-screen figcaption {
   padding: 10px 8px 0;
   text-align: center;
   color: var(--public-ink);
   font-size: 13px;
   font-weight: 800;
}

.ispapp-identity-copy .public-heading {
   font-size: clamp(34px,3.3vw,47px);
}

.ispapp-screen-gallery {
   display: grid;
   grid-template-columns: repeat(3,minmax(0,1fr));
   gap: 22px;
   margin-top: 52px;
}

.ispapp-gallery-screen {
   margin: 0;
}

.ispapp-gallery-image {
   display: flex;
   align-items: flex-start;
   justify-content: center;
   height: 590px;
   padding: 0;
}

.ispapp-gallery-image img {
   display: block;
   width: auto;
   max-width: 100%;
   height: 100%;
   object-fit: contain;
   object-fit: contain;
}

.ispapp-cta-logo {
   margin-bottom: 22px;
}

.faq-groups {
   display: grid;
   gap: 62px;
}

.faq-group {
   display: grid;
   grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
   gap: 48px;
   padding-bottom: 62px;
   border-bottom: 1px solid var(--public-line);
}

.faq-group:last-child {
   padding-bottom: 0;
   border-bottom: 0;
}

.faq-group-heading h2 {
   color: var(--public-ink);
   font-size: 28px;
   line-height: 1.18;
}

.faq-accordion .accordion-item {
   overflow: hidden;
   margin-bottom: 12px;
   border: 1px solid var(--public-line);
   border-radius: 8px;
}

.faq-accordion .accordion-button {
   padding: 22px 24px;
   color: var(--public-ink);
   background: #fff;
   box-shadow: none;
   font-size: 17px;
   font-weight: 750;
}

.faq-accordion .accordion-button:not(.collapsed) {
   color: var(--public-purple);
   background: #faf8ff;
}

.faq-accordion .accordion-body {
   padding: 4px 24px 24px;
   color: var(--public-muted);
   line-height: 1.7;
}

.contact-channels {
   display: grid;
   gap: 14px;
}

.contact-channel,
.contact-office {
   display: flex;
   align-items: center;
   gap: 18px;
   padding: 22px;
   border: 1px solid var(--public-line);
   border-radius: 9px;
   color: var(--public-ink);
   background: #fff;
}

.contact-channel:hover {
   color: var(--public-purple);
   border-color: #cdb1e6;
}

.contact-channel > span {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   flex: 0 0 46px;
   width: 46px;
   height: 46px;
   border-radius: 9px;
   color: #fff;
   background: linear-gradient(135deg,var(--public-purple),var(--public-pink));
}

.contact-channel small,
.contact-office small {
   display: block;
   margin-bottom: 4px;
   color: var(--public-muted);
   font-size: 12px;
   font-weight: 700;
   letter-spacing: .04em;
   text-transform: uppercase;
}

.contact-channel strong,
.contact-office strong {
   color: inherit;
   font-size: 16px;
}

.contact-office {
   margin-top: 18px;
   background: var(--public-surface);
}

.contact-office .public-card-icon {
   flex: 0 0 48px;
   margin: 0;
}

.contact-form-card {
   padding: 38px;
   border: 1px solid var(--public-line);
   border-radius: 10px;
   background: var(--public-surface);
}

.contact-form-card h2 {
   margin: 10px 0;
   color: var(--public-ink);
   font-size: 35px;
}

.contact-form-card > p {
   margin-bottom: 28px;
   color: var(--public-muted);
}

.contact-form-card label:not(.contact-consent) {
   display: block;
   margin-bottom: 7px;
   color: var(--public-ink);
   font-size: 13px;
   font-weight: 750;
}

.contact-form-card input:not([type="checkbox"]),
.contact-form-card textarea {
   width: 100%;
   padding: 13px 14px;
   border: 1px solid #d5dae5;
   border-radius: 7px;
   color: var(--public-ink);
   background: #fff;
}

.contact-form-card input:focus,
.contact-form-card textarea:focus {
   outline: 2px solid rgba(116,23,203,.16);
   border-color: var(--public-purple);
}

.contact-consent {
   display: flex;
   align-items: flex-start;
   gap: 10px;
   color: var(--public-muted);
   font-size: 13px;
   line-height: 1.55;
}

.contact-consent input {
   flex: 0 0 auto;
   margin-top: 4px;
}

.contact-response {
   min-height: 24px;
   margin: 18px 0 0;
   color: var(--public-green);
   font-weight: 700;
}

@media (max-width: 991px) {
   .public-hero {
      padding: 90px 0 74px;
   }

   .public-hero-card {
      margin-top: 22px;
   }

   .faq-group {
      grid-template-columns: 1fr;
      gap: 24px;
   }
}

@media (max-width: 767px) {
   .public-hero {
      padding: 74px 0 62px;
   }

   .public-language {
      position: static;
      display: inline-block;
      margin-bottom: 20px;
   }

   .public-section {
      padding: 64px 0;
   }

   .public-btn {
      width: 100%;
   }

   .public-cta {
      padding: 36px 24px;
   }

   .ispapp-stage-logo {
      right: 2%;
      width: 68px;
      height: 68px;
   }

   .ispapp-screen-pair {
      gap: 10px;
   }

   .ispapp-app-screen {
      width: 48%;
   }

   .ispapp-screen-gallery {
      display: flex;
      overflow-x: auto;
      padding: 0 4px 20px;
      scroll-snap-type: x mandatory;
   }

   .ispapp-gallery-screen {
      flex: 0 0 260px;
      scroll-snap-align: center;
   }

   .ispapp-gallery-image {
      height: 390px;
   }

   .contact-form-card {
      padding: 28px 20px;
   }
}
