/* ===== WordPress / Elementor adaptation (appended to the original site.css) ===== */

/* Theme Builder header: sticky like the original .site-header */
.elementor-location-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .elementor-location-header { top: 46px; } }
.elementor-location-header .site-header { position: static; }
.elementor-location-header .elementor-widget-shortcode,
.elementor-location-footer .elementor-widget-shortcode { width: 100%; }

/* Elementor resets heading margins and line height; restore the original rhythm */
.elementor-widget-heading .elementor-heading-title { font-family: var(--head); line-height: 1.12; letter-spacing: .01em; text-transform: uppercase; font-weight: 700; margin: 0 0 .5em; color: inherit; }
.elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2.2rem, 5.6vw, 4.1rem); }
.elementor-widget-heading h2.elementor-heading-title { font-size: clamp(1.7rem, 3.6vw, 2.5rem); }
.elementor-widget-heading h3.elementor-heading-title { font-size: 1.3rem; }
.elementor-widget-text-editor { color: inherit; }

/* kicker = small orange label above headings */
.elementor-widget-heading.kicker .elementor-heading-title { font: 700 .85rem/1 var(--head); letter-spacing: .16em; text-transform: uppercase; color: var(--orange-text); margin-bottom: 14px; }
.dark .elementor-widget-heading.kicker .elementor-heading-title,
.hero .elementor-widget-heading.kicker .elementor-heading-title { color: var(--orange); }

/* lead paragraphs */
.elementor-widget.lead { font-size: 1.15rem; color: var(--muted); max-width: 62ch; }
.dark .elementor-widget.lead { color: #cdbfb1; }
.elementor-widget.lead.prose { max-width: 72ch; }

/* sections built as Elementor containers */
.e-con.section { --padding-top: clamp(48px, 8vw, 96px); --padding-bottom: clamp(48px, 8vw, 96px); }
.e-con.section.dark { background: var(--ink); color: #f4ece3; }
.e-con.section.dark .elementor-heading-title { color: #fff; }
.e-con.wrapx { --padding-left: 20px; --padding-right: 20px; }

/* hero */
.e-con.hero { --padding-top: clamp(56px, 9vw, 112px); --padding-bottom: clamp(56px, 9vw, 112px); background-color: var(--ink); color: #f4ece3; overflow: hidden; }
.e-con.hero.has-bg { min-height: clamp(480px, 62vh, 720px); justify-content: center; }
.e-con.hero > .e-con-inner { position: relative; z-index: 2; }
.e-con.hero > .e-con-inner > .e-con, .e-con.hero > .e-con-inner > .elementor-widget { max-width: 860px; }
.e-con.hero .elementor-heading-title { color: #fff; }
.e-con.hero .elementor-widget.lead { color: #d8cabb; font-size: 1.22rem; margin-bottom: 28px; max-width: 62ch; }
.e-con.hero::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, transparent 0 38px, rgba(208, 117, 51, .07) 38px 40px); pointer-events: none; z-index: 1; }
.e-con.hero.has-bg::before { background: linear-gradient(90deg, rgba(11, 6, 2, .88) 0%, rgba(11, 6, 2, .72) 45%, rgba(11, 6, 2, .35) 100%); }
/* Elementor's own background overlay is not used; the gradient above replaces it */
.e-con.hero.has-bg { background-size: cover; background-position: center; }

/* page head (inner pages) */
.e-con.page-head { --padding-top: clamp(40px, 6vw, 72px); --padding-bottom: clamp(40px, 6vw, 72px); background: var(--ink); color: #f4ece3; border-bottom: 6px solid var(--orange); }
.e-con.page-head h1.elementor-heading-title { color: #fff; font-size: clamp(2rem, 5vw, 3.2rem); margin-bottom: .3em; }
.e-con.page-head .elementor-widget.lead, .e-con.page-head .lead { color: #d0c2b4; margin: 0; }

/* button rows and buttons rendered by Elementor */
.e-con.btns { flex-direction: row; flex-wrap: wrap; gap: 12px; --gap: 12px; }
.elementor-widget-button .elementor-button { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 48px; padding: 12px 24px; border-radius: 6px; border: 2px solid var(--orange); background: var(--orange); color: var(--ink); font: 700 1rem/1.1 var(--head); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; transition: background .15s, color .15s, transform .15s; }
.elementor-widget-button .elementor-button:hover, .elementor-widget-button .elementor-button:focus { background: #e08440; border-color: #e08440; color: var(--ink); transform: translateY(-1px); }
.elementor-widget-button.ghost .elementor-button { background: transparent; color: var(--orange); }
.elementor-widget-button.ghost .elementor-button:hover { background: var(--orange); color: var(--ink); }
.elementor-widget-button.ghost-dark .elementor-button { background: transparent; color: var(--ink); border-color: var(--ink); }
.elementor-widget-button.ghost-dark .elementor-button:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.elementor-widget-button.sm .elementor-button { min-height: 40px; padding: 8px 16px; font-size: .9rem; }
.elementor-widget-button.on-orange .elementor-button { background: var(--ink); border-color: var(--ink); color: #fff; }
.elementor-widget-button.on-orange .elementor-button:hover { background: #2b1d10; border-color: #2b1d10; color: #fff; }

/* text links styled as "more →" */
.elementor-widget.more a { font-weight: 700; }

/* service blocks on the home page (Elementor containers) */
.e-con.svc-block { background: var(--ink-2); color: #f4ece3; border-radius: var(--radius); overflow: hidden; border-top: 6px solid var(--orange); --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.e-con.svc-block .img, .e-con.svc-block .elementor-widget-image { aspect-ratio: 16 / 7; background: repeating-linear-gradient(135deg, #1c140d 0 20px, #231a11 20px 40px); width: 100%; }
.e-con.svc-block .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; }
.e-con.svc-block .card-body { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 28px; --padding-right: 28px; flex-grow: 1; }
.e-con.svc-block h3.elementor-heading-title { font-size: 1.7rem; color: #fff; }
.e-con.svc-block .elementor-widget-text-editor { color: #cdbfb1; }
.e-con.svc-block .elementor-widget-button { margin-top: auto; }
.e-con.svc-block .elementor-widget-button .elementor-button { width: 100%; }

/* plain cards (Rólunk) */
.e-con.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; --padding-top: 22px; --padding-bottom: 22px; --padding-left: 22px; --padding-right: 22px; }
.e-con.card .elementor-widget-text-editor { color: var(--muted); }
.e-con.card .elementor-widget-button { margin-top: auto; }

/* grids */
.e-con.g2 > .e-con-inner, .e-con.g2:not(.e-con-boxed) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 640px) { .e-con.g2 > .e-con-inner, .e-con.g2:not(.e-con-boxed) { grid-template-columns: 1fr; } }

/* services page group heading */
.elementor-widget-heading.group-title .elementor-heading-title { border-left: 6px solid var(--orange); padding-left: 16px; }
.e-con.svc-group { margin-bottom: 56px; }

/* orange CTA band */
.e-con.cta-band { background: var(--orange); color: var(--ink); --padding-top: 48px; --padding-bottom: 48px; }
.e-con.cta-band > .e-con-inner { flex-direction: row; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }
.e-con.cta-band h2.elementor-heading-title { margin: 0 0 .2em; }
.e-con.cta-band .elementor-widget-text-editor p { margin: 0; max-width: 56ch; }

/* quote page */
.e-con.quote-grid > .e-con-inner { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: start; }
@media (max-width: 900px) { .e-con.quote-grid > .e-con-inner { grid-template-columns: 1fr; } }

/* footer built in the Theme Builder */
.e-con.site-footer { --padding-top: 56px; --padding-bottom: 0; }
.e-con.foot-grid > .e-con-inner { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 36px; }
@media (max-width: 900px) { .e-con.foot-grid > .e-con-inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .e-con.foot-grid > .e-con-inner { grid-template-columns: 1fr; } }
.site-footer h2.elementor-heading-title { font-size: 1.05rem; color: #fff; letter-spacing: .12em; }
.site-footer .elementor-widget-text-editor { color: #cdbfb1; }
.site-footer .logo img { height: 44px; width: auto; margin-bottom: 16px; }

/* Elementor wraps shortcode output; keep full-bleed sections full width */
.elementor-widget-shortcode .elementor-shortcode > .section,
.elementor-widget-shortcode .elementor-shortcode > .facts { width: 100%; }
.e-con.bleed { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }

/* Hello Elementor adds a page title and padding on non-Elementor screens; keep the canvas clean */
.page-header .entry-title { display: none; }

/* Original section rules use the padding shorthand ("X 0"); on Elementor containers keep the per-side variables in charge */
.e-con.section, .e-con.hero, .e-con.page-head, .e-con.cta-band, .e-con.site-footer, .e-con.card, .e-con.svc-block, .e-con.card-body, .e-con.bleed {
  padding: var(--padding-top) var(--padding-right) var(--padding-bottom) var(--padding-left);
}
/* boxed containers: Elementor puts the block padding on .e-con-inner */
.e-con.e-con-boxed.section, .e-con.e-con-boxed.hero, .e-con.e-con-boxed.page-head, .e-con.e-con-boxed.cta-band, .e-con.e-con-boxed.site-footer {
  padding: 0 var(--padding-right) 0 var(--padding-left);
}
/* buttons on dark sections: the original ".section.dark a:not(.btn)" rule would paint the label orange */
.e-con.dark .elementor-widget-button .elementor-button, .e-con.hero .elementor-widget-button .elementor-button { color: var(--ink); }
.e-con.dark .elementor-widget-button.ghost .elementor-button { color: var(--orange); }
.e-con.dark .elementor-widget-button.ghost .elementor-button:hover { color: var(--ink); }
.e-con.section.nopt { --padding-top: 0; }
.e-con.mt24 { margin-top: 24px; }
.e-con.mt28 { margin-top: 28px; }
.e-con.mt48 { margin-top: 48px; }
.elementor-widget.mb24 { margin-bottom: 24px; }
.e-con.svc-group { scroll-margin-top: 100px; }
.elementor-widget.prose { max-width: 72ch; }

/* Elementor caps widgets at 100% with a stronger selector; restore the original measure */
.e-con > .e-con-inner > .elementor-widget.lead, .e-con > .elementor-widget.lead { max-width: 62ch; }
.e-con > .e-con-inner > .elementor-widget.prose, .e-con > .elementor-widget.prose { max-width: 72ch; }
.e-con.cta-band .elementor-widget-text-editor p { margin: 0; }
.elementor-widget-text-editor a:not(.btn) { text-decoration: underline; }
.elementor-widget-text-editor .more { font-weight: 700; }
/* the original .quote-grid rule would turn the outer container into a grid; the grid belongs on .e-con-inner */
.e-con.quote-grid { display: var(--display); grid-template-columns: none; }
