/* Elementor pages: let the theme's classes and tokens 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. Per-widget colours set in Elementor still win,
   since they use a more specific selector. */
.elementor .elementor-button {
	background-color: var(--wp--preset--color--green);
	color: var(--wp--preset--color--on-accent, #fff);
	border-radius: var(--wp--custom--radius, 0);
	padding: .95rem 1.75rem;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 1.0625rem;
	font-weight: 800;
	line-height: 1.2;
}
.elementor .elementor-button:hover,
.elementor .elementor-button:focus { background-color: var(--wp--preset--color--green-deep); color: #fff; }

/* Hairline dividers between columns of a strip (class "is-divided" on the column containers). */
@media (min-width: 768px) { .e-con.is-divided { border-left: 1px solid var(--wp--preset--color--line); } }
@media (max-width: 767px) { .e-con.is-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 img { width: 100%; }
.elementor-widget-image.ratio-portrait img { aspect-ratio: 4 / 5; object-fit: cover; }
.elementor-widget-image.ratio-wide img { aspect-ratio: 3 / 2; object-fit: cover; }
.elementor-widget-image.ratio-square img { aspect-ratio: 1; object-fit: cover; }
.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; }

/* Hiyas: rounded photos, the green night bands and the hero. */
.elementor-widget-image.hy-photo img { aspect-ratio: 3 / 2; object-fit: cover; border-radius: 12px; }
.elementor-widget-image.hy-photo--tall img { aspect-ratio: 4 / 5; }
.elementor .elementor-button { border-radius: 8px; }
/* Night sections: Elementor's kit colours give way to the section's text colour.
   !important: Elementor writes each widget's colour into a per-widget rule that outranks any class. */
.elementor .hy-on-night .elementor-heading-title { color: #fff !important; }
.elementor .hy-on-night .elementor-widget-text-editor { color: inherit !important; }
.elementor .hy-on-night .hy-intro, .elementor .hy-on-night .hy-band-lead, .elementor .hy-on-night .elementor-widget-text-editor.hy-intro { color: var(--wp--preset--color--mint) !important; }
/* Section heading rows: Elementor stacks rows centred on phones; keep the left alignment. */
.elementor .e-con.hy-head-row, .elementor .e-con.hy-head-row > .e-con-inner { --justify-content: space-between; --align-items: flex-end; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; }
.elementor .e-con.hy-head-row .elementor-heading-title, .elementor .e-con.hy-head-row .elementor-widget-text-editor { text-align: left; }
/* Hero: split edge to edge; the text column lines up with the wide content edge. */
.elementor .hy-hero__text { padding: clamp(2.5rem, 6vw, 5rem) var(--wp--style--root--padding-left, 1.25rem) clamp(2.5rem, 6vw, 5rem) max(var(--wp--style--root--padding-left, 1.25rem), calc((100vw - 1200px) / 2)) !important; }
.elementor .hy-hero__title .elementor-heading-title { font-size: clamp(2.5rem, 1.5rem + 3.2vw, 4.5rem) !important; line-height: 1.02 !important; letter-spacing: -.02em; max-width: 14ch; }
.elementor .hy-hero__lead p { max-width: 44ch; font-size: 1.25rem; color: var(--wp--preset--color--muted); }
.elementor .hy-page-band .elementor-heading-title { font-size: clamp(2.6rem, 1.8rem + 2.6vw, 4.5rem) !important; line-height: 1.04 !important; color: #fff !important; }
/* Hero photo fills its half; the hotlines card sits over the photo's lower left. */
.elementor .hy-hero__media { position: relative; min-height: min(78vh, 720px); }
.elementor .hy-hero__media > .elementor-widget-image, .elementor .hy-hero__media > .elementor-widget-image .elementor-widget-container { position: absolute; inset: 0; width: 100% !important; height: 100%; }
.elementor .hy-hero__img img { display: block; width: 100%; height: 100% !important; object-fit: cover; }
.elementor .hy-hero__media > .hy-hotcard { position: absolute; left: 2.5rem; bottom: 2.5rem; width: min(380px, 88%); z-index: 2; margin: 0; }
.elementor .hy-hotcard__title .elementor-heading-title { font-size: 1.25rem !important; }
@media (max-width: 1024px) {
	.elementor .hy-hero__media { min-height: 0; }
	.elementor .hy-hero__media > .elementor-widget-image, .elementor .hy-hero__media > .elementor-widget-image .elementor-widget-container { position: static; }
	.elementor .hy-hero__img img { height: auto !important; aspect-ratio: 4 / 3; }
	.elementor .hy-hero__media > .hy-hotcard { position: relative; left: auto; bottom: auto; width: auto; margin: -4rem var(--wp--style--root--padding-left, 1.25rem) 2rem; }
}
