/*
Theme Name: Blocksy Child
Template: blocksy
Version: 1.0
*/

:root {
	--theme-font-family: 'Source Sans 3', system-ui, sans-serif;
	--theme-font-size: 17px;
	--theme-line-height: 1.7;
	--hp-muted: #6e5347;
	--hp-serif: 'EB Garamond', Georgia, serif;
	--hp-sans: 'Source Sans 3', system-ui, sans-serif;
}

html :is(h1, h2, h3, h4, h5, h6),
.site-title {
	--theme-font-family: var(--hp-serif);
	--theme-font-weight: 400;
}

/* Top bar: one Text element, two groups; mobile shows short version */
.hp-topbar { display: flex; justify-content: space-between; gap: 26px; width: 100%; }
.hp-topbar span + span::before { content: "|"; opacity: .45; margin-right: 26px; }
.hp-topbar > div { display: flex; gap: 26px; }
.hp-topbar .hp-m { display: none; }
@media (max-width: 999px) {
	.hp-topbar > div { display: none; }
	.hp-topbar .hp-m { display: block; width: 100%; text-align: center; }
}

/* Logo: short name on mobile */
.site-description { text-transform: uppercase; letter-spacing: .14em; }
@media (max-width: 999px) {
	.site-title a { font-size: 0 !important; }
	.site-title a::after { content: "Parafia NP NMP"; font-size: 16px; }
	.site-description { font-size: 0 !important; }
	.site-description::after { content: "Malczyce"; font-size: 10.5px; }
}

/* =========================================================
   Pages are built in Elementor. Layout (direction, widths, gaps, padding,
   backgrounds, borders) lives in Elementor settings so it stays editable there.
   Here: typography and details, attached via CSS classes (Advanced → CSS Classes).
   ========================================================= */
:root { --hp-line: #e8dbd3; --hp-body: #4a3229; --hp-meta: #8f7466; }

/* Elementor resets headings to line-height 1; keep theme rhythm */
.elementor .elementor-heading-title { line-height: 1.2; color: var(--theme-palette-color-3); }
.elementor .elementor-heading-title a { color: inherit; }
.elementor .elementor-heading-title a:hover { color: var(--theme-palette-color-1); }
.elementor h2.elementor-heading-title { font-size: 28px; }
.elementor h3.elementor-heading-title { font-size: 22px; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor a { text-decoration: none; }

/* text helpers */
.hp-eyebrow { font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--theme-palette-color-1); }
.hp-muted { color: var(--hp-muted); font-size: 15px; line-height: 1.55; }
.hp-accent { color: var(--theme-palette-color-1); }
.hp-label { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--hp-meta); }
.hp-nums { font-variant-numeric: tabular-nums; }
.hp-todo { background: #fff; border-left: 3px solid var(--theme-palette-color-1); padding: 16px 20px; }
.hp-rule .elementor-heading-title { font-size: 24px !important; padding-bottom: 12px; border-bottom: 2px solid var(--theme-palette-color-1); }

/* buttons */
.elementor .hp-btn .elementor-button { background: var(--theme-palette-color-1); color: #fff; border: 1px solid transparent; border-radius: 2px; padding: 13px 24px; font-family: var(--hp-sans); font-size: 15.5px; font-weight: 400; }
.elementor .hp-btn .elementor-button:hover { background: var(--theme-palette-color-2); }
.elementor .hp-btn-light .elementor-button { background: transparent; border-color: rgba(255,255,255,.6); }
.elementor .hp-btn-light .elementor-button:hover { background: rgba(255,255,255,.1); }
.hp-mobile-only { display: none; }

/* hero */
.hp-hero .elementor-heading-title { font-size: 50px !important; line-height: 1.1; color: #fdf8f4; max-width: 680px; }
.hp-hero .hp-eyebrow { color: #efc0a8; letter-spacing: .18em; }
.hp-hero .hp-lead { font-size: 18px; line-height: 1.6; color: rgba(253,248,244,.9); max-width: 560px; }

/* cards */
.hp-card-dark, .hp-card-dark a { color: #f5e6dc; }
.hp-card-dark .elementor-heading-title { color: #fff; }
.hp-card-foot { border-top: 1px solid rgba(255,255,255,.15); padding-top: 10px; }
.hp-news .hp-card > .elementor-widget-heading .elementor-heading-title { font-size: 23px; padding-bottom: 12px; border-bottom: 1px solid var(--hp-line); }
.hp-section-head { border-bottom: 1px solid var(--hp-line); padding-bottom: 12px !important; }
.hp-section-head .elementor-widget-text-editor { font-size: 14.5px; }
.hp-center { text-align: center; }
.hp-center-title .elementor-heading-title { font-size: 32px !important; }
.hp-split .elementor-widget-text-editor { color: var(--hp-body); }
.hp-map iframe { border: 1px solid #dcc9bf !important; }
.hp-photo { width: 92px; height: 112px; flex: none; display: flex; align-items: center; justify-content: center; overflow: hidden; border: 1px solid #dcc9bf; background: repeating-linear-gradient(45deg, #f2e8e2 0 8px, #e9dad1 8px 16px); }
.hp-photo img { width: 100%; height: 100%; object-fit: cover; }
.hp-photo-label { font-family: ui-monospace, monospace; font-size: 10px; color: #8a7365; }
.hp-people { display: grid; gap: 18px; }
.hp-person { display: flex; gap: 18px; align-items: center; background: #fff; padding: 22px 24px; border: 1px solid var(--hp-line); }
.hp-person h3 { margin: 0 0 5px; }
.hp-person p { margin: 0 0 5px; }
.hp-person:has(.hp-bio) { align-items: flex-start; }
.hp-person:has(.hp-bio) .hp-photo { width: 170px; height: 200px; }
.hp-bio { margin-top: 14px; font-size: 16px; line-height: 1.65; }
.hp-bio p, .hp-bio ol { margin: 0 0 10px; }
.hp-photo-tall img { width: 100%; height: auto; border: 1px solid #dcc9bf; }
.hp-year { color: var(--theme-palette-color-1); font-family: var(--hp-serif); font-size: 19px; }
.elementor .e-con > .hp-year { flex: none; width: 104px; }

/* sacraments toggle */
/* sacraments: card with lead + "Więcej informacji" toggle */
.hp-sacrament { scroll-margin-top: 110px; }
.hp-sacrament h2 { font-size: 28px; margin: 0; }
.hp-toggle .elementor-tab-title { border: 0 !important; padding: 4px 0 !important; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; }
.hp-toggle .elementor-tab-title a, .hp-toggle .elementor-toggle-icon { color: var(--theme-palette-color-1) !important; }
.hp-toggle .elementor-toggle-icon svg { fill: currentColor; }
.hp-toggle .elementor-tab-content { border: 0 !important; padding: 14px 0 0 !important; border-top: 1px solid var(--hp-line) !important; margin-top: 10px; }
.hp-toggle .elementor-tab-content h4 { font-family: var(--hp-serif); font-size: 21px; font-weight: 400; margin: 20px 0 8px; }
.hp-toggle .elementor-tab-content h4:first-child { margin-top: 0; }
.hp-toggle .elementor-tab-content p, .hp-toggle .elementor-tab-content ol, .hp-toggle .elementor-tab-content ul { margin: 0 0 12px; }
.hp-toggle blockquote { margin: 0 0 12px; padding: 4px 0 4px 18px; border-left: 3px solid var(--theme-palette-color-1); color: var(--hp-muted); font-style: italic; }
.hp-toggle blockquote p { margin: 0; }

/* schedule tables (shortcode [parafia_tabela]) */
.hp-schedule { margin: 0 0 26px; }
.hp-schedule table { border: 0; margin: 0; }
.hp-schedule td { border: 0; border-bottom: 1px solid var(--hp-line); padding: 14px 0; font-size: 16.5px; background: none !important; }
.hp-schedule td:last-child { text-align: right; color: var(--theme-palette-color-1); font-variant-numeric: tabular-nums; }
.elementor-widget-shortcode .hp-card { background: #fff; border: 1px solid var(--hp-line); padding: 20px 24px; }
.elementor-widget-shortcode .hp-card h3 { font-size: 22px; margin: 0 0 10px; }
.elementor-widget-shortcode .hp-card p { margin: 0; }

/* ---------- dynamic lists (shortcode [parafia_lista], core Query Loop inside) ---------- */
.wp-block-query ul.wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.wp-block-post-template li > * { margin-block: 0; }
.hp-tile-query { font-size: 15px; line-height: 1.55; color: var(--hp-muted); }
.hp-tile-query h4 { font-family: var(--hp-sans); font-size: 15px; font-weight: 400; color: var(--hp-muted); margin: 0; }

.hp-featured { background: #fff; border: 1px solid var(--hp-line); border-left: 3px solid var(--theme-palette-color-1); padding: 24px 26px; }
.hp-featured .wp-block-post-date { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--hp-meta); }
.hp-featured .wp-block-post-date::after { content: " · najnowsze"; }
.hp-featured h3 { font-size: 26px; line-height: 1.25; margin: 10px 0 !important; }
.hp-featured h3 a, .hp-list h3 a { color: inherit; }
.hp-featured .wp-block-post-excerpt__excerpt { font-size: 16px; line-height: 1.65; color: var(--hp-body); margin: 0; }
.hp-featured .wp-block-post-excerpt__more-text { margin: 10px 0 0; font-size: 15px; }
.hp-list li { display: flex; gap: 18px; padding: 16px 0; border-bottom: 1px solid var(--hp-line); }
.hp-list .wp-block-post-date { min-width: 84px; font-size: 14px; color: var(--hp-meta); padding-top: 3px; }
.hp-list h3 { font-size: 20px; line-height: 1.3; margin: 0; }

/* weekly intentions (content generated by harness-parafia) */
.hp-day { background: #fff; border: 1px solid var(--hp-line); padding: 20px 24px; display: grid; grid-template-columns: 220px 1fr; grid-template-rows: auto 1fr; column-gap: 28px; margin-bottom: 16px; }
.hp-day h3 { font-size: 21px; margin: 0; }
.hp-day .hp-muted { grid-column: 1; align-self: start; font-size: 14px; margin: 0; }
.hp-day ul { grid-column: 2; grid-row: 1 / span 2; margin: 0; padding: 0; list-style: none; }
.hp-day li { display: flex; gap: 12px; font-size: 16px; line-height: 1.5; color: var(--hp-body); margin-bottom: 9px; }
.hp-day strong { flex: none; min-width: 48px; font-weight: 400; color: var(--theme-palette-color-1); font-variant-numeric: tabular-nums; }
.hp-intentions h2 { font-size: 28px; margin: 0 0 20px !important; }

.hp-intentions-compact h4 { font-family: var(--hp-sans); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--hp-meta); font-weight: 400; margin: 0 0 10px !important; }
.hp-intentions-compact .hp-day { border: 0; padding: 0; background: none; grid-template-columns: 112px 1fr; column-gap: 8px; margin-bottom: 8px; }
.hp-intentions-compact .hp-day h3 { font-family: var(--hp-sans); font-size: 15.5px; color: var(--theme-palette-color-1); }
.hp-intentions-compact .hp-day .hp-muted { display: none; }
.hp-intentions-compact .hp-day li { font-size: 15.5px; margin-bottom: 4px; gap: 8px; }

/* ---------- mobile ---------- */
@media (max-width: 767px) {
	.hp-hero .elementor-heading-title { font-size: 26px !important; }
	.hp-hero .hp-eyebrow, .hp-hero .hp-lead { display: none; }
	.hp-mobile-only { display: block; }
	.hp-buttons .elementor-button { width: 100%; }
	.hp-section-head { flex-direction: column !important; }
	.hp-split-col { border: 0 !important; }
	.hp-day, .hp-intentions-compact .hp-day { grid-template-columns: 1fr; grid-template-rows: none; }
	.hp-day ul { grid-column: 1; grid-row: auto; margin-top: 8px; }
	.hp-intentions-compact .hp-day ul { margin-top: 2px; }
	.hp-person:has(.hp-bio) { flex-direction: column; }
}

.elementor-widget-shortcode + .hp-rule { margin-top: 26px; }
.hp-schedule { margin-bottom: 0; }

/* post titles: bold everywhere (archive cards, single post, home lists) */
.entry-card .entry-title, .single-post .page-title, .hp-featured h3, .hp-list h3 { font-weight: 600; }

/* archive: whole card is a link (stretched title link) */
.entry-card { position: relative; transition: box-shadow .2s; }
.entry-card .entry-title a::after { content: ""; position: absolute; inset: 0; }
@media (hover: hover) {
	.entry-card:hover { box-shadow: 0 10px 28px rgba(33,16,8,.12); }
	.entry-card:hover .entry-title a { color: var(--theme-palette-color-1); }
}
.entry-card .entry-meta a { position: relative; z-index: 1; }

/* mobile offcanvas menu (dark panel): serif items, light toggles, light CTA */
#offcanvas .mobile-menu > ul > li > .ct-sub-menu-parent > a,
#offcanvas .mobile-menu > ul > li > a { font-family: var(--hp-serif); }
#offcanvas .ct-toggle-dropdown-mobile { color: #C9AFA2; }
#offcanvas .ct-header-cta { width: 100%; margin-top: 28px; }
#offcanvas .ct-header-cta a { width: 100%; justify-content: center; min-height: 48px; font-size: 16px; background: #F3E3D9; border-color: #F3E3D9; color: var(--theme-palette-color-4); }
#offcanvas .ct-header-cta a:hover { background: #fff; border-color: #fff; color: var(--theme-palette-color-1); }
.hp-week-nav { --theme-link-initial-color: var(--theme-text-color); }
/* Long text pages (Polityka prywatności) */
.hp-prose h2 { font-size: 26px; margin: 36px 0 10px; }
.hp-prose h2:first-child { margin-top: 0; }
.hp-prose h3 { font-size: 20px; margin: 22px 0 6px; }
/* PDF viewer (Ochrona małoletnich) */
.hp-pdf { display: block; width: 100%; height: 85vh; min-height: 560px; border: 1px solid var(--theme-palette-color-5); background: #fff; }
.hp-pdf p { padding: 20px; }
@media (max-width: 689.98px) { .elementor-widget-html:has(.hp-pdf) { display: none; } }
