/* ==========================================================================
   CNC TEAM — Design System  ·  "Precíziós mérnök" (refined industrial)
   Self-contained · 0 external runtime dep · fonts: fonts.css (self-host)
   ========================================================================== */

:root {
  /* Brand palette */
  --navy:    #1C244B;
  --navy-2:  #141a38;          /* deeper for gradients */
  --accent:  #467FF7;
  --accent-d:#2f63cf;
  --accent-light: rgba(70,127,247,.12);
  --text:    #324A6D;
  --ink:     #1C244B;
  --muted:   #6b7c97;
  --bg:      #F9FAFD;
  --surface: #F3F5F8;
  --steel:   #C8D5DC;
  --line:    #e2e8f1;
  --white:   #ffffff;

  /* Type */
  --f-display: "Archivo", system-ui, sans-serif;
  --f-body:    "Poppins", system-ui, sans-serif;
  --f-mono:    "IBM Plex Mono", ui-monospace, monospace;

  /* Space + shape */
  --container: 1200px;
  --gutter: clamp(20px, 5vw, 48px);
  --r: 14px;
  --r-sm: 9px;
  --shadow: 0 18px 50px -22px rgba(28,36,75,.35);
  --shadow-sm: 0 8px 24px -14px rgba(28,36,75,.30);
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset / base ---------- */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--f-body);
  color:var(--text);
  background:var(--bg);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
h1,h2,h3,h4 { font-family:var(--f-display); color:var(--ink); line-height:1.08; font-weight:700; letter-spacing:-.02em; }

.container { max-width:var(--container); margin:0 auto; padding-inline:var(--gutter); }
.section { padding-block:clamp(64px, 9vw, 130px); }
.section--surface { background:var(--surface); }
.section--navy { background:var(--navy); color:#cdd6ec; }
.section--navy h2, .section--navy h3 { color:#fff; }

/* ---------- mono kicker + section head ---------- */
.kicker {
  font-family:var(--f-mono); font-size:12.5px; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase; color:var(--accent);
  display:inline-flex; align-items:center; gap:.7em;
}
.kicker::before { content:""; width:26px; height:1px; background:var(--accent); display:inline-block; }
.section-head { max-width:680px; margin-bottom:clamp(36px,5vw,60px); }
.section-head h2 { font-size:clamp(28px,4.4vw,46px); margin:18px 0 0; }
.section-head p { margin-top:16px; font-size:1.05rem; color:var(--muted); }
.section--navy .section-head p { color:#9fb0d4; }

/* ---------- buttons (ADAM pill rule) ---------- */
.btn {
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--f-body); font-weight:600; font-size:15px;
  padding:14px 28px; border-radius:3px; cursor:pointer;
  border:1px solid transparent; transition:.25s var(--ease);
  white-space:nowrap;
}
.btn svg { width:17px; height:17px; }
.btn-primary { background:var(--accent-light); color:var(--accent); border-color:var(--accent); }
.btn-primary:hover { background:var(--accent); color:#fff; transform:translateY(-2px); box-shadow:0 12px 26px -10px rgba(70,127,247,.6); }
.btn-light { background:#fff; color:var(--navy); }
.btn-light:hover { transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(0,0,0,.45); }
.btn-ghost { background:transparent; color:#fff; border-color:rgba(255,255,255,.32); }
.btn-ghost:hover { border-color:#fff; background:rgba(255,255,255,.08); transform:translateY(-2px); }

/* ---------- header (two-tier, technical) ---------- */
.util-bar { background:var(--navy); color:#9fb0d4; font-family:var(--f-mono); font-size:12px; letter-spacing:.02em; }
.util-bar .container { display:flex; justify-content:space-between; align-items:center; height:38px; }
.util-right { display:flex; gap:20px; align-items:center; }
.util-bar a { transition:color .2s; }
.util-bar a:hover { color:#fff; }
.util-rating { color:var(--accent); }
.main-bar { position:sticky; top:0; z-index:50; background:rgba(255,255,255,.94); backdrop-filter:saturate(150%) blur(14px); border-bottom:1px solid var(--line); }
.main-bar .container { display:flex; align-items:center; gap:36px; height:84px; }
.brand { display:flex; align-items:center; margin-right:auto; }
.brand img { height:60px; width:auto; display:block; }
.nav { display:flex; align-items:center; gap:30px; height:84px; }
.nav > a, .has-sub > a { display:inline-flex; align-items:center; height:84px; font-size:15px; font-weight:500; color:var(--ink); white-space:nowrap; position:relative; transition:color .2s; }
.nav > a:hover, .has-sub > a:hover { color:var(--accent); }
.nav > a::after, .has-sub > a::after { content:""; position:absolute; left:0; bottom:18px; width:0; height:2px; background:var(--accent); transition:width .25s var(--ease); }
.nav > a:hover::after, .has-sub > a:hover::after { width:100%; }
.has-sub { position:relative; display:inline-flex; align-items:center; height:84px; }
.has-sub > a::before { content:"▾"; font-size:9px; margin-left:6px; color:var(--muted); }
.submenu { position:absolute; top:84px; left:-16px; min-width:240px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); padding:8px; opacity:0; visibility:hidden; transform:translateY(8px); transition:.22s var(--ease); }
.has-sub:hover .submenu { opacity:1; visibility:visible; transform:translateY(0); }
.submenu a { display:block; padding:10px 14px; font-size:14.5px; white-space:nowrap; color:var(--ink); }
.submenu a:hover { background:var(--accent-light); color:var(--accent); }
.header-cta { white-space:nowrap; flex:0 0 auto; }
.nav-toggle { display:none; }

/* ---------- hero ---------- */
.hero { position:relative; background:var(--navy); color:#fff; overflow:hidden; isolation:isolate; }
.hero::before { /* blueprint grid */
  content:""; position:absolute; inset:0; z-index:-1; opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:radial-gradient(120% 90% at 75% 30%,#000 35%,transparent 78%);
}
.hero-photo { position:absolute; inset:0; z-index:-2; }
.hero-photo .hero-slide { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:0; transition:opacity 1.4s var(--ease); }
.hero-photo .hero-slide.is-active { opacity:1; }
/* mandatory grant element — top-left like the live site, readable, NOT rounded */
.hero-funding { display:block; width:fit-content; max-width:390px; background:#fff; padding:9px 11px; margin-bottom:28px; box-shadow:0 10px 26px -16px rgba(0,0,0,.5); }
.hero-funding img { width:100%; height:auto; display:block; }
@media (max-width:760px){ .hero-funding{ max-width:300px; margin-bottom:22px; } }
/* hero copy swap (synced with slideshow) */
.hero-copy { transition:opacity .45s var(--ease); }
.hero-copy.swapping { opacity:0; }
.hero-photo::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, var(--navy) 30%, rgba(28,36,75,.86) 52%, rgba(20,26,56,.55) 100%);
}
.hero .container { position:relative; padding-block:clamp(90px,13vw,160px); }
.hero-inner { max-width:680px; }
.hero h1 { color:#fff; font-size:clamp(34px,5.6vw,62px); font-weight:800; margin:22px 0 0; }
.hero h1 .hl { color:var(--accent); }
.hero-sub { margin-top:22px; font-size:clamp(17px,2vw,20px); color:#bcc7e4; max-width:560px; }
.hero-actions { margin-top:38px; display:flex; flex-wrap:wrap; gap:14px; }
.hero-meta { margin-top:46px; display:flex; flex-wrap:wrap; gap:28px; font-family:var(--f-mono); font-size:13px; color:#93a2c9; letter-spacing:.03em; }
.hero-meta span { display:flex; align-items:center; gap:8px; }
.hero-meta span::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--accent); }

/* ---------- inner-page banner ---------- */
.page-hero { background:var(--navy); color:#cdd6ec; padding-block:clamp(52px,8vw,90px); position:relative; overflow:hidden; }
.page-hero::before { content:""; position:absolute; inset:0; opacity:.5; background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:54px 54px; mask-image:radial-gradient(120% 90% at 85% 15%,#000 35%,transparent 80%); }
.page-hero .container { position:relative; }
.page-hero h1 { color:#fff; font-size:clamp(30px,4.6vw,50px); margin:14px 0 0; max-width:800px; }
.page-hero .lead { margin-top:18px; font-size:1.1rem; color:#aebbe0; max-width:660px; }
.breadcrumb { font-family:var(--f-mono); font-size:12px; letter-spacing:.1em; color:#8595bd; text-transform:uppercase; }
.breadcrumb a:hover { color:var(--accent); }

/* ---------- stat bar ---------- */
.stats { background:var(--navy-2); border-top:1px solid rgba(255,255,255,.07); }
.stats .container { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding-block:38px; }
.stat { text-align:center; }
.stat .num { font-family:var(--f-display); font-size:clamp(28px,3.4vw,40px); font-weight:800; color:#fff; line-height:1; }
.stat .num .u { color:var(--accent); }
.stat .lbl { font-family:var(--f-mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:#8595bd; margin-top:10px; }

/* ---------- service cards ---------- */
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card {
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  padding:30px 28px 28px; position:relative; overflow:hidden;
  transition:.3s var(--ease);
}
.card::before { content:""; position:absolute; left:0; top:0; height:3px; width:0; background:var(--accent); transition:.32s var(--ease); }
.card:hover { transform:translateY(-6px); box-shadow:var(--shadow); border-color:transparent; }
.card:hover::before { width:100%; }
.card .ico { width:50px; height:50px; border-radius:12px; background:var(--accent-light); display:grid; place-items:center; margin-bottom:20px; }
.card .ico svg { width:26px; height:26px; stroke:var(--accent); fill:none; stroke-width:1.6; }
.card h3 { font-size:20px; }
.card p { margin-top:10px; font-size:15px; color:var(--muted); line-height:1.6; }
.card .more { margin-top:16px; font-family:var(--f-mono); font-size:12.5px; letter-spacing:.08em; color:var(--accent); display:inline-flex; align-items:center; gap:7px; }
.card .more::after { content:"→"; transition:.25s var(--ease); }
.card:hover .more::after { transform:translateX(5px); }

/* ---------- split (why us) ---------- */
.split { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(40px,6vw,80px); align-items:center; }
.split-media { position:relative; }
.split-media img { border-radius:var(--r); box-shadow:var(--shadow); }
.split-media .tag {
  position:absolute; left:-14px; bottom:24px; background:var(--navy); color:#fff;
  font-family:var(--f-mono); font-size:12px; letter-spacing:.08em; padding:12px 18px;
  border-radius:10px; box-shadow:var(--shadow); border-left:3px solid var(--accent);
}
.feat { display:grid; gap:22px; margin-top:30px; }
.feat li { display:flex; gap:16px; }
.feat .fi { flex:0 0 auto; width:42px; height:42px; border-radius:11px; background:var(--accent-light); display:grid; place-items:center; }
.feat .fi svg { width:21px; height:21px; stroke:var(--accent); fill:none; stroke-width:1.7; }
.feat h4 { font-size:16.5px; color:var(--ink); font-family:var(--f-display); }
.feat p { font-size:14.5px; color:var(--muted); margin-top:3px; }

/* ---------- partners ---------- */
.partners { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.partner { border-radius:var(--r); overflow:hidden; position:relative; border:1px solid var(--line); background:#fff; }
.partner img { aspect-ratio:3/2; object-fit:cover; transition:.4s var(--ease); }
.partner:hover img { transform:scale(1.04); }
.partner .pc { padding:20px 22px; }
.partner h3 { font-size:17px; }
.partner p { font-size:13.5px; color:var(--muted); margin-top:5px; }

/* ---------- reviews ---------- */
.reviews-wrap { display:grid; grid-template-columns:auto 1fr; gap:clamp(30px,5vw,64px); align-items:center; }
.rating-badge { text-align:center; }
.rating-badge .score { font-family:var(--f-display); font-size:64px; font-weight:800; color:#fff; line-height:1; }
.rating-badge .stars { color:var(--accent); font-size:22px; letter-spacing:3px; margin-top:6px; }
.rating-badge .cnt { font-family:var(--f-mono); font-size:12px; letter-spacing:.12em; color:#9fb0d4; margin-top:10px; }
.quote { border-left:3px solid var(--accent); padding-left:26px; }
.quote p { font-size:clamp(19px,2.4vw,26px); color:#fff; font-family:var(--f-display); font-weight:600; line-height:1.4; letter-spacing:-.01em; }
.quote .by { font-family:var(--f-mono); font-size:13px; color:#9fb0d4; margin-top:16px; letter-spacing:.05em; }
.quote .by a { color:var(--accent); }

/* ---------- ginop strip ---------- */
.ginop { display:flex; align-items:center; gap:28px; flex-wrap:wrap; justify-content:center; }
.ginop img { max-width:min(640px,100%); border-radius:10px; border:1px solid var(--line); }

/* ---------- CTA band ---------- */
.cta-band { background:linear-gradient(110deg,var(--navy),var(--navy-2)); color:#fff; border-radius:var(--r); padding:clamp(40px,6vw,68px); position:relative; overflow:hidden; }
.cta-band::after { content:""; position:absolute; right:-60px; top:-60px; width:280px; height:280px; border:38px solid rgba(70,127,247,.14); border-radius:50%; }
.cta-band h2 { color:#fff; font-size:clamp(26px,3.6vw,40px); position:relative; }
.cta-band p { color:#aebbe0; margin-top:12px; position:relative; }
.cta-band .hero-actions { margin-top:30px; }

/* ---------- footer ---------- */
.site-footer { background:var(--navy-2); color:#8d9cc2; padding-block:64px 30px; font-size:14.5px; }
.foot-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; }
.foot-brand .wm { font-family:var(--f-display); font-weight:800; font-size:22px; color:#fff; letter-spacing:.02em; }
.foot-brand .wm span { color:var(--accent); }
.foot-brand p { margin-top:14px; max-width:260px; line-height:1.6; }
.site-footer h4 { color:#fff; font-size:13px; font-family:var(--f-mono); letter-spacing:.12em; text-transform:uppercase; margin-bottom:18px; }
.site-footer li { margin-bottom:11px; }
.site-footer a:hover { color:var(--accent); }
.foot-contact span { display:block; margin-bottom:10px; }
.foot-bottom { border-top:1px solid rgba(255,255,255,.08); margin-top:48px; padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:13px; font-family:var(--f-mono); color:#6f7ea8; }

/* ---------- scroll reveal ---------- */
.reveal { opacity:0; transform:translateY(26px); transition:.7s var(--ease); }
.reveal.in { opacity:1; transform:none; }
@media (scripting: none){ .reveal{ opacity:1; transform:none; } }  /* JS nélkül a tartalom SOSE tűnjön el — CSP-tiszta, nincs inline script */
.reveal[data-d="1"]{ transition-delay:.08s } .reveal[data-d="2"]{ transition-delay:.16s }
.reveal[data-d="3"]{ transition-delay:.24s } .reveal[data-d="4"]{ transition-delay:.32s }

/* ---------- responsive ---------- */
@media (max-width:960px){
  .cards,.partners{ grid-template-columns:repeat(2,1fr); }
  .split{ grid-template-columns:1fr; }
  .stats .container{ grid-template-columns:repeat(2,1fr); gap:30px 16px; }
  .reviews-wrap{ grid-template-columns:1fr; text-align:center; }
  .quote{ border-left:0; padding-left:0; border-top:3px solid var(--accent); padding-top:22px; }
}
@media (max-width:760px){
  .util-left{ display:none; }
  /* A felső sáv fix 38px magassága + a nem tördelő flex miatt a három elem
     (telefon · e-mail · értékelés) ~430px alatt TÚLCSORDULT, ami megnövelte a
     dokumentum szélességét — így a fejléc jobb szélén ülő hamburger gomb
     kicsúszott a képernyőről, és az overflow-x:hidden levágta: mobilon nem
     volt elérhető a menü. Tördeléssel + rugalmas magassággal minden befér. */
  .util-bar .container{ justify-content:center; height:auto; flex-wrap:wrap; padding-block:7px; row-gap:2px; }
  .util-right{ gap:14px; font-size:11.5px; flex-wrap:wrap; justify-content:center; }
  .header-cta{ display:none; }
  .nav{ display:none; height:auto; }
  .nav-toggle{ display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--line); border-radius:5px; background:#fff; cursor:pointer; gap:5px; }
  .nav-toggle span{ width:20px; height:2px; background:var(--navy); display:block; transition:.25s; }
  .nav.open{
    display:flex; flex-direction:column; align-items:stretch; gap:0;
    position:absolute; top:84px; left:0; right:0; background:#fff;
    border-bottom:1px solid var(--line); padding:8px var(--gutter) 20px; box-shadow:var(--shadow); height:auto;
  }
  .nav.open > a, .nav.open .has-sub{ height:auto; }
  .nav.open .has-sub{ flex-direction:column; align-items:stretch; }
  .nav.open > a, .nav.open .has-sub > a{ padding:13px 0; width:100%; height:auto; border-bottom:1px solid var(--surface); }
  .nav.open > a::after, .nav.open .has-sub > a::after{ display:none; }
  .submenu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; padding:0 0 6px 14px; min-width:0; }
  .cards,.partners{ grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
}

/* ==========================================================================
   AJÁNLATKÉRÉS — űrlap-komponensek (additív; a meglévő szabályokat nem érinti)
   Minden érték a fenti design-tokenekből jön — nincs új szín, nincs új betű.
   ========================================================================== */

.section--tight { padding-top:0; }

/* --- inline style="" kiváltása (CSP: style-src 'self' az attribútumot is tiltja) ---
   Az értékek BETŰRE azonosak a korábbi inline stílusokkal — ez nem újratervezés,
   hanem áthelyezés. Az utility-osztályok specificitása (0,1,0) szándékosan alacsony:
   ahol elem-szintű szabály is van (pl. .section-head h2), ott az marad érvényben. */
.t-h2       { font-size:clamp(26px,3.6vw,40px); margin-top:16px; }
.t-h2-sm    { font-size:clamp(24px,3.2vw,36px); margin-top:16px; }
.t-muted-16 { margin-top:16px; color:var(--muted); }
.t-muted-18 { margin-top:18px; color:var(--muted); }
.t-accent   { color:var(--accent); }
.mt-14      { margin-top:14px; }
.mt-18      { margin-top:18px; }
.mt-24      { margin-top:24px; }

/* --- kétoszlopos elrendezés: űrlap + oldalsó panel --- */
.quote-layout { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,4.5vw,64px); align-items:start; }

/* --- űrlap-kártya --- */
.form-card { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:clamp(26px,3.4vw,44px); box-shadow:var(--shadow-sm); }
.form-title { font-size:clamp(24px,3.2vw,34px); margin:16px 0 0; }
.form-intro { margin-top:14px; color:var(--muted); font-size:15.5px; }

.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px 22px; margin-top:30px; }
.field { display:flex; flex-direction:column; gap:8px; min-width:0; }
.field--full { grid-column:1 / -1; }

.field label { font-family:var(--f-body); font-size:14px; font-weight:600; color:var(--ink); }
.req { color:var(--accent); }

.field input, .field select, .field textarea {
  font-family:var(--f-body); font-size:15.5px; color:var(--ink);
  background:var(--bg); border:1px solid var(--line); border-radius:var(--r-sm);
  padding:12px 14px; width:100%; transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.field textarea { resize:vertical; min-height:140px; line-height:1.6; }
.field input::placeholder, .field textarea::placeholder { color:#9aa8c2; }
.field input:hover, .field select:hover, .field textarea:hover { border-color:var(--steel); }
.field input:focus, .field select:focus, .field textarea:focus {
  outline:none; border-color:var(--accent); background:#fff;
  box-shadow:0 0 0 3px var(--accent-light);
}
/* billentyűzetes navigáció: a fókusz SOHA ne tűnjön el */
.quote-form :focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

/* --- bot-csapda: a látogató elől rejtve, de a képernyőolvasó sem ajánlja --- */
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* --- hozzájárulás --- */
.consent { flex-direction:row; align-items:flex-start; gap:12px; }
.consent input { width:19px; height:19px; flex:0 0 auto; margin-top:2px; accent-color:var(--accent); padding:0; }
.consent label { font-weight:400; font-size:14px; color:var(--muted); line-height:1.55; }
.consent a { color:var(--accent); text-decoration:underline; text-underline-offset:2px; }

/* --- beküldés --- */
.form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 22px; margin-top:4px; }
.form-actions .btn { border-radius:3px; }
.form-note { font-size:13px; color:var(--muted); max-width:340px; }

/* --- oldalsó panel --- */
.quote-aside { display:grid; gap:26px; position:sticky; top:104px; }
.aside-box { background:linear-gradient(110deg,var(--navy),var(--navy-2)); color:#aebbe0; border-radius:var(--r); padding:clamp(26px,3vw,34px); }
.aside-box h3 { color:#fff; font-size:23px; margin:16px 0 0; }
.aside-box p { margin-top:12px; font-size:15px; line-height:1.6; }
.aside-cta { margin-top:22px; }
.aside-mail { display:block; margin-top:14px; font-family:var(--f-mono); font-size:13.5px; color:var(--accent); }
.aside-mail:hover { color:#fff; }

.aside-list { display:grid; gap:20px; }
.aside-list li { display:flex; gap:15px; }
.aside-list .fi { flex:0 0 auto; width:40px; height:40px; border-radius:11px; background:var(--accent-light); display:grid; place-items:center; }
.aside-list .fi svg { width:20px; height:20px; stroke:var(--accent); fill:none; stroke-width:1.7; }
.aside-list h4 { font-size:15.5px; color:var(--ink); font-family:var(--f-display); }
.aside-list p { font-size:14px; color:var(--muted); margin-top:3px; }

/* --- nav-beli Ajánlatkérés: csak mobilon kell ------------------------------
   Desktopon a kiemelt .header-cta gomb viszi ezt a szerepet (a nav-példány ott
   redundáns volna). 760px alatt viszont a .header-cta el van rejtve, tehát a
   hamburger-menüben kell megjelennie — enélkül mobilon nincs belépő az űrlaphoz. */
.nav .nav-quote { display:none; }

/* Legördülő-jelző: a ::before miatt a nyíl a felirat ELÉ került („▾CNC szerviz").
   A ::after nem használható helyette — azt az aláhúzás-animáció foglalja —, ezért
   a flex-sorrendet fordítjuk meg. A ::before margin-leftje így a szöveg felé néz,
   vagyis továbbra is ő adja a térközt. */
.has-sub > a { flex-direction:row-reverse; }

/* ==========================================================================
   LÁBLÉC-RÁCS MOBIL JAVÍTÁS — a vízszintes túlcsordulás GYÖKÉROKA
   --------------------------------------------------------------------------
   A .foot-grid négy oszlopa (1.4fr 1fr 1fr 1.2fr) eddig MINDEN képernyőn négy
   maradt: nem volt rá egyetlen media-szabály sem. Az `1fr` sáv legalább akkora,
   mint a tartalma min-content szélessége (pl. „8400 Ajka, Szent István út 1/b"),
   ezért a lábléc keskeny nézeten szélesebb lett a képernyőnél.

   MÉRVE (2026-08-12, headless render + getBoundingClientRect, /hiba/ oldal):
     javítás NÉLKÜL : clientWidth=500  scrollWidth=603  → a kilógó elem DIV.foot-contact (R=603)
     javítással     : clientWidth=500  scrollWidth=500  → 0 kilógó elem
   A 103px túlcsordulás vízszintes görgetést okozott, és a body overflow-x:hidden
   miatt a jobb szélen ülő tartalom (fejléc-vezérlők) csendben levágódott.
   A minmax(0,1fr) tiltja meg a sávnak a min-content-re növekedést — enélkül az
   egyoszlopos elrendezés is túlcsordulhat.
   ========================================================================== */
@media (max-width:960px){
  .foot-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px; }
}
@media (max-width:600px){
  .foot-grid{ grid-template-columns:minmax(0,1fr); gap:30px; }
  .foot-bottom{ justify-content:flex-start; }
}

/* --- reszponzív --- */
@media (max-width:960px){
  .quote-layout{ grid-template-columns:1fr; }
  .quote-aside{ position:static; }
}
@media (max-width:760px){
  .nav .nav-quote{ display:inline-flex; color:var(--accent); }
}
@media (max-width:600px){
  .form-grid{ grid-template-columns:1fr; }
}
