/* ============================================================
   OMELTD — Elementor bridge CSS (ID-based structural layout)
   Loaded after styles.css + home-extra.css on the front page.
   NB: Elementor 4.x strips _css_classes on nested containers, so
   structural layout is driven by _element_id selectors below.
   ============================================================ */

body.elementor-page { background: var(--deep-ocean); }

/* Sections (#hero #services #about-strip #news) get bg/padding from home-extra
   via their top-level ids; .cta-band class works at top level. Reset widget gaps. */
#hero .elementor-widget, #services .elementor-widget, #about-strip .elementor-widget,
#news .elementor-widget, .cta-band .elementor-widget { margin-bottom: 0; }
.elementor-heading-title { color: inherit; font: inherit; letter-spacing: inherit; line-height: inherit; margin: 0; }
/* Beat the Elementor global kit heading color (specificity .widget-heading .heading-title) */
#hero .elementor-heading-title, #services .elementor-heading-title,
#about-strip .elementor-heading-title, #news .elementor-heading-title,
.cta-band .elementor-heading-title { color: inherit; }

/* ── BUTTONS: native Elementor button -> design .btn ── */
.omel-btn .elementor-button, .omel-btn-outline .elementor-button,
.omel-btn-white .elementor-button, .omel-btn-outline-white .elementor-button {
  display:inline-flex; align-items:center; gap:8px; padding:13px 26px !important;
  font-family:var(--f-body); font-weight:600; font-size:13px; letter-spacing:.08em;
  text-transform:uppercase; border-radius:var(--r-sm); border:1.5px solid transparent;
  transition:var(--t); background:var(--teal) !important; color:var(--deep-ocean) !important;
}
.omel-btn .elementor-button:hover { background:var(--cyan) !important; transform:translateY(-2px); box-shadow:var(--shadow-teal); }
.omel-btn-outline .elementor-button { background:transparent !important; color:var(--wave-white) !important; border-color:rgba(255,255,255,.35) !important; }
.omel-btn-outline .elementor-button:hover { border-color:var(--teal) !important; color:var(--teal) !important; transform:translateY(-2px); }
.omel-btn-white .elementor-button { background:var(--white) !important; color:var(--deep-ocean) !important; }
.omel-btn-white .elementor-button:hover { background:var(--wave-white) !important; transform:translateY(-2px); }
.omel-btn-outline-white .elementor-button { background:transparent !important; color:var(--white) !important; border-color:rgba(255,255,255,.5) !important; }
.omel-btn-outline-white .elementor-button:hover { border-color:var(--white) !important; background:rgba(255,255,255,.08) !important; transform:translateY(-2px); }
.elementor-button-icon { display:none; }
.svc-cta-native .elementor-button { background:transparent !important; color:var(--teal) !important; padding:0 !important; border:none !important; font-weight:600; font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
.svc-cta-native .elementor-button:hover { background:transparent !important; color:var(--cyan) !important; transform:none; box-shadow:none; }

/* ── HERO ── */
#hero { display:flex; overflow:hidden;
  background: linear-gradient(160deg,rgba(10,22,40,0.94) 0%,rgba(10,22,40,0.72) 50%,rgba(0,80,100,0.62) 100%), url('https://omeltd.com/wp-content/uploads/2026/07/home-1-scaled.png') center/cover; }
#hero::before { content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background-image:linear-gradient(rgba(0,188,212,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(0,188,212,0.04) 1px,transparent 1px); background-size:64px 64px; }
#hero-content { max-width:1360px; margin:0 auto; padding:0 40px; width:100%; position:relative; z-index:2; display:flex; flex-direction:column; gap:0; align-items:flex-start; }
#hero-content .h-eyebrow { margin-bottom:24px; }
#hero-content .h-heading { margin-bottom:24px; }
#hero-content .h-sub { margin-bottom:40px; }
#h-ctas { display:flex; flex-direction:row; gap:16px; flex-wrap:wrap; align-items:center; width:auto; }

/* ── SERVICES ── */
#svc-wrap { max-width:1360px; margin:0 auto; padding:0 40px; width:100%; display:flex; flex-direction:column; gap:0; }
#svc-intro { max-width:580px; margin-bottom:56px; display:flex; flex-direction:column; gap:0; align-items:flex-start; }
#svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; margin-bottom:3px; }
[id^="svc-card-"] { background:var(--naval-blue); padding:36px 32px; display:flex; flex-direction:column; gap:0; align-items:flex-start; position:relative; overflow:hidden; transition:background var(--t); }
[id^="svc-card-"]::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--teal); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
[id^="svc-card-"]:hover { background:var(--steel-grey); }
[id^="svc-card-"]:hover::after { transform:scaleX(1); }
#svc-cta-row { display:flex; justify-content:center; margin-top:44px; }

/* ── ABOUT STRIP ── */
#about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
#about-content { display:flex; flex-direction:column; gap:0; align-items:flex-start; }
#about-content .section-eyebrow { margin-bottom:16px; }
#about-content .about-text .elementor-widget-container { color:var(--charcoal); font-size:16px; line-height:1.8; }
#about-content .about-text { margin-bottom:14px; }
#about-strip .section-title .elementor-heading-title { color:var(--charcoal); }
#about-content .omel-btn { margin-top:22px; }

/* ── NEWS ── */
#news-wrap { max-width:1360px; margin:0 auto; padding:0 40px; width:100%; display:flex; flex-direction:column; gap:0; }
#news-hd { display:flex; flex-direction:row; justify-content:space-between; align-items:flex-end; margin-bottom:48px; }
#news-hd-left { display:flex; flex-direction:column; gap:0; align-items:flex-start; }
#news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
[id^="ncard-"] { background:var(--white); border-radius:var(--r-md); overflow:hidden; box-shadow:0 2px 14px rgba(0,0,0,.06); display:flex; flex-direction:column; gap:0; transition:transform var(--t),box-shadow var(--t); }
[id^="ncard-"]:hover { transform:translateY(-5px); box-shadow:0 12px 40px rgba(0,0,0,.12); }
[id^="nbody-"] { padding:22px; display:flex; flex-direction:column; gap:0; align-items:flex-start; }
[id^="nbody-"] .n-title .elementor-heading-title { color:var(--charcoal); }

/* ── CTA BAND ── */
.cta-band { text-align:center; }
#cta-inner { max-width:1360px; margin:0 auto; padding:0 40px; display:flex; flex-direction:column; align-items:center; gap:0; }
#cta-inner .section-eyebrow { margin-bottom:16px; }
#cta-inner .cta-band-title .elementor-heading-title { color:var(--white); }
#cta-inner .cta-band-title { margin-bottom:14px; }
#cta-buttons { display:flex; flex-direction:row; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:8px; }

/* ── RESPONSIVE ── */
@media(max-width:1024px){ #svc-grid{grid-template-columns:1fr 1fr;} #about-grid{grid-template-columns:1fr;gap:40px;} #news-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:768px){ #svc-grid,#news-grid{grid-template-columns:1fr;} #news-hd{flex-direction:column;gap:16px;align-items:flex-start;} #hero-content,#svc-wrap,#news-wrap,#cta-inner{padding:0 20px;} }
