/* Elementor compatibility layer: preserve Yahyou's visual system inside Elementor containers/widgets. */
.elementor, .elementor-page .site-main { width:100%; max-width:none; }
.elementor .e-con { box-sizing:border-box; }
.elementor .ye-page-content { width:100%; max-width:none; gap:0 !important; }
.elementor .e-con.container { width:min(calc(100% - 40px), var(--max)) !important; max-width:var(--max); margin-left:auto !important; margin-right:auto !important; }
.elementor .e-con.grid3 { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px !important; }
.elementor .e-con.grid4 { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:17px !important; }
.elementor .e-con.hero-grid { display:grid !important; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:48px !important; align-items:center; }
.elementor .e-con.page-hero-grid { display:grid !important; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:48px !important; align-items:center; }
.elementor .e-con.split { display:grid !important; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:55px !important; align-items:start; }
.elementor .e-con.stats { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); }
.elementor .e-con.visual-grid { display:grid !important; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:18px !important; }
.elementor .e-con.headrow { display:flex !important; flex-direction:row !important; justify-content:space-between; align-items:end; gap:32px !important; }
.elementor .e-con.actions { display:flex !important; flex-direction:row !important; flex-wrap:wrap; align-items:center; gap:12px !important; }
.elementor .e-con.nav { display:flex !important; flex-direction:row !important; align-items:center; justify-content:space-between; gap:20px !important; }
.elementor .e-con.footgrid { display:grid !important; grid-template-columns:1.3fr repeat(5,minmax(0,1fr)); gap:26px !important; }
.elementor .e-con.brand { display:flex !important; flex-direction:row !important; align-items:center; gap:11px !important; }
.elementor .elementor-widget { min-width:0; max-width:100%; }
.elementor .elementor-widget:not(:last-child) { margin-bottom:0; }
.elementor .elementor-widget-text-editor p:last-child { margin-bottom:0; }
.elementor .elementor-widget-text-editor p:first-child { margin-top:0; }
.elementor .elementor-widget-image img { max-width:100%; height:auto; }
.elementor .elementor-widget-button .elementor-button { font-family:Inter,ui-sans-serif,system-ui,sans-serif; }
.elementor .e-con.card { position:relative; }
.elementor .ye-card-overlay-widget { position:absolute; inset:0; z-index:5; }
.elementor .ye-card-overlay-widget .elementor-widget-container, .elementor .ye-card-overlay-widget .elementor-widget-html { width:100%; height:100%; }
.elementor .ye-card-cover-link { display:block; position:absolute; inset:0; z-index:2; color:transparent; }
.elementor .ye-card-cover-link .screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.elementor .ye-rich-html { width:100%; }
.elementor .ye-form-shortcode { width:100%; }
.ye-header-root, .ye-footer-root { width:100%; }
.ye-header-root .elementor-widget-html, .ye-footer-root .elementor-widget-html { margin:0; }
.ye-header-root .elementor-widget-text-editor, .ye-footer-root .elementor-widget-text-editor { margin:0; }
.ye-header-root .brand-logo { width:40px;height:40px; }
.ye-header-root .menu { margin:0; }
.ye-header-root .elementor-widget-html .menu { display:flex; }
.ye-header-root .elementor-widget-html .menu.open { display:flex; }
.ye-header-root .menu a { color:inherit; }
.ye-header-root .toggle { display:none; }
.ye-footer-root .footgrid { width:100%; }
.ye-footer-root .footbottom a { display:inline; }
.ye-quote-form .fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ye-quote-form .field { display:flex; flex-direction:column; gap:6px; }
.ye-quote-form .field.full { grid-column:1/-1; }
.ye-quote-form .field label { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.ye-quote-form input,.ye-quote-form select,.ye-quote-form textarea { width:100%; }
.ye-quote-form .status { margin-top:14px; padding:12px 14px; background:var(--s); border-left:4px solid var(--g); }
@media(max-width:1080px) {
  .elementor .e-con.grid4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .elementor .e-con.footgrid { grid-template-columns:1.2fr repeat(2,minmax(0,1fr)); }
  .elementor .e-con.footgrid>div:nth-child(4),.elementor .e-con.footgrid>div:nth-child(5),.elementor .e-con.footgrid>div:nth-child(6) { grid-column:auto; }
  .elementor .e-con.stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .elementor .e-con.hero-grid,.elementor .e-con.page-hero-grid,.elementor .e-con.split { grid-template-columns:minmax(0,1fr); }
  .ye-header-root .toggle { display:block; }
  .ye-header-root .elementor-widget-html .menu { display:none; position:absolute; top:77px; left:20px; right:20px; background:#fff; border:1px solid var(--l); padding:18px; flex-direction:column; align-items:stretch; box-shadow:0 18px 40px rgba(0,0,0,.08); }
  .ye-header-root .elementor-widget-html .menu.open { display:flex; }
}
@media(max-width:700px) {
  .elementor .e-con.grid3,.elementor .e-con.grid4,.elementor .e-con.stats,.elementor .e-con.fields { grid-template-columns:minmax(0,1fr) !important; }
  .elementor .e-con.headrow { display:block !important; }
  .elementor .e-con.footgrid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .elementor .e-con.footgrid .footbrand { grid-column:1/-1; }
  .elementor .e-con.container { width:min(calc(100% - 28px), var(--max)) !important; }
  .ye-quote-form .fields { grid-template-columns:1fr; }
  .ye-quote-form .field.full { grid-column:auto; }
}
/* Typography and section styling safeguards when Elementor Kit styles are more specific than theme CSS. */
.elementor .hero h1,.elementor .page h1,.elementor h1.elementor-heading-title { font-family:Inter,ui-sans-serif,system-ui,sans-serif; }
.elementor .headrow h2,.elementor .prose h2,.elementor .band h2,.elementor h2.elementor-heading-title { font-family:Inter,ui-sans-serif,system-ui,sans-serif; }
.elementor .hero h1,.elementor .page h1 { font-size:clamp(46px,6.2vw,88px); font-weight:600; letter-spacing:-.06em; line-height:.98; margin:0 0 24px; }
.elementor .headrow h2 { font-size:clamp(32px,4.1vw,58px); line-height:1.02; letter-spacing:-.05em; font-weight:600; }
.elementor .prose h2 { font-size:clamp(28px,3vw,38px); line-height:1.08; letter-spacing:-.04em; font-weight:600; margin:0 0 14px; }
.elementor .hero p,.elementor .page p.lead { font-size:18px; max-width:760px; }
.elementor .elementor-widget-heading .elementor-heading-title { color:inherit; }
.elementor .elementor-widget-text-editor { color:inherit; }
.elementor .elementor-widget-button .elementor-button { border-radius:0; text-transform:none; letter-spacing:0; font-weight:600; }
.elementor .elementor-widget-button .elementor-button.btn.primary { background:var(--g); border-color:var(--g); color:#fff; }
.elementor .elementor-widget-button .elementor-button.btn.outline { background:transparent; border:1px solid #111; color:#111; }
.elementor .elementor-widget-button .elementor-button.btn.light { background:#fff; border:1px solid #fff; color:#000; }
.elementor .elementor-widget-button .elementor-button.btn.dark-outline { background:transparent; border:1px solid #fff; color:#fff; }
.elementor .e-con.card .elementor-widget-text-editor { position:relative; z-index:0; }
.ye-honeypot { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
@media(max-width:1080px) {
  .ye-header-root .nav>.e-con,.ye-header-root .nav>.elementor-element { width:auto !important; max-width:100%; flex:0 0 auto; }
  .ye-header-root .nav>.elementor-widget-html { width:auto !important; flex:0 0 auto; }
  .ye-header-root .nav>.e-con.brand { flex:1 1 auto; }
}
.ye-map-frame { width:100%; overflow:hidden; border:1px solid var(--l); background:var(--s); }
.ye-map-frame iframe { display:block; width:100%; min-height:360px; height:360px; border:0; }

/* v1.2.0: keep layout spacing from the Yahyou design system. Elementor Container settings
   can generate zero-valued padding variables; these targeted rules restore deliberate spacing
   without globally flattening every section. */
.elementor .e-con.hero { padding-block-start:88px !important; padding-block-end:76px !important; padding-inline:0 !important; }
.elementor .e-con.section { padding-block-start:88px !important; padding-block-end:88px !important; padding-inline:0 !important; }
.elementor .e-con.page { padding-block-start:58px !important; padding-block-end:54px !important; padding-inline:0 !important; }
.elementor .e-con.band { padding-block-start:48px !important; padding-block-end:48px !important; padding-inline:0 !important; }
.elementor .e-con.footer { padding-block-start:64px !important; padding-block-end:26px !important; padding-inline:0 !important; }
.elementor .e-con.form { padding:25px !important; }
.elementor .e-con.callout { padding:18px 20px !important; }
.elementor .e-con.hero-grid,.elementor .e-con.page-hero-grid,.elementor .e-con.split,
.elementor .e-con.grid3,.elementor .e-con.grid4,.elementor .e-con.visual-grid,
.elementor .e-con.stats,.elementor .e-con.footgrid { min-width:0; }
.elementor .e-con.hero > .e-con.container,
.elementor .e-con.section > .e-con.container,
.elementor .e-con.band > .e-con.container,
.elementor .e-con.footer > .e-con.container { width:min(calc(100% - 40px),var(--max)) !important; max-width:var(--max) !important; margin-inline:auto !important; }
.elementor .elementor-widget-heading .elementor-heading-title { color:inherit; }
.elementor .elementor-widget-text-editor { color:inherit; line-height:inherit; }
.elementor .elementor-widget-text-editor .prose > :first-child { margin-top:0; }
.elementor .elementor-widget-text-editor .prose > :last-child { margin-bottom:0; }
@media(max-width:1080px) {
  .elementor .e-con.hero { padding-block-start:64px !important; padding-block-end:58px !important; }
}
@media(max-width:700px) {
  .elementor .e-con.hero { padding-block-start:64px !important; padding-block-end:58px !important; }
  .elementor .e-con.section { padding-block-start:64px !important; padding-block-end:64px !important; }
  .elementor .e-con.page { padding-block-start:42px !important; padding-block-end:42px !important; }
  .elementor .e-con.band { padding-block-start:32px !important; padding-block-end:32px !important; }
  .elementor .e-con.footer { padding-block-start:48px !important; padding-block-end:22px !important; }
  .elementor .e-con.hero > .e-con.container,
  .elementor .e-con.section > .e-con.container,
  .elementor .e-con.band > .e-con.container,
  .elementor .e-con.footer > .e-con.container { width:min(calc(100% - 28px),var(--max)) !important; }
}

/* Containers created by the importer intentionally carry zero padding in Elementor data.
   Restore the padding that the matching Yahyou component class defines in site.css. */
.elementor .e-con.top > .e-con.container { padding-block-start:8px !important; padding-block-end:8px !important; padding-inline:0 !important; }
.elementor .e-con.card { padding-block:24px !important; padding-inline:24px !important; }
.elementor .e-con.stat { padding:24px !important; }
.elementor .e-con.form { padding:25px !important; }
.elementor .e-con.callout { padding-block:18px !important; padding-inline:20px !important; }


/* Product artwork is a real local image widget, never an empty placeholder. Keep SVGs fully visible in the product visual panel. */
.elementor .e-con.product-visual { min-height:185px; background:#080808; overflow:hidden; }
.elementor .e-con.product-visual .elementor-widget-image,
.elementor .e-con.product-visual .elementor-widget-container { width:100%; height:100%; }
.elementor .e-con.product-visual .elementor-widget-image img { display:block; width:100%; height:185px; max-height:185px; object-fit:contain; padding:12px 24px; background:#080808; }
.elementor .ye-map-iframe iframe { display:block; width:100%; max-width:100%; min-height:360px; height:360px; border:0; }
@media(max-width:700px) {
  .elementor .e-con.product-visual .elementor-widget-image img { height:165px; max-height:165px; padding:10px 16px; }
  .elementor .ye-map-iframe iframe { min-height:300px; height:300px; }
}
