.skip-link{position:fixed;top:12px;left:12px;z-index:10000;padding:12px 20px;background:#fff;color:#171b4c;border:2px solid #7450e8;border-radius:8px;transform:translateY(-150%)}
.skip-link:focus{transform:none}
:focus-visible{outline:3px solid #7450e8;outline-offset:5px}
.service-audience{max-width:850px;font-size:clamp(20px,2.2vw,28px);line-height:1.6;padding-bottom:40px;border-bottom:1px solid #ddd6ef}
.service-section{margin-top:72px}.service-section h2,.project-contact h2{font-size:clamp(28px,3vw,42px);line-height:1.2;letter-spacing:0;color:#141a50;margin:12px 0 28px}.service-section h3{font-size:21px;color:#242052}.service-section p{line-height:1.75}.service-section .page-card-grid{margin-top:30px}.service-delivery{display:grid;grid-template-columns:1fr 1fr;gap:48px;background:#f0ecfb;padding:40px;border-radius:28px}.service-delivery p{max-width:390px}.service-delivery ul{list-style:none;margin:0;padding:0}.service-delivery li{padding:18px 0 18px 30px;position:relative;border-bottom:1px solid #dcd4ef;line-height:1.6}.service-delivery li:before{content:'✓';position:absolute;left:0;color:#7950c8;font-weight:700}.service-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;list-style:none;padding:0}.service-steps li{padding-top:22px;border-top:1px solid #cdc4e7}.service-steps li>span{font-size:36px;color:#8665c5}.service-faq{max-width:900px}.service-faq details{border-bottom:1px solid #ddd6ef;padding:22px 0}.service-faq summary{cursor:pointer;font-weight:650;font-size:18px;color:#26214e;line-height:1.5}.service-faq details p{margin:16px 0 0;max-width:800px}.service-related{display:flex;flex-wrap:wrap;gap:12px;margin-top:50px;align-items:center}.service-related>span{width:100%;color:#68627d}.service-related a{padding:10px 15px;border:1px solid #dcd4ed;border-radius:30px;color:#4a3476}
.project-contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:start}.project-contact aside p,.project-contact aside li{line-height:1.8;color:#6c6580}.project-contact aside ol{padding-left:22px;margin:25px 0}.project-form{padding:32px;background:#fff;border:1px solid #e2dcef;border-radius:24px;box-shadow:0 15px 50px #33285608}.project-form label{display:flex;flex-direction:column;gap:9px;font-size:14px;font-weight:600;color:#30284b;margin-bottom:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.project-form input,.project-form select,.project-form textarea{width:100%;min-width:0;box-sizing:border-box;border:1px solid #d3cbe3;border-radius:10px;padding:13px 14px;font:inherit;font-weight:400;color:#292340;background:#fcfbff}.project-form textarea{resize:vertical}.project-form label small{font-weight:400}.project-form .form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-notice{font-size:12px;line-height:1.7;color:#746b83}.form-notice a{text-decoration:underline}.project-form .button{margin-top:18px;cursor:pointer}.project-form button:disabled{opacity:.65;cursor:wait}#form-status{font-size:14px;line-height:1.7;color:#513882;overflow-wrap:anywhere}.service-section,.project-contact{scroll-margin-top:30px}
@media(max-width:760px){.service-delivery,.service-steps,.project-contact{grid-template-columns:1fr;gap:24px}.service-section{margin-top:48px}.service-delivery{padding:25px}.project-form{padding:22px}.form-row{grid-template-columns:1fr;gap:0}.project-contact{gap:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.service-breadcrumb {
  float: right;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  width: fit-content;
  max-width: 100%;
  margin-bottom: 28px;
  padding: 6px;
  border: 1px solid #e8e1f4;
  border-radius: 18px;
  background: linear-gradient(120deg, #ffffffed, #f5f0ffb3);
  box-shadow: 0 4px 18px #49309e05, inset 0 1px 0 #fff;
  color: #776b8e;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0;
}
.service-breadcrumb + * { clear: both; }
.service-breadcrumb a,
.service-breadcrumb [aria-current="page"] {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 7px 12px;
  border-radius: 12px;
}
.service-breadcrumb a {
  color: #776b8e;
  text-decoration: none;
  transition: color .2s ease, background-color .2s ease;
}
.service-breadcrumb a:hover,
.service-breadcrumb a:focus-visible {
  color: #6944ad;
  background-color: #ece4fa;
  text-decoration: none;
}
.service-breadcrumb [aria-current="page"] {
  color: #624298;
  background: #eae1f880;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.service-breadcrumb > [aria-hidden="true"] {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  margin: 0 3px;
  border-top: 1.5px solid #b5a4cf;
  border-right: 1.5px solid #b5a4cf;
  transform: rotate(45deg);
  font-size: 0;
}
@media (max-width: 480px) {
  .service-breadcrumb { gap: 2px; padding: 5px; border-radius: 15px; font-size: 12px; }
  .service-breadcrumb a,
  .service-breadcrumb [aria-current="page"] { padding: 7px 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .service-breadcrumb a { transition: none; }
}

@media (min-width: 1051px) {
  .page-intro:has(> .service-breadcrumb) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 40px;
    align-items: start;
  }
  .page-intro > .service-breadcrumb {
    grid-column: 2;
    grid-row: 1 / 4;
    justify-self: end;
    margin-bottom: 0;
  }
  .page-intro > .service-breadcrumb ~ .eyebrow {
    grid-column: 1;
    grid-row: 1;
    margin-top: 0;
  }
  .page-intro > .service-breadcrumb ~ h1 {
    grid-column: 1;
    grid-row: 2;
  }
  .page-intro > .service-breadcrumb ~ .page-lead {
    grid-column: 1;
    grid-row: 3;
  }
}

.contact-direct { margin-top: 32px; padding-top: 26px; border-top: 1px solid #ded5ef; }
.contact-direct h3 { margin: 0 0 10px; color: #242052; font-size: 24px; line-height: 1.3; }
.project-contact .contact-direct > p { margin: 0 0 18px; font-size: 14px; }
.contact-direct-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; min-width: 0; }
.contact-direct-link { display: grid; grid-template-columns: 36px minmax(0, 1fr) 22px; align-items: center; min-width: 0; margin: 0; box-sizing: border-box; line-height: 1.4; appearance: none; gap: 12px; width: 100%; min-height: 64px; padding: 12px 16px; border: 1px solid #e0d5f2; border-radius: 16px; background: linear-gradient(115deg, #fff, #f1ebfc); color: #51367f; font-family: var(--font-heading); font-size: 15px; font-weight: 600; text-align: left; text-decoration: none; transition: border-color .2s, background .2s, transform .2s; }
.contact-direct-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 11px; color: #7952b9; background: #e9dff8; }
.contact-direct-icon svg { display: block; width: 22px; height: 22px; }
.contact-direct-link > span:nth-child(2) { min-width: 0; overflow-wrap: anywhere; }
.contact-direct-arrow { justify-self: end; margin: 0; line-height: 1; font-size: 21px; color: #9778c4; }

.contact-direct-link:hover, .contact-direct-link:focus-visible { background: #eae0fa; border-color: #bca4de; transform: translateY(-2px); }
.contact-email { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; padding-block: 8px; color: #73558e; font-size: 13px; }
.contact-email:hover { color: #553184; text-decoration: underline; text-underline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .contact-direct-link { transition: none; } .contact-direct-link:hover { transform: none; } }

.process-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.process-detail-grid h2 { margin: 16px 0; font-size: clamp(23px, 2.3vw, 30px); line-height: 1.25; color: #242052; }
.process-detail-grid p strong { color: #51406c; }
.content-checklist { padding-left: 22px; color: #726780; font-size: 16px; line-height: 1.8; }
.content-checklist li { padding: 5px 0 5px 4px; }
.content-checklist li::marker { color: #9875ca; }
.blog-card { display: flex; flex-direction: column; gap: 14px; }
.blog-card h2 { margin: 0; font-size: 25px; line-height: 1.3; color: #242052; }
.blog-card p { margin: 0 0 10px; }
.blog-card > .text-link { margin-top: auto; font-size: 14px; }
.article-body { width: 100%; max-width: none; margin: 0; color: #726780; font-size: 16px; line-height: 1.85; }
.article-body h2 { margin: 40px 0 16px; font-size: clamp(24px, 3vw, 32px); line-height: 1.3; color: #242052; }
.article-body section { scroll-margin-top: 32px; }
.article-byline { margin: 0 0 22px; font-size: 14px; }
.article-toc { width: fit-content; max-width: 100%; padding: 24px 28px; border: 1px solid #e0d7f1; border-radius: 20px; background: #ffffff80; }
.article-toc strong { color: #51367f; }
.article-toc ol { padding-left: 22px; margin-bottom: 0; }
.article-toc a { color: #68459f; text-decoration: underline; text-decoration-color: #d3c2ea; text-underline-offset: 4px; }
.article-toc a:hover { color: #402671; text-decoration-color: currentColor; }
@media (max-width: 760px) {
  .process-detail-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .article-toc { padding: 20px; }
  .blog-card h2 { font-size: 23px; }
}

.back-to-top {
  position: fixed;
  right: max(22px, env(safe-area-inset-right));
  bottom: max(22px, env(safe-area-inset-bottom));
  z-index: 30;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid #d8c7f2;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(140deg, #322361, #8054bc);
  box-shadow: 0 8px 24px #4930752b, inset 0 1px 0 #ffffff40;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(18px) scale(.86);
  transition: opacity .28s ease, transform .45s cubic-bezier(.16, 1, .3, 1), box-shadow .3s ease, visibility 0s linear .28s;
}
.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  transition-delay: 0s;
}
.back-to-top svg { display: block; opacity: 0; transform: translateY(5px); transition: opacity .2s ease, transform .35s cubic-bezier(.16, 1, .3, 1); }
.back-to-top.is-visible svg { opacity: 1; transform: translateY(0); transition-delay: .08s; }
.back-to-top.is-visible:hover { transform: translateY(-3px); box-shadow: 0 12px 28px #49307540; }
.back-to-top:focus-visible { outline: 3px solid #8b60c4; outline-offset: 4px; }
@media (max-width: 600px) {
  .back-to-top { right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); width: 46px; height: 46px; border-radius: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .back-to-top, .back-to-top svg { transition: none; }
  .back-to-top, .back-to-top.is-visible:hover, .back-to-top svg { transform: none; }
}
.error-page { text-align: center; padding-block: clamp(55px, 10vw, 120px); }
.error-number { display: block; width: fit-content; margin: 0 auto 20px; font-family: var(--font-heading); font-size: clamp(100px, 18vw, 200px); font-weight: 700; line-height: 1; color: #7450b5; background: linear-gradient(130deg, #1a225f, #aa82df); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.error-page h1 { margin: 0 0 20px; font-size: clamp(30px, 4vw, 48px); line-height: 1.2; }
.error-page p { max-width: 570px; margin: 0 auto 30px; color: #726780; font-size: 16px; line-height: 1.8; }
.error-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; }
.error-actions .button { border-radius: 999px; }
.error-actions .button-outline:hover { color: #fff; }
.legal-copy { color: #726780; font-size: 16px; line-height: 1.8; }
.legal-copy h2 { margin: 36px 0 14px; color: #242052; font-size: clamp(23px, 2.5vw, 30px); line-height: 1.3; }
.legal-copy a { color: #634498; text-decoration: underline; text-underline-offset: 3px; }

.page-intro.service-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  column-gap: clamp(24px, 4vw, 64px);
  align-items: start;
}
.page-intro.service-intro > .service-breadcrumb {
  float: none;
  grid-column: 2;
  grid-row: 1 / 3;
  justify-self: end;
  margin: 0 0 20px;
}
.page-intro.service-intro > .eyebrow { grid-column: 1; grid-row: 1; margin-top: 0; }
.page-intro.service-intro > h1 { grid-column: 1; grid-row: 2; }
.page-intro.service-intro > .page-lead { grid-column: 1; grid-row: 3; margin-bottom: 0; }
.service-intro > .service-audience { grid-column: 1; grid-row: 4; margin-top: 38px; padding-bottom: 24px; font-size: clamp(19px, 1.8vw, 25px); }
.service-intro > .service-audience > p:last-child { margin-bottom: 0; }
.service-visual { grid-column: 2; grid-row: 3 / 5; align-self: center; width: 100%; max-width: 560px; justify-self: center; }
.service-visual img { display: block; width: 100%; height: auto; }
.service-intro + .page-content > .service-section:first-child { margin-top: 24px; }
@media (max-width: 760px) {
  .page-intro.service-intro { grid-template-columns: minmax(0, 1fr); }
  .page-intro.service-intro > .service-breadcrumb { grid-column: 1; grid-row: 1; justify-self: start; margin-bottom: 24px; }
  .page-intro.service-intro > .eyebrow { grid-row: 2; }
  .page-intro.service-intro > h1 { grid-row: 3; }
  .page-intro.service-intro > .page-lead { grid-row: 4; }
  .service-intro > .service-audience { grid-row: 5; margin-top: 28px; }
  .service-intro > .service-visual { grid-column: 1; grid-row: 6; max-width: 420px; margin-top: 16px; }
}
