/* VIOME custom theme — blueprint / spec-sheet design system */

@font-face{font-family:'Big Shoulders Display';font-style:normal;font-weight:700;font-display:swap;src:url(/viome_theme/static/src/fonts/bigshoulders-700-vn.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Big Shoulders Display';font-style:normal;font-weight:700;font-display:swap;src:url(/viome_theme/static/src/fonts/bigshoulders-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Big Shoulders Display';font-style:normal;font-weight:900;font-display:swap;src:url(/viome_theme/static/src/fonts/bigshoulders-900-vn.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Big Shoulders Display';font-style:normal;font-weight:900;font-display:swap;src:url(/viome_theme/static/src/fonts/bigshoulders-900-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/viome_theme/static/src/fonts/plexmono-400-vn.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/viome_theme/static/src/fonts/plexmono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/viome_theme/static/src/fonts/plexmono-500-vn.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/viome_theme/static/src/fonts/plexmono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/viome_theme/static/src/fonts/plexsans-400-vn.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/viome_theme/static/src/fonts/plexsans-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/viome_theme/static/src/fonts/plexsans-500-vn.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/viome_theme/static/src/fonts/plexsans-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/viome_theme/static/src/fonts/plexsans-600-vn.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/viome_theme/static/src/fonts/plexsans-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  --paper:#F3F6F5;
  --panel:#E6ECEA;
  --panel-2:#D9E2DF;
  --ink:#082A4C;
  --ink-soft:#4B6478;
  --line:rgba(8,42,76,.16);
  --line-strong:rgba(8,42,76,.30);
  --accent:#4E9A12;
  --accent-ink:#0E2005;
  --cyan:#00898C;
  --plate:#04213D;
  --plate-text:#E7EEF2;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#071B2E;
    --panel:#0F2A44;
    --panel-2:#15385A;
    --ink:#E7EEF2;
    --ink-soft:#93ABBD;
    --line:rgba(231,238,242,.16);
    --line-strong:rgba(231,238,242,.30);
    --accent:#7ED33B;
    --accent-ink:#0E2005;
    --cyan:#4FD6D9;
    --plate:#03121F;
    --plate-text:#E7EEF2;
  }
}

/* hide default theme chrome — VIOME pages ship their own nav/footer */
#top, #bottom{display:none !important;}

#wrapwrap.o_wviome *{box-sizing:border-box;}
.o_wviome{
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', -apple-system, sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.o_wviome img{max-width:100%;}
.o_wviome a{color:inherit;}
.o_wviome .wrap{max-width:1160px;margin:0 auto;padding:0 28px;}

.o_wviome .eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);
  display:flex;align-items:center;gap:.6em;
}
.o_wviome .eyebrow::before{content:"";width:22px;height:1px;background:var(--cyan);display:inline-block;}

.o_wviome h1,.o_wviome h2,.o_wviome h3{
  font-family:'Big Shoulders Display',sans-serif;font-weight:900;line-height:.94;letter-spacing:-.01em;
  text-wrap:balance;margin:0;color:var(--ink);
}
.o_wviome h2{font-size:clamp(2rem,4.4vw,3.4rem);}
.o_wviome h3{font-size:clamp(1.3rem,2.2vw,1.7rem);}

.o_wviome .ruler{height:8px;background-image:repeating-linear-gradient(90deg, var(--line-strong) 0 1px, transparent 1px 40px);border-bottom:1px solid var(--line);}

.o_wviome header.vnav{position:sticky;top:0;z-index:50;background:color-mix(in srgb, var(--paper) 88%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.o_wviome .navrow{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;max-width:1160px;margin:0 auto;}
.o_wviome .brand{display:flex;align-items:center;}
.o_wviome .brand img{height:30px;width:auto;}
.o_wviome .brand img.logo-dark{display:none;}
@media (prefers-color-scheme: dark){
  .o_wviome .brand img.logo-light{display:none;}
  .o_wviome .brand img.logo-dark{display:block;}
}
.o_wviome .navlinks{display:flex;gap:28px;font-size:.92rem;font-weight:500;}
.o_wviome .navlinks a{text-decoration:none;color:var(--ink-soft);position:relative;padding:4px 0;}
.o_wviome .navlinks a:hover{color:var(--ink);}
.o_wviome .navlinks a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);transition:width .18s;}
.o_wviome .navlinks a:hover::after{width:100%;}
.o_wviome .navlinks a.active{color:var(--ink);}
.o_wviome .navlinks a.active::after{width:100%;}
.o_wviome .navcta{font-family:'IBM Plex Mono';font-size:.78rem;letter-spacing:.06em;border:1px solid var(--ink);padding:9px 16px;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:8px;}
.o_wviome .navcta:hover{background:var(--ink);color:var(--paper);}

.o_wviome .hero{padding:64px 0 40px;}
.o_wviome .herogrid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;}
.o_wviome .hero h1{font-size:clamp(2.6rem,5.6vw,4.6rem);margin-top:14px;}
.o_wviome .accentline{color:var(--accent);}
.o_wviome p.tagline{font-family:'IBM Plex Sans';font-weight:500;font-style:italic;font-size:1.05rem;color:var(--cyan);margin:12px 0 0;}
.o_wviome p.lead{font-size:1.08rem;color:var(--ink-soft);max-width:46ch;margin:20px 0 28px;}
.o_wviome .ctarow{display:flex;gap:14px;flex-wrap:wrap;}
.o_wviome .btn{font-family:'IBM Plex Mono';font-size:.82rem;letter-spacing:.05em;padding:14px 22px;text-decoration:none;display:inline-flex;align-items:center;gap:10px;border:1px solid var(--ink);color:var(--ink);transition:transform .15s, background .15s, color .15s;background:none;cursor:pointer;}
.o_wviome .btn.primary{background:var(--ink);color:var(--paper);}
.o_wviome .btn.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);transform:translateY(-2px);}
.o_wviome .btn.ghost:hover{background:var(--panel);transform:translateY(-2px);}

.o_wviome .diagram{position:relative;aspect-ratio:1/1;}
.o_wviome .diagram svg{width:100%;height:100%;}
.o_wviome .dline{fill:none;stroke:var(--line-strong);stroke-width:1;}
.o_wviome .dline.active{stroke:var(--cyan);stroke-width:1.4;}
.o_wviome .dnode{fill:var(--paper);stroke:var(--ink);stroke-width:1.4;}
.o_wviome .dnode.core{stroke:var(--accent);stroke-width:2;}
.o_wviome .dlabel{font-family:'IBM Plex Mono';font-size:9px;fill:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;}
.o_wviome .dlabel.core{fill:var(--accent);font-weight:600;}

.o_wviome section.vsec{padding:88px 0;border-top:1px solid var(--line);}
.o_wviome section.vsec.first{border-top:none;}
.o_wviome .sheethead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px;flex-wrap:wrap;}
.o_wviome .sheethead .num{font-family:'IBM Plex Mono';font-size:.78rem;color:var(--ink-soft);text-align:right;}

.o_wviome .linesgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.o_wviome .panel{background:var(--panel);border:1px solid var(--line);padding:32px;position:relative;}
.o_wviome .panel::before{content:"";position:absolute;top:-1px;left:-1px;width:14px;height:14px;border-top:2px solid var(--accent);border-left:2px solid var(--accent);}
.o_wviome .panel::after{content:"";position:absolute;bottom:-1px;right:-1px;width:14px;height:14px;border-bottom:2px solid var(--accent);border-right:2px solid var(--accent);}
.o_wviome .panel .tag{font-family:'IBM Plex Mono';font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;display:block;}
.o_wviome .panel h3{margin-bottom:14px;}
.o_wviome .panel p{color:var(--ink-soft);margin:0 0 20px;max-width:44ch;}
.o_wviome .chiprow{display:flex;flex-wrap:wrap;gap:8px;}
.o_wviome .chip{font-family:'IBM Plex Mono';font-size:.76rem;padding:7px 12px;border:1px solid var(--line-strong);color:var(--ink-soft);background:var(--paper);}

.o_wviome .clientsviewport{position:relative;padding:0 6px;}
.o_wviome .cnav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:34px;height:34px;border:none;border-radius:50%;background:transparent;color:var(--ink-soft);
  display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;
  transition:background .15s, color .15s, box-shadow .15s;
}
.o_wviome .cnav:hover{color:var(--accent);background:var(--paper);box-shadow:0 0 0 1px var(--line-strong);}
.o_wviome .cnav:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.o_wviome .cnav.prev{left:-2px;}
.o_wviome .cnav.next{right:-2px;}
.o_wviome .clientsgrid{
  display:flex;gap:20px;overflow-x:auto;padding:4px 4px 8px;margin:0 -4px;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;
  scrollbar-width:none;-ms-overflow-style:none;
}
@media (prefers-reduced-motion: reduce){
  .o_wviome .clientsgrid{scroll-behavior:auto;}
}
.o_wviome .clientsgrid::-webkit-scrollbar{display:none;height:0;}
.o_wviome .cplate{
  background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;
  min-height:280px;flex:0 0 280px;scroll-snap-align:start;
  transition:border-color .2s, transform .2s;
}
.o_wviome .cplate:hover{border-color:var(--accent);transform:translateY(-3px);}
.o_wviome .cplate .logozone{height:110px;display:flex;align-items:center;justify-content:center;padding:20px;border-bottom:1px solid var(--line);background:var(--paper);}
.o_wviome .cplate .logozone img{max-height:56px;max-width:78%;object-fit:contain;}
.o_wviome .cplate.wordmark .logozone{background:var(--plate);}
.o_wviome .wmtext{font-family:'IBM Plex Mono';font-weight:600;font-size:1.05rem;letter-spacing:.03em;color:var(--plate-text);text-align:center;line-height:1.3;}
.o_wviome .cbody{padding:20px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1;}
.o_wviome .ctop{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.o_wviome .cname{font-family:'Big Shoulders Display';font-weight:700;font-size:1.15rem;letter-spacing:.01em;}
.o_wviome .csince{font-family:'IBM Plex Mono';font-size:.7rem;color:var(--ink-soft);white-space:nowrap;}
.o_wviome .cindustry{font-family:'IBM Plex Mono';font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);}
.o_wviome .cdesc{color:var(--ink-soft);font-size:.9rem;margin:0;flex:1;}

.o_wviome .pkggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.o_wviome .pkg{border:1px solid var(--line);padding:26px 24px;background:var(--paper);}
.o_wviome .pkg h4{font-family:'IBM Plex Mono';font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 16px;font-weight:500;}
.o_wviome .pkg ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.o_wviome .pkg li{font-size:.92rem;padding-left:20px;position:relative;color:var(--ink-soft);}
.o_wviome .pkg li::before{content:"—";position:absolute;left:0;color:var(--accent);}

.o_wviome .ctaband{background:var(--plate);color:var(--plate-text);padding:72px 0;border-top:1px solid var(--line);}
.o_wviome .ctaband .wrap{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;}
.o_wviome .ctaband h2{color:var(--plate-text);font-size:clamp(1.9rem,3.6vw,2.8rem);}
.o_wviome .ctaband p{color:#AEC2D1;margin:10px 0 0;font-family:'IBM Plex Mono';font-size:.86rem;}
.o_wviome .ctaband .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
.o_wviome .ctaband .btn.primary:hover{background:var(--plate-text);border-color:var(--plate-text);}
.o_wviome .ctaband .btn.ghost{border-color:var(--line-strong);color:var(--plate-text);}

.o_wviome footer.vfoot{padding:36px 0;font-family:'IBM Plex Mono';font-size:.78rem;color:var(--ink-soft);}
.o_wviome footer.vfoot .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}

/* generic content page (about / privacy) */
.o_wviome .prose{max-width:70ch;}
.o_wviome .prose p{color:var(--ink-soft);margin:0 0 16px;}
.o_wviome .prose h3{margin:32px 0 12px;}
.o_wviome .pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:12px;}

/* contact form — restyle existing Odoo website_form without touching its functional markup */
.o_wviome .vcontact-form .s_website_form_label{font-family:'IBM Plex Mono';font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);width:auto !important;display:block;margin-bottom:6px;}
.o_wviome .vcontact-form .s_website_form_mark{color:var(--accent);}
.o_wviome .vcontact-form .form-control{background:var(--paper);border:1px solid var(--line-strong);border-radius:0;color:var(--ink);font-family:'IBM Plex Sans';padding:11px 14px;}
.o_wviome .vcontact-form .form-control:focus{border-color:var(--accent);box-shadow:none;outline:none;}
.o_wviome .vcontact-form .btn-primary{font-family:'IBM Plex Mono';font-size:.82rem;letter-spacing:.05em;background:var(--ink);border-color:var(--ink);border-radius:0;padding:12px 22px;}
.o_wviome .vcontact-form .btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
.o_wviome .vcontact-side{background:var(--plate);color:var(--plate-text);padding:28px;}
.o_wviome .vcontact-side h5{font-family:'Big Shoulders Display';font-weight:700;font-size:1.2rem;margin:0 0 14px;}
.o_wviome .vcontact-side ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;font-size:.9rem;}
.o_wviome .vcontact-side a{color:var(--plate-text);text-decoration:underline;}
.o_wviome .vcontact-side i{color:var(--accent);margin-right:8px;width:16px;display:inline-block;}

@media (max-width:860px){
  .o_wviome .herogrid{grid-template-columns:1fr;}
  .o_wviome .diagram{max-width:340px;margin:0 auto;}
  .o_wviome .linesgrid,.o_wviome .pkggrid,.o_wviome .pillars{grid-template-columns:1fr;}
  .o_wviome .navlinks{display:none;}
}
@media (max-width:520px){
  .o_wviome .wrap{padding:0 18px;}
  .o_wviome .cplate{flex-basis:82vw;}
  .o_wviome .cnav{width:30px;height:30px;}
}
@media (prefers-reduced-motion: reduce){
  .o_wviome *{animation:none !important;transition:none !important;}
}

/* ============================================================
   MEGA MENU, MOBILE NAV, FOOTER, MODULE/INDUSTRY GRIDS, FAQ,
   TIMELINE — site expansion (2026-09)
   ============================================================ */

/* --- nav row: burger + actions --- */
.o_wviome .navrow{gap:20px;}
.o_wviome .navburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:38px;height:34px;background:none;border:1px solid var(--line-strong);padding:0;cursor:pointer;flex:0 0 auto;}
.o_wviome .navburger span{display:block;width:16px;height:2px;background:var(--ink);margin:0 auto;transition:transform .18s,opacity .18s;}
.o_wviome .navburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.o_wviome .navburger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.o_wviome .navburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.o_wviome .navlinks{align-items:center;flex:1;}
.o_wviome .navactions{display:flex;align-items:center;gap:10px;flex:0 0 auto;}
.o_wviome .navcta.ghost{border-color:var(--line-strong);color:var(--ink-soft);}
.o_wviome .navcta.ghost:hover{background:var(--panel);color:var(--ink);}

/* --- desktop dropdown / mega menu trigger --- */
.o_wviome .navgroup{position:relative;}
.o_wviome .navtrigger{display:flex;align-items:center;gap:6px;background:none;border:none;padding:4px 0;font:inherit;font-size:.92rem;font-weight:500;color:var(--ink-soft);cursor:pointer;}
.o_wviome .navtrigger:hover,.o_wviome .navgroup:hover .navtrigger,.o_wviome .navgroup.open .navtrigger{color:var(--ink);}
.o_wviome .navtrigger svg{transition:transform .15s;flex:0 0 auto;}
.o_wviome .navgroup:hover .navtrigger svg,.o_wviome .navgroup.open .navtrigger svg{transform:rotate(180deg);}

.o_wviome .megapanel{
  position:absolute;top:calc(100% + 17px);left:50%;transform:translateX(-50%);
  width:min(760px,86vw);background:var(--paper);border:1px solid var(--line);box-shadow:0 18px 40px rgba(4,33,61,.14);
  padding:28px;opacity:0;visibility:hidden;transform-origin:top center;translate:0 -6px;
  transition:opacity .16s,visibility .16s,translate .16s;z-index:60;
}
.o_wviome .navgroup:hover .megapanel,.o_wviome .navgroup.open .megapanel,.o_wviome .navtrigger:focus-visible + .megapanel,.o_wviome .megapanel:focus-within{
  opacity:1;visibility:visible;translate:0 0;
}
.o_wviome .megacols{display:grid;grid-template-columns:repeat(var(--megacols,4),1fr);gap:24px;}
.o_wviome .megacol-head{font-family:'IBM Plex Mono';font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;display:block;}
.o_wviome .megacol a{display:block;font-size:.9rem;color:var(--ink-soft);text-decoration:none;padding:6px 0;border-bottom:1px solid transparent;}
.o_wviome .megacol a:hover{color:var(--ink);}
.o_wviome .megafoot{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);}
.o_wviome .megafoot a{font-family:'IBM Plex Mono';font-size:.78rem;color:var(--accent);text-decoration:none;}
.o_wviome .megafoot a:hover{text-decoration:underline;}
.o_wviome .megapanel.narrow{width:min(300px,86vw);}
.o_wviome .megapanel.narrow .megacols{grid-template-columns:1fr;}

/* --- mobile nav drawer --- */
.o_wviome .mobilenav{display:none;}
@media (max-width:860px){
  .o_wviome .navburger{display:flex;}
  .o_wviome .navlinks{display:none;}
  .o_wviome .navactions .navcta.ghost{display:none;}
  .o_wviome .mobilenav{
    display:block;max-height:0;overflow:hidden;border-top:1px solid transparent;
    transition:max-height .22s ease;background:var(--paper);
  }
  .o_wviome header.vnav.is-open .mobilenav{max-height:80vh;overflow-y:auto;border-top:1px solid var(--line);}
  .o_wviome .mobilenav .wrap{padding:18px 28px 26px;display:flex;flex-direction:column;gap:2px;}
  .o_wviome .mobilenav a.mtop{display:block;padding:13px 0;font-size:1rem;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);}
  .o_wviome .mobilenav details{border-bottom:1px solid var(--line);}
  .o_wviome .mobilenav summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:13px 0;font-size:1rem;color:var(--ink);cursor:pointer;}
  .o_wviome .mobilenav summary::-webkit-details-marker{display:none;}
  .o_wviome .mobilenav summary::after{content:"+";font-family:'IBM Plex Mono';color:var(--ink-soft);}
  .o_wviome .mobilenav details[open] summary::after{content:"–";}
  .o_wviome .mobilenav .msublist{display:flex;flex-direction:column;padding:0 0 14px 12px;}
  .o_wviome .mobilenav .msublist a{padding:9px 0;font-size:.92rem;color:var(--ink-soft);text-decoration:none;}
  .o_wviome .mobileactions{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
  .o_wviome .mobileactions .btn{justify-content:center;}
}

/* --- footer (full) --- */
.o_wviome footer.vfoot{padding:0;font-family:'IBM Plex Sans';color:var(--ink-soft);border-top:1px solid var(--line);}
.o_wviome footer.vfoot .foottop{padding:64px 0 40px;}
.o_wviome footer.vfoot .footgrid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:32px;}
.o_wviome footer.vfoot .footbrand img{height:26px;margin-bottom:16px;}
.o_wviome footer.vfoot .footbrand img.logo-dark{display:none;}
@media (prefers-color-scheme: dark){
  .o_wviome footer.vfoot .footbrand img.logo-light{display:none;}
  .o_wviome footer.vfoot .footbrand img.logo-dark{display:block;}
}
.o_wviome footer.vfoot .footbrand p{font-size:.86rem;max-width:32ch;margin:0 0 18px;}
.o_wviome footer.vfoot .footcol-head{font-family:'IBM Plex Mono';font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:14px;display:block;}
.o_wviome footer.vfoot .footcol a{display:block;font-size:.86rem;color:var(--ink-soft);text-decoration:none;padding:5px 0;}
.o_wviome footer.vfoot .footcol a:hover{color:var(--accent);}
.o_wviome footer.vfoot .footbottom{border-top:1px solid var(--line);padding:22px 0;font-family:'IBM Plex Mono';font-size:.76rem;}
.o_wviome footer.vfoot .footbottom .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.o_wviome footer.vfoot .footbottom .flinks{display:flex;gap:18px;flex-wrap:wrap;}
.o_wviome footer.vfoot .footbottom a{color:var(--ink-soft);text-decoration:none;}
.o_wviome footer.vfoot .footbottom a:hover{color:var(--ink);}
@media (max-width:860px){
  .o_wviome footer.vfoot .footgrid{grid-template-columns:1fr 1fr;gap:28px 20px;}
  .o_wviome footer.vfoot .footbrand{grid-column:1/-1;}
}
@media (max-width:520px){
  .o_wviome footer.vfoot .footgrid{grid-template-columns:1fr 1fr;}
}

/* --- breadcrumb --- */
.o_wviome .crumbs{font-family:'IBM Plex Mono';font-size:.76rem;color:var(--ink-soft);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
.o_wviome .crumbs a{color:var(--ink-soft);text-decoration:none;}
.o_wviome .crumbs a:hover{color:var(--accent);}
.o_wviome .crumbs .sep{opacity:.5;}
.o_wviome .crumbs .here{color:var(--ink);}

/* --- module / solution / industry grid cards --- */
.o_wviome .modgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.o_wviome .modgrid.cols-4{grid-template-columns:repeat(4,1fr);}
.o_wviome .modcard{background:var(--panel);border:1px solid var(--line);padding:26px 24px;display:flex;flex-direction:column;gap:10px;transition:border-color .18s,transform .18s;}
.o_wviome .modcard:hover{border-color:var(--accent);transform:translateY(-3px);}
.o_wviome .modcard .micon{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);color:var(--accent);flex:0 0 auto;}
.o_wviome .modcard h4{font-family:'Big Shoulders Display';font-weight:700;font-size:1.15rem;margin:6px 0 0;color:var(--ink);}
.o_wviome .modcard p{font-size:.88rem;color:var(--ink-soft);margin:0;flex:1;}
.o_wviome .modcard .mlink{font-family:'IBM Plex Mono';font-size:.76rem;color:var(--accent);text-decoration:none;margin-top:4px;}
.o_wviome .modcard .mlink:hover{text-decoration:underline;}
.o_wviome .modcard.soon{opacity:.7;}
.o_wviome .modcard .stag{font-family:'IBM Plex Mono';font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);}

/* --- timeline / process steps --- */
.o_wviome .timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 20px;}
.o_wviome .tlstep{border-top:2px solid var(--line-strong);padding-top:16px;position:relative;}
.o_wviome .tlstep .tlnum{font-family:'Big Shoulders Display';font-weight:900;font-size:2rem;color:var(--panel-2);line-height:1;}
.o_wviome .tlstep h4{font-family:'IBM Plex Sans';font-weight:600;font-size:.98rem;color:var(--ink);margin:8px 0 6px;}
.o_wviome .tlstep p{font-size:.84rem;color:var(--ink-soft);margin:0;}
@media (max-width:860px){.o_wviome .timeline{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.o_wviome .timeline{grid-template-columns:1fr;}}

/* --- FAQ (native details/summary, no JS) --- */
.o_wviome .faqlist{max-width:820px;}
.o_wviome .faqitem{border-bottom:1px solid var(--line);}
.o_wviome .faqitem summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;cursor:pointer;font-family:'IBM Plex Sans';font-weight:600;color:var(--ink);}
.o_wviome .faqitem summary::-webkit-details-marker{display:none;}
.o_wviome .faqitem summary::after{content:"+";font-family:'IBM Plex Mono';color:var(--accent);flex:0 0 auto;}
.o_wviome .faqitem[open] summary::after{content:"–";}
.o_wviome .faqitem .faqa{padding:0 0 22px;color:var(--ink-soft);max-width:70ch;}
.o_wviome .faqitem .faqa p{margin:0 0 12px;}

/* --- benefit / stat row, integration chips --- */
.o_wviome .benefitgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.o_wviome .benefit{border-left:2px solid var(--accent);padding:4px 0 4px 16px;}
.o_wviome .benefit h4{font-family:'Big Shoulders Display';font-weight:700;font-size:1.05rem;margin:0 0 6px;color:var(--ink);}
.o_wviome .benefit p{font-size:.85rem;color:var(--ink-soft);margin:0;}
@media (max-width:860px){.o_wviome .benefitgrid{grid-template-columns:1fr 1fr;}}

.o_wviome .whogrid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.o_wviome .whoitem{display:flex;gap:12px;align-items:flex-start;padding:16px;background:var(--panel);border:1px solid var(--line);}
.o_wviome .whoitem .wicheck{color:var(--accent);flex:0 0 auto;margin-top:2px;}
.o_wviome .whoitem p{margin:0;font-size:.9rem;color:var(--ink-soft);}
@media (max-width:860px){.o_wviome .whogrid{grid-template-columns:1fr;}}

.o_wviome .kicker-note{font-family:'IBM Plex Mono';font-size:.76rem;color:var(--ink-soft);background:var(--panel);border:1px dashed var(--line-strong);padding:10px 14px;display:inline-block;margin-top:16px;}

@media (max-width:860px){
  .o_wviome .modgrid,.o_wviome .modgrid.cols-4{grid-template-columns:1fr 1fr;}
  .o_wviome .megapanel{position:static;transform:none;width:100%;box-shadow:none;}
}
@media (max-width:520px){
  .o_wviome .modgrid,.o_wviome .modgrid.cols-4{grid-template-columns:1fr;}
}
