/* ================= Fonts ================= */
@font-face{font-family:'Azuan Display';font-weight:700;font-style:normal;font-display:swap;src:url('../fonts/archivo-700.ttf') format('truetype');}
@font-face{font-family:'Azuan Display';font-weight:900;font-style:normal;font-display:swap;src:url('../fonts/archivo-900.ttf') format('truetype');}
@font-face{font-family:'Azuan Mono';font-weight:500;font-style:normal;font-display:swap;src:url('../fonts/plexmono-500.ttf') format('truetype');}
@font-face{font-family:'Azuan Sans';font-weight:400;font-style:normal;font-display:swap;src:url('../fonts/plexsans-400.ttf') format('truetype');}
@font-face{font-family:'Azuan Sans';font-weight:500;font-style:normal;font-display:swap;src:url('../fonts/plexsans-500.ttf') format('truetype');}
@font-face{font-family:'Azuan Sans';font-weight:600;font-style:normal;font-display:swap;src:url('../fonts/plexsans-600.ttf') format('truetype');}

/* ================= Tokens ================= */
:root{
  --bg:#F2F4F3;
  --bg-elevated:#FFFFFF;
  --fg:#10161C;
  --fg-muted:#56656F;
  --border:rgba(10,15,20,0.13);
  --brand:#0B5088;
  --brand-2:#083A63;
  --signal:#12A98F;
  --signal-ink:#093B32;
  --ink:#0A0F14;
  --ink-2:#121A22;
  --ink-line:rgba(255,255,255,0.14);
  --ink-fg:#E7ECEF;
  --ink-fg-muted:#93A3AC;
  --danger:#B4362C;
  --shadow:0 1px 2px rgba(10,15,20,0.06), 0 8px 24px -12px rgba(10,15,20,0.18);
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#0B1117; --bg-elevated:#121922; --fg:#E7ECEF; --fg-muted:#8FA0AA;
    --border:rgba(255,255,255,0.12); --brand:#5BAEE3; --brand-2:#3E8ABD;
    --signal:#2FE0C2; --signal-ink:#052A24;
    --shadow:0 1px 2px rgba(0,0,0,0.4), 0 8px 28px -12px rgba(0,0,0,0.6);
  }
}
:root[data-theme="dark"]{
  --bg:#0B1117; --bg-elevated:#121922; --fg:#E7ECEF; --fg-muted:#8FA0AA;
  --border:rgba(255,255,255,0.12); --brand:#5BAEE3; --brand-2:#3E8ABD;
  --signal:#2FE0C2; --signal-ink:#052A24;
}
:root[data-theme="light"]{
  --bg:#F2F4F3; --bg-elevated:#FFFFFF; --fg:#10161C; --fg-muted:#56656F;
  --border:rgba(10,15,20,0.13); --brand:#0B5088; --brand-2:#083A63;
  --signal:#12A98F; --signal-ink:#093B32;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;} }

body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:"Azuan Sans", ui-sans-serif, system-ui, "Segoe UI", Arial, sans-serif;
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
.mono{font-family:"Azuan Mono", ui-monospace, Consolas, monospace;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
h1,h2,h3{font-family:"Azuan Display", ui-sans-serif, system-ui, Arial, sans-serif; font-weight:800; letter-spacing:-0.01em; text-wrap:balance; margin:0;}
a{color:inherit;}
img{max-width:100%; display:block;}

.eyebrow{
  font-family:"Azuan Mono", ui-monospace, monospace; font-size:0.72rem; font-weight:500;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--signal); display:inline-flex; align-items:center; gap:8px;
}
.eyebrow::before{content:""; width:7px; height:7px; background:var(--signal); display:inline-block; box-shadow:0 0 0 3px color-mix(in srgb, var(--signal) 22%, transparent);}

/* ---------- nav ---------- */
/* backdrop-filter lives on ::before, not on header.site itself: a filter/backdrop-filter
   on an element creates a new containing block for its position:fixed descendants, which
   would shrink the fixed mobile nav panel down to the header's own height. */
header.site{position:sticky; top:0; z-index:60; border-bottom:1px solid var(--border);}
header.site::before{content:""; position:absolute; inset:0; z-index:-1; background:color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter:blur(10px);}
nav.wrap{display:flex; align-items:center; justify-content:space-between; height:68px; position:relative;}
.logo{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--fg);}
.logo svg{width:30px; height:30px; flex:none;}
.logo .word{font-family:"Azuan Display",sans-serif; font-weight:800; font-size:1.1rem; letter-spacing:0.01em;}

.navlinks{display:flex; align-items:center; gap:6px; list-style:none; margin:0; padding:0; font-size:0.92rem; font-weight:500;}
.navlinks > li{position:relative;}
.navlinks > li > a, .navlinks > li > button{
  text-decoration:none; color:var(--fg-muted); transition:color .15s; padding:10px 12px; background:none; border:none;
  font:inherit; cursor:pointer; display:flex; align-items:center; gap:5px;
}
.navlinks > li > a:hover, .navlinks > li > button:hover, .navlinks > li > button[aria-expanded="true"]{color:var(--fg);}
.navlinks .chev{width:11px; height:11px; transition:transform .15s;}
.navlinks button[aria-expanded="true"] .chev{transform:rotate(180deg);}

.dropdown{
  position:absolute; top:calc(100% + 6px); left:0; min-width:340px;
  background:var(--bg-elevated); border:1px solid var(--border); box-shadow:var(--shadow);
  padding:8px; display:none; flex-direction:column; gap:2px;
}
.dropdown.open{display:flex;}
.dropdown a{
  display:flex; flex-direction:column; gap:2px; padding:12px 14px; text-decoration:none; color:var(--fg);
  border-left:2px solid transparent; transition:border-color .15s, background .15s;
}
.dropdown a:hover, .dropdown a:focus-visible{border-left-color:var(--signal); background:color-mix(in srgb, var(--signal) 7%, transparent);}
.dropdown .item-top{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.dropdown .item-name{font-weight:600; font-size:0.94rem;}
.dropdown .item-tag{font-family:"Azuan Mono",monospace; font-size:0.68rem; color:var(--fg-muted);}
.dropdown .item-desc{font-size:0.82rem; color:var(--fg-muted);}
.dropdown .badge{
  font-family:"Azuan Mono",monospace; font-size:0.62rem; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--signal); border:1px solid color-mix(in srgb, var(--signal) 45%, transparent); padding:2px 6px; flex:none;
}

.navcta{display:flex; align-items:center; gap:16px;}
.lang-switch{display:flex; font-family:"Azuan Mono",monospace; font-size:0.75rem; border:1px solid var(--border);}
.lang-switch button{background:none; border:none; font:inherit; color:var(--fg-muted); padding:6px 9px; cursor:pointer;}
.lang-switch button[aria-current="true"]{color:var(--fg); background:var(--bg);}
.navtoggle{display:none;}

.btn{display:inline-flex; align-items:center; gap:8px; padding:11px 20px; font-size:0.88rem; font-weight:600; text-decoration:none; border:1px solid transparent; cursor:pointer; font-family:inherit; transition:transform .15s, background .15s, border-color .15s, color .15s;}
.btn:focus-visible{outline:2px solid var(--signal); outline-offset:2px;}
.btn-primary{background:var(--signal); color:var(--signal-ink); border-color:var(--signal);}
.btn-primary:hover{transform:translateY(-1px);}
.btn-ghost-dark{border-color:var(--ink-line); color:var(--ink-fg);}
.btn-ghost-dark:hover{border-color:var(--ink-fg); background:rgba(255,255,255,0.04);}
.btn-outline{border-color:var(--border); color:var(--fg);}
.btn-outline:hover{border-color:var(--fg);}

/* ---------- hero ---------- */
.hero{position:relative; background:var(--ink); color:var(--ink-fg); overflow:hidden; border-bottom:1px solid var(--ink-line);}
.hero-inner{position:relative; display:grid; grid-template-columns:1.05fr 0.95fr; gap:40px; align-items:center; padding:80px 0 76px;}
.hero h1{font-size:clamp(2.35rem, 4.6vw, 3.6rem); line-height:1.05; margin:18px 0 22px;}
.hero h1 em{font-style:normal; color:var(--signal);}
.hero p.lead{font-size:1.09rem; color:var(--ink-fg-muted); max-width:52ch; margin:0 0 30px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:44px;}
.hero-stats{display:grid; grid-template-columns:repeat(4,auto); gap:30px; border-top:1px solid var(--ink-line); padding-top:26px;}
.stat .num{font-family:"Azuan Mono", monospace; font-size:1.35rem; font-weight:500; color:var(--ink-fg); font-variant-numeric:tabular-nums;}
.stat .num span{color:var(--signal);}
.stat .label{font-size:0.76rem; color:var(--ink-fg-muted); margin-top:3px; max-width:16ch;}
.hero-visual{position:relative; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center;}
.hero-visual canvas{width:100%; height:100%; display:block;}
.bunker-caption{position:absolute; left:0; bottom:6px; font-family:"Azuan Mono", monospace; font-size:0.68rem; letter-spacing:0.08em; color:var(--ink-fg-muted); text-transform:uppercase;}

/* ---------- section scaffolding ---------- */
section{padding:92px 0;}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:48px;}
.section-head h2{font-size:clamp(1.7rem,2.9vw,2.35rem);}
.section-head p{color:var(--fg-muted); max-width:38ch; margin:14px 0 0; font-size:0.98rem;}
.section-head .eyebrow{margin-bottom:14px;}

/* ---------- sectors ---------- */
.sectors{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border); border:1px solid var(--border);}
.sector{background:var(--bg-elevated); padding:26px 22px; display:flex; flex-direction:column; gap:10px;}
.sector .ico{width:28px; height:28px; color:var(--brand);}
.sector b{font-size:0.95rem;}
.sector span{font-size:0.83rem; color:var(--fg-muted);}

/* ---------- bracket card ---------- */
.bracket-card{position:relative; padding:30px 28px; background:var(--bg-elevated); border:1px solid var(--border);}
.bracket-card .bl,.bracket-card .br,.bracket-card .tl,.bracket-card .tr{content:""; position:absolute; width:14px; height:14px; border-color:var(--signal); border-style:solid; border-width:0;}
.bracket-card .tl{top:-1px; left:-1px; border-top-width:2px; border-left-width:2px;}
.bracket-card .tr{top:-1px; right:-1px; border-top-width:2px; border-right-width:2px;}
.bracket-card .bl{bottom:-1px; left:-1px; border-bottom-width:2px; border-left-width:2px;}
.bracket-card .br{bottom:-1px; right:-1px; border-bottom-width:2px; border-right-width:2px;}

/* ---------- products ---------- */
.products{display:grid; grid-template-columns:1fr 1fr 1fr; gap:1px; background:var(--border); border:1px solid var(--border);}
.product{background:var(--bg-elevated); padding:36px 30px;}
.product.soon{background:var(--bg); border:1px dashed var(--border); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:14px;}
.product .tag{font-family:"Azuan Mono",monospace; font-size:0.72rem; letter-spacing:0.1em; color:var(--brand); text-transform:uppercase; font-weight:500;}
.product h3{font-size:1.4rem; margin:10px 0 4px;}
.product .sub{color:var(--fg-muted); font-size:0.86rem; margin-bottom:18px;}
.product p.desc{color:var(--fg-muted); font-size:0.94rem; margin:0 0 22px;}
.feat-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px;}
.feat-list li{display:flex; gap:12px; font-size:0.9rem;}
.feat-list .fico{flex:none; width:18px; height:18px; margin-top:2px; color:var(--signal);}
.feat-list b{display:block; font-weight:600;}
.feat-list span{color:var(--fg-muted); font-size:0.86rem;}
.product-cta{margin-top:24px; display:flex;}
.soon-badge{font-family:"Azuan Mono",monospace; font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--signal); border:1px solid color-mix(in srgb, var(--signal) 45%, transparent); padding:3px 8px;}

/* ---------- use cases ---------- */
.cases{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.case h4{font-size:1.02rem; margin:14px 0 8px;}
.case p{font-size:0.87rem; color:var(--fg-muted); margin:0;}
.case .idx{font-family:"Azuan Mono",monospace; font-size:0.72rem; color:var(--fg-muted);}

/* ---------- novedades ---------- */
.news{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:18px;}
.news-card{display:flex; flex-direction:column; background:var(--bg-elevated); border:1px solid var(--border); padding:26px 24px;}
.news-card.featured{padding:32px 30px; justify-content:flex-end; min-height:280px; position:relative; background:linear-gradient(135deg, var(--brand-2), var(--brand)); border-color:transparent;}
.news-meta{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
.news-tag{font-family:"Azuan Mono",monospace; font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; padding:3px 8px; border:1px solid var(--border); color:var(--fg-muted);}
.news-tag.producto{color:var(--brand); border-color:color-mix(in srgb, var(--brand) 45%, transparent);}
.news-tag.seguridad{color:var(--danger); border-color:color-mix(in srgb, var(--danger) 45%, transparent);}
.news-tag.comunicado{color:var(--signal); border-color:color-mix(in srgb, var(--signal) 45%, transparent);}
.news-card.featured .news-tag{border-color:rgba(255,255,255,0.4); color:#fff;}
.news-date{font-family:"Azuan Mono",monospace; font-size:0.72rem; color:var(--fg-muted);}
.news-card.featured .news-date{color:rgba(255,255,255,0.75);}
.news-card h4{font-size:1.05rem; margin:0 0 8px; line-height:1.35;}
.news-card.featured h4{font-size:1.35rem; color:#fff;}
.news-card p{font-size:0.87rem; color:var(--fg-muted); margin:0;}
.news-card.featured p{color:rgba(255,255,255,0.82); max-width:38ch;}
.news-link{font-size:0.85rem; font-weight:600; margin-top:16px; text-decoration:none; color:var(--brand); display:inline-flex; align-items:center; gap:7px;}
.news-card.featured .news-link{color:#fff;}
.news-link svg{width:14px; height:14px; flex:none;}

/* ---------- process (dark band) ---------- */
.band-dark{background:var(--ink); color:var(--ink-fg); border-top:1px solid var(--ink-line); border-bottom:1px solid var(--ink-line);}
.band-dark .fg-muted{color:var(--ink-fg-muted);}
.process{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--ink-line);}
.step{padding:34px 30px 0; border-left:1px solid var(--ink-line);}
.step:first-child{border-left:none;}
.step .n{font-family:"Azuan Mono",monospace; font-size:0.82rem; color:var(--signal); letter-spacing:0.06em;}
.step h4{font-size:1.12rem; margin:14px 0 10px; font-family:"Azuan Display",sans-serif; font-weight:700;}
.step p{font-size:0.9rem; color:var(--ink-fg-muted); max-width:32ch;}

/* ---------- client logo carousel ---------- */
.client-marquee{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.client-track{display:flex; align-items:center; gap:20px;}
/* .scrolling / .static are set by JS once it knows whether the logos actually
   overflow the container — too few logos on a wide screen must not animate,
   or the loop jumps to blank space instead of looping seamlessly. */
.client-track.scrolling{width:max-content; animation:client-marquee-scroll 26s linear infinite;}
.client-track.static{width:100%; justify-content:center; flex-wrap:wrap;}
.client-marquee:hover .client-track.scrolling,
.client-marquee:focus-within .client-track.scrolling{animation-play-state:paused;}
@keyframes client-marquee-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
.client-logo{
  flex:none; display:flex; align-items:center; justify-content:center;
  height:76px; padding:14px 30px;
  background:#FFFFFF; border:1px solid var(--border);
}
.client-logo img{max-height:36px; max-width:150px; width:auto; height:auto; object-fit:contain; display:block;}

@media (prefers-reduced-motion:reduce){
  .client-track.scrolling{animation:none; flex-wrap:wrap; width:auto; justify-content:center;}
  .client-marquee{-webkit-mask-image:none; mask-image:none;}
}

/* ---------- CTA banner ---------- */
.cta-band{background:var(--signal); color:var(--signal-ink);}
.cta-inner{display:flex; align-items:center; justify-content:space-between; gap:30px; padding:56px 0; flex-wrap:wrap;}
.cta-inner h2{color:var(--signal-ink); font-size:clamp(1.5rem,2.6vw,2.1rem); max-width:22ch;}
.cta-inner .contacts{font-family:"Azuan Mono",monospace; font-size:0.82rem; opacity:0.8; margin-top:10px;}
.cta-actions{display:flex; gap:14px;}
.btn-on-brand{background:var(--signal-ink); color:var(--signal);}
.btn-on-brand:hover{transform:translateY(-1px);}
.btn-outline-on-brand{border-color:color-mix(in srgb, var(--signal-ink) 45%, transparent); color:var(--signal-ink);}
.btn-outline-on-brand:hover{border-color:var(--signal-ink); background:rgba(0,0,0,0.06);}

/* ---------- footer ---------- */
footer{background:var(--ink); color:var(--ink-fg-muted); padding:56px 0 30px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; padding-bottom:40px; border-bottom:1px solid var(--ink-line);}
.foot-grid .logo{color:var(--ink-fg);}
.foot-col h5{font-family:"Azuan Mono",monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-fg); margin:0 0 14px; font-weight:500;}
.foot-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; font-size:0.88rem;}
.foot-col a{text-decoration:none; color:var(--ink-fg-muted); transition:color .15s;}
.foot-col a:hover{color:var(--ink-fg);}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:0.8rem;}
.foot-bottom .social{display:flex; gap:16px;}
.foot-bottom svg{width:16px; height:16px;}

@media (max-width:920px){
  .hero-inner{grid-template-columns:1fr; padding:44px 0 48px;}
  .hero-visual{aspect-ratio:16/10;}
  .product-hero .wrap{padding-top:28px;}
  section{padding:56px 0;}
  .products{grid-template-columns:1fr;}
  .process{grid-template-columns:1fr;}
  .stories{grid-template-columns:1fr;}
  .news{grid-template-columns:1fr;}
  .cases{grid-template-columns:repeat(2,1fr);}
  .sectors{grid-template-columns:repeat(2,1fr);}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .hero-stats{grid-template-columns:repeat(2,auto);}

  .navtoggle{display:flex; align-items:center; justify-content:center; width:38px; height:38px; background:none; border:1px solid var(--border); cursor:pointer;}
  .navtoggle svg{width:18px; height:18px;}
  .navlinks{
    display:none; position:fixed; inset:68px 0 0 0; background:var(--bg); flex-direction:column; align-items:stretch;
    padding:14px; overflow-y:auto; gap:0; border-top:1px solid var(--border);
  }
  .navlinks.open{display:flex;}
  .navlinks > li > a, .navlinks > li > button{width:100%; padding:14px 6px; justify-content:space-between; border-bottom:1px solid var(--border);}
  .dropdown{position:static; box-shadow:none; width:100%; min-width:0;}
}
@media (min-width:921px){
  .navtoggle{display:none;}
}

/* ================= Product detail pages ================= */
.breadcrumb{padding:22px 0 0;}
.breadcrumb a{
  font-family:"Azuan Mono",monospace; font-size:0.78rem; color:var(--fg-muted); text-decoration:none;
}
.breadcrumb a:hover{color:var(--fg);}

.product-hero{background:var(--ink); color:var(--ink-fg); border-bottom:1px solid var(--ink-line);}
.product-hero .wrap{padding-top:36px; padding-bottom:68px;}
.product-hero .kicker{font-family:"Azuan Mono",monospace; font-size:0.76rem; color:var(--ink-fg-muted); margin-bottom:18px;}
.product-hero h1{font-size:clamp(2rem,4vw,3rem); line-height:1.08; margin:16px 0 20px; max-width:20ch;}
.product-hero p.lead{font-size:1.05rem; color:var(--ink-fg-muted); max-width:56ch; margin:0 0 30px;}
.product-hero .hero-actions{display:flex; gap:14px; flex-wrap:wrap;}

.soon-banner{
  background:color-mix(in srgb, var(--signal) 10%, transparent);
  border:1px solid color-mix(in srgb, var(--signal) 35%, transparent);
  color:var(--fg); padding:16px 20px; font-size:0.9rem; margin-bottom:48px;
  display:flex; align-items:center; gap:10px;
}
.soon-banner b{color:var(--signal);}

.benefits-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border);}
.benefit-cell{background:var(--bg-elevated); padding:26px 24px;}
.benefit-cell b{display:block; font-size:0.98rem; margin-bottom:8px;}
.benefit-cell span{font-size:0.87rem; color:var(--fg-muted);}

.pd-features{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--border); border:1px solid var(--border);}
.pd-feature{background:var(--bg-elevated); padding:26px 24px; display:flex; gap:14px;}
.pd-feature svg{flex:none; width:20px; height:20px; margin-top:2px; color:var(--signal);}
.pd-feature b{display:block; font-size:0.96rem; margin-bottom:6px;}
.pd-feature span{font-size:0.87rem; color:var(--fg-muted);}

.pd-usecases{display:grid; grid-template-columns:repeat(2,1fr); gap:18px;}
.pd-usecase{padding:26px 24px;}
.pd-usecase h4{font-size:1.05rem; margin:0 0 10px;}
.pd-usecase p{font-size:0.9rem; color:var(--fg-muted); margin:0;}

.other-solutions{display:grid; grid-template-columns:repeat(2,1fr); gap:18px;}
.other-solution{
  display:flex; flex-direction:column; gap:8px; padding:26px 24px;
  background:var(--bg-elevated); border:1px solid var(--border); text-decoration:none; color:var(--fg);
  transition:border-color .15s;
}
.other-solution:hover{border-color:var(--signal);}
.other-solution .name{font-size:1.05rem; font-weight:700; font-family:"Azuan Display",sans-serif;}
.other-solution .tag{font-family:"Azuan Mono",monospace; font-size:0.7rem; color:var(--fg-muted);}
.other-solution .desc{font-size:0.87rem; color:var(--fg-muted);}
.other-solution .badge{
  align-self:flex-start; font-family:"Azuan Mono",monospace; font-size:0.62rem; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--signal); border:1px solid color-mix(in srgb, var(--signal) 45%, transparent); padding:2px 6px;
}

@media (max-width:760px){
  .benefits-grid{grid-template-columns:1fr;}
  .pd-features{grid-template-columns:1fr;}
  .pd-usecases{grid-template-columns:1fr;}
  .other-solutions{grid-template-columns:1fr;}
}

/* ---------- AI flow (AZTRUST product page) ---------- */
.ai-flow-steps{
  display:grid; grid-template-columns:1fr 40px 1fr 40px 1fr; align-items:stretch; gap:0;
  margin-top:44px;
}
.ai-flow-step{
  background:var(--ink-2); border:1px solid var(--ink-line); padding:28px 26px;
  display:flex; flex-direction:column; gap:10px;
}
.ai-flow-step .n{font-family:"Azuan Mono",monospace; font-size:0.82rem; color:var(--signal); letter-spacing:0.06em;}
.ai-flow-step h3{font-size:1.08rem; font-family:"Azuan Display",sans-serif; font-weight:700; margin:0;}
.ai-flow-step p{font-size:0.9rem; color:var(--ink-fg-muted); margin:0;}
.ai-flow-arrow{display:flex; align-items:center; justify-content:center; color:var(--signal);}
.ai-flow-arrow svg{width:22px; height:22px;}

.ai-flow-note{
  display:flex; align-items:flex-start; gap:12px; margin-top:32px;
  background:color-mix(in srgb, var(--signal) 14%, transparent);
  border:1px solid color-mix(in srgb, var(--signal) 40%, transparent);
  padding:16px 20px; font-size:0.92rem; color:var(--ink-fg);
}
.ai-flow-note svg{flex:none; width:20px; height:20px; margin-top:1px; color:var(--signal);}

@media (max-width:760px){
  .ai-flow-steps{grid-template-columns:1fr; gap:0;}
  .ai-flow-arrow{transform:rotate(90deg); padding:6px 0;}
}

/* ================= Contact form modal ================= */
.cf-overlay{
  position:fixed; inset:0; z-index:200; display:none;
  background:rgba(6,9,12,0.6); backdrop-filter:blur(2px);
  padding:24px; overflow-y:auto;
}
.cf-overlay.open{display:flex; align-items:flex-start; justify-content:center;}
.cf-dialog{
  background:var(--bg-elevated); border:1px solid var(--border); box-shadow:var(--shadow);
  width:100%; max-width:640px; margin:auto; padding:0;
}
.cf-header{
  display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
  padding:26px 28px 0;
}
.cf-header h3{font-size:1.3rem; margin:10px 0 6px;}
.cf-header p{font-size:0.9rem; color:var(--fg-muted); margin:0 0 4px; max-width:46ch;}
.cf-close{
  flex:none; width:32px; height:32px; display:flex; align-items:center; justify-content:center;
  background:none; border:1px solid var(--border); cursor:pointer; color:var(--fg-muted);
}
.cf-close:hover{color:var(--fg); border-color:var(--fg);}
.cf-close svg{width:16px; height:16px;}

.cf-form{padding:22px 28px 28px; display:flex; flex-direction:column; gap:16px;}
.cf-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.cf-field{display:flex; flex-direction:column; gap:6px;}
.cf-field label{font-size:0.82rem; font-weight:600;}
.cf-field input, .cf-field select, .cf-field textarea{
  font:inherit; font-size:0.94rem; padding:10px 12px; background:var(--bg); color:var(--fg);
  border:1px solid var(--border); border-radius:0; width:100%;
}
.cf-field input:focus, .cf-field select:focus, .cf-field textarea:focus{
  outline:2px solid var(--signal); outline-offset:1px; border-color:var(--signal);
}
.cf-field textarea{resize:vertical; min-height:90px;}

.cf-captcha{margin-top:2px;}
.cf-actions{display:flex; align-items:center; gap:14px; margin-top:4px; flex-wrap:wrap;}
.cf-actions .btn[disabled]{opacity:0.45; cursor:not-allowed; pointer-events:none;}
.cf-status{font-size:0.86rem; margin:0;}
.cf-status.success{color:var(--signal-ink); background:color-mix(in srgb, var(--signal) 18%, transparent); padding:10px 12px; border:1px solid color-mix(in srgb, var(--signal) 45%, transparent);}
.cf-status.error{color:#fff; background:var(--danger); padding:10px 12px;}

@media (max-width:600px){
  .cf-overlay{padding:0;}
  .cf-dialog{max-width:none; min-height:100%; border:none;}
  .cf-row{grid-template-columns:1fr;}
}
