/*
Theme Name: JUBELA Astra child
Template: astra
Description: Improved look for the JUBELA course sites — "Clean and credible" direction, "Mondrian" layout (see the site's DESIGN.md). Colours come from Astra's global palette; grids and cells are block styles (is-style-jk-*).
Version: 2.0.0
Text Domain: jubela-astra-child
*/

/* ---------- tokens: every colour is an Astra global palette slot ---------- */
:root {
	--jk-navy: var(--ast-global-color-0);
	--jk-accent: var(--ast-global-color-1);
	--jk-navy-dark: var(--ast-global-color-2);
	--jk-text: var(--ast-global-color-3);
	--jk-surface: var(--ast-global-color-4);
	--jk-white: var(--ast-global-color-5);
	--jk-border: var(--ast-global-color-6);
	--jk-rule: var(--ast-global-color-7);
	--jk-muted: var(--ast-global-color-8);
	--jk-radius: 6px;
	--jk-gap: 12px;
	--jk-pad: clamp(24px, 3.6vw, 52px);
}
@media (max-width: 781px) { :root { --jk-gap: 8px; } }

body { background: var(--jk-white); }
.entry-content h1, .entry-content h2, .entry-content h3 { color: var(--jk-navy); letter-spacing: -0.01em; margin: 0 0 0.45em; }
.entry-content h1 { line-height: 1.12; }
.entry-content p { margin: 0 0 1em; }
.entry-content p:last-child, .entry-content ul:last-child { margin-bottom: 0; }

/* ---------- header: one slim white bar that stays on top ---------- */
#masthead { position: sticky; top: 0; z-index: 50; }
.admin-bar #masthead { top: 32px; }
#masthead .main-header-bar { margin-bottom: 0 !important; border-bottom: 1px solid var(--jk-border); }
/* header content lines up with the full-bleed grid below it */
#masthead .site-primary-header-wrap.ast-container, #masthead .ast-mobile-header-wrap .ast-container { max-width: none; padding-left: calc(var(--jk-gap) + 28px); padding-right: calc(var(--jk-gap) + 16px); }
.site-title a { font-weight: 700; white-space: nowrap; }
.main-header-menu .menu-link { color: var(--jk-navy); font-weight: 600; }
.main-header-menu .menu-item:hover > .menu-link,
.main-header-menu .current-menu-item > .menu-link { color: var(--jk-accent); }
.main-header-menu .current-menu-item > .menu-link { box-shadow: inset 0 -3px 0 var(--jk-accent); }
@media (min-width: 922px) {
	.ast-builder-menu-1 .main-header-menu { flex-wrap: nowrap; }
	.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link { padding-left: 0.7em; padding-right: 0.7em; white-space: nowrap; }
}
@media (min-width: 922px) and (max-width: 1200px) {
	.site-title { font-size: 18px; }
	.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link { font-size: 15px; padding-left: 0.5em; padding-right: 0.5em; }
}

/* ---------- page frame ---------- */
.site-content > .ast-container { padding-left: 0; padding-right: 0; max-width: none; }
.ast-plain-container.ast-no-sidebar #primary,
.ast-page-builder-template .site-content #primary { margin: 0; }

/* ---------- Mondrian grid: cells separated by navy rules ---------- */
.entry-content .wp-block-group.is-style-jk-mondrian {
	display: grid;
	gap: var(--jk-gap);
	background: var(--jk-rule);
	padding: 0 var(--jk-gap) var(--jk-gap) !important;
	margin: 0 !important;
	max-width: none;
}
.entry-content > .wp-block-group.is-style-jk-mondrian:first-child { padding-top: var(--jk-gap) !important; }

.entry-content .wp-block-group[class*="is-style-jk-cell-"] {
	margin: 0 !important;
	padding: var(--jk-pad) !important;
	min-width: 0;
	position: relative;
}
.is-style-jk-cell-white { background: var(--jk-white); }
.is-style-jk-cell-grey { background: var(--jk-surface); }
.is-style-jk-cell-navy { background: var(--jk-navy); color: var(--jk-white); }
.is-style-jk-cell-navy :is(h1, h2, h3, p, li, strong, .jk-termin, .jk-cena, .jk-delka) { color: var(--jk-white) !important; }
.is-style-jk-cell-navy .jk-label, .is-style-jk-cell-navy .jk-muted { color: color-mix(in srgb, var(--jk-white) 72%, var(--jk-navy)) !important; }
.is-style-jk-cell-navy a:not(.wp-block-button__link) { color: var(--jk-white) !important; text-decoration: underline; text-underline-offset: 3px; }

/* image cells: the photo fills the cell */
.entry-content .wp-block-group.is-style-jk-cell-image { padding: 0 !important; overflow: hidden; min-height: 260px; background: var(--jk-surface); }
.is-style-jk-cell-image > .wp-block-image, .is-style-jk-cell-image > .jk-mapa { position: absolute; inset: 0; margin: 0; }
.is-style-jk-cell-image img, .is-style-jk-cell-image iframe { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.is-style-jk-cell-image img { filter: saturate(0.95); }

/* layouts (desktop) */
.jk-m-hero { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-areas: "t t i i" "t t d j" "c w w g"; grid-template-rows: minmax(300px, auto) minmax(240px, auto) auto; }
.jk-m-cards-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.jk-m-cards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.jk-m-cards-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jk-m-split { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-areas: "a a x x"; min-height: 420px; }
.jk-m-proc { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-areas: "p p q1 q2" "p p q3 q4"; }
.jk-m-form { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-areas: "f k k"; }
.jk-m-head { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-areas: "t t t i"; }
.jk-m-detail { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-areas: "t d" "t c" "t l" "t b"; }
.jk-m-detail .jk-a-b .wp-block-buttons { flex-direction: column; align-items: stretch; }
.jk-m-detail .jk-a-b .wp-block-button__link { width: 100%; text-align: center; }
.jk-m-detail .jk-a-b .jk-small { margin-top: 14px; }
.jk-m-two { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "o r"; }
.jk-m-note { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-areas: "x x x n"; }
.jk-m-strip { grid-template-columns: 1fr; }
.jk-a-t { grid-area: t; } .jk-a-i { grid-area: i; } .jk-a-d { grid-area: d; } .jk-a-j { grid-area: j; }
.jk-a-c { grid-area: c; } .jk-a-w { grid-area: w; } .jk-a-g { grid-area: g; } .jk-a-a { grid-area: a; }
.jk-a-x { grid-area: x; } .jk-a-p { grid-area: p; } .jk-a-f { grid-area: f; } .jk-a-k { grid-area: k; }
.jk-a-l { grid-area: l; } .jk-a-b { grid-area: b; } .jk-a-o { grid-area: o; } .jk-a-r { grid-area: r; } .jk-a-n { grid-area: n; }
.jk-a-q1 { grid-area: q1; } .jk-a-q2 { grid-area: q2; } .jk-a-q3 { grid-area: q3; } .jk-a-q4 { grid-area: q4; }
.jk-span-2 { grid-column: span 2; } .jk-span-3 { grid-column: span 3; }
.jk-m-hero .jk-a-t, .jk-m-head .jk-a-t,
.jk-m-proc .jk-a-p, .jk-m-split .jk-a-x, .jk-m-form .jk-a-f, .jk-m-note .jk-a-n { display: flex; flex-direction: column; justify-content: center; }
.jk-m-hero .jk-a-t > * { max-width: 40rem; }
.jk-m-detail .jk-a-t > *, .jk-m-head .jk-a-t > * { max-width: 46rem; }
.jk-m-head .jk-a-i { min-height: 300px; }
.entry-content .wp-block-group.jk-map { min-height: 440px; }

/* tablet */
@media (max-width: 921px) {
	.jk-m-hero { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "t t" "i d" "j c" "w g"; grid-template-rows: none; }
	.jk-m-cards-4, .jk-m-cards-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jk-m-proc { grid-template-areas: "p p p p" "q1 q1 q2 q2" "q3 q3 q4 q4"; }
	.jk-m-detail { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "t t" "d c" "l b"; }
	.jk-m-note { grid-template-areas: "x x x x" "n n n n"; }
	.jk-m-head { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-areas: "t t i"; }
	.jk-m-form { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "f k"; }
	.jk-m-cards-3 .jk-span-2, .jk-m-cards-3 .jk-span-3 { grid-column: 1 / -1; }
}
/* mobile: cells stack in source order, the rules stay as bands */
@media (max-width: 781px) {
	.entry-content .wp-block-group.is-style-jk-mondrian { grid-template-columns: minmax(0, 1fr) !important; grid-template-areas: none !important; grid-template-rows: none !important; min-height: 0; }
	.is-style-jk-mondrian > * { grid-area: auto !important; grid-column: auto !important; }
	.entry-content .wp-block-group.is-style-jk-cell-image { min-height: 220px; }
	.jk-m-hero .jk-a-j, .jk-m-hero .jk-a-g { display: none; }
	.entry-content .wp-block-group.jk-map { min-height: 320px; }
}

/* ---------- type helpers ---------- */
.jk-lead { font-size: 1.2em; line-height: 1.5; color: var(--jk-text); }
.jk-muted { color: var(--jk-muted); }
.jk-small { font-size: 0.92em; }
.entry-content p.jk-label, .jk-label { margin: 1.1em 0 0.3em; font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--jk-muted); line-height: 1.4; }
.entry-content [class*="is-style-jk-cell-"] > p.jk-label:first-child, .entry-content .jk-facts > p.jk-label:first-child { margin-top: 0; }
.jk-item { font-size: 1.1em; }
.jk-big .jk-termin, .jk-big .jk-cena, .jk-big .jk-delka, .jk-big .jk-item {
	font-size: clamp(20px, 1.9vw, 27px); font-weight: 600; line-height: 1.25; color: var(--jk-navy); font-variant-numeric: tabular-nums;
}
.jk-termin, .jk-cena, .jk-delka { font-variant-numeric: tabular-nums; }
mark.jk-badge { background: var(--jk-navy); color: var(--jk-white); padding: 2px 8px; border-radius: 4px; font-size: 0.74em; font-weight: 600; letter-spacing: 0.06em; }
.entry-content p a:not(.wp-block-button__link), .entry-content li a { color: var(--jk-accent); text-decoration: underline; text-underline-offset: 2px; }
.entry-content ul.wp-block-list { margin: 0 0 1em; padding-left: 1.2em; }
.entry-content ul.wp-block-list li { margin-bottom: 0.45em; }
.entry-content ul.wp-block-list li::marker { color: var(--jk-accent); }

/* ---------- cards ---------- */
.entry-content .wp-block-group.jk-card { padding: 0 0 28px !important; display: flex; flex-direction: column; transition: transform 0.18s ease-out, box-shadow 0.18s ease-out; }
.jk-card > * { margin-left: 28px !important; margin-right: 28px !important; }
.jk-card > .jk-card-img { margin: 0 0 22px !important; }
.jk-card > .jk-card-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; border-radius: 0; filter: saturate(0.95); }
.jk-card h3 { font-size: 21px; }
.jk-card h3 a { color: var(--jk-navy); text-decoration: none; }
.jk-card h3 a:hover { color: var(--jk-accent); }
.jk-card > .wp-block-buttons:last-child { margin-top: auto !important; padding-top: 18px; }
.jk-card .wp-block-button, .jk-card .wp-block-button__link { width: 100%; text-align: center; }
.jk-card .wp-block-button__link { white-space: nowrap; padding-left: 12px !important; padding-right: 12px !important; }
.jk-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgb(16 24 40 / 0.18); z-index: 1; }
.jk-facts { border-top: 1px solid var(--jk-border); padding-top: 16px; margin-top: 4px; }
.jk-facts .jk-termin, .jk-facts .jk-cena { margin-bottom: 2px; color: var(--jk-text); }

/* ---------- buttons ---------- */
.wp-block-button .wp-block-button__link { border-radius: var(--jk-radius); font-weight: 600; text-transform: none; padding: 13px 22px; }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--jk-navy); border: 1.5px solid var(--jk-navy); padding: 11.5px 20.5px; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--jk-navy); color: var(--jk-white); }
.is-style-jk-cell-navy .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--jk-white) !important; border-color: var(--jk-white) !important; background: transparent !important; }
.is-style-jk-cell-navy .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--jk-white) !important; color: var(--jk-navy) !important; }
.wp-block-buttons { gap: 10px; }

/* ---------- course shortcodes ---------- */
.jk-termin--dotaz a { color: var(--jk-accent); }
.jk-termin__cas, .jk-termin__misto { color: var(--jk-muted); font-weight: 400; }
.is-style-jk-cell-navy .jk-termin__cas, .is-style-jk-cell-navy .jk-termin__misto { color: inherit; opacity: 0.75; }

/* ---------- contact form (WPForms legacy markup) ---------- */
.wpforms-container { margin: 0 !important; }
.wpforms-container .wpforms-field input:not([type=checkbox]):not([type=radio]),
.wpforms-container .wpforms-field textarea {
	border: 1px solid var(--jk-border) !important; border-radius: var(--jk-radius) !important; background: var(--jk-white) !important; max-width: 100% !important;
}
.wpforms-container .wpforms-field input:focus, .wpforms-container .wpforms-field textarea:focus { border-color: var(--jk-accent) !important; }
.wpforms-container .wpforms-field-label { color: var(--jk-navy); font-weight: 600; }
.wpforms-container button[type=submit] {
	background: var(--jk-navy) !important; color: var(--jk-white) !important; border: 0 !important; border-radius: var(--jk-radius) !important;
	padding: 13px 28px !important; font-weight: 600; text-transform: none !important;
}
.wpforms-container button[type=submit]:hover { background: var(--jk-navy-dark) !important; }

/* ---------- footer ---------- */
.site-footer, .site-footer p, .site-footer .ast-footer-copyright { color: color-mix(in srgb, var(--jk-white) 82%, var(--jk-navy)); }
.site-footer strong { color: var(--jk-white); }
.site-primary-footer-wrap { padding-top: 56px; padding-bottom: 40px; }
.site-footer .ast-builder-grid-row-container-inner { padding-left: 24px; padding-right: 24px; }
.jk-partners { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; text-align: center; }
.jk-partner { display: flex; flex-direction: column; gap: 6px; text-decoration: none; }
.jk-partner__logo { background: var(--jk-white); border-radius: var(--jk-radius); padding: 10px; display: flex; align-items: center; justify-content: center; height: 80px; }
.jk-partner__logo img { max-height: 60px; width: auto; }
.jk-partner__name { color: var(--jk-white); font-weight: 600; font-size: 14px; line-height: 1.3; }
.jk-partner__desc { color: color-mix(in srgb, var(--jk-white) 70%, var(--jk-navy)); font-size: 13px; line-height: 1.3; }
@media (max-width: 921px) { .jk-partners { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (prefers-reduced-motion: reduce) {
	.jk-card { transition: none; }
	.jk-card:hover { transform: none; }
}
