/*
Theme Name: Blue Banana
Theme URI: https://bluebanana.hr/
Author: Blue Banana
Description: A lightweight, dependency-free recreation of the current Blue Banana website design.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: bluebanana
*/

:root {
	--bb-text: #0d1317;
	--bb-white: #ffffff;
	--bb-light: #f0eff4;
	--bb-dark: #0d1317;
	--bb-primary: #3d6fe5;
	--bb-content: 1140px;
	--bb-container: 1170px;
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--bb-white);
	color: var(--bb-text);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.7;
}

body.menu-open {
	overflow: hidden;
}

a {
	color: inherit;
}

img {
	max-width: 100%;
	height: auto;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus,
.skip-link:focus {
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
	margin: 0;
	padding: 12px 18px;
	top: 8px;
	left: 8px;
	background: var(--bb-white);
	color: var(--bb-text);
	z-index: 10000;
}

.container {
	width: 100%;
	max-width: var(--bb-container);
	margin: 0 auto;
	padding-right: 15px;
	padding-left: 15px;
}

/* Header */
.site-header {
	position: relative;
	z-index: 100;
	background: var(--bb-white);
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 144px;
}

.site-branding,
.custom-logo-link {
	display: block;
	line-height: 0;
}

.custom-logo,
.site-logo-fallback {
	display: block;
	width: 128px;
	height: auto;
}

.site-title-fallback {
	font-size: 28px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
}

.desktop-navigation ul,
.mobile-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.desktop-navigation > div > ul,
.desktop-navigation > ul {
	display: flex;
	align-items: center;
	gap: 28px;
}

.desktop-navigation li {
	margin: 0;
}

.desktop-navigation a {
	position: relative;
	display: flex;
	align-items: center;
	padding: 1px 0 0;
	color: var(--bb-text);
	font-size: 13.6px;
	font-weight: 600;
	line-height: 1.6;
	text-decoration: none;
	text-transform: uppercase;
}

.desktop-navigation a::after {
	position: absolute;
	right: 0;
	bottom: -6px;
	left: 0;
	height: 2px;
	background: var(--bb-primary);
	content: "";
	opacity: 0;
	transform: scaleX(0.4);
	transition: opacity 160ms ease, transform 160ms ease;
}

.desktop-navigation a:hover::after,
.desktop-navigation a:focus-visible::after,
.desktop-navigation .current-menu-item > a::after,
.desktop-navigation .current_page_item > a::after {
	opacity: 1;
	transform: scaleX(1);
}

.menu-toggle {
	display: none;
	width: 44px;
	height: 44px;
	padding: 10px;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.menu-toggle-bar {
	display: block;
	width: 24px;
	height: 2px;
	margin: 5px 0;
	background: var(--bb-text);
	transition: transform 180ms ease, opacity 180ms ease;
}

.mobile-menu-panel,
.mobile-menu-overlay {
	display: none;
}

/* Main content */
.site-main {
	display: block;
	min-height: 1px;
}

.single-page-container {
	overflow: visible;
}

.page-header-title {
	margin: 60px 0 30px;
	font-size: 70px;
	font-weight: 600;
	line-height: 1.3;
}

.entry-content {
	width: 100%;
	max-width: var(--bb-content);
	margin: 0 auto;
}

.entry-content::after {
	display: table;
	clear: both;
	content: "";
}

.entry-content > :where(p, h1, h2, h3, h4, h5, h6, figure, ul, ol, blockquote) {
	margin-top: 0;
	margin-bottom: 30px;
}

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
	color: var(--bb-text);
	font-weight: 600;
	line-height: 1.3;
}

.entry-content h1 {
	font-size: 70px;
}

.entry-content h2 {
	font-size: 46px;
}

.entry-content h3 {
	font-size: 24px;
}

.entry-content h4 {
	font-size: 20px;
}

.entry-content p {
	line-height: 1.7;
}

.entry-content ul,
.entry-content ol {
	padding-left: 20px;
}

.entry-content li + li {
	margin-top: 8px;
}

.has-text-align-center {
	text-align: center;
}

.has-text-align-left {
	text-align: left;
}

.has-text-align-right {
	text-align: right;
}

.has-neve-text-color-color,
.has-nv-text-color-color {
	color: var(--bb-text) !important;
}

.has-nv-text-dark-bg-color,
.has-white-color {
	color: var(--bb-white) !important;
}

.has-nv-site-bg-background-color {
	background-color: var(--bb-white) !important;
}

.has-nv-light-bg-background-color {
	background-color: var(--bb-light) !important;
}

.has-nv-dark-bg-background-color {
	background-color: var(--bb-dark) !important;
}

/* Core blocks used by the site */
.alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-right: calc(50% - 50vw) !important;
	margin-left: calc(50% - 50vw) !important;
}

.alignwide {
	width: min(var(--bb-content), 100%);
	max-width: var(--bb-content);
}

.wp-block-cover {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 430px;
	overflow: hidden;
	padding: 0 7.5px;
	color: var(--bb-white);
}

.wp-block-cover__background,
.wp-block-cover__gradient-background,
.wp-block-cover__image-background {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.wp-block-cover__background,
.wp-block-cover__gradient-background {
	z-index: 1;
}

.wp-block-cover__image-background {
	z-index: 0;
	max-width: none;
	object-fit: cover;
}

.has-background-dim-10 {
	opacity: 0.1;
}

.has-background-dim-20 {
	opacity: 0.2;
}

.has-background-dim-30 {
	opacity: 0.3;
}

.has-background-dim-40 {
	opacity: 0.4;
}

.has-background-dim-50 {
	opacity: 0.5;
}

.has-background-dim-60 {
	opacity: 0.6;
}

.has-background-dim-70 {
	opacity: 0.7;
}

.has-background-dim-80 {
	opacity: 0.8;
}

.has-background-dim-90 {
	opacity: 0.9;
}

.has-background-dim-100 {
	opacity: 1;
}

.wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--bb-content);
	margin: 0 auto;
	padding: 0 8px;
}

.wp-block-group,
.wp-block-group__inner-container {
	width: 100%;
}

.wp-block-columns {
	display: flex;
	align-items: normal;
	gap: 34px;
	margin: 0 0 30px;
}

.wp-block-column {
	min-width: 0;
	word-break: break-word;
	overflow-wrap: break-word;
}

.wp-block-column[style*="flex-basis:50%"] {
	flex: 1 1 0;
}

.wp-block-column[style*="flex-basis:100%"] {
	flex: 1 1 100%;
}

.is-vertically-aligned-center {
	align-self: center;
}

.is-vertically-aligned-top {
	align-self: flex-start;
}

.is-vertically-aligned-bottom {
	align-self: flex-end;
}

.wp-block-spacer {
	clear: both;
}

.wp-block-image,
.wp-block-image figure {
	margin: 0;
}

.wp-block-image img {
	display: block;
	max-width: 100%;
	height: auto;
}

.wp-block-image .aligncenter,
.wp-block-button.aligncenter {
	margin-right: auto;
	margin-left: auto;
}

.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 9px;
}

.wp-block-buttons.is-content-justification-center {
	justify-content: center;
}

.wp-block-buttons.is-content-justification-left {
	justify-content: flex-start;
}

.wp-block-buttons.is-content-justification-right {
	justify-content: flex-end;
}

.wp-block-button {
	display: inline-block;
}

.wp-block-button__link,
.entry-content .wp-block-button__link {
	display: inline-block;
	padding: 12px 24px;
	border: 0;
	border-radius: 0;
	background: var(--bb-primary);
	color: var(--bb-white);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	text-decoration: none;
	transition: filter 160ms ease, transform 160ms ease;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus-visible {
	color: var(--bb-white);
	filter: brightness(0.92);
}

.wp-block-button__link:active {
	transform: translateY(1px);
}

.icon-style img {
	max-height: 65px;
	width: auto;
	margin-right: auto;
	margin-left: auto;
}

/* WPForms Lite */
.wpforms-container,
.wpforms-container-full {
	width: 100%;
	margin: 0;
}

.wpforms-form {
	width: 100%;
	margin: 0;
}

.wpforms-form .wpforms-field {
	padding: 10px 0;
}

.wpforms-form .wpforms-field-label {
	display: block;
	margin: 0 0 4px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
}

.wpforms-form .wpforms-required-label {
	color: #d63638;
}

.wpforms-form input[type="text"],
.wpforms-form input[type="email"],
.wpforms-form input[type="tel"],
.wpforms-form input[type="url"],
.wpforms-form input[type="number"],
.wpforms-form select,
.wpforms-form textarea {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	padding: 6px 10px;
	border: 1px solid #ccc;
	border-radius: 2px;
	background: var(--bb-white);
	color: #333;
	font: 400 16px/1.3 Arial, Helvetica, sans-serif;
}

.wpforms-form input[type="text"],
.wpforms-form input[type="email"],
.wpforms-form input[type="tel"],
.wpforms-form input[type="url"],
.wpforms-form input[type="number"],
.wpforms-form select {
	height: 38px;
}

.wpforms-form textarea {
	min-height: 220px;
	resize: vertical;
}

.wpforms-form .wpforms-submit-container {
	padding-top: 10px;
}

.wpforms-form button[type="submit"],
.wpforms-form .wpforms-submit {
	display: inline-block;
	min-height: 51px;
	padding: 10px 15px;
	border: 1px solid #ddd;
	border-radius: 0;
	background: #eee;
	color: #333;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.7;
	cursor: pointer;
}

.has-nv-dark-bg-background-color ~ .wp-block-cover__inner-container .wpforms-field-label,
.has-nv-dark-bg-background-color ~ .wp-block-cover__inner-container .wpforms-form {
	color: var(--bb-white);
}

/* Posts and utility pages */
.post-list {
	padding: 60px 0;
}

.post-card {
	margin-bottom: 48px;
}

.post-card-title {
	margin: 0 0 12px;
	font-size: 40px;
	line-height: 1.25;
}

.post-card-title a {
	text-decoration: none;
}

.pagination {
	margin: 40px 0 60px;
}

.not-found {
	padding: 80px 0 120px;
}

/* Footer */
.site-footer {
	position: relative;
	background: var(--bb-dark);
	color: var(--bb-white);
}

.footer-inner {
	display: flex;
	align-items: center;
	min-height: 53px;
}

.footer-inner p {
	margin: 0;
	font-size: 17px;
	line-height: 1.7;
}

.footer-inner a {
	color: var(--bb-white);
	text-decoration: none;
}

@media (max-width: 959px) {
	.header-inner {
		min-height: 112px;
	}

	.custom-logo,
	.site-logo-fallback {
		width: 96px;
	}

	.desktop-navigation {
		display: none;
	}

	.menu-toggle {
		display: block;
	}

	.mobile-menu-overlay {
		position: fixed;
		inset: 0;
		display: block;
		background: rgba(13, 19, 23, 0.46);
		opacity: 0;
	pointer-events: none;
		transition: opacity 180ms ease;
		z-index: 998;
	}

	.mobile-menu-panel {
		position: fixed;
		inset: 0 auto 0 0;
		display: block;
		width: min(360px, 88vw);
		padding: 112px 30px 40px;
		background: var(--bb-white);
		box-shadow: 8px 0 24px rgba(13, 19, 23, 0.14);
		transform: translateX(-105%);
		transition: transform 200ms ease;
		z-index: 999;
	}

	.mobile-navigation a {
		display: block;
		padding: 13px 0;
		border-bottom: 1px solid #e4e4e7;
		font-size: 16px;
		font-weight: 600;
		text-decoration: none;
		text-transform: uppercase;
	}

	body.menu-open .mobile-menu-overlay {
		opacity: 1;
		pointer-events: auto;
	}

	body.menu-open .mobile-menu-panel {
		transform: translateX(0);
	}

	body.menu-open .menu-toggle {
		position: relative;
		z-index: 1000;
	}

	body.menu-open .menu-toggle-bar:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	body.menu-open .menu-toggle-bar:nth-child(2) {
		opacity: 0;
	}

	body.menu-open .menu-toggle-bar:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}
}

@media (max-width: 781px) {
	.container {
		padding-right: 30px;
		padding-left: 30px;
	}

	.page-header-title {
		margin-top: 40px;
		font-size: 46px;
	}

	.entry-content h1 {
		font-size: 46px;
	}

	.entry-content h2 {
		font-size: 34px;
	}

	.entry-content h3 {
		font-size: 23px;
	}

	.wp-block-cover {
		padding-right: 0;
		padding-left: 0;
	}

	.wp-block-cover__inner-container {
		padding-right: 30px;
		padding-left: 30px;
	}

	.wp-block-columns:not(.is-not-stacked-on-mobile) {
		flex-wrap: wrap;
	}

	.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
		flex-basis: 100% !important;
		width: 100%;
	}

	.wp-block-columns {
		gap: 30px;
	}

	.wp-block-buttons {
		align-items: stretch;
	}

	.wp-block-button {
		max-width: 100%;
	}

	.footer-inner {
		min-height: 60px;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
