/* 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.has-global-padding > .alignfull { margin-left: 0 !important; margin-right: 0 !important; }
.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--amber);
	color: var(--wp--preset--color--ink);
	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: 700;
	line-height: 1.2;
}
.elementor .elementor-button:hover,
.elementor .elementor-button:focus { background-color: var(--wp--preset--color--amber-light); color: var(--wp--preset--color--ink); }

/* 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; }

/* Lakaw: photos, section heads, page heads, the hero and the closing band. */
.elementor-widget-image.lk-photo img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.elementor .elementor-button { border-radius: 6px; }
.elementor .lk-head .elementor-heading-title { font-size: clamp(1.9rem, 1.3rem + 2vw, 3rem) !important; }
.elementor .lk-intro p { max-width: 58ch; color: var(--wp--preset--color--muted); font-size: 1.125rem; }
/* The quiet "see all" button: asphalt outline. !important: Elementor writes button colours per widget. */
.elementor .lk-more .elementor-button { background: transparent !important; color: var(--wp--preset--color--ink) !important; border: 2px solid var(--wp--preset--color--ink); padding: calc(.95rem - 2px) calc(1.75rem - 2px); }
.elementor .lk-more .elementor-button:hover { background: var(--wp--preset--color--ink) !important; color: #fff !important; }
/* Page heads: the title and lead, then the lane line. */
.elementor .lk-page-head .elementor-heading-title { font-size: clamp(2.6rem, 1.6rem + 3.6vw, 4.75rem) !important; line-height: 1 !important; letter-spacing: -.035em; max-width: 18ch; }
.elementor .lk-page-head .lk-band-lead p { max-width: 56ch; color: var(--wp--preset--color--muted); }
.elementor .lk-page-head .lk-lane { margin-top: var(--wp--preset--spacing--40); }
.elementor .lk-panel { padding: 1.75rem !important; border: 1px solid var(--wp--preset--color--line); border-radius: 6px; background: #fff; }
/* Closing band on asphalt; the footer's lane line runs along its foot. */
.elementor .lk-ask .elementor-heading-title { color: #fff !important; max-width: 18ch; }
.elementor .lk-ask .lk-ask__lead, .elementor .lk-ask .lk-ask__lead p { max-width: 52ch; color: var(--wp--preset--color--lane) !important; font-size: 1.1875rem; }
/* Hero: the same grid as the pattern, on Elementor's inner box: headline, then the search, beside
   the photo with its key tag; on phones the search follows the headline and the photo comes last. */
.elementor .e-con.lk-hero > .e-con-inner { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: "text" "search" "media"; gap: 2rem; }
.elementor .e-con.lk-hero__text { grid-area: text; }
.elementor .e-con.lk-hero__search { grid-area: search; }
.elementor .e-con.lk-hero__media { grid-area: media; position: relative; }
@media (min-width: 1000px) {
	.elementor .e-con.lk-hero > .e-con-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); grid-template-areas: "text media" "search media"; column-gap: clamp(2rem, 5vw, 5rem); align-items: start; }
	.elementor .e-con.lk-hero__media { align-self: center; }
}
.elementor .lk-hero__title .elementor-heading-title { font-size: clamp(2.6rem, 1.4rem + 4.4vw, 5rem) !important; line-height: .98 !important; letter-spacing: -.035em; max-width: 13ch; }
.elementor .lk-hero__lead p { max-width: 46ch; font-size: 1.1875rem; color: var(--wp--preset--color--muted); }
.elementor .lk-hero__photo img { aspect-ratio: 4 / 3; height: auto !important; object-fit: cover; border-radius: 6px; }
/* Elementor h2 headings at the theme's h2 size (the kit sets the face, not the size). */
.elementor h2.elementor-heading-title { font-size: clamp(1.9rem, 1.3rem + 2vw, 3rem); font-weight: 800; }
