/* Shared compact hero sizing and breadcrumb alignment */
.hero.wrap { width:min(1480px,calc(100% - 48px)) }
.hero:not(.page-hero).wrap { min-height:480px;padding-block:clamp(42px,5vw,66px);padding-inline:clamp(38px,5vw,76px) }
.hero:not(.page-hero) h1 { font-size:clamp(40px,5vw,64px) }
.hero.page-hero { min-height:0;padding:62px clamp(38px,5vw,76px) 26px }
.hero.page-hero h1 { font-size:clamp(34px,4vw,48px);line-height:1.03 }
main>.breadcrumbs { width:min(1480px,calc(100% - 48px));padding-inline:clamp(38px,5vw,76px);text-align:left }
main>.breadcrumbs ol { justify-content:flex-start }

.tech-groups { display:grid;gap:25px }
.tech-group { min-width:0 }
.tech-group h3 { display:flex;align-items:center;gap:12px;margin:0 0 12px;color:#52635d;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase }
.tech-group h3:after { height:1px;flex:1;background:#d7e0d8;content:"" }
.tech-group .tech { grid-template-columns:repeat(4,minmax(0,1fr));gap:13px }
.tech-group.is-collapsed .tech-item:nth-child(n+5) { display:none }
.tech-toggle { display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:8px 12px;border:1px solid #cddbd0;border-radius:999px;color:#245d4d;background:#fff;font:inherit;font-size:11px;font-weight:700;line-height:1.2;cursor:pointer;transition:background .18s ease,border-color .18s ease }
.tech-toggle:hover { border-color:#76a991;background:#eff7ee }
.tech-toggle span[aria-hidden="true"] { font-size:14px;transition:transform .18s ease }
.tech-group:not(.is-collapsed) .tech-toggle span[aria-hidden="true"] { transform:rotate(180deg) }
.tech-toggle[hidden] { display:none }

/* Tighter spacing keeps the content focused without making cards feel cramped. */
.section { padding:clamp(58px,6.2vw,76px) 0 }
.trust { padding:28px 0 14px }
.section-head { margin-bottom:27px }
.section-head p { margin:9px 0 0 }
.grid,.plans { gap:13px }
.card,.plan { padding:20px }
.card h3 { margin:14px 0 6px }
.tech-groups { gap:19px }
.tech-group .tech { gap:10px }
.tech-item { min-height:74px;padding:10px;gap:9px;border-radius:15px }
.tech-logo { width:34px;height:34px;border-radius:10px }
.content-section { padding-top:60px }
.section-heading { margin-bottom:24px }
.split-section,.contact-layout { gap:clamp(22px,4vw,48px) }
.scope-card,.brief-form,.step-card,.info-card,.service-card,.price-card { padding:19px }
.check-list { gap:9px;margin-top:14px }
.cta-band { margin-top:58px }
.page-hero .hero-actions { margin-top:20px }

@media(max-width:850px) {
  .section { padding:54px 0 }
  .section-head { margin-bottom:22px }
  .tech-item { min-height:68px }
  .content-section { padding-top:50px }
  .content-section .wrap { width:min(100% - 36px,1160px) }
  .hero.wrap { width:min(100% - 36px,1480px) }
  .hero:not(.page-hero).wrap { min-height:0;padding:48px 30px }
  .hero.page-hero { padding:60px 30px 24px;grid-template-columns:1fr;gap:0 }
  .hero:not(.page-hero) h1 { font-size:clamp(38px,7vw,56px) }
  .hero.page-hero h1 { font-size:clamp(34px,6vw,46px) }
  main>.breadcrumbs { width:min(100% - 36px,1480px);padding-inline:30px }
  .tech-group .tech { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:620px) {
  .section { padding:44px 0 }
  .trust { padding:22px 0 10px }
  .card,.plan,.scope-card,.brief-form,.step-card,.info-card,.service-card,.price-card { padding:17px }
  .tech-item { min-height:64px;padding:9px;font-size:12px }
  .content-section { padding-top:42px }
  .section-heading { margin-bottom:19px }
  .content-section .wrap { width:min(100% - 28px,1160px) }
  .cta-band { margin-top:42px }
  .hero.wrap { width:min(100% - 28px,1480px) }
  .hero:not(.page-hero).wrap,.hero.page-hero { padding:56px 19px 23px }
  .hero:not(.page-hero).wrap { min-height:0 }
  .hero:not(.page-hero) h1 { font-size:clamp(36px,9vw,44px) }
  .hero.page-hero h1 { font-size:clamp(32px,8.2vw,40px) }
  .hero:not(.page-hero) .art-card { padding:18px }
  .hero:not(.page-hero) .art-title { margin-top:18px }
  .hero:not(.page-hero) .chart { height:82px;margin:12px 0 10px }
  main>.breadcrumbs { width:min(100% - 28px,1480px);padding:11px 19px 0 }
  .tech-groups { gap:19px }
  .tech-group h3 { margin-bottom:9px;font-size:10px }
  .tech-group .tech { gap:9px }
}

/* Denser site rhythm: shorter hero, tighter sections, and compact cards. */
.announce { padding:6px 12px;font-size:12px }
.nav { height:66px }
main>.breadcrumbs { padding-top:7px;padding-bottom:7px }
.hero:not(.page-hero).wrap { min-height:410px;padding:clamp(28px,3.4vw,46px);border-radius:28px;gap:20px }
.hero:not(.page-hero) h1 { font-size:clamp(38px,4.6vw,60px);margin:14px 0 }
.hero:not(.page-hero) p { margin:8px 0;font-size:16px }
.hero:not(.page-hero) .hero-actions { gap:9px;margin:17px 0 14px }
.proof { gap:10px }
.hero.page-hero { padding:40px clamp(24px,4vw,52px) 18px;border-radius:26px }
.hero.page-hero h1 { font-size:clamp(31px,3.8vw,44px) }
.art-card { padding:18px }
.art-title { margin-top:19px }
.chart { height:84px;margin:13px 0 10px }
.art-stats { gap:7px }
.art-stats div { padding:8px }
.float-note { padding:9px 12px }
.moving-stripe { margin:10px 0 0;padding:9px 0;box-shadow:0 4px 12px #173b320b }
.quick-start { grid-template-columns:140px 1fr;gap:12px;margin-top:10px;padding:11px 14px;border-radius:18px;box-shadow:0 6px 18px #183b3008 }
.quick-start-intro p { margin:2px 0 0;font-size:14px }
.quick-start-links { gap:6px }
.quick-start-links a { min-height:36px;padding:7px 9px;border-radius:11px;font-size:12px }
.section { padding:32px 0 }
.section-head { margin-bottom:17px }
.section h2 { margin:6px 0;font-size:clamp(28px,3.7vw,44px);line-height:1.06 }
.section-head p { margin:6px 0 0;font-size:14px }
.grid,.plans { gap:10px }
.card,.plan { padding:16px;border-radius:19px }
.icon { width:38px;height:38px;border-radius:12px;font-size:18px }
.card h3 { margin:10px 0 4px;font-size:18px }
.card p { font-size:13px }
.capability { margin-top:9px;font-size:11px }
.card-more { margin-top:9px;font-size:12px }
.plan.featured { transform:none }
.plan-tag { margin-bottom:4px }
.steps { gap:8px }
.step { grid-template-columns:34px 1fr;gap:10px;padding:12px;border-radius:14px }
.num { width:32px;height:32px }
.feature-panel { min-height:0;padding:22px;border-radius:21px }
.feature-panel h3 { margin:0 0 8px;font-size:24px }
.pill-list { gap:7px;margin-top:14px }
.split { gap:26px }
.tech-groups { gap:14px }
.tech-group h3 { gap:9px;margin-bottom:7px }
.tech-group .tech { gap:8px }
.tech-item { min-height:62px;padding:8px;gap:8px;border-radius:13px }
.tech-logo { width:30px;height:30px;border-radius:9px }
.faq { gap:28px }
.faq-list details { padding:12px 0 }
.faq-list summary { font-size:13px }
.quote { gap:18px;padding:clamp(20px,3vw,32px);border-radius:22px }
.contact-layout { gap:24px }
.contact-copy h2 { margin:8px 0;font-size:clamp(27px,3.4vw,40px) }
.content-section { padding:34px 0 0 }
.section-heading { margin-bottom:18px }
.split-section,.contact-layout { gap:clamp(20px,3vw,38px) }
.scope-card,.brief-form,.step-card,.info-card,.service-card,.price-card { padding:16px;border-radius:18px }
.step-grid,.three-cards,.service-grid,.pricing-grid { gap:10px }
.service-card { min-height:185px }
.info-card { min-height:165px }
.faq-list { gap:7px }
.faq-list details { padding:13px 15px }
.cta-band { gap:16px;margin-top:38px;padding:clamp(20px,3vw,32px);border-radius:21px }
.footer { padding-top:61px }
.footer-wave { top:-56px;height:88px }
.footer-main { gap:clamp(14px,2vw,24px);padding-bottom:24px }
.footer-column { gap:7px }

@media(max-width:850px) {
  .hero:not(.page-hero).wrap { min-height:0;padding:30px 22px }
  .hero:not(.page-hero) h1 { font-size:clamp(36px,6.2vw,52px) }
  .hero.page-hero { padding:34px 24px 18px }
  .quick-start { grid-template-columns:120px 1fr }
  .section { padding:28px 0 }
  .section h2 { font-size:clamp(27px,4.8vw,39px) }
  .feature-panel { min-height:0 }
  .footer { padding-top:58px }
  .footer-wave { top:-52px;height:80px }
}
@media(max-width:620px) {
  .nav { height:60px }
  .hero:not(.page-hero).wrap,.hero.page-hero { padding:29px 17px 18px;border-radius:21px }
  .hero:not(.page-hero) h1 { font-size:clamp(33px,8.3vw,40px);margin:11px 0 }
  .hero:not(.page-hero) p { font-size:14px }
  .hero:not(.page-hero) .hero-actions { margin:13px 0 11px }
  .hero:not(.page-hero) .art-card { padding:14px }
  .hero:not(.page-hero) .art-title { margin-top:13px;font-size:22px }
  .hero:not(.page-hero) .chart { height:58px;margin:9px 0 7px }
  .hero:not(.page-hero) .art-stats div { padding:7px 6px }
  .hero:not(.page-hero) .art-stats strong { font-size:14px }
  .hero:not(.page-hero) .float-note { display:none }
  .hero.page-hero { padding:29px 17px 17px }
  .hero.page-hero h1 { font-size:clamp(29px,7.6vw,36px) }
  .moving-stripe { margin-top:8px;padding:7px 0 }
  .quick-start { grid-template-columns:1fr;gap:6px;padding:10px 11px;border-radius:15px }
  .quick-start-intro { display:flex;align-items:center;gap:9px }
  .quick-start-intro p { font-size:12px }
  .quick-start-links { grid-template-columns:repeat(2,minmax(0,1fr));gap:5px }
  .quick-start-links a { min-height:32px;padding:6px 8px;font-size:11px }
  .section { padding:24px 0 }
  .section-head { margin-bottom:14px }
  .section h2 { font-size:clamp(26px,7vw,33px) }
  .section-head p { font-size:13px }
  .card,.plan,.scope-card,.brief-form,.step-card,.info-card,.service-card,.price-card { padding:14px }
  .tech-item { min-height:56px;padding:7px;font-size:11px }
  .tech-logo { width:27px;height:27px }
  .content-section { padding:27px 0 0 }
  .section-heading { margin-bottom:14px }
  .service-card,.info-card { min-height:0 }
  .faq-list details { padding:11px 13px }
  .cta-band { margin-top:28px;padding:19px;border-radius:18px }
  .footer { padding-top:54px }
  .footer-wave { top:-48px;height:74px }
  .footer-main { padding-bottom:18px }
}

/* Restore more breathing room between content while keeping cards compact. */
html,body { font-family:"Quicksand",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif }
button,input,select,textarea { font-family:inherit }
.section { padding:46px 0 }
.section-head { margin-bottom:22px }
.grid,.plans,.step-grid,.three-cards,.service-grid,.pricing-grid { column-gap:clamp(14px,1.8vw,21px);row-gap:16px }
.split,.split-section,.contact-layout,.faq { column-gap:clamp(28px,4.7vw,58px) }
.quick-start { gap:17px;margin-top:15px }
.quick-start-links { gap:9px }
.tech-groups { gap:21px }
.tech-group .tech { gap:12px }
.footer-main { gap:clamp(18px,2.8vw,32px) }
.content-section { padding-top:42px }
.section-heading { margin-bottom:22px }
.step-grid,.three-cards,.service-grid,.pricing-grid { row-gap:16px }

@media(max-width:850px) {
  .section { padding:39px 0 }
  .section-head { margin-bottom:19px }
  .grid,.plans,.step-grid,.three-cards,.service-grid,.pricing-grid { gap:14px }
  .split,.split-section,.contact-layout,.faq { column-gap:26px }
  .tech-groups { gap:18px }
  .tech-group .tech { gap:10px }
}
@media(max-width:620px) {
  .section { padding:32px 0 }
  .section-head { margin-bottom:16px }
  .grid,.plans,.step-grid,.three-cards,.service-grid,.pricing-grid { gap:12px }
  .split,.split-section,.contact-layout,.faq { gap:20px }
  .quick-start { gap:8px;margin-top:11px }
  .quick-start-links { gap:7px }
  .tech-groups { gap:16px }
  .tech-group .tech { gap:9px }
  .content-section { padding-top:34px }
  .section-heading { margin-bottom:16px }
}

/* Keep the animated wave inside a dedicated footer band so it cannot be clipped at the seam. */
.footer { overflow:hidden;padding-top:108px }
.footer-wave { top:-10px;left:0;z-index:0;width:100%;height:96px;overflow:hidden;pointer-events:none }
.footer-wave svg { display:block;width:calc(100% + 64px);height:100%;margin-left:-32px;overflow:hidden;filter:none }
.wave-fill { fill:#143a34 }
.wave-line { stroke:#b8f27e;stroke-width:2;opacity:.82;filter:drop-shadow(0 0 4px #a8f17c70) }
.wave-line.wave-two { stroke:#88dcae;stroke-width:1.5;opacity:.58;filter:none }
.footer-inner { z-index:1 }
@media(max-width:850px) {
  .footer { padding-top:98px }
  .footer-wave { top:-9px;height:86px }
}
@media(max-width:620px) {
  .footer { padding-top:88px }
  .footer-wave { top:-8px;height:76px }
}
@keyframes footer-wave-drift { 0%,100% { transform:translate3d(-12px,0,0) } 50% { transform:translate3d(12px,1px,0) } }
.footer-wave svg { animation:none }
.wave-track { transform-box:fill-box;transform-origin:0 0;will-change:transform }
.wave-track-back { animation:footer-wave-right 30s linear infinite }
.wave-track-mid { animation:footer-wave-right 24s linear -7s infinite }
.wave-track-front { animation:footer-wave-right 18s linear -11s infinite }
.wave-track-line { animation:footer-wave-right 22s linear -4s infinite }
.wave-track-line-two { animation:footer-wave-right 28s linear -14s infinite }
.wave-track-line-two.wave-line.wave-two { animation:footer-wave-right 28s linear -14s infinite }
@keyframes footer-wave-right { from { transform:translateX(-50%) } to { transform:translateX(0) } }
@media(prefers-reduced-motion:reduce) {
  .footer-wave svg,.footer-wave .wave-track { animation:none!important;transform:none!important;will-change:auto }
}
