/*
Theme Name: Twenty Twenty-Five Child (molitvenik)
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Description: Child tema za Twenty Twenty-Five za site "molitvenik". Sve prilagodbe stavljaj ovdje (ne u wp-admin/wp-includes).
Author: molitvenik
Template: twentytwentyfive
Version: 1.0.0
Text Domain: twentytwentyfive-child
*/

/* WM Scroll Lock
   - html + body: overflow hidden (page scroll off)
   - Scroll ostaje samo u .wp-site-blocks wrapperu
   - Ova datoteka se ucitava SAMO na frontendu (child tema),
     wp-admin i wp-login imaju vlastite stilove.
*/
html {
	height: 100% !important;
	overflow: hidden !important;
	margin-top: 0 !important;
	overscroll-behavior: none;
}

body:not(.wp-admin):not(.login) {
	height: 100% !important;
	margin: 0 !important;
	overflow: hidden !important;
	overscroll-behavior: none;
}

body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) {
	height: var(--wm-vvh, 100dvh);
	max-height: var(--wm-vvh, 100dvh);
	overflow-y: auto;
	overflow-x: hidden;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	box-sizing: border-box;
}

body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) * {
	box-sizing: border-box;
}

/* WM Responsive App Frame */

body:not(.wp-admin):not(.login) {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #0f1012;
}

body:not(.wp-admin):not(.login) .wp-site-blocks,
body:not(.wp-admin):not(.login) #page {
	width: min(430px, 100vw);
	height: var(--wm-vvh, 100dvh);
	max-height: var(--wm-vvh, 100dvh);
	overflow: auto;
	border-radius: 22px;
	box-shadow: 0 20px 70px rgba(0, 0, 0, 0.45);
	padding-top: env(safe-area-inset-top);
	padding-bottom: env(safe-area-inset-bottom);
	padding-left: env(safe-area-inset-left);
	padding-right: env(safe-area-inset-right);
}

@media (max-width: 767px) {
	body:not(.wp-admin):not(.login) {
		display: block;
		background: transparent;
		min-height: auto;
	}

	body:not(.wp-admin):not(.login) .wp-site-blocks,
	body:not(.wp-admin):not(.login) #page {
		width: 100vw;
		height: var(--wm-vvh, 100dvh);
		max-width: 100vw;
		max-height: var(--wm-vvh, 100dvh);
		border-radius: 0;
		box-shadow: none;
		overflow: auto;
	}
}


/* Logged-in desktop admin bar = 32px */
body.admin-bar:not(.wp-admin):not(.login) .wp-site-blocks,
body.admin-bar:not(.wp-admin):not(.login) #page {
	height: calc(var(--wm-vvh, 100dvh) - 32px) !important;
	max-height: calc(var(--wm-vvh, 100dvh) - 32px) !important;
}

/* Logged-in mobile admin bar = 46px (WP standard) */
@media (max-width: 782px) {
	body.admin-bar:not(.wp-admin):not(.login) .wp-site-blocks,
	body.admin-bar:not(.wp-admin):not(.login) #page {
		height: calc(var(--wm-vvh, 100dvh) - 46px) !important;
		max-height: calc(var(--wm-vvh, 100dvh) - 46px) !important;
	}
}

/* WM Fluid Scale Tokens
   - Baseline: iPhone 15 width 393px
   - Scope: samo frontend wrapper (.wp-site-blocks / #page)
   - Cilj: fluidna tipografija, razmaci i UI mjere bez transform: scale()
*/
body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) {
	--wm-base-w: 393px;
	--wm-scale: clamp(0.92, calc(100vw / var(--wm-base-w)), 1.12);
	--wm-radius: clamp(12px, calc(16px * var(--wm-scale)), 20px);
	--wm-gap: clamp(10px, calc(14px * var(--wm-scale)), 18px);
	--wm-pad: clamp(14px, calc(18px * var(--wm-scale)), 22px);
	--wm-btn-h: clamp(44px, calc(52px * var(--wm-scale)), 60px);
	--wm-input-h: clamp(44px, calc(52px * var(--wm-scale)), 60px);

	font-size: clamp(14px, calc(16px * var(--wm-scale)), 18px);
	container-type: inline-size;
	--wp--style--block-gap: var(--wm-gap);
}

/* Ako su container query units dostupni, koristi sirinu wrappera */
@supports (width: 1cqi) {
	body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) {
		--wm-scale: clamp(0.92, calc(100cqi / var(--wm-base-w)), 1.12);
	}
}

/* Sigurnosni pragovi na desktopu (phone frame) */
@container (max-width: 360px) {
	body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) {
		--wm-scale: 0.92;
	}
}

@container (min-width: 430px) {
	body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) {
		--wm-scale: 1.10;
	}
}

/* Glavne sekcije / kartice (s backgroundom ili card stilom) */
body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page)
	:where(.wp-block-group, .wp-block-cover, .wp-block-column, .wp-block-media-text).has-background,
body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) :where(.is-style-card) {
	padding: var(--wm-pad);
	border-radius: var(--wm-radius);
}

/* Gumbi */
body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page)
	:where(button, .button, .wp-element-button, .wp-block-button__link,
		input[type="button"], input[type="submit"], input[type="reset"]) {
	min-height: var(--wm-btn-h);
	padding-inline: var(--wm-pad);
	padding-block: calc(var(--wm-pad) * 0.55);
	font-size: 1rem;
	border-radius: var(--wm-radius);
}

/* Inputi */
body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page)
	:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
		select, textarea) {
	min-height: var(--wm-input-h);
	padding-inline: var(--wm-pad);
	padding-block: calc(var(--wm-pad) * 0.45);
	font-size: inherit;
	border-radius: var(--wm-radius);
}

/* Tipografija */
body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) h1 {
	font-size: clamp(26px, calc(32px * var(--wm-scale)), 40px);
	line-height: 1.15;
}

body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) h2 {
	font-size: clamp(22px, calc(26px * var(--wm-scale)), 32px);
	line-height: 1.2;
}

body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) h3 {
	font-size: clamp(20px, calc(22px * var(--wm-scale)), 28px);
	line-height: 1.25;
}

body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) :where(p, li) {
	font-size: clamp(14px, calc(16px * var(--wm-scale)), 18px);
	line-height: 1.6;
}

/* Sprijeci pucanje layouta */
body:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) :where(img, video) {
	max-width: 100%;
	height: auto;
}

/* WM app: ukloni template spacing koji gura overflow */
body.wm-has-app:not(.wp-admin):not(.login) main.wp-block-group {
	margin-top: 0 !important;
}

body.wm-has-app:not(.wp-admin):not(.login) main.wp-block-group > .wp-block-group.alignfull {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* =========================================================
   WM app: ukloni "+19px" overflow iz WP block templatea
   ========================================================= */

/* Skip-link target zna dodati visinu/margine u block temama */
body.wm-has-app:not(.wp-admin):not(.login) #wp-skip-link-target {
	display: none !important;
}

/* Block template wrapperi znaju imati global padding/margine */
body.wm-has-app:not(.wp-admin):not(.login) .entry-content.alignfull.wp-block-post-content,
body.wm-has-app:not(.wp-admin):not(.login) .wp-block-group.alignfull.has-global-padding {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* Ako zadnji element unutar entry-content ima margin-bottom, ubij ga */
body.wm-has-app:not(.wp-admin):not(.login) .entry-content.alignfull.wp-block-post-content > *:last-child {
	margin-bottom: 0 !important;
}

@media (min-width: 768px) {
	body.wm-has-app:not(.wp-admin):not(.login) {
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 28px;
		box-sizing: border-box;
		min-height: var(--wm-vvh, 100dvh);
		background: linear-gradient(135deg, #f7f4ee 0%, #eef1f8 55%, #f7f1e2 100%) !important;
	}

	body.wm-has-app:not(.wp-admin):not(.login) > .wp-site-blocks,
	body.wm-has-app:not(.wp-admin):not(.login) > #page {
		width: min(1200px, calc(100vw - 56px));
		max-width: 1200px;
		height: calc(var(--wm-vvh, 100dvh) - 56px);
		max-height: calc(var(--wm-vvh, 100dvh) - 56px);
		overflow: auto;
		background-color: transparent !important;
		background-image:
			linear-gradient(180deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0.18)),
			var(--wm-bg-url) !important;
		background-size: cover !important;
		background-position: center center !important;
		background-repeat: no-repeat !important;
		background-attachment: scroll !important;
		border: 1px solid rgba(140, 110, 60, 0.18);
		border-radius: 22px;
		box-shadow: 0 22px 70px rgba(0, 0, 0, 0.16);
		backdrop-filter: blur(6px);
		-webkit-overflow-scrolling: touch;
	}

	body.wm-has-app:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) > main,
	body.wm-has-app:not(.wp-admin):not(.login) :where(.wp-site-blocks, #page) > main.wp-block-group,
	body.wm-has-app:not(.wp-admin):not(.login) .entry-content.alignfull.wp-block-post-content,
	body.wm-has-app:not(.wp-admin):not(.login) .wp-block-group.alignfull.has-global-padding,
	body.wm-has-app:not(.wp-admin):not(.login) .wp-block-group__inner-container {
		background: transparent !important;
	}

	body.wm-has-app.admin-bar:not(.wp-admin):not(.login) > .wp-site-blocks,
	body.wm-has-app.admin-bar:not(.wp-admin):not(.login) > #page {
		height: calc(var(--wm-vvh, 100dvh) - 88px) !important;
		max-height: calc(var(--wm-vvh, 100dvh) - 88px) !important;
	}
}

@media (max-width: 767px) {
	body.wm-has-app:not(.wp-admin):not(.login) {
		display: block;
		padding: 0;
		background: transparent !important;
	}

	body.wm-has-app:not(.wp-admin):not(.login) > .wp-site-blocks,
	body.wm-has-app:not(.wp-admin):not(.login) > #page {
		width: 100vw;
		height: var(--wm-vvh, 100dvh);
		max-width: 100vw;
		max-height: var(--wm-vvh, 100dvh);
		border-radius: 0;
		border: 0;
		box-shadow: none;
		background: transparent;
		overflow: auto;
	}
}

