/*!
Theme Name: Team Bratislava
Author: Whosred.sk
Author URI: https://whosred.sk/
Description: Team Bratislava
Version: 2.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/


* {
	box-sizing: border-box;
}

body {
	margin: 0;
	color: var(--text);
	font-family: Fractkit, sans-serif;
	font-weight: 700;
}

a {
	color: inherit;
}



.page-container {
	max-width: var(--container);
}

.narrow {
	max-width: 900px;
}

.narrow-sm {
	max-width: 650px;
}

.section-cream {
	background: var(--cream);
}

.section-light {
	background: #f8f5ea;
}

.section-pink {
	background: var(--pink);
}

.green {
	background: var(--green);
}

.burgundy {
	background: var(--burgundy);
	color: #fff;
}

.light {
	background: #fff;
}

/* HEADER */

.headerWrapper {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: var(--red);
}

.headerWrapper header {
	background: #e95658;
}

.headerInner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 24px;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	position: relative;
}

.logo {
	position: absolute;
	left: 24px;
	top: 8px;
	width: 78px;
	height: auto;
	z-index: 99999;
}

.logo svg,
.logo img {
	width: 100%;
	height: auto;
	display: block;
}

.navigationCluster {
	display: flex;
	padding: 18px 0;
	align-items: center;
	gap: 26px;
	margin-left: auto;
}

.desktopNavigation .mainMenu {
	display: flex;
	align-items: center;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

.desktopNavigation .mainMenu li {
	display: flex;
	align-items: center;
}

.desktopNavigation .mainMenu li:not(:last-child)::after {
	content: "|";
	color: #fff;
	font-size: 22px;
	font-weight: 500;
	opacity: 0.9;
	margin: 0 18px;
}

.desktopNavigation .mainMenu a {
	color: #fff;
	text-decoration: none;
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	white-space: nowrap;
}

.desktopNavigation .mainMenu a:hover {
	opacity: 0.8;
}

.headerButton {
	background: #fff;
	color: #e95658;
	border-radius: 4px;
	padding: 6px 13px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	white-space: nowrap;
}

.headerButton:hover {
	color: var(--red);
	background: #fff;
	opacity: 0.9;
}

/*

.headerButton .heart::before {
	content: "♥";
	color: var(--red);
	font-size: 23px;
	line-height: 1;
	-webkit-text-stroke: 1px #444;
}
*/

.headerButton .heart::before {
	content: "";
	display: block;
	width: 24px;
	height: 24px;
	background: url('/campba/wp-content/uploads/2026/05/heart.png') center center / contain no-repeat;
}

.mobileNavigation {
	display: none;
}

/* TYPO / LABELS */

.label-red,
.label-burgundy,
.label-green,
.label-pink {
	display: table;
	padding: 20px 28px;
	border-radius: 18px;
	text-align: center;
	line-height: 1.05;
	font-size: clamp(24px, 4vw, 42px);
}

.label {
	width: 100%;
}

.label-red {
	background: var(--red);
	color: #fff;
}

.label-burgundy {
	background: var(--burgundy);
	color: #fff;
}

.label-green {
	background: var(--green);
}

.label-pink {
	background: var(--pink);
}

/* HERO */

.hero {
	padding: 80px 0 55px;
	min-height: 60vh;
}

.hero-date {
	font-size: clamp(18px, 3vw, 34px);
	margin: 18px 0 0;
}

.hero-heart {
	width: 90%;
	aspect-ratio: 1 / 1;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background-image: url("/campba/wp-content/uploads/2026/05/heart-cv.svg");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	z-index: 99;
}

.hero-heart.ba-sign {
	background-image: url("/campba/wp-content/uploads/2026/05/ba-sign.svg") !important;
}

.hero-heart.small {
	max-width: 200px;
	transform: rotate(15deg);
	position: absolute;
	top: -100px;
	left: -100px;
}

/* CARDS */

.note-card,
.text-card,
.quote-card,
.event-card {
	border-radius: var(--radius);
	padding: 28px;
}


.quote-card {
	font-size: 18px;
	line-height: 1.4;
}

.photo-card {
	background: #fff;
	border-radius: 16px;
}

.photo-card img,
.wide-photo {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--radius);
	background: #ddd;
}


.wide-photo {
	margin-top: 28px;
}

/* INTRO */

.intro {
	padding-top: 40px;
}

.intro-cards .col-md-4 {
	display: flex;
}

.intro-cards .note-card {
	height: 100%;
	min-height: 300px;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* BUTTONS */

.btn-red {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	background: var(--red);
	color: #fff;
	text-decoration: none;
	border: 0;
	border-radius: 999px;
	padding: 11px 34px;
	font-size: 14px;
	transition: background .15s ease-in;
}

.btn-red:hover {
	background: var(--dark-red);
}

.btn-red.small {
	padding: 8px 22px;
	font-size: 13px;
}

.btn-red.fw {
	width: 100%;
}

/* STICKY SYSTEM */

.sticky-section,
.sticky-section .container,
.sticky-layout,
.sticky-layout > * {
	overflow: visible !important;
}

.sticky-section {
	position: relative;
}

.sticky-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	align-items: start;
}

.sticky-layout-5-7 {
	grid-template-columns: 5fr 7fr;
}

.sticky-col {
	position: sticky;
	top: var(--sticky-top);
	align-self: start;
	height: fit-content;
	z-index: 2;
}

.sticky-scroll-content {
	margin-top: 150px;
	margin-bottom: 240px;
}

/* QUOTE DECORATIONS */

.text-wrap {
	position: relative;
}

.quotte-img.top {
	position: absolute;
	top: -60px;
}

.quotte-img.bottom {
	position: absolute;
	bottom: -60px;
	right: 0;
}

.sign-vallo {
	margin-top: 60px;
}

/* PROGRAM */

.program {
	padding-top: 80px;
}

.program-accordion {
	background: var(--cream);
	border-radius: 18px;
	padding: 10px;
}

.faq-accordion.program-accordion .accordion-item {
	background: var(--cream);
	border: 0;
	border-bottom: 1px solid #101010;
	border-radius: 0;
}

.accordion-button {
	padding: 15px 0;
}

.faq-accordion .accordion-button {
	box-shadow: none;
}

.faq-accordion .accordion-button.cream {
	background: var(--cream);
}

.faq-accordion .accordion-body {
	font-weight: 400;
	padding-left: 0;
	padding-right: 0;
}

.program-day-label {
	background: #111;
	color: #fff;
	border-radius: 999px;
	padding: 5px 10px;
	font-size: 12px;
	flex-shrink: 0;
}

.day-name {
	margin-left: 20px;
}

.program-inner {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.prog-item:not(:last-child) {
	border-bottom: 1px solid #000;
}

.prog-item {
	padding: 5px 0;
}

.prog-inner {
	display: grid;
	grid-template-columns: 95px 1fr;
	gap: 6px 12px;
	align-items: start;
}

.prog-item time {
	display: inline-block;
	width: 95px;
	font-weight: 700;
	white-space: nowrap;
}

.prog-item span {
	font-weight: 500;
}

.prog-row {
	padding-left: 107px;
	font-weight: 500;
}

.dot::before {
	content: "";
	display: inline-block;
	width: 15px;
	height: 15px;
	background: #000;
	border-radius: 50%;
	margin-right: 5px;
	vertical-align: middle;
	margin-top: -4px;
}

.no-pad {
	padding: 0;
}

/* INFO STACK */

.info-stack {
	display: grid;
	gap: 16px;
}

.info-stack article {
	background: #fff;
	padding: 22px;
	border-radius: 18px;
}

.info-stack h3,
.event-card h3 {
	font-size: 24px;
	margin-bottom: 12px;
}

/* FAQ */

.faq-accordion .accordion-item {
	border: 0;
	border-bottom: 1px solid #101010;
	background: transparent;
}

.faq-accordion .accordion-button {
	font-weight: 600;
}

/* PUBLIC EVENTS */

.event-card {
	background: #fff;
}

/* GALLERY */

.masonry-gallery {
	columns: 2 240px;
	column-gap: 18px;
}

.masonry-gallery img {
	break-inside: avoid;
}

/* HELPERS */

.pos-rel {
	position: relative;
}

.mb-16 {
	margin-bottom: 16px;
}

.underline {
	position: relative;
	display: inline-block;
	--leftVal: clamp(8px, 0.83vw, 18px);
	margin-bottom: 30px;
}

.underline::after {
	content: "";
	position: absolute;
	left: -5px;
	bottom: -10px;
	height: 5px;
	right: clamp(8px, 0.83vw, 18px);
	width: 0;
	background: black;
	border-radius: 9px;
	transform: rotate(.1deg);
	animation: underlineGrow 1s cubic-bezier(0, 0.85, 0.32, 1.28) forwards;
}

@keyframes underlineGrow {

	from {
		width: 0;
	}
	to {
		width: calc(100% + clamp(16px, 1.66vw, 36px));
	}

}

.accordion-button {
	background: transparent !important;
	color: black !important;
}

.faq-accordion {
	padding: 30px 10px;
	border-radius: 30px;
}

.accordion-item {
	border-radius: 0 !important;
}

.video-card {
	position: relative;
	overflow: hidden;
	margin-bottom: 128px;
}

.video-card video {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--radius);
	object-fit: cover;
}

/* PLAY BUTTON */
.video-play {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 78px;
	height: 78px;
	border-radius: 50%;
	background: rgba(206, 240, 107,.65);
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: .2s;
}

.video-play:hover {
	transform: translate(-50%, -50%) scale(1.08);
	background: rgba(206, 240, 107,.8);
}

.video-play span {
	margin-left: 5px;
	width: 0;
	height: 0;
	border-top: 14px solid transparent;
	border-bottom: 14px solid transparent;
	border-left: 22px solid #fff;
}

.lg-backdrop.in {
	opacity: .85 !important;
}

.masonry-gallery a {
	display: block;
	text-decoration: none;
}

.gallery-image {
	display: block;
	overflow: hidden;
	border-radius: var(--radius);
	margin-bottom: 10px;
}

.gallery-image img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform .45s ease;
}

.masonry-gallery a:hover img {
	transform: scale(1.035);
}

.masonry-gallery a:first-child {
	margin-top: 20%;
}

.footer-socials svg {
	width: 20px;
}

.site-footer {
	background: var(--muted);
	padding: 170px 0 70px;
}

.site-footer .page-container {
	max-width: 1180px;
}

.footer-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding-bottom: 62px;
	border-bottom: 1px solid var(--red);
}

.footerMenu {
	display: flex;
	align-items: center;
	gap: 70px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.footerMenu a {
	color: #000;
	text-decoration: none;
	font-size: 20px;
	font-weight: 400;
}

.footer-socials {
	display: flex;
	align-items: center;
	gap: 24px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-socials a {
	color: #7d786f;
	text-decoration: none;
	font-size: 22px;
	font-weight: 700;
}

.footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding-top: 34px;
	color: #000;
	font-size: 20px;
	font-weight: 400;
}

.footer-bottom a {
	color: #000;
	text-decoration: none;
}



.site-footer .hero-heart {
	max-width: 270px;
	position: absolute;
	top: -150px;
}

.footer {
	position: relative;
	margin-top: 120px;
}

.scallop-box {
	position: relative;
	border-radius: 0 0 24px 24px;
	padding: 32px 32px 32px;
	margin-top: 20px !important;
}



/* SVG VLNKY HORE */
.scallop-box::before {
	content: "";
	position: absolute;
	top: -16px;
	left: 0;
	width: 100%;
	height: 22px;
	background-repeat: repeat;
	background-size: cover;
	pointer-events: none;
	z-index: 2;
}

.scallop-box.green-dots::before {
	background-image: url(/campba/wp-content/themes/teamba/assets/imgs/dots-green.svg);
	background-size: contain;
}

.scallop-box.burgundy-dots::before {
	background-image: url(/campba/wp-content/themes/teamba/assets/imgs/dots-burgundy.svg);
}

.scallop-box.white-dots::before {
	background-image: url(/campba/wp-content/themes/teamba/assets/imgs/dots-white.svg);
}

.scallop-box.pink-dots::before {
	background-image: url(/campba/wp-content/themes/teamba/assets/imgs/dots-pink.svg);
}

.accordion .accordion-collapse {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	transition:
			grid-template-rows 0.45s cubic-bezier(0.4, 0, 0.2, 1),
			opacity 0.35s ease;
}

.accordion .accordion-collapse.show {
	grid-template-rows: 1fr;
	opacity: 1;
}

.accordion .accordion-body {
	overflow: hidden;
	padding: 0;
}

/* =========================================
   FORMINATOR CUSTOM STYLE
========================================= */

.forminator-ui {
	padding: 30px !important;
	border-radius: 30px !important;
}

.forminator-ui input,
.forminator-ui textarea {
	border-radius: 10px !important;
	padding: 15px !important;
	background-color: white !important;
}

.forminator-ui label,
.forminator-ui .forminator-label {
	font-size: 18px !important;
	font-weight: 400 !important;
	line-height: 1.4em !important;
}

.forminator-checkbox-label {
	margin-top: 3px !important;
	line-height: 1.4em !important;
}

.forminator-checkbox-label p {
	margin-bottom: 0 !important;
}

.forminator-checkbox-box {
	background-color: white !important;
	border-radius: 4px !important;
}

.forminator-button.forminator-button-submit {
	width: 100% !important;
	display: inline-flex !important;
	justify-content: center !important;
	align-items: center !important;
	background: var(--red) !important;
	color: #fff !important;
	text-decoration: none !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 16px 96px !important;
	font-weight: 700 !important;
	font-size: 22px !important;
}

.forminator-ui input:checked + .forminator-checkbox-box::before {
	display: none !important;
}

.forminator-button.forminator-button-submit:hover {
	background: var(--dark-red) !important;
}

/* WRAPPER */
.forminator-ui.forminator-custom-form {
	background: var(--pink);
	padding: clamp(24px, 4vw, 48px);
	border-radius: 32px;
}

/* ROW SPACING */
.forminator-ui .forminator-field {
	margin-bottom: 32px;
}

/* LABEL */
.forminator-ui label {
	display: block;
	font-size: 18px;
	line-height: 1.3;
	font-weight: 700;
	color: var(--black);
	margin-bottom: 10px;
}

/* INPUT */
.forminator-ui input.forminator-input,
.forminator-ui textarea.forminator-textarea,
.forminator-ui select {
	width: 100%;
	background: #f1f1f1;
	border: 1px solid #111;
	border-radius: 14px;
	padding: 16px 18px;
	font-size: 18px;
	line-height: 1.3;
	color: #111;
	box-shadow: none;
	transition:
			border-color .2s ease,
			background .2s ease,
			transform .2s ease;
}

/* PLACEHOLDER */
.forminator-ui input::placeholder,
.forminator-ui textarea::placeholder {
	color: #8f8f8f;
	opacity: 1;
}

/* TEXTAREA */
.forminator-ui textarea.forminator-textarea {
	min-height: 220px;
	resize: vertical;
}

/* FOCUS */
.forminator-ui input:focus,
.forminator-ui textarea:focus,
.forminator-ui select:focus {
	outline: none;
	border-color: var(--pink);
	background: #fff;
}

/* CHECKBOX WRAP */
.forminator-ui .forminator-checkbox {
	margin-bottom: 18px;
}

/* CHECKBOX LABEL */
.forminator-ui .forminator-checkbox__label {
	font-size: 18px;
	line-height: 1.45;
	font-weight: 500;
	padding-left: 42px;
	position: relative;
	cursor: pointer;
}

/* CUSTOM CHECKBOX */
.forminator-ui .forminator-checkbox-box {
	width: 24px;
	height: 24px;
	border: 1px solid #111;
	border-radius: 4px;
	background: #fff;
	position: absolute;
	left: 0;
	top: 2px;
	transition: all .2s ease;
}

/* CHECKED */
.forminator-ui input:checked + .forminator-checkbox-box {
	background: var(--green);
	border-color: #111;
}

/* CHECK ICON */
.forminator-ui input:checked + .forminator-checkbox-box::after {
	content: "";
	position: absolute;
	left: 9px;
	top: -7px;
	width: 8px;
	height: 20px;
	border-right: 2px solid black;
	border-bottom: 2px solid black;
	transform: rotate(45deg);
}

/* SUBMIT WRAP */
.forminator-ui .forminator-button-submit {
	width: 100%;
	height: 72px;
	border: 0;
	border-radius: 999px;
	background: var(--pink);
	color: #fff;
	font-size: 28px;
	font-weight: 800;
	line-height: 1;
	transition:
			transform .2s ease,
			opacity .2s ease;
}

/* HOVER */
.forminator-ui .forminator-button-submit:hover {
	opacity: .92;
	transform: translateY(-1px);
}

/* ACTIVE */
.forminator-ui .forminator-button-submit:active {
	transform: scale(.98);
}

/* ERROR */
.forminator-ui .forminator-error-message {
	color: #d00000;
	font-size: 14px;
	font-weight: 600;
	margin-top: 8px;
}

/* CHARACTER COUNT */
.forminator-ui .forminator-description {
	font-size: 14px;
	text-align: right;
	margin-top: 8px;
	color: #111;
}

/* REMOVE DEFAULT SHADOWS */
.forminator-ui * {
	box-shadow: none !important;
}

/* MOBILE */


.mobileNavigation {
	display: none;
}

.mobileMenuPanel {
	display: none;
}

.ham {
	background: transparent;
	border: 0;
	padding: 0;
	cursor: pointer;
}

.nav-icon3 {
	width: 30px;
	height: 22px;
	position: relative;
	display: block;
}

.nav-icon3 span {
	display: block;
	position: absolute;
	height: 2px;
	width: 100%;
	background: #fff;
	border-radius: 3px;
	left: 0;
	transition: .25s ease-in-out;
}

.nav-icon3 span:nth-child(1) {
	top: 0;
}

.nav-icon3 span:nth-child(2),
.nav-icon3 span:nth-child(3) {
	top: 9px;
}

.nav-icon3 span:nth-child(4) {
	top: 18px;
}

body.mobile-menu-open .nav-icon3 span:nth-child(1),
body.mobile-menu-open .nav-icon3 span:nth-child(4) {
	top: 9px;
	width: 0;
	left: 50%;
}

body.mobile-menu-open .nav-icon3 span:nth-child(2) {
	transform: rotate(45deg);
}

body.mobile-menu-open .nav-icon3 span:nth-child(3) {
	transform: rotate(-45deg);
}

/*
.vertical-img .gallery-image {
	aspect-ratio: 3 / 4;
}

.vertical-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}*/

.video-play {
	left: 60px;
	top: unset;
	bottom: -20px;
}

.forminator-label {
	margin-bottom: 5px !important;
}

/* Forminator radio pills */
.forminator-ui #radio-1 .forminator-field {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.forminator-ui #radio-1 .forminator-label {
	width: 100%;
	margin-bottom: 10px;
}

.forminator-ui #radio-1 .forminator-radio {
	position: relative;
	margin: 0 !important;
	cursor: pointer;
}

.forminator-ui #radio-1 .forminator-radio input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.forminator-ui #radio-1 .forminator-radio-bullet {
	display: none !important;
}

.forminator-ui #radio-1 .forminator-radio-label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 50px;
	padding: 0 22px;
	border: 1px solid #000;
	border-radius: 999px;
	background: #fff;
	color: #000;
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
	transition: all 0.2s ease;
}

.forminator-ui #radio-1 .forminator-radio:hover .forminator-radio-label {
	background: var(--cream);
}

.forminator-ui #radio-1 .forminator-radio input:checked ~ .forminator-radio-label,
.forminator-ui #radio-1 .forminator-radio.forminator-is_checked .forminator-radio-label {
	background: var(--red);
	color: #fff;
	border-color: var(--red);
}

.forminator-ui #radio-1 .forminator-radio input:focus-visible ~ .forminator-radio-label {
	outline: 2px solid #000;
	outline-offset: 3px;
}

.form-reg {
	padding-bottom: 90px;
}


/***/
.camp-thankyou-overlay-custom {
	position: fixed;
	inset: 0;
	z-index: 99999;
	background: rgba(0, 0, 0, 0.45);

	display: flex;
	align-items: center;
	justify-content: center;

	padding: 24px;

	opacity: 0;
	visibility: hidden;
	pointer-events: none;

	transition: 0.3s ease;
}

.camp-thankyou-overlay-custom.active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.camp-thankyou-popup {
	position: relative;
	width: min(880px, 100%);
	max-height: calc(100vh - 48px);
	overflow-y: auto;

	background: var(--cream);
	border-radius: 36px;
	padding: clamp(32px, 5vw, 56px);

	transform: translateY(20px);
	transition: 0.3s ease;
}

.camp-thankyou-overlay-custom.active .camp-thankyou-popup {
	transform: translateY(0);
}


.camp-thankyou-close {
	position: absolute;
	top: 32px;
	right: 32px;

	width: 64px;
	height: 64px;

	border: 0;
	background: transparent;

	font-size: 72px;
	line-height: 0.7;
	cursor: pointer;

}

.camp-thankyou-close img {
	transition: opacity .15s ease-in;
}

.camp-thankyou-close:hover img {
	opacity: .5 !important;
}

body.camp-popup-open {
	overflow: hidden;
}

.show .accordion-body {
	margin-bottom: 10px;
}

.program-day {
	background: var(--burgundy);
	color: white;
	padding: 5px 8px 4px 8px;
	border-radius: 40px;
	font-size: 13px;
	line-height: 1;
}
