:root {
  --tp-blue:#0084ce;
  --tp-blue-dark:#075caa;
  --tp-navy:#123b63;
  --tp-sky:#eaf7ff;
  --tp-line:#cfe9f8;
  --tp-text:#18344f;
  --tp-muted:#5c7082;
  --tp-shadow:0 16px 45px rgba(23,74,116,.10);
}
html { scroll-behavior:smooth; }
body.site { background:#fff; color:var(--tp-text); font-family:Arial, Helvetica, sans-serif; line-height:1.65; }
a { color:var(--tp-blue-dark); }
a:hover { color:var(--tp-blue); }
.container-header { background:#fff !important; color:var(--tp-navy) !important; box-shadow:0 2px 18px rgba(15,69,108,.08); position:relative; z-index:20; }
.container-header .grid-child { max-width:1500px; padding:12px 28px; align-items:center; gap:30px; }
.container-header .navbar-brand { flex:0 0 auto; margin:0; }
.container-header .navbar-brand img { width:310px; max-height:72px; object-fit:contain; }
.container-header .container-nav { flex:1; justify-content:flex-end; padding:0; }
.container-header .mod-menu { justify-content:flex-end; gap:8px; }
.container-header .mod-menu > li > a { color:var(--tp-navy) !important; font-weight:700; text-transform:uppercase; font-size:.84rem; letter-spacing:.01em; padding:.9rem .72rem; border-radius:8px; }
.container-header .mod-menu > li.active > a,
.container-header .mod-menu > li > a:hover { color:var(--tp-blue) !important; background:var(--tp-sky); }
.container-header .navbar-toggler { color:var(--tp-blue-dark); border-color:var(--tp-line); }
.site-grid { display:block; }
.container-component { max-width:none !important; padding:0 !important; margin:0 !important; }
.com-content-article { margin:0; }
.tp-home h1,.tp-home h2,.tp-page h1,.tp-page h2,.tp-page h3 { color:var(--tp-navy); font-weight:800; letter-spacing:-.02em; }
.tp-kicker { color:var(--tp-blue); font-weight:800; text-transform:uppercase; letter-spacing:.12em; font-size:.79rem; margin-bottom:6px; }
.tp-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(460px,1fr); min-height:650px; max-width:1500px; margin:0 auto; }
.tp-hero-copy { padding:70px 38px 65px 48px; align-self:center; }
.tp-hero h1 { font-size:clamp(2.7rem,5vw,5.2rem); line-height:1; margin:0 0 32px; position:relative; color:var(--tp-blue-dark); }
.tp-hero h1:after { content:""; display:block; width:78px; height:5px; background:var(--tp-blue); border-radius:4px; margin-top:22px; }
.tp-hero-copy p { max-width:720px; font-size:1.05rem; }
.tp-highlight { color:var(--tp-blue-dark); font-weight:700; font-size:1.13rem !important; }
.tp-strong { color:var(--tp-navy); font-weight:800; font-size:1.16rem !important; }
.tp-hero-image { min-height:650px; overflow:hidden; background:linear-gradient(135deg,#f7fcff,#dff5ff); }
.tp-hero-image img { width:100%; height:100%; min-height:650px; object-fit:cover; object-position:center; display:block; }
.tp-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.btn.btn-primary { background:linear-gradient(135deg,var(--tp-blue),var(--tp-blue-dark)); border:none; border-radius:9px; padding:.8rem 1.2rem; font-weight:700; box-shadow:0 8px 20px rgba(0,132,206,.2); }
.btn.btn-outline-primary { border:2px solid var(--tp-blue); color:var(--tp-blue-dark); border-radius:9px; padding:.7rem 1.2rem; font-weight:700; }
.btn.btn-outline-primary:hover { background:var(--tp-blue); color:#fff; }
.tp-wave-section { position:relative; padding:70px 24px 62px; background:linear-gradient(180deg,#dff3ff 0,#f8fcff 120px,#fff 100%); }
.tp-wave-section:before { content:""; position:absolute; top:-22px; left:0; right:0; height:52px; background:radial-gradient(70% 55px at 25% 0,transparent 65%,#dff3ff 66%),radial-gradient(70% 55px at 75% 0,transparent 65%,#dff3ff 66%); opacity:.8; pointer-events:none; }
.tp-card-grid { max-width:1420px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.tp-service-card { background:rgba(255,255,255,.95); border:1px solid var(--tp-line); border-radius:24px; padding:36px 40px; box-shadow:var(--tp-shadow); position:relative; overflow:hidden; }
.tp-service-card:after { content:""; position:absolute; width:170px; height:170px; border:22px solid #edf8ff; border-radius:50%; right:-70px; bottom:-80px; }
.tp-service-card h2 { font-size:1.8rem; text-transform:uppercase; color:var(--tp-blue-dark); max-width:420px; }
.tp-icon { width:70px; height:70px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(135deg,var(--tp-blue),var(--tp-blue-dark)); color:#fff; font-size:2rem; margin-bottom:20px; }
.tp-checks { list-style:none; padding:0; margin:24px 0; position:relative; z-index:2; }
.tp-checks li { padding:8px 0 8px 30px; position:relative; }
.tp-checks li:before { content:"✓"; position:absolute; left:0; top:9px; width:18px; height:18px; border-radius:50%; background:var(--tp-blue-dark); color:#fff; font-weight:bold; font-size:.72rem; display:grid; place-items:center; }
.tp-text-link { font-weight:800; text-decoration:none; position:relative; z-index:2; }
.tp-price-home { max-width:1420px; margin:0 auto; padding:58px 42px; display:flex; align-items:center; justify-content:space-between; gap:30px; border-bottom:1px solid var(--tp-line); }
.tp-price-home h2 { font-size:2.2rem; margin:.15rem 0; }
.tp-contact-home { max-width:1500px; margin:0 auto; padding:50px 28px 54px; text-align:center; }
.tp-contact-home > h2 { font-size:2rem; text-transform:uppercase; color:var(--tp-navy); }
.tp-contact-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin-top:32px; }
.tp-contact-grid > div { padding:10px 20px; border-right:1px solid var(--tp-line); min-width:0; }
.tp-contact-grid > div:last-child { border-right:0; }
.tp-contact-grid span { display:block; color:var(--tp-blue-dark); font-size:2rem; margin-bottom:12px; }
.tp-contact-grid strong { display:block; text-transform:uppercase; color:var(--tp-navy); margin-bottom:8px; }
.tp-contact-grid p { font-size:.94rem; overflow-wrap:anywhere; }
.tp-page { width:min(1160px,calc(100% - 40px)); margin:0 auto; padding:70px 0 85px; }
.tp-page > h1 { color:var(--tp-blue-dark); font-size:clamp(2.25rem,4vw,4rem); line-height:1.08; margin:.1rem 0 24px; }
.tp-page > h1:after { content:""; display:block; width:74px; height:5px; border-radius:4px; background:var(--tp-blue); margin-top:20px; }
.tp-lead { font-size:1.23rem; color:#385b77; max-width:950px; margin-bottom:32px; }
.tp-page h2 { margin-top:42px; font-size:1.75rem; }
.tp-content-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:36px 0; }
.tp-content-grid > div,.tp-info-box,.tp-price-placeholder,.tp-hours { background:#f8fcff; border:1px solid var(--tp-line); border-radius:18px; padding:28px 32px; }
.tp-content-grid h2 { margin-top:0; color:var(--tp-blue-dark); }
.tp-info-box { margin:40px 0; background:linear-gradient(135deg,#f7fcff,#edf8ff); }
.tp-price-placeholder { text-align:center; padding:55px 34px; }
.tp-price-placeholder > span { font-size:3rem; color:var(--tp-blue); }
.tp-note { margin-top:26px; color:var(--tp-muted); font-size:.95rem; }
.tp-contact-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:40px 0; }
.tp-contact-cards > div { background:#f8fcff; border:1px solid var(--tp-line); border-radius:18px; padding:26px; text-align:center; box-shadow:0 8px 25px rgba(23,74,116,.06); min-width:0; }
.tp-contact-cards span { font-size:2.3rem; color:var(--tp-blue-dark); }
.tp-contact-cards h2 { margin:16px 0 8px; font-size:1.25rem; }
.tp-contact-cards p { overflow-wrap:anywhere; }
.tp-hours { max-width:650px; margin:30px auto; }
.tp-hours h2 { margin-top:0; text-align:center; }
.tp-hours table { width:100%; }
.tp-hours th,.tp-hours td { padding:12px 10px; border-bottom:1px solid var(--tp-line); }
.tp-hours td { text-align:right; font-weight:700; color:var(--tp-blue-dark); }
.tp-blog-list .blog { width:min(1160px,calc(100% - 40px)); margin:0 auto; padding:70px 0 90px; }
.tp-blog-list .page-header h1 { color:var(--tp-blue-dark); font-weight:800; }
.tp-blog-list .blog-item { border:1px solid var(--tp-line); border-radius:18px; padding:26px; box-shadow:0 10px 30px rgba(23,74,116,.06); margin-bottom:22px; }
.tp-blog-list .blog-item h2 a { color:var(--tp-navy); text-decoration:none; }
.tp-blog-list .blog-item h2 a:hover { color:var(--tp-blue); }
.footer { background:linear-gradient(135deg,#0068ad,#008bd2) !important; color:#fff; margin-top:0; }
.footer .grid-child { max-width:1420px; padding:34px 28px 20px; }
.tp-footer-module { width:100%; }
.tp-footer-inner { display:grid; grid-template-columns:1.2fr 1.5fr 1fr; gap:25px; align-items:start; }
.tp-footer-inner a { color:#fff; }
.tp-copyright { border-top:1px solid rgba(255,255,255,.25); margin-top:24px; padding-top:18px; text-align:center; font-size:.9rem; }
.back-to-top-link { background:var(--tp-blue-dark); color:#fff; }
@media (max-width: 1100px) {
 .tp-hero { grid-template-columns:1fr 1fr; }
 .tp-contact-grid { grid-template-columns:repeat(3,1fr); row-gap:28px; }
 .tp-contact-grid > div { border-right:0; }
 .tp-contact-cards { grid-template-columns:1fr 1fr; }
}
@media (max-width: 850px) {
 .container-header .grid-child { padding:10px 18px; }
 .container-header .navbar-brand img { width:245px; }
 .container-header .container-nav { justify-content:flex-start; width:100%; }
 .container-header .mod-menu { width:100%; }
 .tp-hero { grid-template-columns:1fr; }
 .tp-hero-copy { padding:52px 25px 40px; }
 .tp-hero-image,.tp-hero-image img { min-height:400px; }
 .tp-card-grid,.tp-content-grid { grid-template-columns:1fr; }
 .tp-price-home { align-items:flex-start; flex-direction:column; padding:45px 25px; }
 .tp-contact-grid { grid-template-columns:1fr 1fr; }
 .tp-footer-inner { grid-template-columns:1fr; text-align:center; }
}
@media (max-width: 560px) {
 .container-header .navbar-brand img { width:205px; max-height:60px; }
 .tp-hero h1 { font-size:2.7rem; }
 .tp-hero-copy p { font-size:1rem; }
 .tp-hero-image,.tp-hero-image img { min-height:310px; }
 .tp-wave-section { padding-left:14px; padding-right:14px; }
 .tp-service-card { padding:28px 23px; }
 .tp-service-card h2 { font-size:1.45rem; }
 .tp-contact-grid,.tp-contact-cards { grid-template-columns:1fr; }
 .tp-page { width:min(100% - 28px,1160px); padding-top:50px; }
 .tp-page > h1 { font-size:2.25rem; }
 .tp-actions .btn { width:100%; text-align:center; }
}

/* ==========================================================
   TISZTÍTÓPONT – 2026-09-04 UI javítások
   Fejléc egy sorban, hiányzó ikonok, breadcrumb integrálás
   ========================================================== */

/* Fejléc: logó és menü egy közös sorban */
@media (min-width: 851px) {
  .container-header {
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:34px !important;
    padding:12px max(24px, calc((100vw - 1500px) / 2)) !important;
    min-height:96px;
  }
  .container-header > .grid-child {
    width:auto !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
  }
  .container-header > .grid-child:not(.container-nav) {
    flex:0 0 auto;
  }
  .container-header > .container-nav {
    flex:1 1 auto !important;
    width:auto !important;
    min-width:0;
    justify-content:flex-end !important;
    align-items:center !important;
    padding:0 !important;
  }
  .container-header .navbar-brand {
    display:flex;
    align-items:center;
    margin:0 !important;
    padding:0 !important;
  }
  .container-header .navbar-brand img {
    width:310px !important;
    height:auto !important;
    max-height:72px !important;
    display:block;
    object-fit:contain;
  }
  .container-header .mod-menu {
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:flex-end;
    margin:0;
  }
}

/* A Joomla alap iconkészletében nem létező épület ikon pótlása */
.tp-icon .icon-building::before {
  content:"▦" !important;
  display:block;
  color:#fff;
  font-family:Arial, Helvetica, sans-serif;
  font-size:2.55rem;
  font-weight:700;
  line-height:1;
  transform:scaleX(.92);
}

/* Facebook ikon pótlása – stabilan működik külső ikonfont nélkül is */
.tp-contact-grid .icon-facebook {
  width:36px;
  height:36px;
  margin:0 auto 12px !important;
  border-radius:50%;
  display:grid !important;
  place-items:center;
  background:var(--tp-blue-dark);
  color:#fff !important;
  font-size:0 !important;
}
.tp-contact-grid .icon-facebook::before {
  content:"f" !important;
  display:block;
  color:#fff;
  font-family:Arial, Helvetica, sans-serif;
  font-size:1.75rem;
  font-weight:900;
  line-height:1;
  transform:translateY(1px);
}

/* Breadcrumb: ne legyen külön szürke sáv, simuljon bele az oldalba */
.container-component > .mod-breadcrumbs__wrapper {
  width:min(1500px, calc(100% - 48px));
  margin:0 auto;
  padding:12px 0 6px;
  background:#fff !important;
  border:0 !important;
}
.container-component .mod-breadcrumbs.breadcrumb {
  width:100%;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  color:var(--tp-muted);
  font-size:.88rem;
  min-height:28px;
  align-items:center;
}
.container-component .mod-breadcrumbs__here {
  color:var(--tp-muted);
}
.container-component .breadcrumb-item,
.container-component .breadcrumb-item.active {
  color:var(--tp-muted);
}
.container-component .breadcrumb-item a {
  color:var(--tp-blue-dark);
  text-decoration:none;
}
.container-component .breadcrumb-item a:hover {
  color:var(--tp-blue);
}

/* Főoldalon az útvonal felesleges, ezért elrejtjük */
body.itemid-101 .container-component > .mod-breadcrumbs__wrapper {
  display:none !important;
}

/* Mobilon maradjon kényelmesen tördelhető a fejléc */
@media (max-width: 850px) {
  .container-header {
    display:block !important;
    padding:0 !important;
  }
  .container-header > .grid-child {
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
  }
  .container-header > .grid-child:not(.container-nav) {
    padding:10px 18px 4px !important;
  }
  .container-header > .container-nav {
    padding:4px 18px 10px !important;
  }
  .container-component > .mod-breadcrumbs__wrapper {
    width:min(100% - 32px, 1500px);
    padding-top:10px;
  }
}

/* Tisztítópont footer – centered contact row + AIE.hu credit */
.footer .tp-footer-module { width: 100%; }
.footer .tp-footer-inner {
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  justify-items: center;
}
.footer .tp-copyright {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 9px;
}
.footer .tp-aie-credit {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
.footer .tp-aie-credit img {
  display: block;
  width: 38px;
  height: auto;
  max-height: 25px;
  object-fit: contain;
  transition: opacity .2s ease, transform .2s ease;
}
.footer .tp-aie-credit:hover img,
.footer .tp-aie-credit:focus img {
  opacity: .9;
  transform: translateY(-1px);
}
@media (max-width: 767.98px) {
  .footer .tp-footer-inner { grid-template-columns: 1fr; }
  .footer .tp-copyright { gap: 7px; }
  .footer .tp-aie-credit img { width: 34px; }
}

/* Footer full-width centering fix */
.footer .grid-child {
  width: 100% !important;
  max-width: 1420px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
  display: block !important;
}
.footer .tp-footer-module {
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.footer .tp-footer-inner {
  width: 100%;
  max-width: 900px;
  margin-left: auto !important;
  margin-right: auto !important;
}
.footer .tp-copyright {
  width: 100%;
  max-width: 900px;
  margin-left: auto !important;
  margin-right: auto !important;
}
