/* Roboto Flex, φιλοξενείται τοπικά (assets/fonts, άδεια OFL): χωρίς κλήσεις στη Google */
@font-face { font-family: 'Roboto Flex'; font-style: normal; font-display: swap; font-weight: 100 1000; font-stretch: 25% 151%; src: url(../fonts/roboto-flex-greek.woff2) format('woff2-variations'), url(../fonts/roboto-flex-greek.woff2) format('woff2'); unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family: 'Roboto Flex'; font-style: normal; font-display: swap; font-weight: 100 1000; font-stretch: 25% 151%; src: url(../fonts/roboto-flex-latin-ext.woff2) format('woff2-variations'), url(../fonts/roboto-flex-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Roboto Flex'; font-style: normal; font-display: swap; font-weight: 100 1000; font-stretch: 25% 151%; src: url(../fonts/roboto-flex-latin.woff2) format('woff2-variations'), url(../fonts/roboto-flex-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; }
/* SIGMA SECURITY — site.css
   Χρώματα από το brand book: Pantone 2945 C (#004C97), Cool Grey 11 C (#53565A).
   Η γεωμετρία των λοξών ζωνών προέρχεται από το σήμα (brand sign) της SIGMA. */

:root {
  --blue: #004c97;
  --blue-deep: #003366;
  --blue-ink: #0a2e57;
  --mist: #dce6ef;
  --mist-soft: #eef3f8;
  --grey: #53565a;
  --grey-2: #8a8d91;
  --line: #e1e6ec;
  --graphite: #232223;
  --graphite-2: #2e2c2e;
  --white: #ffffff;
  --text: #1d2228;
  --flash: #2f7bff;

  --font: "Roboto Flex", "Roboto", "Helvetica Neue", Arial, system-ui, sans-serif;
  --step--1: clamp(0.84rem, 0.82rem + 0.1vw, 0.9rem);
  --step-0: clamp(1rem, 0.97rem + 0.15vw, 1.08rem);
  --step-1: clamp(1.2rem, 1.12rem + 0.35vw, 1.4rem);
  --step-2: clamp(1.5rem, 1.33rem + 0.8vw, 2rem);
  --step-3: clamp(1.9rem, 1.6rem + 1.5vw, 2.9rem);
  --step-4: clamp(2.4rem, 1.8rem + 3vw, 4.4rem);

  --wrap: 1240px;
  --gutter: clamp(1.1rem, 0.6rem + 2.4vw, 2.5rem);
  --slant: 4.5vw;
  --radius: 6px;
}

[hidden] { display: none !important; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body {
  margin: 0; font-family: var(--font); font-size: var(--step-0); line-height: 1.6;
  color: var(--text); background: var(--white);
  font-optical-sizing: auto; text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--blue); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--blue-deep); }
:focus-visible { outline: 3px solid #5aa0ff; outline-offset: 2px; border-radius: 3px; }
h1, h2, h3, h4 { font-stretch: 112%; line-height: 1.12; letter-spacing: -0.015em; margin: 0 0 0.5em; color: inherit; }
h1 { font-size: var(--step-4); font-weight: 750; }
h2 { font-size: var(--step-3); font-weight: 720; }
h3 { font-size: var(--step-1); font-weight: 680; }
p { margin: 0 0 1em; max-width: 68ch; }
.wrap { width: min(100% - 2 * var(--gutter), var(--wrap)); margin-inline: auto; }
.lede { font-size: var(--step-1); line-height: 1.5; color: var(--grey); max-width: 58ch; }
.muted { color: var(--grey); }
.small { font-size: var(--step--1); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; background: var(--blue); color: #fff; padding: .6rem 1rem; z-index: 100; }
.skip:focus { left: 1rem; top: 1rem; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .55rem; justify-content: center;
  font: inherit; font-weight: 600; font-size: var(--step-0); line-height: 1;
  padding: .95rem 1.35rem; border-radius: var(--radius); border: 1.5px solid transparent;
  text-decoration: none; cursor: pointer; transition: background .15s, color .15s, border-color .15s;
}
.btn-primary { background: var(--blue); color: #fff; }
.btn-primary:hover { background: var(--blue-deep); color: #fff; }
.btn-light { background: #fff; color: var(--blue-ink); }
.btn-light:hover { background: var(--mist); color: var(--blue-ink); }
.btn-ghost { border-color: currentColor; color: inherit; background: transparent; }
.btn-ghost:hover { background: rgba(127,127,127,.12); color: inherit; }
.btn-sm { padding: .6rem .9rem; font-size: var(--step--1); }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--line); }
.nav { display: flex; align-items: center; gap: 1.5rem; height: 72px; }
.nav-logo img { height: 34px; width: auto; }
.nav-menu { display: flex; align-items: center; gap: .25rem; margin: 0 0 0 auto; padding: 0; list-style: none; }
.nav-menu > li { position: relative; }
.nav-menu > li > a, .nav-menu > li > button {
  display: block; padding: .6rem .8rem; color: var(--text); text-decoration: none; font: inherit; font-size: .97rem; font-weight: 560;
  background: none; border: 0; cursor: pointer; border-radius: var(--radius);
}
.nav-menu > li > a:hover, .nav-menu > li > button:hover, .nav-menu > li > a[aria-current="page"] { color: var(--blue); background: var(--mist-soft); }
.nav-menu > li > button::after { content: ""; display: inline-block; width: .42em; height: .42em; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: translateY(-.2em) rotate(45deg); margin-left: .45em; }
.nav-cta { display: flex; gap: .5rem; align-items: center; }
.nav-pro { font-weight: 600; font-size: .95rem; text-decoration: none; color: var(--grey); padding: .55rem .7rem; }
.nav-pro:hover { color: var(--blue); }
/* ---- Μενού: μεγάλα πάνελ με μικρογραφίες */
.nav { position: relative; }
.nav-menu > li.mega { position: static; }
.nav-menu > li.open > button { color: var(--blue); background: var(--mist-soft); }
.nav-menu > li.open > button::after { transform: translateY(.05em) rotate(225deg); }
.drop { display: none; }
.mega-panel {
  position: absolute; top: calc(100% + 1px); left: 0; right: 0; z-index: 60;
  background: #fff; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 14px 14px;
  box-shadow: 0 30px 60px -30px rgba(10,46,87,.45); padding: 1.25rem; gap: 1.25rem;
  grid-template-columns: minmax(0, 1fr) 280px;
}
.nav-menu li.open .mega-panel { display: grid; animation: megaIn .18s ease-out; }
@keyframes megaIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.mthumb { flex: none; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 10px; background: var(--mist-soft); overflow: hidden; }
.mthumb img { width: 84%; height: 84%; object-fit: contain; mix-blend-mode: multiply; transition: transform .25s ease; }
.mthumb.lg { width: 112px; height: 112px; border-radius: 12px; }
.mthumb.wide { width: 100%; height: 118px; border-radius: 10px; }
.mthumb.wide img { width: 80%; height: 82%; }
.mtxt { display: grid; gap: .1rem; min-width: 0; }
.mtxt strong { font-weight: 640; color: var(--blue-ink); font-size: .98rem; line-height: 1.25; }
.mtxt span { font-size: .84rem; color: var(--grey); line-height: 1.35; }
.mtxt em { font-style: normal; font-size: .78rem; font-weight: 600; color: var(--blue); margin-top: .3rem; }

.mgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; align-content: start; }
.mcard { position: relative; display: flex; align-items: center; gap: .8rem; padding: .55rem .6rem; border-radius: 12px; text-decoration: none; border: 1px solid transparent; transition: background .15s, border-color .15s; }
.mcard:hover, .mbig:hover, .msiren:hover { background: var(--mist-soft); border-color: var(--line); }
.mcard:hover .mthumb img, .mbig:hover .mthumb img, .msiren:hover .mthumb img { transform: scale(1.08); }
.mcard:hover strong, .mbig:hover strong, .msiren:hover strong { color: var(--blue); }
.mcount { position: absolute; top: .55rem; right: .65rem; font-size: .72rem; font-weight: 650; color: var(--grey-2); font-variant-numeric: tabular-nums; }

.mrow { display: grid; gap: .6rem; align-content: start; }
.mrow.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mrow.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mbig { display: flex; align-items: center; gap: 1rem; padding: .8rem; border-radius: 14px; text-decoration: none; border: 1px solid transparent; }
.mbig .mtxt strong { font-size: 1.2rem; font-stretch: 112%; }
.msiren { display: grid; align-content: start; gap: .6rem; padding: .55rem; border-radius: 14px; text-decoration: none; border: 1px solid transparent; }

.maside { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: .9rem; justify-content: flex-end; padding: 1.25rem; border-radius: 14px; background: var(--blue); color: #fff; min-height: 220px; }
.maside .sign-bars { position: absolute; top: -18px; right: -40px; width: 220px; opacity: .14; pointer-events: none; }
.maside strong { font-size: 1.08rem; font-weight: 650; line-height: 1.3; display: block; position: relative; }
.maside p { margin: .35rem 0 0; font-size: .86rem; color: rgba(255,255,255,.82); position: relative; }
.maside .btn { align-self: flex-start; position: relative; }
.maside .mall { color: #fff; font-size: .86rem; font-weight: 600; position: relative; }
.maside.soft { background: var(--mist-soft); color: var(--text); }
.maside.soft strong { color: var(--blue-ink); }
.maside.soft p { color: var(--grey); }
.maside.soft .mall { color: var(--blue); }

.mtool { position: relative; display: block; overflow: hidden; border-radius: 14px; min-height: 200px; text-decoration: none; background: var(--blue-ink); }
.mtool img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.mtool::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,46,87,0) 30%, rgba(10,46,87,.88)); }
.mtool > span { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; z-index: 1; display: grid; gap: .15rem; }
.mtool strong { color: #fff; font-weight: 650; }
.mtool span span { color: rgba(255,255,255,.85); font-size: .84rem; }
.mtool:hover img { transform: scale(1.05); }

.nav-toggle { display: none; margin-left: auto; background: none; border: 0; padding: .6rem; cursor: pointer; }
.nav-toggle span { display: block; width: 24px; height: 2px; background: var(--text); margin: 5px 0; }

@media (max-width: 1080px) {
  .nav-toggle { display: block; }
  .nav-menu, .nav-cta { display: none; }
  .site-header.menu-open .nav-menu { display: flex; flex-direction: column; align-items: stretch; position: absolute; left: 0; right: 0; top: 72px; background: #fff; padding: 1rem var(--gutter) 1rem; border-bottom: 1px solid var(--line); max-height: calc(100vh - 72px); overflow: auto; gap: 0; }
  .site-header.menu-open .nav-cta { display: flex; position: absolute; left: 0; right: 0; top: calc(100vh - 80px); padding: 0 var(--gutter); }
  .nav-menu > li.open .mega-panel { display: block; position: static; box-shadow: none; border: 0; border-radius: 0; padding: 0 0 .75rem; animation: none; }
  .mgrid, .mrow.two, .mrow.four { grid-template-columns: 1fr; gap: .1rem; }
  .mcard, .mbig, .msiren { display: flex; align-items: center; gap: .75rem; padding: .45rem .4rem; }
  .mthumb, .mthumb.lg, .mthumb.wide { width: 48px; height: 48px; border-radius: 9px; }
  .mbig .mtxt strong { font-size: 1rem; }
  .mtxt em, .mcount { display: none; }
  .maside { min-height: 0; margin-top: .6rem; padding: 1rem; }
  .maside .sign-bars { display: none; }
  .mtool { min-height: 120px; margin-top: .6rem; }
  .nav-menu > li > a, .nav-menu > li > button { width: 100%; text-align: left; padding: .8rem .4rem; }
}

/* ---------- Sections and slant motif ---------- */
.section { padding-block: clamp(3.5rem, 2rem + 6vw, 7rem); }
.section-tight { padding-block: clamp(2.5rem, 1.5rem + 3vw, 4rem); }
.band-mist { background: var(--mist-soft); }
.band-dark { background: var(--graphite); color: #eef1f4; }
.band-blue { background: var(--blue); color: #fff; }
.slant-top { clip-path: polygon(0 var(--slant), 100% 0, 100% 100%, 0 100%); margin-top: calc(var(--slant) * -1); padding-top: calc(clamp(3.5rem, 2rem + 6vw, 7rem) + var(--slant)); }
.slant-bottom { clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--slant)), 0 100%); padding-bottom: calc(clamp(3.5rem, 2rem + 6vw, 7rem) + var(--slant)); }
.section-head { display: grid; gap: .5rem; margin-bottom: clamp(2rem, 1.5rem + 2vw, 3.2rem); max-width: 760px; }
.section-head p { margin: 0; }

/* the two bars of the SIGMA sign, used as a quiet background structure */
.sign-bars { position: absolute; pointer-events: none; }
.sign-bars svg { width: 100%; height: auto; display: block; }

/* ---------- Hero ---------- */
.hero { position: relative; background: var(--graphite); color: #f2f4f7; overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--slant)), 0 100%); }
.hero-grid { display: grid; grid-template-columns: 1.02fr 1fr; align-items: center; gap: 2rem; min-height: min(86vh, 760px); padding-block: 4rem calc(4rem + var(--slant)); }
.hero h1 { color: #fff; max-width: 14ch; }
.hero .lede { color: #c3c9d1; }
.hero-made { display: flex; gap: .75rem; align-items: center; margin-top: 2.2rem; color: #aab2bc; font-size: var(--step--1); }
.hero-made img { width: 30px; }
.hero-stage { position: relative; display: grid; place-items: center; min-height: 420px; }
.hero-stage .glow {
  position: absolute; inset: 18% 6% 8%; border-radius: 50%;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--flash) 70%, transparent), transparent 72%);
  filter: blur(18px); opacity: .55; animation: flash 2.6s ease-in-out infinite;
}
@keyframes flash { 0%, 60%, 100% { opacity: .28; } 8%, 18% { opacity: .85; } 13% { opacity: .45; } }
.hero-stage img.siren { position: relative; width: min(100%, 560px); filter: drop-shadow(0 40px 40px rgba(0,0,0,.55)); transition: opacity .25s; }
.hero-stage .bars { position: absolute; right: -8%; top: 4%; width: 74%; opacity: .07; }
.swatches { position: relative; display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-top: 1.4rem; }
.swatch {
  display: inline-flex; align-items: center; gap: .55rem; padding: .45rem .8rem .45rem .45rem; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.04); color: #dfe4ea; font: inherit; font-size: .88rem; cursor: pointer;
}
.swatch[aria-pressed="true"] { border-color: #fff; background: rgba(255,255,255,.12); color: #fff; }
.swatch i { width: 22px; height: 22px; border-radius: 50%; display: inline-block; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); }
.swatch-caption { text-align: center; color: #9aa3ae; font-size: var(--step--1); margin-top: .7rem; }
@media (max-width: 900px) { .hero-grid { grid-template-columns: 1fr; min-height: 0; padding-top: 3rem; } .hero-stage { min-height: 300px; } }

/* ---------- Facts line ---------- */
.facts { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.facts div { padding: 1.4rem 1.2rem; border-left: 1px solid var(--line); }
.facts div:first-child { border-left: 0; padding-left: 0; }
.facts strong { display: block; font-stretch: 115%; font-size: var(--step-1); color: var(--blue-ink); }
.facts span { color: var(--grey); font-size: var(--step--1); }
@media (max-width: 760px) { .facts { grid-template-columns: 1fr 1fr; } .facts div:nth-child(3) { border-left: 0; padding-left: 0; } .facts div { border-top: 1px solid var(--line); } .facts div:nth-child(-n+2) { border-top: 0; } }

/* ---------- Need picker ---------- */
.needs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.need {
  position: relative; display: grid; align-content: end; gap: .3rem; min-height: 240px; padding: 1.5rem; border-radius: 10px; text-decoration: none; color: var(--blue-ink);
  background: var(--mist-soft); overflow: hidden; border: 1px solid transparent;
}
.need:hover { border-color: var(--blue); color: var(--blue-ink); }
.need svg.ico { position: absolute; top: 1.4rem; left: 1.5rem; width: 64px; height: 64px; color: var(--blue); }
.need h3 { margin: 0; }
.need p { margin: 0; color: var(--grey); font-size: var(--step--1); }
.need .go { margin-top: .6rem; font-weight: 600; color: var(--blue); font-size: var(--step--1); }
@media (max-width: 760px) { .needs { grid-template-columns: 1fr; } .need { min-height: 180px; } }

/* ---------- Systems split ---------- */
.systems { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.system { display: grid; grid-template-rows: auto 1fr; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #fff; }
.system figure { margin: 0; background: #fff; display: grid; place-items: center; padding: 1.5rem; border-bottom: 1px solid var(--line); }
.system figure img { max-height: 260px; width: auto; }
.system .body { padding: 1.6rem; display: grid; gap: .7rem; align-content: start; }
.system dl { display: grid; grid-template-columns: auto 1fr; gap: .35rem 1rem; margin: .3rem 0 .8rem; font-size: var(--step--1); }
.system dt { color: var(--grey); }
.system dd { margin: 0; font-weight: 600; }
@media (max-width: 860px) { .systems { grid-template-columns: 1fr; } }

/* ---------- Series showcase ---------- */
.series-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.series-card { display: grid; gap: .4rem; text-decoration: none; color: inherit; }
.series-card .ph { aspect-ratio: 4/3; border-radius: 10px; overflow: hidden; background: #fff; display: grid; place-items: center; }
.band-dark .series-card .ph { background: #2b292b; }
.series-card .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.series-card:hover .ph img { transform: scale(1.035); }
.series-card h3 { margin: .6rem 0 0; color: inherit; }
.series-card p { margin: 0; font-size: var(--step--1); color: #aeb5bf; }
.band-mist .series-card p, .section:not(.band-dark) .series-card p { color: var(--grey); }
@media (max-width: 960px) { .series-row { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .series-row { grid-template-columns: 1fr; } }

/* ---------- Feature split ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: center; }
.split.rev > :first-child { order: 2; }
.split figure { margin: 0; }
.ticks { list-style: none; padding: 0; margin: 1.2rem 0 1.6rem; display: grid; gap: .65rem; }
.ticks li { position: relative; padding-left: 1.7rem; }
.ticks li::before { content: ""; position: absolute; left: 0; top: .55em; width: 14px; height: 7px; background: var(--blue); clip-path: polygon(0 0, 100% 18%, 100% 100%, 0 82%); }
.band-dark .ticks li::before, .band-blue .ticks li::before { background: #8fb9ff; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; } .split.rev > :first-child { order: 0; } }

/* ---------- Product grid / cards ---------- */
.grid-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
.pcard { display: grid; grid-template-rows: auto 1fr; border: 1px solid var(--line); border-radius: 8px; background: #fff; text-decoration: none; color: var(--text); overflow: hidden; transition: border-color .15s; }
.pcard:hover { border-color: var(--blue); color: var(--text); }
.pcard .ph { position: relative; aspect-ratio: 1; overflow: hidden; background: #fff; }
.pcard .ph img { position: absolute; inset: 1rem; width: calc(100% - 2rem); height: calc(100% - 2rem); max-width: none; object-fit: contain; }
.pcard .txt { padding: .9rem 1rem 1.1rem; border-top: 1px solid var(--line); display: grid; gap: .25rem; align-content: start; }
.pcard .name { font-weight: 700; font-stretch: 110%; letter-spacing: -0.005em; }
.pcard .type { font-size: .86rem; color: var(--grey); line-height: 1.4; }
.chips { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .35rem; }
.chip { display: inline-block; font-size: .74rem; font-weight: 600; padding: .18rem .5rem; border-radius: 999px; background: var(--mist-soft); color: var(--blue-ink); }
.chip.new { background: var(--blue); color: #fff; }

/* ---------- Catalog page ---------- */
.page-head { padding-block: clamp(2.5rem, 1.8rem + 3vw, 4.5rem) clamp(1.5rem, 1rem + 2vw, 2.5rem); background: var(--mist-soft); position: relative; overflow: hidden; }
.page-head h1 { font-size: var(--step-3); margin-bottom: .35em; }
.page-head .bars { position: absolute; right: -4%; top: -10%; width: min(46vw, 560px); opacity: .9; }
.crumbs { font-size: var(--step--1); color: var(--grey); margin-bottom: 1rem; display: flex; flex-wrap: wrap; gap: .35rem; }
.crumbs a { color: var(--grey); text-decoration: none; }
.crumbs a:hover { color: var(--blue); }
.crumbs span[aria-hidden] { opacity: .5; }
.cat-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .75rem; margin: 0 0 2.5rem; }
.cat-tile { display: grid; grid-template-columns: 56px 1fr; gap: .75rem; align-items: center; padding: .7rem; border: 1px solid var(--line); border-radius: 8px; text-decoration: none; color: var(--text); background: #fff; }
.cat-tile:hover { border-color: var(--blue); color: var(--blue); }
.cat-tile img { width: 56px; height: 56px; object-fit: contain; }
.cat-tile strong { font-size: .95rem; font-weight: 620; line-height: 1.25; }
.cat-tile span { display: block; font-size: .78rem; color: var(--grey); }
.filters { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: 1.5rem; }
.filters input[type="search"] { flex: 1 1 240px; padding: .75rem 1rem; border: 1px solid var(--line); border-radius: var(--radius); font: inherit; }
.seg { display: inline-flex; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.seg button { font: inherit; font-size: .9rem; padding: .62rem .9rem; border: 0; background: #fff; cursor: pointer; color: var(--text); border-left: 1px solid var(--line); }
.seg button:first-child { border-left: 0; }
.seg button[aria-pressed="true"] { background: var(--blue); color: #fff; }
.empty { padding: 2.5rem; text-align: center; border: 1px dashed var(--line); border-radius: 8px; color: var(--grey); }
.cat-group { margin-bottom: 3rem; }
.cat-group > header { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--line); padding-bottom: .6rem; }
.cat-group > header h2 { font-size: var(--step-2); margin: 0; }

/* ---------- Product page ---------- */
.product { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(1.5rem, 1rem + 3vw, 4rem); align-items: start; padding-block: 2rem 4rem; }
.gallery .main { position: relative; border: 1px solid var(--line); border-radius: 10px; background: #fff; aspect-ratio: 4/3; overflow: hidden; }
.gallery .main img { position: absolute; inset: 1.25rem; width: calc(100% - 2.5rem); height: calc(100% - 2.5rem); max-width: none; object-fit: contain; }
.gallery .thumbs { display: flex; gap: .5rem; margin-top: .6rem; flex-wrap: wrap; }
.gallery .thumbs button { width: 76px; height: 76px; border: 1px solid var(--line); border-radius: 6px; background: #fff; padding: 4px; cursor: pointer; }
.gallery .thumbs button[aria-current="true"] { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue); }
.gallery .thumbs img { width: 100%; height: 100%; object-fit: contain; }
.pinfo h1 { font-size: var(--step-3); margin-bottom: .2em; }
.pinfo .type { font-size: var(--step-1); color: var(--grey); margin-bottom: 1.2rem; }
.pinfo .code { font-size: var(--step--1); color: var(--grey); }
.keyspecs { display: flex; flex-wrap: wrap; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 8px; margin: 1.4rem 0; overflow: hidden; }
.keyspecs div { flex: 1 1 auto; min-width: 7.5rem; padding: .9rem 1rem; background: #fff; }
.keyspecs dt { font-size: .78rem; color: var(--grey); }
.keyspecs dd { margin: 0; font-weight: 700; font-stretch: 110%; }
.variants { margin: 1.2rem 0; }
.variants .lbl { font-size: var(--step--1); color: var(--grey); margin-bottom: .45rem; }
.variants .list { display: flex; flex-wrap: wrap; gap: .45rem; }
.variant { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .7rem .35rem .35rem; border-radius: 999px; border: 1px solid var(--line); text-decoration: none; color: var(--text); font-size: .86rem; }
.variant[aria-current="page"] { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
.variant i { width: 22px; height: 22px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); }
.compat { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; font-size: var(--step--1); color: var(--grey); margin: 1rem 0; }
.pinfo .btn-row { margin-top: 1.5rem; }
.tabs-area { padding-block: 1rem 4rem; display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(1.5rem, 1rem + 3vw, 4rem); }
.features { list-style: none; padding: 0; margin: 0; }
.features li { padding: .6rem 0; border-bottom: 1px solid var(--line); }
.features li.sub { border: 0; padding-top: 1.2rem; font-weight: 700; }
.spec-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.spec-table th, .spec-table td { text-align: left; padding: .6rem .2rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.spec-table th { color: var(--grey); font-weight: 500; width: 48%; }
@media (max-width: 900px) { .product, .tabs-area { grid-template-columns: 1fr; } }

/* ---------- CTA band ---------- */
.cta-band { position: relative; overflow: hidden; }
.cta-band .inner { display: grid; grid-template-columns: 1.4fr 1fr; gap: 2rem; align-items: center; }
.cta-band h2 { color: #fff; }
.cta-band p { color: #d5e3f3; }
.cta-band .bars { position: absolute; right: -6%; bottom: -14%; width: min(50vw, 620px); opacity: .14; }
@media (max-width: 860px) { .cta-band .inner { grid-template-columns: 1fr; } }

/* ---------- Articles ---------- */
.article-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.acard { display: grid; gap: .5rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: 10px; text-decoration: none; color: var(--text); background: #fff; }
.acard:hover { border-color: var(--blue); color: var(--text); }
.acard .meta { font-size: .8rem; color: var(--grey); }
.acard h3 { margin: 0; }
.acard p { margin: 0; color: var(--grey); font-size: var(--step--1); }
@media (max-width: 900px) { .article-list { grid-template-columns: 1fr; } }
.prose { max-width: 720px; }
.prose h2 { font-size: var(--step-2); margin-top: 2.2rem; }
.prose h3 { margin-top: 1.6rem; }
.privacy table { margin: .5rem 0 1rem; } .privacy td code { font-size: .85em; white-space: nowrap; } .privacy th, .privacy td { text-align: left; vertical-align: top; }
.prose p, .prose li { font-size: 1.06rem; line-height: 1.72; }
.prose ul, .prose ol { padding-left: 1.2rem; max-width: 66ch; }
.prose li { margin-bottom: .4rem; }
.prose table { border-collapse: collapse; width: 100%; margin: 1rem 0 1.6rem; font-size: .96rem; }
.prose th, .prose td { border-bottom: 1px solid var(--line); padding: .6rem .4rem; text-align: left; vertical-align: top; }
.prose th { color: var(--blue-ink); }
.note { border-left: 4px solid var(--blue); background: var(--mist-soft); padding: 1rem 1.2rem; border-radius: 0 8px 8px 0; margin: 1.5rem 0; }
.article-layout { display: grid; grid-template-columns: minmax(0, 720px) 1fr; gap: 4rem; padding-block: 2.5rem 5rem; }
.article-aside { position: sticky; top: 96px; align-self: start; display: grid; gap: 1rem; }
@media (max-width: 960px) { .article-layout { grid-template-columns: 1fr; } .article-aside { position: static; } }

/* ---------- Tools (wizard, canvases) ---------- */
.tool { display: grid; grid-template-columns: 360px 1fr; gap: 2rem; align-items: start; padding-block: 2rem 5rem; }
.panel { border: 1px solid var(--line); border-radius: 10px; padding: 1.3rem; display: grid; gap: 1.1rem; background: #fff; }
.panel h2 { font-size: var(--step-1); margin: 0; }
.field { display: grid; gap: .4rem; }
.field > label, .field > .lbl { font-weight: 600; font-size: .92rem; }
.field input[type="text"], .field input[type="tel"], .field input[type="email"], .field input[type="url"], .field input[type="number"], .field input[type="search"], .field select, .field textarea {
  font: inherit; padding: .65rem .8rem; border: 1px solid #cfd6de; border-radius: var(--radius); background: #fff; width: 100%;
}
.field input[type="range"] { width: 100%; accent-color: var(--blue); }
.field .hint { font-size: .8rem; color: var(--grey); }
.file-drop { display: grid; place-items: center; gap: .3rem; padding: 1.1rem; border: 1.5px dashed #b7c3d1; border-radius: 8px; text-align: center; cursor: pointer; color: var(--grey); font-size: .9rem; }
.file-drop:hover, .file-drop.drag { border-color: var(--blue); color: var(--blue); background: var(--mist-soft); }
.file-drop input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.model-pick { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; }
.model-pick button { border: 1px solid var(--line); border-radius: 6px; background: #fff; padding: .35rem; cursor: pointer; display: grid; gap: .15rem; font: inherit; font-size: .72rem; color: var(--grey); text-align: center; }
.model-pick button img { width: 100%; height: 54px; object-fit: contain; }
.model-pick button[aria-pressed="true"] { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); color: var(--blue-ink); }
.stage { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #eef1f4; position: relative; }
.stage canvas { display: block; width: 100%; height: auto; touch-action: none; cursor: grab; }
.stage canvas:active { cursor: grabbing; }
.stage-bar { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: center; padding: .8rem 1rem; background: #fff; border-top: 1px solid var(--line); font-size: .88rem; color: var(--grey); }
.check { display: flex; gap: .55rem; align-items: center; font-size: .92rem; }
.check input { width: 18px; height: 18px; accent-color: var(--blue); }
.check.small { display: block; position: relative; padding-left: 1.75rem; line-height: 1.5; }
.check.small input { position: absolute; left: 0; top: .1rem; margin: 0; }
@media (max-width: 960px) { .tool { grid-template-columns: 1fr; } }

.wizard { max-width: 860px; margin-inline: auto; padding-block: 2.5rem 5rem; }
.progress { height: 6px; background: var(--mist); border-radius: 99px; overflow: hidden; margin-bottom: 2rem; }
.progress i { display: block; height: 100%; background: var(--blue); width: 0; transition: width .3s; }
.q h2 { font-size: var(--step-2); }
.opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .75rem; margin: 1.5rem 0 2rem; }
.opt { text-align: left; font: inherit; padding: 1.1rem 1.2rem; border: 1.5px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; display: grid; gap: .25rem; color: var(--text); }
.opt:hover { border-color: var(--blue); }
.opt[aria-pressed="true"] { border-color: var(--blue); background: var(--mist-soft); }
.opt strong { font-size: 1.05rem; }
.opt span { font-size: .88rem; color: var(--grey); }
.wiz-nav { display: flex; justify-content: space-between; gap: 1rem; }
.result-head { padding: 1.6rem; border-radius: 10px; background: var(--blue); color: #fff; margin-bottom: 1.5rem; }
.result-head h2 { color: #fff; margin-bottom: .3rem; }
.result-head p { color: #d5e3f3; margin: 0; }
.result-list { display: grid; gap: .75rem; margin-bottom: 2rem; }
.rline { display: grid; grid-template-columns: 96px 1fr auto; gap: 1rem; align-items: center; border: 1px solid var(--line); border-radius: 10px; padding: .75rem; background: #fff; }
.rline img { width: 96px; height: 80px; object-fit: contain; }
.rline .role { font-size: .8rem; color: var(--grey); }
.rline strong { display: block; font-size: 1.04rem; }
.rline p { margin: .2rem 0 0; font-size: .9rem; color: var(--grey); }
@media (max-width: 560px) { .rline { grid-template-columns: 70px 1fr; } .rline img { width: 70px; } .rline .btn { grid-column: 1 / -1; } }

/* ---------- Βρες εγκαταστάτη: βήματα ---------- */
.steps-simple { list-style: none; counter-reset: st; padding: 0; margin: 1.25rem 0 1.5rem; display: grid; gap: 1.1rem; }
.steps-simple li { counter-increment: st; position: relative; padding-left: 3rem; }
.steps-simple li::before { content: counter(st); position: absolute; left: 0; top: -.1rem; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 700; display: grid; place-items: center; }
.steps-simple strong { display: block; }

/* ---------- Pro hub ---------- */
.tool-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.tcard { display: grid; gap: .6rem; align-content: start; padding: 1.5rem; border-radius: 10px; background: #fff; border: 1px solid var(--line); text-decoration: none; color: var(--text); }
.tcard:hover { border-color: var(--blue); color: var(--text); }
.tcard .ico { width: 48px; height: 48px; border-radius: 10px; background: var(--mist-soft); display: grid; place-items: center; color: var(--blue); }
.tcard h3 { margin: .3rem 0 0; }
.tcard p { margin: 0; color: var(--grey); font-size: var(--step--1); }
@media (max-width: 900px) { .tool-cards { grid-template-columns: 1fr; } }
.video-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.video { display: grid; gap: .6rem; }
.video .frame { aspect-ratio: 16/9; border-radius: 10px; overflow: hidden; background: #000; }
.video iframe { width: 100%; height: 100%; border: 0; }
@media (max-width: 860px) { .video-grid { grid-template-columns: 1fr; } }
.dl-table { width: 100%; border-collapse: collapse; }
.dl-table th, .dl-table td { padding: .75rem .5rem; border-bottom: 1px solid var(--line); text-align: left; font-size: .95rem; }
.dl-table th { font-weight: 600; color: var(--grey); font-size: .82rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-grid .full { grid-column: 1 / -1; }
@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }

/* ---------- Footer ---------- */
.site-footer { background: var(--graphite); color: #b9c0c9; padding-block: 4rem 2rem; font-size: .93rem; }
.foot-grid { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 2rem; }
.site-footer h4 { color: #fff; font-size: .95rem; font-stretch: 105%; margin-bottom: .9rem; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.site-footer a { color: #b9c0c9; text-decoration: none; }
.site-footer a:hover { color: #fff; }
.site-footer .logo { height: 34px; width: auto; margin-bottom: 1rem; }
.foot-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; border-top: 1px solid #3a383a; margin-top: 3rem; padding-top: 1.5rem; font-size: .84rem; color: #8b929b; }
.socials { display: flex; gap: .6rem; margin-top: 1rem; }
.socials a { width: 36px; height: 36px; border-radius: 50%; border: 1px solid #47454a; display: grid; place-items: center; }
.socials svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 900px) { .foot-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .foot-grid { grid-template-columns: 1fr; } }

/* ---------- Series page ---------- */
.series-hero { background: var(--graphite); color: #eef1f4; position: relative; overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--slant)), 0 100%); }
.series-hero .inner { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; padding-block: 3.5rem calc(3.5rem + var(--slant)); }
.series-hero h1 { color: #fff; font-size: var(--step-4); margin-bottom: .2em; }
.series-hero .lede { color: #c3c9d1; }
.series-hero .crumbs a, .series-hero .crumbs { color: #9aa3ae; }
.series-hero figure { margin: 0; display: grid; place-items: center; position: relative; }
.series-hero figure img { width: min(100%, 520px); filter: drop-shadow(0 30px 40px rgba(0,0,0,.5)); position: relative; }
.series-hero figure .glow { position: absolute; inset: 20% 10% 10%; background: radial-gradient(closest-side, color-mix(in srgb, var(--flash) 60%, transparent), transparent 72%); filter: blur(20px); opacity: .5; }
.series-hero figure.light { background: #fff; border-radius: 12px; padding: 1.5rem; }
.series-hero figure.light img { filter: none; }
@media (max-width: 900px) { .series-hero .inner { grid-template-columns: 1fr; } }
.highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.highlights div h3 { margin-bottom: .4rem; }
.highlights div p { color: var(--grey); margin: 0; }
@media (max-width: 860px) { .highlights { grid-template-columns: 1fr; } }
.compare { width: 100%; border-collapse: collapse; font-size: .95rem; }
.compare th, .compare td { padding: .8rem .6rem; border-bottom: 1px solid var(--line); text-align: left; }
.compare thead th { color: var(--blue-ink); font-stretch: 110%; font-size: 1rem; }
.compare tbody th { color: var(--grey); font-weight: 500; }
.table-scroll { overflow-x: auto; position: relative; }

/* ---------- Video sound button ---------- */
.sound-btn { display: inline-flex; gap: .5rem; align-items: center; }
.mobile-only { display: none; }
@media (max-width: 1080px) { .mobile-only { display: block; } .site-header.menu-open .nav-cta { display: none; } }

.model-pick { max-height: 380px; overflow-y: auto; padding: 2px; }

/* ---- Έγγραφα για κατέβασμα */
.docs { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.docs a { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .3rem 1rem; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: 8px; text-decoration: none; color: var(--blue-ink); background: #fff; }
.docs a:hover { border-color: var(--blue); color: var(--blue); }
.docs .dk { font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #fff; background: var(--blue); padding: .2rem .5rem; border-radius: 4px; }
.docs strong { font-weight: 600; }
.docs .ds { font-size: var(--step--1); color: var(--grey); white-space: nowrap; }
@media (max-width: 520px) { .docs a { grid-template-columns: 1fr; } .docs .dk { justify-self: start; } }
.dl-table td a { white-space: normal; }

/* ---- Φόρμες */
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.form-status { margin: 0; padding: .8rem 1rem; border-radius: 8px; font-weight: 500; }
.form-status.ok { background: #e6f4ec; color: #145c34; }
.form-status.err { background: #fdecec; color: #8a1c1c; }

/* ---- Φωτογραφίες ατμόσφαιρας */
.need.has-photo { padding-top: 0; align-content: start; }
.need .photo { margin: 0 -1.5rem .9rem; aspect-ratio: 3 / 2; overflow: hidden; }
.need .photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.need:hover .photo img { transform: scale(1.04); }
.need.has-photo svg.ico { display: none; }

/* ---- Εικονίδια */
svg.i { width: 24px; height: 24px; flex: none; }
.hl-ico { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--mist-soft); color: var(--blue); margin-bottom: .9rem; }
.band-mist .hl-ico { background: #fff; box-shadow: 0 1px 0 var(--line); }
.hl-ico svg.i { width: 26px; height: 26px; }
.keyspecs dt { display: flex; align-items: center; gap: .35rem; }
.keyspecs dt svg.i { width: 16px; height: 16px; color: var(--blue); }
.system dt { display: flex; align-items: center; gap: .45rem; }
.system dt svg.i { width: 18px; height: 18px; color: var(--blue); }
.th-i { display: inline-flex; align-items: center; gap: .55rem; }
.th-i svg.i { width: 18px; height: 18px; color: var(--blue); }
.facts svg.i { width: 28px; height: 28px; color: var(--blue); margin-bottom: .5rem; display: block; }
.opt { grid-template-columns: auto 1fr; align-items: center; gap: .9rem; }
.opt-ico { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 12px; background: var(--mist-soft); color: var(--blue); transition: background .15s, color .15s; }
.opt-ico svg.i { width: 28px; height: 28px; }
.opt:hover .opt-ico, .opt[aria-pressed="true"] .opt-ico { background: var(--blue); color: #fff; }
.opt-txt { display: grid; gap: .2rem; }
.q h2:focus, .result-head h2:focus { outline: none; }
.app-band { display: grid; grid-template-columns: auto 1fr auto; gap: 1.25rem; align-items: center; padding: 1.5rem; border: 1px solid var(--line); border-radius: 14px; background: var(--mist-soft); }
.app-band .hl-ico { margin: 0; background: #fff; }
.app-band h2 { font-size: var(--step-1); margin: 0 0 .25rem; }
.app-band p { margin: 0; }
.btn svg.i { width: 18px; height: 18px; margin-right: .35rem; vertical-align: -3px; }
@media (max-width: 860px) { .app-band { grid-template-columns: 1fr; } }

/* ---- Εικόνες άρθρων */
.acard.has-img { padding: 0; overflow: hidden; align-content: start; }
.acard.has-img:not(:has(.aph)) .abody { padding: 1.5rem; }
.acard .aph { margin: 0; aspect-ratio: 2 / 1; overflow: hidden; background: var(--mist-soft); }
.acard .aph img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.acard:hover .aph img { transform: scale(1.04); }
.acard .abody { display: grid; gap: .5rem; }
.acard.has-img .abody { padding: 1.25rem 1.5rem 1.5rem; }
.article-hero { margin-top: 2rem; margin-bottom: .5rem; }
.article-hero img { width: 100%; aspect-ratio: 5 / 2; max-height: 460px; object-fit: cover; border-radius: 14px; }
.btn .store-ico { width: 18px; height: 18px; margin-right: .4rem; vertical-align: -3px; }

/* ---- Κάτοψη με προϊόντα */
.fp { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 2rem; align-items: start; }
.fp-stage { position: relative; padding-top: 18px; }
.fp-svg { display: block; width: 100%; height: auto; }
.fp-room { font: 600 22px/1 "Roboto Flex", sans-serif; fill: #7d8a99; letter-spacing: .02em; }
.fp-pin { stroke: var(--blue); stroke-width: 2; stroke-dasharray: 4 4; opacity: .55; }
.fp-shadow { fill: rgba(0, 76, 151, .18); }
.fp-dot {
  position: absolute; transform: translate(-50%, -50%); width: 30px; height: 30px; border-radius: 50%;
  border: 2px solid #fff; background: var(--blue); color: #fff; font: 700 .82rem/1 "Roboto Flex", sans-serif;
  cursor: pointer; box-shadow: 0 4px 12px rgba(0, 46, 87, .35); display: grid; place-items: center; padding: 0; z-index: 2;
}
.fp-dot::before { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid var(--blue); opacity: 0; animation: fpPulse 2.4s ease-out infinite; }
.fp-dot:nth-of-type(2n)::before { animation-delay: .8s; }
.fp-dot:nth-of-type(3n)::before { animation-delay: 1.6s; }
@keyframes fpPulse { 0% { transform: scale(.7); opacity: .7; } 100% { transform: scale(1.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .fp-dot::before { animation: none; } }
.fp-dot:hover, .fp-dot.on { background: #fff; color: var(--blue); border-color: var(--blue); z-index: 4; }
.fp-card {
  position: absolute; z-index: 5; width: 280px; display: grid; grid-template-columns: 72px 1fr; gap: .8rem; padding: .9rem;
  background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 20px 40px -18px rgba(10, 46, 87, .45);
}
.fp-card img { width: 72px; height: 72px; object-fit: contain; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 5px; box-sizing: border-box; }
.fp-card .role { font-size: .74rem; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; color: var(--blue); }
.fp-card strong { display: block; color: var(--blue-ink); }
.fp-card p { margin: .25rem 0 .4rem; font-size: .84rem; color: var(--grey); line-height: 1.4; }
.fp-card a { font-size: .84rem; font-weight: 600; }
.fp-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; counter-reset: none; }
.fp-legend a { display: flex; gap: .7rem; align-items: center; padding: .45rem .6rem; border-radius: 8px; text-decoration: none; color: var(--text); font-size: .9rem; line-height: 1.3; }
.fp-legend .n { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 700; font-size: .78rem; }
.fp-legend strong { display: block; font-size: .76rem; color: var(--grey); font-weight: 600; }
.fp-legend li.on a, .fp-legend a:hover { background: #fff; color: var(--blue); }
@media (max-width: 960px) {
  .fp { grid-template-columns: 1fr; }
  .fp-dot { width: 21px; height: 21px; font-size: .66rem; border-width: 1.5px; }
  .fp-dot::before { inset: -4px; }
  .fp-card { width: min(280px, 86vw); }
}

/* ---------- Εταιρεία: φωτογραφίες εγκαταστάσεων ---------- */
.eyebrow { display: inline-block; font-size: var(--step--1); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--blue); margin-bottom: .5rem; }
.band-dark .eyebrow { color: #8fb9ff; }
.photo-hero .bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.photo-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(30,32,36,.92) 0%, rgba(30,32,36,.78) 45%, rgba(30,32,36,.25) 100%); }
.photo-hero .wrap { z-index: 2; }
.photo-hero .lede { color: #dde2e8; max-width: 56ch; }
.jump { margin-top: 1.6rem; }
.photo-hero .btn-ghost { color: #fff; border-color: rgba(255,255,255,.55); }
.mosaic { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; }
.mosaic figure { margin: 0; position: relative; overflow: hidden; border-radius: 10px; aspect-ratio: 16/10; }
.mosaic figure:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.mosaic img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.mosaic figure:hover img { transform: scale(1.04); }
.mosaic figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.6rem .8rem .6rem; font-size: var(--step--1); color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.7)); }
.branches { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.4rem; }
.branch { background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; display: grid; grid-template-rows: auto 1fr; }
.branch figure { margin: 0; aspect-ratio: 16/9; overflow: hidden; }
.branch figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
.branch-body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; align-items: flex-start; }
.branch-body h2, .branch-body h3 { margin: 0 0 .4rem; font-size: var(--step-2); }
.branch-body > p { color: var(--grey); margin: 0 0 1rem; }
.branch-info { list-style: none; padding: 0; margin: 0 0 1.2rem; display: grid; gap: .5rem; }
.branch-info li { display: flex; gap: .6rem; align-items: flex-start; }
.branch-info svg { width: 20px; height: 20px; flex: none; color: var(--blue); margin-top: .15em; }
.branch-body .btn { margin-top: auto; }
.strip { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: .8rem; margin-top: 1.4rem; }
.strip img { width: 100%; height: 240px; object-fit: cover; border-radius: 10px; display: block; }
.photo-stack { position: relative; padding: 0 0 18% 0; }
.photo-stack img { border-radius: 12px; display: block; width: 100%; }
.photo-stack img:first-child { width: 86%; aspect-ratio: 4/3; object-fit: cover; }
.photo-stack img:last-child { position: absolute; right: 0; bottom: 0; width: 52%; aspect-ratio: 4/3; object-fit: cover; border: 6px solid #fff; box-shadow: 0 18px 40px rgba(0,0,0,.18); }
.lab .ticks strong { display: block; }
.made-grid { margin: 0; display: grid; grid-template-columns: 1.4fr 1fr; grid-template-rows: 1fr 1fr; gap: .8rem; }
.made-grid img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; display: block; min-height: 150px; }
.made-grid img:first-child { grid-row: span 2; }
@media (max-width: 860px) {
  .mosaic { grid-template-columns: 1fr 1fr; }
  .mosaic figure:first-child { grid-row: auto; aspect-ratio: 16/10; }
  .strip { grid-template-columns: 1fr 1fr; }
  .strip img:nth-child(3) { display: none; }
  .strip img { height: 180px; }
  .photo-hero::before { background: rgba(30,32,36,.8); }
}
.mosaic figure:nth-child(n+6) { grid-column: span 2; aspect-ratio: 21/9; }
@media (max-width: 860px) { .mosaic figure:nth-child(n+6) { grid-column: span 1; aspect-ratio: 16/10; } .mosaic figure:first-child { grid-column: span 2; } .mosaic figure:last-child { grid-column: span 2; } }
@media (max-width: 860px) { .mosaic figure:not(:first-child):not(:last-child) figcaption { display: none; } }
/* Χάρτης καταστημάτων */
.stores-map { aspect-ratio: 4/3; border-radius: 10px; overflow: hidden; border: 1px solid var(--line); margin-top: 1.5rem; z-index: 0; }
.store-pin span { display: block; width: 30px; height: 30px; background: var(--blue); border: 3px solid #fff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.store-pin span::after { content: ""; position: absolute; inset: 8px; background: #fff; border-radius: 50%; }
.leaflet-tooltip.store-label { font: 600 13px/1.2 "Roboto Flex", system-ui, sans-serif; color: var(--blue); background: #fff; border: 0; box-shadow: 0 2px 8px rgba(0,0,0,.18); padding: 4px 8px; }
.leaflet-tooltip.store-label::before { display: none; }
/* σκούρο φόντο: hover συνδέσμων σε ανοιχτό μπλε, για να διαβάζεται */
.band-dark a:not(.btn):hover, .band-dark .series-card:hover h3 { color: #8fb9ff; }
.band-dark .series-card:hover p { color: #c9d0d8; }
/* Ναι / Όχι σε πίνακες */
.yn { display: inline-flex; color: var(--blue); vertical-align: middle; position: relative; }
.yn svg { width: 22px; height: 22px; }
.yn.yes svg { stroke-width: 2; }
.yn.no { opacity: .7; }
.compare td { text-align: center; }
.compare thead th { text-align: center; }
.compare thead th:first-child { text-align: left; }
/* Ελληνική σημαία στο «Made in Greece» */
.facts svg.flag-gr { stroke: none; border-radius: 2px; }
/* Προεπισκόπηση «Η σειρήνα στο σπίτι σου» στην αρχική */
.facade-preview { position: relative; display: block; border-radius: 12px; overflow: hidden; box-shadow: 0 24px 50px rgba(0,0,0,.35); }
.facade-preview > img:first-child { display: block; width: 100%; height: auto; transition: transform .6s ease; }
.facade-preview:hover > img:first-child { transform: scale(1.02); }
.facade-preview .siren { position: absolute; left: 30%; top: 25%; width: 11%; transform: translate(-50%, -50%); filter: drop-shadow(0 4px 5px rgba(0,0,0,.3)); }
.facade-preview .fx { position: absolute; left: 30%; top: 29%; width: 16%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, rgba(47,123,255,.55), rgba(47,123,255,0) 65%); mix-blend-mode: screen; opacity: .2; animation: fp-flash 2.6s infinite; }
@keyframes fp-flash { 0%, 5%, 11%, 17% { opacity: .2; } 2%, 14% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .facade-preview .fx { animation: none; opacity: .5; } }
.facade-preview .tag { position: absolute; left: 1rem; bottom: 1rem; background: rgba(20,22,26,.78); color: #fff; font-size: var(--step--1); padding: .45rem .8rem; border-radius: 999px; backdrop-filter: blur(4px); }

/* ---------- Κίνηση ---------- */
/* 1. Flash στη σειρήνα της αρχικής: διπλή λάμψη στο σημείο του flash, συγχρονισμένη με τη λάμψη φόντου */
.hero-stage .siren-wrap { position: relative; display: block; width: min(100%, 560px); }
.hero-stage .siren-wrap img.siren { width: 100%; display: block; }
.hero-stage .flare { position: absolute; left: 50%; top: 90%; width: 66%; height: 24%; transform: translate(-50%, -50%); border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, #fff 0%, color-mix(in srgb, var(--flash) 85%, #fff) 28%, color-mix(in srgb, var(--flash) 45%, transparent) 60%, transparent 100%);
  mix-blend-mode: screen; opacity: 0; filter: blur(2px); animation: strobe 2.6s linear infinite; }
@keyframes strobe { 0%, 5.5%, 10.5%, 15.5%, 20.5%, 100% { opacity: 0; } 7%, 9% { opacity: .95; } 17%, 19% { opacity: .85; } }
@keyframes flash { 0%, 5.5%, 10.5%, 15.5%, 20.5%, 100% { opacity: .22; } 7%, 9% { opacity: .9; } 17%, 19% { opacity: .8; } }
/* 2. Ήπια εμφάνιση στο scroll (η κλάση js-reveal μπαίνει μόνο με JS και χωρίς «μειωμένη κίνηση») */
.js-reveal .reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); transition-delay: var(--rd, 0s); }
.js-reveal .reveal.in { opacity: 1; transform: none; }
/* 3. Ξενάγηση κάτοψης */
.fp-dot.tour { background: #fff; color: var(--blue); border-color: var(--blue); transform: translate(-50%, -50%) scale(1.15); z-index: 4; }
.fp-dot { transition: transform .25s ease, background-color .25s ease, color .25s ease; }
.fp-legend li.tour a { background: #fff; color: var(--blue); }
/* ---------- Σύγκριση προϊόντων ---------- */
.cmp-pickers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.6rem; }
.cmp-pickers select { width: 100%; }
.cmp-table { table-layout: fixed; min-width: 640px; }
.cmp-table thead th { vertical-align: top; position: relative; padding-top: 1rem; }
.cmp-table thead th:first-child, .cmp-table tbody th { width: 22%; }
.cmp-head { display: grid; gap: .3rem; justify-items: center; text-decoration: none; color: inherit; text-align: center; }
.cmp-head img { width: 120px; height: 120px; object-fit: contain; background: #fff; border-radius: 10px; border: 1px solid var(--line); padding: .4rem; }
.cmp-head strong { color: var(--blue-ink); font-size: 1rem; }
.cmp-head span { font-weight: 400; font-size: var(--step--1); color: var(--grey); }
.cmp-head:hover strong { color: var(--blue); }
.cmp-x { position: absolute; top: .4rem; right: .4rem; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--grey); cursor: pointer; font-size: 1.1rem; line-height: 1; }
.cmp-x:hover { color: var(--blue); border-color: var(--blue); }
.cmp-table tr.diff td { background: var(--mist-soft); }
@media (max-width: 760px) { .cmp-pickers { grid-template-columns: minmax(0, 1fr); } }
/* ---------- Χρήση του συναγερμού ---------- */
.sys-tabs { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.6rem; }
.sys-tab { display: grid; gap: .15rem; padding: .9rem 1.2rem; background: #fff; border: 1px solid var(--line); border-radius: 10px; text-decoration: none; color: inherit; min-width: 220px; }
.sys-tab strong { color: var(--blue-ink); font-size: 1.1rem; }
.sys-tab span { color: var(--grey); font-size: var(--step--1); }
.sys-tab:hover { border-color: var(--blue); }
.usage { scroll-margin-top: 90px; }
.usage + .usage { border-top: 1px solid var(--line); }
.usage-steps { list-style: none; counter-reset: st; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; }
.usage-steps li { counter-increment: st; position: relative; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 1.2rem 1.3rem 1.2rem 3.6rem; }
.usage-steps li::before { content: counter(st); position: absolute; left: 1.1rem; top: 1.15rem; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 700; display: grid; place-items: center; font-size: .9rem; }
.usage-steps h3 { font-size: 1.05rem; margin: 0 0 .35rem; }
.usage-steps p { margin: 0; color: var(--grey); }
kbd { display: inline-block; font: 600 .82em/1.2 "Roboto Flex", system-ui, sans-serif; padding: .12em .45em; border: 1px solid #c9d3de; border-bottom-width: 2px; border-radius: 5px; background: #f7f9fb; color: var(--blue-ink); white-space: nowrap; }
.led-name { font-weight: 700; color: var(--blue-ink); letter-spacing: .02em; }
.led-table th { width: 16%; vertical-align: top; }
.led-table td { vertical-align: top; }
.led-table td.led-c { width: 30%; white-space: nowrap; }
.led-table tr:has(+ tr > td:first-child) td, .led-table tr:has(+ tr > td:first-child) th { border-bottom-color: transparent; }
.led-st { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; font-size: .92rem; }
.led-dot { flex: none; width: 12px; height: 12px; border-radius: 50%; }
.led-dot.g { background: #21c56b; box-shadow: 0 0 0 3px rgba(33,197,107,.2); }
.led-dot.r { background: #e5372c; box-shadow: 0 0 0 3px rgba(229,55,44,.2); }
.led-dot.o { background: #f59a1b; box-shadow: 0 0 0 3px rgba(245,154,27,.22); }
.led-dot.off { background: #fff; border: 2px solid #b9c0c9; box-sizing: border-box; }
.led-dot.blink { animation: ledBlink 1s steps(1) infinite; }
@keyframes ledBlink { 50% { opacity: .15; } }
@media (prefers-reduced-motion: reduce) { .led-dot.blink { animation: none; background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.7) 0 2px, transparent 2px 4px); } }
@media (max-width: 640px) { .led-table td.led-c { white-space: normal; } }
.highlights.four { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.print-cards { display: none; }
/* Συχνές ερωτήσεις */
.faq-list { max-width: 860px; }
.faq { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; list-style: none; padding: 1.2rem 2.5rem 1.2rem 0; font-weight: 600; font-size: 1.08rem; color: var(--blue-ink); position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: .4rem; top: 50%; width: 10px; height: 10px; border-right: 2px solid var(--blue); border-bottom: 2px solid var(--blue); transform: translateY(-70%) rotate(45deg); transition: transform .2s; }
.faq[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.faq .ans { padding: 0 0 1.3rem; color: var(--grey); max-width: 72ch; }
.faq .ans p { margin: 0; }
/* Εκτύπωση κάρτας χρήσης */
@media print {
  html[data-print] body > *:not(main), html[data-print] main > *:not(.print-cards) { display: none !important; }
  html[data-print] .print-cards { display: block !important; }
  html[data-print] .print-card { display: none; }
  html[data-print="s-pro"] .print-card[data-card="s-pro"], html[data-print="aeolus"] .print-card[data-card="aeolus"] { display: block; }
  .print-card { font: 11pt/1.4 "Roboto Flex", Arial, sans-serif; color: #000; border: 1.5pt solid #004c97; border-radius: 8pt; padding: 12pt 14pt; width: 17cm; }
  .print-card .pc-head { display: flex; justify-content: space-between; align-items: center; border-bottom: 1pt solid #004c97; padding-bottom: 6pt; margin-bottom: 8pt; }
  .print-card .pc-head strong { font-size: 13pt; color: #004c97; }
  .print-card table { width: 100%; border-collapse: collapse; }
  .print-card th, .print-card td { text-align: left; vertical-align: top; padding: 4pt 4pt; border-bottom: .5pt solid #ccc; }
  .print-card th { width: 32%; }
  .print-card kbd { border: .8pt solid #555; border-radius: 3pt; padding: 0 3pt; background: none; }
  .print-card .pc-fill { margin-top: 10pt; display: grid; gap: 8pt; }
  .print-card .pc-foot { margin: 10pt 0 0; font-size: 8.5pt; color: #555; }
}
/* ---------- Υπολογισμός μπαταρίας / συμβατότητα ---------- */
.batt { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 2rem; align-items: start; }
.batt-opts { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.batt-table td, .batt-table th { text-align: left; vertical-align: middle; padding: .5rem .5rem; }
.batt-table input { width: 100%; min-width: 70px; padding: .45rem .5rem; border: 1px solid var(--line); border-radius: 6px; font: inherit; }
.batt-table .b-q { max-width: 80px; }
.batt-table tr.on th, .batt-table tr.on td { background: var(--mist-soft); }
.b-dev { display: flex; align-items: center; gap: .6rem; font-weight: 500; }
.b-dev img { width: 38px; height: 38px; object-fit: contain; background: #fff; border-radius: 6px; border: 1px solid var(--line); }
.b-t { white-space: nowrap; color: var(--grey); }
.batt-res { position: sticky; top: 90px; }
.batt-res h2 { font-size: var(--step-1); margin-top: 0; }
.batt-dl { display: grid; gap: .4rem; margin: 0 0 1rem; }
.batt-dl div { display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); padding: .3rem 0; }
.batt-dl dt { color: var(--grey); } .batt-dl dd { margin: 0; font-weight: 600; }
.batt-big { background: var(--blue); color: #fff; border-radius: 10px; padding: 1rem 1.2rem; display: grid; gap: .2rem; }
.batt-big span { font-size: var(--step--1); opacity: .85; }
.batt-big strong { font-size: 2rem; line-height: 1.1; }
.batt-pick { margin: 1rem 0 .5rem; }
.batt-warn { color: #b3261e; }
.compat-filters { grid-template-columns: 2fr 1fr 1fr; margin-bottom: 1.2rem; }
.compat-table td { text-align: center; }
.compat-table th a { display: block; font-weight: 600; }
.compat-table th span { display: block; }
.compat-table tbody th { width: 40%; }
@media (max-width: 960px) { .batt { grid-template-columns: minmax(0, 1fr); } .batt-res { position: static; } .compat-filters { grid-template-columns: 1fr; } }
@media print { .site-header, .site-footer, .page-head, #b-add, .batt-res .btn { display: none !important; } .batt { display: block; } .batt-table tr:not(.on) { display: none; } }
/* 404 */
.nf { max-width: 980px; }
.nf-code { font-size: clamp(5rem, 3rem + 10vw, 10rem); font-weight: 800; line-height: 1; margin: 0 0 .5rem; color: var(--mist); letter-spacing: -.04em; }
/* Μενού «Βοήθεια» */
.mrow.help { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mhelp { display: flex; gap: .9rem; align-items: center; padding: .9rem 1rem; border-radius: 12px; text-decoration: none; color: inherit; border: 1px solid var(--line); background: #fff; transition: border-color .15s, background .15s; }
.mhelp:hover { border-color: var(--blue); background: var(--mist-soft); }
.mh-ico { flex: none; width: 44px; height: 44px; border-radius: 10px; background: var(--mist-soft); color: var(--blue); display: grid; place-items: center; }
.mh-ico svg { width: 24px; height: 24px; }
.mhelp .mtxt strong { display: block; color: var(--blue-ink); }
.mhelp .mtxt span { display: block; font-size: var(--step--1); color: var(--grey); }
.nav-menu > li > button[aria-current="page"] { color: var(--blue); }
/* Σύνδεσμος χρήσης στις σελίδες προϊόντων */
.usage-note { display: flex; gap: .8rem; align-items: flex-start; margin-top: 1.5rem; }
.usage-note > svg { flex: none; width: 24px; height: 24px; color: var(--blue); margin-top: .1rem; }
@media (max-width: 760px) { .mrow.help { grid-template-columns: 1fr; } }
/* Εκθέσεις */
.expo-grid { margin: 0; display: grid; grid-template-columns: 1.3fr 1fr; grid-template-rows: 1fr 1fr; gap: .8rem; }
.expo-grid img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; display: block; min-height: 160px; }
.expo-grid img:first-child { grid-row: span 2; }
/* ---------- Προσφορά για πελάτη ---------- */
.quote-tool { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
.q-box { margin-bottom: 1rem; }
.q-box > summary { list-style: none; cursor: pointer; }
.q-box > summary::-webkit-details-marker { display: none; }
.q-box > summary h2 { font-size: var(--step-1); margin: 0 0 1rem; display: inline-block; }
.q-box:not([open]) > summary h2 { margin: 0; }
.q-add { display: grid; gap: .6rem; margin-bottom: 1rem; }
.linklike { background: none; border: 0; padding: 0; color: var(--blue); text-decoration: underline; cursor: pointer; font: inherit; }
.q-items { width: 100%; border-collapse: collapse; font-size: .95rem; }
.q-items th, .q-items td { padding: .45rem .35rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.q-items th { font-size: var(--step--1); color: var(--grey); font-weight: 500; }
.q-items input { width: 100%; padding: .45rem .5rem; border: 1px solid var(--line); border-radius: 6px; font: inherit; }
.q-items .q-qty { width: 64px; } .q-items .q-price { width: 96px; }
.q-items .q-line { white-space: nowrap; font-weight: 600; text-align: right; }
.q-items td:last-child { width: 36px; position: relative; }
.q-items .cmp-x { position: static; }
.q-prod { display: flex; gap: .6rem; align-items: center; }
.q-prod img { width: 40px; height: 40px; object-fit: contain; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.q-prod strong, .q-prod span { display: block; }
.q-totals-f { margin-top: 1rem; }
.q-preview-wrap { position: sticky; top: 90px; }
.q-preview-label { margin-bottom: .4rem; }
.quote-doc { background: #fff; border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 12px 40px rgba(0,0,0,.08); padding: 2rem 2rem 1.4rem; font-size: .82rem; line-height: 1.45; color: #1d1d1f; aspect-ratio: 210/297; overflow: auto; }
.qd-head { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; padding-bottom: 1rem; border-bottom: 2px solid var(--blue); }
.qd-logo img { max-width: 180px; max-height: 70px; display: block; }
.qd-ph { display: grid; place-items: center; width: 160px; height: 56px; border: 1px dashed #c3ccd6; border-radius: 6px; color: #8a96a3; font-size: .75rem; }
.qd-me { text-align: right; color: #53565a; }
.qd-me strong { color: #1d1d1f; font-size: .95rem; }
.qd-title { display: flex; justify-content: space-between; align-items: flex-end; margin: 1.2rem 0 .8rem; }
.qd-title h2 { margin: 0; font-size: 1.6rem; color: var(--blue); letter-spacing: .02em; }
.qd-title dl { display: grid; grid-template-columns: auto auto; gap: .1rem .8rem; margin: 0; }
.qd-title dt { color: #53565a; } .qd-title dd { margin: 0; font-weight: 600; text-align: right; }
.qd-cust { background: #f3f6f9; border-radius: 6px; padding: .7rem .9rem; margin-bottom: 1rem; }
.qd-cust span { display: block; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: #53565a; }
.qd-table { width: 100%; border-collapse: collapse; }
.qd-table th { text-align: left; font-size: .72rem; color: #53565a; border-bottom: 1px solid #c9d3de; padding: .35rem .3rem; }
.qd-table td { border-bottom: 1px solid #e4e9ef; padding: .4rem .3rem; vertical-align: middle; }
.qd-table td span { color: #6b7076; font-size: .74rem; }
.qd-table img { width: 34px; height: 34px; object-fit: contain; }
.qd-table .n { width: 1.6rem; color: #6b7076; } .qd-table .r { text-align: right; white-space: nowrap; }
.qd-empty { color: #8a96a3; text-align: center; padding: 1.2rem !important; }
.qd-sum { margin: .8rem 0 0 auto; border-collapse: collapse; min-width: 50%; }
.qd-sum td { padding: .25rem .3rem; } .qd-sum td:last-child { text-align: right; white-space: nowrap; }
.qd-total td { border-top: 2px solid var(--blue); font-weight: 700; font-size: 1rem; color: var(--blue); padding-top: .45rem; }
.qd-notes { margin-top: 1.2rem; color: #3c4046; } .qd-notes p { margin: .2rem 0 0; }
.qd-foot { margin-top: 1.6rem; padding-top: .7rem; border-top: 1px solid #e4e9ef; display: flex; align-items: center; gap: .7rem; color: #6b7076; font-size: .7rem; }
.qd-foot img { width: 80px; }
@media (max-width: 1000px) { .quote-tool { grid-template-columns: minmax(0, 1fr); } .q-preview-wrap { position: static; } .quote-doc { aspect-ratio: auto; } }
@media print {
  body:has(#q-doc) > *:not(main), body:has(#q-doc) main > *:not(section.section-tight), body:has(#q-doc) .q-form, body:has(#q-doc) .q-preview-label { display: none !important; }
  body:has(#q-doc) .quote-tool { display: block; }
  body:has(#q-doc) .q-preview-wrap { position: static; }
  body:has(#q-doc) .quote-doc { border: 0; box-shadow: none; padding: 0; aspect-ratio: auto; overflow: visible; font-size: 10pt; }
  @page { size: A4; margin: 14mm; }
}
#q-logo-x { width: auto; justify-self: start; align-self: start; margin-top: .5rem; }
.qd-sum, .qd-notes, .qd-foot { break-inside: avoid; }
@media print { body:has(#q-doc) .qd-table td { padding: .22rem .3rem; } body:has(#q-doc) .qd-table img { width: 26px; height: 26px; } }
@media print { body:has(#q-doc) main, body:has(#q-doc) section.section-tight, body:has(#q-doc) .quote-tool { padding: 0 !important; margin: 0 !important; } body:has(#q-doc) .qd-foot { margin-top: .8rem; } body:has(#q-doc) .qd-title { margin: .8rem 0 .6rem; } }
/* Πλοήγηση: χωράει σε μία γραμμή και με το μενού «Βοήθεια» */
.nav-menu > li > a, .nav-menu > li > button, .nav-pro, .nav-cta .btn { white-space: nowrap; }
@media (min-width: 1081px) and (max-width: 1440px) {
  .nav { gap: 1rem; }
  .nav-logo img { width: 140px; height: auto; }
  .nav-menu > li > a, .nav-menu > li > button { padding-inline: .55rem; font-size: .93rem; }
  .nav-pro { padding-inline: .4rem; font-size: .9rem; }
}
@media (min-width: 1081px) and (max-width: 1240px) {
  .nav { gap: .6rem; }
  .nav-logo img { width: 118px; }
  .nav-menu > li > a, .nav-menu > li > button { padding-inline: .4rem; font-size: .86rem; }
  .nav-pro { font-size: .84rem; padding-inline: .3rem; }
  .nav-cta .btn { padding-inline: .7rem; font-size: .84rem; }
}

/* Μπάρα συγκατάθεσης cookies (Google Analytics) */
.cookie-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 24px rgba(10,46,87,.10); }
.cookie-in { display: flex; gap: 1rem; align-items: center; justify-content: space-between; padding-block: .55rem; }
.cookie-bar p { margin: 0; font-size: .84rem; line-height: 1.45; color: var(--grey); flex: 1; max-width: none; }
.cookie-btns { display: flex; gap: .4rem; flex: none; }
.cookie-btns .btn { padding: .4rem .9rem; font-size: .84rem; min-height: 0; }
@media (max-width: 700px) {
  .cookie-in { flex-wrap: wrap; gap: .5rem; padding-block: .5rem; }
  .cookie-bar p { font-size: .8rem; flex: 1 1 100%; }
  .cookie-btns { flex: 1 1 100%; } .cookie-btns .btn { flex: 1; }
}
.foot-bottom .linklike { color: inherit; }
@media print { .cookie-bar { display: none !important; } }

/* Αρχική: ενότητα εφαρμογής S Mobile Cloud (ενδεικτική απεικόνιση κινητού) */
.phone-wrap { margin: 0; display: grid; justify-items: center; gap: .6rem; }
.phone-wrap img { width: min(300px, 72vw); height: auto; filter: drop-shadow(0 30px 40px rgba(10,46,87,.28)); }
.phone { width: min(290px, 78vw); aspect-ratio: 9 / 16.5; border-radius: 38px; background: #f4f7fb; border: 10px solid #1d2229; box-shadow: 0 40px 70px -30px rgba(10,46,87,.55); overflow: hidden; display: flex; flex-direction: column; gap: .8rem; font-size: .86rem; }
.ph-bar { background: var(--blue); color: #fff; padding: 2.2rem 1rem .9rem; font-weight: 650; }
.ph-card { margin: 0 .8rem; background: #fff; border-radius: 16px; padding: .9rem; box-shadow: 0 6px 18px -10px rgba(10,46,87,.35); }
.ph-row, .ph-list > div { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.ph-row strong { font-size: 1.05rem; color: var(--blue-ink); }
.ph-st { font-size: .72rem; font-weight: 700; padding: .2rem .55rem; border-radius: 99px; }
.ph-st.ok { background: rgba(33,197,107,.14); color: #138a48; }
.ph-st.arm { background: rgba(229,55,44,.12); color: #c22a20; }
.ph-btns { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin-top: .8rem; }
.ph-btn { text-align: center; padding: .55rem .3rem; border-radius: 10px; background: var(--blue); color: #fff; font-weight: 650; font-size: .8rem; }
.ph-btn.ghost { background: #e8eef6; color: var(--blue); }
.ph-list { margin: 0 .8rem; background: #fff; border-radius: 16px; padding: .3rem .9rem; }
.ph-list > div { padding: .6rem 0; border-bottom: 1px solid var(--line); }
.ph-list > div:last-child { border-bottom: 0; }
.ph-log { margin: 0 .8rem; color: var(--grey); font-size: .76rem; }
.ph-log small { display: block; text-transform: uppercase; letter-spacing: .05em; font-weight: 700; margin-bottom: .3rem; }
.ph-log div { display: flex; justify-content: space-between; padding: .25rem 0; }
.ph-log em { font-style: normal; }

/* Επιλογή γλώσσας */
.flag { display: inline-block; width: 20px; height: 14px; border-radius: 2px; flex: none; background: center / cover no-repeat; box-shadow: 0 0 0 1px rgba(0,0,0,.12); }
.flag-el { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 18'%3E%3Cpath fill='%230D5EAF' d='M0 0h27v18H0z'/%3E%3Cpath fill='%23fff' d='M10 2h17v2H10zM10 6h17v2H10zM0 10h27v2H0zM0 14h27v2H0zM4 0h2v10H4zM0 4h10v2H0z'/%3E%3C/svg%3E"); }
.flag-en { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'%3E%3CclipPath id='t'%3E%3Cpath d='M30 15h30v15zv15H0zH0V0zV0h30z'/%3E%3C/clipPath%3E%3Cpath fill='%23012169' d='M0 0h60v30H0z'/%3E%3Cpath stroke='%23fff' stroke-width='6' d='M0 0l60 30M60 0L0 30'/%3E%3Cpath stroke='%23C8102E' stroke-width='4' clip-path='url(%23t)' d='M0 0l60 30M60 0L0 30'/%3E%3Cpath stroke='%23fff' stroke-width='10' d='M30 0v30M0 15h60'/%3E%3Cpath stroke='%23C8102E' stroke-width='6' d='M30 0v30M0 15h60'/%3E%3C/svg%3E"); }
.flag-it { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='%23009246' d='M0 0h1v2H0z'/%3E%3Cpath fill='%23fff' d='M1 0h1v2H1z'/%3E%3Cpath fill='%23CE2B37' d='M2 0h1v2H2z'/%3E%3C/svg%3E"); }
.flag-es { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='%23AA151B' d='M0 0h3v2H0z'/%3E%3Cpath fill='%23F1BF00' d='M0 .5h3v1H0z'/%3E%3C/svg%3E"); }
.lang-dd { position: relative; margin-right: .4rem; }
.lang-dd summary { list-style: none; display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .5rem; border-radius: 8px; cursor: pointer; font-size: .8rem; font-weight: 650; letter-spacing: .03em; color: var(--grey); user-select: none; }
.lang-dd summary::-webkit-details-marker { display: none; }
.lang-dd summary:hover, .lang-dd[open] summary { color: var(--blue); background: var(--mist-soft); }
.lang-chev { width: 12px; height: 12px; transition: transform .15s; }
.lang-dd[open] .lang-chev { transform: rotate(180deg); }
.lang-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 60; min-width: 170px; margin: 0; padding: .35rem; list-style: none; background: #fff; border: 1px solid var(--line, #e3e6ea); border-radius: 10px; box-shadow: 0 10px 30px rgba(0,30,60,.14); }
.lang-menu a, .lang-row a { display: flex; align-items: center; gap: .6rem; padding: .5rem .6rem; border-radius: 7px; color: var(--ink, #1d1f22); text-decoration: none; font-size: .9rem; font-weight: 500; }
.lang-menu a:hover { background: var(--mist-soft); color: var(--blue); }
.lang-menu a[aria-current], .lang-row a[aria-current] { color: var(--blue); font-weight: 650; background: var(--mist-soft); }
.lang-li { padding: .6rem 0; }
.lang-row { display: flex; flex-wrap: wrap; gap: .3rem; }
/* Όταν λείπει ενότητα (π.χ. Innovation Lab στα EN/IT), η μπάντα δεν κολλάει με κενό στην κεφαλίδα */
.page-head + .section.band-mist.slant-top { padding-top: 4.5rem; }
.page-head + .section.band-mist.slant-top::before { display: none; }
/* Συχνές / τεχνικές ερωτήσεις σε ομάδες */
.faq-group { max-width: 860px; margin-bottom: 2.6rem; }
.faq-group h2 { font-size: clamp(1.3rem, 2.2vw, 1.6rem); margin: 0 0 .4rem; }
.faq .ans ol, .faq .ans ul { margin: .2rem 0 .8rem; padding-left: 1.3rem; }
.faq .ans li { margin: .35rem 0; }
.faq .ans p + p, .faq .ans ol + p, .faq .ans ul + p { margin-top: .6rem; }
.faq-cross { max-width: 860px; padding: 1rem 1.2rem; background: var(--mist-soft); border-radius: 10px; }
/* Υπολογισμός μπαταρίας: βήματα και αποτέλεσμα ανά τροφοδοτικό */
.batt-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.2rem; }
.batt-step h2 { font-size: var(--step-1); margin: 0 0 1rem; display: flex; align-items: center; gap: .6rem; }
.batt-step h2 span { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--blue); color: #fff; font-size: .95rem; flex: none; }
.batt-step .batt-opts + .small { margin: .6rem 0 0; }
.batt-table .b-src { padding: .4rem; border: 1px solid var(--line); border-radius: 6px; font: inherit; }
.batt-sup { border-top: 1px solid var(--line); padding-top: 1rem; margin-top: 1rem; }
.batt-sup h3 { font-size: 1rem; margin: 0 0 .6rem; }
.batt-sup .batt-big strong { font-size: 1.7rem; }
@media print { .batt-step { break-inside: avoid; } }
