/* ═══════════════════════════════════════
   Törjön Út! – Frontend téma
   Liturgikus szentmise és dicsőítőszolgálat
   ═══════════════════════════════════════ */
:root {
    --color-dark:   #1a1f2e;    /* fejléc sötét háttér */
    --color-navy:   #2c3354;    /* secondary dark */
    --color-gold:   #c9a227;    /* arany akcentus */
    --color-gold-lt:#e8c14c;
    --color-bg:     #fafaf8;    /* oldal háttér, meleg fehér */
    --color-text:   #1c1c24;
    --color-muted:  #6b7280;
    --color-border: #e5e7eb;
    --color-surface:#ffffff;
    --font-serif:   'Crimson Pro', 'Georgia', serif;
    --font-sans:    'Inter', system-ui, -apple-system, sans-serif;
    --nav-h:        70px;
    --max-w:        880px;
}

@import url('https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,400;0,600;0,700;1,400&family=Inter:wght@400;500;600&display=swap');

*, *::before, *::after { box-sizing: border-box; }

body {
    margin: 0;
    font-family: var(--font-sans);
    background: var(--color-bg);
    color: var(--color-text);
    font-size: 16px;
    line-height: 1.75;
}

/* ── Header / Nav ── */
#site-header {
    background: var(--color-dark);
    position: sticky;
    top: 0;
    z-index: 100;
    height: var(--nav-h);
    box-shadow: 0 2px 16px rgba(0,0,0,.3);
}

.header-inner {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 0 24px;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 24px;
}

.site-logo {
    display: flex;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
}

.site-logo img {
    height: 64px;
    width: auto;
    filter: brightness(1.05);
}

.site-logo-text {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -.01em;
}

.site-logo-text span {
    color: var(--color-gold);
}

#site-nav {
    display: flex;
    gap: 2px;
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    justify-content: flex-end;
}

#site-nav a {
    display: block;
    padding: 7px 13px;
    color: rgba(255,255,255,.78);
    text-decoration: none;
    font-size: .85rem;
    font-weight: 500;
    border-radius: 6px;
    transition: background .15s, color .15s;
    letter-spacing: .01em;
}

#site-nav a:hover { background: rgba(255,255,255,.1); color: #fff; }
#site-nav a.active { background: var(--color-gold); color: var(--color-dark); font-weight: 600; }

.nav-toggle {
    display: none; background: none; border: none; padding: 6px;
    cursor: pointer; color: #fff; font-size: 1.4rem; line-height: 1; margin-left: auto;
}

/* ── Main ── */
#site-main {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 48px 24px 88px;
    min-height: calc(100vh - var(--nav-h) - 68px);
}

/* ── Page content typography ── */
.page-content h1, .page-content h2, .page-content h3 {
    font-family: var(--font-serif);
    font-weight: 700;
    line-height: 1.25;
    margin-top: 2em;
    margin-bottom: .5em;
    color: var(--color-dark);
}
.page-content h1:first-child,
.page-content h2:first-child { margin-top: 0; }
.page-content h1 { font-size: 2.2rem; }
.page-content h2 { font-size: 1.6rem; }
.page-content h3 { font-size: 1.2rem; }
.page-content p { margin: 0 0 1em; }
.page-content a { color: var(--color-navy); font-weight: 500; }
.page-content a:hover { color: var(--color-gold); }
.page-content img { max-width: 100%; height: auto; border-radius: 10px; }
.page-content ul, .page-content ol { padding-left: 1.6em; margin-bottom: 1em; }
.page-content hr {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 2.5rem 0;
}
.page-content blockquote {
    border-left: 4px solid var(--color-gold);
    margin: 1.5em 0;
    padding: 12px 20px;
    background: #fffbef;
    border-radius: 0 8px 8px 0;
    font-family: var(--font-serif);
    font-size: 1.15rem;
    font-style: italic;
    color: var(--color-navy);
}
.page-content blockquote p { margin: 0; }
.page-content cite {
    display: block;
    margin-top: 8px;
    font-style: normal;
    font-size: .85rem;
    font-family: var(--font-sans);
    color: var(--color-muted);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* ── Hero quote ── */
.hero-quote { text-align: center; padding: 2rem 0 1rem; }
.hero-quote blockquote {
    text-align: center;
    font-size: 1.25rem;
    border-left: none;
    border-top: 3px solid var(--color-gold);
    border-bottom: 3px solid var(--color-gold);
    border-radius: 0;
    background: transparent;
    padding: 20px 0;
    margin: 0 auto;
    max-width: 640px;
}

/* ── Info box (contact page) ── */
.page-content > div[style*="background:#f8fafc"] {
    border-left: 4px solid var(--color-gold) !important;
}

/* ── Team grid ── */
.team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 20px;
    margin-top: 1.5rem;
}
.team-member { text-align: center; }
.team-member img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 50%;
    border: 3px solid var(--color-border);
    transition: border-color .15s;
}
.team-member img:hover { border-color: var(--color-gold); }
.team-member p { margin: 8px 0 0; font-size: .82rem; font-weight: 600; color: var(--color-navy); }

/* ── Footer ── */
#site-footer {
    background: var(--color-dark);
    color: rgba(255,255,255,.55);
    text-align: center;
    padding: 22px 24px;
    font-size: .82rem;
}
#site-footer a { color: var(--color-gold-lt); text-decoration: none; }
.footer-inner { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: nowrap; }
.footer-social { display: flex; gap: 10px; }
.footer-social a { display: flex; align-items: center; opacity: .65; transition: opacity .2s; }
.footer-social a:hover { opacity: 1; }
.contact-social { display: flex; flex-direction: column; gap: 10px; margin: 10px 0 16px; }
.contact-social a { display: inline-flex; align-items: center; gap: 8px; color: var(--color-gold); font-weight: 600; text-decoration: none; font-size: .95rem; transition: color .2s; }
.contact-social a:hover { color: var(--color-gold-lt); text-decoration: none; }
.contact-social svg { flex-shrink: 0; }
.social-fb { color: #1877f2 !important; }
.social-fb:hover { color: #0d6fd8 !important; }
.ig-label {
  background: linear-gradient(45deg, #fcaf45 0%, #fd1d1d 40%, #e1306c 65%, #833ab4 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Facebook embed ── */
.fb-embed-section { text-align: center; margin: 2.5rem 0 1rem; overflow: hidden; }
.fb-embed-title { font-family: var(--font-serif); font-size: 1.3rem; color: var(--color-dark); margin-bottom: 1.5rem; }
.fb-embed-section .fb-post { margin: 0 auto; }
.fb-embed-section iframe { max-width: 100% !important; }

/* ── 404 ── */
.not-found { text-align: center; padding: 80px 0; }
.not-found h1 { font-size: 6rem; font-weight: 900; color: #e5e7eb; margin: 0; line-height: 1; }
.not-found h2 { font-size: 1.5rem; margin: 12px 0 8px; font-family: var(--font-serif); }

/* ── Mobile ── */
@media (max-width: 660px) {
    .nav-toggle { display: block; }
    #site-nav {
        display: none;
        position: absolute;
        top: var(--nav-h);
        left: 0; right: 0;
        background: var(--color-dark);
        flex-direction: column;
        padding: 8px 16px 16px;
        gap: 2px;
        box-shadow: 0 8px 24px rgba(0,0,0,.3);
    }
    #site-nav.open { display: flex; }
    #site-nav a { padding: 11px 14px; font-size: .95rem; }
    .page-content h1 { font-size: 1.7rem; }
    .page-content h2 { font-size: 1.35rem; }
    .hero-quote blockquote { font-size: 1.05rem; }
    .team-grid { grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 14px; }
}
