/* =========================================================================
   Justice Wins – Igazság Győz  |  sablon-felülírások és saját komponensek
   A "Churche" sablon main.css-e után töltődik be.

   Színvilág (ügyfél által megadott kódok):
     háttér          #1B2C4E  meleg királykék
     panelek/kártyák #243A63  világosabb a háttérnél
     arany           #D9A93C  kiemelés
     arany fény      #E8C46A
     szöveg          #FAF4E6  ivory (címek) / #E6DECD tompított ivory (folyószöveg)
     fejléc/lábléc   #0F1F3D  sötétebb a háttérnél
   ========================================================================= */

:root {
  --jw-bg: #1B2C4E;
  --jw-panel: #243A63;
  --jw-panel-2: #2C4776;
  --jw-dark: #0F1F3D;
  --jw-darker: #0A162E;
  --jw-gold: #D9A93C;
  --jw-gold-light: #E8C46A;
  --jw-ivory: #FAF4E6;
  --jw-text: #E6DECD;
  --jw-line: rgba(250, 244, 230, .14);

  /* sablon-változók átkötése */
  --main-h: 42; --main-s: 67%; --main-l: 54%;          /* #D9A93C */
  --black: 214 60% 15%;                                /* #0F1F3D – bg-black, header, footer */
  --heading-color: 40 67% 94%;                         /* #FAF4E6 – címek, text-heading */
  --body: 38 33% 85%;                                  /* #E6DECD – folyószöveg */
  --white: 40 67% 94%;                                 /* text-white → ivory (nem vakít) */
}

html { background: var(--jw-bg); }
body { background-color: var(--jw-bg); color: var(--jw-text); }
h1, h2, h3, h4, h5, h6 { color: var(--jw-ivory); }
.text-heading { color: var(--jw-ivory) !important; }
.text-body { color: var(--jw-text) !important; }
::selection { background: var(--jw-gold); color: var(--jw-dark); }

/* ---------- Tipográfia: a sablon óriás címei magyar szövegekhez ---------- */
.section-title,
.section-title.tw-text-25 {
  font-size: clamp(2.125rem, 4.2vw, 4.25rem) !important;
  margin-block-start: -10px;
  line-height: 108%;
}
.jw-banner-title,
.banner-title.jw-banner-title {
  font-size: clamp(3rem, 8.5vw, 9.5rem) !important;
  line-height: 100%;
}
.banner-title.jw-banner-title span { margin-inline-start: clamp(0px, 8vw, 140px); }
@media (max-width: 991px) { .banner-title.jw-banner-title span { margin-inline-start: 0; } }
.breadcrumb-title { font-size: clamp(2.5rem, 6vw, 4.625rem) !important; }
.jw-post-title { font-size: clamp(2rem, 4.5vw, 3.5rem) !important; }
.service-title { font-size: clamp(1.75rem, 3vw, 3.125rem) !important; }

/* ---------- Szekció-hátterek: a sablon bézs/fehér felületei → kék panelek ---------- */
.about-area, .service-area, .service-wrapper, .blog-area, .event-area, .contact-form,
.jw-pillars, .jw-note, .blog-ip-area, .jw-shop, .jw-legal, .jw-about, .jw-donate,
.blog-details-area, .jw-marriage, .jw-books, .jw-cta, .countdown-area {
  background: var(--jw-bg);
}
.about-area, .jw-pillars, .blog-area, .jw-books { background: var(--jw-panel); }
.service-wrapper { background: var(--jw-bg); }
.contact-form, .jw-note, .jw-pillar, .jw-placeholder { background: var(--jw-panel); }
.jw-donate .contact-form { background: var(--jw-panel); }
.section-subtitle { border-color: var(--jw-line); }
.service-wrapper.border-white { border-color: var(--jw-line) !important; }
.blockquote { border-left-color: var(--jw-gold-light); }
.blockquote.bg-main-600 p { color: var(--jw-dark); }

/* ---------- Preloader ---------- */
.loading-screen { background: var(--jw-dark) !important; }
.loading-screen .animation-preloader .txt-loading .letters-loading { color: rgba(250, 244, 230, .25); }
.loader-logo img { width: 64px; height: 64px; border-radius: 50%; }

/* ---------- Logó ---------- */
.jw-logo { color: var(--jw-gold); }
.jw-logo__mark { width: 46px; height: 46px; border-radius: 50%; flex-shrink: 0; box-shadow: 0 0 0 2px rgba(232, 196, 106, .35), 0 0 18px rgba(217, 169, 60, .35); }
.jw-logo__name { font-size: 1.75rem; letter-spacing: .04em; line-height: 1; color: var(--jw-ivory); }
.jw-logo__sub { font-size: .7rem; letter-spacing: .22em; text-transform: uppercase; margin-top: 4px; color: var(--jw-gold-light); }
@media (max-width: 575px) {
  .jw-logo__mark { width: 38px; height: 38px; }
  .jw-logo__name { font-size: 1.4rem; }
}

/* ---------- Header ---------- */
.header nav { padding-block: 18px; }
.header.fixed-header { background: var(--jw-dark); border-bottom-color: var(--jw-line); }
.jw-social__btn { border: 1px solid rgba(250, 244, 230, .25); font-size: 1.1rem; transition: all .3s; color: var(--jw-ivory); }
.jw-social__btn--yt { width: auto; padding-inline: 12px 10px; border-radius: 999px; gap: 5px; }
.jw-social__btn--yt span { font-size: .7rem; font-weight: 700; letter-spacing: .08em; }
.jw-social__btn:hover { background: var(--jw-gold); color: var(--jw-dark); border-color: var(--jw-gold); }
.nav-menu__item.activePage > .nav-menu__link { color: var(--jw-gold); }
.header .tw-hover-btn, .mobile-menu .tw-hover-btn { white-space: nowrap; }
@media (max-width: 1399px) { .header-menu .nav-menu { gap: 1.25rem; } }
.mobile-menu { background: var(--jw-dark) !important; }

/* ---------- Gombok ---------- */
.tw-hover-btn.bg-main-600 { color: var(--jw-dark); }
.tw-hover-btn.bg-black { background: var(--jw-panel-2) !important; color: var(--jw-ivory); }
.jw-btn-outline { background: transparent; border: 1px solid rgba(250, 244, 230, .45); color: var(--jw-ivory); }
.jw-btn-outline--dark { border-color: rgba(250, 244, 230, .35); }
.jw-btn-outline:hover { border-color: var(--jw-gold); }

/* ---------- Vezérszakasz ---------- */
.jw-banner { padding-block: 260px 160px; }
@media (max-width: 1199px) { .jw-banner { padding-block: 190px 110px; } }
.banner-area::before { background: linear-gradient(180deg, rgba(15, 31, 61, .78) 0%, rgba(27, 44, 78, .74) 100%); }
.jw-banner-content { max-width: 480px; }
@media (max-width: 1399px) {
  .jw-banner-content { position: static !important; margin-top: 40px; }
}
.breadcrumb-area::before { background: rgba(15, 31, 61, .78); }

/* ---------- Alapelvek (számozott lista) ---------- */
.jw-principles .service-wrapper { gap: 24px; }
.jw-service-content { flex: 1 1 60%; max-width: 900px; }
.jw-service-paragraph { max-width: none; color: var(--jw-text); }
.jw-principles .service-number h4 { color: var(--jw-gold); }
.jw-principles.service-area { padding-block-end: 120px; }
@media (max-width: 991px) { .jw-principles.service-area { padding-block-end: 80px; } }

/* ---------- Házasság ---------- */
.jw-marriage__thumb img { border-radius: 8px; }

/* ---------- Pillérek ---------- */
.jw-pillar { padding: 40px 32px; border-block-start: 4px solid var(--jw-gold); position: relative; background: var(--jw-panel-2); }
.jw-pillar__num { display: block; font-size: 2.6rem; line-height: 1; color: var(--jw-gold); margin-bottom: 14px; }
.jw-pillar h4 { line-height: 1.15; }
.jw-pillar p { color: var(--jw-text); }

/* ---------- Petíció ---------- */
.jw-petition::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: rgba(15, 31, 61, .84);
}

/* ---------- Könyvek ---------- */
.jw-book { align-items: flex-start; }
.jw-book__cover {
  display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center;
  width: 170px; aspect-ratio: 2 / 3; padding: 22px 18px;
  color: var(--jw-ivory); text-decoration: none;
  border-radius: 4px 10px 10px 4px;
  box-shadow: 10px 12px 30px rgba(10, 22, 46, .5), inset 6px 0 0 rgba(255,255,255,.12);
  position: relative; overflow: hidden;
}
.jw-book__cover::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(120deg, rgba(255,255,255,.14), transparent 45%);
}
.jw-book__cover--1 { background: linear-gradient(160deg, #0F1F3D 0%, #0A162E 100%); border: 1px solid rgba(232,196,106,.35); }
.jw-book__cover--2 { background: linear-gradient(160deg, #B98A2A 0%, #6E4F12 100%); }
.jw-book__cover--lg { width: min(100%, 300px); padding: 36px 28px; }
.jw-book__cover-title { font-size: 1.35rem; line-height: 1.1; text-transform: uppercase; letter-spacing: .03em; }
.jw-book__cover--lg .jw-book__cover-title { font-size: 2.1rem; }
.jw-book__cover-sub { font-size: .7rem; letter-spacing: .25em; text-transform: uppercase; color: var(--jw-gold-light); margin-top: 14px; }
.jw-book__body h4 a { color: var(--jw-ivory); }
.jw-book__body h4 a:hover { color: var(--jw-gold); }
@media (max-width: 575px) { .jw-book { flex-direction: column; } }
.jw-badge {
  display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--jw-gold-light); background: rgba(217, 169, 60, .14); padding: 6px 12px; border-radius: 999px;
}
.jw-link { color: var(--jw-ivory); }
.jw-link:hover { color: var(--jw-gold) !important; }
.jw-link i { transition: transform .25s; }
.jw-link:hover i { transform: translateX(4px); }

/* ---------- Webshop ---------- */
.jw-product + .jw-product { border-top: 1px solid var(--jw-line); padding-top: 64px; }
.jw-price__label { color: var(--jw-text); }
.jw-price__value { color: var(--jw-gold-light) !important; }
.jw-note { border-inline-start: 4px solid var(--jw-gold); }
.jw-bundle { background: var(--jw-panel); border: 1px solid rgba(232, 196, 106, .35); }

/* ---------- Hozzájárulás ---------- */
.jw-donate__block + .jw-donate__block { border-top: 1px solid var(--jw-line); padding-top: 32px; }
.jw-bank dd { margin-bottom: 0; }
.jw-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .95em; background: var(--jw-dark); padding: 2px 8px; border-radius: 4px; color: var(--jw-gold-light); }
.contact-thumb img { object-fit: cover; }
@media (max-width: 1199px) { .contact-thumb img { max-height: 360px; } }
.jw-terms li { color: var(--jw-text); margin-bottom: 6px; }

/* ---------- Blog ---------- */
.blog-thumb img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.blog-details-thumb img { aspect-ratio: 16 / 9; object-fit: cover; }
.blog-meta li { color: var(--jw-text); }
.blog-content h4 a { color: var(--jw-ivory); }
.blog-content h4 a:hover { color: var(--jw-gold); }
.blog-btn a { color: var(--jw-dark) !important; }
.jw-post-content p { font-size: 1.125rem; line-height: 1.75; color: var(--jw-text); }
.jw-post-content h2, .jw-post-content h3 { margin-bottom: 1rem; }
.blog-details-area .border-neutral-200 { border-color: var(--jw-line) !important; }

/* ---------- Rólam / jogi ---------- */
.jw-about__thumb img { border-radius: 8px; }
.jw-legal__content h2 { font-size: 2rem; }
.jw-legal__content p, .jw-legal__list li { color: var(--jw-text); }
.jw-legal__list { padding-inline-start: 1.25rem; list-style: disc; }
.jw-legal__list li { margin-bottom: 4px; }
.jw-placeholder { color: var(--jw-gold-light); font-style: italic; padding: 12px 16px; border-inline-start: 4px solid var(--jw-gold); }
.jw-lang-note { border: 1px solid rgba(232, 196, 106, .4); background: var(--jw-panel); }

/* ---------- Lábléc ---------- */
.footer { background: var(--jw-dark); padding-block: 90px 0; }
.footer-bottom { background: var(--jw-darker); position: relative; z-index: 2; }
.footer-col-1::before, .footer-col-2::before, .footer-col-3::before { background: var(--jw-line); }
.jw-disclaimer { border-bottom: 1px solid var(--jw-line); padding-bottom: 20px; }
.jw-footer-tagline { line-height: 1.1; }
.footer-shape-2 { opacity: .6; }
.jw-footer-terms { font-size: .8rem; color: var(--jw-text); }
.jw-footer-terms li { margin-bottom: 4px; padding-inline-start: 14px; position: relative; }
.jw-footer-terms li::before { content: "•"; position: absolute; left: 0; color: var(--jw-gold); }

/* ---------- Feliratkozás ---------- */
.jw-subscribe { background: var(--jw-panel); }
.jw-subscribe__form { background: var(--jw-panel-2); border: 1px solid rgba(232, 196, 106, .3); }
.jw-input { width: 100%; height: 56px; padding: 0 18px; background: var(--jw-dark); border: 1px solid var(--jw-line); color: var(--jw-ivory); font-family: var(--body-font); }
.jw-input::placeholder { color: rgba(250, 244, 230, .5); }
.jw-input:focus { outline: none; border-color: var(--jw-gold); }
.jw-subscribe__form input[type=radio], .jw-subscribe__form input[type=checkbox] { accent-color: var(--jw-gold); width: 16px; height: 16px; }
.jw-consent { color: var(--jw-text); cursor: pointer; }
.jw-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.jw-subscribe__form button { white-space: nowrap; }

/* ---------- Élő tanítás ---------- */
.jw-live-card { background: var(--jw-panel); border: 1px solid rgba(232, 196, 106, .3); }
.jw-live-dot { width: 18px; height: 18px; border-radius: 50%; background: #E5484D; box-shadow: 0 0 0 0 rgba(229, 72, 77, .6); animation: jwPulse 1.6s infinite; flex-shrink: 0; }
@keyframes jwPulse { 0% { box-shadow: 0 0 0 0 rgba(229,72,77,.6); } 70% { box-shadow: 0 0 0 14px rgba(229,72,77,0); } 100% { box-shadow: 0 0 0 0 rgba(229,72,77,0); } }
.jw-live-embed { background: var(--jw-panel); border: 1px solid var(--jw-line); min-height: 200px; }
.jw-live-embed blockquote { margin: 0; }
.jw-lang { letter-spacing: .06em; font-size: .9rem; }
.jw-status { max-width: 640px; }
.jw-live-embed .tiktok-embed { margin: 0 auto; }

/* ---------- Videós bejegyzés ---------- */
.jw-video--16x9 { position: relative; aspect-ratio: 16 / 9; background: var(--jw-dark); }
.jw-video--16x9 iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.jw-video--tiktok { display: flex; justify-content: center; background: var(--jw-panel); padding: 16px; }
.jw-video--tiktok .tiktok-embed { margin: 0; }
.jw-video-badge { position: absolute; left: 14px; top: 14px; width: 40px; height: 40px; border-radius: 50%; background: rgba(15,31,61,.85); color: var(--jw-gold); display: inline-flex; align-items: center; justify-content: center; font-size: 1.1rem; z-index: 2; pointer-events: none; }
.jw-post-content h2, .jw-post-content h3, .jw-post-content h4 { margin: 1.5rem 0 .75rem; }
.jw-post-content p { margin-bottom: 1.25rem; }
.jw-post-content ul, .jw-post-content ol { padding-inline-start: 1.5rem; margin-bottom: 1.25rem; color: var(--jw-text); }
.jw-post-content ul { list-style: disc; } .jw-post-content ol { list-style: decimal; }
.jw-post-content li { margin-bottom: .4rem; }
.jw-post-content blockquote { border-inline-start: 4px solid var(--jw-gold); padding: 12px 20px; margin: 0 0 1.25rem; background: var(--jw-panel); color: var(--jw-ivory); font-style: italic; }
.jw-post-content a { color: var(--jw-gold-light); text-decoration: underline; }
.jw-post-content img { max-width: 100%; height: auto; border-radius: 6px; }
.jw-kata { color: var(--jw-text); }

/* ---------- Jogi oldalak ---------- */
.jw-hr { border: 0; border-top: 1px solid var(--jw-line); opacity: 1; margin: 3rem 0; }
.jw-legal-box { background: var(--jw-panel-2); border-inline-start: 4px solid var(--jw-gold); border-radius: 4px; }
.jw-legal-box p { color: var(--jw-text); }
.jw-legal-check { background: var(--jw-panel); border: 1px dashed var(--jw-line); padding: 14px 18px; color: var(--jw-ivory); }
.jw-ph { color: var(--jw-gold-light); font-style: italic; }
.jw-legal__content h2 { scroll-margin-top: 120px; }
.jw-legal__content a { color: var(--jw-gold-light); text-decoration: underline; }
.jw-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.jw-table { width: 100%; min-width: 640px; border-collapse: collapse; background: var(--jw-panel); font-size: .92rem; }
.jw-table th, .jw-table td { border: 1px solid var(--jw-line); padding: 10px 12px; text-align: start; vertical-align: top; color: var(--jw-text); }
.jw-table th { background: var(--jw-panel-2); color: var(--jw-ivory); font-weight: 600; }

/* ---------- Bejegyzés: hitvallás-lista, kiemelt bekezdés, hashtagek ---------- */
.jw-post-content .jw-lead { font-size: 1.25rem; line-height: 1.6; color: var(--jw-ivory); }
.jw-creed { list-style: none; padding: 0; margin: 0; }
.jw-creed li { display: flex; gap: 16px; align-items: flex-start; padding: 16px 20px; background: var(--jw-panel); border-inline-start: 3px solid var(--jw-gold); margin-bottom: 10px; color: var(--jw-text); }
.jw-creed li strong { color: var(--jw-ivory); }
.jw-creed__icon { font-size: 1.4rem; line-height: 1.3; flex-shrink: 0; }
.jw-hashtags { color: var(--jw-gold-light); font-size: .9rem; word-spacing: .2em; }
.jw-weapons { list-style: none; counter-reset: jw-w; padding: 0; margin: 0; }
.jw-weapons li { counter-increment: jw-w; position: relative; padding: 16px 20px 16px 62px; background: var(--jw-panel); border-inline-start: 3px solid var(--jw-gold); margin-bottom: 10px; color: var(--jw-text); }
.jw-weapons li::before { content: counter(jw-w); position: absolute; inset-inline-start: 20px; top: 14px; font-family: var(--heading-font); font-size: 1.6rem; line-height: 1; color: var(--jw-gold); }
.jw-weapons li strong { color: var(--jw-ivory); }

/* A sablon a --white változót háttérként is használja: a bejegyzés-oldal doboza
   emiatt ivory lett. Visszaállítjuk sötétre. */
.blog-details-wrapper { background: transparent; box-shadow: none; }
.blog-details-content { padding-inline: 0; }

/* ---------- Saját tárhelyen lévő videó (álló formátumhoz is) ---------- */
.jw-video--file { display: flex; justify-content: center; background: var(--jw-darker); border-radius: 6px; overflow: hidden; }
.jw-video__el { width: 100%; max-width: 420px; max-height: 78vh; display: block; background: #000; }
@media (max-width: 575px) { .jw-video__el { max-width: 100%; max-height: 70vh; } }

/* ---------- Még nem konfigurált fizetési gomb ---------- */
.jw-btn-soon { background: var(--jw-panel-2); color: var(--jw-text); border: 1px dashed rgba(232,196,106,.45); cursor: not-allowed; }
.jw-btn-soon i { color: var(--jw-gold); }

/* ---------- Hozzájárulás: összeg-gombok ---------- */
.jw-amount { min-width: 140px; justify-content: center; }
@media (max-width: 575px) { .jw-amounts .jw-amount { flex: 1 1 100%; } }

/* ---------- Pályázati védjegy (Demján Sándor Program / Neumann NKft.) ---------- */
.palyazat-sav { position: fixed; bottom: 0; right: 20px; z-index: 9999; margin: 0; padding: 0; }
.palyazat-sav-belso { position: relative; display: inline-flex; flex-direction: column; align-items: stretch; gap: 10px; }
.palyazat-szoveg { background: #fff; font-family: Arial, sans-serif; font-size: 14.5px; line-height: 1.35; color: #222; margin: 0; padding: 12px 18px; border-radius: 8px; box-shadow: 0 4px 14px rgba(0, 0, 0, .15); white-space: nowrap; }
.palyazat-logok { display: flex; flex-direction: row; align-items: stretch; gap: 10px; line-height: 0; }
.palyazat-logok a { display: inline-block; line-height: 0; border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 4px 14px rgba(0, 0, 0, .15); }
/* A sablon globális img-szabályát (max-width: 100%) felül kell írni, különben torzul. */
.palyazat-logok img { display: block; width: auto; height: 120px; max-width: none; object-fit: contain; }
.palyazat-bezar { position: absolute; top: -14px; right: -14px; width: 28px; height: 28px; padding: 0; background: #fff; border: 1px solid #ccc; border-radius: 50%; font-size: 18px; line-height: 1; text-align: center; color: #333; cursor: pointer; z-index: 10000; box-shadow: 0 2px 6px rgba(0, 0, 0, .15); transition: .2s; }
.palyazat-bezar:hover, .palyazat-bezar:focus-visible { background: #222; color: #fff; border-color: #222; }
/* A „vissza a tetejére” gomb a sáv fölé kerül, amíg a sáv látszik. */
body.palyazat-latszik .back-to-top-wrapper.back-to-top-btn-show { inset-block-end: 200px; }
@media only screen and (max-width: 767px) {
    .palyazat-sav { left: 10px; right: 10px; }
    .palyazat-sav-belso { display: flex; width: 100%; }
    .palyazat-szoveg { white-space: normal; font-size: 13px; padding: 8px 12px; }
    .palyazat-logok { justify-content: center; }
    .palyazat-logok a { flex: 1 1 0; max-width: calc(50% - 5px); height: 70px; display: flex; align-items: center; justify-content: center; }
    .palyazat-logok img { width: 100%; height: 70px; }
    /* Teljes szélességű sávnál a -14px jobbra kilógna a képernyőről. */
    .palyazat-bezar { top: -16px; right: 0; width: 32px; height: 32px; font-size: 20px; }
    body.palyazat-latszik .back-to-top-wrapper.back-to-top-btn-show { inset-block-end: 155px; }
}
