/* GP Callback – wygląd przeniesiony z modals/src/css/index.css (#contact_form), bez biblioteki intlTelInput. */

.gpcb-modal[hidden], .gpcb-fab[hidden], .gpcb-tooltip[hidden], .gpcb-loader[hidden], .gpcb-count[hidden] { display: none !important; }

/* ---------- pływający przycisk ---------- */
.gpcb-fab {
	position: fixed;
	left: 30px;
	bottom: 90px;
	z-index: 999998;
	transition: bottom .3s ease, opacity .3s ease;
}
.gpcb-fab.is-away { bottom: -90px; opacity: 0; }

.gpcb-fab__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	box-sizing: border-box;
	border: 1px solid #000;
	border-radius: 50%;
	background: #f7a400;
	box-shadow: 0 0 0 0 rgba(232, 76, 61, .7);
	animation: gpcb-pulsing 2.25s infinite cubic-bezier(.66, 0, 0, 1);
	cursor: pointer;
	text-decoration: none !important;
}
.gpcb-fab__btn:hover, .gpcb-fab__btn:focus { animation: none; background: #f7a400; border: 1px solid #000; }
.gpcb-fab__btn svg { animation: gpcb-pulse 2.25s infinite alternate; }

.gpcb-tooltip {
	position: absolute;
	left: -8px;
	bottom: 83px;
	width: 200px;
	box-sizing: border-box;
	padding: 12px 24px 12px 12px;
	background: #000;
	border: 1px solid #f7a400;
	color: #fff;
	font: 300 12px/1.4 "Open Sans", Arial, sans-serif;
	animation: gpcb-fade .5s ease;
}
.gpcb-tooltip__arrow {
	position: absolute;
	top: 100%;
	left: 40px;
	width: 30px;
	height: 15px;
	transform: translateX(-50%);
	overflow: hidden;
}
.gpcb-tooltip__arrow::after {
	content: "";
	position: absolute;
	left: 50%;
	width: 15px;
	height: 15px;
	background: #000;
	border: 1px solid #f7a400;
	transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.gpcb-tooltip__close {
	position: absolute;
	right: -10px;
	top: -10px;
	width: 20px;
	height: 20px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .7);
	color: #000;
	font-size: 14px;
	line-height: 20px;
	cursor: pointer;
}

/* ---------- okienko ---------- */
.gpcb-modal {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	overflow: auto;
	background: rgba(0, 0, 0, .7);
	color: #fff;
	font-family: "Open Sans", Arial, sans-serif;
	animation: gpcb-fade .3s ease;
}
.gpcb-modal.is-closing { animation: gpcb-fadeout .4s ease forwards; }
.gpcb-modal *, .gpcb-modal *::before, .gpcb-modal *::after { box-sizing: border-box; }

.gpcb-modal__content {
	position: relative;
	margin: auto 0;
	width: 800px;
	height: 500px;
	background: #111 url(../img/popup-background.webp) center / 100% no-repeat;
}

.gpcb-close {
	position: absolute;
	right: -15px;
	top: -15px;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 1px solid #fff;
	border-radius: 50%;
	background: transparent;
	color: #fff;
	font-size: 26px;
	font-weight: 200;
	line-height: 1;
	opacity: .7;
	cursor: pointer;
}
.gpcb-close:hover, .gpcb-close:focus { opacity: 1; }

.gpcb-section {
	float: right;
	max-width: 415px;
	margin: 30px 30px 0 0;
	text-align: center;
}
.gpcb-head { font-size: 36px; font-weight: 600; line-height: 1.3; color: #fff; }
.gpcb-lead { font-size: 36px; font-weight: 300; line-height: 1.3; color: #fff; }
.gpcb-undertitle { margin-top: 15px; font-size: 24px; font-weight: 700; line-height: 1.3; color: #fff; }
.gpcb-undertitle span { color: #f7a400; }

/* pole telefonu: zwykły <select> zamiast flag */
.gpcb-phone {
	display: flex;
	align-items: stretch;
	max-width: 364px;
	width: 100%;
	margin: 15px auto 0;
	padding: 15px 0;
	background: #fff;
}
.gpcb-phone select {
	flex: 0 0 auto;
	margin: 0 0 0 10px;
	padding: 0 22px 0 6px;
	height: 35px;
	border: 0;
	border-right: 1px solid #ddd;
	border-radius: 0;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0h8L4 5z' fill='%23555'/%3E%3C/svg%3E") right 6px center no-repeat;
	-webkit-appearance: none;
	appearance: none;
	color: #333;
	font: 500 16px "Open Sans", Arial, sans-serif;
	cursor: pointer;
}
.gpcb-phone input {
	flex: 1 1 auto;
	min-width: 0;
	height: 35px;
	margin: 0 !important;
	padding: 0 15px;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: #000;
	font: 500 24px "Open Sans", Arial, sans-serif;
}
.gpcb-phone input::placeholder { color: #000; opacity: .5; font-weight: 300; }
.gpcb-phone select:focus, .gpcb-phone input:focus { outline: 0; }
.gpcb-phone.is-invalid { box-shadow: 0 0 0 2px red; }

.gpcb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

.gpcb-submit {
	display: block;
	width: 100%;
	max-width: 364px;
	margin: 15px auto 10px;
	padding: 18px 0;
	border: 0;
	border-radius: 0;
	background: red;
	color: #fff;
	font: 400 21px "Open Sans", Arial, sans-serif;
	text-transform: uppercase;
	cursor: pointer;
}
.gpcb-submit:hover, .gpcb-submit:focus { background: #e00000; color: #fff; }
.gpcb-form.is-busy { opacity: .2; pointer-events: none; }

.gpcb-error { min-height: 0; color: #ff8080; font-size: 14px; font-weight: 600; }

.gpcb-loader {
	width: 15px;
	height: 15px;
	margin: -95px auto 80px;
	border-radius: 50%;
	background: #f7a400;
	box-shadow: 0 0 0 0 rgba(232, 76, 61, .7);
	animation: gpcb-pulsing 1.25s infinite cubic-bezier(.66, 0, 0, 1);
	opacity: .8;
}

.gpcb-count { color: #e6e6e6; font-size: 14px; font-weight: 400; }
.gpcb-count span { font-size: 20px; font-weight: 700; line-height: 1.5; }

.gpcb-info { margin-top: 30px; color: #fff; font-size: 24px; font-weight: 700; line-height: 1.3; }
.gpcb-info:empty { display: none; }
.gpcb-info p { margin-top: 15px; color: #fff; font-size: 16px; font-weight: 400; }

.gpcb-footer {
	position: absolute;
	left: 30px;
	bottom: 0;
	width: calc(100% - 60px);
	padding: 12px 0;
	border-top: 1px solid rgba(255, 255, 255, .5);
	text-align: center;
}
.gpcb-footer p { margin: 0; color: #e6e6e6; font-size: 14px; letter-spacing: 1px; line-height: 1.5; }
.gpcb-footer a { color: #f7a400; text-decoration: none; }
.gpcb-br { display: block; }

/* ---------- telefony / wąskie ekrany ---------- */
@media (max-width: 767px) {
	.gpcb-modal__content {
		margin: auto;
		width: 95%;
		max-width: 400px;
		height: auto;
		min-height: 450px;
		padding-bottom: 70px;
		background: #111 url(../img/ctm-popup.webp) top / cover no-repeat;
	}
	.gpcb-close { right: 0; top: -40px; font-size: 28px; font-weight: 700; }
	.gpcb-section { float: none; margin: 15px; }
	.gpcb-head { font-size: 32px; }
	.gpcb-lead { font-size: 26px; }
	.gpcb-undertitle { font-size: 18px; }
	.gpcb-phone { padding: 11px 0; }
	.gpcb-phone input { font-size: 20px; }
	.gpcb-submit { padding: 15px 0; font-size: 16px; }
	.gpcb-count { font-size: 11px; }
	.gpcb-count span { font-size: 14px; }
	.gpcb-info { font-size: 16px; }
	.gpcb-info p { font-size: 12px; }
	.gpcb-footer { left: 10px; width: calc(100% - 20px); }
	.gpcb-footer p { font-size: 11px; }
	.gpcb-fab { left: 16px; bottom: 16px; }
}

@keyframes gpcb-pulse { 0% { transform: scale(.8); } 50% { transform: scale(1); } 100% { transform: scale(.8); } }
@keyframes gpcb-pulsing { to { box-shadow: 0 0 0 30px rgba(232, 76, 61, 0); } }
@keyframes gpcb-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gpcb-fadeout { to { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	.gpcb-fab__btn, .gpcb-fab__btn svg, .gpcb-loader { animation: none; }
}

/* ---------- osłona przed stylami motywu / Elementora ----------
   Motywy (np. Hello Elementor) ustawiają select/input { width:100% }, button { kolor, ramka, padding }.
   Wszystko poniżej ma ID w selektorze + !important, żeby wygląd był zawsze jak w oryginale. */
#gpcb-modal .gpcb-phone {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	max-width: 364px !important;
	width: 100% !important;
	height: auto !important;
	margin: 15px auto 0 !important;
	padding: 15px 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #fff !important;
}
#gpcb-modal .gpcb-phone.is-invalid { box-shadow: 0 0 0 2px red !important; }
#gpcb-modal .gpcb-phone select {
	display: block !important;
	flex: 0 0 auto !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: 120px !important;
	height: 35px !important;
	min-height: 0 !important;
	margin: 0 0 0 10px !important;
	padding: 0 22px 0 6px !important;
	border: 0 !important;
	border-right: 1px solid #ddd !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	background-color: #fff !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0h8L4 5z' fill='%23555'/%3E%3C/svg%3E") !important;
	background-position: right 6px center !important;
	background-repeat: no-repeat !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	color: #333 !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	line-height: 35px !important;
	text-align: left !important;
}
#gpcb-modal .gpcb-phone input[type=tel] {
	display: block !important;
	flex: 1 1 auto !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 35px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 15px !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
	color: #000 !important;
	font-size: 24px !important;
	font-weight: 500 !important;
	line-height: 35px !important;
	letter-spacing: normal !important;
	text-align: left !important;
}
#gpcb-modal .gpcb-submit {
	display: block !important;
	width: 100% !important;
	max-width: 364px !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 15px auto 10px !important;
	padding: 18px 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	background: red !important;
	color: #fff !important;
	opacity: 1 !important;
	font-size: 21px !important;
	font-weight: 400 !important;
	line-height: 1.2 !important;
	letter-spacing: normal !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	text-align: center !important;
}
#gpcb-modal .gpcb-submit:hover, #gpcb-modal .gpcb-submit:focus { background: #e00000 !important; color: #fff !important; }
#gpcb-modal .gpcb-close {
	position: absolute !important;
	right: -15px !important;
	top: -15px !important;
	display: block !important;
	width: 30px !important;
	height: 30px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid #fff !important;
	border-radius: 50% !important;
	box-shadow: none !important;
	background: transparent !important;
	color: #fff !important;
	font-size: 26px !important;
	font-weight: 200 !important;
	line-height: 26px !important;
	text-align: center !important;
	opacity: .7;
}
#gpcb-modal .gpcb-close:hover, #gpcb-modal .gpcb-close:focus { opacity: 1; background: transparent !important; color: #fff !important; }
#gpcb-fab .gpcb-tooltip__close {
	width: 20px !important;
	height: 20px !important;
	min-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, .7) !important;
	color: #000 !important;
	font-size: 14px !important;
	line-height: 20px !important;
}
#gpcb-fab .gpcb-fab__btn { padding: 0 !important; border: 1px solid #000 !important; border-radius: 50% !important; background: #f7a400 !important; }

@media (max-width: 767px) {
	#gpcb-modal .gpcb-phone { padding: 11px 0 !important; }
	#gpcb-modal .gpcb-phone input[type=tel] { font-size: 20px !important; }
	#gpcb-modal .gpcb-submit { padding: 15px 0 !important; font-size: 16px !important; }
	#gpcb-modal .gpcb-close { right: 0 !important; top: -40px !important; font-size: 28px !important; font-weight: 700 !important; }
}
