.elementor-kit-5{--e-global-color-primary:#003366;--e-global-color-secondary:#0A1628;--e-global-color-text:#0A1628;--e-global-color-accent:#BD4F00;--e-global-color-og_black:#000000;--e-global-color-og_orange:#CC5500;--e-global-color-og_tint:#FF9A55;--e-global-color-og_deep:#AD4700;--e-global-color-og_paper:#F7F8FA;--e-global-color-og_line:#D8DEE6;--e-global-color-og_muted_dark:#C3CEDC;--e-global-color-og_muted_light:#4A5A6E;--e-global-typography-primary-font-family:"Public Sans";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Newsreader";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Public Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Public Sans";--e-global-typography-accent-font-weight:700;background-color:#FFFFFF;color:#0A1628;font-family:"Public Sans", Sans-serif;font-size:17px;line-height:1.7em;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 a{color:#AD4700;}.elementor-kit-5 a:hover{color:#003366;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --og-navy-deep:#000000; --og-navy:#003366; --og-orange:#CC5500; --og-white:#FFFFFF; --og-mist:#E8EEF5; --og-slate:#94A3B8; --og-font:Public Sans; --og-ink:#0A1628; --og-accent:#CC5500; --og-paper:#F7F8FA; --og-mute:#5C6B7A; --og-line:#D8DEE6; --og-soft:#EEF2F6; --og-sans:Public Sans; --og-display:Newsreader; --og-radius:8px; --og-gutter:24px; --og-section:96px; --og-max:1120px; --og-ember:#BD4F00; --og-ember-deep:#AD4700; --og-ember-tint:#FF9A55; --og-muted-dark:#C3CEDC; --og-muted-light:#4A5A6E; --og-notice:#FDF3EC; --og-h1-size:clamp(2.5rem, 5vw, 4.25rem); --og-h2-size:clamp(1.875rem, 3.2vw, 2.75rem); }
/* Start custom CSS *//* OrenGen Worldwide: header navigation (nav-menu widget has no colour controls via MCP) */
body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:#FFFFFF;font-family:"Public Sans",sans-serif;font-weight:600;font-size:.9375rem;padding:12px 10px;white-space:nowrap}
body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus,body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active{color:#FF9A55}
body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:before,body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:after{background-color:#CC5500}
body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu,body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown{background:#0A1628;border:1px solid rgba(255,255,255,.12);border-radius:10px}
body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu a,body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown a{color:#C3CEDC;background:transparent;font-family:"Public Sans",sans-serif;font-size:.9375rem;padding:10px 18px}
body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu a:hover,body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu a:focus,body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown a:hover,body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown a:focus,body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown a.elementor-item-active{color:#FFFFFF;background:rgba(255,255,255,.06)}
body .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle{color:#FFFFFF;background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:8px;width:44px;height:44px}
body .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle svg{fill:#FFFFFF}
.elementor-location-header a:focus-visible,.elementor-location-header button:focus-visible,.elementor-location-footer a:focus-visible{outline:3px solid #FF9A55;outline-offset:2px}
@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container{left:auto!important;right:0;width:min(320px,calc(100vw - 2rem))!important;max-width:calc(100vw - 2rem)}
.elementor-location-header .elementor-widget-nav-menu{position:relative}
body .elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main>.elementor-nav-menu{flex-wrap:nowrap}
/* In-text links: AA colour per surface, underlined so they are not identified by colour alone */
.ogw-dark p a,.ogw-hero p a,.ogw-footer p a,.ogw-card p a,.ogw-dark li a,.ogw-hero li a,.ogw-card li a{color:#FF9A55;text-decoration:underline;text-underline-offset:2px}
.ogw-white p a,.ogw-light p a,.ogw-card-ink p a,.ogw-notice p a,.ogw-disclosure a,.ogw-prose a,.ogw-placeholder a,.ogw-white li a,.ogw-light li a{color:#AD4700;text-decoration:underline;text-underline-offset:2px}

/* =====================================================================
   OrenGen Worldwide: design polish pass (redesign-existing-projects audit,
   consolidated 2026-10-02). Paste BELOW the existing lines in
   Site Settings > Custom CSS. Brand tokens, fonts, copy and page structure
   are unchanged; every colour below is an existing token or a value the site
   already uses.
   Load order on this site: the kit file (post-5.css) prints BEFORE
   base-desktop.css, global-*.css and local-*.css, so each rule that overrides
   a class is scoped with body / .elementor / :is() to out-rank the class's
   0,2,0 base and 0,3,0 state .elementor-kit-5s. No !important is used (none needed).
   After saving: Elementor > Tools > Regenerate CSS & Data, then hard-refresh.
   ===================================================================== */

/* ---------- Type ---------- */
/* [font-fallback-stack, font-var-no-fallback] Real fallback stacks behind the two families. Leave the variable values in the Variables manager as they are so Elementor keeps loading the Google fonts. html:root (0,1,1) beats the :root (0,1,0) block that defines them. */
html:root{--og-font:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--og-sans:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--og-display:"Newsreader",Georgia,"Times New Roman",serif}
/* [mobile-h1-size] 34px at 375px, 40px by 767px. Tablet and desktop are unchanged. */
@media (max-width:767px){html:root{--og-h1-size:clamp(2.125rem,9vw,2.5rem)}}
/* [kit-line-height-em] Unitless, so 12-15px labels stop inheriting a fixed 28.9px line box. */
body.elementor-kit-5{line-height:1.7}
/* [text-wrap-balance-pretty] No class sets text-wrap, so load order does not matter here. */
.elementor :is(.ogw-h1,.ogw-h2,.ogw-h3,.ogw-statement,.ogw-kicker,.ogw-kicker-ink),.elementor .e-accordion-item-title-base>.e-paragraph-base{text-wrap:balance}
.elementor :is(.ogw-body,.ogw-lead,.ogw-lead-ink,.ogw-prose,.ogw-small,.ogw-disclosure),.elementor .ogw-section li{text-wrap:pretty}
/* [body-measure, legal-prose-measure] Lists the class max-width cannot reach. The browser moves a <ul> out of its <p> (it lands straight in the stack), and legal lists sit inside inline spans. */
body .elementor :is(.ogw-wrap,.ogw-narrow,.ogw-stack)>ul{max-width:34em}
body .elementor .ogw-prose>ul{max-width:36em}
/* [tabular-figures] Step numbers, home door tabs, the partner rate table and the Terms contents. */
.elementor .ogw-num,.elementor .e-tab-base .e-paragraph-base,.elementor .ogw-card-ink>.e-div-block-base>.ogw-body,.elementor .ogw-toc{font-variant-numeric:tabular-nums}
/* [terms-toc-markers] Needs class ogw-toc on the two Contents paragraphs of /legal/terms/. */
body .elementor .ogw-toc ul{list-style:none;padding-inline-start:0;margin:0}
/* [in-card-caps, in-card-labels-allcaps] Field labels inside cards become sentence-case semibold. Section eyebrows keep their caps, and the colours stay #AD4700 on light and #FF9A55 on dark. Specificity 0,3,1 beats the class's 0,2,0. */
body .elementor :is(.ogw-card,.ogw-card-ink) :is(.ogw-kicker,.ogw-kicker-ink){text-transform:none;letter-spacing:.01em;font-size:.875rem;font-weight:600}

/* ---------- FAQ accordions ---------- */
/* [weight-ladder] Questions go from 700 to 600 (beats the 0,2,0 per-item rules). */
body .elementor .e-accordion-item-title-base>.e-paragraph-base{font-weight:600}
/* [faq-no-toggle-icon, faq-no-expand-indicator] A chevron in the header's existing flex row. #CC5500 is used as a non-text accent: 4.31:1 on white, 4.06:1 on paper. */
body .elementor .e-accordion-item-header-base::after{content:"";flex:0 0 auto;width:.5625rem;height:.5625rem;margin-inline-start:1rem;border-right:2px solid var(--og-orange);border-bottom:2px solid var(--og-orange);transform:translateY(-25%) rotate(45deg);transition:transform .2s ease}
body .elementor .e-accordion-item-base[open]>.e-accordion-item-header-base::after{transform:translateY(25%) rotate(-135deg)}
body .elementor :is(.ogw-white,.ogw-light) .e-accordion-item-header-base:hover .e-paragraph-base{color:var(--og-ember-deep)}
body .elementor .e-accordion-item-header-base:focus-visible{outline:3px solid var(--og-ember-deep);outline-offset:2px;border-radius:4px}

/* ---------- In-text links ---------- */
/* [dark-link-hover-navy, dark-link-hover-invisible] On dark surfaces, in-text links hover to white (12.61:1 at the navy end) instead of the kit's navy (1.00-1.67:1). 0,2,2 beats .elementor-kit-5 a:hover (0,2,1). */
:is(.ogw-dark,.ogw-hero,.ogw-footer,.ogw-card) :is(p,li) a:hover{color:#FFFFFF;text-decoration-thickness:2px}
/* Light boxes inside dark surfaces keep light-surface link colours. Example: the white subscribe card in the /newsletter/ hero. Without these lines its links would turn white on white on hover. */
:is(.ogw-dark,.ogw-hero,.ogw-card) :is(.ogw-card-ink,.ogw-white,.ogw-light) li a,:is(.ogw-dark,.ogw-hero,.ogw-card) .ogw-disclosure a{color:var(--og-ember-deep)}
:is(.ogw-dark,.ogw-hero,.ogw-card) :is(.ogw-card-ink,.ogw-white,.ogw-light) :is(p,li) a:hover,:is(.ogw-dark,.ogw-hero,.ogw-card) .ogw-disclosure a:hover{color:var(--og-navy)}
/* [intext-link-no-focus-ring] Elementor's inline rule .e-paragraph-base a{all:unset} prints after Hello's reset, so it removes the focus ring from every in-text link. */
body :is(.e-paragraph-base,.e-heading-base) a:focus-visible{outline:3px solid var(--og-ember-deep);outline-offset:2px;border-radius:2px}
body :is(.ogw-dark,.ogw-hero,.ogw-card,.ogw-footer) :is(.e-paragraph-base,.e-heading-base) a:focus-visible{outline-color:var(--og-ember-tint)}
body :is(.ogw-dark,.ogw-hero,.ogw-card) :is(.ogw-card-ink,.ogw-white,.ogw-light) :is(.e-paragraph-base,.e-heading-base) a:focus-visible,body :is(.ogw-dark,.ogw-hero,.ogw-card) .ogw-disclosure a:focus-visible{outline-color:var(--og-ember-deep)}

/* ---------- Buttons, tabs, focus ---------- */
/* [focus-ring-on-mouse-click, theme-reset-focus-halo] Show the ring for keyboard focus only, and drop the 4px white halo that Hello's reset draws under it. 0,4,1 beats the classes' 0,3,0 :focus rules. */
body .elementor :is(.ogw-btn-primary,.ogw-btn-ghost,.ogw-btn-ink,.ogw-link,.ogw-link-ink,.ogw-foot-link,.ogw-util-link,.e-tab-base):focus:not(:focus-visible){outline:none}
body .elementor :is(.ogw-btn-primary,.ogw-btn-ghost,.ogw-btn-ink,.ogw-link,.ogw-link-ink,.ogw-foot-link,.ogw-util-link,.e-tab-base):focus-visible{box-shadow:none}
body .elementor-location-header .elementor-nav-menu a:focus-visible{box-shadow:none}
body .elementor-location-header .elementor-menu-toggle:focus-visible{outline:3px solid var(--og-ember-tint);outline-offset:2px;box-shadow:none}
/* [primary-focus-ring-on-light] The #FF9A55 ring is 1.98-2.10:1 on paper and white; #AD4700 is 5.37-5.71:1. Specificity 0,4,1. */
body .elementor :is(.ogw-light,.ogw-white,.ogw-card-ink,.ogw-disclosure) .ogw-btn-primary:focus{outline-color:var(--og-ember-deep)}
/* [no-active-state-short-transitions] Smoother state changes, a pressed state, and link underlines that fade in. */
body .elementor :is(.ogw-btn-primary,.ogw-btn-ghost,.ogw-btn-ink){transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .1s ease}
body .elementor .ogw-btn-primary:active{background-color:var(--og-ember-deep)}
body .elementor :is(.ogw-link,.ogw-link-ink,.ogw-foot-link,.ogw-util-link){text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:color .2s ease,text-decoration-color .2s ease}
@media (prefers-reduced-motion:no-preference){body .elementor :is(.ogw-btn-primary,.ogw-btn-ghost,.ogw-btn-ink):active{transform:translateY(1px)}}
/* [ink-ghost-hover-weak] Unselected home tabs get a visible hover edge. 0,4,1 beats the local 0,3,0 hover. */
body .elementor .e-tab-base:not(.e--selected):hover{border-color:var(--og-navy)}

/* ---------- Navigation ---------- */
/* [nav-overlap-1025-1200] The desktop menu needs about 609px and only fits from about 1240px, so the burger runs to 1279px. The audit proposed 1200px, but the menu still overlaps at 1201px. */
@media (min-width:1025px) and (max-width:1279px){
body .elementor-location-header .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main{display:none}
body .elementor-location-header .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle{display:flex}
body .elementor-location-header .elementor-nav-menu--dropdown-tablet nav.elementor-nav-menu--dropdown{display:block}
body .elementor-location-header .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle.elementor-active+nav.elementor-nav-menu--dropdown{overflow-y:auto}
}
/* [header-burger-order] Puts the burger at the far right: logo | actions | burger. The nav widget's @media(--tablet) rules are invalid and never apply. */
@media (max-width:1279px){
body .elementor-location-header .ogw-navbar>.elementor-widget-nav-menu{order:3;justify-self:end;position:relative}
/* [header-dropdown-overlay] The open menu panel overlays the page instead of sitting in the grid column, so it can't squeeze the logo or the buttons. Fix found in verification, 2026-10-02. */
body .elementor-location-header .ogw-navbar>.elementor-widget-nav-menu nav.elementor-nav-menu--dropdown{position:absolute;top:100%;right:0;width:min(320px,calc(100vw - 2rem));z-index:100;max-height:calc(100dvh - 8rem);overflow-y:auto}
}
/* [nav-parent-not-marked] The top-level parent of the current page lights up. /pricing/ (page 139) shows only Plans. Partner and Trust subpages are not menu items (their parent pages are 181 and 197), so they mark Company (menu item 295). These IDs come from the live menu: check them again if the menu is rebuilt. */
body .elementor-location-header .elementor-nav-menu--main>.elementor-nav-menu>li.current-menu-ancestor>a.elementor-item,body:is(.parent-pageid-181,.parent-pageid-197) .elementor-location-header .elementor-nav-menu--main .menu-item-295>a.elementor-item{color:var(--og-ember-tint)}
body .elementor-location-header .elementor-nav-menu--main>.elementor-nav-menu>li.current-menu-ancestor>a.elementor-item:after,body:is(.parent-pageid-181,.parent-pageid-197) .elementor-location-header .elementor-nav-menu--main .menu-item-295>a.elementor-item:after{opacity:1}
body.page-id-139 .elementor-location-header .elementor-nav-menu--main .menu-item-261>a.elementor-item:not(:hover):not(:focus){color:#FFFFFF}
body.page-id-139 .elementor-location-header .elementor-nav-menu--main .menu-item-261>a.elementor-item:not(:hover):not(:focus):after{opacity:0}
body .elementor-location-header :is(.elementor-nav-menu--dropdown,.sub-menu) a.elementor-item-active{box-shadow:inset 3px 0 0 var(--og-orange)}
/* [card-elevation-and-tint] Gives the header flyouts elevation over the hero (panel-to-hero contrast was about 1.03:1). */
body .elementor-location-header .elementor-nav-menu--main .sub-menu,body .elementor-location-header nav.elementor-nav-menu--dropdown{box-shadow:0 18px 40px -16px rgba(0,10,25,.6)}

/* ---------- Cards and grids ---------- */
/* [card-cta-not-pinned] The closing link or button row sits on the bottom edge of every grid card, so CTAs line up across a row. The home page already does this per element. */
body .elementor :is(.ogw-grid-2,.ogw-grid-3,.ogw-grid-4)>:is(.ogw-card,.ogw-card-ink)>:is(a,.ogw-row):last-child{margin-block-start:auto}
/* [card-hover-false-affordance] The class's own Hover state is removed (see global class changes). The lift comes back only for grid cards that carry their own CTA, only on devices that can hover, and only when reduced motion is not requested. */
@media (hover:hover){body .elementor :is(.ogw-grid-2,.ogw-grid-3,.ogw-grid-4)>.ogw-card-ink:has(>a,>.ogw-row>a):hover{box-shadow:0 20px 50px rgba(0,51,102,.10)}}
@media (hover:hover) and (prefers-reduced-motion:no-preference){body .elementor :is(.ogw-grid-2,.ogw-grid-3,.ogw-grid-4)>.ogw-card-ink:has(>a,>.ogw-row>a):hover{transform:translateY(-2px)}}
body .elementor :is(.ogw-grid-2,.ogw-grid-3,.ogw-grid-4)>.ogw-card-ink:has(a:focus-visible){box-shadow:0 20px 50px rgba(0,51,102,.10)}
/* [plan-card-baselines, pricing-tier-misalignment] Names, limits, price line and lists line up across tier cards. Needs the new empty classes ogw-tiers (4-row cards) or ogw-tiers-3 (3-row cards) on grids whose cards all have the same child count. Older browsers keep today's layout. */
@supports (grid-template-rows:subgrid){
body .elementor .ogw-tiers>:is(.ogw-card,.ogw-card-ink){display:grid;grid-template-rows:subgrid;grid-row:span 4;row-gap:.75rem}
body .elementor .ogw-tiers-3>:is(.ogw-card,.ogw-card-ink){display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:.75rem}
}
/* [tablet-orphan-card] At tablet widths, where these grids have 2 columns, an odd last card spans the full row. */
@media (min-width:768px) and (max-width:1024px){body .elementor :is(.ogw-grid-3,.ogw-grid-4)>:last-child:nth-child(odd){grid-column:1/-1}}
/* [five-card-desktop-orphan] 5 cards in a 3-column grid render as 3 + 2 (/, /about/, /trust/compliance/). */
@media (min-width:1025px){
body .elementor .ogw-grid-3:has(>:nth-child(5):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}
body .elementor .ogw-grid-3:has(>:nth-child(5):last-child)>*{grid-column:span 2}
body .elementor .ogw-grid-3:has(>:nth-child(5):last-child)>:nth-child(n+4){grid-column:span 3}
}

/* ---------- Sections and surfaces ---------- */
/* [narrow-column-left-edge] Keeps the 760px measure but starts it on the page's 1120px column edge (x=153 at 1440px instead of 333). */
body .elementor .ogw-section>.ogw-narrow{max-width:1120px}
/* :where() keeps the 760px cap for unclassed children but lets the class measures (ogw-body, ogw-lead) win. */
:where(.elementor .ogw-section>.ogw-narrow)>*{max-width:760px}
/* [same-surface-stacking] Two white sections in a row read as one band, without the doubled 192px gap. */
body .elementor .ogw-section.ogw-white+.ogw-section.ogw-white{padding-block-start:0}
/* [container-edges-mismatch] The footer columns and the utility bar align to the navbar's 1192px column. The body stays at 1120px (the --og-max token). */
body .elementor .ogw-footer>.e-div-block-base:first-child{max-width:1192px}
body .elementor .ogw-utility{padding-inline:max(1.5rem,calc((100% - 1192px) / 2))}
/* [flat-dark-sections-depth] Faint grayscale grain on the dark brand surfaces. Opacity .03 keeps #FF9A55 on a dark card at 4.69:1 or better even on the lightest noise pixel. Atomic flexboxes are already position:relative, so the stacking order with the header menus does not change. */
body .elementor :is(.ogw-hero,.ogw-dark,.ogw-footer){position:relative;isolation:isolate}
body .elementor :is(.ogw-hero,.ogw-dark,.ogw-footer)::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.03;border:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px}
/* [mobile-button-rows] Hero and closing-CTA buttons fill each line on phones. Text links such as the 404 links row are not stretched. */
@media (max-width:767px){body .elementor :is(.ogw-hero,.ogw-section.ogw-dark) :is(.ogw-wrap,.ogw-narrow)>.ogw-row>a:is(.ogw-btn-primary,.ogw-btn-ghost,.ogw-btn-ink),body .elementor .ogw-hero .ogw-split>.ogw-stack>.ogw-row>a:is(.ogw-btn-primary,.ogw-btn-ghost,.ogw-btn-ink){flex:1 1 auto}}
/* [404-vh] Stops the 404 hero jumping on iOS. Browsers without dvh keep the element's 70vh. 0,2,1 beats the local 0,2,0. */
body [data-elementor-type="error-404"] .ogw-hero{min-height:70dvh}

/* ---------- Forms (/contact/, /newsletter/) ---------- */
/* [form-state-palette, form-states-offbrand, form-checkbox-default-gray]
   - Field borders: the site's cool gray #5C6B7A (5.47:1). The contact form's #8A96A8 was 2.996:1.
   - Focus border: navy, instead of Elementor's warm #706F6F.
   - Checked box: navy with a white tick (12.61:1). The newsletter tick was navy on #69727D (2.58:1).
   - Placeholders: readable. Elementor's #9DA5AE was 2.49:1.
   - An inline invalid state that appears only after the visitor has interacted.
   - One success/error palette for both forms, reusing the newsletter's existing values (8.36:1 / 8.86:1).
   The body prefix is needed because Elementor's base form rules load after the kit file. */
body .elementor :is(.e-form-input-base,.e-form-textarea-base,.e-form-select-base){border-color:var(--og-mute)}
body .elementor :is(.e-form-input-base,.e-form-textarea-base,.e-form-select-base,.e-form-checkbox-base):focus{border-color:var(--og-navy)}
body .elementor .e-form-checkbox-base:checked{background-color:var(--og-navy);border-color:var(--og-navy);color:#FFFFFF}
body .elementor :is(.e-form-input-base,.e-form-textarea-base)::placeholder{color:var(--og-mute);opacity:1}
body .elementor :is(.e-form-input-base,.e-form-textarea-base,.e-form-select-base):user-invalid{border-color:#7A1616;box-shadow:inset 0 0 0 1px #7A1616}
body .elementor .e-form-checkbox-base:user-invalid{border-color:#7A1616}
body .elementor .e-form-success-message-base{color:#1E4D2B;background-color:#E3F1E5;font-size:1rem;text-align:start}
body .elementor .e-form-error-message-base{color:#7A1616;background-color:#FBE4E4;font-size:1rem;text-align:start}

/* ---------- Skip link ---------- */
/* [skip-link-blue-and-kit-leftover, skip-link-removed-no-main] Ally's skip link in brand colours. It survives only once #content exists (see the Custom Code item in page changes). */
body .ea11y-skip-to-content-link{border:2px solid var(--og-navy);color:var(--og-ink);font-family:var(--og-sans);font-weight:700}
body .ea11y-skip-to-content-link:focus{outline:3px solid var(--og-ember-deep);outline-offset:2px}
body .ea11y-skip-to-content-link:focus+.ea11y-skip-to-content-backdrop{background-color:rgba(10,22,40,.6)}

/* ---------- Reduced motion ---------- */
/* The kit's existing rule covers transitions on *, ::before and ::after. The accordion's ::details-content animation sits outside it. This rule is kept on its own so browsers without ::details-content drop only this rule. */
@media (prefers-reduced-motion:reduce){body .elementor .e-accordion-item-base::details-content{transition:none}}
/* ---------- Fixes from verification (2026-10-02) ---------- */
/* Wrapped link labels start at the left edge instead of centring (e-button base centres them). */
body .elementor :is(.ogw-link,.ogw-link-ink,.ogw-foot-link){text-align:start;justify-content:flex-start}
/* Menu carets follow the label colour: white, or orange on the current section. They were #0A1628 on the dark header. */
body .elementor-location-header :is(.elementor-nav-menu--main,nav.elementor-nav-menu--dropdown) .sub-arrow svg{fill:currentColor}
/* An odd last tier card spanning the tablet row keeps its divider full width. */
@media (min-width:768px) and (max-width:1024px){body .elementor :is(.ogw-tiers,.ogw-tiers-3)>:last-child:nth-child(odd)>*{max-width:none}}
/* Keyboard focus ring on form checkboxes (Elementor's base rule removes it). */
body .elementor .e-form-checkbox-base:focus-visible{outline:3px solid var(--og-ember-deep);outline-offset:2px;box-shadow:none}

/* ===== OrenGen footer social ===== */
.elementor-location-footer .ogf-social{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px;padding:0}
.elementor-location-footer .ogf-social .ogf-social-link{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;min-width:42px;padding:0;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:rgba(255,255,255,.05);color:#fff;font-size:0;line-height:0;letter-spacing:0;text-decoration:none;box-shadow:none;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}
.elementor-location-footer .ogf-social .ogf-social-link::before{content:"";display:block;width:18px;height:18px;background-color:currentColor;-webkit-mask:var(--ogf-i) center/contain no-repeat;mask:var(--ogf-i) center/contain no-repeat}
.elementor-location-footer .ogf-social .ogf-social-link:hover{background-color:#c55000;border-color:#c55000;color:#fff;transform:translateY(-1px)}
.elementor-location-footer .ogf-social .ogf-social-link:focus-visible{outline:3px solid #ff9a55;outline-offset:2px}
@media (prefers-reduced-motion:reduce){.elementor-location-footer .ogf-social .ogf-social-link{transition:none}}
.ogf-s-linkedin{--ogf-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 1 1 0-4.125 2.062 2.062 0 0 1 0 4.125zM7.119 20.452H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}
.ogf-s-x{--ogf-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}
.ogf-s-instagram{--ogf-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2.4' y='2.4' width='19.2' height='19.2' rx='5.6' fill='none' stroke='black' stroke-width='2.2'/%3E%3Ccircle cx='12' cy='12' r='4.4' fill='none' stroke='black' stroke-width='2.2'/%3E%3Ccircle cx='17.7' cy='6.3' r='1.4'/%3E%3C/svg%3E")}
.ogf-s-facebook{--ogf-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M24 12.073C24 5.405 18.627 0 12 0S0 5.405 0 12.073C0 18.1 4.388 23.094 10.125 24v-8.437H7.078v-3.49h3.047V9.413c0-3.025 1.792-4.697 4.533-4.697 1.312 0 2.686.236 2.686.236v2.971H15.83c-1.491 0-1.956.93-1.956 1.886v2.264h3.328l-.532 3.49h-2.796V24C19.612 23.094 24 18.1 24 12.073z'/%3E%3C/svg%3E")}
.ogf-s-github{--ogf-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}
.ogf-s-youtube{--ogf-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}
.ogf-s-tiktok{--ogf-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z'/%3E%3C/svg%3E")}
/* ===== end OrenGen footer social ===== */

/* ===== OrenGen site fixes 2026-10-05 ===== */
/* Footer social row: no inherited container padding; tidy 4 + 3 grid on desktop; fits a 360px phone in one row */
body .elementor-location-footer .ogf-social.ogf-social{padding:0;gap:8px}
@media (max-width:380px){body .elementor-location-footer .ogf-social .ogf-social-link{width:40px;height:40px;min-width:40px}}
@media (min-width:768px){body .elementor-location-footer .ogf-social.ogf-social{display:grid;grid-template-columns:repeat(4,42px)}}
/* ™ drawn raised: only U+2122 comes from a system face, every other character stays Public Sans */
@font-face{font-family:"OG TM";src:local("Arial"),local("ArialMT"),local("Helvetica"),local("Helvetica Neue"),local("Roboto"),local("Roboto-Regular");unicode-range:U+2122}
html:root{--og-font:"OG TM","Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--og-sans:"OG TM","Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
body:not(.home) .elementor .e-accordion-item-title-base>.e-paragraph-base{font-family:var(--og-sans)}
/* Rows of text links keep tight line spacing when they wrap; arrows stay with their label */
body .elementor .ogw-row:has(>:is(.ogw-link,.ogw-link-ink)):not(:has(>:is(.ogw-btn-primary,.ogw-btn-ghost,.ogw-btn-ink))){row-gap:.25rem}
body .elementor :is(.ogw-link,.ogw-link-ink){text-wrap:balance}
/* Long URLs wrap inside cards */
body .elementor :is(.ogw-card,.ogw-card-ink) .e-paragraph-base{overflow-wrap:break-word}
/* Table-of-contents entries hang under their text; anchored headings clear the sticky header */
body .elementor .ogw-toc li{padding-left:2.5em;text-indent:-2.5em}
body .elementor .ogw-section :is(h2,h3)[id]{scroll-margin-top:96px}
/* Lists indent 1.25rem in total (was 40-60px, cramped on phones) */
body .elementor :is(.ogw-body,.ogw-prose):not(.ogw-toc):has(>ul){padding-left:0}
body .elementor :is(.ogw-body,.ogw-prose):not(.ogw-toc)>ul,body .elementor :is(.ogw-wrap,.ogw-narrow,.ogw-stack,.ogw-card,.ogw-card-ink)>ul{padding-left:1.25rem}
/* Screen readers hear "(opens in a new tab)" on links that do, matching the header; nothing changes visually */
body .elementor a[target="_blank"]:is(.ogw-btn-primary,.ogw-btn-ghost,.ogw-btn-ink,.ogw-link,.ogw-link-ink)::after,body .elementor .e-paragraph-base a[target="_blank"]::after,body .elementor-location-footer .ogf-social .ogf-social-link::after{content:" (opens in a new tab)";position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
/* Phone numbers never break mid-number */
body .elementor a[href^="tel:"]{white-space:nowrap}
/* A chip that wraps on a phone reads as a tag, not a squashed pill */
@media (max-width:767px){body .elementor :is(.ogw-chip,.ogw-chip-ink){border-radius:14px;text-wrap:balance}}
/* ===== end OrenGen site fixes 2026-10-05 ===== *//* End custom CSS */