/* Approved design guide v1.0. Opt-in shared layer for migrated pages.
   Homepage remains on its locked reference until a deliberate migration. */
.cs-design { --cs-ink:#0b0d12; --cs-navy:#15172b; --cs-raised:#10131b; --cs-paper:#f5f3ef; --cs-red:#b83229; --cs-red-hover:#9e2a22; --cs-text:#f7f8fa; --cs-muted:#bbc2cc; --cs-slate:#545b66; --cs-line:#303641; --cs-paper-line:#d9dde3; margin:0; background:var(--cs-ink); color:var(--cs-text); font-family:Lexend,Arial,sans-serif; font-size:18px; line-height:1.6; overflow-wrap:break-word; }
.cs-design *, .cs-design *::before, .cs-design *::after { box-sizing:border-box; }
.cs-design a { color:inherit; }
.cs-design a:focus-visible, .cs-design summary:focus-visible, .cs-design input:focus-visible { outline:2px solid var(--cs-text); outline-offset:5px; }
.cs-design .cs-wrap, .cs-design .cs-nav-wrap { width:min(100%,1328px); margin-inline:auto; padding-inline:64px; }
.cs-design .cs-main { background:var(--cs-ink); }
.cs-design .cs-main h1, .cs-design .cs-main h2, .cs-design .cs-main h3, .cs-design .cs-main h4 { font-family:inherit; color:var(--cs-text); text-transform:none; font-weight:600; letter-spacing:-.035em; line-height:1.15; margin:0 0 24px; }
.cs-design .cs-main h1 { font-size:clamp(56px,4.2vw,64px); }
.cs-design .cs-main h2 { font-size:clamp(36px,3vw,42px); max-width:800px; text-wrap:balance; }
.cs-design .cs-main h3 { font-size:26px; }
.cs-design .cs-main h4 { font-size:16px; font-weight:500; letter-spacing:0; line-height:1.5; }
.cs-design .cs-main p { font-size:18px; line-height:1.6; max-width:62ch; margin:0 0 24px; color:var(--cs-muted); }
.cs-design .cs-main p:last-child { margin-bottom:0; }
.cs-design .cs-main .cs-eyebrow { display:block; font-size:13px; line-height:1.6; font-weight:500; letter-spacing:.015em; color:var(--cs-muted); margin:0 0 24px; }
.cs-design .cs-eyebrow::before { content:none; }
.cs-design .cs-section { padding-block:96px; }
.cs-design .cs-section-heading { margin-bottom:48px; }
.cs-design .cs-section-heading h2:last-child { margin-bottom:0; }
.cs-design [id] { scroll-margin-top:32px; }
.cs-design .cs-anchor { display:block; height:0; }
.cs-design .cs-paper { background:var(--cs-paper); color:var(--cs-ink); }
.cs-design .cs-paper p, .cs-design .cs-paper .cs-eyebrow { color:var(--cs-slate); }
.cs-design .cs-paper h2, .cs-design .cs-paper h3 { color:var(--cs-ink); }
.cs-design .cs-paper a:focus-visible { outline-color:var(--cs-red); }

/* Navigation remains in normal document flow. */
.cs-design .cs-site-header { position:relative; z-index:50; border-bottom:1px solid var(--cs-line); background:var(--cs-ink); }
.cs-design .cs-nav-wrap { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-block:16px; }
.cs-design .cs-brand { flex:none; }
.cs-design .cs-brand img { display:block; width:170px; height:44px; object-fit:contain; }
.cs-design .cs-desktop-nav { display:flex; align-items:center; gap:25px; }
.cs-design .cs-site-header a { color:var(--cs-text); font-size:13px; line-height:1.5; text-decoration:none; transition:color .18s,background .18s; }
.cs-design .cs-site-header a:hover, .cs-design .cs-site-header a[aria-current=page] { text-decoration:underline; text-decoration-color:var(--cs-red); text-underline-offset:7px; text-decoration-thickness:2px; }
.cs-design .cs-site-header .cs-support { border-left:1px solid var(--cs-line); padding-left:25px; }
.cs-design .cs-site-header .cs-nav-cta { display:inline-flex; align-items:center; min-height:48px; padding:13px 18px; background:var(--cs-red); border-radius:6px; }
.cs-design .cs-site-header .cs-nav-cta:hover { background:var(--cs-red-hover); text-decoration:none; }
.cs-design .cs-mobile-nav { display:none; }
.cs-design .cs-mobile-nav summary { padding:10px 4px 10px 12px; min-height:44px; cursor:pointer; font-size:14px; list-style:none; }
.cs-design .cs-mobile-nav summary::-webkit-details-marker { display:none; }
.cs-design .cs-mobile-nav summary::after { content:'+'; margin-left:12px; font-size:20px; vertical-align:-1px; }
.cs-design .cs-mobile-nav[open] summary::after { content:'−'; }
.cs-design .cs-mobile-nav nav { position:absolute; top:100%; left:0; right:0; background:var(--cs-navy); padding:20px 24px; border-bottom:1px solid var(--cs-line); display:grid; gap:3px; max-height:calc(100vh - 88px); max-height:calc(100dvh - 88px); overflow-y:auto; overscroll-behavior-y:contain; }
.cs-design .cs-mobile-nav nav a { padding:12px; font-size:16px; }
.cs-design .cs-mobile-nav nav .cs-support { border-left:0; border-top:1px solid var(--cs-line); padding-left:12px; }
.cs-design .cs-skip { position:absolute; top:-100px; left:20px; z-index:100; background:var(--cs-text); color:var(--cs-ink); padding:12px 20px; }
.cs-design .cs-skip:focus { top:10px; }

/* Actions and open comparison rows. */
.cs-design .cs-actions { display:flex; flex-wrap:wrap; gap:24px; align-items:center; margin-top:32px; }
.cs-design .cs-button { display:inline-flex; justify-content:center; align-items:center; min-height:52px; border:1px solid var(--cs-red); border-radius:6px; padding:12px 24px; font-size:15px; line-height:1.5; background:var(--cs-red); color:var(--cs-text); text-decoration:none; transition:background .18s,border-color .18s; }
.cs-design .cs-button:hover, .cs-design .cs-button:focus-visible { background:var(--cs-red-hover); border-color:var(--cs-red-hover); box-shadow:none; }
.cs-design .cs-link { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:15px; line-height:1.5; text-decoration:none; color:var(--cs-text); }
.cs-design .cs-link-label { text-decoration:underline; text-decoration-color:#8b929e; text-underline-offset:6px; transition:text-decoration-color .18s; }
.cs-design .cs-link:hover .cs-link-label { text-decoration-color:currentColor; }
.cs-design .cs-link-icon { flex:none; font-size:19px; line-height:1; transition:transform .18s; }
.cs-design .cs-link:hover .cs-link-icon { transform:translateX(3px); }
.cs-design .cs-paper .cs-link { color:var(--cs-red); }
.cs-design .cs-paper .cs-link-label { text-decoration-color:#b8322970; }
.cs-design .cs-heading-group { display:flex; flex-direction:column; gap:12px; }
.cs-design .cs-heading-group .cs-eyebrow, .cs-design .cs-heading-group h3 { margin:0; }
.cs-design .cs-service-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) 224px; gap:48px; align-items:center; padding-block:32px; border-top:1px solid var(--cs-line); }
.cs-design .cs-service-row>p { font-size:17px; margin:0; }
.cs-design .cs-service-row .cs-link { justify-self:start; font-size:14px; }
.cs-design .cs-service-row:last-child { padding-bottom:0; }

/* FAQs and the shared closing invitation. */
.cs-design .cs-faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:96px; }
.cs-design .cs-faq-grid>div>h2 { max-width:400px; }
.cs-design .cs-faq-grid>div>p:not(.cs-eyebrow) { max-width:37ch; }
.cs-design .cs-faq details { border-top:1px solid var(--cs-line); }
.cs-design .cs-faq details:last-child { border-bottom:1px solid var(--cs-line); }
.cs-design .cs-faq summary { position:relative; cursor:pointer; list-style:none; padding:24px 32px 24px 0; font-size:17px; line-height:1.5; }
.cs-design .cs-faq summary::-webkit-details-marker { display:none; }
.cs-design .cs-faq summary::after { content:'+'; position:absolute; top:24px; right:3px; font-size:24px; line-height:1; }
.cs-design .cs-faq details[open] summary::after { content:'−'; }
.cs-design .cs-faq details p { font-size:16px; padding:8px 20px 25px 0; margin:0; }
.cs-design .cs-closing { background:var(--cs-navy); }
.cs-design .cs-closing-grid { display:grid; grid-template-columns:1fr auto; gap:64px; align-items:center; }
.cs-design .cs-closing h2 { font-size:48px; }
.cs-design .cs-closing-actions { display:flex; flex-direction:column; align-items:center; gap:16px; }
.cs-design .cs-phone { font-size:14px; color:var(--cs-muted); min-height:44px; display:inline-flex; align-items:center; text-decoration:underline; text-underline-offset:5px; }

/* Approved footer composition; form hooks are owned by comans-forms.js. */
.cs-design .cs-footer { background:var(--cs-ink); padding-top:48px; }
.cs-design .cs-footer-grid { display:grid; grid-template-columns:1fr 1.1fr 1.15fr; gap:48px; padding-bottom:40px; }
.cs-design .cs-footer-grid>div, .cs-design .cs-footer-grid>nav { min-width:0; }
.cs-design .cs-footer h2 { font-family:inherit; font-size:14px; line-height:1.5; font-weight:500; color:var(--cs-text); letter-spacing:0; text-transform:none; margin:0 0 24px; }
.cs-design .cs-footer p, .cs-design .cs-footer address { font-size:13px; color:var(--cs-muted); line-height:1.7; font-style:normal; }
.cs-design .cs-footer-company p { margin-block:24px; max-width:31ch; }
.cs-design .cs-footer-company address { margin-bottom:16px; }
.cs-design .cs-footer-brand { display:inline-flex; }
.cs-design .cs-footer-brand img { width:180px; height:48px; object-fit:contain; }
.cs-design .cs-footer-company>a:not(.cs-footer-brand) { display:flex; align-items:center; min-height:36px; font-size:13px; overflow-wrap:anywhere; text-decoration:underline; text-underline-offset:4px; }
.cs-design .cs-footer-nav>div { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; }
.cs-design .cs-footer-nav a { display:flex; align-items:center; min-height:44px; font-size:13px; text-decoration:none; color:var(--cs-muted); }
.cs-design .cs-footer-nav a:hover, .cs-design .cs-footer-nav a[aria-current=page] { color:var(--cs-text); text-decoration:underline; text-underline-offset:4px; }
.cs-design .cs-footer .team-social-bottom { display:flex; gap:0; margin:0 0 8px; width:auto; }
.cs-design .cs-footer .team-social-bottom a { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; }
.cs-design .cs-social-extra { font-size:12px; }
.cs-design .cs-social-extra summary { cursor:pointer; min-height:44px; padding-block:12px; text-decoration:underline; text-underline-offset:4px; }
.cs-design .cs-social-extra>div { display:grid; grid-template-columns:1fr 1fr; padding-bottom:12px; }
.cs-design .cs-social-extra a { display:inline-flex; align-items:center; min-height:44px; text-underline-offset:4px; }
.cs-design .cs-footer .cs-newsletter-label { margin:24px 0 12px; color:var(--cs-text); }
.cs-design .cs-footer .subscribe-form-holder { width:100%; margin:0; }
.cs-design .cs-footer .subscribe-form { position:static; display:flex; flex-direction:row; height:auto; min-height:0; gap:8px; margin:0; }
.cs-design .cs-footer .subscribe-email { width:0; flex:1 1 auto; height:48px; min-height:48px; min-width:0; margin:0; padding:12px; font-family:inherit; font-size:13px; background:transparent; color:var(--cs-text); border:1px solid #747c89; border-radius:6px; }
.cs-design .cs-footer .subscribe-email::placeholder { color:var(--cs-muted); }
.cs-design .cs-footer .subscribe-button { position:static; inset:auto; height:48px; min-height:48px; width:auto; flex:0 0 auto; align-self:flex-start; padding:12px 16px; border:1px solid #747c89; border-radius:6px; background:transparent; color:var(--cs-text); font-family:inherit; font-size:13px; transition:background .18s; }
.cs-design .cs-footer .subscribe-button:hover { background:var(--cs-navy); }
.cs-design .cs-footer .w-form-done, .cs-design .cs-footer .w-form-fail { border-radius:6px; font-size:14px; }
.cs-design .cs-footer .w-form-done { background:var(--cs-navy); color:var(--cs-text); }
.cs-design .cs-footer .w-form-fail { background:#f7e2df; color:#681d18; }
.cs-design .cs-footer .cs-copyright { border-top:1px solid var(--cs-line); padding-block:24px; margin:0; font-size:11px; }

/* Shared illustration primitives for later pages; diagrams remain content-led. */
.cs-design .cs-illustration { --diagram-line:#7d8594; --diagram-muted:var(--cs-muted); --diagram-text:var(--cs-text); --diagram-node:#ffffff04; padding:32px; border:1px solid var(--cs-line); border-radius:10px; color:var(--diagram-text); }
.cs-design .cs-art, .cs-design .cs-diagram-arrow { display:block; fill:none; stroke:var(--diagram-line); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.cs-design .cs-art { width:64px; height:64px; }
.cs-design .cs-art *, .cs-design .cs-diagram-arrow * { vector-effect:non-scaling-stroke; }

@media (max-width:1200px) {
  .cs-design .cs-nav-wrap { padding-inline:40px; }
  .cs-design .cs-desktop-nav { gap:16px; }
  .cs-design .cs-service-row { grid-template-columns:1fr 1fr; gap:0 48px; }
  .cs-design .cs-service-row .cs-heading-group { grid-column:1; grid-row:1 / span 2; }
  .cs-design .cs-service-row>.cs-link { grid-column:2; margin-top:16px; }
  .cs-design .cs-faq-grid { gap:64px; }
  .cs-design .cs-footer-grid { grid-template-columns:.9fr 1fr 1fr; gap:32px; }
  .cs-design .cs-footer .subscribe-form { flex-direction:column; }
  .cs-design .cs-footer .subscribe-email { width:100%; }
}
@media (min-width:1001px) and (max-width:1100px) {
  .cs-design .cs-brand img { width:145px; }
  .cs-design .cs-site-header .cs-support { padding-left:16px; }
}
@media (max-width:1000px) {
  .cs-design .cs-wrap, .cs-design .cs-nav-wrap { padding-inline:40px; }
  .cs-design .cs-desktop-nav { display:none; }
  .cs-design .cs-mobile-nav { display:block; }
  .cs-design .cs-faq-grid { grid-template-columns:1fr; gap:40px; }
  .cs-design .cs-faq-grid>div>h2 { max-width:650px; }
  .cs-design .cs-closing-grid { grid-template-columns:1fr; gap:32px; }
  .cs-design .cs-closing-actions { align-items:flex-start; gap:8px; }
  .cs-design .cs-footer-grid { grid-template-columns:1fr 1fr; gap:40px; }
  .cs-design .cs-footer-connect { grid-column:1/-1; max-width:450px; }
  .cs-design .cs-footer .subscribe-form { flex-direction:row; }
  .cs-design .cs-footer .subscribe-email { width:0; }
}
@media (max-width:600px) {
  .cs-design { font-size:16px; }
  .cs-design .cs-wrap, .cs-design .cs-nav-wrap { padding-inline:24px; }
  .cs-design .cs-nav-wrap { padding-block:12px; }
  .cs-design .cs-main h1 { font-size:clamp(36px,9vw,40px); }
  .cs-design .cs-main h2, .cs-design .cs-closing h2 { font-size:30px; }
  .cs-design .cs-main h3 { font-size:24px; }
  .cs-design .cs-main p { font-size:16px; }
  .cs-design .cs-main .cs-eyebrow { font-size:12px; margin-bottom:16px; }
  .cs-design .cs-section { padding-block:64px; }
  .cs-design .cs-section-heading { margin-bottom:32px; }
  .cs-design .cs-actions { gap:12px 20px; margin-top:24px; }
  .cs-design .cs-button { font-size:14px; padding-inline:20px; }
  .cs-design .cs-service-row { grid-template-columns:1fr; gap:16px; }
  .cs-design .cs-service-row .cs-heading-group, .cs-design .cs-service-row>.cs-link { grid-column:auto; grid-row:auto; margin:0; }
  .cs-design .cs-heading-group .cs-eyebrow, .cs-design .cs-heading-group h3 { margin:0; }
  .cs-design .cs-faq summary { font-size:16px; }
  .cs-design .cs-footer-grid { grid-template-columns:1fr; gap:40px; }
  .cs-design .cs-footer-connect { grid-column:auto; max-width:none; }
  .cs-design .cs-footer-company>a:not(.cs-footer-brand) { min-height:44px; }
  .cs-design .cs-footer .subscribe-form { flex-direction:column; }
  .cs-design .cs-footer .subscribe-email { width:100%; font-size:16px; }
  .cs-design .cs-illustration { padding:24px; }
  .cs-design .cs-art { width:56px; height:56px; }
}
@media (min-width:480px) and (max-width:600px) {
  .cs-design .cs-footer .subscribe-form { flex-direction:row; }
  .cs-design .cs-footer .subscribe-email { width:0; }
}
@media (max-width:360px) {
  .cs-design .cs-wrap, .cs-design .cs-nav-wrap { padding-inline:20px; }
  .cs-design .cs-main h1 { font-size:clamp(32px,9.4vw,34px); }
  .cs-design .cs-illustration { padding:20px; }
}
@media (prefers-reduced-motion:reduce) {
  .cs-design *, .cs-design *::before, .cs-design *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}
