@charset "UTF-8";
/* Five service pages share the approved homepage's gallery palette and readable type. */
.product-page .product-hero { padding-block: 36px 64px; }
.product-page .crumb { margin-bottom: 36px; }
.product-page .product-poster { grid-template-columns: 1.15fr 1fr; gap: clamp(32px, 5vw, 72px); }
.product-page .product-poster h1 { font-size: clamp(2.8rem, 4.5vw, 4.1rem); line-height: 1.3; letter-spacing: -.025em; }
.product-page .product-copy > p { margin-top: 24px; max-width: 610px; }
.product-page .product-copy .actions { margin-top: 30px; }
.product-service-art { margin: 0; position: relative; min-width: 0; isolation: isolate; }
.product-service-art img { width: 100%; mix-blend-mode: multiply; mask-image: radial-gradient(ellipse 72% 73% at 50% 48%, #000 63%, transparent 100%); animation: service-sculpture 12s ease-in-out infinite; }
.product-service-art figcaption { position: relative; margin: -30px 6% 0; padding: 18px 22px; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; background: #fdfcffed; border: 1px solid var(--line); border-radius: 36px 12px 36px 12px; box-shadow: 0 8px 24px #3134860a; }
.service-sequence { font-size: 18px; color: var(--blue); white-space: nowrap; }
.product-service-art strong { font-size: 20px; font-weight: 600; line-height: 1.5; }
.art-arrow { color: var(--blue); font-size: 26px; }
.product-page .product-siblings { gap: 8px; padding-block: 16px; border-color: var(--line); background: #e9e8f4; }
.product-page .product-siblings a { border: 1px solid transparent; border-radius: 30px; display: inline-flex; gap: 10px; align-items: center; padding: 10px 18px; font-size: 18px; transition: background .2s, border-color .2s; }
.product-page .product-siblings a > span { color: var(--muted); font-size: 18px; }
.product-page .product-siblings a[aria-current=page] { background: var(--white); color: var(--blue); border-color: #bfc2e2; font-weight: 650; }
.product-page .product-siblings a:hover { border-color: var(--blue); }
.product-page .product-stage { padding-block: 64px 72px; }
.product-stage-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.product-stage-heading .eyebrow { margin: 0; color: var(--blue); }
.product-stage-heading p { font-size: 20px; }
.product-page .view-tabs { display: grid; grid-template-columns: repeat(4, 1fr); width: 100%; border: 1px solid var(--line); background: transparent; border-radius: 20px; padding: 8px; gap: 8px; margin-bottom: 48px; }
.product-page .view-tabs button { border-radius: 13px; font-size: 18px; padding: 14px 12px; line-height: 1.5; transition: background .2s, color .2s; }
.product-page .view-tabs button:hover { background: #deddf6; }
.product-page .view-tabs button[aria-selected=true] { background: var(--blue); color: #fff; }
.product-page .view-panel { scroll-margin-top: 32px; }
.product-page .perspective { grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 72px); align-items: start; padding-bottom: 16px; }
.product-page .perspective h2, .product-page .architecture-heading h2 { font-size: clamp(2rem, 3vw, 2.8rem); line-height: 1.35; letter-spacing: -.025em; }
.product-page .perspective p { font-size: 20px; line-height: 1.75; margin-top: 22px; }
.member-benefits { padding: 0; margin: 28px 0 0; list-style: none; }
.member-benefits li { display: flex; align-items: baseline; gap: 18px; padding: 17px 0; border-top: 1px solid var(--line); }
.member-benefits li:last-child { border-bottom: 1px solid var(--line); }
.member-benefits li > span { color: var(--blue); font-size: 22px; }
.member-benefits strong { font-weight: 550; font-size: 20px; line-height: 1.6; }
.product-page .demo-screen { padding: 30px; border: 1px solid #c5c7e0; border-radius: 16px 52px 16px 16px; box-shadow: 8px 10px 0 #dcdcef; background: #fffdfa; }
.product-page .screen-chrome { font-size: 18px; padding-bottom: 20px; }
.product-page .screen-dots { color: #737ac5; letter-spacing: 3px; }
.product-page .screen-eyebrow { font-size: 18px; }
.product-page .screen-body h3 { font-size: 26px; line-height: 1.4; margin: 12px 0 24px; }
.product-page .screen-row { display: grid; grid-template-columns: .85fr 1.15fr; align-items: start; gap: 12px; padding: 15px 0; font-size: 20px; line-height: 1.65; }
.product-page .screen-row > span { color: var(--muted); }
.product-page .screen-row strong { text-align: left; overflow-wrap: anywhere; }
.product-page .demo-action { font-size: 20px; border-radius: 12px 30px 12px 30px; padding: 16px 20px; margin-top: 24px; line-height: 1.5; }
.product-page .demo-result { font-size: 20px; margin-top: 24px; background: #efeff8; border-left: 3px solid var(--blue); padding: 18px; }
.product-page .demo-result p { margin-top: 12px; }
.product-page .operation-board { background: linear-gradient(140deg, #e4e3f5, #f0edf3); padding: 18px 30px; border: 1px solid #c8c7df; border-radius: 16px 52px 16px 16px; }
.product-page .operation-step { align-items: baseline; padding: 22px 0; gap: 20px; font-size: 20px; }
.product-page .operation-step b { font-family: inherit; font-style: normal; font-size: 18px; font-weight: 600; }
.product-page .role-boundary { max-width: none; margin-top: 36px; border-radius: 0 24px 24px 0; }
.product-page .role-boundary strong { font-size: 22px; }
.product-page .role-boundary p { font-size: 20px; }
.product-page .architecture-heading { text-align: left; margin-bottom: 36px; }
.product-page .architecture-stage { grid-template-columns: 1fr auto 1.15fr auto 1fr; gap: 18px; align-items: stretch; }
.product-page .architecture-arrow { align-self: center; }
.product-page .architecture-node { padding: 28px 24px; border-radius: 14px 40px 14px 14px; background: #e8e7f4; border: 1px solid #c8c7df; }
.product-page .architecture-node.core { transform: none; background: var(--deep); color: white; border-color: var(--deep); }
.product-page .architecture-node h3 { font-size: 26px; line-height: 1.4; margin-block: 18px; }
.product-page .architecture-node p { font-size: 20px; line-height: 1.7; }
.product-page .module-list { gap: 10px; margin-top: 20px; }
.product-page .module-list span { font-size: 18px; border-radius: 14px; padding: 9px 12px; }
.product-page .architecture-base { margin-top: 32px; padding: 24px 0; font-size: 20px; }
.product-page .architecture-base small { font-size: 18px; }
.product-page .pricing-head h2 { font-size: clamp(2rem, 3vw, 2.8rem); line-height: 1.35; }
.product-page .bundle { border-radius: 14px 44px 14px 14px; }
.product-page .product-disclosure { margin-top: 40px; max-width: none; font-size: 18px; line-height: 1.7; }
.service-continuation { background: var(--deep); color: #faf9ff; border-radius: 56px 0 0 0; padding: 72px 0; }
.service-continuation > .wrap { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(32px, 6vw, 80px); }
.service-continuation h2 { font-size: clamp(2rem, 3vw, 2.8rem); line-height: 1.35; }
.service-continuation p { font-size: 20px; line-height: 1.75; margin-top: 24px; color: #e9e8fb; }
.product-page .service-continuation .next-services { grid-template-columns: 1fr; gap: 14px; padding-top: 0; }
.product-page .service-continuation .next-services a { color: #faf9ff; border-color: #9a9cc9; padding-block: 14px; font-size: 20px; }
.product-page .service-continuation .next-services a:hover { color: #dedfff; }
@keyframes service-sculpture { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }

@media (max-width: 1100px) {
  .product-page .architecture-stage { grid-template-columns: 1fr auto 1.3fr; }
  .product-page .architecture-stage > .architecture-node:last-child { grid-column: 1 / -1; }
  .product-service-art figcaption { margin-inline: 0; padding: 18px; }
}
@media (max-width: 850px) {
  .product-page .product-hero { padding-block: 28px 40px; }
  .product-page .product-poster { grid-template-columns: 1fr; gap: 28px; }
  .product-page .product-poster h1 { font-size: clamp(2.2rem, 6.4vw, 3.2rem); }
  .product-service-art { width: min(500px, 100%); margin-inline: auto; }
  .product-page .product-siblings { justify-content: flex-start; padding-inline: 5%; gap: 7px; }
  .product-page .product-siblings a { padding: 9px 13px; }
  .product-page .product-stage { padding-block: 48px; }
  .product-stage-heading { flex-direction: column; gap: 12px; }
  .product-page .view-tabs { margin-bottom: 36px; }
  .product-page .view-tabs button { padding-inline: 8px; }
  .product-page .perspective { grid-template-columns: 1fr; gap: 32px; }
  .service-continuation { padding-block: 56px; border-radius: 36px 0 0 0; }
  .service-continuation > .wrap { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 560px) {
  .product-page .product-poster h1 { font-size: 36px; line-height: 1.3; }
  .product-page .crumb { margin-bottom: 28px; }
  .product-page .product-copy > p { margin-top: 22px; }
  .product-service-art figcaption { grid-template-columns: auto 1fr auto; gap: 10px; margin-top: -12px; padding: 15px; border-radius: 24px 12px; }
  .product-service-art strong { font-size: 20px; }
  .service-sequence { font-size: 18px; }
  .product-page .product-siblings a { gap: 7px; padding: 8px 10px; }
  .product-page .product-siblings a > span { display: none; }
  .product-page .view-tabs { grid-template-columns: 1fr 1fr; padding: 6px; gap: 6px; border-radius: 18px; }
  .product-page .view-tabs button { padding: 12px 6px; }
  .product-page .perspective h2, .product-page .architecture-heading h2,
  .product-page .pricing-head h2, .service-continuation h2 { font-size: 30px; line-height: 1.4; }
  .product-page .demo-screen { padding: 24px 20px; border-top-right-radius: 36px; box-shadow: 5px 7px 0 #dcdcef; }
  .product-page .screen-row { grid-template-columns: .8fr 1.2fr; }
  .product-page .screen-body h3 { font-size: 25px; }
  .product-page .demo-action { padding: 15px; gap: 12px; }
  .product-page .demo-result { padding: 15px; }
  .product-page .operation-board { padding: 12px 20px; border-top-right-radius: 36px; }
  .product-page .operation-step { gap: 14px; }
  .product-page .architecture-stage { display: flex; flex-direction: column; gap: 16px; }
  .product-page .architecture-node { padding: 26px 22px; }
  .product-page .architecture-node h3 { font-size: 25px; }
  .product-page .role-boundary { margin-top: 28px; padding: 22px; }
  .product-page .role-boundary strong { font-size: 20px; }
  .product-page .next-services > a { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) { .product-service-art img { animation: none !important; } }
