/* ==========================================================================
   Homepage
   ========================================================================== */
.section-mist { background: var(--mist); }
.section-ink { background: var(--grad-ink); color: #cdd5f7; overflow: clip; isolation: isolate; }
.section-ink h2, .section-ink h3 { color: #fff; }
.section-ink .section-head p { color: #cdd5f7; }
.lead { font-size: var(--fs-lead); }
.split-title { font-size: var(--fs-h2); max-width: 20ch; }
.meridian-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: url("../images/backgrounds/meridian-dark.svg") right -12% top -10% / min(980px, 110vw) auto no-repeat; opacity: .7; }
.meridian-bg--left { background-position: left -18% bottom -30%; }

.check-list { display: grid; gap: .6rem; }
.check-list li { display: flex; align-items: flex-start; gap: .65rem; font-size: .96rem; }
.check-list .icon { margin-top: .22rem; color: var(--cyan-700); }
.check-list--light .icon { color: var(--cyan-400); }
.check-list--light li { color: #e3e8ff; }

/* ---------- Hero ---------- */
.hero { position: relative; isolation: isolate; overflow: clip; padding-block: clamp(2rem, 4vw, 3.5rem) clamp(3rem, 6vw, 5.5rem); }
.hero-bg { position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(55% 55% at 76% 40%, rgba(0, 168, 232, .13), transparent 72%),
    radial-gradient(40% 45% at 6% 0%, rgba(40, 48, 144, .08), transparent 70%),
    url("../images/backgrounds/meridian-light.svg") right -10% top 46% / min(760px, 62vw) auto no-repeat; }
.hero-grid { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 992px) { .hero-grid { grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr); gap: 2rem; } }

.hero-eyebrow { display: inline-flex; align-items: center; gap: .7rem; padding: .35rem 1rem .35rem .4rem; border: 1px solid var(--line); border-radius: var(--r-pill); background: #fff; box-shadow: var(--sh-1);
  font: 700 .72rem/1.2 var(--font-body); letter-spacing: .09em; text-transform: uppercase; color: var(--indigo); }
.hero-eyebrow-route { display: inline-flex; align-items: center; gap: .15rem; height: 1.75rem; padding: 0 .55rem 0 .3rem; border-radius: var(--r-pill); background: var(--grad-brand); color: #fff; }
.hero-eyebrow-route i { width: .9rem; height: 2px; border-radius: 2px; background: currentColor; opacity: .7; }
.hero-eyebrow-route .icon { transform: rotate(45deg); }

.hero-copy { container-type: inline-size; }
.hero-title { margin-top: 1.5rem; font-size: clamp(2rem, 9.4cqw, 4rem); line-height: 1.04; letter-spacing: -.035em; font-weight: 700; }
.hero-title .line { display: block; overflow: hidden; padding-bottom: .1em; margin-bottom: -.1em; }
.hero-title .line > span { display: inline-block; transform: translateY(110%); animation: line-rise .95s var(--ease) forwards; }
.hero-title .line:nth-child(2) > span { animation-delay: .1s; }
.hero-title .line:nth-child(3) > span { animation-delay: .2s; }
@keyframes line-rise { to { transform: none; } }
.hero-lead { margin-top: 1.6rem; max-width: 36rem; font-size: var(--fs-lead); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2.1rem; }
.hero-facts { display: flex; flex-wrap: wrap; gap: .9rem 1.25rem; margin-top: 2.6rem; padding-top: 1.6rem; border-top: 1px solid var(--line); font-size: .8125rem; color: var(--muted); }
.hero-facts li { display: flex; align-items: center; gap: .6rem; }
.hero-facts .icon { color: var(--indigo); }
.hero-facts strong { color: var(--ink); font-weight: 700; }

.hero-stage { position: relative; container-type: inline-size; width: 100%; max-width: 640px; justify-self: end; aspect-ratio: 640 / 600; }
.stage-art { width: 100%; height: 100%; overflow: visible; }
.hero-globe { animation: bob 9s ease-in-out infinite; }
.float { position: absolute; animation: pop .9s var(--ease) both, bob 7s ease-in-out infinite; animation-delay: calc(.55s + var(--d, 0s)), calc(1.7s + var(--d, 0s)); }
@keyframes pop { from { opacity: 0; translate: 0 22px; scale: .96; } to { opacity: 1; translate: 0 0; scale: 1; } }
@keyframes bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }

.stage-ticket { --d: .1s; left: -3cqw; bottom: 7cqw; width: 60cqw; font-size: max(10px, 1.95cqw);
  filter: drop-shadow(0 2.4cqw 3cqw rgba(40, 48, 144, .30)) drop-shadow(0 .4cqw .8cqw rgba(40, 48, 144, .12)); }
.ticket { display: grid; grid-template-columns: minmax(0, 1fr) 7.2em; border-radius: 1.5em; background: #fff;
  -webkit-mask: radial-gradient(circle .85em at calc(100% - 7.2em) 0, #0000 96%, #000) top / 100% 51% no-repeat, radial-gradient(circle .85em at calc(100% - 7.2em) 100%, #0000 96%, #000) bottom / 100% 51% no-repeat;
          mask: radial-gradient(circle .85em at calc(100% - 7.2em) 0, #0000 96%, #000) top / 100% 51% no-repeat, radial-gradient(circle .85em at calc(100% - 7.2em) 100%, #0000 96%, #000) bottom / 100% 51% no-repeat; }
.ticket-main { padding: 1.3em 1.4em 1.25em; }
.tk-head { display: flex; align-items: center; justify-content: space-between; gap: .6em; }
.tk-tag { padding: .3em .8em; border-radius: 99px; background: var(--sky); color: var(--indigo); font-weight: 700; font-size: .85em; }
.tk-class { font-size: .85em; font-weight: 600; color: var(--muted); }
.tk-route { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .9em; margin-top: 1.1em; }
.tk-route b { display: block; font: 700 2.1em/1 var(--font-display); letter-spacing: -.03em; color: var(--ink); }
.tk-route small { display: block; margin-top: .35em; font-size: .85em; color: var(--muted); font-weight: 600; }
.tk-to { text-align: right; }
.tk-path { display: flex; align-items: center; gap: .35em; color: var(--indigo); }
.tk-path i { flex: 1; height: 2px; background: repeating-linear-gradient(90deg, var(--cyan) 0 4px, transparent 4px 9px); }
.tk-path .icon { width: 1.7em; height: 1.7em; transform: rotate(45deg); }
.tk-meta { display: grid; grid-template-columns: repeat(3, auto); justify-content: space-between; gap: .6em; margin-top: 1.2em; padding-top: 1.1em; border-top: 1px dashed #d4dbef; }
.tk-meta small { display: block; font-size: .8em; color: var(--muted); font-weight: 600; }
.tk-meta b { display: block; margin-top: .2em; font-size: 1.1em; color: var(--ink); font-weight: 700; }
.tk-cta { margin-top: 1.1em; padding: .85em 1em; border-radius: .85em; text-align: center; font-weight: 700; color: #fff; background: var(--grad-brand); box-shadow: 0 .7em 1.4em -.6em rgba(40, 48, 144, .6); }
.ticket-stub { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .7em; padding: 1.2em .9em; border-left: 2px dashed #cfd7ee; }
.tk-code { width: 100%; height: 6.2em; border-radius: 3px; background: repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 4px, var(--ink) 4px 5px, transparent 5px 8px, var(--ink) 8px 11px, transparent 11px 13px); }
.ticket-stub small { font-size: .78em; font-weight: 700; letter-spacing: .06em; color: var(--muted); }

.stage-dash { --d: .35s; right: -5cqw; top: 1cqw; width: 41cqw; font-size: max(9px, 1.7cqw); animation-name: pop, bob; }
.dash { padding: 1.15em 1.2em 1.25em; border-radius: 1.4em; background: #fff; border: 1px solid var(--line); box-shadow: var(--sh-2); }
.dash-head { display: flex; align-items: center; justify-content: space-between; font-size: 1.05em; color: var(--ink); }
.dash-live { padding: .2em .7em; border-radius: 99px; background: var(--ok-bg); color: var(--ok); font-size: .85em; font-weight: 700; }
.dash-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: .8em; margin-top: 1em; }
.dash-kpis small { display: block; font-size: .85em; color: var(--muted); font-weight: 600; }
.dash-kpis b { display: block; margin-top: .15em; font: 700 1.8em/1.1 var(--font-display); letter-spacing: -.03em; color: var(--ink); }
.dash-bars { display: flex; align-items: flex-end; gap: .45em; height: 5.2em; margin-top: 1em; }
.dash-bars i { flex: 1; height: var(--h); border-radius: .4em; background: linear-gradient(180deg, var(--cyan-400), var(--indigo)); transform-origin: bottom; animation: grow 1s var(--ease) both; animation-delay: 1.1s; }
.dash-bars i:nth-child(even) { animation-delay: 1.2s; }
@keyframes grow { from { transform: scaleY(.15); opacity: 0; } to { transform: none; opacity: 1; } }

.stage-chip { display: flex; align-items: center; gap: .65em; padding: .7em 1.1em .7em .85em; border-radius: 99px; background: #fff; border: 1px solid var(--line); box-shadow: var(--sh-2); font: 700 max(10px, 1.9cqw)/1 var(--font-body); color: var(--ink); white-space: nowrap; }
.chip-api { --d: .6s; left: 1cqw; top: 22cqw; }
.chip-done { --d: .85s; right: 1cqw; bottom: 28cqw; }
.chip-dots { display: inline-flex; gap: .25em; }
.chip-dots i { width: .6em; height: .6em; border-radius: 50%; background: var(--cyan); animation: blink 1.8s ease-in-out infinite; }
.chip-dots i:nth-child(2) { animation-delay: .25s; background: var(--indigo); } .chip-dots i:nth-child(3) { animation-delay: .5s; }
@keyframes blink { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
.chip-check { display: grid; place-items: center; width: 1.7em; height: 1.7em; border-radius: 50%; background: var(--ok); color: #fff; }

@media (max-width: 991.98px) { .hero-stage { justify-self: center; max-width: 560px; } }
@media (max-width: 599.98px) {
  .stage-dash { display: none; }
  .stage-ticket { left: 0; width: 82cqw; bottom: 4cqw; font-size: max(10px, 2.9cqw); }
  .chip-api { left: 0; top: 12cqw; font-size: max(10px, 2.6cqw); }
  .chip-done { right: 0; bottom: 38cqw; font-size: max(10px, 2.6cqw); }
}

/* ---------- Solutions ---------- */
.solution-feature-grid { display: grid; gap: 1.25rem; margin-top: 3rem; }
@media (min-width: 900px) { .solution-feature-grid { grid-template-columns: repeat(3, 1fr); } }
.solution-card { position: relative; display: flex; flex-direction: column; gap: .9rem; padding: 2rem; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--sh-1); transition: transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease), border-color var(--t-fast); }
.solution-card:hover { transform: translateY(-4px); box-shadow: var(--sh-2); border-color: #c5cdea; }
.solution-card:focus-within { border-color: var(--cyan); }
.solution-card .tile { width: 3.25rem; height: 3.25rem; border-radius: 16px; margin-bottom: .35rem; }
.solution-card h3 { font-size: 1.3rem; }
.solution-card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.solution-card h3 a:focus-visible { outline-offset: 6px; }
.solution-card .check-list { margin-block: .4rem .6rem; }
.solution-card .text-link { margin-top: auto; }
.solution-list { display: grid; gap: 1px; margin-top: 1.25rem; background: var(--line); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
@media (min-width: 800px) { .solution-list { grid-template-columns: 1fr 1fr; } }
.solution-row { display: flex; align-items: center; gap: 1rem; padding: 1.2rem 1.5rem; background: #fff; transition: background var(--t-fast); }
.solution-row:hover { background: var(--sky); }
.solution-row .tile { width: 2.75rem; height: 2.75rem; border-radius: 13px; }
.solution-row-text strong { display: block; color: var(--ink); font-weight: 700; }
.solution-row-text small { display: block; margin-top: .1rem; color: var(--muted); font-size: .875rem; line-height: 1.45; }
.solution-row-arrow { margin-left: auto; color: var(--muted); transition: transform var(--t-med) var(--ease), color var(--t-fast); }
.solution-row:hover .solution-row-arrow { transform: translate(3px, -3px); color: var(--indigo); }
.solution-more { margin-top: 1.75rem; text-align: right; }

/* ---------- Business models ---------- */
.models-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2.5rem; }
.models-tab { padding: .7rem 1.3rem; border: 1px solid rgba(255, 255, 255, .2); border-radius: var(--r-pill); font-weight: 650; font-size: .95rem; color: #d6dcfa; transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast); }
.models-tab:hover { border-color: rgba(255, 255, 255, .55); color: #fff; }
.models-tab[aria-selected="true"] { background: #fff; border-color: #fff; color: var(--indigo); }
.models-panel { display: grid; gap: 2.5rem; align-items: center; margin-top: 1.5rem; padding: clamp(1.5rem, 3.4vw, 3.25rem); border-radius: var(--r-xl); background: rgba(255, 255, 255, .055); border: 1px solid rgba(255, 255, 255, .12); }
.models-panel[hidden] { display: none; }
.models-panel:not([hidden]) { animation: panel-in .55s var(--ease); }
@keyframes panel-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (min-width: 900px) { .models-panel { grid-template-columns: .85fr 1.15fr; } }
.models-copy h3 { font-size: clamp(1.5rem, 1.1rem + 1.3vw, 2.15rem); }
.models-copy > p { margin-top: 1rem; color: #cdd5f7; }
.models-copy .check-list { margin: 1.5rem 0 2rem; }
.models-art { margin: 0; position: relative; }
.models-art::before { content: ""; position: absolute; inset: -10% -6%; z-index: 0; background: radial-gradient(55% 55% at 50% 45%, rgba(0, 168, 232, .38), transparent 72%); }
.models-svg { position: relative; z-index: 1; width: 100%; max-width: 560px; margin-inline: auto; filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .35)); }

/* ---------- API ---------- */
.api-grid { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 992px) { .api-grid { grid-template-columns: 1fr 1fr; gap: 4rem; } }
.api-copy h2 { font-size: var(--fs-h2); max-width: 18ch; }
.api-copy .lead { margin-top: 1.2rem; max-width: 34rem; }
.api-points { display: grid; gap: 1.4rem; margin: 2.2rem 0; }
.api-points li { display: flex; gap: 1rem; }
.api-points h3 { font-size: 1.05rem; }
.api-points p { margin-top: .2rem; font-size: .95rem; }
.api-art { position: relative; }
.api-svg { width: 100%; max-width: 620px; margin-inline: auto; }
.api-svg .flow { animation: dash 1.1s linear infinite; }
@keyframes dash { to { stroke-dashoffset: -12; } }

/* ---------- Mobile ---------- */
.mobile-grid { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 992px) { .mobile-grid { grid-template-columns: 1.05fr .95fr; gap: 4rem; } }
.mobile-svg { width: 100%; max-width: 600px; margin-inline: auto; }
.mobile-copy h2 { font-size: var(--fs-h2); max-width: 17ch; }
.mobile-copy .lead { margin-top: 1.2rem; }
.mobile-copy .check-list { margin: 1.75rem 0 2.2rem; }

/* ---------- Why ---------- */
.why-grid { display: grid; gap: 3rem; align-items: start; }
@media (min-width: 992px) { .why-grid { grid-template-columns: .8fr 1.2fr; gap: 5rem; } .why-intro { position: sticky; top: calc(var(--header-h) + 2rem); } }
.why-intro h2 { font-size: var(--fs-h2); }
.why-intro .lead { margin: 1.2rem 0 2rem; }
.why-list { display: grid; }
@media (min-width: 700px) { .why-list { grid-template-columns: 1fr 1fr; column-gap: 3rem; } }
.why-list li { display: flex; gap: 1.1rem; padding: 1.7rem 0; border-top: 1px solid var(--line); }
.why-ico { display: grid; place-items: center; flex: none; width: 3rem; height: 3rem; border-radius: 50%; background: var(--sky); color: var(--indigo); }
.why-list h3 { font-size: 1.1rem; }
.why-list p { margin-top: .4rem; font-size: .95rem; }

/* ---------- Process: a flight route ---------- */
.process { background: linear-gradient(135deg, #1c2370 0%, #283090 52%, #1d5bb5 100%); color: #d0d8ff; overflow: clip; isolation: isolate; }
.process h2, .process h3 { color: #fff; }
.process .section-head p { color: #d0d8ff; }
.route { position: relative; display: grid; gap: 2.25rem; margin-top: 3.5rem; }
.route-track { position: absolute; left: 2rem; top: 2rem; bottom: 2rem; width: 3px; border-radius: 3px; background: repeating-linear-gradient(180deg, rgba(255, 255, 255, .38) 0 8px, transparent 8px 16px); margin-left: -1.5px; }
.route-fill { position: absolute; inset: 0 0 auto 0; height: 0; border-radius: 3px; background: linear-gradient(180deg, var(--cyan-400), #fff); transition: height 2.6s var(--ease); }
.route-plane { position: absolute; left: 50%; top: 0; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: #fff; color: var(--indigo); box-shadow: 0 8px 20px rgba(0, 0, 0, .3); translate: -50% -50%; transition: top 2.6s var(--ease); }
.route-plane .icon { transform: rotate(135deg); }
.is-in .route-fill { height: 100%; }
.is-in .route-plane { top: 100%; opacity: 0; transition: top 2.6s var(--ease), opacity .5s ease 2.3s; }
.route-stop { position: relative; display: grid; grid-template-columns: 4rem 1fr; column-gap: 1.25rem; align-items: start; align-content: start; }
.route-node { grid-row: span 3; display: grid; place-items: center; width: 4rem; height: 4rem; border-radius: 50%; background: #2b3499; border: 1.5px solid rgba(255, 255, 255, .4); color: #fff; z-index: 1; transition: background .5s, color .5s, border-color .5s, box-shadow .5s; transition-delay: calc(var(--i) * .5s); }
.is-in .route-node { background: #fff; color: var(--indigo); border-color: #fff; box-shadow: 0 0 0 6px rgba(255, 255, 255, .14); }
.route-count { font-size: .8125rem; font-weight: 600; color: #a9bbff; }
.route-stop h3 { font-size: 1.25rem; margin-top: .1rem; }
.route-stop p { margin-top: .35rem; font-size: .95rem; max-width: 30ch; }
@media (min-width: 900px) {
  .route { grid-template-columns: repeat(5, 1fr); gap: 1.5rem; }
  .route-track { left: 10%; right: 10%; top: 2rem; bottom: auto; width: auto; height: 3px; margin: -1.5px 0 0; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .38) 0 8px, transparent 8px 16px); }
  .route-fill { inset: 0 auto 0 0; width: 0; height: 100%; background: linear-gradient(90deg, var(--cyan-400), #fff); transition: width 2.6s var(--ease); }
  .route-plane { left: 0; top: 50%; transition: left 2.6s var(--ease); }
  .route-plane .icon { transform: rotate(45deg); }
  .is-in .route-fill { width: 100%; height: 100%; } .is-in .route-plane { left: 100%; top: 50%; transition: left 2.6s var(--ease), opacity .5s ease 2.3s; }
  .route-stop { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .route-node { grid-row: auto; margin-bottom: 1.1rem; }
}

/* ---------- Portfolio ---------- */
.project-grid { display: grid; gap: 1.5rem; margin-top: 3rem; }
@media (min-width: 900px) { .project-grid { grid-template-columns: 1fr 1fr; } }
.project-card { display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--sh-1); transition: transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease); }
.project-card:hover { transform: translateY(-4px); box-shadow: var(--sh-2); }
.project-media { display: block; aspect-ratio: 16 / 11; padding: 1.75rem 1.75rem 0; overflow: hidden; }
.project-card--b2b .project-media { background: linear-gradient(145deg, #dde4ff, #e8f6ff); }
.project-card--b2c .project-media { background: linear-gradient(145deg, #d3f0fd, #e7eaff); }
.project-svg { width: 100%; filter: drop-shadow(0 18px 28px rgba(40, 48, 144, .28)); transition: transform var(--t-med) var(--ease); }
.project-card:hover .project-svg { transform: translateY(-6px); }
.project-body { display: flex; flex-direction: column; align-items: flex-start; gap: .9rem; padding: 1.75rem 2rem 2rem; flex: 1; }
.project-body h3 { font-size: 1.5rem; }
.project-body .text-link { margin-top: auto; }
.pill--concept { background: var(--sky); color: var(--indigo-700); }

/* ---------- Technologies ---------- */
.tech-grid { display: grid; gap: 3rem; align-items: start; }
@media (min-width: 992px) { .tech-grid { grid-template-columns: .8fr 1.2fr; gap: 5rem; } .tech-intro { position: sticky; top: calc(var(--header-h) + 2rem); } }
.tech-intro h2 { font-size: var(--fs-h2); }
.tech-intro .lead { margin: 1.2rem 0 1.75rem; }
.tech-rows { margin: 0; border-top: 1px solid var(--line); }
.tech-row { display: grid; gap: .8rem 1.5rem; padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
@media (min-width: 640px) { .tech-row { grid-template-columns: 10.5rem 1fr; align-items: center; } }
.tech-row dt { display: flex; align-items: center; gap: .65rem; font: 650 1rem var(--font-display); letter-spacing: -.01em; color: var(--ink); }
.tech-row dt .icon { color: var(--indigo); }
.tech-row dd { margin: 0; }
.tech .chip-list li { background: var(--mist); border-color: transparent; }

/* ---------- Beyond travel (kept deliberately quiet) ---------- */
.beyond { padding-block: clamp(2.5rem, 5vw, 3.75rem); background: var(--mist); border-block: 1px solid var(--line); }
.beyond-inner { display: grid; gap: 1.25rem 3rem; align-items: center; }
@media (min-width: 992px) { .beyond-inner { grid-template-columns: 16rem 1fr; grid-template-areas: "t p" "t l"; row-gap: .9rem; } .beyond-inner h2 { grid-area: t; align-self: start; } .beyond-inner > p { grid-area: p; } .beyond-pills { grid-area: l; } }
.beyond h2 { font-size: 1.35rem; }
.beyond-inner > p { font-size: .95rem; color: var(--muted); }
.beyond-pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.beyond-pills li { display: inline-flex; align-items: center; gap: .5rem; padding: .4rem .95rem; border-radius: var(--r-pill); background: #fff; border: 1px solid var(--line); font-size: .875rem; font-weight: 600; color: var(--ink-2); }
.beyond-pills .icon { color: var(--cyan-700); }

/* ---------- FAQ ---------- */
.faq-grid { display: grid; gap: 2.5rem; align-items: start; }
@media (min-width: 992px) { .faq-grid { grid-template-columns: .75fr 1.25fr; gap: 5rem; } .faq-intro { position: sticky; top: calc(var(--header-h) + 2rem); } }
.faq-intro h2 { font-size: var(--fs-h2); }
.faq-intro .lead { margin: 1.2rem 0 1.75rem; }
.faq-page { display: grid; gap: 3rem; max-width: 52rem; }
.faq-group h2 { font-size: 1.5rem; margin-bottom: 1.1rem; }

/* ---------- Mobile spacing ---------- */
@media (max-width: 599.98px) {
  .hero-actions .btn { flex: 1 1 100%; }
  .solution-more { text-align: left; }
  .solution-card, .project-body { padding: 1.5rem; }
  .project-media { padding: 1.25rem 1.25rem 0; }
}
