/* King of Remodeling: sitewide polish (motion, hover, focus) on top of the Elementor kit. */
:root {
	--kor-navy: #102A43;
	--kor-ink: #2E3A46;
	--kor-terra: #B5562B;
	--kor-terra-dark: #8F3F1D;
	--kor-terra-light: #E9A27A;
	--kor-cream: #F6F2EC;
	--kor-ease: cubic-bezier(.2, .7, .2, 1);
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
::selection { background: var(--kor-terra); color: #fff; }

/* Visible, on-brand keyboard focus everywhere */
:focus-visible { outline: 3px solid var(--kor-terra-light); outline-offset: 3px; border-radius: 2px; }
.elementor-button:focus-visible { outline-color: var(--kor-navy); }

/* ---------- Buttons ---------- */
.elementor-button {
	transition: background-color .25s ease, color .25s ease, transform .25s var(--kor-ease), box-shadow .25s ease !important;
	will-change: transform;
}
.elementor-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px -10px rgba(181, 86, 43, .55);
}
.elementor-button:active { transform: translateY(0); box-shadow: none; }
.elementor-button .elementor-button-icon { transition: transform .25s var(--kor-ease); }
.elementor-button:hover .elementor-button-icon { transform: translateX(4px); }

/* ---------- Cards: icon boxes, process steps, CTA tiles ---------- */
[data-elementor-type="wp-page"] .elementor-widget-icon-box .elementor-icon { transition: transform .4s var(--kor-ease), background-color .3s ease, color .3s ease; }
[data-elementor-type="wp-page"] .elementor-widget-icon-box:hover .elementor-icon { transform: translateY(-4px) rotate(-6deg); }
[data-elementor-type="wp-page"] .e-con.e-child[class*="elementor-element"]:has(> .elementor-widget-icon-box),
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-icon-box) {
	transition: transform .35s var(--kor-ease), box-shadow .35s ease;
}
[data-elementor-type="wp-page"] .e-con.e-child[class*="elementor-element"]:has(> .elementor-widget-icon-box):hover,
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-icon-box):hover {
	transform: translateY(-6px);
	box-shadow: 0 22px 40px -22px rgba(16, 42, 67, .35);
}
.elementor-widget-call-to-action .elementor-cta { border-radius: 6px; overflow: hidden; }
.elementor-widget-call-to-action .elementor-cta__bg { transition: transform 1.2s var(--kor-ease) !important; }
.elementor-widget-call-to-action .elementor-cta__title { transition: transform .4s var(--kor-ease); }
.elementor-widget-call-to-action .elementor-cta:hover .elementor-cta__title { transform: translateY(-4px); }

/* Content photos: gentle zoom on hover (header/footer logos excluded) */
[data-elementor-type="wp-page"] .elementor-widget-image .elementor-widget-container,
[data-elementor-type="wp-page"] .elementor-widget-image:not(:has(.elementor-widget-container)) { overflow: hidden; }
[data-elementor-type="wp-page"] .elementor-widget-image img { transition: transform .8s var(--kor-ease); }
[data-elementor-type="wp-page"] .elementor-widget-image:hover img { transform: scale(1.04); }

/* Accordions / toggles */
.elementor-toggle .elementor-tab-title { transition: background-color .2s ease, color .2s ease; }
.elementor-toggle .elementor-tab-title:hover { color: var(--kor-terra); }
.elementor-toggle .elementor-tab-title.elementor-active { color: var(--kor-terra); }

/* Text links inside content */
[data-elementor-type="wp-page"] .elementor-widget-text-editor a:not(.elementor-button) {
	color: var(--kor-terra); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
	transition: color .2s ease, text-decoration-color .2s ease;
}
[data-elementor-type="wp-page"] .elementor-widget-text-editor a:not(.elementor-button):hover { color: var(--kor-terra-dark); }

/* Gallery page: replace the template kit's leftover blues with brand colors */
.elementor-2002 .elementor-element.elementor-element-dcb7131 .elementor-heading-title { color: var(--kor-navy); }
.elementor-2002 .elementor-element.elementor-element-67432f70 { color: var(--kor-ink); }

/* GTranslate switcher: use the site font instead of Arial */
.gt_float_switcher, .gt_float_switcher .gt-selected { font-family: "Poppins", system-ui, sans-serif !important; }
.gt_float_switcher { border-radius: 10px !important; box-shadow: 0 10px 30px -12px rgba(16, 42, 67, .4) !important; }

/* ---------- Scroll reveal (JS adds .kor-reveal only below the fold) ---------- */
.kor-reveal { opacity: 0; transform: translate3d(0, 28px, 0); }
.kor-reveal.is-in {
	opacity: 1; transform: none;
	transition: opacity .8s ease, transform .9s var(--kor-ease);
	transition-delay: var(--kor-delay, 0s);
}

/* Inner page titles rise in on load */
[data-elementor-type="wp-page"] h1.elementor-heading-title { animation: kor-rise .9s var(--kor-ease) both .1s; }
@keyframes kor-rise { from { opacity: 0; transform: translate3d(0, 24px, 0); } to { opacity: 1; transform: none; } }

/* ---------- Mobile tap-to-call ---------- */
.kor-call {
	position: fixed; right: 16px; bottom: 16px; z-index: 9990;
	display: none; align-items: center; gap: 8px;
	padding: 12px 18px 12px 14px; border-radius: 999px;
	background: var(--kor-terra); color: #fff !important; text-decoration: none;
	font: 600 15px/1 "Poppins", system-ui, sans-serif;
	box-shadow: 0 14px 30px -10px rgba(143, 63, 29, .7);
	transform: translateY(120%); transition: transform .4s var(--kor-ease), background-color .2s ease;
}
.kor-call svg { width: 18px; height: 18px; fill: currentColor; }
.kor-call.is-visible { transform: none; }
.kor-call:hover, .kor-call:focus-visible { background: var(--kor-terra-dark); }
.kor-call::after {
	content: ""; position: absolute; inset: 0; border-radius: inherit;
	box-shadow: 0 0 0 0 rgba(181, 86, 43, .6); animation: kor-pulse 2.4s ease-out 1s 3;
}
@keyframes kor-pulse { to { box-shadow: 0 0 0 16px rgba(181, 86, 43, 0); } }
@media (max-width: 767px) {
	.kor-call { display: inline-flex; }
	.gt_float_switcher { transform: scale(.9); transform-origin: left bottom; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.kor-reveal { opacity: 1; transform: none; }
}
