/* Orient Core front-end styles. Colours come from Elementor Site Settings (global colours). */
:root {
	--om-navy: var(--e-global-color-primary, #021636);
	--om-red: var(--e-global-color-secondary, #C72828);
	--om-text: var(--e-global-color-text, #2C2C2C);
	--om-yellow: var(--e-global-color-omyellow, #F2C302);
	--om-grey: var(--e-global-color-omgrey, #F7F7F7);
	--om-line: #E6E8EC;
	--om-topbar-h: 40px;
}

/* ---------- Header: top bar scrolls away, navigation sticks ---------- */
header#masthead { position: -webkit-sticky !important; position: sticky !important; top: calc(-1 * var(--om-topbar-h)); z-index: 990; }
.admin-bar #masthead { top: calc(32px - var(--om-topbar-h)); }
@media (max-width: 782px) { .admin-bar #masthead { top: calc(46px - var(--om-topbar-h)); } }
.om-topbar { min-height: var(--om-topbar-h); }
.om-topbar a { color: inherit; text-decoration: none; transition: color .2s; }
.om-topbar a:hover, .om-topbar a:focus { color: var(--om-yellow); }
.om-navbar { transition: box-shadow .3s ease; box-shadow: 0 1px 0 var(--om-line); }
.om-navbar.om-scrolled, #masthead.om-stuck .om-navbar { box-shadow: 0 6px 24px rgba(2, 22, 54, .08); }
.om-navbar .hfe-nav-menu .menu-item a.hfe-menu-item { position: relative; }
.om-navbar .hfe-nav-menu > .menu-item > a.hfe-menu-item::after { content: ""; position: absolute; left: 50%; right: 50%; bottom: 6px; height: 2px; background: var(--om-red); transition: left .25s, right .25s; }
.om-navbar .hfe-nav-menu > .menu-item > a.hfe-menu-item:hover::after,
.om-navbar .hfe-nav-menu > .current-menu-item > a.hfe-menu-item::after { left: 15px; right: 15px; }
@media (max-width: 1024px) { .om-navbar .hfe-nav-menu > .menu-item > a.hfe-menu-item::after { display: none; } }

/* ---------- Section titles ---------- */
.om-title-bar .elementor-heading-title::after { content: ""; display: block; width: 56px; height: 3px; margin-top: 16px; background: var(--om-red); }
.om-title-bar.om-center .elementor-heading-title::after { margin-left: auto; margin-right: auto; }
.om-title-bar.om-light .elementor-heading-title::after { background: var(--om-yellow); }

/* ---------- Hero ---------- */
.om-hero-panel { position: relative; overflow: hidden; }
.om-hero-panel::before, .om-hero-panel::after { content: ""; position: absolute; width: 72px; height: 48px; background-image: radial-gradient(rgba(255,255,255,.35) 1.4px, transparent 1.6px); background-size: 12px 12px; pointer-events: none; }
.om-hero-panel::before { top: 28px; left: 32px; }
.om-hero-panel::after { bottom: 28px; right: 32px; }
.om-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 30% center; }
.om-hero-photo, .om-hero-photo .elementor-widget-container { height: 100%; }
.om-service-list .elementor-icon-list-item { padding: 10px 0 !important; border-bottom: 1px solid rgba(255,255,255,.12); }
.om-service-list .elementor-icon-list-item:last-child { border-bottom: 0; }
.om-pill .elementor-button { transition: transform .2s, box-shadow .2s, background-color .2s; }
.om-pill .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0,0,0,.25); }

/* ---------- Who we are ---------- */
.om-frame { position: relative; }
.om-frame img { position: relative; z-index: 1; box-shadow: 0 24px 48px rgba(2, 22, 54, .18); }
.om-frame::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; border: 3px solid var(--om-red); z-index: 0; }
@media (max-width: 767px) { .om-frame::before { inset: 14px -10px -14px 10px; } }

/* ---------- Service cards ---------- */
.om-service-card { overflow: hidden; transition: transform .35s ease, box-shadow .35s ease; }
.om-service-card:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(2, 22, 54, .16) !important; }
.om-service-card .elementor-widget-image { overflow: hidden; }
.om-service-card .elementor-widget-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .7s ease; display: block; }
.om-service-card:hover .elementor-widget-image img { transform: scale(1.06); }
.om-service-card a { color: inherit; }

/* ---------- Industry cards ---------- */
.om-industry { transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; border-bottom: 3px solid transparent !important; }
.om-industry:hover { transform: translateY(-5px); box-shadow: 0 16px 32px rgba(2, 22, 54, .10) !important; border-bottom-color: var(--om-red) !important; }
.om-industry .elementor-icon { transition: transform .3s ease; }
.om-industry:hover .elementor-icon { transform: scale(1.1); }

/* ---------- Testimonials ---------- */
.om-testimonial { position: relative; transition: transform .3s ease, box-shadow .3s ease; }
.om-testimonial::before { content: "\201C"; position: absolute; top: 6px; right: 22px; font-family: Georgia, serif; font-size: 96px; line-height: 1; color: var(--om-red); opacity: .18; pointer-events: none; }
.om-testimonial:hover { transform: translateY(-4px); box-shadow: 0 18px 36px rgba(2, 22, 54, .10) !important; }
.om-testimonial .elementor-testimonial-wrapper { display: flex; flex-direction: column; height: 100%; }
.om-testimonial .elementor-testimonial-content { flex: 1; }

/* ---------- Generic hover card ---------- */
.om-card-hover { transition: transform .3s ease, box-shadow .3s ease; }
.om-card-hover:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(2, 22, 54, .10) !important; }

/* ---------- Client logos ---------- */
.om-logo-tile { transition: box-shadow .3s ease, transform .3s ease; }
.om-logo-tile img { width: 100%; height: 90px !important; object-fit: contain; filter: grayscale(100%); opacity: .8; transition: filter .3s, opacity .3s; }
.om-logo-tile:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(2, 22, 54, .10) !important; }
.om-logo-tile:hover img { filter: none; opacity: 1; }

/* ---------- FAQ (Elementor toggle) ---------- */
.om-faq .elementor-toggle-item { border: 1px solid var(--om-line); margin-bottom: 12px; background: #fff; }
.om-faq .elementor-toggle .elementor-tab-title { border: 0 !important; }
.om-faq .elementor-toggle .elementor-tab-content { border: 0 !important; }

/* ---------- Policy pages ---------- */
.om-prose h2 { margin-top: 1.6em; }
.om-prose ul { padding-left: 1.2em; }

/* ---------- WhatsApp floating button ---------- */
.om-wa-float { position: fixed !important; right: 20px; bottom: 20px; z-index: 995; width: auto !important; margin: 0 !important; }
.om-wa-float .elementor-button { border-radius: 50px; box-shadow: 0 10px 24px rgba(0,0,0,.22); }
.om-wa-float .elementor-button:hover { transform: translateY(-2px); }
@media (max-width: 767px) { .om-wa-float { right: 14px; bottom: 14px; } .om-wa-float .elementor-button-text { display: none; } .om-wa-float .elementor-button-icon { margin: 0 !important; } }

/* ---------- Footer ---------- */
.om-footer a, .om-footer a:visited { color: inherit !important; text-decoration: none; transition: color .2s; }
.om-footer a:hover, .om-footer a:focus { color: var(--om-yellow) !important; }
.om-crumb a { color: #fff !important; }

/* ---------- Job cards ---------- */
.om-jobs { --om-cols: 2; display: grid; grid-template-columns: repeat(var(--om-cols), minmax(0, 1fr)); gap: 28px; }
.om-jobs--single { grid-template-columns: minmax(0, 1fr); max-width: 900px; margin: 0 auto; }
.om-job { --om-accent: var(--om-red); background: #fff; border: 1px solid var(--om-line); border-top: 4px solid var(--om-accent); padding: 32px; display: flex; flex-direction: column; gap: 18px; box-shadow: 0 10px 30px rgba(2, 22, 54, .06); transition: transform .3s ease, box-shadow .3s ease; }
.om-jobs .om-job:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(2, 22, 54, .12); }
.om-job__head { display: flex; flex-direction: column; gap: 8px; }
.om-job__status { align-self: flex-start; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; background: var(--om-accent); padding: 4px 10px; }
.om-job__status--closed { background: #6B6B6B; }
.om-job__intro { margin: 0; font-style: italic; color: #555; }
.om-job__title { margin: 0; font-size: 24px; line-height: 1.3; color: var(--om-navy); }
.om-job__title a { color: inherit !important; text-decoration: none; }
.om-job__title a:hover { color: var(--om-red); }
.om-job__meta { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--om-line); }
.om-job__row { display: flex; flex-direction: column; gap: 2px; padding: 12px 0; border-bottom: 1px solid var(--om-line); }
.om-job__row:nth-child(odd) { padding-right: 16px; }
.om-job__meta dt { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6B6B6B; margin: 0; }
.om-job__meta dd { margin: 0; font-weight: 500; color: var(--om-text); }
.om-job__req { margin: 0; padding: 12px 16px; background: var(--om-grey); border-left: 3px solid var(--om-yellow); }
.om-job__closed { padding: 14px 18px; background: #FFF4D6; border-left: 4px solid var(--om-yellow); }
.om-job__desc > *:last-child { margin-bottom: 0; }
.om-job__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: auto; }
.om-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 12px 26px; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; border: 2px solid var(--om-red); transition: background-color .2s, color .2s, border-color .2s; }
.om-btn--primary { background: var(--om-red); color: #fff; }
.om-btn--primary:hover, .om-btn--primary:focus { background: var(--om-navy); border-color: var(--om-navy); color: #fff; }
.om-btn--ghost { background: transparent; color: var(--om-navy); border-color: var(--om-navy); }
.om-btn--ghost:hover, .om-btn--ghost:focus { background: var(--om-navy); color: #fff; }
.om-jobs-empty { padding: 28px; text-align: center; background: #fff; border: 1px dashed #C9CDD4; }
@media (max-width: 767px) { .om-job { padding: 22px; } .om-job__meta { grid-template-columns: 1fr; } .om-job__row:nth-child(odd) { padding-right: 0; } .om-btn { flex: 1 1 100%; } }

/* ---------- Forms ---------- */
.om-form { --om-focus: var(--om-navy); display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.om-form--2col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.om-form__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.om-form__field--full { grid-column: 1 / -1; }
.om-form label { font-weight: 600; font-size: 14px; color: var(--om-navy); }
.om-form input:not([type=file]), .om-form textarea { width: 100%; min-height: 50px; padding: 12px 16px; font-size: 15px; color: var(--om-text); background: #fff; border: 1px solid #D5D9E0; border-radius: 2px; outline: none; transition: border-color .2s, box-shadow .2s; box-sizing: border-box; }
.om-form textarea { min-height: 120px; resize: vertical; }
.om-form input:focus, .om-form textarea:focus { border-color: var(--om-focus); box-shadow: 0 0 0 3px rgba(2, 22, 54, .12); }
.om-form__file { padding: 10px 12px; border: 1px dashed #B9BFC9; background: #fff; }
.om-form__file input { width: 100%; font-size: 14px; }
.om-form__hint { color: #6B6B6B; font-size: 13px; }
.om-form .has-error input, .om-form .has-error textarea, .om-form .has-error .om-form__file { border-color: #C72828 !important; }
.om-form__error { color: #B3261E; font-size: 13px; min-height: 0; }
.om-form__error:empty { display: none; }
.om-form__foot { display: flex; flex-direction: column; gap: 10px; }
.om-form__submit { align-self: flex-start; display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 14px 40px; border: 0; border-radius: 2px; cursor: pointer; background: var(--om-red); color: #fff; font-weight: 700; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; transition: background-color .2s, transform .2s; }
.om-form__submit:hover { transform: translateY(-1px); }
.om-form__submit[disabled] { opacity: .7; cursor: wait; }
.om-form__consent { margin: 0; font-size: 13px; color: #6B6B6B; }
.om-form__consent a { color: inherit; text-decoration: underline; }
.om-form__msg:empty { display: none; }
.om-form__msg { padding: 14px 18px; font-weight: 500; }
.om-form__msg.is-success { background: #E8F5EC; color: #135C2B; border-left: 4px solid #1E7E34; }
.om-form__msg.is-error { background: #FDECEC; color: #8A1C1C; border-left: 4px solid #C72828; }
.om-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.om-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 767px) { .om-form--2col { grid-template-columns: minmax(0, 1fr); } .om-form__submit { align-self: stretch; } }

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) { .om-service-card, .om-industry, .om-testimonial, .om-card-hover, .om-logo-tile, .om-job, .om-service-card img { transition: none !important; transform: none !important; } }

/* Header button never wraps */
.om-navbar .elementor-button { white-space: nowrap; }
/* Astra: let Elementor pages run edge to edge */
.om-full-width .site-content > .ast-container { max-width: 100%; padding-left: 0; padding-right: 0; display: block; }

/* Single job: hide theme post meta, run template edge to edge */
.single-om_job .entry-header, .single-om_job .entry-meta, .single-om_job .post-navigation, .single-om_job .ast-single-related-posts-container { display: none !important; }
.single-om_job article.om_job { padding: 0 !important; margin: 0 !important; background: none !important; }

/* Header row sizing */
.om-navbar .elementor-widget-site-logo { flex: 0 0 auto !important; width: 128px !important; max-width: 128px; }
.om-navbar .elementor-widget-site-logo img { width: 100% !important; height: auto; display: block; }
.om-navbar .elementor-widget-navigation-menu { flex: 1 1 auto !important; min-width: 0; }
.om-navbar .elementor-widget-button { flex: 0 0 auto !important; }
@media (max-width: 1024px) { .om-navbar .elementor-widget-site-logo { width: 116px !important; max-width: 116px; } .om-navbar .elementor-widget-navigation-menu { order: 3; flex: 0 0 auto !important; } .om-navbar .elementor-widget-button { margin-left: auto !important; } }
@media (max-width: 767px) { .om-navbar .elementor-widget-site-logo { width: 92px !important; max-width: 92px; } }
html, body { overflow-x: clip; }

/* Mobile & tablet: Call / Email / Visit bar fixed to the bottom of the screen */
@media (max-width: 1024px) {
	:root { --om-topbar-h: 0px; --om-bottombar-h: 58px; }
	.om-topbar { min-height: 0 !important; height: 0 !important; padding: 0 !important; background: transparent !important; overflow: visible !important; }
	.om-mobile-bar { position: fixed !important; left: 0; right: 0; bottom: 0; z-index: 996; width: 100% !important; margin: 0 !important; background: var(--om-red); box-shadow: 0 -6px 20px rgba(2, 22, 54, .18); padding-bottom: env(safe-area-inset-bottom); }
	.om-mobile-bar .elementor-icon-list-items { display: flex !important; flex-wrap: nowrap !important; justify-content: space-around; margin: 0 !important; }
	.om-mobile-bar .elementor-icon-list-item { flex: 1 1 0; margin: 0 !important; padding: 0 !important; justify-content: center; }
	.om-mobile-bar .elementor-icon-list-item::after { display: none !important; }
	.om-mobile-bar .elementor-icon-list-item + .elementor-icon-list-item { border-left: 1px solid rgba(255, 255, 255, .25); }
	.om-mobile-bar .elementor-icon-list-item a { display: flex; align-items: center; justify-content: center; gap: 5px; width: 100%; min-height: var(--om-bottombar-h); font-size: 15px; font-weight: 600; color: #fff !important; }
	.om-mobile-bar .elementor-icon-list-item a:active { background: rgba(0, 0, 0, .12); }
	.om-mobile-bar .elementor-icon-list-text { padding-left: 0 !important; margin: 0 !important; }
	.om-mobile-bar .elementor-icon-list-icon { margin: 0 !important; padding: 0 !important; }
	body { padding-bottom: var(--om-bottombar-h); }
	.ast-scroll-top-icon, #ast-scroll-top { bottom: calc(var(--om-bottombar-h) + 16px) !important; }
}

/* Mobile & tablet header: logo left, Send Resume + menu icon grouped on the right */
@media (max-width: 1024px) {
	.om-navbar > .e-con-inner, .om-navbar { justify-content: flex-start !important; gap: 12px !important; }
	.om-navbar .elementor-widget-site-logo { margin-right: auto !important; }
	.om-navbar .elementor-widget-button { margin-left: 0 !important; }
	.om-navbar .elementor-element.elementor-element.elementor-widget-navigation-menu { --container-widget-width: auto; --container-widget-flex-grow: 0; flex: 0 0 44px !important; width: 44px !important; min-width: 44px; max-width: 44px !important; margin: 0 !important; overflow: visible; }
	.om-navbar .elementor-widget-navigation-menu .hfe-nav-menu.hfe-layout-horizontal, .om-navbar .elementor-widget-navigation-menu .hfe-nav-menu__toggle { width: 44px !important; margin: 0 !important; display: flex !important; justify-content: flex-end; }
	.om-navbar .elementor-widget-navigation-menu .hfe-nav-menu__toggle { margin: 0 !important; margin-left: 0 !important; }
}
@media (max-width: 767px) { .om-navbar > .e-con-inner, .om-navbar { gap: 10px !important; } }
@media (max-width: 1024px) { .om-navbar nav.hfe-dropdown ul.hfe-nav-menu, .om-navbar nav.hfe-dropdown li.menu-item { width: 100% !important; } .om-navbar nav.hfe-dropdown a.hfe-menu-item { white-space: nowrap; } }

/* Copyright strip: only as tall as its text */
.om-copyright p, .om-copyright .hfe-copyright-wrapper, .om-copyright .elementor-widget { margin: 0 !important; line-height: 1.5; }
.om-copyright, .om-copyright .hfe-copyright-wrapper, .om-copyright .hfe-copyright-wrapper * { color: #FFFFFF !important; }
.om-copyright .om-heart, .om-copyright span[style*='F2C302'] { color: #F2C302 !important; }

/* Contact page: larger WhatsApp & Get Directions icons */
.om-contact-btn .elementor-button-content-wrapper { align-items: center; }
.om-contact-btn .elementor-button-icon { font-size: 24px !important; line-height: 1; display: inline-flex; align-items: center; }
.om-contact-btn .elementor-button-icon svg { width: 24px !important; height: 24px !important; }
@media (max-width: 767px) { .om-contact-btn .elementor-button-icon { font-size: 22px !important; } .om-contact-btn .elementor-button-icon svg { width: 22px !important; height: 22px !important; } }

/* Scroll-to-top arrow on the left */
#ast-scroll-top { left: 30px !important; right: auto !important; }
@media (max-width: 767px) { #ast-scroll-top { left: 16px !important; } }
