/* King of Remodeling widgets: behavior Pro handled in JS, plus new gallery/lightbox/form states. */

/* ---------- Nav menu: CSS-only submenus (Pro used jQuery SmartMenus) ---------- */
.elementor-nav-menu--main .elementor-nav-menu li { position: relative; }
.elementor-nav-menu--main .elementor-nav-menu > li > ul {
	display: block; top: 100%; left: 50%; z-index: 9998;
	min-width: 13em; width: max-content; max-width: 18em;
	padding: 8px 0; border-radius: 10px; overflow: hidden;
	background: #fff; box-shadow: 0 18px 40px -12px rgba(16, 42, 67, .35);
	opacity: 0; visibility: hidden; transform: translate(-50%, 8px);
	transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
.elementor-nav-menu--main .elementor-nav-menu > li:hover > ul,
.elementor-nav-menu--main .elementor-nav-menu > li:focus-within > ul {
	opacity: 1; visibility: visible; transform: translate(-50%, 0);
	transition: opacity .2s ease, transform .2s ease, visibility 0s;
}
.elementor-nav-menu--main .elementor-nav-menu ul a.elementor-sub-item {
	display: block; padding: 10px 20px; color: #102A43; background: transparent;
	font-size: 14px; text-align: left; white-space: nowrap; border-inline-start: 0;
	transition: background-color .15s ease, color .15s ease, padding .15s ease;
}
.elementor-nav-menu--main .elementor-nav-menu ul a.elementor-sub-item:hover,
.elementor-nav-menu--main .elementor-nav-menu ul a.elementor-sub-item:focus-visible,
.elementor-nav-menu--main .elementor-nav-menu ul a.elementor-sub-item-active {
	background: #F6F2EC; color: #B5562B; padding-left: 26px;
}
.elementor-nav-menu--main .sub-arrow { display: inline-flex; margin-left: 6px; transition: transform .2s ease; }
.elementor-nav-menu--main li:hover > a .sub-arrow { transform: rotate(180deg); }
.elementor-nav-menu--main .sub-arrow svg { width: .7em; height: .7em; fill: currentColor; }

/* Mobile dropdown */
.elementor-nav-menu--dropdown .elementor-nav-menu ul { display: none; }
.elementor-nav-menu--dropdown li.kor-open > ul { display: block; }
.elementor-nav-menu--dropdown .elementor-nav-menu a {
	display: flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 20px;
}
.elementor-nav-menu--dropdown .sub-arrow { display: inline-flex; padding: 6px; margin: -6px 0; cursor: pointer; }
.elementor-nav-menu--dropdown .sub-arrow svg { width: .8em; height: .8em; fill: currentColor; transition: transform .2s ease; }
.elementor-nav-menu--dropdown li.kor-open > a .sub-arrow svg { transform: rotate(180deg); }
.elementor-nav-menu--dropdown.elementor-nav-menu__container { box-shadow: 0 20px 40px -20px rgba(16, 42, 67, .45); }

/* ---------- Forms ---------- */
.kor-form .kor-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* Row spacing and field borders used to come from Pro's per-page CSS. */
.kor-form .elementor-form-fields-wrapper { row-gap: 14px; }
.kor-form .elementor-field-group { margin-bottom: 0; }
.kor-form .elementor-field-textual { border: 1px solid #E3DDD3; border-radius: 6px; }
.kor-form .elementor-field { transition: border-color .2s ease, box-shadow .2s ease; }
.kor-form .elementor-field:focus { outline: none; border-color: #B5562B !important; box-shadow: 0 0 0 3px rgba(181, 86, 43, .18); }
.kor-form--touched .elementor-field:invalid { border-color: #C0392B !important; }
.kor-form input[type="number"], .kor-form input[type="tel"] { -moz-appearance: textfield; }
.kor-form .elementor-button { transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.kor-form--sending .elementor-button { opacity: .75; cursor: progress; }
.kor-form__status:empty { display: none; }
.kor-form__status { width: 100%; margin-top: 14px; padding: 12px 16px; border-radius: 8px; font-size: 15px; line-height: 1.4; }
.kor-form__status.elementor-message-success { background: #E8F5EC; color: #1E6B3A; }
.kor-form__status.elementor-message-danger { background: #FDECEA; color: #A12A1E; }
.kor-form__status.elementor-message-info { background: #F6F2EC; color: #102A43; }
.kor-form__status.elementor-message::before { content: none; }

/* ---------- Gallery ---------- */
.kor-gallery { display: grid; grid-template-columns: repeat(var(--kor-cols, 3), minmax(0, 1fr)); gap: var(--kor-gap, 10px); }
.kor-gallery__item { margin: 0; overflow: hidden; border-radius: 6px; background: #E9E4DC; aspect-ratio: var(--kor-ratio, auto); }
.kor-gallery__item a { display: block; height: 100%; cursor: zoom-in; }
.kor-gallery__item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1), filter .3s ease; }
.kor-gallery__item:hover img { transform: scale(1.06); }
.kor-gallery--masonry { display: block; columns: var(--kor-cols, 2); column-gap: var(--kor-gap, 14px); max-width: 1200px; margin-inline: auto; padding-inline: 16px; }
.kor-gallery--masonry .kor-gallery__item { break-inside: avoid; margin-bottom: var(--kor-gap, 14px); border-radius: 12px; }
.kor-gallery--masonry .kor-gallery__item img { height: auto; }
@media (max-width: 1024px) { .kor-gallery { --kor-cols: var(--kor-cols-t); } }
@media (max-width: 767px) { .kor-gallery { --kor-cols: var(--kor-cols-m); } }
footer .kor-gallery__item { border-radius: 4px; }

/* Lightbox */
.kor-lb { padding: 0; border: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
.kor-lb::backdrop { background: rgba(10, 20, 34, .92); }
.kor-lb[open] { display: flex; align-items: center; justify-content: center; animation: kor-lb-in .25s ease; }
.kor-lb img { max-width: min(92vw, 1400px); max-height: 86vh; border-radius: 8px; box-shadow: 0 30px 60px rgba(0, 0, 0, .5); }
.kor-lb__btn { position: fixed; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; font-size: 30px; line-height: 1; cursor: pointer; transition: background-color .2s ease; }
.kor-lb__btn:hover, .kor-lb__btn:focus-visible { background: #B5562B; }
.kor-lb__close { top: 20px; right: 20px; }
.kor-lb__prev { left: 20px; top: 50%; transform: translateY(-50%); }
.kor-lb__next { right: 20px; top: 50%; transform: translateY(-50%); }
@keyframes kor-lb-in { from { opacity: 0; } to { opacity: 1; } }

/* ---------- Post cards (Pro sized thumbnails in JS; object-fit does it in CSS) ---------- */
.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img {
	top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;
	transform: none; transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.elementor-post__card:hover .elementor-post__thumbnail img { transform: scale(1.05); }

/* ---------- Single-slide "carousels" ---------- */
.kor-static-carousel .swiper-wrapper { display: block; height: 100%; }
.kor-static-carousel .swiper-slide { height: 100%; }
.kor-static-carousel .elementor-carousel-image { height: 100%; min-height: 320px; background-size: cover; background-position: center; border-radius: 8px; }

/* ---------- Profile card (link in bio) in brand colors ---------- */
.e-link-in-bio .e-link-in-bio__heading { color: #102A43; }
.e-link-in-bio .e-link-in-bio__description { color: #2E3A46; }
.e-link-in-bio .e-link-in-bio__cta.is-type-button { background-color: #B5562B; border-color: #B5562B; color: #fff; transition: background-color .2s ease, transform .2s ease; }
.e-link-in-bio .e-link-in-bio__cta.is-type-button:hover { background-color: #8F3F1D; transform: translateY(-2px); }
.e-link-in-bio .e-link-in-bio__icon-svg svg { fill: #102A43; transition: fill .2s ease; }
.e-link-in-bio .e-link-in-bio__icon-link:hover svg { fill: #B5562B; }
.e-link-in-bio .e-link-in-bio__identity-image-element { box-shadow: 0 0 0 4px #fff, 0 0 0 6px #B5562B; }

/* ---------- Site logo ---------- */
.elementor-widget-theme-site-logo img { width: auto; max-width: 100%; height: auto; }

@media (prefers-reduced-motion: reduce) {
	.kor-gallery__item img, .elementor-nav-menu--main .elementor-nav-menu > li > ul { transition: none; }
}
