/* V0.2.7 — Anti-flash de tipografia.
   Quando a fonte H1-H6/Body não puder ser resolvida no servidor, o bloco
   ocupa o mesmo espaço, mas só fica visível após o JS copiar a tipografia
   computada. Isso elimina o salto visual de fonte sem gerar layout shift. */
[data-kem-typography].kem-typography-pending{visibility:hidden!important}
[data-kem-typography].kem-typography-ready{visibility:visible!important}

/* =========================================================
   Kehl Elegant Menu — Menu desktop
   ========================================================= */
.kem-menu{
	width:100%;
	background:var(--kem-bg,transparent);
	color:var(--kem-text,#fff);
	font-family:var(--kem-font-family,inherit);
	font-style:var(--kem-font-style,normal);
	font-size:var(--kem-size,18px)!important;
	font-weight:var(--kem-resolved-weight,var(--kem-weight,500))!important;
	letter-spacing:var(--kem-letter,0);
	text-transform:var(--kem-transform,none);
	line-height:var(--kem-line-height,1.2);
}
.kem-menu,
.kem-menu *{box-sizing:border-box}
.kem-menu ul,
.kem-menu ol,
.kem-menu li{
	margin:0!important;
	padding:0!important;
	list-style:none!important;
}
.kem-menu li::marker{content:""!important;font-size:0!important}
.kem-menu__list{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:var(--kem-align,center);
	gap:var(--kem-gap,38px);
	margin:0!important;
	padding:0!important;
	list-style:none!important;
}
.kem-menu__item{position:relative}
.kem-menu__link{
	position:relative;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:42px;
	padding:4px 0;
	border:0!important;
	border-radius:0!important;
	color:var(--kem-text,#fff)!important;
	background:transparent!important;
	box-shadow:none!important;
	text-decoration:none!important;
	font-family:inherit!important;
	font-style:inherit!important;
	font-size:inherit!important;
	font-weight:inherit!important;
	line-height:inherit!important;
	letter-spacing:inherit!important;
	text-transform:inherit!important;
	transition:color .28s ease,transform .28s ease,background-color .28s ease;
	-webkit-tap-highlight-color:transparent;
}
.kem-menu__link span{
	font:inherit!important;
	letter-spacing:inherit!important;
	text-transform:inherit!important;
}
.kem-menu__link:hover,
.kem-menu__link:focus-visible{color:var(--kem-hover,#d3b47b)!important}
.kem-menu__item.is-active>.kem-menu__link{color:var(--kem-active,#d3b47b)!important}
.kem-menu__link:focus-visible{outline:1px solid var(--kem-accent,#d3b47b);outline-offset:5px}

/* Efeitos do desktop. */
.kem-effect-underline-center .kem-menu__link::after{
	content:"";
	position:absolute;
	left:50%;
	bottom:1px;
	width:0;
	height:1px;
	background:var(--kem-accent,#d3b47b);
	transform:translateX(-50%);
	transition:width .3s ease;
}
.kem-effect-underline-center .kem-menu__link:hover::after,
.kem-effect-underline-center .kem-menu__link:focus-visible::after,
.kem-effect-underline-center .is-active .kem-menu__link::after{width:26px}

.kem-effect-underline-slide .kem-menu__link::after{
	content:"";
	position:absolute;
	left:0;
	bottom:1px;
	width:100%;
	height:1px;
	background:var(--kem-accent,#d3b47b);
	transform:scaleX(0);
	transform-origin:right center;
	transition:transform .3s ease;
}
.kem-effect-underline-slide .kem-menu__link:hover::after,
.kem-effect-underline-slide .kem-menu__link:focus-visible::after,
.kem-effect-underline-slide .is-active .kem-menu__link::after{
	transform:scaleX(1);
	transform-origin:left center;
}
.kem-effect-fade-lift .kem-menu__link:hover,
.kem-effect-fade-lift .kem-menu__link:focus-visible{transform:translateY(-3px)}

.kem-effect-soft-background .kem-menu__link{padding:9px 14px;border-radius:5px!important}
.kem-effect-soft-background .kem-menu__link:hover,
.kem-effect-soft-background .kem-menu__link:focus-visible,
.kem-effect-soft-background .is-active .kem-menu__link{background:rgba(211,180,123,.13)!important}

.kem-effect-brackets .kem-menu__link::before,
.kem-effect-brackets .kem-menu__link::after{
	position:absolute;
	top:50%;
	color:var(--kem-accent,#d3b47b);
	opacity:0;
	transform:translateY(-52%);
	transition:opacity .25s ease,transform .25s ease;
}
.kem-effect-brackets .kem-menu__link::before{content:"[";left:-2px}
.kem-effect-brackets .kem-menu__link::after{content:"]";right:-2px}
.kem-effect-brackets .kem-menu__link:hover::before,
.kem-effect-brackets .kem-menu__link:focus-visible::before,
.kem-effect-brackets .is-active .kem-menu__link::before{opacity:1;transform:translate(-6px,-52%)}
.kem-effect-brackets .kem-menu__link:hover::after,
.kem-effect-brackets .kem-menu__link:focus-visible::after,
.kem-effect-brackets .is-active .kem-menu__link::after{opacity:1;transform:translate(6px,-52%)}

.kem-empty{padding:12px 16px;border:1px dashed #c7c7c7;border-radius:5px;font-size:14px}

/* =========================================================
   Kehl Elegant Menu — Sidebar mobile
   ========================================================= */
.kem-mobile-menu,
.kem-mobile-menu *,
.kem-mobile-overlay,
.kem-mobile-drawer,
.kem-mobile-drawer *{box-sizing:border-box}

.kem-mobile-menu{position:relative;z-index:2147483600}

.kem-mobile-toggle{
	position:relative;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:44px;
	height:44px;
	margin:0;
	padding:0!important;
	border:0!important;
	border-radius:0!important;
	color:var(--kem-trigger-color,#fff)!important;
	background:transparent!important;
	box-shadow:none!important;
	cursor:pointer;
	-webkit-appearance:none;
	appearance:none;
	-webkit-tap-highlight-color:transparent;
}
.kem-mobile-toggle:hover,
.kem-mobile-toggle:focus-visible{
	color:var(--kem-trigger-hover,#d3b47b)!important;
	background:transparent!important;
}
.kem-mobile-toggle:focus-visible{outline:1px solid currentColor;outline-offset:4px}

.kem-mobile-toggle__lines{
	display:flex;
	flex-direction:column;
	align-items:stretch;
	justify-content:center;
	gap:calc(var(--kem-trigger-line,2px) * 2.6);
	width:var(--kem-trigger-size,30px);
	height:var(--kem-trigger-size,30px);
}
.kem-mobile-toggle__lines>span{
	display:block;
	width:100%;
	height:var(--kem-trigger-line,2px);
	border-radius:999px;
	background:currentColor;
	transform-origin:center;
	transition:transform .32s cubic-bezier(.22,.75,.25,1),opacity .2s ease,width .28s ease;
}
.kem-mobile-toggle__lines>span:nth-child(2){width:72%;margin-left:auto}
.kem-mobile-toggle:hover .kem-mobile-toggle__lines>span:nth-child(2){width:100%}


.kem-mobile-overlay,
.kem-mobile-drawer{
	margin:0!important;
	padding:0;
	border:0;
	max-height:none!important;
	transform-style:flat;
	isolation:isolate;
}
.kem-mobile-overlay{
	position:fixed;
	z-index:2147483645;
	inset:0;
	background:var(--kem-drawer-overlay,rgba(17,24,20,.58));
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:opacity .38s ease,visibility .38s ease;
	backdrop-filter:blur(2px);
	-webkit-backdrop-filter:blur(2px);
}

.kem-mobile-drawer{
	position:fixed;
	z-index:2147483646;
	top:0;
	bottom:0;
	width:min(var(--kem-drawer-width-tablet,390px),calc(100vw - 20px));
	max-width:100%;
	color:var(--kem-drawer-text,#fff);
	background:var(--kem-drawer-bg,#304f39);
	visibility:hidden;
	overflow:hidden;
	box-shadow:0 0 50px rgba(0,0,0,.2);
	transition:transform .52s cubic-bezier(.22,.75,.25,1),visibility .52s ease;
}
.kem-mobile-menu--right .kem-mobile-drawer,
.kem-mobile-drawer--right{
	right:0;
	border-radius:5px 0 0 5px;
	transform:translate3d(104%,0,0);
}
.kem-mobile-menu--left .kem-mobile-drawer,
.kem-mobile-drawer--left{
	left:0;
	border-radius:0 5px 5px 0;
	transform:translate3d(-104%,0,0);
}

.kem-mobile-menu.is-open .kem-mobile-overlay,
.kem-mobile-overlay.is-open{
	opacity:1;
	visibility:visible;
	pointer-events:auto;
}
.kem-mobile-menu.is-open .kem-mobile-drawer,
.kem-mobile-drawer.is-open{
	visibility:visible;
	transform:translate3d(0,0,0);
}

.kem-mobile-drawer__inner{
	position:relative;
	display:flex;
	flex-direction:column;
	min-height:100%;
	height:100%;
	padding:clamp(24px,6vw,38px);
	overflow-y:auto;
	overscroll-behavior:contain;
}
.kem-mobile-drawer__inner::before{
	content:"";
	position:absolute;
	top:0;
	left:clamp(24px,6vw,38px);
	width:64px;
	height:2px;
	background:var(--kem-drawer-accent,#d3b47b);
}

.kem-mobile-drawer__header{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
	min-height:56px;
	margin-bottom:clamp(38px,8vh,72px);
}
.kem-mobile-drawer__brand{
	display:flex;
	align-items:center;
	min-width:0;
}
.kem-mobile-drawer__brand img{
	display:block;
	width:min(var(--kem-logo-width,180px),58vw);
	max-width:100%;
	height:auto;
	max-height:var(--kem-logo-max-height,80px);
	object-fit:contain;
	object-position:left center;
}
.kem-mobile-drawer__eyebrow{
	font-size:11px;
	font-weight:700;
	letter-spacing:.24em;
	text-transform:uppercase;
	color:var(--kem-drawer-accent,#d3b47b);
}

.kem-mobile-close{
	position:relative;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex:0 0 44px;
	width:44px;
	height:44px;
	margin:0;
	padding:0!important;
	border:0!important;
	border-radius:0!important;
	color:var(--kem-drawer-text,#fff)!important;
	background:transparent!important;
	box-shadow:none!important;
	cursor:pointer;
	-webkit-appearance:none;
	appearance:none;
}
.kem-mobile-close:hover,
.kem-mobile-close:focus-visible{
	color:var(--kem-drawer-hover,#d3b47b)!important;
	background:transparent!important;
}
.kem-mobile-close:focus-visible{outline:1px solid currentColor;outline-offset:3px}
.kem-mobile-close::before,
.kem-mobile-close::after{
	content:"";
	position:absolute;
	width:26px;
	height:1.5px;
	border-radius:999px;
	background:currentColor;
}
.kem-mobile-close::before{transform:rotate(45deg)}
.kem-mobile-close::after{transform:rotate(-45deg)}

.kem-mobile-nav{
	flex:1 0 auto;
	display:flex;
	align-items:center;
}
.kem-mobile-nav ul,
.kem-mobile-nav li{
	margin:0!important;
	padding:0!important;
	list-style:none!important;
}
.kem-mobile-nav li::marker{content:""!important;font-size:0!important}
.kem-mobile-nav__list{
	display:flex;
	flex-direction:column;
	width:100%;
	gap:var(--kem-drawer-gap,6px);
}
.kem-mobile-nav__item{
	position:relative;
	overflow:hidden;
}
.kem-mobile-nav__item::before{
	content:"";
	position:absolute;
	left:0;
	top:50%;
	width:0;
	height:1px;
	background:var(--kem-drawer-accent,#d3b47b);
	transform:translateY(-50%);
	transition:width .3s ease;
}
.kem-mobile-nav__link{
	position:relative;
	display:flex;
	align-items:center;
	width:100%;
	padding:13px 0;
	border:0!important;
	border-radius:0!important;
	color:var(--kem-drawer-text,#fff)!important;
	background:transparent!important;
	box-shadow:none!important;
	text-decoration:none!important;
	font-family:var(--kem-font-family,inherit)!important;
	font-style:var(--kem-font-style,normal)!important;
	font-size:var(--kem-drawer-size,24px)!important;
	font-weight:var(--kem-resolved-weight,var(--kem-drawer-weight,400))!important;
	letter-spacing:var(--kem-drawer-letter,0)!important;
	line-height:var(--kem-line-height,1.25)!important;
	text-transform:var(--kem-drawer-transform,none)!important;
	transition:color .28s ease,transform .32s cubic-bezier(.22,.75,.25,1),padding .32s cubic-bezier(.22,.75,.25,1);
}
.kem-mobile-nav__label{
	display:block;
	min-width:0;
	font:inherit!important;
	letter-spacing:inherit!important;
	text-transform:inherit!important;
}
.kem-mobile-nav__link:hover,
.kem-mobile-nav__link:focus-visible{
	padding-left:15px;
	color:var(--kem-drawer-hover,#d3b47b)!important;
}
.kem-mobile-nav__link:focus-visible{outline:1px solid var(--kem-drawer-accent,#d3b47b);outline-offset:4px}
.kem-mobile-nav__item:hover::before,
.kem-mobile-nav__item:focus-within::before,
.kem-mobile-nav__item.is-active::before{width:8px}
.kem-mobile-nav__item.is-active .kem-mobile-nav__link{
	padding-left:15px;
	color:var(--kem-drawer-active,#d3b47b)!important;
}

.kem-mobile-menu--dividers .kem-mobile-nav__item:not(:last-child){
	border-bottom:1px solid color-mix(in srgb,var(--kem-drawer-text,#fff) 13%,transparent);
}

.kem-mobile-drawer__footer{
	flex:0 0 auto;
	margin-top:clamp(38px,8vh,72px);
	padding-top:24px;
}
.kem-mobile-drawer__footer>span{
	display:block;
	width:42px;
	height:1px;
	margin-bottom:16px;
	background:var(--kem-drawer-accent,#d3b47b);
}
.kem-mobile-drawer__footer p{
	margin:0;
	color:color-mix(in srgb,var(--kem-drawer-text,#fff) 65%,transparent);
	font-size:12px;
	letter-spacing:.09em;
	line-height:1.5;
}

html.kem-drawer-lock,
body.kem-drawer-lock{overflow:hidden!important}

@media(max-width:480px){
	.kem-mobile-drawer{
		width:min(var(--kem-drawer-width-mobile,340px),calc(100vw - 12px));
	}
	.kem-mobile-drawer__inner{
		padding:24px 22px;
	}
	.kem-mobile-drawer__inner::before{left:22px}
}

@media(prefers-reduced-motion:reduce){
	.kem-menu *,
	.kem-menu *::before,
	.kem-menu *::after,
	.kem-mobile-menu *,
	.kem-mobile-menu *::before,
	.kem-mobile-menu *::after,
	.kem-mobile-drawer *,
	.kem-mobile-drawer *::before,
	.kem-mobile-drawer *::after,
	.kem-mobile-overlay{
		animation:none!important;
		transition:none!important;
		scroll-behavior:auto!important;
	}
}

/* V0.2.3 — Rodapé, tipografia e ícones sociais */
.kem-mobile-drawer__footer-line{
	display:block;
	width:42px;
	height:1px;
	margin-bottom:18px;
	background:var(--kem-drawer-accent,#d3b47b);
}
.kem-mobile-socials{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:var(--kem-social-gap,12px);
	margin-bottom:22px;
}
.kem-mobile-socials a{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:calc(var(--kem-social-size,20px) + 14px);
	height:calc(var(--kem-social-size,20px) + 14px);
	min-width:34px;
	min-height:34px;
	margin:0;
	padding:7px!important;
	border:0!important;
	border-radius:50%!important;
	color:var(--kem-social-color,#fff)!important;
	background:transparent!important;
	box-shadow:none!important;
	text-decoration:none!important;
	line-height:1!important;
	transition:color .25s ease,transform .25s ease,background-color .25s ease;
}
.kem-mobile-socials a:hover,
.kem-mobile-socials a:focus-visible{
	color:var(--kem-social-hover,#d3b47b)!important;
	background:color-mix(in srgb,var(--kem-social-hover,#d3b47b) 10%,transparent)!important;
	transform:translateY(-2px);
}
.kem-mobile-socials a:focus-visible{outline:1px solid currentColor;outline-offset:3px}
.kem-mobile-socials svg{
	display:block;
	flex:0 0 auto;
	width:var(--kem-social-size,20px);
	height:var(--kem-social-size,20px);
	overflow:visible;
}
.kem-mobile-socials svg *{vector-effect:non-scaling-stroke}
.kem-mobile-institutional{
	display:flex;
	flex-direction:column;
	gap:5px;
	font-family:var(--kem-font-family,inherit);
	font-style:var(--kem-font-style,normal);
	line-height:var(--kem-line-height,1.5);
}
.kem-mobile-institutional strong{
	display:block;
	margin:0;
	color:var(--kem-drawer-text,#fff);
	font-family:inherit!important;
	font-style:inherit!important;
	font-size:var(--kem-footer-hotel-size,15px)!important;
	font-weight:var(--kem-footer-hotel-weight,600)!important;
	letter-spacing:.04em;
	line-height:1.35!important;
}
.kem-mobile-institutional p{
	margin:0;
	color:color-mix(in srgb,var(--kem-drawer-text,#fff) 68%,transparent);
	font-family:inherit!important;
	font-style:inherit!important;
	font-weight:var(--kem-footer-info-weight,400)!important;
	line-height:1.5!important;
}
.kem-mobile-institutional__cnpj{
	font-size:var(--kem-footer-cnpj-size,11px)!important;
	letter-spacing:.08em;
}
.kem-mobile-institutional__text{
	font-size:var(--kem-footer-text-size,11px)!important;
	letter-spacing:.04em;
}

/* =========================================================
   V0.2.4 — Sidebar contida na altura visível, sem rolagem
   ========================================================= */
.kem-mobile-drawer{
	top:0;
	bottom:auto;
	height:100vh;
	height:100dvh;
	min-height:0!important;
	max-height:100vh!important;
	max-height:100dvh!important;
	overflow:hidden!important;
}

.kem-mobile-drawer__inner{
	display:grid;
	grid-template-rows:auto minmax(0,1fr) auto;
	width:100%;
	height:100%;
	min-height:0;
	max-height:100%;
	padding:
		clamp(18px,3.6dvh,38px)
		clamp(22px,6vw,38px);
	overflow:hidden!important;
	overscroll-behavior:none;
}

.kem-mobile-drawer__header{
	min-height:clamp(42px,7dvh,56px);
	margin-bottom:clamp(10px,3dvh,34px);
}

.kem-mobile-drawer__brand img{
	max-height:min(var(--kem-logo-max-height,80px),10dvh);
}

.kem-mobile-nav{
	min-height:0;
	height:100%;
	overflow:hidden;
}

.kem-mobile-nav__list{
	justify-content:center;
	max-height:100%;
	gap:clamp(0px,var(--kem-drawer-gap,6px),4dvh);
	overflow:hidden;
}

.kem-mobile-nav__link{
	padding:clamp(6px,1.35dvh,13px) 0;
	font-size:min(
		var(--kem-drawer-size,24px),
		clamp(15px,3.45dvh,24px)
	)!important;
	line-height:1.16!important;
}

.kem-mobile-drawer__footer{
	margin-top:clamp(10px,2.7dvh,28px);
	padding-top:clamp(10px,2.2dvh,20px);
	min-height:0;
	overflow:hidden;
}

.kem-mobile-drawer__footer-line{
	margin-bottom:clamp(8px,1.8dvh,16px);
}

.kem-mobile-socials{
	margin-bottom:clamp(8px,1.8dvh,18px);
}

.kem-mobile-institutional{
	gap:clamp(2px,.6dvh,5px);
}

/* Compactação extra para celulares com pouca altura útil. */
@media(max-height:760px){
	.kem-mobile-drawer__inner{
		padding:16px 20px;
	}
	.kem-mobile-drawer__inner::before{left:20px}
	.kem-mobile-drawer__header{
		min-height:40px;
		margin-bottom:8px;
	}
	.kem-mobile-drawer__brand img{
		max-height:min(var(--kem-logo-max-height,80px),48px,8dvh);
	}
	.kem-mobile-nav__link{
		padding:5px 0;
		line-height:1.12!important;
	}
	.kem-mobile-drawer__footer{
		margin-top:8px;
		padding-top:8px;
	}
	.kem-mobile-drawer__footer-line{
		margin-bottom:8px;
	}
	.kem-mobile-socials{
		margin-bottom:7px;
	}
	.kem-mobile-institutional{
		gap:2px;
	}
}

@media(max-height:600px){
	.kem-mobile-drawer__inner{
		padding-top:12px;
		padding-bottom:12px;
	}
	.kem-mobile-drawer__header{
		min-height:36px;
		margin-bottom:4px;
	}
	.kem-mobile-close{
		width:38px;
		height:38px;
		flex-basis:38px;
	}
	.kem-mobile-close::before,
	.kem-mobile-close::after{
		width:22px;
	}
	.kem-mobile-nav__link{
		padding:3px 0;
		font-size:min(var(--kem-drawer-size,24px),16px)!important;
	}
	.kem-mobile-drawer__footer{
		margin-top:5px;
		padding-top:5px;
	}
	.kem-mobile-drawer__footer-line{
		display:none;
	}
	.kem-mobile-socials{
		margin-bottom:4px;
	}
}


/* =========================================================
   V0.2.6 — Visibilidade até tablet paisagem e larguras responsivas
   ========================================================= */
.kem-mobile-menu{align-items:center;justify-content:center}
.kem-mobile-drawer{width:min(var(--kem-drawer-width-tablet,390px),calc(100vw - 20px))}
