@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

*{ box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
a:focus,button:focus,input:focus,textarea:focus,select:focus{ outline:none; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--copper);
  outline-offset:3px;
  border-radius:2px;
}

:root{
  --ink:#EDECE7;
  --ink-soft:rgba(237,236,231,0.64);
  --night:#0A0B0D;
  --paper:#16181C;
  --paper-alt:#1C1F24;
  --card:#22262D;
  --line:rgba(237,236,231,0.14);
  --line-dark:rgba(237,236,231,0.22);
  --copper:#C9863F;
  --copper-dark:#E3A968;
  --copper-soft:rgba(201,134,63,0.16);
  --steel:#74AAC0;
  --steel-dark:#A3CBDA;
  --steel-soft:rgba(116,170,192,0.14);
  --shadow:0 20px 44px rgba(0,0,0,0.45);
}

html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.wrap{ max-width:1140px; margin:0 auto; padding:0 24px; }
img{ max-width:100%; display:block; }
h1,h2,h3{ font-family:'IBM Plex Sans',sans-serif; font-weight:700; margin:0; color:var(--ink); letter-spacing:-0.01em; }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
.mono{ font-family:'IBM Plex Mono',monospace; }

.reveal{ opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

.kicker{
  display:inline-flex; align-items:center; gap:9px;
  font-family:'IBM Plex Mono',monospace;
  font-weight:600; font-size:0.74rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--copper);
}
.kicker::before{ content:'//'; color:var(--line); font-weight:600; }
.kicker.on-dark{ color:var(--copper); }
.kicker.steel{ color:var(--steel); }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 24px; border-radius:3px;
  font-family:'IBM Plex Sans',sans-serif; font-weight:600; font-size:0.95rem;
  border:1.5px solid transparent; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn-copper{ background:var(--copper); color:var(--paper); box-shadow:0 12px 24px rgba(201,134,63,0.28); }
.btn-copper:hover{ background:var(--copper-dark); }
.btn-outline{ background:transparent; color:var(--ink); border-color:var(--line-dark); }
.btn-outline:hover{ border-color:var(--ink); }
.btn-outline-ink{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn-outline-ink:hover{ border-color:var(--ink); }
.btn-sm{ padding:10px 16px; font-size:0.86rem; }

.pill{ display:inline-flex; align-items:center; padding:5px 11px; border-radius:3px; font-size:0.7rem; font-weight:700; letter-spacing:0.04em; white-space:nowrap; flex:none; font-family:'IBM Plex Mono',monospace; }
.pill-tbd{ background:var(--copper-soft); color:var(--copper-dark); border:1px dashed var(--copper); }

/* ---------- header ---------- */
.site-header{ position:sticky; top:0; z-index:50; background:rgba(10,11,13,0.88); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.header-row{ display:flex; align-items:center; justify-content:space-between; padding:12px 24px; gap:16px; }
.brand{ display:flex; align-items:center; gap:11px; min-width:0; perspective:600px; }
.brand img{ height:34px; width:auto; object-fit:contain; flex:none; filter:invert(1); transform-style:preserve-3d; }
.brand.logo-spin img{ animation:logoSpin 1.15s cubic-bezier(.45,.05,.15,1) both; }
@keyframes logoSpin{ from{ transform:rotateY(0deg); } to{ transform:rotateY(360deg); } }
@media (prefers-reduced-motion:reduce){ .brand.logo-spin img{ animation:none; } }
.brand-text{ display:flex; flex-direction:column; line-height:1.1; }
.brand-text .name{ font-weight:700; font-size:1.05rem; color:var(--ink); letter-spacing:-0.005em; }
.brand-text .sub{ font-family:'IBM Plex Mono',monospace; font-size:0.66rem; font-weight:500; letter-spacing:0.06em; text-transform:uppercase; color:var(--copper); }

.main-nav{ display:flex; gap:26px; align-items:center; }
.main-nav a{ font-weight:500; font-size:0.92rem; color:var(--ink-soft); padding:6px 2px; border-bottom:2px solid transparent; }
.main-nav a:hover{ color:var(--ink); border-bottom-color:var(--copper); }
.main-nav a.active{ color:var(--ink); border-bottom-color:var(--copper); }
.header-call{ flex:none; }

.nav-dropdown{ position:relative; }
.nav-dropdown > summary{ list-style:none; cursor:pointer; position:relative; display:inline-flex; align-items:center; gap:6px; font-weight:500; font-size:0.92rem; color:var(--ink-soft); padding:6px 2px; }
.nav-dropdown > summary::-webkit-details-marker{ display:none; }
.nav-dropdown > summary::marker{ content:''; }
.nav-dropdown > summary:hover{ color:var(--ink); }
.nav-dropdown > summary:focus-visible{ outline:2px solid var(--copper); outline-offset:4px; border-radius:2px; }
.nav-dropdown.active > summary{ color:var(--ink); border-bottom:2px solid var(--copper); }
.nav-dropdown .chevron{ width:8px; height:8px; flex:none; transition:transform .25s ease; }
.nav-dropdown[open] > summary .chevron{ transform:rotate(180deg); }
.nav-dropdown .dropdown-panel{
  position:absolute; top:100%; left:0; margin-top:16px; min-width:220px;
  background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow);
  padding:6px; border-radius:4px; display:flex; flex-direction:column; gap:1px; z-index:60;
}
.nav-dropdown .dropdown-panel a{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:11px 13px; border-radius:2px; font-size:0.86rem; font-weight:500; }
.nav-dropdown .dropdown-panel a .tag{ font-family:'IBM Plex Mono',monospace; font-size:0.64rem; color:var(--ink-soft); }
.nav-dropdown .dropdown-panel a:hover{ background:var(--paper-alt); color:var(--copper-dark); }
.nav-dropdown .dropdown-panel a.active{ color:var(--copper-dark); font-weight:600; }
@media (prefers-reduced-motion:no-preference){ .nav-dropdown[open] .dropdown-panel{ animation:navDropIn .2s ease both; } }
@keyframes navDropIn{ from{opacity:0; transform:translateY(-6px);} to{opacity:1; transform:none;} }

.nav-toggle{ display:none; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:40px;height:40px; background:var(--copper); border:none; border-radius:3px; cursor:pointer; flex:none; padding:0; }
.nav-toggle .bar{ width:18px;height:1.5px;background:var(--paper);transition:transform .25s ease, opacity .2s ease; }
.nav-toggle.open .bar:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.nav-toggle.open .bar:nth-child(2){ opacity:0; }
.nav-toggle.open .bar:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

.mobile-menu{ display:none; max-height:0; opacity:0; overflow:hidden; background:var(--paper); border-top:1px solid transparent; box-shadow:0 18px 32px rgba(0,0,0,0.4); transition:max-height .38s ease, opacity .28s ease; }
.mobile-menu.open{ max-height:640px; opacity:1; border-top-color:var(--line); }
.mobile-menu-inner{ display:flex; flex-direction:column; gap:4px; padding:16px 20px 24px; }
.mobile-menu a{ display:block; padding:13px 14px; border-radius:3px; color:var(--ink); font-weight:500; }
.mobile-menu a.cta-link{ background:var(--copper); color:var(--paper); text-align:center; }
.mobile-dropdown > summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; padding:13px 14px; font-weight:500; color:var(--ink); }
.mobile-dropdown > summary::-webkit-details-marker{ display:none; }
.mobile-dropdown > summary::marker{ content:''; }
.mobile-dropdown .chevron{ width:10px; height:10px; flex:none; transition:transform .25s ease; }
.mobile-dropdown[open] > summary .chevron{ transform:rotate(180deg); }
.mobile-dropdown .dropdown-panel{ display:flex; flex-direction:column; padding:2px 0 4px 12px; gap:1px; }
.mobile-dropdown .dropdown-panel a{ padding:11px 14px; font-size:0.92rem; color:var(--ink-soft); }

@media (max-width:860px){
  nav.main-nav{ display:none; }
  .header-call{ display:none; }
  .nav-toggle{ display:inline-flex; }
  .mobile-menu{ display:block; }
}

/* ---------- hero (photo-backed) ---------- */
.hero{ position:relative; min-height:min(88vh, 780px); display:flex; align-items:flex-end; overflow:hidden; }
.hero-photo{ position:absolute; inset:0; z-index:0; }
.hero-photo img{ width:100%; height:100%; object-fit:cover; filter:brightness(0.82); }
.hero-photo::after{ content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,11,13,0.97) 0%, rgba(10,11,13,0.86) 42%, rgba(10,11,13,0.5) 72%, rgba(10,11,13,0.28) 100%); }
/* padding-top/bottom longhand: a shorthand nullazna a .wrap oldalso 24px-et,
   es a hero szovege a keperyo szelehez tapadna mobilon */
.hero-content{ position:relative; z-index:1; width:100%; padding-top:60px; padding-bottom:56px; }
.hero-content .kicker{ background:rgba(10,11,13,0.6); padding:7px 12px; border-radius:3px; backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); }
.hero-content h1{ font-size:clamp(2.1rem, 4vw + 0.8rem, 3.4rem); line-height:1.08; color:var(--ink); max-width:16ch; margin-top:16px; text-shadow:0 2px 18px rgba(0,0,0,0.5); }
.hero-content h1 span{ color:var(--copper); }
.hero-content .lede{ margin-top:18px; font-size:1.08rem; color:rgba(237,236,231,0.82); max-width:52ch; }
.hero-rating{ margin-top:20px; display:flex; flex-wrap:wrap; gap:12px; }
.rating-badge{ display:inline-flex; align-items:center; gap:8px; padding:9px 15px; border-radius:3px; background:rgba(237,236,231,0.08); border:1px solid var(--line-dark); font-weight:700; font-size:0.9rem; color:var(--ink); }
.rating-badge .stars{ display:flex; gap:1px; }
.rating-badge svg{ width:13px; height:13px; fill:var(--copper); }
.rating-badge .count{ color:rgba(237,236,231,0.65); font-weight:500; font-family:'IBM Plex Mono',monospace; font-size:0.78rem; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:26px; }
.hero-note{ margin-top:16px; font-size:0.85rem; color:rgba(237,236,231,0.55); }

/* ---------- page hero (subpages, no photo) ---------- */
.page-hero{ background:var(--night); color:var(--ink); padding:52px 0 56px; }
.page-hero h1{ color:var(--ink); font-size:clamp(1.9rem,3.6vw + 0.8rem,2.8rem); margin-top:12px; }
.page-hero .lede{ margin-top:14px; color:rgba(237,236,231,0.72); font-size:1.02rem; max-width:64ch; }

/* ---------- section shells ---------- */
section{ padding:74px 0; }
.section-alt{ background:var(--paper-alt); }
.section-dark{ background:var(--night); color:var(--ink); }
.section-head{ max-width:640px; margin-bottom:36px; }
.section-head h2{ font-size:clamp(1.6rem,2.2vw + 1rem,2.3rem); margin-top:12px; }
.section-head .lede{ margin-top:14px; color:var(--ink-soft); font-size:1.02rem; }
.section-dark .section-head .lede{ color:rgba(237,236,231,0.68); }
.draft-note{ display:flex; align-items:flex-start; gap:10px; margin-top:16px; padding:12px 16px; border-radius:3px; background:var(--copper-soft); border:1px dashed var(--copper); font-size:0.87rem; color:var(--copper-dark); max-width:62ch; }

/* ---------- trust stats ---------- */
.stat-row{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px; }
.stat-card{ background:var(--card); padding:22px 20px; }
.stat-card .stat-num{ font-family:'IBM Plex Mono',monospace; font-size:1.3rem; font-weight:600; color:var(--ink); }
.stat-card .stat-label{ font-size:0.82rem; color:var(--ink-soft); margin-top:4px; }
@media (max-width:820px){ .stat-row{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* ---------- dual service cards ---------- */
.service-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.service-card{ display:flex; flex-direction:column; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--card); transition:transform .2s ease, box-shadow .2s ease; }
.service-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.service-card .sc-band{ height:6px; }
.service-card.villany .sc-band{ background:var(--copper); }
.service-card.biztonsag .sc-band{ background:var(--steel); }
.service-card .sc-body{ padding:30px 28px; display:flex; flex-direction:column; flex:1; }
.service-card .sc-link{ margin-top:auto; padding-top:22px; }
.service-card h3{ font-size:1.4rem; }
.service-card p{ margin-top:10px; color:var(--ink-soft); font-size:0.96rem; }
.service-card ul{ list-style:none; margin:18px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.service-card li{ font-size:0.88rem; color:var(--ink-soft); padding-left:18px; position:relative; }
.service-card li::before{ content:''; position:absolute; left:0; top:8px; width:8px; height:1.5px; background:var(--copper); }
.service-card.biztonsag li::before{ background:var(--steel); }
.sc-link{ display:inline-flex; align-items:center; gap:6px; margin-top:22px; font-family:'IBM Plex Mono',monospace; font-size:0.82rem; font-weight:600; color:var(--copper-dark); }
.service-card.biztonsag .sc-link{ color:var(--steel-dark); }
@media (max-width:820px){ .service-grid{ grid-template-columns:minmax(0,1fr); } }

/* ---------- work gallery ---------- */
.gallery-feature{ border-radius:4px; overflow:hidden; margin-top:10px; box-shadow:var(--shadow); min-width:0; }
.gallery-feature img{ width:100%; height:100%; object-fit:cover; aspect-ratio:16/8; }
.gallery-grid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; margin-top:16px; }
.gallery-grid.cols-3{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.gallery-tile{ border-radius:4px; overflow:hidden; aspect-ratio:3/4; min-width:0; position:relative; }
.gallery-tile img{ width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.gallery-tile:hover img{ transform:scale(1.045); }
.gallery-tile .gt-cap{ position:absolute; left:10px; right:10px; bottom:10px; font-family:'IBM Plex Mono',monospace; font-size:0.66rem; color:var(--ink); background:rgba(10,11,13,0.62); padding:5px 9px; border-radius:2px; }
@media (max-width:900px){ .gallery-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } .gallery-grid.cols-3{ grid-template-columns:repeat(2, minmax(0,1fr)); } }

/* ---------- service area band ---------- */
.area-band{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:44px; align-items:center; }
.area-photo{ position:relative; border-radius:6px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); min-width:0; }
.area-photo img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.area-photo .area-tag{
  position:absolute; left:12px; bottom:12px;
  font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.04em;
  color:var(--ink); background:rgba(10,11,13,0.72); padding:6px 11px; border-radius:2px;
  border:1px solid var(--line);
}
.area-copy h2{ margin-top:12px; font-size:clamp(1.5rem,2.1vw + 0.95rem,2.15rem); }
.area-copy .lede{ margin-top:14px; color:var(--ink-soft); font-size:1.02rem; }
.area-points{ list-style:none; margin:22px 0 26px; padding:0; display:flex; flex-direction:column; gap:9px; }
.area-points li{ font-size:0.92rem; color:var(--ink-soft); padding-left:18px; position:relative; }
.area-points li::before{ content:''; position:absolute; left:0; top:10px; width:8px; height:1.5px; background:var(--copper); }
@media (max-width:900px){ .area-band{ grid-template-columns:minmax(0,1fr); gap:26px; } }

/* ---------- filterable work gallery ---------- */
.gal-head{ margin-bottom:24px; }
.gal-filters{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:26px; }
.gal-chip{
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 15px; border-radius:3px; cursor:pointer;
  background:var(--card); border:1px solid var(--line); color:var(--ink-soft);
  font-family:'IBM Plex Sans',sans-serif; font-size:0.86rem; font-weight:500;
  transition:border-color .18s ease, color .18s ease, background .18s ease;
}
.gal-chip span{ font-family:'IBM Plex Mono',monospace; font-size:0.7rem; opacity:0.65; }
.gal-chip:hover{ color:var(--ink); border-color:var(--line-dark); }
.gal-chip.is-active{ background:var(--copper); border-color:var(--copper); color:var(--paper); font-weight:600; }
.gal-chip.is-active span{ opacity:0.8; }

.gal-masonry{ columns:4; column-gap:14px; }
@media (max-width:1000px){ .gal-masonry{ columns:3; } }
@media (max-width:720px){ .gal-masonry{ columns:2; } }
@media (max-width:460px){ .gal-masonry{ columns:1; } }
.gal-item{
  break-inside:avoid; -webkit-column-break-inside:avoid; page-break-inside:avoid;
  margin:0 0 14px; position:relative; border-radius:4px; overflow:hidden;
  background:var(--card); border:1px solid var(--line);
}
.gal-item[hidden]{ display:none; }
.gal-open{ display:block; width:100%; padding:0; margin:0; border:none; background:none; cursor:zoom-in; }
.gal-item img{ width:100%; height:auto; display:block; transition:transform .35s ease; }
.gal-item:hover img{ transform:scale(1.04); }
.gal-item figcaption{
  position:absolute; left:0; right:0; bottom:0; pointer-events:none;
  padding:26px 12px 10px;
  font-family:'IBM Plex Mono',monospace; font-size:0.68rem; line-height:1.35; color:var(--ink);
  background:linear-gradient(0deg, rgba(10,11,13,0.92) 0%, rgba(10,11,13,0.7) 55%, rgba(10,11,13,0) 100%);
  opacity:0; transition:opacity .25s ease;
}
.gal-item:hover figcaption, .gal-item:focus-within figcaption{ opacity:1; }
@media (hover:none){ .gal-item figcaption{ opacity:1; } .gal-item:hover img{ transform:none; } }

/* ---------- lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:200; background:rgba(6,7,9,0.95);
  display:flex; align-items:center; justify-content:center; gap:8px; padding:20px;
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
}
.lightbox[hidden]{ display:none; }
.lb-figure{ margin:0; display:flex; flex-direction:column; align-items:center; gap:14px; min-width:0; }
.lb-img{ max-width:min(1200px, 88vw); max-height:78vh; width:auto; height:auto; object-fit:contain; border-radius:4px; }
.lb-cap{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:center;
  font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--ink);
}
.lb-cap .lb-count{ color:rgba(237,236,231,0.5); }
.lb-btn{
  flex:none; width:44px; height:44px; border-radius:3px; cursor:pointer;
  background:rgba(237,236,231,0.08); border:1px solid var(--line-dark); color:var(--ink);
  font-size:1.6rem; line-height:1; display:flex; align-items:center; justify-content:center;
  transition:background .18s ease, border-color .18s ease;
}
.lb-btn:hover{ background:rgba(237,236,231,0.16); border-color:var(--ink); }
.lb-close{ position:absolute; top:18px; right:18px; font-size:1.5rem; }
@media (max-width:640px){
  .lb-prev, .lb-next{ position:absolute; bottom:18px; }
  .lb-prev{ left:18px; }
  .lb-next{ right:18px; }
  .lb-img{ max-width:94vw; max-height:66vh; }
}

/* ---------- reviews marquee ---------- */
.rev-agg{ display:inline-flex; align-items:center; gap:14px; margin-top:18px; padding:14px 20px; border:1px solid var(--line-dark); border-radius:4px; background:var(--night); color:var(--ink); }
.rev-agg .rv-num{ font-family:'IBM Plex Mono',monospace; font-size:1.7rem; font-weight:600; }
.rev-agg .rv-stars svg{ width:13px; height:13px; fill:var(--copper); }
.rev-agg .rv-label{ font-size:0.8rem; color:rgba(237,236,231,0.68); font-family:'IBM Plex Mono',monospace; }
.rev-track-wrap{ overflow:hidden; margin-top:32px; -webkit-mask-image:linear-gradient(90deg, transparent, black 6%, black 94%, transparent); mask-image:linear-gradient(90deg, transparent, black 6%, black 94%, transparent); }
.rev-track{ display:flex; gap:16px; width:max-content; animation:revScroll 62s linear infinite; }
.rev-track:hover{ animation-play-state:paused; }
@keyframes revScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.rev-card{ flex:0 0 300px; background:var(--card); border:1px solid var(--line); border-radius:4px; padding:22px; }
.rev-card .rc-stars{ display:flex; gap:2px; }
.rev-card .rc-stars svg{ width:13px; height:13px; fill:var(--copper); }
.rev-card .rc-quote{ margin-top:12px; font-size:0.92rem; color:var(--ink); line-height:1.55; }
.rev-card .rc-name{ margin-top:14px; font-size:0.8rem; font-weight:600; color:var(--ink-soft); }
.rev-card .rc-meta{ font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color:var(--ink-soft); opacity:0.75; margin-top:1px; }
@media (prefers-reduced-motion:reduce){ .rev-track{ animation:none; } }

/* ---------- service cards with photo ---------- */
.svc-cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:10px; }
@media (max-width:920px){ .svc-cards{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .svc-cards{ grid-template-columns:minmax(0,1fr); } }
.svc-card{
  display:flex; flex-direction:column; min-width:0;
  background:var(--card); border:1px solid var(--line); border-radius:4px; overflow:hidden;
  transition:transform .2s ease, box-shadow .2s ease;
}
.svc-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.svc-card .svc-band{ height:4px; background:var(--copper); }
.svc-card.steel .svc-band{ background:var(--steel); }
.svc-photo{ aspect-ratio:4/3; overflow:hidden; min-width:0; }
.svc-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.svc-card:hover .svc-photo img{ transform:scale(1.04); }
.svc-text{ padding:20px 20px 24px; }
.svc-text h3{ font-size:1.06rem; line-height:1.3; }
.svc-text p{ margin-top:9px; font-size:0.9rem; color:var(--ink-soft); }

/* ---------- process steps ---------- */
.process-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:10px; }
.process-step{ border-left:2px solid var(--copper); padding-left:18px; }
.process-step .ps-num{ font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--copper); font-weight:600; }
.process-step h3{ font-size:1.1rem; margin-top:8px; }
.process-step p{ margin-top:8px; font-size:0.9rem; color:var(--ink-soft); }
@media (max-width:820px){ .process-grid{ grid-template-columns:minmax(0,1fr); } }

/* ---------- awards ---------- */
.award-row{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:10px; }
.award-card{
  position:relative; border:1px solid var(--line); border-radius:4px; background:var(--card);
  min-height:168px; display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.award-laurel{ position:absolute; width:88%; height:82%; left:50%; top:50%; transform:translate(-50%,-50%); }
.award-card .ac-inner{ position:relative; z-index:1; text-align:center; }
.award-card .ac-year{ font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:1.3rem; }
.award-card .ac-title{ margin-top:5px; font-size:0.6rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; line-height:1.45; color:var(--ink-soft); }
.award-card.tier-gold .award-laurel{ color:var(--copper); }
.award-card.tier-gold .ac-year{ color:var(--copper-dark); }
.award-card.tier-bronze .award-laurel{ color:#C1875F; }
.award-card.tier-bronze .ac-year{ color:#D9A97E; }
.award-card.tier-silver .award-laurel{ color:#AFB5BA; }
.award-card.tier-silver .ac-year{ color:#CDD2D5; }
@media (max-width:820px){ .award-row{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* ---------- contact form (mailto) ---------- */
.contact-form{ background:var(--card); border:1px solid var(--line); border-radius:4px; padding:32px; }
.form-row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.form-field{ margin-top:18px; }
.form-row .form-field{ margin-top:0; }
.form-field:first-child{ margin-top:0; }
.form-field label .opt{
  font-weight:500; text-transform:none; letter-spacing:0;
  color:var(--ink-soft); opacity:0.75; margin-left:6px;
}
.form-field label{ display:block; font-family:'IBM Plex Mono',monospace; font-size:0.7rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:7px; }
.form-field input, .form-field select, .form-field textarea{
  width:100%; border:1px solid var(--line); border-radius:3px; background:var(--paper-alt);
  font-family:'IBM Plex Sans',sans-serif; font-size:0.95rem; color:var(--ink); padding:11px 13px;
}
.form-field select{ appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);
  background-position:calc(100% - 18px) 55%, calc(100% - 13px) 55%; background-size:5px 5px,5px 5px; background-repeat:no-repeat;
  padding-right:36px;
}
.form-field textarea{ resize:vertical; min-height:100px; font-family:'IBM Plex Sans',sans-serif; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ border-color:var(--copper); }
.form-submit-row{ margin-top:22px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.form-hint{ font-size:0.82rem; color:var(--ink-soft); max-width:34ch; }

.form-note{
  margin-top:12px; font-size:0.88rem; line-height:1.5;
  padding:10px 13px; border-radius:3px;
  background:var(--paper-alt); border:1px solid var(--line); color:var(--ink-soft);
}
.form-note.is-ok{ border-color:var(--copper); color:var(--copper-dark); background:var(--copper-soft); }
.form-note.is-error{ border-color:var(--steel); color:var(--steel-dark); background:var(--steel-soft); }
.form-note[hidden]{ display:none; }

/* ---------- contact ---------- */
.contact-methods{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:10px; }
.contact-card{ background:var(--card); border:1px solid var(--line); border-radius:4px; padding:22px; }
.contact-card .cc-label{ display:inline-flex; align-items:center; gap:7px; font-family:'IBM Plex Mono',monospace; font-size:0.72rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--copper); }
.contact-card .cc-label svg{ width:14px; height:14px; fill:currentColor; flex:none; }
.contact-card .cc-value{ margin-top:9px; font-weight:700; font-size:1.05rem; }
.contact-card .cc-note{ margin-top:4px; font-size:0.84rem; color:var(--ink-soft); }
.contact-card.fb-card{ border-color:var(--steel-soft); }
.contact-card.fb-card .cc-label{ color:var(--steel); }
@media (max-width:820px){ .contact-methods{ grid-template-columns:minmax(0,1fr); } }

.info-grid{ display:grid; grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr); gap:36px; align-items:stretch; }
.info-panel{ background:var(--card); border:1px solid var(--line); border-radius:4px; padding:30px; }
.addr-block{ display:flex; flex-direction:column; gap:4px; }
.addr-block .addr-line{ font-size:1.05rem; font-weight:700; }
.addr-block .addr-sub{ font-size:0.9rem; color:var(--ink-soft); }
.hours-list{ margin-top:18px; padding-top:18px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:2px; }
.hours-row{ display:flex; justify-content:space-between; font-size:0.96rem; padding:8px 0; }
.hours-row .day{ font-weight:600; }
.hours-row .time{ color:var(--ink-soft); font-family:'IBM Plex Mono',monospace; font-size:0.88rem; }
.info-panel-solo{ max-width:640px; }
@media (max-width:900px){ .info-grid{ grid-template-columns:minmax(0,1fr); } }

/* ---------- facebook / messenger block ---------- */
.fb-band{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; background:var(--card); border:1px solid var(--steel-soft); border-radius:6px; padding:26px 28px; margin-top:36px; }
.fb-band .fb-icon{ width:46px; height:46px; flex:none; border-radius:50%; background:var(--steel-soft); display:flex; align-items:center; justify-content:center; }
.fb-band .fb-icon svg{ width:24px; height:24px; fill:var(--steel); }
.fb-band .fb-copy{ flex:1; min-width:220px; }
.fb-band .fb-copy strong{ display:block; font-size:1.02rem; color:var(--ink); }
.fb-band .fb-copy span{ display:block; margin-top:3px; font-size:0.88rem; color:var(--ink-soft); }

/* ---------- final cta ---------- */
.cta-band{ background:var(--night); color:var(--ink); border-radius:6px; padding:56px 40px; text-align:center; }
.cta-band h2{ color:var(--ink); font-size:clamp(1.6rem,2.4vw + 1rem,2.3rem); }
.cta-band p{ color:rgba(237,236,231,0.75); margin-top:12px; max-width:50ch; margin-inline:auto; }
.cta-band .hero-cta{ justify-content:center; margin-top:26px; }

/* ---------- jogi oldalak (impresszum, adatkezeles) ---------- */
.legal{ max-width:760px; }
.legal h2{ font-size:1.35rem; margin-top:40px; }
.legal h2:first-child{ margin-top:0; }
.legal h3{ font-size:1.02rem; margin-top:26px; color:var(--copper-dark); }
.legal p{ margin-top:14px; color:var(--ink-soft); font-size:0.98rem; line-height:1.75; }
.legal a{ color:var(--copper-dark); text-decoration:underline; text-underline-offset:3px; }
.legal a:hover{ color:var(--ink); }

.legal-dl{ margin:18px 0 0; display:grid; grid-template-columns:minmax(0,200px) minmax(0,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.legal-dl dt{ background:var(--card); padding:12px 16px; font-size:0.85rem; color:var(--ink-soft); font-family:'IBM Plex Mono',monospace; }
.legal-dl dd{ background:var(--card); padding:12px 16px; margin:0; font-size:0.95rem; color:var(--ink); }
@media (max-width:620px){
  .legal-dl{ grid-template-columns:minmax(0,1fr); }
  .legal-dl dt{ padding-bottom:2px; }
  .legal-dl dd{ padding-top:2px; }
}
.legal-dl dd.legal-todo{ color:var(--copper-dark); font-family:'IBM Plex Mono',monospace; font-size:0.88rem; }

.legal-list{ margin:14px 0 0; padding-left:0; list-style:none; display:flex; flex-direction:column; gap:9px; }
.legal-list li{ position:relative; padding-left:18px; color:var(--ink-soft); font-size:0.96rem; line-height:1.7; }
.legal-list li::before{ content:''; position:absolute; left:0; top:11px; width:8px; height:1.5px; background:var(--copper); }
.legal-list strong{ color:var(--ink); }

.legal-updated{ margin-top:40px; padding-top:18px; border-top:1px solid var(--line); font-family:'IBM Plex Mono',monospace; font-size:0.8rem; color:var(--ink-soft); }

/* ---------- footer ---------- */
footer{ background:var(--night); color:rgba(237,236,231,0.6); padding:44px 0 30px; border-top:1px solid var(--line-dark); }
.footer-grid{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; }
.footer-brand{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.footer-brand .fb-row{ display:flex; align-items:center; gap:10px; }
.footer-brand img{ height:26px; width:auto; filter:invert(1); }
.footer-brand .name{ font-weight:700; font-size:1.02rem; color:var(--ink); }
.footer-social{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px; border-radius:3px;
  border:1px solid var(--steel-soft); background:var(--steel-soft);
  font-size:0.84rem; font-weight:600; color:var(--steel-dark);
  transition:border-color .18s ease, color .18s ease;
}
.footer-social svg{ width:16px; height:16px; fill:currentColor; flex:none; }
.footer-social:hover{ border-color:var(--steel); color:var(--ink); }
.footer-col{ font-size:0.88rem; line-height:1.9; }
.footer-col strong{ display:block; color:var(--ink); font-size:0.72rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:6px; font-family:'IBM Plex Mono',monospace; }
.footer-links{ display:flex; flex-direction:column; gap:4px; }
.footer-links a:hover{ color:var(--ink); }
.footer-bottom{ margin-top:28px; padding-top:18px; border-top:1px solid var(--line-dark); font-size:0.8rem; font-family:'IBM Plex Mono',monospace; display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; }
.footer-credit{ color:rgba(237,236,231,0.4); }
.footer-credit a{ color:rgba(237,236,231,0.55); }
.footer-credit a:hover{ color:var(--copper-dark); }

@media (max-width:520px){
  section{ padding:52px 0; }
  .cta-band{ padding:40px 22px; }
}
