/* ============================================================
   110s Design System - LAYER 3: COMPONENTS
   Built on ds-tokens.css + ds-primitives.css. Additive, unlinked.
   Namespaced .ds-. Grows in verified chunks (B3..Bn).
   ----- CHUNK B3: BUTTONS + CTA -----
   ============================================================ */

/* ---- Button base ---- */
.ds-btn{display:inline-flex;align-items:center;gap:9px;
  font-family:var(--ds-font-display);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-medium);
  letter-spacing:var(--ds-track-snug);text-decoration:none;cursor:pointer;
  padding:14px 24px;border-radius:var(--ds-radius-pill);border:1px solid transparent;
  transition:transform var(--ds-dur-fast) var(--ds-ease),
             box-shadow var(--ds-dur) var(--ds-ease),
             background var(--ds-dur-fast) var(--ds-ease),
             border-color var(--ds-dur-fast) var(--ds-ease);}
.ds-btn i{transition:transform var(--ds-dur-fast) var(--ds-ease);}
.ds-btn:hover i.bi-arrow-right{transform:translateX(4px);}
.ds-btn:focus-visible{outline:2px solid var(--ds-accent);outline-offset:3px;}

/* ---- Button variants ---- */
.ds-btn--accent{background:var(--ds-accent);color:#fff;box-shadow:var(--ds-shadow-accent);}
.ds-btn--accent:hover{transform:translateY(-1px);box-shadow:0 10px 24px -12px rgba(29,78,216,.55);color:#fff;}

.ds-btn--ghost{border-color:var(--ds-line);color:var(--ds-ink);}
.ds-btn--ghost:hover{border-color:var(--ds-ink);transform:translateY(-1px);}

.ds-btn--ghost-light{border-color:var(--ds-line-dark);color:#fff;}
.ds-btn--ghost-light:hover{border-color:rgba(255,255,255,.55);transform:translateY(-2px);color:#fff;}

.ds-btn--dark{background:var(--ds-ink);color:var(--ds-bg);}
.ds-btn--dark:hover{transform:translateY(-2px);opacity:.92;color:var(--ds-bg);}

/* ---- Button sizes ---- */
.ds-btn--lg{padding:16px 30px;font-size:var(--ds-text-base);}
.ds-btn--sm{padding:10px 18px;font-size:var(--ds-text-xs);}

/* ---- Button group ---- */
.ds-btn-group{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}

/* ---- CTA band (final-section conversion block) ---- */
.ds-cta{background:var(--ds-navy);color:#fff;position:relative;overflow:hidden;
  padding:var(--ds-section-y) 0;}
.ds-cta__grid{position:absolute;inset:0;opacity:.5;pointer-events:none;
  background-image:linear-gradient(var(--ds-line-dark) 1px,transparent 1px),
                   linear-gradient(90deg,var(--ds-line-dark) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(ellipse 70% 80% at 50% 0%,#000,transparent 70%);
          mask-image:radial-gradient(ellipse 70% 80% at 50% 0%,#000,transparent 70%);}
.ds-cta__inner{position:relative;z-index:2;text-align:center;}
.ds-cta__title{font-family:var(--ds-font-display);font-weight:var(--ds-weight-semibold);
  letter-spacing:var(--ds-track-tight);line-height:var(--ds-leading-tight);
  font-size:clamp(2.2rem,5vw,4.4rem);max-width:18ch;margin:0 auto 22px;color:#fff;}
.ds-cta__sub{color:var(--ds-muted-dark);font-size:var(--ds-text-lg);max-width:50ch;margin:0 auto 38px;}
.ds-cta__assure{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;
  margin-top:48px;padding-top:30px;border-top:1px solid var(--ds-line-dark);}
.ds-cta__assure span{display:inline-flex;align-items:center;gap:8px;font-size:var(--ds-text-sm);color:var(--ds-muted-dark);}
.ds-cta__assure i{color:var(--ds-success);}

@media(prefers-reduced-motion:reduce){
  .ds-btn{transition:none!important;}
}

/* ----- CHUNK B4: CARD SYSTEM ----- */

/* ---- Card base (the one family all cards inherit) ---- */
.ds-card{display:flex;flex-direction:column;height:100%;
  background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);
  padding:var(--ds-space-5);text-decoration:none;color:var(--ds-ink);
  transition:box-shadow var(--ds-dur) var(--ds-ease),
             transform var(--ds-dur) var(--ds-ease),
             border-color var(--ds-dur) var(--ds-ease);}
.ds-card:hover{border-color:var(--ds-ink);transform:translateY(-2px);box-shadow:var(--ds-shadow-raised);}
.ds-card:focus-visible{outline:2px solid var(--ds-accent);outline-offset:3px;}
.ds-card__title{font-family:var(--ds-font-display);font-size:var(--ds-text-lg);
  font-weight:var(--ds-weight-semibold);letter-spacing:var(--ds-track-snug);margin:0 0 10px;color:var(--ds-ink);}
.ds-card__text{font-size:var(--ds-text-base);color:var(--ds-muted);line-height:var(--ds-leading-body);margin:0 0 22px;flex:1;}
.ds-card__link{font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);letter-spacing:.06em;
  text-transform:uppercase;color:var(--ds-accent);display:inline-flex;gap:7px;align-items:center;}

/* ---- Card icon (service) ---- */
.ds-card__icon{width:44px;height:44px;border-radius:var(--ds-radius-sm);
  display:flex;align-items:center;justify-content:center;
  background:rgba(29,78,216,.08);color:var(--ds-accent);font-size:20px;margin-bottom:20px;
  border:1px solid var(--ds-line);}

/* ---- Service card modifier ---- */
.ds-card--service{}

/* ---- Insight / blog card modifier ---- */
.ds-card--insight .ds-card__meta{font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);
  letter-spacing:.06em;text-transform:uppercase;color:var(--ds-muted);margin-bottom:12px;}

/* ---- Case-study card modifier (image-led) ---- */
.ds-card--case{padding:0;overflow:hidden;}
.ds-card--case .ds-card__media{aspect-ratio:16/10;background:var(--ds-navy);position:relative;overflow:hidden;}
.ds-card--case .ds-card__media img{width:100%;height:100%;object-fit:cover;
  transition:transform var(--ds-dur-slow) var(--ds-ease);}
.ds-card--case:hover .ds-card__media img{transform:scale(1.02);}
.ds-card--case .ds-card__body{padding:var(--ds-space-5);display:flex;flex-direction:column;flex:1;}

/* ---- Testimonial card modifier ---- */
.ds-card--testimonial .ds-card__stars{color:var(--ds-success);letter-spacing:2px;font-size:16px;}
.ds-card--testimonial .ds-card__quote{font-size:var(--ds-text-md);line-height:1.55;color:var(--ds-ink);flex:1;margin:14px 0 0;}
.ds-card--testimonial .ds-card__foot{display:flex;align-items:center;gap:13px;
  margin-top:24px;padding-top:20px;border-top:1px solid var(--ds-line-soft);}
.ds-card--testimonial .ds-card__avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.ds-card--testimonial .ds-card__avatar--ph{display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--ds-accent),var(--ds-accent-2));color:#fff;font-weight:600;font-size:15px;}
.ds-card--testimonial .ds-card__name{font-weight:var(--ds-weight-medium);font-size:var(--ds-text-sm);
  letter-spacing:-0.01em;color:var(--ds-ink);display:block;}
.ds-card--testimonial .ds-card__role{font-size:var(--ds-text-xs);color:var(--ds-muted);}

/* ---- Pricing card modifier ---- */
.ds-card--pricing{border-radius:var(--ds-radius-xl);}
.ds-card--pricing.is-featured{border-color:var(--ds-accent);box-shadow:0 0 0 1px var(--ds-accent);}
.ds-card--pricing .ds-card__price{font-family:var(--ds-font-display);font-weight:var(--ds-weight-semibold);
  font-size:var(--ds-text-2xl);letter-spacing:var(--ds-track-tight);color:var(--ds-ink);}
.ds-card--pricing .ds-card__badge{font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);
  letter-spacing:.1em;text-transform:uppercase;color:var(--ds-accent);}

/* ----- CHUNK B5: SECTION-HEADER + BREADCRUMB ----- */

/* ---- Section header (eyebrow index + title + lead) ---- */
.ds-sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;
  padding-bottom:42px;border-bottom:1px solid var(--ds-line);margin-bottom:58px;}
.ds-sec-head.is-dark{border-bottom-color:var(--ds-line-dark);}
.ds-sec-head__title{font-family:var(--ds-font-display);font-weight:var(--ds-weight-semibold);
  font-size:var(--ds-text-2xl);line-height:1.04;letter-spacing:-0.03em;margin:0;color:var(--ds-ink);}
.ds-sec-head.is-dark .ds-sec-head__title{color:#fff;}
.ds-sec-head__lead{font-size:var(--ds-text-lg);color:var(--ds-muted);font-weight:var(--ds-weight-regular);
  line-height:1.5;max-width:46ch;margin:0;}
.ds-sec-head.is-dark .ds-sec-head__lead{color:var(--ds-muted-dark);}
@media(max-width:768px){
  .ds-sec-head{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:40px;}
}

/* ---- Breadcrumb (matches BreadcrumbList schema) ---- */
.ds-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);letter-spacing:.06em;
  text-transform:uppercase;color:var(--ds-muted);margin-bottom:var(--ds-space-3);list-style:none;padding:0;}
.ds-breadcrumb li{display:inline-flex;align-items:center;gap:8px;}
.ds-breadcrumb li:not(:last-child)::after{content:"/";color:var(--ds-line);}
.ds-breadcrumb a{color:var(--ds-muted);text-decoration:none;transition:color var(--ds-dur-fast) var(--ds-ease);}
.ds-breadcrumb a:hover{color:var(--ds-accent);}
.ds-breadcrumb [aria-current="page"]{color:var(--ds-ink);}

/* ----- CHUNK B6: FAQ ACCORDION (native details/summary, a11y-first) ----- */

.ds-faq{border-top:1px solid var(--ds-line);}
.ds-faq__item{border-bottom:1px solid var(--ds-line);}
.ds-faq__q{display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:24px 0;cursor:pointer;list-style:none;
  font-family:var(--ds-font-display);font-size:var(--ds-text-md);font-weight:var(--ds-weight-medium);
  letter-spacing:var(--ds-track-snug);color:var(--ds-ink);
  transition:color var(--ds-dur-fast) var(--ds-ease);}
.ds-faq__q::-webkit-details-marker{display:none;}
.ds-faq__q:hover{color:var(--ds-accent);}
.ds-faq__q:focus-visible{outline:2px solid var(--ds-accent);outline-offset:3px;border-radius:3px;}
.ds-faq__icon{flex-shrink:0;width:22px;height:22px;position:relative;transition:transform var(--ds-dur) var(--ds-ease);}
.ds-faq__icon::before,.ds-faq__icon::after{content:"";position:absolute;background:var(--ds-accent);
  top:50%;left:50%;transform:translate(-50%,-50%);}
.ds-faq__icon::before{width:14px;height:2px;}
.ds-faq__icon::after{width:2px;height:14px;transition:transform var(--ds-dur) var(--ds-ease);}
.ds-faq__item[open] .ds-faq__icon::after{transform:translate(-50%,-50%) scaleY(0);}
.ds-faq__item[open] .ds-faq__icon{transform:rotate(90deg);}
.ds-faq__a{padding:0 0 26px;max-width:70ch;
  font-size:var(--ds-text-base);color:var(--ds-muted);line-height:var(--ds-leading-body);}

@media(prefers-reduced-motion:reduce){
  .ds-faq__icon,.ds-faq__icon::after{transition:none!important;}
}

/* ----- CHUNK B7: FORM SYSTEM (a11y-first, real labels) ----- */

.ds-field{display:flex;flex-direction:column;gap:8px;margin-bottom:var(--ds-space-3);}
.ds-label{font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);letter-spacing:.08em;
  text-transform:uppercase;color:var(--ds-muted);font-weight:500;}
.ds-label .ds-req{color:var(--ds-accent);margin-left:4px;}

.ds-input,.ds-textarea,.ds-select{
  font-family:var(--ds-font-body);font-size:var(--ds-text-base);color:var(--ds-ink);
  background:var(--ds-bg);border:1px solid var(--ds-line);border-radius:var(--ds-radius-md);
  padding:13px 16px;width:100%;
  transition:border-color var(--ds-dur-fast) var(--ds-ease),box-shadow var(--ds-dur-fast) var(--ds-ease);}
.ds-input::placeholder,.ds-textarea::placeholder{color:var(--ds-muted);opacity:.7;}
.ds-input:hover,.ds-textarea:hover,.ds-select:hover{border-color:var(--ds-muted);}
.ds-input:focus,.ds-textarea:focus,.ds-select:focus{outline:none;
  border-color:var(--ds-accent);box-shadow:0 0 0 3px rgba(29,78,216,.15);}
.ds-textarea{min-height:140px;resize:vertical;line-height:1.5;}
.ds-select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235E6B7E' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;padding-right:40px;}

/* ---- Validation states ---- */
.ds-field.is-error .ds-input,.ds-field.is-error .ds-textarea,.ds-field.is-error .ds-select{
  border-color:#E5484D;box-shadow:0 0 0 3px rgba(229,72,77,.12);}
.ds-field.is-error .ds-label{color:#E5484D;}
.ds-error-msg{font-size:var(--ds-text-xs);color:#E5484D;}
.ds-help{font-size:var(--ds-text-xs);color:var(--ds-muted);}

/* ---- Checkbox / radio ---- */
.ds-check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:var(--ds-text-sm);color:var(--ds-ink);}
.ds-check input{width:18px;height:18px;accent-color:var(--ds-accent);margin-top:2px;flex-shrink:0;}

/* ---- Form layout helper ---- */
.ds-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--ds-space-3);}
@media(max-width:600px){.ds-form-grid{grid-template-columns:1fr;}}

/* ----- CHUNK B8: CASE-STUDY SYSTEM (the proof engine) ----- */

/* ---- Case hero (client + headline result) ---- */
.ds-case-hero{padding:var(--ds-section-y) 0 var(--ds-space-8);}
.ds-case-hero__client{font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);letter-spacing:.12em;
  text-transform:uppercase;color:var(--ds-accent);margin-bottom:18px;}
.ds-case-hero__title{font-family:var(--ds-font-display);font-weight:var(--ds-weight-semibold);
  font-size:var(--ds-text-3xl);line-height:var(--ds-leading-tight);letter-spacing:var(--ds-track-tight);
  margin:0 0 var(--ds-space-3);color:var(--ds-ink);max-width:20ch;}
.ds-case-hero__sub{font-size:var(--ds-text-lg);color:var(--ds-muted);max-width:60ch;line-height:1.5;}

/* ---- Case media (full-bleed feature) ---- */
.ds-case-media{aspect-ratio:16/9;background:var(--ds-navy);border-radius:var(--ds-radius-xl);
  overflow:hidden;position:relative;}
.ds-case-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}

/* ---- Case body modules (challenge/strategy/implementation/technology) ---- */
.ds-case-module{padding:var(--ds-space-8) 0;border-bottom:1px solid var(--ds-line);}
.ds-case-module:last-child{border-bottom:none;}
.ds-case-module__label{font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);letter-spacing:.12em;
  text-transform:uppercase;color:var(--ds-muted);margin-bottom:var(--ds-space-2);}
.ds-case-module__title{font-family:var(--ds-font-display);font-size:var(--ds-text-xl);
  font-weight:var(--ds-weight-medium);letter-spacing:var(--ds-track-snug);margin:0 0 var(--ds-space-2);color:var(--ds-ink);}
.ds-case-module__body{font-size:var(--ds-text-base);color:var(--ds-muted);line-height:var(--ds-leading-body);max-width:68ch;}

/* ---- Technology stack chips ---- */
.ds-tech-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--ds-space-2);}
.ds-tech-chip{font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);letter-spacing:.04em;
  color:var(--ds-ink);background:var(--ds-surface);border:1px solid var(--ds-line);
  border-radius:var(--ds-radius-sm);padding:7px 12px;}

/* ---- Metric ribbon (THE loudest proof element) ---- */
.ds-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;
  border:1px solid var(--ds-line);border-radius:var(--ds-radius-xl);overflow:hidden;}
.ds-metric{padding:var(--ds-space-4) var(--ds-space-3);border-right:1px solid var(--ds-line);}
.ds-metric:last-child{border-right:none;}
.ds-metric__value{font-family:var(--ds-font-display);font-weight:var(--ds-weight-semibold);
  font-size:var(--ds-text-2xl);letter-spacing:var(--ds-track-tight);line-height:1;color:var(--ds-success);}
.ds-metric__label{font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);letter-spacing:.08em;
  text-transform:uppercase;color:var(--ds-muted);margin-top:10px;}
@media(max-width:560px){
  .ds-metric{border-right:none;border-bottom:1px solid var(--ds-line);}
  .ds-metric:last-child{border-bottom:none;}
}

/* ---- Case testimonial (pull-quote) ---- */
.ds-case-quote{padding:var(--ds-space-8) 0;}
.ds-case-quote__text{font-family:var(--ds-font-display);font-weight:var(--ds-weight-regular);
  font-size:var(--ds-text-xl);line-height:1.4;letter-spacing:var(--ds-track-snug);color:var(--ds-ink);
  max-width:46ch;margin:0 0 var(--ds-space-3);}
.ds-case-quote__cite{display:flex;align-items:center;gap:13px;}
.ds-case-quote__name{font-weight:var(--ds-weight-medium);font-size:var(--ds-text-sm);color:var(--ds-ink);display:block;}
.ds-case-quote__role{font-size:var(--ds-text-xs);color:var(--ds-muted);}

.ds-accent-word{color:var(--ds-accent);}

/* Contact page */
.ds-contact-info{display:flex;flex-direction:column;gap:var(--ds-space-4);}
.ds-contact-block{display:flex;flex-direction:column;gap:4px;}
.ds-contact-link{font-family:var(--ds-font-display);font-size:var(--ds-text-lg);color:var(--ds-accent);text-decoration:none;}
.ds-contact-link:hover{text-decoration:underline;}
.ds-form-card{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-xl);padding:var(--ds-space-6);}
.ds-form-success{text-align:center;padding:var(--ds-space-6) 0;}
.ds-success-icon{margin-bottom:var(--ds-space-3);}

/* Process (dark register) */
.ds-breadcrumb--on-dark a{color:rgba(255,255,255,.6);}
.ds-breadcrumb--on-dark li[aria-current]{color:#fff;}
.ds-process{display:flex;flex-direction:column;border-top:1px solid rgba(255,255,255,.12);margin-top:var(--ds-space-6);}
.ds-process__step{display:grid;grid-template-columns:90px 1fr;gap:var(--ds-space-4);padding:var(--ds-space-6) 0;border-bottom:1px solid rgba(255,255,255,.12);}
.ds-process__num{font-family:var(--ds-font-mono);font-size:var(--ds-text-2xl);font-weight:var(--ds-weight-semibold);color:var(--ds-accent-2);line-height:1;}
.ds-process__title{font-family:var(--ds-font-display);font-size:var(--ds-text-xl);font-weight:var(--ds-weight-medium);color:#fff;margin:0 0 var(--ds-space-2);letter-spacing:var(--ds-track-snug);}
.ds-process__desc{font-size:var(--ds-text-base);color:rgba(255,255,255,.7);line-height:var(--ds-leading-body);max-width:68ch;}
@media(max-width:560px){.ds-process__step{grid-template-columns:60px 1fr;gap:var(--ds-space-3);}}

/* Blog */
.ds-card__meta{display:flex;align-items:center;gap:7px;font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);color:var(--ds-muted);margin-bottom:var(--ds-space-2);}
.ds-pagination{display:flex;gap:8px;justify-content:center;margin-top:var(--ds-space-8);flex-wrap:wrap;}
.ds-page-link{padding:8px 14px;border:1px solid var(--ds-line);border-radius:var(--ds-radius-sm);color:var(--ds-ink);text-decoration:none;font-size:var(--ds-text-sm);}
.ds-page-link.is-active{background:var(--ds-accent);color:#fff;border-color:var(--ds-accent);}
.ds-page-link:hover{border-color:var(--ds-accent);}
.ds-reading-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--ds-accent);z-index:1000;transition:width .1s;}
.ds-post{max-width:760px;margin:0 auto;}
.ds-post__title{font-family:var(--ds-font-display);font-size:var(--ds-text-3xl);font-weight:var(--ds-weight-semibold);letter-spacing:var(--ds-track-tight);line-height:var(--ds-leading-tight);color:var(--ds-ink);margin:0 0 var(--ds-space-3);}
.ds-post__meta{display:flex;align-items:center;gap:10px;font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);color:var(--ds-muted);margin-bottom:var(--ds-space-5);}
.ds-post__hero{border-radius:var(--ds-radius-xl);overflow:hidden;margin-bottom:var(--ds-space-6);}
.ds-post__hero img{width:100%;height:auto;display:block;}
.ds-prose{font-size:var(--ds-text-lg);line-height:var(--ds-leading-relaxed);color:var(--ds-ink);}
.ds-prose h2{font-family:var(--ds-font-display);font-size:var(--ds-text-2xl);margin:var(--ds-space-6) 0 var(--ds-space-3);}
.ds-prose h3{font-family:var(--ds-font-display);font-size:var(--ds-text-xl);margin:var(--ds-space-5) 0 var(--ds-space-2);}
.ds-prose p{margin:0 0 var(--ds-space-4);}
.ds-prose ul,.ds-prose ol{margin:0 0 var(--ds-space-4);padding-left:1.4em;}
.ds-prose li{margin-bottom:var(--ds-space-2);}
.ds-prose a{color:var(--ds-accent);}
.ds-prose img{max-width:100%;height:auto;border-radius:var(--ds-radius-lg);margin:var(--ds-space-4) 0;}

/* Package detail */
.ds-pkg-price{display:inline-block;font-family:var(--ds-font-mono);font-size:var(--ds-text-xl);font-weight:var(--ds-weight-semibold);color:var(--ds-accent);background:rgba(29,78,216,.08);border:1px solid var(--ds-line);border-radius:var(--ds-radius-pill);padding:8px 20px;margin-top:var(--ds-space-4);}
.ds-check-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--ds-space-2);}
.ds-check-list li{display:flex;align-items:flex-start;gap:10px;color:var(--ds-ink);font-size:var(--ds-text-base);line-height:1.5;}
.ds-check-list li i{color:var(--ds-accent);flex-shrink:0;margin-top:3px;}
.ds-feature-groups{display:flex;flex-direction:column;gap:var(--ds-space-6);}
.ds-feature-group__title{font-family:var(--ds-font-display);font-size:var(--ds-text-lg);font-weight:var(--ds-weight-medium);color:var(--ds-ink);margin:0 0 var(--ds-space-3);padding-bottom:var(--ds-space-2);border-bottom:1px solid var(--ds-line);}

/* ===== Footer (consultancy report, navy) ===== */
.ds-footer{background:var(--ds-navy);color:rgba(255,255,255,.7);padding:var(--ds-space-8) 0 var(--ds-space-5);margin-top:var(--ds-space-8);}
.ds-footer__cta{text-align:center;padding-bottom:var(--ds-space-6);}
.ds-footer__cta-title{font-family:var(--ds-font-display);font-size:var(--ds-text-2xl);font-weight:var(--ds-weight-semibold);letter-spacing:var(--ds-track-tight);color:#fff;margin:0 0 var(--ds-space-4);}
.ds-footer__metrics{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55);padding:var(--ds-space-5) 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);}
.ds-footer__dot{color:rgba(255,255,255,.3);}
@media (max-width:680px){.ds-footer__metrics{flex-direction:column;gap:8px;}.ds-footer__metrics .ds-footer__dot{display:none;}}
.ds-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.3fr;gap:var(--ds-space-6);padding:var(--ds-space-7) 0;}
.ds-footer__brand{font-family:var(--ds-font-display);font-size:var(--ds-text-xl);font-weight:var(--ds-weight-bold);color:#fff;}
.ds-footer__brand .brand-accent{color:var(--ds-accent-2);}
.ds-footer__tagline{font-size:var(--ds-text-sm);color:rgba(255,255,255,.55);margin:var(--ds-space-2) 0 var(--ds-space-3);max-width:30ch;line-height:1.5;}
.ds-footer__social{display:flex;gap:14px;}
.ds-footer__social a{color:rgba(255,255,255,.6);font-size:1.1rem;}
.ds-footer__social a:hover{color:#fff;}
.ds-footer__label{font-family:var(--ds-font-mono);font-size:var(--ds-text-xs);letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45);margin:0 0 var(--ds-space-3);font-weight:var(--ds-weight-medium);}
.ds-footer__col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.ds-footer__col a{color:rgba(255,255,255,.75);text-decoration:none;font-size:var(--ds-text-sm);}
.ds-footer__col a:hover{color:#fff;}
.ds-footer__col li{font-size:var(--ds-text-sm);color:rgba(255,255,255,.6);}
.ds-footer__bottom{padding-top:var(--ds-space-5);border-top:1px solid rgba(255,255,255,.1);text-align:center;}
.ds-footer__bottom p{margin:0;font-size:var(--ds-text-xs);color:rgba(255,255,255,.4);font-family:var(--ds-font-mono);}
@media(max-width:880px){.ds-footer__grid{grid-template-columns:1fr 1fr;gap:var(--ds-space-5);}.ds-footer__brand-col{grid-column:1/-1;}}
@media(max-width:480px){.ds-footer__grid{grid-template-columns:1fr;}}
