/* ==========================================================================
   Tredit téma – fő stíluslap
   A színek és méretek a :root változókban módosíthatók.
   ========================================================================== */

/* Saját tárhelyről betöltött betűk (nem Google Fonts – GDPR) */
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/barlow-condensed-latin-ext-600-normal.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: "Barlow Condensed"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/barlow-condensed-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/barlow-condensed-latin-ext-700-normal.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: "Barlow Condensed"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/barlow-condensed-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Barlow"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/barlow-latin-ext-400-normal.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: "Barlow"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/barlow-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Barlow"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/barlow-latin-ext-500-normal.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: "Barlow"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/barlow-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Barlow"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/barlow-latin-ext-600-normal.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: "Barlow"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/barlow-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root {
  --ground: #FFFFFF;
  --panel: #EEF2F6;
  --surface: #FFFFFF;
  --ink: #0F1E2B;
  --muted: #55657A;
  --rule: #DCE3EA;
  --accent: #1670B3;
  --accent-soft: #E2EEF8;
  --hl-bg: #1A78BF;
  --hl-ink: #FFFFFF;
  --btn-bg: #1670B3;
  --btn-ink: #FFFFFF;
  --shadow: 0 1px 2px rgba(15, 30, 43, 0.06);
  --shadow-hover: 0 14px 34px rgba(15, 30, 43, 0.12);
  --header-bg: rgba(255, 255, 255, 0.92);
  --focus: #1670B3;

  --hero-bg: #0B1B2A;
  --hero-ink: #F1F5F9;
  --hero-muted: #A7B6C6;
  --hero-accent: #58B6F0;
  --hero-edge: rgba(255, 255, 255, 0.12);
  --hero-glow: rgba(22, 112, 179, 0.38);

  --display: "Barlow Condensed", "Roboto Condensed", "Arial Narrow", sans-serif;
  --body: "Barlow", "Segoe UI", system-ui, -apple-system, sans-serif;
  --header-h: 73px;

  /* Ikonok (SVG maszk) */
  --i-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --i-award: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='M8.5 14l-1.5 7 5-3 5 3-1.5-7'/%3E%3C/svg%3E");
  --i-badge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.8l2.3 1.6 2.8-.1.9 2.7 2.3 1.6-.9 2.7.9 2.7-2.3 1.6-.9 2.7-2.8-.1L12 21.2l-2.3-1.6-2.8.1-.9-2.7-2.3-1.6.9-2.7-.9-2.7 2.3-1.6.9-2.7 2.8.1L12 2.8z'/%3E%3Cpath d='M8.7 12l2.3 2.3 4.3-4.6'/%3E%3C/svg%3E");
  --i-bolt: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L4 14h7l-1 8 9-12h-7l1-8z'/%3E%3C/svg%3E");
  --i-building: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V5l8-2v18M12 9l8 2v10M2 21h20M7.5 8h1M7.5 12h1M7.5 16h1M15.5 14h1M15.5 17.5h1'/%3E%3C/svg%3E");
  --i-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='1.5'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
  --i-car: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11l2-5h10l2 5'/%3E%3Crect x='3' y='11' width='18' height='6' rx='1.5'/%3E%3Ccircle cx='7.5' cy='17.5' r='1.8'/%3E%3Ccircle cx='16.5' cy='17.5' r='1.8'/%3E%3C/svg%3E");
  --i-chart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 20V11M11 20V5M17 20v-6M3 20h18'/%3E%3C/svg%3E");
  --i-chat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H10l-5 4v-4H4V5z'/%3E%3Cpath d='M8 9.5h8M8 12.5h5'/%3E%3C/svg%3E");
  --i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --i-chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  --i-clipboard: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='1.5'/%3E%3Cpath d='M9 4V3h6v1M9 10h6M9 14h6M9 18h3'/%3E%3C/svg%3E");
  --i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.2 2'/%3E%3C/svg%3E");
  --i-cloud: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 19h10a4.5 4.5 0 0 0 .6-8.96A6 6 0 0 0 6 9.5 4.75 4.75 0 0 0 7 19z'/%3E%3C/svg%3E");
  --i-compass: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M15.5 8.5l-2 5-5 2 2-5 5-2z'/%3E%3C/svg%3E");
  --i-database: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='6' rx='8' ry='3'/%3E%3Cpath d='M4 6v12c0 1.7 3.6 3 8 3s8-1.3 8-3V6M4 12c0 1.7 3.6 3 8 3s8-1.3 8-3'/%3E%3C/svg%3E");
  --i-device: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='13' height='10' rx='1.5'/%3E%3Cpath d='M1 18h15'/%3E%3Crect x='17' y='8' width='6' height='11' rx='1.2'/%3E%3C/svg%3E");
  --i-external: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E");
  --i-filelock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6a1.5 1.5 0 0 0-1.5 1.5v15A1.5 1.5 0 0 0 6 21h12a1.5 1.5 0 0 0 1.5-1.5V8.5L14 3z'/%3E%3Cpath d='M14 3v5.5h5.5'/%3E%3Crect x='9' y='13' width='6' height='5' rx='1'/%3E%3Cpath d='M10.5 13v-1.5a1.5 1.5 0 0 1 3 0V13'/%3E%3C/svg%3E");
  --i-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18'/%3E%3C/svg%3E");
  --i-grid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='8' height='8' rx='1'/%3E%3Crect x='13' y='3' width='8' height='8' rx='1'/%3E%3Crect x='3' y='13' width='8' height='8' rx='1'/%3E%3Crect x='13' y='13' width='8' height='8' rx='1'/%3E%3C/svg%3E");
  --i-headset: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 15v-3a8 8 0 0 1 16 0v3'/%3E%3Crect x='3' y='14' width='4' height='6' rx='1.5'/%3E%3Crect x='17' y='14' width='4' height='6' rx='1.5'/%3E%3C/svg%3E");
  --i-key: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='15' r='4'/%3E%3Cpath d='M11 12l9-9M16 7l3 3M13.5 9.5l2 2'/%3E%3C/svg%3E");
  --i-laptop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='11' rx='1.5'/%3E%3Cpath d='M2 19h20'/%3E%3C/svg%3E");
  --i-layers: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l9 5-9 5-9-5 9-5z'/%3E%3Cpath d='M3 13l9 5 9-5'/%3E%3C/svg%3E");
  --i-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='1.5'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
  --i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1.5'/%3E%3Cpath d='M3.5 6.5l8.5 6 8.5-6'/%3E%3C/svg%3E");
  --i-monitor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='1.5'/%3E%3Cpath d='M8 20h8M12 16v4'/%3E%3C/svg%3E");
  --i-network: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='3' width='6' height='5' rx='1'/%3E%3Crect x='3' y='16' width='6' height='5' rx='1'/%3E%3Crect x='15' y='16' width='6' height='5' rx='1'/%3E%3Cpath d='M12 8v4M6 16v-4h12v4'/%3E%3C/svg%3E");
  --i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h3.5l2 5-2.3 1.4a11 11 0 0 0 5.4 5.4L15 13.5l5 2V19a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");
  --i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
  --i-pulse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h4l3-7 4 14 3-7h4'/%3E%3C/svg%3E");
  --i-rack: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='1.5'/%3E%3Cpath d='M5 9h14M5 15h14M8.5 6h.01M8.5 12h.01M8.5 18h.01'/%3E%3C/svg%3E");
  --i-radar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Cpath d='M12 12l6.4-6.4'/%3E%3C/svg%3E");
  --i-refresh: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 11a8 8 0 0 0-14.3-4.9L4 8M4 4v4h4M4 13a8 8 0 0 0 14.3 4.9L20 16M20 20v-4h-4'/%3E%3C/svg%3E");
  --i-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E");
  --i-server: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='7' rx='1.5'/%3E%3Crect x='3' y='13' width='18' height='7' rx='1.5'/%3E%3Cpath d='M7 7.5h.01M7 16.5h.01M11 7.5h6M11 16.5h6'/%3E%3C/svg%3E");
  --i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8.2-8 9-4.6-.8-8-4.5-8-9V6l8-3z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E");
  --i-sliders: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h10M18 6h2M4 12h4M12 12h8M4 18h12'/%3E%3Ccircle cx='16' cy='6' r='2'/%3E%3Ccircle cx='10' cy='12' r='2'/%3E%3Ccircle cx='18' cy='18' r='2'/%3E%3C/svg%3E");
  --i-sparkle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 3l1.8 5.2L18 10l-5.2 1.8L11 17l-1.8-5.2L4 10l5.2-1.8L11 3z'/%3E%3Cpath d='M18.5 15l.8 2.2 2.2.8-2.2.8-.8 2.2-.8-2.2-2.2-.8 2.2-.8.8-2.2z'/%3E%3C/svg%3E");
  --i-swap: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 4L3 8l4 4M3 8h14M17 12l4 4-4 4M21 16H7'/%3E%3C/svg%3E");
  --i-terminal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='1.5'/%3E%3Cpath d='M7 9l3 3-3 3M13 15h4'/%3E%3C/svg%3E");
  --i-ticket: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v3a2 2 0 0 0 0 4v3a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-3a2 2 0 0 0 0-4V7z'/%3E%3Cpath d='M15 6v2.5M15 11v2M15 15.5V18'/%3E%3C/svg%3E");
  --i-users: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6'/%3E%3Cpath d='M16 4.8a3.2 3.2 0 0 1 0 6.4M18 14.3c1.8.7 3 2.9 3 5.7'/%3E%3C/svg%3E");
  --i-wall: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='1.5'/%3E%3Cpath d='M3 9.3h18M3 14.7h18M9 4v5.3M15 4v5.3M12 9.3v5.4M7 14.7V20M17 14.7V20'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ground);
  color: var(--ink);
  font-family: var(--body);
  font-size: 16.5px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 4px; }
p { margin: 0; }
h1, h2, h3, h4 {
  font-family: var(--display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.005em;
  line-height: 1.02;
  margin: 0;
  text-wrap: balance;
  overflow-wrap: break-word;
}
[id] { scroll-margin-top: calc(var(--header-h) + 16px); }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--ink); color: #fff; padding: 10px 16px; }
.skip-link:focus { left: 16px; top: 16px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }

.wrap { width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: clamp(16px, 3vw, 32px); }

/* Icons: <span class="ic icon-phone"></span> vagy pszeudo-elem a --icon változóval */
.ic { display: inline-block; width: 24px; height: 24px; flex: none; background: currentColor; -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.ic-box { position: relative; width: 50px; height: 50px; border-radius: 12px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; flex: none; }

.pill {
  display: inline-block;
  align-self: flex-start;
  font-family: var(--display);
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1;
  padding: 7px 12px 6px;
  border-radius: 6px;
  background: var(--accent-soft);
  color: var(--accent);
}
mark.hl, .hl {
  background: var(--hl-bg);
  color: var(--hl-ink);
  padding: 0 0.14em;
  border-radius: 6px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* ---------- Buttons ---------- */
.btn, .wp-block-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  background: var(--btn-bg); color: var(--btn-ink);
  font-family: var(--body); font-weight: 600; font-size: 16px; line-height: 1.2;
  padding: 13px 22px; border-radius: 8px; border: 1.5px solid var(--btn-bg);
  text-decoration: none; transition: filter .15s, background .15s, border-color .15s;
}
.btn:hover, .wp-block-button .wp-block-button__link:hover { filter: brightness(1.08); color: var(--btn-ink); }
.btn-outline, .wp-block-button.is-style-outline-accent .wp-block-button__link { background: transparent; color: var(--accent); border-color: var(--accent); }
.btn-outline:hover, .wp-block-button.is-style-outline-accent .wp-block-button__link:hover { background: var(--accent-soft); color: var(--accent); filter: none; }
.wp-block-button.is-style-ghost-light .wp-block-button__link { background: transparent; color: var(--hero-ink); border-color: rgba(255, 255, 255, 0.35); }
.wp-block-button.is-style-ghost-light .wp-block-button__link:hover { border-color: var(--hero-ink); color: var(--hero-ink); filter: none; }
.wp-block-button__link[href^="tel:"]::before,
.wp-block-button__link[href^="mailto:"]::before,
.wp-block-button__link[href*="#kapcsolat"]::after,
.wp-block-button__link[href*="#contact"]::after,
.btn .ic { content: ""; width: 18px; height: 18px; flex: none; background: currentColor; -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.wp-block-button__link[href^="tel:"]::before { --icon: var(--i-phone); }
.wp-block-button__link[href^="mailto:"]::before { --icon: var(--i-mail); }
.wp-block-button__link[href*="#kapcsolat"]::after, .wp-block-button__link[href*="#contact"]::after { --icon: var(--i-arrow); }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-button { margin: 0; }

/* ---------- Header ---------- */
.top {
  position: sticky; top: 0; z-index: 50;
  background: var(--header-bg);
  -webkit-backdrop-filter: saturate(150%) blur(12px); backdrop-filter: saturate(150%) blur(12px);
  border-bottom: 1px solid var(--rule);
}
.admin-bar .top { top: 32px; }
@media (max-width: 782px) { .admin-bar .top { top: 46px; } }
.top .wrap { display: flex; align-items: center; gap: 20px; min-height: 72px; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; margin-right: auto; color: var(--ink); }
.brand img { display: block; max-height: 40px; width: auto; }
.brand-mark { width: 34px; height: 34px; border-radius: 8px; background: var(--hl-bg); color: #fff; display: grid; place-items: center; font-family: var(--display); font-weight: 700; font-size: 22px; line-height: 1; }
.brand-name { font-family: var(--display); font-weight: 700; font-size: 26px; letter-spacing: 0.04em; text-transform: uppercase; line-height: 1; }
.nav { display: flex; align-items: center; gap: 28px; }
.nav .menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 28px; }
.nav .menu > li > a { text-decoration: none; font-weight: 500; font-size: 16px; color: var(--ink); opacity: .78; transition: opacity .15s, color .15s; }
.nav .menu > li > a:hover, .nav .menu > li > a[aria-current="page"] { opacity: 1; color: var(--accent); }
.nav-item { position: relative; }
.nav-drop-btn { background: none; border: 0; font: 500 16px var(--body); color: var(--ink); opacity: .78; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; padding: 0; transition: opacity .15s, color .15s; }
.nav-drop-btn:hover, .nav-item.open > .nav-drop-btn, .nav-item.is-current > .nav-drop-btn { opacity: 1; color: var(--accent); }
.nav-drop-btn .ic { width: 16px; height: 16px; --icon: var(--i-chev); transition: transform .15s; }
.nav-item.open > .nav-drop-btn .ic { transform: rotate(180deg); }
.drop { list-style: none; margin: 0; position: absolute; top: calc(100% + 22px); left: -24px; width: 440px; background: var(--surface); border: 1px solid var(--rule); border-radius: 16px; box-shadow: var(--shadow-hover); padding: 10px; display: none; gap: 2px; }
.nav-item.open > .drop { display: grid; }
.drop a { display: flex; gap: 14px; align-items: center; padding: 12px; border-radius: 10px; text-decoration: none; color: var(--ink); }
.drop a:hover { background: var(--panel); }
.drop a[aria-current="page"] strong { color: var(--accent); }
.drop-ic { position: relative; width: 42px; height: 42px; border-radius: 10px; background: var(--accent-soft); flex: none; }
.drop-ic::after { content: ""; position: absolute; inset: 9px; background: var(--accent); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.drop strong { display: block; font-weight: 600; font-size: 16px; line-height: 1.25; }
.drop small { display: block; color: var(--muted); font-size: 14px; line-height: 1.35; }
.drop .drop-all a { border-top: 1px solid var(--rule); border-radius: 0 0 10px 10px; margin-top: 4px; color: var(--accent); font-weight: 600; }
.drop .drop-all .ic { width: 18px; height: 18px; --icon: var(--i-arrow); }
.nav .nav-portal { display: none; }
.btn-portal .ic { --icon: var(--i-ticket); }
.top .btn { padding: 10px 18px; font-size: 15px; }
.menu-toggle { display: none; align-items: center; gap: 8px; background: none; border: 1.5px solid var(--rule); color: var(--ink); font: 600 15px var(--body); padding: 8px 12px; border-radius: 8px; cursor: pointer; }
.lang-switch { display: flex; align-items: center; gap: 2px; padding: 3px; border: 1.5px solid var(--rule); border-radius: 8px; font: 600 13px var(--body); letter-spacing: 0.04em; }
.lang-switch a, .lang-switch span { display: block; padding: 5px 8px; border-radius: 5px; line-height: 1; text-decoration: none; color: var(--muted); }
.lang-switch a:hover { color: var(--accent); }
.lang-switch .is-active { background: var(--accent-soft); color: var(--accent); }
@media (max-width: 1300px) { .top .btn-cta { display: none; } }
@media (max-width: 900px) {
  :root { --header-h: 65px; }
  .top .wrap { flex-wrap: wrap; gap: 12px; min-height: 64px; }
  .top .btn { display: none; }
  .menu-toggle { display: inline-flex; order: 2; }
  .lang-switch { order: 1; }
  .nav { order: 3; }
  .nav { display: none; width: 100%; flex-direction: column; align-items: stretch; gap: 0; padding-bottom: 12px; }
  .top.open .nav { display: flex; }
  .nav .menu { flex-direction: column; align-items: stretch; gap: 0; }
  .nav .menu > li > a, .nav-drop-btn { display: flex; justify-content: space-between; width: 100%; padding: 12px 0; border-top: 1px solid var(--rule); opacity: 1; }
  .drop { position: static; width: auto; box-shadow: none; border: 0; border-radius: 0; background: transparent; padding: 0 0 8px; }
  .drop a { padding: 10px 0 10px 4px; }
  .drop .drop-all a { border-top: 0; padding-left: 60px; }
  .nav .nav-portal { display: flex; align-items: center; gap: 6px; padding: 12px 0; border-top: 1px solid var(--rule); color: var(--accent); font-weight: 600; text-decoration: none; }
  .nav-portal .ic { width: 15px; height: 15px; --icon: var(--i-external); }
}

/* ---------- Section scaffolding ---------- */
.block { padding-block: clamp(56px, 8vw, 104px); }
.block-tight { padding-block: clamp(20px, 3vw, 32px); }
.block.pt0 { padding-top: 0; }
.block.pt-sm { padding-top: clamp(16px, 2vw, 24px); }
.block-tight.after-hero { padding-top: clamp(24px, 3.5vw, 40px); }
.sec-head { max-width: 760px; display: flex; flex-direction: column; align-items: flex-start; }
.sec-head h2 { font-size: clamp(34px, 4.4vw, 58px); margin-top: 16px; }
.sec-head > p:not(.pill) { color: var(--muted); font-size: 18px; margin-top: 16px; max-width: 40em; }
.panel { background: var(--panel); border-radius: 24px; padding: clamp(32px, 5.5vw, 72px) clamp(20px, 4.5vw, 60px); }

/* ---------- Hero (full width) ---------- */
.hero-panel {
  position: relative;
  overflow: hidden;
  display: flex; flex-direction: column;
  background: radial-gradient(900px 520px at 88% 8%, var(--hero-glow), transparent 62%), var(--hero-bg);
  color: var(--hero-ink);
  min-height: calc(100vh - var(--header-h));
  min-height: calc(100svh - var(--header-h));
  padding: clamp(40px, 6vw, 72px) clamp(16px, 3vw, 32px) clamp(28px, 3.5vw, 40px);
}
.hero-panel > * { position: relative; }
.hero-panel > canvas.net { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.hero-inner, .hstats { width: 100%; max-width: 1176px; margin-inline: auto; }
.hero-inner { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(32px, 5vw, 72px); align-items: end; margin-top: auto; margin-bottom: clamp(44px, 6vw, 76px); }
.hero-main { display: flex; flex-direction: column; align-items: flex-start; }
.hero-panel .pill { background: rgba(88, 182, 240, 0.14); color: var(--hero-accent); }
.hero-panel h1 { font-size: clamp(44px, 6.6vw, 90px); line-height: 0.98; margin-top: 22px; }
.hero-panel .lead { color: var(--hero-muted); font-size: 19px; max-width: 34em; margin-top: 24px; }
.hero-actions { margin-top: 34px; }
.hero-sub { min-height: 0; padding-block: clamp(40px, 5.5vw, 72px); }
.hero-sub .hero-inner { align-items: center; margin-top: 0; margin-bottom: 0; }
.hero-sub h1 { font-size: clamp(40px, 5.2vw, 72px); }

.quick { display: grid; gap: 14px; }
.qtile { position: relative; padding: 22px 22px 22px 88px; border-radius: 14px; background: rgba(255, 255, 255, 0.06); border: 1px solid var(--hero-edge); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: background .2s, border-color .2s; }
.qtile:hover { background: rgba(255, 255, 255, 0.1); border-color: var(--hero-accent); }
.qtile::before { content: ""; position: absolute; left: 22px; top: 22px; width: 50px; height: 50px; border-radius: 12px; background: rgba(88, 182, 240, 0.14); }
.qtile::after { content: ""; position: absolute; left: 35px; top: 35px; width: 24px; height: 24px; background: var(--hero-accent); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.qtile h3 { font-size: 23px; letter-spacing: 0.02em; line-height: 1.05; }
.qtile .t { color: var(--hero-muted); font-size: 15.5px; margin-top: 6px; line-height: 1.45; }
.go-row { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 10px; }
.go-row a { display: inline-flex; align-items: center; gap: 6px; color: var(--hero-accent); font-weight: 600; font-size: 15.5px; text-decoration: none; }
.go-row a:hover { text-decoration: underline; text-underline-offset: 3px; }
.go-row a::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--i-arrow) center / contain no-repeat; mask: var(--i-arrow) center / contain no-repeat; }
.go-row a[target="_blank"]::after { -webkit-mask-image: var(--i-external); mask-image: var(--i-external); }
.go-row a[href^="tel:"]::after { -webkit-mask-image: var(--i-phone); mask-image: var(--i-phone); }

.hstats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding-top: 28px; border-top: 1px solid var(--hero-edge); }
.hstat { position: relative; padding-left: 74px; min-height: 58px; display: flex; flex-direction: column; justify-content: center; }
.hstat::before { content: ""; position: absolute; left: 0; top: 50%; width: 58px; height: 58px; margin-top: -29px; border-radius: 50%; border: 1.5px solid rgba(88, 182, 240, 0.45); }
.hstat::after { content: ""; position: absolute; left: 17px; top: 50%; width: 24px; height: 24px; margin-top: -12px; background: var(--hero-accent); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.stat-num { font-family: var(--display); font-weight: 700; font-size: clamp(36px, 3.8vw, 50px); line-height: 1; font-variant-numeric: tabular-nums; }
.stat-label { color: var(--hero-muted); font-size: 15.5px; line-height: 1.35; margin-top: 4px; }

.crumbs { font-size: 14.5px; color: var(--hero-muted); margin-bottom: 20px; }
.crumbs a { color: var(--hero-muted); text-decoration: none; }
.crumbs a:hover { color: var(--hero-ink); }
.facts-box { background: rgba(255, 255, 255, 0.06); border: 1px solid var(--hero-edge); border-radius: 16px; padding: 26px; }
.facts-box h2 { font-size: 22px; letter-spacing: 0.06em; color: var(--hero-accent); }
.facts { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 14px; }
.facts li { position: relative; padding-left: 34px; color: var(--hero-muted); font-size: 14.5px; line-height: 1.35; }
.facts li strong { display: block; color: var(--hero-ink); font-weight: 600; font-size: 16px; }
.facts li::before { content: ""; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; background: var(--hero-accent); -webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat; }

@media (max-width: 1000px) { .hero-inner { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 680px) {
  .hstats { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .hero-panel .lead { font-size: 17.5px; }
}

/* ---------- Partner strip ---------- */
.partners { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--rule); border-radius: 16px; background: var(--surface); }
.partner { position: relative; padding: 20px 24px 20px 88px; min-height: 90px; display: flex; flex-direction: column; justify-content: center; }
.partner + .partner { border-left: 1px solid var(--rule); }
.partner::before { content: ""; position: absolute; left: 24px; top: 50%; width: 50px; height: 50px; margin-top: -25px; border-radius: 12px; background: var(--accent-soft); }
.partner::after { content: ""; position: absolute; left: 37px; top: 50%; width: 24px; height: 24px; margin-top: -12px; background: var(--accent); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.partner h3 { font-size: 21px; letter-spacing: 0.02em; line-height: 1.1; }
.partner p { color: var(--muted); font-size: 14.5px; margin-top: 2px; }
@media (max-width: 820px) {
  .partners { grid-template-columns: minmax(0, 1fr); }
  .partner + .partner { border-left: 0; border-top: 1px solid var(--rule); }
}

/* ---------- Cards ---------- */
.feat-grid, .svc-grid, .cap-grid { display: grid; gap: 20px; margin-top: 44px; }
.feat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.svc-grid, .cap-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.svc-grid { margin-top: 20px; }
.card { position: relative; background: var(--surface); border-radius: 16px; padding: 28px; display: flex; flex-direction: column; gap: 14px; box-shadow: var(--shadow); transition: transform .2s, box-shadow .2s; }
.card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.cap-grid .card { border: 1px solid var(--rule); box-shadow: none; }
.card[class*="icon-"]::before { content: ""; width: 50px; height: 50px; border-radius: 12px; background: var(--accent-soft); flex: none; margin-bottom: 6px; }
.card[class*="icon-"]::after { content: ""; position: absolute; left: 41px; top: 41px; width: 24px; height: 24px; background: var(--accent); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.card h3 { font-size: 28px; }
.feat-grid .card h3 { font-size: 32px; }
.cap-grid .card h3 { font-size: 26px; }
.card > p { color: var(--muted); }
.card .tag { position: absolute; top: 28px; right: 28px; height: 50px; max-width: 60%; display: flex; align-items: center; justify-content: flex-end; text-align: right; font-family: var(--display); font-weight: 600; font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); line-height: 1.2; }
.card > p.more { color: inherit; }
.sub-title { font-size: 26px; margin-top: 52px; }
.checks { list-style: none; margin: auto 0 0; padding: 16px 0 0; border-top: 1px solid var(--rule); display: grid; gap: 9px; }
.checks li { position: relative; padding-left: 28px; font-size: 15.5px; line-height: 1.4; }
.checks li::before { content: ""; position: absolute; left: 0; top: 1px; width: 18px; height: 18px; background: var(--accent); -webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat; }
.more a { display: inline-flex; align-items: center; gap: 6px; color: var(--accent); font-weight: 600; text-decoration: none; }
.more a::after { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--i-arrow) center / contain no-repeat; mask: var(--i-arrow) center / contain no-repeat; transition: transform .15s; }
.more a[target="_blank"]::after { -webkit-mask-image: var(--i-external); mask-image: var(--i-external); }
.more a:hover::after { transform: translateX(3px); }
@media (max-width: 1000px) {
  .svc-grid, .cap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .feat-grid { grid-template-columns: minmax(0, 1fr); }
  .feat-grid .card h3 { font-size: 27px; }
}
@media (max-width: 680px) {
  .svc-grid, .cap-grid { grid-template-columns: minmax(0, 1fr); }
  .card { padding: 22px; }
  .card[class*="icon-"]::after { left: 35px; top: 35px; }
  .card .tag { top: 22px; right: 22px; }
  .card h3, .cap-grid .card h3 { font-size: 25px; }
  .sec-head h2, .band h2 { font-size: clamp(30px, 8.4vw, 40px); }
}

/* ---------- News / works / related (whole card clickable) ---------- */
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 40px; }
.news, .work { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 26px; border: 1px solid var(--rule); border-radius: 16px; background: var(--surface); transition: border-color .15s, transform .15s; }
.news:hover, .work:hover, .rel:hover { border-color: var(--accent); transform: translateY(-2px); }
.news h3 { font-size: 25px; line-height: 1.08; }
.news > p:not(.kicker):not(.more), .work > p:not(.kicker):not(.more) { color: var(--muted); font-size: 15.5px; }
.news .more, .work .more { margin-top: auto; padding-top: 6px; }
.news .more a::before, .work .more a::before, .rel-title a::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.kicker { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; font-family: var(--display); font-weight: 600; font-size: 15px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
.kicker::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
@media (max-width: 900px) { .news-grid { grid-template-columns: minmax(0, 1fr); } }

.work-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 44px; }
.work { padding: 28px; }
.work.wide { grid-column: span 2; background: var(--panel); border-color: transparent; }
.work h3 { font-size: 30px; line-height: 1.04; }
.work > p:not(.kicker):not(.more) { font-size: 16.5px; max-width: 44em; }
@media (max-width: 1000px) { .work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .work-grid { grid-template-columns: minmax(0, 1fr); } .work.wide { grid-column: auto; } .work h3 { font-size: 26px; } }

.sectors-row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 24px; align-items: center; margin-top: 44px; padding-top: 36px; border-top: 1px solid var(--rule); }
.sectors-row > h3 { font-size: 26px; }
.sectors { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sector { position: relative; background: var(--panel); border-radius: 14px; padding: 16px 18px 16px 84px; min-height: 82px; display: flex; align-items: center; }
.sector::before { content: ""; position: absolute; left: 18px; top: 50%; width: 50px; height: 50px; margin-top: -25px; border-radius: 12px; background: var(--surface); }
.sector::after { content: ""; position: absolute; left: 31px; top: 50%; width: 24px; height: 24px; margin-top: -12px; background: var(--accent); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.sector p { font-family: var(--display); font-weight: 600; font-size: 22px; text-transform: uppercase; letter-spacing: 0.03em; line-height: 1.1; }
@media (max-width: 860px) { .sectors-row { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .sectors { grid-template-columns: minmax(0, 1fr); } }

.rel-heading { font-size: 26px; }
.rel-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.rel { position: relative; min-height: 92px; padding: 20px 56px 20px 84px; border: 1px solid var(--rule); border-radius: 14px; background: var(--surface); display: flex; flex-direction: column; justify-content: center; transition: border-color .15s, transform .15s; }
.rel::before { content: ""; position: absolute; left: 20px; top: 50%; width: 50px; height: 50px; margin-top: -25px; border-radius: 12px; background: var(--accent-soft); }
.rel::after { content: ""; position: absolute; left: 33px; top: 50%; width: 24px; height: 24px; margin-top: -12px; background: var(--accent); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.rel-title a { font-family: var(--display); font-weight: 700; font-size: 22px; text-transform: uppercase; line-height: 1.05; text-decoration: none; color: var(--ink); }
.rel-title a::after { content: ""; position: absolute; right: 20px; top: 50%; width: 24px; height: 24px; margin-top: -12px; background: var(--accent); -webkit-mask: var(--i-arrow) center / contain no-repeat; mask: var(--i-arrow) center / contain no-repeat; }
.rel-sub { color: var(--muted); font-size: 14.5px; margin-top: 2px; }
@media (max-width: 900px) { .rel-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Steps ---------- */
.steps { counter-reset: step; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; margin-top: 48px; position: relative; }
.steps.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.steps::before { content: ""; position: absolute; top: 25px; left: 26px; right: calc((100% - 96px) / 5 - 26px); height: 2px; background: var(--rule); }
.steps.four::before { right: calc((100% - 72px) / 4 - 26px); }
.step { counter-increment: step; position: relative; display: flex; flex-direction: column; }
.step::before { content: counter(step); width: 52px; height: 52px; border-radius: 50%; background: var(--ground); border: 2px solid var(--accent); color: var(--accent); display: grid; place-items: center; font-family: var(--display); font-weight: 700; font-size: 22px; line-height: 1; margin-bottom: 18px; position: relative; }
.step h3 { font-size: 26px; }
.step p { color: var(--muted); font-size: 15.5px; margin-top: 8px; line-height: 1.5; }
@media (max-width: 900px) {
  .steps, .steps.four { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .steps::before, .steps.four::before { top: 10px; bottom: 10px; left: 25px; right: auto; width: 2px; height: auto; }
  .step { display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 18px; }
  .step::before { grid-row: span 2; margin-bottom: 0; }
  .step h3 { margin-top: 12px; }
}
.core-parts { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 16px 24px; align-items: center; margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--rule); }
.core-parts h3 { font-size: 24px; }
@media (max-width: 760px) { .core-parts { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Chips / technology rows ---------- */
.chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0; }
.chips li { background: var(--surface); border: 1px solid var(--rule); border-radius: 999px; padding: 7px 16px; font-weight: 500; font-size: 15.5px; line-height: 1.3; }
.tech-rows { display: grid; margin-top: 32px; }
.tech-row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 16px 24px; align-items: start; padding-block: 20px; border-top: 1px solid var(--rule); }
.tech-row h3 { font-size: 21px; letter-spacing: 0.03em; padding-top: 7px; }
@media (max-width: 680px) { .tech-row { grid-template-columns: minmax(0, 1fr); } .tech-row h3 { padding-top: 0; } }

/* ---------- Dark band ---------- */
.band { position: relative; overflow: hidden; border-radius: 24px; background: radial-gradient(700px 420px at 10% 100%, var(--hero-glow), transparent 60%), var(--hero-bg); color: var(--hero-ink); padding: clamp(40px, 6vw, 80px) clamp(22px, 5vw, 64px); display: flex; flex-direction: column; align-items: flex-start; }
.band .pill { background: rgba(88, 182, 240, 0.14); color: var(--hero-accent); }
.band h2 { font-size: clamp(34px, 4.4vw, 58px); margin-top: 16px; max-width: 900px; }
.band-lead { color: var(--hero-muted); font-size: 18px; max-width: 44em; margin-top: 18px; }
.principles, .info-grid { display: grid; gap: 18px; margin-top: 44px; width: 100%; }
.principles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.principles.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.info-grid.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.principle { position: relative; border: 1px solid var(--hero-edge); background: rgba(255, 255, 255, 0.04); border-radius: 16px; padding: 26px; }
.principle[class*="icon-"]::before { content: ""; display: block; width: 50px; height: 50px; border-radius: 12px; background: rgba(88, 182, 240, 0.14); margin-bottom: 18px; }
.principle[class*="icon-"]::after { content: ""; position: absolute; left: 39px; top: 39px; width: 24px; height: 24px; background: var(--hero-accent); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.principle h3 { font-size: 24px; }
.principle p { color: var(--hero-muted); margin-top: 10px; font-size: 15.5px; }
@media (max-width: 1100px) { .principles.four { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) { .principles, .info-grid, .info-grid.c3 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { .principles.four { grid-template-columns: minmax(0, 1fr); } }

/* ---------- FAQ (core/details) ---------- */
.faq-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.faq .wp-block-details { border-top: 1px solid var(--rule); margin: 0; }
.faq .wp-block-details:last-child { border-bottom: 1px solid var(--rule); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 20px 0; font-family: var(--display); font-weight: 600; font-size: 23px; text-transform: uppercase; line-height: 1.15; letter-spacing: 0.01em; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { color: var(--accent); }
.faq summary::after { content: ""; width: 24px; height: 24px; flex: none; margin-top: 1px; background: var(--accent); -webkit-mask: var(--i-chev) center / contain no-repeat; mask: var(--i-chev) center / contain no-repeat; transition: transform .2s; }
.faq details[open] summary::after { transform: rotate(180deg); }
.faq details p { color: var(--muted); padding: 0 0 22px; max-width: 46em; }
@media (max-width: 900px) { .faq-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Contact ---------- */
.contact-sec { padding-top: clamp(24px, 4vw, 48px); }
.contact-top { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px; align-items: end; }
.contact-top .contact-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
.contact-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 40px 0 0; }
.citem { background: var(--surface); border-radius: 16px; padding: 24px; display: flex; gap: 16px; align-items: flex-start; box-shadow: var(--shadow); }
.citem .ic-box { border-radius: 50%; }
.citem dt { font-family: var(--display); font-weight: 600; font-size: 15px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); line-height: 1.2; }
.citem dd { margin: 6px 0 0; font-size: 18px; font-weight: 500; line-height: 1.4; }
.citem dd a { text-decoration: none; }
.citem dd a:hover { color: var(--accent); }
.citem small { display: block; color: var(--muted); font-size: 14px; font-weight: 400; margin-top: 4px; }
@media (max-width: 900px) {
  .contact-top { grid-template-columns: minmax(0, 1fr); }
  .contact-top .contact-actions { justify-content: flex-start; }
}
@media (max-width: 600px) { .contact-items { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Footer ---------- */
.foot { background: var(--hero-bg); color: var(--hero-muted); margin-top: clamp(56px, 8vw, 96px); padding-block: 44px 32px; font-size: 15px; }
.foot-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px 48px; padding-bottom: 28px; border-bottom: 1px solid var(--hero-edge); }
.foot .brand { color: var(--hero-ink); margin-right: 0; }
.foot-tag { margin-top: 12px; max-width: 30em; }
.foot-cols { display: flex; flex-wrap: wrap; gap: 24px 56px; }
.foot-col h4 { font-size: 16px; letter-spacing: 0.1em; color: var(--hero-ink); margin-bottom: 10px; }
.foot-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.foot-col a { color: var(--hero-muted); text-decoration: none; }
.foot-col a:hover { color: var(--hero-accent); }
.foot-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding-top: 22px; font-size: 14px; }
.foot-bottom a { color: var(--hero-muted); }

/* ---------- Generic pages (adatvédelem, impresszum, stb.) ---------- */
.prose { max-width: 820px; }
.prose .page-title { font-size: clamp(36px, 5vw, 56px); margin-bottom: 28px; }
.prose > * + * { margin-top: 1em; }
.prose h2 { font-size: 32px; margin-top: 1.6em; }
.prose h3 { font-size: 24px; margin-top: 1.4em; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose a { color: var(--accent); }
.prose table { border-collapse: collapse; width: 100%; }
.prose th, .prose td { border: 1px solid var(--rule); padding: 8px 10px; text-align: left; }
.post-list { display: grid; gap: 24px; }
.post-list article { border-top: 1px solid var(--rule); padding-top: 20px; }
.post-list h2 a { text-decoration: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

/* ---------- Ikon osztályok ---------- */
.icon-arrow { --icon: var(--i-arrow); }
.icon-award { --icon: var(--i-award); }
.icon-badge { --icon: var(--i-badge); }
.icon-bolt { --icon: var(--i-bolt); }
.icon-building { --icon: var(--i-building); }
.icon-calendar { --icon: var(--i-calendar); }
.icon-car { --icon: var(--i-car); }
.icon-chart { --icon: var(--i-chart); }
.icon-chat { --icon: var(--i-chat); }
.icon-check { --icon: var(--i-check); }
.icon-chev { --icon: var(--i-chev); }
.icon-clipboard { --icon: var(--i-clipboard); }
.icon-clock { --icon: var(--i-clock); }
.icon-cloud { --icon: var(--i-cloud); }
.icon-compass { --icon: var(--i-compass); }
.icon-database { --icon: var(--i-database); }
.icon-device { --icon: var(--i-device); }
.icon-external { --icon: var(--i-external); }
.icon-filelock { --icon: var(--i-filelock); }
.icon-globe { --icon: var(--i-globe); }
.icon-grid { --icon: var(--i-grid); }
.icon-headset { --icon: var(--i-headset); }
.icon-key { --icon: var(--i-key); }
.icon-laptop { --icon: var(--i-laptop); }
.icon-layers { --icon: var(--i-layers); }
.icon-lock { --icon: var(--i-lock); }
.icon-mail { --icon: var(--i-mail); }
.icon-monitor { --icon: var(--i-monitor); }
.icon-network { --icon: var(--i-network); }
.icon-phone { --icon: var(--i-phone); }
.icon-pin { --icon: var(--i-pin); }
.icon-pulse { --icon: var(--i-pulse); }
.icon-rack { --icon: var(--i-rack); }
.icon-radar { --icon: var(--i-radar); }
.icon-refresh { --icon: var(--i-refresh); }
.icon-search { --icon: var(--i-search); }
.icon-server { --icon: var(--i-server); }
.icon-shield { --icon: var(--i-shield); }
.icon-sliders { --icon: var(--i-sliders); }
.icon-sparkle { --icon: var(--i-sparkle); }
.icon-swap { --icon: var(--i-swap); }
.icon-terminal { --icon: var(--i-terminal); }
.icon-ticket { --icon: var(--i-ticket); }
.icon-users { --icon: var(--i-users); }
.icon-wall { --icon: var(--i-wall); }
