/* Drixap Public 4.2 — proportions and palette restored from Public v3. */
:root { --blue:#3e79ad; --muted:#586b7b; --container:1180px; --header-height:80px; }
html { scroll-padding-top:calc(var(--header-height) + 20px); }
body { overflow-x:clip; }
section[id] { scroll-margin-top:20px; }
.site-header { background:rgba(250,252,254,.97); }
.nav-shell { height:var(--header-height); gap:22px; }
.brand { width:104px; height:64px; flex:0 0 104px; }
.brand img { width:86px; height:64px; max-height:64px; object-fit:cover; object-position:center 58%; }
.nav-menu { gap:2px; }
.nav-menu a { font-size:13px; padding:12px 10px; font-weight:600; }
.nav-actions { gap:8px; }
.login-link { font-size:13px; white-space:nowrap; }
.language-button,.menu-toggle { width:44px; height:44px; }
.language-button svg { width:20px; height:20px; }
.language-menu { top:50px; visibility:hidden; }
.language-picker.open .language-menu { visibility:visible; }
.language-menu button { font-size:14px; min-height:44px; }
.btn { font-size:14px; min-height:50px; padding:0 22px; border-radius:14px; }
.btn-small { min-height:42px; padding:0 17px; font-size:13px; }
.btn-primary,.nav-actions .btn-dark { background:linear-gradient(135deg,#315f8d,#437eaf 65%,#4b88b5); box-shadow:0 10px 26px rgba(49,95,141,.20); }
.btn-primary:hover,.nav-actions .btn-dark:hover { background:linear-gradient(135deg,#274f77,#376c9a); box-shadow:0 14px 30px rgba(49,95,141,.26); }
:where(a,button,summary):focus-visible { outline:3px solid #579bd0; outline-offset:5px; }
.hero { padding:88px 0 84px; background:linear-gradient(135deg,#f9fbfd,#eff5f9); }
.hero-grid { grid-template-columns:1.12fr .88fr; gap:64px; }
.hero h1 { font-size:clamp(46px,5vw,68px); line-height:1.04; letter-spacing:-.05em; text-wrap:balance; }
.hero-lead { font-size:18px; line-height:1.75; color:#596c7c; }
.eyebrow,.kicker { font-size:11px; line-height:1.6; letter-spacing:.12em; color:#3d739b; }
.hero-proof { gap:18px; margin-top:38px; }
.hero-proof strong { font-size:13px; }
.hero-proof span { font-size:12px; line-height:1.6; color:#647584; }
.system-card { padding:28px; background:linear-gradient(150deg,#fff,#f0f6fa); box-shadow:0 28px 70px rgba(29,61,88,.12); }
.system-card-head { font-size:12px; }
.system-heading { font-size:27px; line-height:1.15; }
.system-flow>div { padding:13px 0; }
.system-flow strong { font-size:15px; }
.system-flow small { font-size:12px; color:#617787; line-height:1.5; }
.flow-icon { font-size:11px; }
.system-footer { font-size:12px; line-height:1.5; gap:16px; background:linear-gradient(135deg,#21303f,#2f526c); }
.hero-visual { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.system-card { grid-column:1/-1; }
.float-chip { position:static; padding:14px 16px; max-width:none; box-shadow:0 8px 24px rgba(29,61,88,.06); }
.float-chip span { font-size:9px; }
.float-chip strong { font-size:12px; }
.chip-one { left:-22px; bottom:-24px; }
.chip-two { right:-20px; top:-26px; }
.trust-row { font-size:11px; min-height:72px; }
.section-pad { padding-block:100px; }
.hero.section-pad { padding-block:88px; }
.section-heading { gap:64px; margin-bottom:42px; }
.section-heading h2,.growth-copy h2,.about-copy h2,.faq-intro h2 { font-size:clamp(34px,3.8vw,49px); line-height:1.1; text-wrap:balance; }
.section-heading p,.growth-copy>p,.about-copy>p,.faq-intro>p { font-size:16px; line-height:1.8; color:#596d7d; }
.services { background:#fff; }
.service-bento { grid-template-columns:1fr 1fr; gap:20px; }
.service-card { padding:34px; min-height:420px; background:linear-gradient(145deg,#f7fafc,#eef3f7); border-color:rgba(31,65,92,.10); border-radius:28px; }
.service-large { grid-row:auto; min-height:420px; }
.service-wide { grid-column:auto; min-height:420px; }
.service-label { font-size:11px; color:#4e7390; margin-top:26px; }
.service-card h3 { font-size:30px; line-height:1.12; letter-spacing:-.035em; }
.service-card p { font-size:15px; line-height:1.75; color:#596d7d; }
.service-card li { font-size:13px; line-height:1.5; color:#526b7e; }
.service-card li:before { top:7px; }
.service-card ul { margin-top:24px; }
.service-no { font-size:11px; color:#607b8e; }
.service-accent { background:linear-gradient(145deg,#131c27,#23313f 60%,#31516a); }
.service-accent .service-label { color:#92cbed; }
.service-accent p,.service-accent li { color:#c6d4df; }
.service-accent .service-no { color:#a2bed2; }
.wide-copy { grid-template-columns:1fr; gap:0; }
.service-tags { gap:8px; }
.service-tags span { font-size:11px; background:#fff; color:#526b7e; line-height:1.4; }
.growth { background:radial-gradient(ellipse at 100% 0,rgba(79,148,197,.18),transparent 60%),linear-gradient(145deg,#101822,#22303f); }
.growth-copy>p { color:#bdccd7; }
.growth-steps p { font-size:14px; line-height:1.75; color:#bdccd7; }
.growth-steps h3 { font-size:21px; }
.growth-steps>article>span { font-size:11px; }
.text-link { font-size:14px; line-height:1.5; }
.solution-card { padding:26px; min-height:340px; border-radius:24px; }
.solution-card h3 { font-size:23px; margin-top:38px; }
.solution-card p { font-size:14px; color:#5e7181; }
.solution-card small { font-size:10px; line-height:1.6; color:#587183; }
.solution-card>span { font-size:12px; color:#3e79ad; }
.ecosystem { padding-top:0; }
.ecosystem-shell { background:linear-gradient(145deg,#edf3f8,#fafcfd); padding:48px; gap:42px; grid-template-columns:1fr 1fr; }
.ecosystem-copy h2 { font-size:36px; line-height:1.12; }
.ecosystem-copy p { font-size:15px; color:#596d7d; }
.ecosystem-map { grid-template-columns:1fr; gap:8px; }
.ecosystem-map>div { min-height:72px; padding:16px 20px; background:#fff; }
.ecosystem-map strong { font-size:15px; }
.ecosystem-map span { font-size:12px; color:#617585; }
.ecosystem-map i { justify-self:center; transform:rotate(90deg); }
.ecosystem-map>div.active { background:linear-gradient(135deg,#21303f,#2f526c); }
.principles h3 { font-size:19px; }
.principles p { font-size:14px; line-height:1.75; color:#5e7181; }
.principles>article>span { font-size:12px; }
.principles article { padding:25px 0; }
.process-grid { gap:18px; }
.process-grid article { padding:25px; border-radius:0 0 20px 20px; background:#fff; }
.process-grid h3 { font-size:21px; }
.process-grid p { font-size:14px; line-height:1.7; color:#5e7181; }
.process-grid span { font-size:12px; }
.faq-list summary { font-size:16px; line-height:1.5; }
.faq-list p { font-size:14px; line-height:1.75; color:#5e7181; }
.faq-list details { padding:24px 0; }
.pre-contact { background:var(--soft); padding-top:64px; }
.pre-contact-shell { min-height:0; padding:44px 48px; border-radius:30px; background:linear-gradient(135deg,#21303f,#2f526c); gap:36px; }
.pre-contact h2 { font-size:clamp(29px,3.2vw,42px); line-height:1.12; }
.pre-contact .btn { flex-shrink:0; }
.contact.section-pad { padding-block:32px 96px; }
.contact-grid { position:relative; overflow:hidden; padding:52px; gap:48px; grid-template-columns:.85fr 1.15fr; border-radius:32px; color:#fff; background:radial-gradient(circle at 100% 0,rgba(92,171,226,.20),transparent 48%),linear-gradient(140deg,#101822,#22303f 62%,#2e4d66); box-shadow:0 28px 70px rgba(17,25,35,.13); }
.contact-copy .kicker { color:#96cdf1; }
.contact-copy h2 { font-size:clamp(34px,3.4vw,44px); line-height:1.1; }
.contact-copy>p { font-size:15px; line-height:1.8; color:#c0d0dd; }
.contact-details { font-size:13px; gap:12px; line-height:1.6; color:#bdd0df; }
.contact-details a { color:#fff; font-size:15px; }
.contact-details a:hover { text-decoration:underline; }
.contact-form { padding:26px; background:rgba(255,255,255,.045); border-color:rgba(255,255,255,.14); box-shadow:none; }
.contact-form label>span { font-size:12px; color:#e1ebf2; font-weight:600; }
.contact-form input,.contact-form select,.contact-form textarea { background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.23); color:#fff; font-size:16px; }
.contact-form input,.contact-form select { height:48px; }
.contact-form textarea { min-height:140px; }
.contact-form select option { background:#fff; color:#162330; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { background:rgba(255,255,255,.12); border-color:#92cbed; box-shadow:0 0 0 3px rgba(146,203,237,.15); }
.form-footer { flex-wrap:wrap; border-color:rgba(255,255,255,.15); gap:16px; }
.form-footer p { font-size:12px; line-height:1.6; color:#c2d1dc; flex:1 1 180px; }
.form-footer .btn { width:100%; }
.contact-form button:disabled { opacity:.65; cursor:wait; transform:none; }
.honeypot { width:1px!important; height:1px!important; }
.footer-brand p { font-size:14px; color:#5e7181; }
.footer-brand img { width:120px; }
.footer-main { gap:36px; }
.footer-column h3 { font-size:11px; color:#5d7384; }
.footer-column a,.footer-column span { font-size:13px; color:#526777; }
.footer-cta { font-size:14px; }
.footer-bottom { font-size:12px; color:#657888; }
.reveal { opacity:1; transform:none; }
@media(min-width:901px) and (max-width:1100px) {
  .nav-shell { gap:10px; width:calc(100% - 32px); }
  .nav-menu a { padding-inline:6px; font-size:12px; }
  .nav-actions { gap:3px; }
  .login-link { font-size:12px; padding-inline:5px; }
  .nav-actions .btn { padding-inline:12px; }
}
@media(max-width:1050px) {
  .hero-grid { gap:36px; }
  .contact-grid { padding:36px; gap:32px; }
  .footer-main { grid-template-columns:1.2fr 1fr 1fr; }
}
@media(max-width:900px) {
  :root { --header-height:76px; }
  .brand { width:96px; height:60px; }
  .brand img { width:82px; height:60px; max-height:60px; }
  .nav-shell { gap:10px; }
  .nav-menu { top:calc(var(--header-height) + 8px); visibility:hidden; max-height:calc(100dvh - 100px); overflow:auto; }
  .nav-menu.open { visibility:visible; }
  .nav-menu a { font-size:16px; padding:14px; }
  .login-link { display:block; }
  .menu-toggle { cursor:pointer; border-radius:12px; background:#edf3f7; place-content:center; gap:5px; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.25px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.25px) rotate(-45deg); }
  .hero-grid,.contact-grid,.ecosystem-shell { grid-template-columns:1fr; }
  .hero-grid { gap:60px; }
  .hero-visual { width:100%; max-width:600px; margin:auto; }
  .section-pad { padding-block:76px; }
  .hero.section-pad { padding-block:64px 80px; }
  .service-card { padding:28px; }
  .service-large,.service-wide { grid-column:auto; min-height:420px; }
  .service-card h3 { font-size:27px; }
  .growth-grid,.about-grid,.faq-grid { gap:42px; }
  .pre-contact-shell { align-items:flex-start; flex-direction:column; padding:36px; }
  .contact-grid { gap:36px; }
  .contact-copy { max-width:620px; }
  .footer-main { grid-template-columns:1fr 1fr; }
}
@media(max-width:560px) {
  :root { --header-height:72px; }
  .brand { width:84px; height:56px; }
  .brand img { width:76px; height:56px; max-height:56px; }
  .nav-shell { gap:6px; }
  .nav-actions { gap:1px; }
  .login-link { font-size:12px; padding:10px 6px; }
  .hero h1 { font-size:clamp(39px,10.5vw,54px); }
  .hero-lead { font-size:17px; }
  .eyebrow { font-size:10px; }
  .hero-proof { grid-template-columns:1fr; gap:16px; }
  .hero-proof strong { margin-bottom:3px; }
  .hero-proof span { font-size:13px; }
  .system-card { padding:24px; }
  .service-bento { grid-template-columns:1fr; }
  .service-card,.service-large,.service-wide { min-height:0; padding:26px; gap:20px; }
  .service-label { margin-top:0; }
  .service-card ul { margin-top:0; }
  .service-card h3 { font-size:28px; }
  .solution-card { min-height:290px; }
  .ecosystem-shell { padding:28px; }
  .ecosystem-copy h2 { font-size:31px; }
  .contact-grid { padding:28px 20px; border-radius:26px; }
  .contact-form { padding:20px 16px; }
  .field-row { grid-template-columns:1fr; gap:0; }
  .form-footer p { flex:auto; }
  .contact-copy h2 { font-size:35px; }
  .pre-contact-shell { padding:30px 24px; border-radius:26px; }
  .pre-contact .btn { width:100%; }
  .trust-row { font-size:10px; gap:14px 22px; }
  .footer-main { gap:30px 20px; }
  .footer-column a { overflow-wrap:anywhere; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
