/* =========================================================
   Veleban — Shared design system
   Εξαγωγή από veleban-final.html / service-it-support.html
   Χρησιμοποιείται από τις δευτερεύουσες σελίδες (solution-*, work-*)
   ========================================================= */

/* ===== Design tokens — ΙΔΙΑ με veleban-final.html ===== */
:root{
  --navy:#0b2545; --navy-2:#13315c; --accent:#1f3e66; --accent-dark:#16304f; --accent-hover:#476791;
  --bg:#edf1f6; --bg-soft:#e3e9f1; --surface:#fafbfd; --bg-navy:#0b2545;
  --text:#1c2b3a; --muted:#5b6b7c; --line:#e3e8ef; --line-navy:#1d3a5f; --ok:#1e7f4f;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(1100px 640px at 6% -8%, #1f3e661f, transparent 58%),
    radial-gradient(940px 640px at 110% 4%, #12346b1a, transparent 54%),
    linear-gradient(180deg,#e9eff8 0%, #e2eaf4 100%);
  background-attachment:fixed;
  color:var(--text);
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,'Helvetica Neue',Arial,sans-serif;
  line-height:1.65;font-size:16px;position:relative;
}
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.55;
  background-image:linear-gradient(#0b25450d 1px,transparent 1px),linear-gradient(90deg,#0b25450d 1px,transparent 1px);
  background-size:42px 42px;
  -webkit-mask-image:radial-gradient(circle at 50% 26%, #000, transparent 82%);
  mask-image:radial-gradient(circle at 50% 26%, #000, transparent 82%);
}
::selection{background:#1f3e6626}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.wide{width:100%;max-width:calc(100vw - 640px);margin:0 auto;padding:0 24px}
@media(max-width:1500px){.wide{max-width:calc(100vw - 320px)}}
@media(max-width:1100px){.wide{max-width:calc(100vw - 96px)}}
@media(max-width:960px){.wide{max-width:calc(100vw - 64px)}}
@media(min-width:1720px){.wide{max-width:1560px}}

/* ===== Top bar + Nav ===== */
.topbar{background:var(--navy);color:#c8d6e8;font-size:.82rem}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:36px}
.topbar a{color:#c8d6e8;text-decoration:none}
.topbar a:hover{color:#fff}
.topbar .right{display:flex;gap:22px}
@media(max-width:640px){.topbar .right span:first-child{display:none}}
nav{position:sticky;top:0;z-index:50;background:#f2f5faee;backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:72px}
.logo{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--navy)}
.logo-mark{display:none;position:relative;width:48px;height:48px;border-radius:13px;background:linear-gradient(135deg,#2a5691,var(--navy));place-items:center;box-shadow:0 4px 12px -3px rgba(31,62,102,.5);flex:none}.logo-mark::before{content:"";position:absolute;inset:5px;border:1.6px solid rgba(255,255,255,.55);border-radius:8px;pointer-events:none}
.logo-mark svg{width:27px;height:27px;stroke:#fff;fill:none;stroke-width:2}
.logo .name{font-size:1.3rem;font-weight:800;letter-spacing:.3px}
.logo .name small{display:block;font-size:.62rem;font-weight:600;letter-spacing:1.6px;color:var(--muted);text-transform:uppercase}
.nav-links{display:flex;gap:32px;align-items:center}
.nav-links a{color:var(--text);text-decoration:none;font-size:.95rem;font-weight:500;transition:color .2s}
.nav-links a:not(.btn){position:relative;padding:6px 0;color:var(--navy)}.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:var(--accent);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .22s cubic-bezier(.2,.7,.3,1)}.nav-links a:not(.btn):hover::after,.nav-links a:not(.btn).active::after{transform:scaleX(1)}.nav-links a:not(.btn):hover{color:var(--accent)}.nav-links .btn{margin-left:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 28px;border-radius:14px;font-weight:600;font-size:.95rem;text-decoration:none;transition:background .2s,box-shadow .2s,transform .15s;cursor:pointer;border:none;font-family:inherit}
.btn-primary{background:linear-gradient(135deg,#2a5691,var(--accent));color:#fff!important;box-shadow:0 8px 20px -6px rgba(31,62,102,.55)}
.btn-primary:hover{background:linear-gradient(135deg,#3a68a6,var(--accent-hover));transform:translateY(-2px);box-shadow:0 14px 26px -8px rgba(31,62,102,.6)}.nav-inner{min-height:76px}.nav-links .btn-primary{border-radius:999px;padding:11px 24px;font-weight:700}.nav-links .btn-primary::after{content:"→";margin-left:8px;font-weight:700;transition:transform .2s}.nav-links .btn-primary:hover::after{transform:translateX(3px)}
.btn-light{background:#fff;color:var(--navy)}
.btn-light:hover{background:#e9eef5}
@media(max-width:880px){.nav-links a:not(.btn){display:none}}

/* ===== Subpage hero — navy band ===== */
.subhero{background:linear-gradient(150deg,var(--navy),#13315c);color:#fff;position:relative;overflow:hidden;margin:18px 18px 0;border-radius:28px}
@media(max-width:960px){.subhero{margin:10px 10px 0;border-radius:20px}}
.subhero .wide{position:relative;z-index:1;padding-top:64px;padding-bottom:64px}
@media(max-width:960px){.subhero .wide{padding-top:44px;padding-bottom:44px}}
.crumb{font-size:.82rem;color:#8fa9c9;margin-bottom:20px}
.crumb a{color:#8fa9c9;text-decoration:none}.crumb a:hover{color:#fff}
.crumb span{margin:0 7px;color:#4d6488}
.kicker{display:inline-flex;align-items:center;gap:9px;font-size:.8rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#8fbdf0}
.kicker::before{content:"";width:26px;height:2px;background:#8fbdf0}
.subhero h1{font-size:clamp(2.1rem,4.4vw,3.3rem);line-height:1.1;font-weight:800;letter-spacing:-1px;max-width:820px;margin:14px 0 16px}
.subhero .sub{color:#b9c9dd;font-size:1.06rem;line-height:1.75;max-width:660px;margin-bottom:28px}
.subhero .sub strong{color:#fff}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.badge{display:inline-flex;align-items:center;gap:8px;background:#ffffff12;border:1px solid #ffffff2a;border-radius:999px;padding:8px 14px;font-size:.8rem;font-weight:600;color:#cfe0f5}
.badge svg{width:15px;height:15px;stroke:#8fbdf0;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ===== Sections ===== */
section{padding:96px 0}
@media(max-width:960px){section{padding:60px 0}}
.split-head{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:end;margin-bottom:56px}
@media(max-width:960px){.split-head{grid-template-columns:1fr;gap:20px;margin-bottom:40px}}
.split-head .kicker{color:var(--accent)}
.split-head .kicker::before{background:var(--accent)}
.split-head h2{font-size:clamp(1.9rem,3.3vw,2.65rem);font-weight:800;color:var(--navy);letter-spacing:-.4px;line-height:1.16;margin-top:14px}
.split-head>p{color:var(--muted);font-size:1.05rem;line-height:1.78;padding-bottom:8px;border-left:3px solid #c8dcf2;padding-left:26px}
@media(max-width:960px){.split-head>p{border-left:none;padding-left:0}}
.split-head>p strong{color:var(--navy)}

/* ===== solx cards ===== */
.cardgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
@media(max-width:760px){.cardgrid{grid-template-columns:1fr}}
.solx{--ca:var(--accent);position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:30px 28px 20px;display:flex;flex-direction:column;transition:transform .3s,box-shadow .35s,border-color .35s,background .35s}
.solx::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--ca);opacity:.9;z-index:3}
.solx:hover{transform:translateY(-5px);box-shadow:0 22px 48px -18px #0b254526;border-color:#bcd0ea;background:#fbfdff;border-color:color-mix(in srgb,var(--ca) 40%,#e3e8ef);background:color-mix(in srgb,var(--ca) 3%,#fff)}
.solx-cat{font-family:'Consolas',monospace;font-size:.72rem;font-weight:800;color:var(--ca);letter-spacing:1.4px;margin-bottom:22px}
.solx h3{font-size:1.2rem;font-weight:800;color:var(--navy);letter-spacing:-.3px;line-height:1.24;margin-bottom:9px}
.solx>p{color:var(--muted);font-size:.92rem;line-height:1.65;margin-bottom:16px}
.solx ul{list-style:none;margin:auto 0 0;padding:0}
.solx ul li{font-size:.88rem;color:#4b5a70;padding:11px 2px;border-top:1px solid var(--line);transition:color .25s,padding-left .25s}
.solx:hover ul li{color:var(--navy)}
.solx ul li:hover{padding-left:8px;color:var(--ca)}
.solx ul li.check::before{content:"✓ ";color:var(--ca);font-weight:800}
.svcx-ico{width:52px;height:52px;border-radius:13px;background:color-mix(in srgb,var(--ca) 10%,#fff);border:1px solid color-mix(in srgb,var(--ca) 28%,#fff);display:grid;place-items:center;margin-bottom:18px}
.svcx-ico svg{width:26px;height:26px;stroke:var(--ca);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* tiers */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}
@media(max-width:900px){.tiers{grid-template-columns:1fr}}
.tier-resp{display:inline-block;font-size:.78rem;font-weight:700;color:var(--ca);background:color-mix(in srgb,var(--ca) 9%,#fff);border:1px solid color-mix(in srgb,var(--ca) 26%,#fff);border-radius:6px;padding:4px 11px;margin-bottom:16px}
.solx.hot{border-color:color-mix(in srgb,var(--ca) 45%,#e3e8ef);box-shadow:0 24px 54px -24px #0b254545}
.hot-tag{position:absolute;top:14px;right:16px;background:var(--ca);color:#fff;font-size:.66rem;font-weight:800;letter-spacing:.1em;padding:5px 11px;border-radius:999px;z-index:4}

/* ===== Ροή βημάτων (method panel) ===== */
.method-panel{background:linear-gradient(180deg,#ffffffd9 0%,#f3f7fce8 100%);border:1px solid #dfe8f3;border-radius:36px;padding:64px 68px 56px;box-shadow:0 26px 60px -38px #0b254545}
@media(max-width:960px){.method-panel{padding:40px 24px 36px;border-radius:24px}}
.cycle{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:46px}
.cycle.c4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.cycle,.cycle.c4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cycle,.cycle.c4{grid-template-columns:1fr}}
.step{background:#fff;border:1px solid #dfe8f3;border-radius:16px;padding:24px 22px 20px;box-shadow:0 14px 32px -24px #0b254550;transition:transform .35s cubic-bezier(.2,.7,.3,1),border-color .3s,box-shadow .35s}
.step:hover{transform:translateY(-5px);border-color:#b9cbe2;box-shadow:0 24px 44px -24px #0b254566}
.s-idx{display:inline-block;vertical-align:middle;font-size:1.55rem;font-weight:800;letter-spacing:-.5px;line-height:1;margin-right:10px;color:transparent;-webkit-text-stroke:1.3px var(--accent)}
.step h4{display:inline-block;vertical-align:middle;color:var(--navy);margin:0;font-size:1.02rem;font-weight:800}
.step p{color:var(--muted);font-size:.85rem;line-height:1.62;margin-top:11px}

/* ===== Navy band ===== */
.band{background:linear-gradient(150deg,var(--navy),#13315c);color:#fff;position:relative;overflow:hidden;margin:0 18px;border-radius:28px}
@media(max-width:960px){.band{margin:0 10px;border-radius:20px}}
.band .wide{position:relative;z-index:1;padding-top:88px;padding-bottom:88px}
.band .kicker{color:#8fbdf0}.band .kicker::before{background:#8fbdf0}
.band h2{font-size:clamp(1.8rem,3vw,2.5rem);font-weight:800;color:#fff;letter-spacing:-.4px;line-height:1.2;margin:14px 0 16px;max-width:780px}
.band .lead{color:#b9c9dd;font-size:1.03rem;line-height:1.75;max-width:720px;margin-bottom:48px}
.prods{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:900px){.prods{grid-template-columns:1fr}}
.prod{display:flex;flex-direction:column;background:#ffffff10;border:1px solid #ffffff26;border-radius:16px;padding:32px 28px;backdrop-filter:blur(6px);transition:transform .35s cubic-bezier(.2,.7,.3,1),background .3s,border-color .3s}
.prod:hover{transform:translateY(-6px);background:#ffffff1a;border-color:#8fbdf088}
.prod-ico{width:48px;height:48px;border-radius:13px;background:#ffffff16;border:1px solid #ffffff33;display:grid;place-items:center;margin-bottom:20px;transition:transform .4s cubic-bezier(.2,.7,.3,1)}
.prod:hover .prod-ico{transform:translateY(-3px)}
.prod-ico svg{width:23px;height:23px;stroke:#cfe0f5;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.prod b{font-size:.7rem;font-weight:800;color:#8fbdf0;letter-spacing:.12em}
.prod h3{font-size:1.16rem;font-weight:800;color:#fff;letter-spacing:-.2px;margin:8px 0 10px}
.prod p{color:#b9c9dd;font-size:.92rem;line-height:1.68}

/* για ποιους */
.aud{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.aud span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 16px;font-size:.85rem;font-weight:600;color:#3a4b63;transition:.2s}
.aud span:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}

/* ===== FAQ ===== */
.faq-grid{display:grid;grid-template-columns:.9fr 1.4fr;gap:64px;align-items:start}
@media(max-width:900px){.faq-grid{grid-template-columns:1fr;gap:36px}}
.faq-intro{position:sticky;top:96px}
@media(max-width:900px){.faq-intro{position:static}}
.faq-intro .kicker{color:var(--accent)}.faq-intro .kicker::before{background:var(--accent)}
.faq-intro h2{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:800;color:var(--navy);letter-spacing:-.4px;line-height:1.15;margin:12px 0 16px}
.faq-intro>p{color:var(--muted);font-size:1rem;line-height:1.75;max-width:380px}
.faq-list details{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:12px;transition:border-color .3s,box-shadow .3s}
.faq-list details:hover{border-color:#bcd0ea}
.faq-list details[open]{border-color:#bcd0ea;box-shadow:0 14px 34px -24px #0b254545}
.faq-list summary{cursor:pointer;padding:19px 22px;font-weight:600;color:var(--navy);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:.98rem}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-size:1.35rem;color:var(--accent);line-height:1;transition:transform .25s;flex-shrink:0}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{padding:0 22px 19px;color:var(--muted);font-size:.93rem;line-height:1.7}

/* ===== CTA ===== */
.cta-band{background:linear-gradient(150deg,var(--navy),#13315c);color:#fff;margin:0 18px 96px;border-radius:28px;overflow:hidden;position:relative}
@media(max-width:960px){.cta-band{margin:0 10px 60px;border-radius:20px}}
.cta-band .wide{position:relative;z-index:1;padding-top:72px;padding-bottom:72px}
.cta-band .kicker{color:#8fbdf0}.cta-band .kicker::before{background:#8fbdf0}
.cta-band h2{font-size:clamp(1.8rem,3vw,2.5rem);font-weight:800;letter-spacing:-.4px;line-height:1.2;margin:14px 0 14px;max-width:760px}
.cta-band p{color:#b9c9dd;font-size:1.03rem;line-height:1.75;max-width:640px;margin-bottom:28px}

/* ===== Footer ===== */
footer{background:var(--navy);color:#9db8d8;font-size:.9rem;padding:56px 0 30px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:36px;margin-bottom:40px}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
footer h5{color:#fff;margin-bottom:14px;font-size:.92rem;letter-spacing:.5px}
footer a{display:block;color:#9db8d8;text-decoration:none;padding:4px 0;transition:color .2s}
footer a:hover{color:#fff}
.foot-about p{margin-top:14px;max-width:300px;font-size:.86rem}
.foot-bottom{border-top:1px solid var(--line-navy);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.78rem;color:#6f8cad}

/* ===== Case-study helpers (work-* σελίδες) ===== */
.showcase{margin:0 18px;border-radius:28px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 70px -40px #0b254566}
@media(max-width:960px){.showcase{margin:0 10px;border-radius:20px}}
.showcase img{display:block;width:100%;height:clamp(260px,42vw,520px);object-fit:cover}
.narrative{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:820px){.narrative{grid-template-columns:1fr}}
.ncard{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:34px 32px;position:relative;overflow:hidden}
.ncard::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);opacity:.9}
.ncard.full{grid-column:1/-1}
.ncard .kicker{color:var(--accent);margin-bottom:14px}.ncard .kicker::before{background:var(--accent)}
.ncard h3{font-size:1.32rem;font-weight:800;color:var(--navy);letter-spacing:-.3px;margin-bottom:12px}
.ncard p{color:var(--muted);font-size:.98rem;line-height:1.75}
.ncard ul{list-style:none;margin:14px 0 0;padding:0}
.ncard ul li{font-size:.95rem;color:#3a4b63;padding:10px 0;border-top:1px solid var(--line);padding-left:26px;position:relative}
.ncard ul li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:800}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:700px){.metrics{grid-template-columns:1fr}}
.metric{background:#ffffff10;border:1px solid #ffffff26;border-radius:16px;padding:30px 28px;backdrop-filter:blur(6px)}
.metric .big{font-size:2.4rem;font-weight:800;color:#fff;letter-spacing:-1px;line-height:1}
.metric .lbl{color:#b9c9dd;font-size:.92rem;margin-top:10px}
.stack{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.stack span{background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 15px;font-size:.85rem;font-weight:600;color:#3a4b63}

/* Reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .55s ease,transform .55s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
