html,
body{
	width:100%;
	max-width:100%;
	overflow-x:hidden;
}

*{
	box-sizing:border-box;
}


body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  background: #f4f4f4;
  color: #222;
}

body{
	padding-top:96px;
}

body.modal-open{
	overflow:hidden;
}

.container {
  max-width: 1200px;
  margin: auto;
  padding: 60px 20px;
}

.section {
  padding: 60px 0;
}

.light {
  background: #f8f8f8;
}

.text-block {
  text-align: center;
  max-width: 1000px;
  margin: auto;
}

h1 {
  font-size: 46px;
  line-height: 1.2;
}

h2 {
  font-size: 36px;
  margin-bottom: 20px;
}

p {
  line-height: 1.6;
}


.w100{
	display:block;
	width:100%;
}

.fs-xl{
	font-size: 44px;
	margin-bottom: 24px;
	line-height: 1.2;	
}




.txt_col_blue{
	color: #049CB2;	
}

.mb-5{
	margin-bottom: 5%;
}

.mt_0{
	margin-top: 0 !important;
	padding-top: 0 !important;	
}

.mb_0{
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;	
}

@media (max-width: 1366px){


}

@media (max-width: 991px){
	.section {
	  padding: 30px 0;
	}
}







/* ==========================================
   SCROLLBAR
========================================== */

/* Firefox */
html{
	scrollbar-width: thin;
	scrollbar-color: #49b8c8 #ececef;
}

/* Webkit böngészők */
html::-webkit-scrollbar{
	width: 12px;
	height: 12px;
}

html::-webkit-scrollbar-track{
	background: #ececef;
	border-radius: 999px;
}

html::-webkit-scrollbar-thumb{
	background: linear-gradient(180deg, #6ed2df 0%, #36a8bb 55%, #0b7f93 100%);
	border-radius: 999px;
	border: 2px solid #ececef;
}

html::-webkit-scrollbar-thumb:hover{
	background: linear-gradient(180deg, #7ad9e5 0%, #3db4c7 55%, #097588 100%);
}

html::-webkit-scrollbar-corner{
	background: #ececef;
}





/* ==========================================
   NAVIGATION
========================================== */

.nav{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	z-index:1000;
	background:rgba(255,255,255,0.96);
	backdrop-filter:blur(10px);
	box-shadow:0 2px 14px rgba(0,0,0,0.04);
	transition:
		background 0.3s ease,
		box-shadow 0.3s ease;
}

.nav-container{
	max-width:1200px;
	margin:0 auto;
	padding:28px 24px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:32px;
	transition:padding 0.3s ease;
}

.nav.is-scrolled .nav-container{
	padding-top:14px;
	padding-bottom:14px;
}

.nav-logo{
	flex:0 0 auto;
	display:inline-flex;
	align-items:center;
	text-decoration:none;
}

.nav-logo img{
	display:block;
	width:96px;
	height:auto;
}

.menu{
	margin:0;
	padding:0;
	list-style:none;
	display:flex;
	align-items:center;
	justify-content:center;
	flex:1 1 auto;
	gap:56px;
}

.menu li{
	margin:0;
	padding:0;
}

.menu a{
	position:relative;
	display:inline-block;
	text-decoration:none;
	font-size:14px;
	font-weight:500;
	letter-spacing:0.02em;
	text-transform:uppercase;
	color:#1f1f1f;
	padding:6px 0;
	transition:color 0.25s ease, opacity 0.25s ease;
}

.menu a::after{
	content:"";
	position:absolute;
	left:0;
	bottom:-4px;
	width:100%;
	height:2px;
	background:#47bfd1;
	transform:scaleX(0);
	transform-origin:center;
	transition:transform 0.28s ease;
}

.menu a:hover::after,
.menu a.is-active::after{
	transform:scaleX(1);
}

.menu a:hover,
.menu a.is-active{
	color:#111;
}

.mobile-toggle{
	display:none;
	flex:0 0 auto;
	width:46px;
	height:46px;
	padding:0;
	border:none;
	background:transparent;
	cursor:pointer;
	position:relative;
	align-items:center;
	justify-content:center;
}

.mobile-toggle span{
	position:absolute;
	width:24px;
	height:2px;
	background:#1f1f1f;
	border-radius:999px;
	transition:
		transform 0.28s ease,
		opacity 0.2s ease,
		top 0.28s ease;
}

.mobile-toggle span:nth-child(1){
	top:16px;
}

.mobile-toggle span:nth-child(2){
	top:22px;
}

.mobile-toggle span:nth-child(3){
	top:28px;
}

.mobile-toggle.is-open span:nth-child(1){
	top:22px;
	transform:rotate(45deg);
}

.mobile-toggle.is-open span:nth-child(2){
	opacity:0;
}

.mobile-toggle.is-open span:nth-child(3){
	top:22px;
	transform:rotate(-45deg);
}

/* MOBILE PANEL */

.mobile-nav-panel{
	display:none;
	overflow:hidden;
	max-height:0;
	opacity:0;
	transform:translateY(-8px);
	background:#fff;
	border-top:1px solid rgba(0,0,0,0.05);
	box-shadow:0 14px 30px rgba(0,0,0,0.06);
	transition:
		max-height 0.32s ease,
		opacity 0.24s ease,
		transform 0.24s ease;
}

.mobile-nav-panel.is-open{
	opacity:1;
	transform:translateY(0);
	max-height:420px;
}

.mobile-nav-inner{
	padding:8px 20px 18px 20px;
	display:flex;
	flex-direction:column;
}

.mobile-nav-inner a{
	text-decoration:none;
	color:#1f1f1f;
	font-size:15px;
	font-weight:500;
	padding:16px 0;
	border-bottom:1px solid rgba(0,0,0,0.06);
	transition:color 0.2s ease, padding-left 0.2s ease;
}

.mobile-nav-inner a:last-child{
	border-bottom:none;
}

.mobile-nav-inner a:hover,
.mobile-nav-inner a.is-active{
	color:#47bfd1;
	padding-left:8px;
}

/* RESPONSIVE */
@media (max-width: 991px){
	body{
		padding-top:82px;
	}

	.nav-container{
		padding:18px 16px;
		gap:16px;
	}

	.nav.is-scrolled .nav-container{
		padding-top:12px;
		padding-bottom:12px;
	}

	.nav-logo img{
		width:86px;
	}

	.menu{
		display:none;
	}

	.mobile-toggle{
		display:inline-flex;
	}

	.mobile-nav-panel{
		display:block;
	}
}







.text-block--hero{
	text-align:center;
	max-width:900px;
	margin:auto;
}

.text-block__brand{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:10px;
	margin-bottom:28px;
}

.text-block__logo{
	display:block;
	width:72px;
	height:auto;
}

.text-block__tagline{
	margin:0;
	font-size:clamp(0.9rem, 1vw, 1.1rem);
	line-height:1.1;
	font-weight:700;
	letter-spacing:0.04em;
	text-transform:uppercase;
	color:#222;
}





.hero-container {
  text-align: center;
}

.hero-images {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 15px;
  margin-top: 40px;
}

.hero-images img {
  width: 100%;
  border-radius: 10px;
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
  margin-top: 40px;
}

.card {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
}

.card img {
  width: 100%;
  display: block;
}

.card span {
  position: absolute;
  bottom: 15px;
  left: 15px;
  background: white;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 14px;
}

.card-white {
  background: white;
  border-radius: 16px;
  display: flex;
  gap: 40px;
  padding: 40px;
  margin-bottom: 30px;
  flex-wrap: wrap;
}

.card-content {
  flex: 1;
}

.card-image {
  flex: 1;
}

.card-image img {
  width: 100%;
  border-radius: 10px;
}

.cta {
  text-align: center;
  background: white;
  padding: 80px 40px;
  border-radius: 20px;
}

.faq-item {
  border-bottom: 1px solid #ddd;
  padding: 20px 0;
  cursor: pointer;
}

.faq-answer {
  display: none;
  margin-top: 10px;
}

.footer {
  text-align: center;
  padding: 40px;
}












/* ==========================================
   SERVICES SHOWCASE / DESKTOP + MOBILE
========================================== */

.services-showcase-section{
	width:100%;
	max-width:100%;
	overflow:hidden;
	padding-left:0;
	padding-right:0;
}

.services-showcase-desktop{
	width:100%;
	margin-top:40px;
	display:flex;
	flex-direction:column;
	gap:18px;
}

.showcase-row{
	position:relative;
	width:100vw;
	left:50%;
	transform:translateX(-50%);
	overflow:hidden;
}

.showcase-track{
	display:flex;
	align-items:stretch;
	gap:18px;
	width:max-content;
	padding:0 18px;
	will-change:transform;
}

.showcase-row-top .showcase-track{
	animation:showcaseTickerLeft 42s linear infinite;
}

.showcase-row-bottom .showcase-track{
	animation:showcaseTickerRight 46s linear infinite;
}

.showcase-row:hover .showcase-track{
	animation-play-state:paused;
}

.showcase-card{
	position:relative;
	flex:0 0 auto;
	width:34vw;
	min-width:440px;
	max-width:680px;
	height:290px;
	border-radius:14px;
	overflow:hidden;
	background:#dcdcdc;
	box-shadow:0 12px 30px rgba(0,0,0,0.14);
	cursor:pointer;
}

.showcase-card-wide{
	width:42vw;
	min-width:620px;
	max-width:860px;
}

.showcase-card-small{
	width:20vw;
	min-width:280px;
	max-width:380px;
}

.showcase-card img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transition:transform 0.5s ease;
}

.showcase-card::after{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(0,0,0,0.20);
	transition:background 0.3s ease;
	z-index:1;
}

.showcase-card:hover img{
	transform:scale(1.05);
}

.showcase-card:hover::after{
	background:rgba(0,0,0,0.10);
}

.showcase-pill{
	position:absolute;
	left:50%;
	top:50%;
	transform:translate(-50%,-50%);
	z-index:2;
	border:none;
	background:#fff;
	color:#222;
	border-radius:999px;
	padding:16px 30px;
	font-size:17px;
	font-weight:600;
	line-height:1;
	white-space:nowrap;
	box-shadow:0 8px 22px rgba(0,0,0,0.16);
	cursor:pointer;
	transition:transform 0.25s ease, box-shadow 0.25s ease;
}

.showcase-card:hover .showcase-pill,
.services-mobile-card:hover .showcase-pill{
	transform:translate(-50%,-50%) scale(1.03);
	box-shadow:0 12px 26px rgba(0,0,0,0.20);
}

@keyframes showcaseTickerLeft{
	0%{
		transform:translateX(0);
	}
	100%{
		transform:translateX(calc(-50% - 9px));
	}
}

@keyframes showcaseTickerRight{
	0%{
		transform:translateX(calc(-50% - 9px));
	}
	100%{
		transform:translateX(0);
	}
}

/* ==========================================
   MOBILE CAROUSEL
========================================== */

.services-carousel-mobile{
	display:none;
	position:relative;
	width:100%;
	max-width:100%;
	margin-top:34px;
	padding:0 8px;
	box-sizing:border-box;
	align-items:center;
	gap:6px;
	overflow:hidden;
}

.services-carousel-arrow{
	flex:0 0 38px;
	width:38px;
	height:38px;
	border:none;
	border-radius:999px;
	background:#ffffff;
	color:#222;
	box-shadow:0 8px 20px rgba(0,0,0,0.14);
	font-size:18px;
	line-height:1;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:transform 0.2s ease, opacity 0.2s ease;
	position:relative;
	z-index:4;
}

.services-carousel-arrow:hover{
	transform:scale(1.05);
}

.services-carousel-viewport{
	flex:1 1 auto;
	width:100%;
	min-width:0;
	max-width:100%;
	overflow:hidden;
	position:relative;
}

.services-carousel-track{
	display:flex;
	gap:0;
	will-change:transform;
	touch-action:pan-y;
	max-width:none;
}

.services-mobile-card{
	position:relative;
	flex:0 0 calc(100% - 12px);
	width:calc(100% - 12px);
	min-width:calc(100% - 12px);
	max-width:calc(100% - 12px);
	height:190px;
	margin-right:12px;
	padding-right:0;
	box-sizing:border-box;
	border-radius:14px;
	overflow:hidden;
	background:#dcdcdc;
	box-shadow:0 12px 28px rgba(0,0,0,0.14);
	cursor:pointer;
}

.services-mobile-card img{
	width:100%;
	height:100%;
	display:block;
	object-fit:cover;
	object-position:center center;
	border-radius:14px;
}

.services-mobile-card::after{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(0,0,0,0.20);
	transition:background 0.3s ease;
	z-index:1;
	border-radius:14px;
}

.services-mobile-card img{
	width:100%;
	height:100%;
	display:block;
	object-fit:cover;
	object-position:center center;
}

.services-mobile-card::after{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(0,0,0,0.20);
	transition:background 0.3s ease;
	z-index:1;
}

.services-mobile-card:hover::after{
	background:rgba(0,0,0,0.10);
}

.services-mobile-card .showcase-pill{
	left:calc(50% - 6px);
}

/* ==========================================
   MODAL
========================================== */

body.modal-open{
	overflow:hidden;
}

.service-modal{
	position:fixed;
	inset:0;
	width:100vw;
	height:100dvh;
	max-width:100vw;
	overflow:hidden;
	z-index:9999;
	display:none;
}

.service-modal.is-open{
	display:block;
}

.service-modal-backdrop{
	position:absolute;
	inset:0;
	background:rgba(0,0,0,0.58);
	backdrop-filter:blur(3px);
}

.service-modal-dialog{
	position:relative;
	z-index:2;
	width:min(92vw, 760px);
	max-width:92vw;
	margin:8vh auto 0 auto;
	background:#fff;
	border-radius:24px;
	padding:36px 34px;
	box-shadow:0 30px 90px rgba(0,0,0,0.24);
	animation:serviceModalIn 0.28s ease;
}

.service-modal-content{
	position:relative;
}

.service-modal-eyebrow{
	font-size:13px;
	font-weight:700;
	letter-spacing:0.08em;
	text-transform:uppercase;
	color:#6dbbc6;
	margin-bottom:12px;
}

.service-modal-dialog h3{
	margin:0 0 18px 0;
	font-size:34px;
	line-height:1.1;
	color:#222;
}

.service-modal-dialog p{
	margin:0;
	font-size:17px;
	line-height:1.75;
	color:#4a4a4a;
}

.service-modal-cta{
	margin-top:28px;
}

.service-modal-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:14px 24px;
	background:#6dbbc6;
	color:#fff;
	text-decoration:none;
	border-radius:999px;
	font-weight:700;
	transition:opacity 0.25s ease, transform 0.25s ease;
}

.service-modal-button:hover{
	opacity:0.92;
	transform:translateY(-1px);
}

.service-modal-close{
	position:absolute;
	right:12px;
	top:10px;
	width:44px;
	height:44px;
	border:none;
	background:transparent;
	font-size:34px;
	line-height:1;
	color:#333;
	cursor:pointer;
	z-index:3;
}

@keyframes serviceModalIn{
	from{
		opacity:0;
		transform:translateY(22px) scale(0.98);
	}
	to{
		opacity:1;
		transform:translateY(0) scale(1);
	}
}

/* ==========================================
   RESPONSIVE
========================================== */

@media (max-width: 991px){

	.services-showcase-desktop{
		display:none;
	}

	.services-carousel-mobile{
		display:flex;
	}

	.showcase-pill{
		padding:13px 20px;
		font-size:15px;
	}
}

@media (max-width: 640px){

	.services-carousel-mobile{
		padding:0 8px;
		gap:6px;
	}

	.services-carousel-arrow{
		flex:0 0 34px;
		width:34px;
		height:34px;
		font-size:16px;
	}

	.services-mobile-card{
		height:170px;
		border-radius:12px;
	}

	.showcase-pill{
		padding:11px 16px;
		font-size:14px;
	}

	.service-modal-dialog{
		width:calc(100vw - 24px);
		max-width:calc(100vw - 24px);
		margin:6vh auto 0 auto;
		padding:28px 20px;
		border-radius:18px;
	}

	.service-modal-dialog h3{
		font-size:28px;
	}

	.service-modal-dialog p{
		font-size:16px;
		line-height:1.65;
	}
}














/* ==========================================
   FAQ SECTION
========================================== */

.faq-section{

}

.faq-heading{
	max-width:880px;
	margin:0 auto 54px auto;
	text-align:center;
}

.faq-heading h2{
	margin-bottom:18px;
}

.faq-heading p{
	margin:0 auto;
	max-width:760px;
	font-size:18px;
	line-height:1.75;
	color:#4a4a4a;
}

.faq-list{
	max-width:980px;
	margin:0 auto;
}

.faq-item{
	border-bottom:1px solid rgba(0,0,0,0.12);
}

.faq-item:first-child{
	border-top:1px solid rgba(0,0,0,0.12);
}

.faq-question{
	width:100%;
	padding:28px 0;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:24px;
	border:none;
	background:transparent;
	cursor:pointer;
	text-align:left;
	font:inherit;
	color:#1f1f1f;
}

.faq-question span:first-child{
	display:block;
	font-size:18px;
	line-height:1.35;
	font-weight:700;
	letter-spacing:-0.01em;
}

.faq-icon{
	position:relative;
	flex:0 0 26px;
	width:26px;
	height:26px;
	margin-left:auto;
}

.faq-icon::before,
.faq-icon::after{
	content:"";
	position:absolute;
	left:50%;
	top:50%;
	width:22px;
	height:2px;
	background:#8a8a8a;
	border-radius:999px;
	transform:translate(-50%, -50%);
	transition:transform 0.28s ease, opacity 0.22s ease, background 0.22s ease;
}

.faq-icon::after{
	transform:translate(-50%, -50%) rotate(90deg);
}

.faq-item.is-open .faq-icon::before,
.faq-question:hover .faq-icon::before,
.faq-question:hover .faq-icon::after{
	background:#1f1f1f;
}

.faq-item.is-open .faq-icon::after{
	transform:translate(-50%, -50%) rotate(0deg);
	opacity:0;
}

.faq-answer{
	display:none;
	padding:0 0 26px 0;
}

.faq-answer-inner{
	max-width:780px;
	font-size:18px;
	line-height:1.85;
	color:#4a4a4a;
	padding-right:48px;
}

@media (max-width: 991px){

	.faq-section{

	}

	.faq-heading{
		margin-bottom:38px;
	}

	.faq-heading p{
		font-size:17px;
		line-height:1.7;
	}

	.faq-question{
		padding:22px 0;
	}

	.faq-question span:first-child{
		font-size:28px;
	}

	.faq-answer-inner{
		font-size:17px;
		line-height:1.75;
		padding-right:20px;
	}
}

@media (max-width: 640px){

	.faq-section{

	}


	.faq-heading p{
		font-size:16px;
		line-height:1.65;
	}

	.faq-question{
		padding:20px 0;
		gap:16px;
	}

	.faq-question span:first-child{
		font-size:17px;
		line-height:1.35;
	}

	.faq-icon{
		flex:0 0 22px;
		width:22px;
		height:22px;
	}

	.faq-icon::before,
	.faq-icon::after{
		width:18px;
	}

	.faq-answer{
		padding-bottom:20px;
	}

	.faq-answer-inner{
		font-size:16px;
		line-height:1.7;
		padding-right:0;
	}
}



/* =========================
   PHONE GALLERY
========================= */

.phone-gallery-section{
	padding:120px 0;
	overflow:hidden;
}

.phone-gallery-stage{
	--pg-card-width: 320px;
	--pg-gap: 72px;
	--pg-phone-width: 430px;
	--pg-phone-height: 840px;
	--pg-screen-radius: 42px;

	position:relative;
	width:100%;
	max-width:100%;
	display:flex;
	justify-content:center;
	align-items:center;
	min-height:920px;
	padding:40px 0 56px;
	overflow:visible;
}

.pg-rail{
	width:100%;
	overflow:hidden;
	padding:0 24px;
}

.pg-track{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:var(--pg-gap);
	transform:translate3d(0,0,0);
	will-change:transform;
}

.pg-track.is-animating{
	transition:transform .9s cubic-bezier(.22,1,.36,1);
}

.pg-card{
	position:relative;
	width:var(--pg-card-width);
	aspect-ratio:9 / 15.4;
	overflow:hidden;
	opacity:.6;
	transform-origin:center center;
	transform:scale(.88);
	transition:
		transform .9s cubic-bezier(.22,1,.36,1),
		opacity .9s cubic-bezier(.22,1,.36,1);
	box-shadow:0 22px 50px rgba(0,0,0,.12);
	border-radius:0;
	flex:0 0 auto;
	will-change:transform, opacity;
	z-index:1;
}

.pg-pos-1{
	transform:scale(.87);
	opacity:.34;
	z-index:1;
}

.pg-pos-2{
	transform:scale(.95);
	opacity:.72;
	z-index:2;
}

.pg-pos-3{
	transform:scale(1);
	opacity:1;
	z-index:3;
}

.pg-pos-4{
	transform:scale(.95);
	opacity:.72;
	z-index:2;
}

.pg-pos-5{
	transform:scale(.87);
	opacity:.34;
	z-index:1;
}

.pg-card img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	border-radius:0;
}

/* PHONE */
.pg-phone{
	position:absolute;
	left:50%;
	top:50%;
	transform:translate(-50%,-50%);
	width:var(--pg-phone-width);
	height:var(--pg-phone-height);
	pointer-events:none;
	z-index:8;
	isolation:isolate;
}
.pg-phone-device{
	position:absolute;
	left:0;
	top:0;
	width: 100%;
	height: 100%;
	z-index: 100;
}
.pg-phone-device::after{
	content:"";
	position:absolute;
	inset:0;
	background:url("../iphone.png") center center / contain no-repeat;
	z-index: 100;
	pointer-events:none;
}

/* a PNG alatti valódi kijelző */
.pg-phone-screen{
	position:absolute;
	left:50%;
	top:50%;
	transform:translate(-50%,-50%);
	width:87.2%;
	height:95.2%;
	overflow:hidden;
	border-radius:13% / 6.3%;
	background:#f4f4f4;
	z-index:1;
	isolation:isolate;
}

.pg-screen-image{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transform:translate3d(100%,0,0) scale(1);
	opacity:1;
	will-change:transform, opacity;
	backface-visibility:hidden;
	-webkit-backface-visibility:hidden;
	z-index:0;
}

.pg-screen-image.is-current{
	transform:translate3d(0,0,0) scale(1);
	opacity:1;
	z-index:2;
}

.pg-screen-image.is-next{
	transform:translate3d(100%,0,0) scale(1);
	opacity:1;
	z-index:3;
}

.pg-screen-image.is-animating-out{
	transition:
		transform .9s cubic-bezier(.22,1,.36,1),
		opacity .9s cubic-bezier(.22,1,.36,1);
	transform:translate3d(-100%,0,0) scale(.92);
	opacity:.96;
	z-index:2;
}

.pg-screen-image.is-animating-in{
	transition:
		transform .9s cubic-bezier(.22,1,.36,1),
		opacity .9s cubic-bezier(.22,1,.36,1);
	transform:translate3d(0,0,0) scale(1);
	opacity:1;
	z-index:2;
}


.pg-phone-inflight{
	position:absolute;
	inset:0;
	z-index:50;
	pointer-events:none;
	overflow:visible;
}

.pg-flight{
	position:absolute;
	margin:0;
	pointer-events:none;
	object-fit:cover;
	z-index:20;
	will-change:top,left,width,height,border-radius,opacity,transform;
	border-radius:0;
	box-shadow:none;
	transition:
		top .9s cubic-bezier(.22,1,.36,1),
		left .9s cubic-bezier(.22,1,.36,1),
		width .9s cubic-bezier(.22,1,.36,1),
		height .9s cubic-bezier(.22,1,.36,1),
		border-radius .9s cubic-bezier(.22,1,.36,1),
		opacity .18s ease;
}

/* TABLET */
@media (max-width: 1399px){
	.phone-gallery-stage{
		--pg-card-width: 290px;
		--pg-gap: 56px;
		--pg-phone-width: 390px;
		--pg-phone-height: 770px;
		min-height:860px;
	}
}

@media (max-width: 1199px){
	.phone-gallery-stage{
		--pg-card-width: 250px;
		--pg-gap: 44px;
		--pg-phone-width: 340px;
		--pg-phone-height: 680px;
		min-height:760px;
		padding:28px 0 36px;
	}

	.pg-rail{
		padding:0 16px;
	}
}

/* MOBILE */
@media (max-width:991px){
	.phone-gallery-stage{
		min-height:auto;
		width:100%;
		display:block;
		padding:0 0 12px;
		overflow:hidden;
	}
	
	.phone-gallery-stage{
		--pg-phone-width: min(92vw, 420px);
		--pg-phone-height: calc(min(92vw, 420px) * 1.95);
	}

	.pg-rail{
		display:block;
		width:100%;
		padding:0;
		overflow:hidden;
	}

	.pg-track{
		position:relative;
		width:100%;
		height:var(--pg-phone-height);
		display:block;
		gap:0;
		transform:none !important;
	}

	.pg-track.is-animating{
		transition:none;
	}

	.pg-card{
		position:absolute;
		top:50%;
		aspect-ratio:9 / 15.4;
		width:min(22vw, 96px);
		transform:translateY(-50%) scale(.92);
		opacity:.7;
		transition:
			left .55s cubic-bezier(.22,1,.36,1),
			right .55s cubic-bezier(.22,1,.36,1),
			transform .55s cubic-bezier(.22,1,.36,1),
			opacity .55s cubic-bezier(.22,1,.36,1);
	}

	.pg-pos-1{
		left:-10vw;
		transform:translateY(-50%) scale(.82);
		opacity:.14;
	}
	
	.pg-pos-2{
		left:1.5vw;
		transform:translateY(-50%) scale(.88);
		opacity:.30;
	}
	
	.pg-pos-3{
		left:50%;
		right:auto;
		transform:translate(-50%,-50%) scale(1);
		opacity:0;
		pointer-events:none;
	}
	
	.pg-pos-4{
		right:1.5vw;
		left:auto;
		transform:translateY(-50%) scale(.88);
		opacity:.30;
	}
	
	.pg-pos-5{
		right:-10vw;
		left:auto;
		transform:translateY(-50%) scale(.82);
		opacity:.14;
	}

	.pg-phone{
		position:absolute;
		left:50%;
		top:50%;
		transform:translate(-50%,-50%);
		width:var(--pg-phone-width);
		height:var(--pg-phone-height);
	}
}

@media (max-width:640px){
	.phone-gallery-section{
		padding-top:56px;
		padding-bottom:56px;
	}

	.phone-gallery-stage{
		--pg-phone-width: min(88vw, 340px);
		--pg-phone-height: calc(min(88vw, 340px) * 1.95);
	}

	.pg-card{
		width:min(29vw, 115px);
	}

	.pg-phone-screen{
		width:88%;
		height:95%;
		border-radius:34px;
	}
}





/* ==========================================
   COMMON
========================================== */

.services-feature-section{
	overflow:hidden;
}

.services-block{
	position:relative;
	gap:56px;
	padding:72px 80px;
	border-radius:28px;
	box-shadow:0 16px 50px rgba(0,0,0,0.06);
}

.services-block__copy h2,
.services-block__overlay-copy h2{
	margin:0 0 24px 0;
}

.services-block__copy p,
.services-block__overlay-copy p{
	margin:0 0 18px 0;
	color:#2f2f2f;
}

.services-block__points{
	display:flex;
	flex-direction:column;
	gap:2px;
}

.services-block__points p{
	margin:0;
	font-size:18px;
	line-height:1.65;
}


/* ==========================================
   COMMON RESPONSIVE
========================================== */

@media (max-width: 1366px){
	.services-block{
		padding:58px 56px;
	}
}

@media (max-width: 991px){
	.services-block{
		padding:36px 22px;
		gap:28px;
		border-radius:22px;
	}

	.services-block__copy h2,
	.services-block__overlay-copy h2{
		margin-bottom:18px;
	}
}

@media (max-width: 640px){

}


/* ==========================================
   1. ELEM / CARDS
========================================== */

.services-block--cards{
	display:flex;
	align-items:stretch;
	padding-right:34px;
	overflow:visible;
}

.services-block__copy--cards{
	flex:0 0 31%;
	max-width:360px;
	position:relative;
	z-index:3;
}

.services-cards{
	flex:1 1 0;
	min-width:0;
	display:grid;
	grid-template-columns:48px minmax(0,1fr) 48px;
	grid-template-areas:
		"prev viewport next"
		". dots .";
	gap:18px 12px;
	align-items:center;
	position:relative;
}

.services-cards__arrow{
	width:48px;
	height:48px;
	border:none;
	border-radius:999px;
	background:#fff;
	box-shadow:0 8px 22px rgba(0,0,0,0.12);
	cursor:pointer;
	font-size:18px;
	line-height:1;
	display:flex;
	align-items:center;
	justify-content:center;
	position:relative;
	z-index:8;
	transition:transform .2s ease;
}

.services-cards__arrow:hover{
	transform:scale(1.05);
}

.services-cards__arrow--prev{
	grid-area:prev;
}

.services-cards__arrow--next{
	grid-area:next;
}

.services-cards__viewport{
	grid-area:viewport;
	min-width:0;
	overflow:visible;
	position:relative;
	padding:30px 40px;
	margin:-30px -40px;
}

.services-cards__track{
	display:flex;
	align-items:stretch;
	gap:18px;
	transition:transform .55s cubic-bezier(.22,1,.36,1);
	will-change:transform;
}

.services-cards__slide{
	flex:0 0 calc((100% - 18px) / 2);
	min-width:calc((100% - 18px) / 2);
	display:flex;
	align-self:stretch;
	box-sizing:border-box;
	padding:0 10px;
	transition:
		opacity .45s ease,
		transform .45s cubic-bezier(.22,1,.36,1),
		filter .45s ease;
	transform-origin:center center;
}

.services-card{
	display:flex;
	width:100%;
	height:100%;
}

.services-card__inner{
	background:#f8f8f8;
	border-radius:20px;
	overflow:hidden;
	box-shadow:0 16px 34px rgba(0,0,0,0.12);
	display:flex;
	flex-direction:column;
	width:100%;
	height:100%;
	min-height:100%;
}

.services-card img{
	display:block;
	width:100%;
	aspect-ratio:0.84 / 1;
	object-fit:cover;
	flex:0 0 auto;
}

.services-card__body{
	padding:20px 20px 22px;
	display:flex;
	flex-direction:column;
	flex:1 1 auto;
}

.services-card h3{
	margin:0 0 8px 0;
	font-size:23px;
	line-height:1.18;
	min-height:54px;
}

.services-card p{
	margin:0;
	font-size:15px;
	line-height:1.6;
	color:#666;
	flex:1 1 auto;
}

.services-cards__slide.is-active{
	opacity:1;
	transform:scale(1);
	filter:blur(0);
	z-index:3;
}

.services-cards__slide.is-near{
	opacity:0;
	transform:scale(.88);
	filter:blur(.2px);
	pointer-events:none;
	z-index:2;
}

.services-cards__slide.is-far{
	opacity:0;
	transform:scale(.76);
	filter:blur(.5px);
	pointer-events:none;
	z-index:1;
}

.services-cards__dots{
	grid-area:dots;
	display:flex;
	justify-content:center;
	align-items:center;
	gap:10px;
	margin-top: 10px;
}

.services-cards__dots button{
	width:10px;
	height:10px;
	border:none;
	border-radius:999px;
	padding:0;
	background:#d0d0d0;
	cursor:pointer;
	transition:transform .2s ease, background .2s ease;
}

.services-cards__dots button.is-active{
	background:#049CB2;
	transform:scale(1.18);
}


/* ==========================================
   1. ELEM / RESPONSIVE
========================================== */

@media (min-width: 992px){
	.services-cards{
		grid-template-columns:42px minmax(0,1fr) 42px;
	}

	.services-cards__viewport{
		padding-right:70px;
		margin-right:-70px;
	}
}

@media (max-width: 991px){
	.services-block--cards{
		flex-direction:column;
		padding-right:22px;
	}

	.services-block__copy--cards{
		flex:1 1 100%;
		max-width:100%;
		width:100%;
		text-align:center;
	}

	.services-block--cards .services-block__points{
		align-items:center;
	}

	.services-cards{
		width:100%;
		grid-template-columns:minmax(0,1fr);
		grid-template-areas:
			"viewport"
			"dots";
		gap:16px;
	}

	.services-cards__arrow{
		position:absolute;
		top:50%;
		transform:translateY(-50%);
		width:40px;
		height:40px;
		z-index:9;
	}

	.services-cards__arrow--prev{
		left:0;
	}

	.services-cards__arrow--next{
		right:0;
	}

	.services-cards__viewport{
		overflow:hidden;
		padding:26px 34px;
		margin:-26px 0;
	}

	.services-cards__track{
		gap:18px;
	}

	.services-cards__slide{
		flex:0 0 100%;
		min-width:100%;
		padding:0 12px;
	}

	.services-card h3{
		min-height:0;
	}
}

@media (max-width: 640px){
	.services-card h3{
		font-size:20px;
	}

	.services-card p{
		font-size:15px;
	}
}


/* ==========================================
   2. ELEM / VISUAL
========================================== */

.services-block--visual{
	display:flex;
	align-items:center;
	overflow:hidden;
}

.services-visual{
	flex:0 0 44%;
	min-width:0;
	display:flex;
	justify-content:center;
	align-items:center;
	position:relative;
	min-height:540px;
}

.services-visual__media{
	width:min(100%, 390px);
	will-change:transform;
	transform:translate3d(0, 54px, 0);
}

.services-visual__media img{
	display:block;
	width:100%;
	aspect-ratio:0.72 / 1;
	object-fit:cover;
	border-radius:34px;
	box-shadow:0 24px 60px rgba(0,0,0,0.12);
}

.services-block__copy--visual{
	flex:0 0 42%;
	max-width:500px;
	position:relative;
	z-index:2;
}


/* ==========================================
   2. ELEM / RESPONSIVE
========================================== */

@media (max-width: 991px){
	.services-block--visual{
		flex-direction:column;
	}

	.services-block__copy--visual{
		flex:1 1 100%;
		max-width:100%;
		width:100%;
		text-align:center;
	}

	.services-block--visual .services-block__points{
		align-items:center;
	}

	.services-visual{
		min-height:auto;
		width:100%;
	}

	.services-visual__media{
		width:min(100%, 320px);
		transform:translate3d(0, 42px, 0);
	}
}


/* ==========================================
   3. ELEM / BG
========================================== */

.services-block--bg{
	min-height:540px;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
	overflow:hidden;
	isolation:isolate;
}

.services-bg{
	position:absolute;
	left:50%;
	top:40%;
	width:min(70%, 760px);
	opacity:.18;
	transform:translate3d(-50%, 42px, 0);
	will-change:transform;
	z-index:1;
	pointer-events:none;
}

.services-bg img{
	display:block;
	width:100%;
	height:auto;
	object-fit:contain;
}

.services-block__overlay-copy{
	position:relative;
	z-index:3;
	max-width:760px;
	margin:auto;
}

.services-block__overlay-copy p{
	max-width:660px;
	margin:0 auto;
}


/* ==========================================
   3. ELEM / RESPONSIVE
========================================== */

@media (max-width: 991px){
	.services-block--bg{
		min-height:380px;
	}

	.services-block__overlay-copy{
		text-align:center;
	}

	.services-bg{
		width:min(78%, 520px);
		top:64%;
		transform:translate3d(-50%, 30px, 0);
	}
}



















/* ==========================================
   SCROLL REVEAL
========================================== */

.reveal-up{
	opacity:0;
	transform:translate3d(0, 72px, 0);
	transition:
		opacity 1.1s cubic-bezier(0.22, 1, 0.36, 1),
		transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay:0s;
	will-change:opacity, transform;
}

.reveal-up.is-visible{
	opacity:1;
	transform:translate3d(0, 0, 0);
	transition-delay:var(--reveal-delay, 0s);
}

/* opcionális kézi delay classok */
.reveal-up.reveal-delay-1{ --reveal-delay:0.08s; }
.reveal-up.reveal-delay-2{ --reveal-delay:0.16s; }
.reveal-up.reveal-delay-3{ --reveal-delay:0.24s; }

@media (prefers-reduced-motion: reduce){
	.reveal-up{
		opacity:1;
		transform:none;
		transition:none;
	}
}















/* ==========================================
   CONTACT
========================================== */

.contact-section{
	padding-top:110px;
	padding-bottom:110px;
	background:#f3f3f5;
}

.contact-block{
	max-width:860px;
	margin:0 auto;
	text-align:center;
}

.contact-block__logo{
	margin-bottom:22px;
	display:flex;
	justify-content:center;
}

.contact-block__logo img{
	width:64px;
	height:auto;
	display:block;
	opacity:.95;
}

.contact-block__content h2{
	margin:0 0 20px 0;
	color:#1f1f24;
}

.contact-block__content p{
	margin:0 auto;
	max-width:760px;
	color:#3e3e45;
}

.contact-cta{
	position:relative;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:14px;
	margin-top:34px;
	padding:18px 28px;
	border:none;
	background:transparent;
	cursor:pointer;
	border-radius:999px;
	overflow:hidden;
	box-shadow:0 18px 38px rgba(0,0,0,0.10);
	transform:translateY(0);
	transition:transform .28s ease, box-shadow .28s ease;
}

.contact-cta:hover{
	transform:translateY(-2px);
	box-shadow:0 24px 48px rgba(0,0,0,0.14);
}

.contact-cta__bg{
	position:absolute;
	inset:0;
	border-radius:999px;
	background:linear-gradient(135deg, #6ed2df 0%, #36a8bb 55%, #0b7f93 100%);
}

.contact-cta__bg::before{
	content:"";
	position:absolute;
	inset:-40% auto -40% -20%;
	width:42%;
	background:rgba(255,255,255,0.26);
	transform:rotate(24deg) translateX(-120%);
	transition:transform .6s ease;
}

.contact-cta:hover .contact-cta__bg::before{
	transform:rotate(24deg) translateX(360%);
}

.contact-cta__label,
.contact-cta__icon{
	position:relative;
	z-index:2;
	color:#fff;
	font-weight:800;
	font-size:18px;
	line-height:1;
}

.contact-cta__icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:28px;
	height:28px;
	border-radius:999px;
	background:rgba(255,255,255,0.16);
	backdrop-filter:blur(6px);
	transition:transform .28s ease;
}

.contact-cta:hover .contact-cta__icon{
	transform:translateX(3px);
}


/* ==========================================
   CONTACT MODAL
========================================== */

body.contact-modal-open{
	overflow:hidden;
}

.contact-modal{
	position:fixed;
	inset:0;
	z-index:10020;
	display:none;
}

.contact-modal.is-open{
	display:block;
}

.contact-modal__backdrop{
	position:absolute;
	inset:0;
	background:rgba(16,18,22,0.62);
	backdrop-filter:blur(6px);
	animation:contactModalBackdropIn .25s ease;
}

.contact-modal__dialog{
	position:relative;
	z-index:2;
	width:min(92vw, 760px);
	max-width:92vw;
	margin:6vh auto 0 auto;
	padding:34px 34px 30px;
	border-radius:28px;
	background:#ffffff;
	box-shadow:0 30px 100px rgba(0,0,0,0.24);
	animation:contactModalIn .32s cubic-bezier(.22,1,.36,1);
}

.contact-modal__close{
	position:absolute;
	right:14px;
	top:10px;
	width:44px;
	height:44px;
	border:none;
	background:transparent;
	font-size:34px;
	line-height:1;
	color:#292929;
	cursor:pointer;
}

.contact-modal__header{
	margin-bottom:26px;
}

.contact-modal__eyebrow{
	margin-bottom:10px;
	font-size:13px;
	font-weight:800;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:#36a8bb;
}

.contact-modal__header h3{
	margin:0 0 12px 0;
	font-size:42px;
	line-height:1.02;
	letter-spacing:-0.03em;
	color:#1f1f24;
}

.contact-modal__header p{
	margin:0;
	font-size:17px;
	line-height:1.75;
	color:#4a4a4f;
}

.contact-form{
	display:block;
}

.contact-form__grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:16px;
}

.contact-field{
	margin-bottom:16px;
}

.contact-field label{
	display:block;
	margin-bottom:8px;
	font-size:14px;
	font-weight:700;
	color:#2a2a30;
}

.contact-field input,
.contact-field textarea{
	width:100%;
	border:1px solid rgba(0,0,0,0.12);
	background:#f7f8fa;
	border-radius:16px;
	padding:16px 18px;
	font:inherit;
	color:#1f1f24;
	outline:none;
	transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.contact-field input:focus,
.contact-field textarea:focus{
	border-color:#36a8bb;
	background:#fff;
	box-shadow:0 0 0 4px rgba(54,168,187,0.12);
}

.contact-field textarea{
	resize:vertical;
	min-height:150px;
}

.contact-checkbox{
	display:flex;
	align-items:flex-start;
	gap:12px;
	margin:10px 0 0 0;
	font-size:14px;
	line-height:1.55;
	color:#4a4a4f;
	cursor:pointer;
}

.contact-checkbox input{
	margin-top:3px;
}

.contact-form__actions{
	margin-top:24px;
}

.contact-submit{
	position:relative;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:220px;
	padding:16px 24px;
	border:none;
	border-radius:999px;
	background:linear-gradient(135deg, #6ed2df 0%, #36a8bb 55%, #0b7f93 100%);
	color:#fff;
	font-weight:800;
	font-size:16px;
	cursor:pointer;
	box-shadow:0 16px 34px rgba(54,168,187,0.28);
	transition:transform .24s ease, opacity .24s ease, box-shadow .24s ease;
}

.contact-submit:hover{
	transform:translateY(-2px);
	box-shadow:0 22px 40px rgba(54,168,187,0.34);
}

.contact-submit.is-loading{
	pointer-events:none;
	opacity:.92;
}

.contact-submit__loader{
	display:none;
	width:18px;
	height:18px;
	border-radius:999px;
	border:2px solid rgba(255,255,255,0.35);
	border-top-color:#fff;
	margin-left:12px;
	animation:contactSpin .65s linear infinite;
}

.contact-submit.is-loading .contact-submit__loader{
	display:inline-block;
}

.contact-form__feedback{
	margin-top:18px;
	min-height:24px;
	font-size:15px;
	font-weight:700;
}

.contact-form__feedback.is-success{
	color:#138750;
}

.contact-form__feedback.is-error{
	color:#c0392b;
}

.contact-field.is-error input,
.contact-field.is-error textarea{
	border-color:#d84e4e;
	box-shadow:0 0 0 4px rgba(216,78,78,0.10);
}

.contact-checkbox.is-error{
	color:#c0392b;
}

@keyframes contactModalIn{
	from{
		opacity:0;
		transform:translateY(26px) scale(.985);
	}
	to{
		opacity:1;
		transform:translateY(0) scale(1);
	}
}

@keyframes contactModalBackdropIn{
	from{
		opacity:0;
	}
	to{
		opacity:1;
	}
}

@keyframes contactSpin{
	to{
		transform:rotate(360deg);
	}
}


/* ==========================================
   CONTACT RESPONSIVE
========================================== */

@media (max-width: 991px){
	.contact-section{
		padding-top:90px;
		padding-bottom:90px;
	}

	.contact-modal__dialog{
		width:calc(100vw - 26px);
		max-width:calc(100vw - 26px);
		padding:28px 22px 24px;
		border-radius:22px;
	}

	.contact-modal__header h3{
		font-size:34px;
	}

	.contact-form__grid{
		grid-template-columns:1fr;
	}
}

@media (max-width: 640px){
	.contact-block__logo img{
		width:52px;
	}

	.contact-cta{
		margin-top:28px;
		padding:16px 22px;
	}

	.contact-cta__label,
	.contact-cta__icon{
		font-size:16px;
	}

	.contact-modal__header h3{
		font-size:28px;
	}

	.contact-modal__header p{
		font-size:15px;
		line-height:1.65;
	}
}







/* ==========================================
   FOOTER / CONTACT
========================================== */

.footer-contact{
	padding:48px 0 32px;
	background:#f3f3f5;
	border-top:1px solid rgba(0,0,0,0.06);
	overflow:hidden;
}

.footer-contact__container{
	max-width:1440px;
}

.footer-contact__inner{
	display:grid;
	grid-template-columns:minmax(280px, 420px) minmax(0, 1fr);
	gap:48px;
	align-items:center;
}

.footer-contact__brand{
	padding-right:10px;
}

.footer-contact__logo{
	margin-bottom:14px;
}

.footer-contact__logo img{
	display:block;
	width:56px;
	height:auto;
}

.footer-contact__brand h3{
	margin:0 0 12px;
	font-size:34px;
	line-height:1.02;
	font-weight:900;
	letter-spacing:-0.03em;
	color:#1f1f24;
}

.footer-contact__brand p{
	margin:0;
	max-width:420px;
	font-size:16px;
	line-height:1.7;
	color:#4a4a4f;
}

.footer-contact__info{
	display:flex;
	flex-wrap:wrap;
	gap:16px;
	align-items:stretch;
	justify-content:flex-start;
	min-width:0;
}

.footer-contact__item{
	position:relative;
	display:flex;
	align-items:center;
	gap:14px;
	min-height:96px;
	padding:18px 20px;
	border-radius:22px;
	background:#fff;
	box-shadow:0 14px 34px rgba(0,0,0,0.07);
	text-decoration:none;
	color:inherit;
	transition:transform .26s ease, box-shadow .26s ease;
	flex:0 0 auto;
	max-width:100%;
}

.footer-contact__item:hover{
	transform:translateY(-4px);
	box-shadow:0 20px 42px rgba(0,0,0,0.11);
}

.footer-contact__item--static{
	cursor:default;
}

.footer-contact__item--static:hover{
	transform:none;
	box-shadow:0 14px 34px rgba(0,0,0,0.07);
}

.footer-contact__item-icon{
	flex:0 0 46px;
	width:46px;
	height:46px;
	border-radius:999px;
	display:flex;
	align-items:center;
	justify-content:center;
	background:linear-gradient(135deg, #6ed2df 0%, #36a8bb 55%, #0b7f93 100%);
	color:#fff;
	font-size:18px;
	box-shadow:0 10px 20px rgba(54,168,187,0.22);
}

.footer-contact__item-text{
	min-width:0;
}

.footer-contact__item-text span{
	display:block;
	margin-bottom:4px;
	font-size:12px;
	font-weight:800;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:#36a8bb;
}

.footer-contact__item-text strong{
	display:block;
	font-size:18px;
	line-height:1.25;
	font-weight:800;
	color:#202025;
	white-space:nowrap;
}

.footer-contact__item--phone strong{
	font-size:17px;
	letter-spacing:.01em;
}

.footer-contact__item--email strong{
	font-size:17px;
}

.footer-contact__item--address strong{
	font-size:17px;
}

.footer-contact__bottom{
	margin-top:28px;
	padding-top:18px;
	border-top:1px solid rgba(0,0,0,0.06);
	text-align:center;
}

.footer-contact__bottom p{
	margin:0;
	font-size:14px;
	line-height:1.6;
	color:#6a6a72;
}

/* LARGE DESKTOP */
@media (min-width: 1400px){
	.footer-contact__inner{
		grid-template-columns:minmax(320px, 460px) minmax(0, 1fr);
		gap:56px;
	}

	.footer-contact__info{
		gap:18px;
	}

	.footer-contact__item{
		padding:20px 22px;
	}
}

/* TABLET / SMALL DESKTOP */
@media (max-width: 1199px){
	.footer-contact{
		padding:42px 0 30px;
	}

	.footer-contact__inner{
		grid-template-columns:1fr;
		gap:28px;
	}

	.footer-contact__brand{
		padding-right:0;
		text-align:center;
	}

	.footer-contact__logo img{
		margin:0 auto;
	}

	.footer-contact__brand p{
		margin:0 auto;
		max-width:680px;
	}

	.footer-contact__info{
		justify-content:center;
	}
}

/* TABLET */
@media (max-width: 991px){
	.footer-contact__brand h3{
		font-size:30px;
	}

	.footer-contact__brand p{
		font-size:15px;
		line-height:1.65;
	}

	.footer-contact__info{
		flex-direction:column;
		align-items:stretch;
	}

	.footer-contact__item{
		width:100%;
		justify-content:flex-start;
		min-height:88px;
		padding:16px 18px;
	}

	.footer-contact__item-text strong{
		font-size:16px;
	}
}

/* MOBILE */
@media (max-width: 640px){
	.footer-contact{
		padding:30px 0 24px;
	}

	.footer-contact__inner{
		gap:22px;
	}

	.footer-contact__brand h3{
		font-size:26px;
	}

	.footer-contact__brand p{
		font-size:14px;
		line-height:1.6;
	}

	.footer-contact__item{
		gap:12px;
		padding:15px 14px;
		border-radius:18px;
		min-height:82px;
		overflow-x:auto;
		-webkit-overflow-scrolling:touch;
	}

	.footer-contact__item-icon{
		flex:0 0 40px;
		width:40px;
		height:40px;
		font-size:16px;
	}

	.footer-contact__item-text span{
		font-size:11px;
		margin-bottom:3px;
	}

	.footer-contact__item-text strong{
		font-size:15px;
		white-space:nowrap;
	}

	.footer-contact__bottom{
		margin-top:20px;
		padding-top:15px;
	}

	.footer-contact__bottom p{
		font-size:13px;
	}
}

















/* ==========================================
   TYPOGRAPHY SYSTEM
========================================== */

:root{
	--fs-display: clamp(2.4rem, 5vw, 4.4rem);   /* nagy cím */
	--fs-title: clamp(1.6rem, 3vw, 2.6rem);     /* kisebb cím */
	--fs-body: clamp(1rem, 1.2vw, 1.15rem);     /* normál szöveg */
	--fs-menu: clamp(0.85rem, 0.9vw, 0.95rem);  /* menü */

	--lh-tight: 1.1;
	--lh-title: 1.2;
	--lh-body: 1.6;

	--fw-bold: 700;
	--fw-heavy: 900;
}

/* alap elemek */
h1,
.typo-display{
	font-size: var(--fs-display);
	line-height: var(--lh-tight);
	font-weight: var(--fw-heavy);
	margin-bottom: 0.5em;
	letter-spacing:-0.03em;
}

h2,
.typo-title{
	font-size: var(--fs-title);
	line-height: var(--lh-title);
	font-weight: var(--fw-heavy);
	margin-bottom: 0.6em;
	letter-spacing:-0.03em;
}

p,
.typo-body{
	font-size: var(--fs-body);
	line-height: var(--lh-body);
	font-weight: 400;
}

.menu a,
.typo-menu{
	font-size: var(--fs-menu);
	line-height: 1.2;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}