/*
 * LKL Partners - responzívne štýly
 * Načítava sa po style.css. Desktop nad 1100 px zostáva bez zmeny.
 * Autor: Filip Bocko, studiodesign.sk
 */

/* =========================================================
   Globálne (všetky šírky)
   ========================================================= */

/* Hamburger je viditeľný len v mobilnom zobrazení */
.menu-toggle{
	display: none;
}

/* Telefónne čísla sú odkazy, na desktope vyzerajú ako predtým */
#left #left-footer div.mobil a{
	color: inherit;
}

#left #left-footer div.mobil a:hover{
	color: #fff;
}


/* =========================================================
   Menší desktop a tablet na šírku (901 - 1100 px)
   Bočný panel zostáva, obsah sa zúži do dostupného priestoru
   ========================================================= */
@media screen and (max-width: 1100px) {

	#center-column{
		width: calc(100% - 263px);
	}

	#center-column #mapa{
		left: 50%;
		margin-left: 0;
		-webkit-transform: translateX(-50%);
		transform: translateX(-50%);
		max-width: 100%;
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center top;
	}

	#center-column .content h2{
		font-size: 58px;
		line-height: 62px;
		right: 20px;
	}

	#center-column .content .podnadpis::after{
		width: auto;
		right: 0;
	}

	footer,
	footer:before{
		width: 100%;
	}

	/* Obrázky, videá a mapy v obsahu nikdy nepretečú */
	#center-column .content .text img{
		max-width: 100%;
		height: auto;
	}

	#center-column .content .text iframe,
	#center-column .content .text video,
	#center-column .content .text embed,
	#center-column .content .text object{
		max-width: 100%;
	}

	#center-column .content .text{
		overflow-wrap: break-word;
		word-wrap: break-word;
	}

	/* Kontakt: mapa zaberá max. polovicu šírky */
	#map_canvas{
		width: 48%;
	}

	.mapa-google{
		width: 48%;
	}

	.mapa-google iframe{
		width: 100%;
	}

	/* Rezervačný kalendár */
	.DOPBSPCalendar-wrapper,
	.bookly-form{
		max-width: 100%;
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
	}
}


/* =========================================================
   Tablet na výšku a mobil (do 900 px)
   + mobil na šírku (nízka výška displeja)
   ========================================================= */
@media screen and (max-width: 900px), screen and (max-width: 1180px) and (max-height: 540px) {

	/* ---- Pozadie ----
	   iOS nepodporuje background-attachment: fixed s cover,
	   preto je fotka na samostatnej pevnej vrstve */
	body{
		background: #2b2b2b;
	}

	body::before{
		content: '';
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: -1;
		background: url(../images/background.jpg) no-repeat center center;
		-webkit-background-size: cover;
		background-size: cover;
	}

	body.menu-open{
		overflow: hidden;
	}

	/* ---- Horná lišta (pôvodný bočný panel) ---- */
	#left{
		position: fixed;
		left: 0;
		right: 0;
		width: auto;
		height: auto;
		z-index: 1000;
		background-image: none;
		background-color: transparent;
	}

	#left header{
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: space-between;
		height: 64px;
		padding: 0 12px 0 16px;
		background-color: #fff;
		border-bottom: 3px solid #239b49;
		-webkit-box-shadow: 0 4px 18px rgba(0,0,0, 0.25);
		box-shadow: 0 4px 18px rgba(0,0,0, 0.25);
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
		position: relative;
		z-index: 2;
	}

	#left header #logo{
		width: auto;
		height: auto;
		background-color: transparent;
	}

	#left header #logo a{
		display: block;
	}

	#left header #logo img{
		display: block;
		margin: 0;
		width: auto;
		height: 44px;
	}

	/* ---- Hamburger ---- */
	.menu-toggle{
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		width: 46px;
		height: 46px;
		padding: 0;
		margin: 0;
		border: 0;
		border-radius: 0;
		background: -webkit-linear-gradient(135deg, #2aad55 0%, #1f8a41 100%);
		background: linear-gradient(135deg, #2aad55 0%, #1f8a41 100%);
		cursor: pointer;
		-webkit-appearance: none;
		-webkit-tap-highlight-color: transparent;
		-webkit-transition: background 200ms ease, -webkit-box-shadow 200ms ease;
		transition: background 200ms ease, box-shadow 200ms ease;
	}

	.menu-toggle:hover{
		-webkit-box-shadow: 0 4px 14px rgba(35,155,73, 0.45);
		box-shadow: 0 4px 14px rgba(35,155,73, 0.45);
	}

	.menu-toggle:focus-visible{
		outline: 2px solid #239b49;
		outline-offset: 3px;
	}

	.menu-toggle span{
		display: block;
		width: 22px;
		height: 2px;
		background-color: #fff;
		-webkit-transition: -webkit-transform 250ms ease, opacity 200ms ease;
		transition: transform 250ms ease, opacity 200ms ease;
	}

	.menu-toggle span + span{
		margin-top: 5px;
	}

	#left.is-open .menu-toggle span:nth-child(1){
		-webkit-transform: translateY(7px) rotate(45deg);
		transform: translateY(7px) rotate(45deg);
	}

	#left.is-open .menu-toggle span:nth-child(2){
		opacity: 0;
	}

	#left.is-open .menu-toggle span:nth-child(3){
		-webkit-transform: translateY(-7px) rotate(-45deg);
		transform: translateY(-7px) rotate(-45deg);
	}

	/* Prihlásený admin: fixná lišta sa posunie pod admin bar */
	html:has(#wpadminbar) #left{
		top: 32px;
	}

	html:has(#wpadminbar) #left.is-open{
		height: calc(100% - 32px);
		height: calc(100dvh - 32px);
	}

	/* ---- Vysúvacie menu ---- */
	#left #menu,
	#left #left-footer{
		display: none;
	}

	#left.is-open{
		height: 100%;
		height: 100dvh;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		background: -webkit-linear-gradient(290deg, rgba(38,160,78, 0.96) 0%, rgba(20,115,52, 0.97) 100%);
		background: linear-gradient(160deg, rgba(38,160,78, 0.96) 0%, rgba(20,115,52, 0.97) 100%);
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
	}

	#left.is-open #menu,
	#left.is-open #left-footer{
		display: block;
		-webkit-animation: lklMenuIn 280ms ease both;
		animation: lklMenuIn 280ms ease both;
	}

	#left.is-open #left-footer{
		-webkit-animation-delay: 80ms;
		animation-delay: 80ms;
	}

	#left #menu{
		font-size: 20px;
		padding-top: 8px;
	}

	#left #menu nav a{
		height: auto;
		padding: 15px 20px 14px 20px;
		line-height: 1.2;
	}

	#left #menu nav a::after{
		width: 100%;
	}

	#left #menu nav a.active:first-child{
		margin-top: 0;
	}

	/* Kontakty v menu */
	#left #left-footer{
		position: static;
		left: auto;
		bottom: auto;
		padding: 26px 20px 36px 20px;
		font-size: 14px;
		line-height: 20px;
		opacity: 1;
	}

	#left #left-footer div.mobil{
		display: block;
		padding-top: 10px;
	}

	#left #left-footer div.mobil p{
		padding-left: 0;
		margin: 0 0 10px 0;
	}

	#left #left-footer div.mobil p:last-child{
		margin-top: 0;
	}

	#left #left-footer div.mobil p:before{
		display: none;
	}

	#left #left-footer div.mobil a{
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		padding: 13px 16px;
		font-size: 16px;
		letter-spacing: 0.5px;
		color: #fff;
		border: 1px solid rgba(255,255,255, 0.45);
		background-color: rgba(255,255,255, 0.08);
		-webkit-transition: background-color 200ms ease, border-color 200ms ease;
		transition: background-color 200ms ease, border-color 200ms ease;
	}

	#left #left-footer div.mobil a::before{
		content: '';
		-ms-flex-negative: 0;
		flex-shrink: 0;
		width: 12px;
		height: 12px;
		margin-right: 12px;
		background-image: url(../images/mobil-icon.png);
	}

	#left #left-footer div.mobil a:hover,
	#left #left-footer div.mobil a:active{
		background-color: rgba(255,255,255, 0.2);
		border-color: #fff;
	}

	/* ---- Obsah ---- */
	#center-column{
		position: relative;
		left: auto;
		top: auto;
		width: auto;
		min-height: 100vh;
		padding-top: 64px;
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
	}

	#center-column .content{
		margin-top: 16px;
		-webkit-box-flex: 1;
		-ms-flex: 1 0 auto;
		flex: 1 0 auto;
	}

	/* Mapa sveta za nadpisom */
	#center-column #mapa{
		width: 100%;
		max-width: 534px;
		height: 190px;
		margin-top: 8px;
		pointer-events: none;
	}

	/* Jazyky */
	#center-column #lang{
		top: 74px;
		right: 12px;
		z-index: 2;
	}

	#center-column #lang ul{
		padding: 0;
	}

	#center-column #lang li{
		margin-left: 2px;
	}

	#center-column #lang li a{
		display: block;
		padding: 8px 6px;
	}

	/* Nadpisy */
	#center-column .content #head{
		height: auto;
		padding: 62px 20px 10px 20px;
	}

	#center-column .content h2{
		position: static;
		margin: 0;
		font-size: 40px;
		font-size: clamp(32px, 9vw, 58px);
		line-height: 1.05;
		overflow-wrap: break-word;
		word-wrap: break-word;
		-webkit-hyphens: auto;
		-ms-hyphens: auto;
		hyphens: auto;
	}

	#center-column .content .podnadpis{
		margin: 0 20px;
		font-size: 22px;
		font-size: clamp(18px, 5vw, 26px);
		line-height: 1.3;
		padding-bottom: 2px;
	}

	#center-column .content .podnadpis::after{
		left: -20px;
		right: -20px;
		width: auto;
	}

	#center-column .content h3{
		font-size: 22px;
		margin: 32px 20px 0 20px;
		line-height: 1.3;
	}

	#center-column .content h3.rezervacia{
		margin-left: 0;
		margin-right: 0;
	}

	#center-column .content h4{
		line-height: 1.3;
	}

	#center-column .content .text{
		padding: 10px 20px 40px 20px;
		line-height: 1.6;
	}

	/* Zoznamy */
	#center-column .content .text ul{
		padding-left: 22px;
	}

	#center-column .content .text ul li{
		position: relative;
	}

	#center-column .content .text ul li::before{
		position: absolute;
		left: -18px;
		top: 0;
	}

	/* ---- Obrázky na podstránkach ---- */
	p.colna-pictures,
	p.pneu1, p.pneu2, p.pneu3, p.pneu4,
	p.umyvacia{
		float: none;
		margin: 18px 0;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		gap: 12px;
	}

	p.colna-pictures img,
	p.pneu1 img, p.pneu2 img, p.pneu3 img, p.pneu4 img,
	p.umyvacia img{
		float: none;
		margin: 0;
		min-width: 0;
		max-width: 100%;
		height: auto;
	}

	p.colna-pictures img:first-child{
		margin-right: 0;
	}

	p.logistika img{
		margin-left: 0;
	}

	/* ---- Kontakt ---- */
	#map_canvas:empty{
		display: none;
	}

	#map_canvas{
		float: none;
		width: 100%;
		height: 260px;
		margin-bottom: 20px;
	}

	.mapa-google{
		float: none;
		width: 100%;
		margin: 0 0 24px 0;
	}

	.mapa-google iframe{
		width: 100%;
		height: 260px;
		display: block;
		border: 0;
	}

	#center-column .content .text table{
		width: 100% !important;
		max-width: 100%;
		table-layout: fixed;
	}

	#center-column .content .text td,
	#center-column .content .text th{
		width: auto !important;
		padding-right: 14px;
		overflow-wrap: break-word;
		word-wrap: break-word;
		vertical-align: top;
	}

	#center-column .content .text td b,
	#center-column .content .text td a{
		overflow-wrap: anywhere;
	}

	/* ---- Galéria ---- */
	.gallery-size-galeria{
		display: -ms-grid;
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
		gap: 10px;
		padding: 5px 0 0 0;
	}

	.gallery-size-galeria br{
		display: none;
	}

	.gallery-size-galeria .gallery-item{
		display: block;
		width: auto !important;
		margin: 0;
	}

	.gallery-size-galeria .gallery-item .gallery-icon,
	.gallery-size-galeria .gallery-item a{
		display: block;
		margin: 0;
	}

	.gallery-size-galeria .gallery-item img{
		float: none;
		display: block;
		width: 100%;
		height: auto;
		margin: 0;
	}

	.gallery-size-galeria .gallery-item a::before,
	.gallery-size-galeria .gallery-item a::after{
		width: 100%;
	}

	/* ---- Rezervačný kalendár ---- */
	.DOPBSPCalendar-wrapper,
	.bookly-form{
		overflow-x: auto;
	}

	/* ---- Pätička ---- */
	footer{
		position: relative;
		bottom: auto;
		height: auto;
		width: auto;
		padding: 10px 20px 12px 20px;
		overflow: hidden;
	}

	footer .left-logo{
		margin: 0;
	}

	footer .right-logo{
		margin: 0;
	}

	footer img{
		display: block;
	}
}


/* =========================================================
   Mobil (do 600 px)
   ========================================================= */
@media screen and (max-width: 782px) {
	/* admin bar je na malých šírkach vyšší (46 px) */
	html:has(#wpadminbar) #left{ top: 46px; }
	html:has(#wpadminbar) #left.is-open{
		height: calc(100% - 46px);
		height: calc(100dvh - 46px);
	}
}

@media screen and (max-width: 600px) {

	#center-column #mapa{
		height: 150px;
	}

	#center-column .content #head{
		padding-top: 56px;
	}

	#center-column .content .text{
		font-size: 15px;
	}

	/* Tabuľky v obsahu (napr. kontakty) sa poskladajú pod seba */
	#center-column .content .text table,
	#center-column .content .text tbody,
	#center-column .content .text tr,
	#center-column .content .text td,
	#center-column .content .text th{
		display: block;
		width: auto !important;
		height: auto !important;
	}

	#center-column .content .text td,
	#center-column .content .text th{
		padding: 0 0 6px 0;
	}

	#center-column .content .text tr{
		margin-bottom: 14px;
	}

	#center-column .content .text td a{
		overflow-wrap: anywhere;
	}

	td.martos{
		padding-top: 20px !important;
	}

	.gallery-size-galeria{
		grid-template-columns: repeat(3, 1fr);
		gap: 8px;
	}
}


/* =========================================================
   Animácie
   ========================================================= */
@-webkit-keyframes lklMenuIn{
	from{ opacity: 0; -webkit-transform: translateY(-8px); transform: translateY(-8px); }
	to{ opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); }
}

@keyframes lklMenuIn{
	from{ opacity: 0; -webkit-transform: translateY(-8px); transform: translateY(-8px); }
	to{ opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce){
	#left.is-open #menu,
	#left.is-open #left-footer,
	.menu-toggle span{
		-webkit-animation: none;
		animation: none;
		-webkit-transition: none;
		transition: none;
	}
}
