/* Shared visual identity. Homepage keeps its dedicated composition. */
.site-theme { --maxw: 1320px; --site-night: #091522; --site-paper: #f3f5f6; background: var(--site-paper); }
.site-theme [hidden] { display: none !important; }
.site-theme .container { padding-inline: 40px; }
.site-theme .narrow { max-width: 900px; }
.site-theme .skip-link { position: absolute; top: 8px; left: 16px; z-index: 30; padding: 12px 18px; background: #fff; color: #071427; transform: translateY(-160%); }
.site-theme .skip-link:focus { transform: none; }
.site-theme :focus-visible { outline: 3px solid #4f9aff; outline-offset: 5px; }
.site-theme header.site { background: var(--site-night); border-color: #ffffff16; }
.site-theme .nav-shell { min-height: 80px; gap: 24px; }
.site-theme .brand { font-size: 20px; font-weight: 720; letter-spacing: -.6px; }
.site-theme .home-logo { display: block; border-radius: 9px; flex-shrink: 0; }
.site-theme header.site nav { gap: 6px; }
.site-theme header.site nav a { color: #c4ced9; font-size: 12px; padding: 12px 9px; }
.site-theme header.site nav a:hover { color: #fff; }
.site-theme header.site nav a[aria-current] { color: #fff; background: #ffffff0d; text-decoration: underline; text-underline-offset: 7px; text-decoration-color: #92b8d6; }
.site-theme .home-menu { display: none; }
.site-theme footer.site { background: var(--site-night); border-top: 1px solid #ffffff20; padding-block: 44px; }
.site-theme footer.site .links { font-size: 11px; gap: 14px 22px; }
.site-theme footer.site p { max-width: 320px; font-size: 12px; }
.site-theme footer.site .small { font-size: 10px; border-top: 0; }
.site-theme .store-badge { min-height: 44px; }
.interior .eyebrow { font-size: 10px; line-height: 1.6; letter-spacing: 1.8px; font-weight: 650; }
.interior .page-hero { padding: 80px 0 72px; background: radial-gradient(ellipse at 90% 100%, #233b4e80, transparent 65%), var(--site-night); border: 0; color: #fff; }
.interior .page-hero .eyebrow, .interior .page-hero .eyebrow a { color: #acc0d0; }
.interior .page-hero a:not(.btn) { color: #bdd4e7; text-underline-offset: 4px; }
.interior .page-hero a:not(.btn):hover { color: #fff; }
.interior .page-hero h1 { color: #fff; font-size: clamp(38px, 4.7vw, 64px); letter-spacing: -2px; line-height: 1.06; font-weight: 620; text-wrap: balance; }
.interior .page-hero .lead { color: #c0ccd7; max-width: 65ch; line-height: 1.75; margin: 26px 0 0; font-size: 16px; }
.interior .page-hero .small, .interior .page-hero .byline { color: #aebfcd; }
.interior .section { padding-block: 88px; }
.interior .section-soft { background: var(--site-paper); }
.interior h2 { font-size: clamp(26px, 3vw, 38px); font-weight: 580; letter-spacing: -1px; line-height: 1.16; text-wrap: balance; }
.interior h3 { font-size: 23px; font-weight: 600; letter-spacing: -.5px; line-height: 1.25; }
.interior p { text-wrap: pretty; }
.interior .section-heading { margin-bottom: 42px; }
.interior .section .narrow > h2:not(:first-child) { margin-top: 52px; }
.interior .section .narrow > p, .interior .section .narrow > ul, .interior .section .narrow > ol { line-height: 1.85; }
.interior .section .narrow > h3 { margin-top: 32px; }
.interior .feature-grid, .interior .timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 56px; }
.interior .feature-card, .interior .mini-card, .interior .timeline-card { border: 0; border-bottom: 1px solid #ced7df; border-radius: 0; background: none; box-shadow: none; padding: 30px 0 34px; }
.interior .feature-card h3, .interior .mini-card h3, .interior .timeline-card h3 { margin: 14px 0; font-size: 26px; }
.interior .feature-card p, .interior .mini-card p, .interior .timeline-card p { font-size: 15px; line-height: 1.85; }
.interior .tag { font-size: 10px; font-weight: 600; letter-spacing: .4px; border-radius: 4px; min-height: 24px; padding: 3px 8px; }
.interior .tag.dispo { background: #e5eee9; color: #246044; }
.interior .btn { font-size: 13px; font-weight: 600; border-radius: 28px; padding: 14px 22px; transition: background-color .2s, transform .2s; }
.interior .btn.primary { background: #1757b8; box-shadow: none; }
.interior .btn.primary:hover { background: #124790; }
.interior .btn:active { transform: translateY(1px); }
.interior .text-link { font-weight: 600; text-underline-offset: 4px; }
.interior .note, .interior .disclaimer { border: 0; border-left: 3px solid #a4b9cc; border-radius: 0; background: #edf2f6; padding: 24px 28px; font-size: 14px; line-height: 1.8; }
.interior .benefit-list { gap: 0; }
.interior .benefit-list div { border: 0; border-bottom: 1px solid #ced7df; border-radius: 0; padding: 18px 0; background: none; font-weight: 500; }
.interior .caution-panel, .interior .reform-panel { border-radius: 8px; background: var(--site-night); box-shadow: none; padding: 38px; }
.interior .caution-panel h2, .interior .reform-panel h2 { color: #fff; }
.interior:not(.editorial-page) .section:has(.final-cta) { background: var(--site-night); }
.interior .final-cta { border-radius: 0; background: none; box-shadow: none; text-align: left; }
.editorial-page .article-install { background: var(--site-night); padding: 32px; }
.interior .final-cta h2 { max-width: 760px; color: #fff; font-size: clamp(32px, 3.7vw, 48px); }
.interior .final-cta .eyebrow { color: #acc0d0; }
.interior .final-cta p:not(.eyebrow) { max-width: 78ch; color: #c0ccd7; font-size: 14px; line-height: 1.85; }
.interior .final-cta .store-badges { justify-content: flex-start; }
.interior .document-preview { max-width: 460px; justify-self: center; padding: 0; border: 0; border-radius: 0; box-shadow: 15px 25px 55px #23374a22; transform: perspective(1200px) rotateY(-6deg) rotateZ(2deg); }
.product-page .product-intro { display: grid; grid-template-columns: 1.35fr .65fr; gap: 70px; align-items: center; }
.product-intro-copy { max-width: 710px; }
.product-intro-device { width: 216px; margin: 0 auto; padding: 6px; border: 1px solid #c5d1dc; border-radius: 33px; background: linear-gradient(115deg, #bac6d0, #15212d 9%, #15212d 91%, #8192a0); box-shadow: 7px 3px 0 #415262, 28px 30px 65px #0005; transform: perspective(1100px) rotateY(-12deg) rotateZ(4deg); }
.product-intro-device img { display: block; width: 100%; height: auto; border-radius: 27px; }
.interior .pricing-grid { gap: 28px; align-items: stretch; }
.interior .pricing-grid .price { font-size: 32px; font-weight: 650; line-height: 1.2; font-variant-numeric: tabular-nums; }
.interior .pricing-grid .feature-card { padding: 36px; border: 1px solid #d6dfe6; border-radius: 8px; background: var(--site-paper); }
.interior .pricing-grid .pricing-pro { background: var(--site-night); border-color: var(--site-night); color: #fff; }
.interior .pricing-pro h2, .interior .pricing-pro h3, .interior .pricing-pro .price { color: #fff; }
.interior .pricing-pro p, .interior .pricing-pro .price span { color: #c4d0db; }
.interior .pricing-pro .eyebrow { color: #a9c5e4; }
.interior .price-options { gap: 12px; }
.interior .price-options > div { background: #ffffff0c; border: 1px solid #ffffff20; padding: 18px; border-radius: 5px; }
.interior .price-options h3 { font-size: 15px; margin: 0; }
.interior .price-options .price { font-size: 32px; font-variant-numeric: tabular-nums; margin-bottom: 0; }
.interior .price-options .price span { font-size: 12px; line-height: 1.6; }
.interior th, .interior td { padding: 18px; border-color: #d6dfe6; font-size: 14px; }
.interior th { background: #edf2f6; }
.interior .faq-list { gap: 0; }
.interior .faq-list details { border: 0; border-bottom: 1px solid #ced7df; border-radius: 0; background: none; padding: 24px 0; }
.interior .faq-list summary { font-size: 17px; font-weight: 600; }
.interior .faq-list p { line-height: 1.85; }
.interior .contact-card { background: var(--site-paper); border: 0; border-radius: 8px; box-shadow: none; padding: 30px; }
.interior .contact-card h2 { font-size: 24px; overflow-wrap: anywhere; }
.interior .contact-card p { margin-top: 20px; font-size: 15px; }
.interior .stacked-cards { gap: 0; }
.resources-page .feature-grid .mini-card a { color: #11263b; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.resources-page .feature-grid .mini-card a:hover { color: #1757b8; }
.resources-page .mini-card .small { font-size: 11px; margin-top: 18px; letter-spacing: .3px; }
.editorial-page main > .section:first-child { padding-top: 72px; }
.editorial-page main > .section:first-child h1 { font-size: clamp(36px, 4vw, 56px); line-height: 1.08; letter-spacing: -1.8px; font-weight: 620; color: #0b1b33; margin: 0 0 28px; text-wrap: balance; }
.editorial-page time { display: block; font-size: 12px; letter-spacing: .5px; color: #5d687a; padding-bottom: 24px; border-bottom: 1px solid #ced7df; }
.editorial-page table { display: block; overflow-x: auto; max-width: 100%; }
.legal-page .page-hero { padding-block: 60px; }
.legal-page .page-hero h1 { font-size: clamp(35px, 3.7vw, 50px); }
.interior .watch-page { background: var(--site-night); color: #fff; padding-block: 38px 60px; }
.interior .watch-page .container { max-width: 1100px; }
.interior .watch-page h1 { color: #fff; font-size: clamp(28px, 3vw, 42px); font-weight: 600; letter-spacing: -1px; }
.interior .watch-page .eyebrow, .interior .watch-description, .interior .watch-page .demo-status { color: #bdccda; }
.interior .watch-page .demo-heading { display: grid; grid-template-columns: minmax(0, 1fr) 146px; align-items: end; margin-bottom: 28px; }
.interior .watch-page .demo-heading .section-heading { margin-bottom: 0; }
.interior .watch-page .demo-toggle { background: #ffffff0c; color: #fff; border-color: #ffffff35; }
.interior .watch-page a.text-link { color: #bdd4e7; }
.interior .watch-page .demo-video { border: 1px solid #ffffff20; border-radius: 6px; }
@media (max-width: 1100px) and (min-width: 861px) {
  .site-theme .container { padding-inline: 30px; }
  .site-theme header.site nav a { font-size: 11px; padding-inline: 6px; }
  .product-page .product-intro { gap: 36px; }
  .interior .pricing-grid .feature-card { padding: 26px; }
}
@media (max-width: 860px) {
  .site-theme .container { padding-inline: 24px; }
  .site-theme .nav-shell { min-height: 64px; flex-direction: row; align-items: center; padding-block: 0; }
  .site-theme .brand { font-size: 18px; gap: 8px; }
  .site-theme .home-logo { width: 32px; height: 32px; }
  .site-theme header.site .desktop-nav { display: none; }
  .site-theme .home-menu { display: block; }
  .site-theme .home-menu summary { display: flex; align-items: center; gap: 14px; padding: 12px 0 12px 16px; min-height: 44px; cursor: pointer; font-size: 12px; list-style: none; }
  .site-theme .home-menu summary::-webkit-details-marker { display: none; }
  .site-theme .home-menu summary span { font-size: 20px; font-weight: 300; }
  .site-theme .home-menu[open] summary span { transform: rotate(45deg); }
  .site-theme header.site .home-menu nav { position: absolute; top: 64px; left: 0; right: 0; display: grid; gap: 0; padding: 12px 24px 24px; background: #0b1b2c; border-bottom: 1px solid #ffffff25; box-shadow: 0 24px 40px #0004; }
  .site-theme header.site .home-menu nav a { font-size: 14px; padding: 14px 0; }
  .site-theme .footer-grid { grid-template-columns: 1fr; }
  .site-theme footer.site .links { justify-content: flex-start; gap: 8px 20px; }
  .site-theme footer.site .links a { padding-block: 8px; }
  .interior .page-hero { padding-block: 48px; }
  .interior .page-hero h1 { font-size: clamp(36px, 6vw, 48px); letter-spacing: -1.4px; }
  .interior .page-hero .lead { font-size: 15px; margin-top: 22px; }
  .interior .section { padding-block: 56px; }
  .interior .section-heading { margin-bottom: 24px; }
  .interior .feature-grid, .interior .timeline { gap: 0 32px; }
  .product-page .product-intro { grid-template-columns: 1fr; gap: 34px; }
  .product-intro-device { width: 174px; border-radius: 28px; }
  .product-intro-device img { border-radius: 22px; }
  .interior .document-preview { width: 80%; max-width: 360px; margin-block: 12px; }
  .interior .caution-panel, .interior .reform-panel { padding: 28px; }
  .interior .watch-page { padding-block: 28px 44px; }
  .interior .watch-page .demo-heading { grid-template-columns: 1fr; grid-template-rows: auto 48px; gap: 18px; margin-bottom: 22px; }
  .interior .watch-page .demo-toggle { justify-self: start; }
  .interior .watch-page h1 { font-size: 30px; }
}
@media (max-width: 640px) {
  .interior .feature-grid, .interior .timeline { grid-template-columns: 1fr; }
  .interior .feature-card, .interior .mini-card, .interior .timeline-card { padding-block: 26px; }
  .interior .pricing-grid .feature-card { padding: 24px; }
  .interior .contact-card { padding: 24px; }
  .interior:not(.editorial-page) .final-cta { padding-block: 0; }
  .editorial-page .article-install { padding: 28px 24px; }
}
@media (max-width: 400px) {
  .site-theme .container { padding-inline: 20px; }
  .interior .page-hero h1 { font-size: 36px; }
  .interior .store-badges { gap: 2px; }
  .interior .caution-panel, .interior .reform-panel { padding: 24px 20px; }
  .interior .watch-page h1 { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-theme *, .site-theme *::before, .site-theme *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .interior .product-intro-device, .interior .document-preview { transform: none; }
}
