/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Layout, typography, colors, spacing and responsive sizes live in Elementor.
   Only cross-widget effects and unsupported decoration remain below. */

/* Neoma accessibility control: match Cookie Settings and sit beside it. */
body .uwy .userway_buttons_wrapper {
    top: auto !important; right: auto !important; bottom: 15px !important; left: 75px !important;
    transform: none !important; width: 45px !important; height: 45px !important;
}
body .uwy #userwayAccessibilityIcon { width: 45px !important; height: 45px !important; min-width: 45px !important; min-height: 45px !important; }

/* Overlay the unchanged global header on pages with full-width hero banners. */
body:is(.home,.error404,.page-id-3,.page-id-176,.page-id-187,.page-id-191,.page-id-206,.page-id-228,.page-id-255,.page-id-280,.page-id-390,.postid-95,.postid-81,.postid-82,.postid-83) .elementor-location-header { position: absolute; inset: 0 0 auto; z-index: 50; }

/* Native menu stretch targets the viewport; anchor its dropdown to the header bar instead. */
@media (min-width: 1201px) {
    .neoma-header-nav .elementor-nav-menu > .neoma-responsive-contact { display: none; }
}
@media (max-width: 1200px) {
    .neoma-header-bar .neoma-header-nav,
    .neoma-header-nav > .elementor-widget-container { position: static; }
    .neoma-header-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown { position: absolute; top: 100%; left: 0; width: 100%; z-index: 9997; }
}

/* Native Button has no separate background/padding control for its icon. */
:is(.neoma-contact-button,.neoma-consultation-button,.neoma-hero-button,.neoma-founder-button) .elementor-button-icon {
    display: inline-flex; align-items: center; justify-content: center; flex: none;
    width: 2.6667em; height: 2.6667em; border-radius: 50%;
    background: var(--e-global-color-nwhite, #fff);
}
:is(.neoma-contact-button,.neoma-consultation-button,.neoma-hero-button,.neoma-founder-button) .elementor-button-content-wrapper { align-items: center; }
:is(.neoma-contact-button,.neoma-consultation-button,.neoma-hero-button,.neoma-founder-button) .elementor-button-icon svg { width: auto; height: auto; flex: none; }
.neoma-hero-last { color: var(--e-global-color-accent, #caa24c); }
.neoma-footer-logo img { mix-blend-mode: multiply; }
:is(.neoma-hero-watermark,.neoma-footer-watermark) { pointer-events: none; }

/* Apply hover to the whole card, rather than only the child being hovered. */
.elementor .neoma-purpose-card:hover .elementor-widget.neoma-purpose-icon { border-top-right-radius: inherit; }
.neoma-service-card:is(:hover,:focus-within) { background-color: var(--e-global-color-primary, #1c4e7f); }
body .elementor .neoma-service-card:is(:hover,:focus-within) :is(.elementor-heading-title,.elementor-heading-title a,.neoma-service-excerpt) { color: var(--e-global-color-nwhite, #fff); }
body .elementor .neoma-service-card:is(:hover,:focus-within) .elementor-button { color: var(--e-global-color-accent, #caa24c); }
.neoma-service-card:is(:hover,:focus-within) .elementor-button-icon { background: url('../../uploads/2026/09/service-arrow-gold.svg') center / auto no-repeat; }
.neoma-service-card:is(:hover,:focus-within) .elementor-button-icon svg { visibility: hidden; }
.neoma-service-details .elementor-button-icon svg { width: 11px; height: 11px; }
.neoma-service-excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
/* Parent-card hover must also recolor the nested testimonial widgets. */
.elementor .neoma-testimonial-card:hover .neoma-testimonial-text { color: var(--e-global-color-nwhite); }
.neoma-testimonial-card:hover .neoma-testimonial-quote img { filter: brightness(0) invert(1); }
.neoma-testimonial-quote { line-height: 0; }
.neoma-testimonial-stars svg path { fill: inherit; } /* Let the native Rating widget color filled and unfilled SVG stars. */
.neoma-testimonial-text, .neoma-testimonial-quote img { transition: color .3s ease, filter .3s ease; }
.neoma-testimonials-loop-grid .e-loop-item > .e-con { height: 100%; } /* Match height within each row, not across every row. */
@media (prefers-reduced-motion: reduce) { .neoma-testimonial-card, .neoma-testimonial-text, .neoma-testimonial-quote img { transition: none; } }
/* Loop Grid instance differences: white-page outline, full-width image links, and
   detail-link breathing room (the carousel supplies this through equal heights).
   Keep the shared Loop Item and its homepage rendering unchanged. */
.neoma-services-loop-grid .neoma-service-card { box-shadow: inset 0 0 0 1px var(--e-global-color-npale, #edf2ff); }
.neoma-services-loop-grid .neoma-service-image a { display: block; }
@media (min-width: 1367px) {
    .elementor .neoma-services-loop-grid .elementor-widget.neoma-service-details { padding-top: 40px; }
}
@media (min-width: 1025px) and (max-width: 1366px) {
    .elementor .neoma-services-loop-grid .elementor-widget.neoma-service-details { padding-top: 20px; }
}

/* Icon Box has no separate shadow control for its icon. */
:is(.elementor-64,.elementor-191,.elementor-95,.elementor-81,.elementor-82,.elementor-83) .elementor-widget-image { line-height: 0; } /* Remove inline-image baseline space. */
.elementor.elementor .neoma-process .neoma-process-plan.elementor-widget { max-width: none; } /* Allow the native wider desktop text setting. */
.neoma-process-iconbox .elementor-icon { box-shadow: 0 14px 54px 10px #b5c2e4; }
.neoma-process-iconbox-dark .elementor-icon { box-shadow: 0 14px 54px 10px #8da4bb; }
/* Keep the two white connector dots visible on the Process page's white background. */
.neoma-process-page-journey .neoma-process-connector-white .elementor-icon { border-radius: 50%; box-shadow: 0 4px 12px rgba(136,110,110,.25); }

/* Pricing icon decoration stays separate from the image artwork. */
.neoma-pricing-iconbox .elementor-icon { position: relative; isolation: isolate; }
.neoma-pricing-iconbox .elementor-icon svg { width: 1em; height: auto; }
.elementor .neoma-pricing-iconbox .elementor-icon-box-description { max-width: 418px; margin-inline: auto; }
.elementor .neoma-pricing-iconbox:is(.elementor-element-f9d9348,.neoma-pricing-visit) .elementor-icon-box-description { max-width: 431px; }
.neoma-pricing-iconbox .elementor-icon::before {
    content: ""; position: absolute; top: 0; right: 0;
    width: 54px; height: 54px; border-radius: 50%;
    background: var(--e-global-color-ncream, #fff5e0);
    z-index: -1; pointer-events: none;
}
/* Scale unsupported icon decoration with the native responsive icon sizes. */
@media (max-width: 1200px) {
    .neoma-pricing-iconbox .elementor-icon::before { width: 39px; height: 39px; }
    .neoma-process-iconbox .elementor-icon { box-shadow: 0 10px 36px 4px #b5c2e4; }
    .neoma-process-iconbox-dark .elementor-icon { box-shadow: 0 10px 36px 4px #8da4bb; }
    :is(.neoma-contact-button,.neoma-consultation-button,.neoma-hero-button,.neoma-founder-button) .elementor-button-icon svg { width: 1.2em; height: 1.2em; }
}
@media (max-width: 767px) {
    .neoma-pricing-iconbox .elementor-icon::before { width: 30px; height: 30px; }
    .neoma-process-iconbox .elementor-icon { box-shadow: 0 8px 26px 2px #b5c2e4; }
    .neoma-process-iconbox-dark .elementor-icon { box-shadow: 0 8px 26px 2px #8da4bb; }
}

/* Contact uses the same global footer without repeating its consultation CTA. */
.page-id-255 .neoma-footer-cta { display: none; }
.neoma-contact-map { overflow: hidden; }
.neoma-contact-card .elementor-icon::before { top: -16px; right: -20px; }
.neoma-contact-card .elementor-icon-box-description { overflow-wrap: anywhere; }

/* Contact form styling lives here, not in the shortcode. Gravity Forms variables
   are scoped to this widget and inherit Elementor Global Fonts and Colors. */
.neoma-contact-form-widget #gform_wrapper_1.gform-theme.gform_wrapper {
    --gf-radius: 10px;
    --gf-ctrl-size: var(--gf-ctrl-size-lg);
    --gf-color-primary: var(--e-global-color-accent);
    --gf-color-primary-contrast: var(--e-global-color-nwhite);
    --gf-color-in-ctrl-contrast: var(--e-global-color-text);
    --gf-color-out-ctrl-dark: var(--e-global-color-text);
    --gf-ctrl-label-color-primary: var(--e-global-color-primary);
    --gf-ctrl-label-color-secondary: var(--e-global-color-primary);
    --gf-ctrl-placeholder-color: var(--e-global-color-text);
    --gf-ctrl-placeholder-opacity: 1;
    --gf-font-family-base: var(--e-global-typography-text-font-family, Inter), sans-serif;
    --gf-font-size-primary: var(--e-global-typography-nsmall-font-size);
    --gf-font-size-secondary: var(--e-global-typography-nsmall-font-size);
    --gf-font-size-tertiary: var(--e-global-typography-nsmall-font-size);
    --gf-font-weight-primary: var(--e-global-typography-text-font-weight);
    --gf-font-weight-secondary: var(--e-global-typography-text-font-weight);
    --gf-font-weight-tertiary: var(--e-global-typography-text-font-weight);
    --gf-line-height-primary: var(--e-global-typography-nsmall-line-height);
    --gf-line-height-secondary: var(--e-global-typography-nsmall-line-height);
    --gf-line-height-tertiary: var(--e-global-typography-nsmall-line-height);
    --gf-form-validation-line-height: var(--e-global-typography-nsmall-line-height);
    --gf-form-validation-heading-font-weight: var(--e-global-typography-text-font-weight);
    --gf-ctrl-label-font-family-primary: var(--e-global-typography-nh5-font-family, Arapey), serif;
    --gf-ctrl-label-font-size-primary: var(--e-global-typography-nh5-font-size);
    --gf-ctrl-label-font-weight-primary: var(--e-global-typography-nh5-font-weight);
    --gf-ctrl-label-line-height-primary: var(--e-global-typography-nh5-line-height);
    --gf-ctrl-label-font-size-req: var(--e-global-typography-nsmall-font-size);
    --gf-ctrl-label-color-req: var(--e-global-color-primary);
    --gf-form-gap-x: 30px; --gf-form-gap-y: 30px; --gf-field-gap-y: 24px;
    --gf-ctrl-size-lg: 52px; --gf-ctrl-padding-x: 20px; --gf-ctrl-textarea-height: 108px;
    --gf-ctrl-bg-color: transparent;
    --gf-ctrl-border-color: rgba(10, 46, 93, .3); /* Figma input stroke: #0A2E5D at 30%. */
    --gf-ctrl-border-color-hover: var(--gf-ctrl-border-color);
    --gf-ctrl-border-color-focus: var(--e-global-color-primary);
    --gf-ctrl-outline-color-focus: var(--e-global-color-nhero);
    --gf-ctrl-outline-width-focus: 2px;
    --gf-ctrl-textarea-resize: none;
    --gf-form-validation-bg-color: var(--e-global-color-nwhite);
    --gf-form-validation-color: var(--e-global-color-primary);
    --gf-form-validation-border-color: var(--e-global-color-nhero);
    --gf-form-validation-border-color-focus: var(--e-global-color-primary);
    --gf-form-validation-outline-color-focus: var(--e-global-color-nhero);
    --gf-form-validation-radius: 12px;
    --gf-form-validation-shadow: none;
    --gf-form-validation-heading-icon-color: var(--e-global-color-accent);
    --gf-form-validation-heading-icon-border-color: var(--e-global-color-accent);
    --gf-form-validation-heading-icon-bg-color: var(--e-global-color-ncream);
    --gf-ctrl-font-size: var(--e-global-typography-nsmall-font-size);
    --gf-ctrl-font-weight: var(--e-global-typography-text-font-weight);
    --gf-ctrl-line-height: var(--e-global-typography-nsmall-line-height); --gf-ctrl-shadow: none;
    --gf-ctrl-textarea-line-height: var(--e-global-typography-nsmall-line-height);
    --gf-ctrl-btn-radius: 40px; --gf-ctrl-btn-size: 60px; --gf-ctrl-btn-padding-x: 55px;
    --gf-ctrl-btn-font-family: var(--e-global-typography-accent-font-family, Inter), sans-serif;
    --gf-ctrl-btn-font-size: var(--e-global-typography-accent-font-size);
    --gf-ctrl-btn-font-weight: var(--e-global-typography-accent-font-weight);
    --gf-ctrl-btn-line-height: var(--e-global-typography-accent-line-height);
    --gf-ctrl-btn-text-transform: var(--e-global-typography-accent-text-transform);
    --gf-ctrl-btn-letter-spacing: var(--e-global-typography-accent-letter-spacing);
    --gf-ctrl-btn-bg-color-hover-primary: var(--e-global-color-primary);
    --gf-ctrl-btn-shadow: none;
}
.neoma-about-credentials .neoma-credential-card-link { cursor: pointer; text-decoration: none; }
.neoma-about-credentials .neoma-credential-card-link:focus-visible { outline: 2px solid var(--e-global-color-accent); outline-offset: 4px; }
/* The Home PNG includes its own arch and transparent patient cutout. */
.elementor.elementor-64 .neoma-hero-inner .elementor-element.neoma-hero-banner { width: var(--container-widget-width); max-width: none; }
.elementor-64 .neoma-hero-banner img { display: block; aspect-ratio: auto; height: auto; object-fit: contain; }
@media (min-width: 1367px) {
    .elementor.elementor-64 .elementor-element.neoma-hero-intro { font-size: clamp(16px, 1.145834vw, 22px); line-height: clamp(27px, 1.875vw, 36px); }
}
.e-loop-item-82.elementor-84 .elementor-element.elementor-element-298470b img { object-position: 75% center; }
.neoma-contact-map iframe { display: block; width: 100%; height: 555px; border: 0; border-radius: 24px; }
.neoma-map-consent-placeholder { min-height: 555px; padding: 40px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: #EDF2FF; color: #12314F; border: 1px solid #CAA24C; border-radius: 24px; }
.neoma-map-consent-placeholder[hidden] { display: none; }
.neoma-map-consent-placeholder h3 { color: #1C4E7F; font-size: 32px; }
.neoma-map-consent-placeholder p { max-width: 440px; line-height: 1.6; }
.neoma-map-consent-placeholder .neoma-map-preferences { background: #CAA24C; color: #12314F; border: 1px solid #CAA24C; border-radius: 30px; padding: 14px 24px; font: inherit; font-weight: 600; cursor: pointer; }
.neoma-map-consent-placeholder .neoma-map-preferences:hover { background: #12314F; color: #fff; border-color: #12314F; }
.neoma-map-preferences:focus-visible, .cky-consent-container button:focus-visible, .cky-modal button:focus-visible, .cky-btn-revisit-wrapper:focus-visible { outline: 3px solid #1C4E7F; outline-offset: 3px; }
body .cky-consent-container .cky-consent-bar { border-radius: 16px; box-shadow: 0 8px 32px #12314f26; }
body .cky-consent-container, body .cky-modal { font-family: Inter, sans-serif; }
body .cky-consent-container .cky-btn, body .cky-modal .cky-btn { border: 1px solid; border-radius: 24px; min-height: 44px; padding: 11px 12px; font: 600 14px/20px Inter, sans-serif; letter-spacing: 0; text-transform: none; margin: 0; width: 100%; }
body .cky-consent-container, body .cky-modal { z-index: 2147483647; }
body .cky-consent-container .cky-notice-btn-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
body .cky-modal .cky-prefrence-btn-wrapper { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
body .cky-modal .cky-accordion-btn, body .cky-modal .cky-accordion-btn:hover, body .cky-modal .cky-accordion-btn:focus { background: transparent; color: #12314F; border: 0; border-radius: 0; padding: 0; font: 600 16px/24px Inter, sans-serif; letter-spacing: 0; text-transform: none; }
body .cky-modal .cky-show-desc-btn, body .cky-modal .cky-show-desc-btn:hover, body .cky-modal .cky-show-desc-btn:focus { background: transparent; color: #1C4E7F; border: 0; border-radius: 0; letter-spacing: 0; }
@media (max-width: 767px) {
    body .cky-modal .cky-prefrence-btn-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body .cky-modal .cky-btn-reject { grid-column: 1; grid-row: 1; }
    body .cky-modal .cky-btn-accept { grid-column: 2; grid-row: 1; }
    body .cky-modal .cky-btn-preferences { grid-column: 1 / -1; grid-row: 2; }
}
body .cky-consent-container .cky-btn-customize { grid-column: 1 / -1; grid-row: 2; }
body .cky-consent-container .cky-btn-reject { grid-column: 1; grid-row: 1; }
body .cky-consent-container .cky-btn-accept { grid-column: 2; grid-row: 1; }
body .cky-consent-container .cky-title { font-family: Arapey, serif; font-size: 25px; font-weight: 400; line-height: 1.2; }
@media (max-width: 1200px) { .neoma-map-consent-placeholder { min-height: 440px; } }
@media (max-width: 1024px) { .neoma-map-consent-placeholder { min-height: 400px; border-radius: 18px; } }
@media (max-width: 767px) { .neoma-map-consent-placeholder { min-height: 320px; padding: 24px; border-radius: 12px; } }
@media (max-width: 1200px) { .neoma-contact-map iframe { height: 440px; } }
@media (max-width: 1024px) { .neoma-contact-map iframe { height: 400px; border-radius: 18px; } }
@media (max-width: 767px) { .neoma-contact-map iframe { height: 320px; border-radius: 12px; } }
.neoma-contact-form-widget #gform_wrapper_1 .gform_footer { justify-content: center; margin-top: 44px; }
.neoma-contact-form-widget #gform_wrapper_1 .gform_heading { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.neoma-contact-form-widget #gform_wrapper_1 textarea { block-size: var(--gf-ctrl-textarea-height); min-block-size: 0; resize: none; }
.neoma-contact-form-widget .gfield_required { vertical-align: baseline; }
.neoma-contact-form-widget #gform_wrapper_1 .gfield--type-consent .ginput_container_consent {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 0 12px;
    align-items: start;
}
.neoma-contact-form-widget #gform_wrapper_1 .gfield--type-consent input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin: calc((var(--e-global-typography-nsmall-line-height, 26px) - 20px) / 2) 0 0;
    border: 1px solid var(--gf-ctrl-border-color);
    border-radius: 4px;
    background-color: var(--e-global-color-nwhite);
    box-shadow: none;
    outline: none;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease;
}
.neoma-contact-form-widget #gform_wrapper_1 .gfield--type-consent input[type="checkbox"]:hover {
    border-color: var(--e-global-color-primary);
}
.neoma-contact-form-widget #gform_wrapper_1 .gfield--type-consent input[type="checkbox"]:checked {
    background-color: var(--e-global-color-nwhite);
    border-color: var(--e-global-color-primary);
}
.neoma-contact-form-widget #gform_wrapper_1 .gfield--type-consent input[type="checkbox"]::before {
    color: var(--e-global-color-primary);
}
.neoma-contact-form-widget #gform_wrapper_1 .gfield--type-consent input[type="checkbox"]:focus-visible {
    outline: 2px solid var(--e-global-color-primary);
    outline-offset: 3px;
}
.neoma-contact-form-widget #gform_wrapper_1 .gfield--type-consent .gfield_consent_label {
    margin: 0;
    line-height: var(--e-global-typography-nsmall-line-height, 26px);
    cursor: pointer;
}
.neoma-contact-form-widget #gform_wrapper_1 .gfield--type-consent .gfield_consent_label .gfield_required {
    font: inherit;
}
/* Keep Google's badge and body-level challenge above the Contact page layers. */
.page-id-255 .grecaptcha-badge { z-index: 2147483646 !important; }
.page-id-255 > div:has(> div > iframe[src*="/recaptcha/"][src*="/bframe"]) {
    z-index: 2147483647 !important;
}
@media (max-width: 1366px) {
    .neoma-contact-form-widget #gform_wrapper_1.gform-theme.gform_wrapper { --gf-field-gap-y: 16px; --gf-ctrl-btn-size: 50px; }
}
@media (max-width: 1200px) { .neoma-contact-card .elementor-icon::before { top: -12px; right: -14px; } }
@media (max-width: 767px) {
    .neoma-contact-card .elementor-icon::before { top: -9px; right: -11px; }
    .neoma-contact-form-widget #gform_wrapper_1.gform-theme.gform_wrapper { --gf-form-gap-y: 22px; --gf-field-gap-y: 12px; --gf-ctrl-padding-x: 14px; --gf-ctrl-textarea-height: 132px; --gf-ctrl-btn-size: 48px; --gf-ctrl-btn-padding-x: 36px; }
    .neoma-contact-form-widget #gform_wrapper_1 .gfield { grid-column: 1 / -1; }
    .neoma-contact-form-widget #gform_wrapper_1 .gform_footer { margin-top: 28px; }
}

/* One FAQ surface avoids seams and follows Elementor's animation state. */
#faq-questions .e-n-accordion-item {
    border-radius: var(--n-accordion-border-radius); overflow: hidden;
    background-color: var(--e-global-color-npale);
    transition: background-color .35s ease;
}
#faq-questions .e-n-accordion-item:has(> summary[aria-expanded="true"]) { background-color: var(--e-global-color-primary); }
#faq-questions .e-n-accordion-item-title {
    border-radius: 0; color: var(--e-global-color-primary);
    transition: color .35s ease, padding .35s ease;
}
#faq-questions .e-n-accordion-item-title[aria-expanded="true"] { color: var(--e-global-color-nwhite); }
@media (min-width: 1025px) {
    #faq-questions .e-n-accordion-item-title[aria-expanded="true"] { padding-block: 34px 6px; }
}
@media (prefers-reduced-motion: reduce) {
    #faq-questions :is(.e-n-accordion-item,.e-n-accordion-item-title) { transition: none; }
}

/* Text Editor has no responsive table controls. */
.neoma-faq-pricing-table { max-width: 100%; overflow-x: auto; }
.neoma-faq-pricing-table table { width: 100%; min-width: 640px; margin: 0; border-collapse: collapse; background: var(--e-global-color-nwhite); color: var(--e-global-color-text); font-size: inherit; line-height: inherit; }
.neoma-faq-pricing-table :is(th,td) { padding: 14px 16px; border: 1px solid var(--e-global-color-nhero); background: var(--e-global-color-nwhite); text-align: left; vertical-align: top; }
.neoma-faq-pricing-table thead th { background: var(--e-global-color-primary); color: var(--e-global-color-nwhite); }
.neoma-faq-pricing-table tbody th { width: 32%; color: var(--e-global-color-primary); }
.neoma-faq-pricing-table td:nth-child(2) { width: 12%; white-space: nowrap; }
.neoma-faq-pricing-table:focus-visible { outline: 2px solid var(--e-global-color-accent); outline-offset: 3px; }

/* Plain text underline, without Elementor's full-width pointer animation. */
.elementor.elementor-location-footer .neoma-footer-menu .elementor-nav-menu--main .elementor-item:is(:hover,:focus-visible) { text-decoration: underline; }
.neoma-contact-list .elementor-icon-list-text { min-width: 0; overflow-wrap: anywhere; }
.neoma-hero-certifications .neoma-home-badge-link { cursor: pointer; text-decoration: none; }
.neoma-hero-certifications .neoma-home-badge-link:focus-visible { outline: 2px solid var(--e-global-color-primary); outline-offset: 4px; }
:is(.neoma-header,.neoma-footer,.neoma-hero,.neoma-founder,.neoma-service-card) a:focus-visible { outline: 2px solid var(--e-global-color-primary, #1c4e7f); outline-offset: 4px; }
@media (max-width: 1024px) { .neoma-hero-break { display: none; } }
@media (max-width: 767px) { .neoma-services-title br { display: none; } }
@media (prefers-reduced-motion: reduce) { .elementor :is(.neoma-purpose-card,.neoma-service-card,.elementor-button) { transition: none; } }

/* Launch accessibility repairs, 2026-10-21. Gold remains decorative; use
   separate readable text tones on light panels and dark panels. */
.elementor .elementor-widget-heading .elementor-heading-title {
    --e-global-color-accent: #725416;
}
.elementor :is(.neoma-about-credentials,.neoma-footer-cta) .elementor-heading-title {
    --e-global-color-accent: #F3D586;
}
body .elementor.elementor :is(.neoma-contact-button,.neoma-hero-button,.neoma-founder-button,.neoma-consultation-button) .elementor-button,
body .neoma-contact-form-widget #gform_submit_button_1 {
    color: #12314F;
}
body .elementor.elementor :is(.neoma-contact-button,.neoma-hero-button,.neoma-founder-button,.neoma-consultation-button) .elementor-button:is(:hover,:focus-visible),
body .neoma-contact-form-widget #gform_submit_button_1:is(:hover,:focus-visible) {
    color: #FFFFFF;
    background-color: #1C4E7F;
}
body .elementor .neoma-service-card:is(:hover,:focus-within) .elementor-button { color: #F3D586; }
.neoma-primary-content:focus { outline: none; }
.skip-link:focus { z-index: 2147483647; }
html { scroll-padding-block: 80px; }
/* In-flow mobile utility row: native launchers and dialogs remain available,
   with no floating controls obscuring content. Desktop positioning is unchanged. */
#neoma-site-utilities { display: contents; }
.neoma-utility-label { display: none; }
@media (max-width: 767px) {
    #neoma-site-utilities {
        display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
        gap: 16px; padding: 18px 24px max(18px, env(safe-area-inset-bottom));
        background: #EDF2FF; color: #12314F;
    }
    #neoma-site-utilities .neoma-utility-label { display: inline; flex-basis: 100%; text-align: center; font: 600 14px/1.5 Inter, sans-serif; }
    body #neoma-site-utilities .cky-btn-revisit-wrapper,
    body #neoma-site-utilities .uwy,
    body #neoma-site-utilities .uwy .userway_buttons_wrapper {
        position: static !important; inset: auto !important; transform: none !important;
        margin: 0 !important; width: 45px !important; height: 45px !important;
    }
}
/* The founder quote is small text on a gold panel, not a dark section. */
body .elementor.elementor .elementor-element.neoma-founder-quote { color: #12314F; }

/* Consent preferences remain reachable alongside the native accessibility launcher. */
body .neoma-cookie-preferences { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 20px; border: 1px solid #1C4E7F; border-radius: 24px; background: #1C4E7F; color: #FFFFFF; font: 600 14px/20px Inter, sans-serif; text-transform: none; letter-spacing: 0; }
body .neoma-cookie-preferences:hover { color: #FFFFFF; background: #12314F; }
body .neoma-cookie-preferences:focus-visible { outline: 3px solid #1C4E7F; outline-offset: 3px; }
@media (min-width: 768px) { body .neoma-cookie-preferences { display: block; width: max-content; margin: 16px auto; } }

/* Keep consent dialogs above third-party floating launchers. */
#cookiez-banner { position: relative; z-index: 2147483647; }
body #neoma-site-utilities button.neoma-cookie-preferences { background-color: #1C4E7F !important; color: #FFFFFF !important; }
