/* Elementor pages: let the theme's classes work on Elementor widget markup. */

/* Elementor content spans the full width; its sections handle their own boxed width and padding. */
.elementor-page .wp-block-post-content.has-global-padding { padding-left: 0; padding-right: 0; }
.elementor-page .wp-block-post-content > .elementor { max-width: none; }

/* Paragraph spacing inside text widgets. */
.elementor-widget-text-editor > :last-child,
.elementor-widget-text-editor > * > :last-child { margin-bottom: 0; }
.elementor-widget-text-editor p:first-child { margin-top: 0; }

/* Elementor removes link underlines; keep the theme's underlined links in body text. */
.elementor-widget-text-editor a:not(.elementor-button) { text-decoration: underline; }

/* Elementor buttons take the theme button style (theme.json elements.button). Per-widget
   colours set in Elementor still win, since they use a more specific selector. */
.elementor .elementor-button {
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
	border-radius: 0;
	padding: .95rem 1.75rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: .9375rem;
	font-weight: 500;
	letter-spacing: .04em;
	line-height: 1.2;
}
.elementor .elementor-button:hover,
.elementor .elementor-button:focus { background-color: var(--wp--preset--color--ink); color: var(--wp--preset--color--base); }

/* Visit strip: hairline above, and between columns on wide screens. */
.e-con.kalan-visit-strip { border-top: 1px solid var(--wp--preset--color--line); }
@media (min-width: 768px) { .e-con.kalan-divided { border-left: 1px solid var(--wp--preset--color--line); } }
@media (max-width: 767px) { .e-con.kalan-divided { border-top: 1px solid var(--wp--preset--color--line); padding-top: var(--wp--preset--spacing--50) !important; } }

/* Image widgets: theme ratios and captions. */
.elementor-widget-image[class*="kalan-ratio-"] img { width: 100%; }
.elementor-widget-image .widget-image-caption { margin-top: .6rem; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); text-align: left; }

/* Image Carousel: even slide heights (4:3 crops); slides open Elementor's lightbox. */
.elementor-image-carousel .swiper-slide-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.elementor-image-carousel a { cursor: zoom-in; }
