/* SkyBeam Divi 5 structural bridge — v1.0.17
   Visual design belongs to the original page-specific source CSS. */

#main-content,
#main-content > article,
#main-content .et-l,
#main-content .et_builder_inner_content,
#main-content .et_pb_section,
#main-content .et_pb_row,
#main-content .et_pb_column,
#main-content .et_pb_module,
#main-content .et_pb_text,
#main-content .et_pb_text_inner {
    width: 100%;
    max-width: none;
}

#main-content .et_pb_section,
#main-content .et_pb_row {
    margin: 0 !important;
    padding: 0 !important;
}

#main-content .et_pb_text_inner p {
    padding-bottom: 0;
}

/* wpautop protection for Home CSS grids */
#main-content .prods > p,
#main-content .refs > p {
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
}
#main-content .prods > br,
#main-content .refs > br,
#main-content .prods > p:empty,
#main-content .refs > p:empty {
    display: none !important;
}
#main-content .prods > .prod-slot,
#main-content .refs > .ref-slot {
    min-width: 0;
}

/* Product CTA alignment: exact source markup .prod > .b > .more */
#main-content .prod {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}
#main-content .prod > .b {
    position: relative !important;
    flex: 1 1 auto !important;
    padding-bottom: 58px !important;
}
#main-content .prod .more {
    position: absolute !important;
    left: 20px !important;
    bottom: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap;
}


/* v1.0.18 — focused cleanup after all-page source restore */

/* ---------------------------------------------------------
   HOME / PRODUCTS
   Divi wpautop can still inject empty p/br nodes inside cards.
   They create the white strip above images and the extra line
   below cards. Remove only those synthetic nodes.
   --------------------------------------------------------- */
#main-content .prod > p:empty,
#main-content .prod > br,
#main-content .prod-slot > p:empty,
#main-content .prod-slot > br {
    display: none !important;
}

#main-content .prod-slot {
    height: 100% !important;
}

#main-content .prod-slot > .prod,
#main-content .prod-slot > p > .prod {
    height: 100% !important;
    width: 100% !important;
}

#main-content .prod-slot > p {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

#main-content .prod {
    margin: 0 !important;
    box-shadow: none;
}

/* Keep the source image box exactly at 4:3 with no phantom row. */
#main-content .prod > .im {
    flex: 0 0 auto !important;
    width: 100% !important;
    aspect-ratio: 4 / 3 !important;
    margin: 0 !important;
}


/* ---------------------------------------------------------
   TECHNOLOGY / TEST & QUALIFICATION
   wpautop may wrap source <img> nodes in paragraphs, turning
   them into unintended grid items. Make those wrappers
   transparent to CSS Grid so the original 0.8fr / 1fr layout
   is restored.
   --------------------------------------------------------- */
#main-content .two figure > p,
#main-content .two figure > div > p {
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
}

#main-content .two figure > br,
#main-content .two figure > div > br {
    display: none !important;
}

#main-content .two figure img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}





/* v1.0.20 — About portraits use pre-rendered 2x square assets.
   The circle and navy ring are already baked into the source image.
   Do NOT redraw/crop the circle with CSS. */
#main-content .person img {
    display: block !important;
    width: 132px !important;
    height: 132px !important;
    max-width: 132px !important;
    min-width: 132px !important;
    object-fit: contain !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    margin: 0 auto 18px !important;
}





/* v1.0.21 — Contact form two-column restore
   Exact source markup uses two .row wrappers:
   row 1 = Full name + Company
   row 2 = Business email + Country
   remaining fields are full width. */
#main-content #cf2 {
    display: grid !important;
    gap: 12px !important;
}

#main-content #cf2 > .row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    width: 100% !important;
}

#main-content #cf2 > .row > .f {
    min-width: 0 !important;
}

/* Defensive wpautop cleanup without changing real form structure. */
#main-content #cf2 > p:empty,
#main-content #cf2 > br,
#main-content #cf2 > .row > p:empty,
#main-content #cf2 > .row > br {
    display: none !important;
}

@media (max-width: 760px) {
    #main-content #cf2 > .row {
        grid-template-columns: 1fr !important;
    }
}


/* v1.0.22 — Contact submit button matches source width */
#main-content #cf2 > button[type="submit"] {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    justify-self: stretch !important;
    box-sizing: border-box !important;
}


/* v1.0.23 — Contact submit wpautop wrapper fix
   WordPress/Divi wraps the submit button in a <p>, so styling only
   #cf2 > button could never match the rendered DOM. */
#main-content #cf2 > p:has(> button[type="submit"]) {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#main-content #cf2 > p > button[type="submit"],
#main-content #cf2 button[type="submit"] {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
    margin: 0 !important;
}


/* v1.0.24 — Contact privacy note links */
#main-content #cf2 .pn,
#main-content #cf2 .pn a {
    font-size: 12.5px !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
}

#main-content #cf2 .pn {
    color: var(--mute, #5b6275) !important;
}

#main-content #cf2 .pn a {
    color: var(--navy, #23297a) !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 2px !important;
}


/* v1.0.25 — force visible underline for Contact personal-data links.
   Divi/theme link rules can suppress text-decoration even with !important,
   so use a real bottom border instead. */
#main-content #cf2 .pn a,
#main-content #cf2 .pn a:link,
#main-content #cf2 .pn a:visited {
    color: var(--navy, #23297a) !important;
    text-decoration: none !important;
    display: inline !important;
    border-bottom: 1px solid currentColor !important;
    padding-bottom: 1px !important;
    box-shadow: none !important;
}

#main-content #cf2 .pn a:hover,
#main-content #cf2 .pn a:focus {
    border-bottom-color: currentColor !important;
}


/* v1.0.26 — Contact representative email links
   Same treatment as Personal Data links: use a real bottom border so
   Divi cannot suppress the visual underline. */
#main-content a[href^="mailto:"],
#main-content a[href^="mailto:"]:link,
#main-content a[href^="mailto:"]:visited {
    color: var(--navy, #23297a) !important;
    text-decoration: none !important;
    display: inline !important;
    border-bottom: 1px solid currentColor !important;
    padding-bottom: 1px !important;
    box-shadow: none !important;
}

#main-content a[href^="mailto:"]:hover,
#main-content a[href^="mailto:"]:focus {
    border-bottom-color: currentColor !important;
}


/* v1.0.27 — Contact page visible link underlines
   The source static HTML relies on browser-default underlines here,
   while Divi removes them globally. Recreate them with border-bottom. */

/* Personal data row */
#main-content .legal-row a,
#main-content .legal-row a:link,
#main-content .legal-row a:visited,

/* Representative cards: both mailto and normal website links */
#main-content .rep p a,
#main-content .rep p a:link,
#main-content .rep p a:visited {
    color: var(--navy, #23297a) !important;
    text-decoration: none !important;
    display: inline !important;
    border-bottom: 1px solid currentColor !important;
    padding-bottom: 1px !important;
    box-shadow: none !important;
}

#main-content .legal-row a:hover,
#main-content .legal-row a:focus,
#main-content .rep p a:hover,
#main-content .rep p a:focus {
    border-bottom-color: currentColor !important;
}


/* v1.0.28 — Contact link typography, hover and legal-row spacing */

/* Match source typography exactly; do not let Divi bold/resize links. */
#main-content .legal-row,
#main-content .legal-row a,
#main-content .rep p,
#main-content .rep p a {
    font-family: "Inter", "Segoe UI", Arial, sans-serif !important;
}

#main-content .legal-row,
#main-content .legal-row a {
    font-size: 14.5px !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
}

#main-content .legal-row > b {
    font-size: 14.5px !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
}

#main-content .rep p,
#main-content .rep p a {
    font-size: 14.5px !important;
    font-weight: 400 !important;
    line-height: 1.7 !important;
}

/* Copper hover, consistent with the active navigation accent. */
#main-content .legal-row a:hover,
#main-content .legal-row a:focus,
#main-content .rep p a:hover,
#main-content .rep p a:focus {
    color: var(--copper, #c98f57) !important;
    border-bottom-color: var(--copper, #c98f57) !important;
}

/* Reduce the oversized white gap below Personal data. */
#main-content .legal-row {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

#main-content section:has(.legal-row) {
    padding-bottom: 34px !important;
}


/* v1.0.29 — remove Divi/wpautop synthetic paragraphs that create artifacts */

/* HOME product cards:
   Divi may wrap the real <a class="prod"> in a <p>. That paragraph can create
   the extra line / spacing under the card. Make the wrapper transparent. */
#main-content .prod-slot > p:has(> a.prod) {
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

/* Product-page CTA/form areas:
   Empty wrapper paragraphs can become visible spacer bars/rows. */
#main-content #contact .cta > p:empty,
#main-content #contact .cta form > p:empty,
#main-content #contact .cta form > br,
#main-content .band-cta > p:empty,
#main-content .band-cta > br {
    display: none !important;
}


/* v1.0.30 — product-page source navigation + embedded form hardening */

/* GTAS product-local anchor navigation was lost when all <nav> elements
   were excluded during the all-page rebuild. Its source .subnav is restored
   in the layout; keep Divi wrappers from adding vertical space around it. */
#main-content .subnav {
    margin: 0 !important;
}

/* GTAS datasheet card:
   use span children inside the anchor so wpautop cannot split a block-level
   anchor into empty styled fragments. */
#main-content #contact .cta .dl > .pdf,
#main-content #contact .cta .dl > .dlinfo {
    display: block;
}

#main-content #contact .cta .dl > .dlinfo {
    flex: 1 1 auto;
    min-width: 0;
}

#main-content #contact .cta .dl > .dlinfo > b,
#main-content #contact .cta .dl > .dlinfo > small {
    display: block !important;
}

#main-content #contact .cta > div > p:has(> a.dl) {
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Remove only synthetic empty paragraph/br nodes created by wpautop. */
#main-content #contact .cta > p:empty,
#main-content #contact .cta > div > p:empty,
#main-content #contact .cta > div > br,
#main-content #contact .cta form > p:empty,
#main-content #contact .cta form > br {
    display: none !important;
}

/* Preserve original two-column form rows. */
#main-content #contact .cta form > .row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

/* wpautop wraps Send Request in <p>; make that wrapper span the grid width. */
#main-content #contact .cta form > p:has(> button[type="submit"]) {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#main-content #contact .cta form > p > button[type="submit"],
#main-content #contact .cta form > button[type="submit"] {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    margin: 0 !important;
}

/* Product-form privacy links: source relies on visible browser underline.
   Divi removes it, so reproduce it with a border. */
#main-content #contact .cta form p a {
    text-decoration: none !important;
    border-bottom: 1px solid currentColor !important;
    padding-bottom: 1px !important;
}

#main-content #contact .cta form p a:hover,
#main-content #contact .cta form p a:focus {
    color: var(--copper, #c98f57) !important;
    border-bottom-color: var(--copper, #c98f57) !important;
}

@media (max-width: 760px) {
    #main-content #contact .cta form > .row {
        grid-template-columns: 1fr !important;
    }
}


/* v1.0.31 — Home product card DOM fix */

/* Legacy rendered content may still contain wpautop's duplicated:
   .prod-slot > p > a.prod
   Hide that synthetic duplicate completely. */
#main-content .prod-slot > p {
    display: none !important;
}

/* New source layout uses a DIV as the card root, so wpautop cannot split it. */
#main-content .prod-click {
    cursor: pointer;
}

#main-content .prod-click:focus-visible {
    outline: 2px solid var(--copper, #c98f57);
    outline-offset: 2px;
}

#main-content .prod-click .more {
    color: var(--navy, #23297a) !important;
    text-decoration: none !important;
    border: 0 !important;
}


/* v1.0.33 — GTAS FAQ + contact-form visual alignment */

/* FAQ: keep consistent vertical spacing when items expand.
   Divi can collapse margins inside details/accordion-like blocks. */
#main-content #faq .faq,
#main-content #faq .faqs,
#main-content #faq .faq-grid {
    align-items: start !important;
}

#main-content #faq details,
#main-content #faq .faq-item,
#main-content #faq .q {
    margin-bottom: 14px !important;
}

#main-content #faq details[open],
#main-content #faq .faq-item.open,
#main-content #faq .q.open {
    padding-bottom: 18px !important;
}

/* GTAS contact card spacing */
#main-content #contact .cta form {
    display: grid !important;
    gap: 12px !important;
}

#main-content #contact .cta form > select,
#main-content #contact .cta form > textarea {
    margin: 0 !important;
}

#main-content #contact .cta form > select {
    margin-bottom: 0 !important;
}

#main-content #contact .cta form > textarea {
    margin-top: 0 !important;
}

/* Make the native select visually stable and source-like.
   We cannot style the browser's opened option popup consistently,
   but we can prevent the closed control from collapsing into textarea. */
#main-content #contact .cta select {
    min-height: 48px !important;
    line-height: 1.2 !important;
    padding: 12px 42px 12px 14px !important;
    color: #c9cde4 !important;
    background-color: rgba(255,255,255,.07) !important;
    border: 1px solid rgba(255,255,255,.2) !important;
    border-radius: 8px !important;
    appearance: auto !important;
    -webkit-appearance: auto !important;
}

#main-content #contact .cta select:focus {
    outline: none !important;
    border-color: rgba(201,205,228,.55) !important;
    box-shadow: 0 0 0 1px rgba(201,205,228,.15) !important;
}

/* Datasheet card: source-like icon proportions and clean left block */
#main-content #contact .cta .dl {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
}

#main-content #contact .cta .dl .pdf {
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 52px !important;
    min-width: 44px !important;
    min-height: 52px !important;
    max-width: 44px !important;
    max-height: 52px !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 6px !important;
    background: var(--copper, #c98f57) !important;
    color: var(--navy2, #151a52) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
}

#main-content #contact .cta .dl .dlinfo {
    display: block !important;
}

#main-content #contact .cta .dl .dlinfo b {
    display: block !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
}

#main-content #contact .cta .dl .dlinfo small {
    display: block !important;
    color: #aab0d0 !important;
    font-size: 13px !important;
    margin-top: 2px !important;
}

/* Contact email line: match source light text instead of link-blue.
   It is plain text in source and should not look like a hyperlink. */
#main-content #contact .cta > div > p[style*="font-size:15px"],
#main-content #contact .cta > div > p[style*="font-size: 15px"] {
    color: #c9cde4 !important;
}

#main-content #contact .cta > div > p[style*="font-size:15px"] a,
#main-content #contact .cta > div > p[style*="font-size: 15px"] a {
    color: #c9cde4 !important;
    text-decoration: none !important;
    border-bottom: 0 !important;
}


/* v1.0.34 — GTAS FAQ spacing correction
   Undo the broad item margins from v1.0.33; preserve source card spacing. */
#main-content #faq details,
#main-content #faq .faq-item,
#main-content #faq .q {
    margin-bottom: 0 !important;
}

#main-content #faq details[open],
#main-content #faq .faq-item.open,
#main-content #faq .q.open {
    padding-bottom: 0 !important;
}

/* Give only the expanded answer its internal breathing room,
   without increasing row-to-row gaps. */
#main-content #faq details[open] > :last-child,
#main-content #faq .faq-item.open > :last-child,
#main-content #faq .q.open > :last-child {
    margin-bottom: 0 !important;
}

/* GTAS select -> textarea gap.
   Handle both direct controls and wpautop paragraph wrappers. */
#main-content #cf > select + textarea {
    margin-top: 12px !important;
}

#main-content #cf > p:has(> select) + p:has(> textarea) {
    margin-top: 12px !important;
}

#main-content #cf > p:has(> select),
#main-content #cf > p:has(> textarea) {
    margin-bottom: 0 !important;
    padding: 0 !important;
}


/* v1.0.34 — Global RFI modal source styles */
.rfi {position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center; padding:16px; background:rgba(15,20,64,.62); backdrop-filter:blur(3px);}
.rfi.open {display:flex;}
.rfi .box {position:relative; width:100%; max-width:600px; max-height:calc(100vh - 32px); overflow:auto; background:#fff; border-radius:14px; box-shadow:0 30px 80px rgba(0,0,0,.35); font-family:"Inter","Segoe UI",Arial,sans-serif; color:#1d2233;}
.rfi .hd {padding:24px 28px 16px; border-bottom:1px solid #e2e5ee;}
.rfi .hd small {font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#c89b6d;}
.rfi .hd b {display:block; color:#151a52; font-size:20px; line-height:1.25; margin-top:4px;}
.rfi .hd p {margin:6px 0 0; font-size:14px; color:#5b6275;}
.rfi .x {position:absolute; top:12px; right:14px; width:34px; height:34px; border:0; background:none; font-size:26px; line-height:1; color:#5b6275; cursor:pointer; border-radius:6px;}
.rfi .x:hover {background:#f1f2f8;}
.rfi form {display:grid !important; gap:12px; margin:0; padding:20px 28px 26px;}
.rfi .row {display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.rfi label.f {display:grid; gap:5px; font-size:13px; font-weight:600; color:#1d2233;}
.rfi label.f i {font-style:normal; color:#c0392b;}
.rfi input[type=text], .rfi input[type=email], .rfi select, .rfi textarea {width:100%; padding:11px 13px; border-radius:8px; border:1px solid #cfd3e0; background:#fff; color:#1d2233; font:inherit; font-size:15px; font-weight:400;}
.rfi textarea {resize:vertical; min-height:96px;}
.rfi input:focus, .rfi select:focus, .rfi textarea:focus {outline:2px solid rgba(35,41,122,.25); border-color:#23297a;}
.rfi .bad {border-color:#c0392b !important;}
.rfi .chk {display:flex; gap:10px; align-items:flex-start; font-size:13px; color:#5b6275; line-height:1.45; font-weight:400;}
.rfi .chk input {flex:none; width:16px !important; height:16px; margin:2px 0 0; padding:0; accent-color:#23297a;}
.rfi p.pn {margin:0; font-size:12.5px; color:#5b6275; line-height:1.5;}
.rfi p.pn a {color:#23297a;}
.rfi .err {display:none; font-size:13px; color:#c0392b;}
.rfi button.go {margin-top:4px; padding:13px 22px; border-radius:6px; border:0; background:#23297a; color:#fff; font:inherit; font-weight:600; font-size:15px; cursor:pointer;}
.rfi button.go:hover {background:#151a52;}
.rfi .ok {display:none; padding:40px 28px 34px; text-align:center;}
.rfi .ok b {display:block; color:#151a52; font-size:20px; margin-bottom:8px;}
.rfi .ok p {margin:0 0 20px; color:#5b6275; font-size:14.5px;}
.rfi .ok button {padding:11px 20px; border-radius:6px; border:1.5px solid #23297a; background:#fff; color:#23297a; font:inherit; font-weight:600; cursor:pointer;}
.rfi.done form, .rfi.done .hd {display:none !important;}
.rfi.done .ok {display:block;}
.rfi .row {grid-template-columns:1fr;}
.rfi .hd, .rfi form {padding-left:20px; padding-right:20px;}


/* v1.0.35 — GTAS FAQ open spacing + form field normalization */

/* FAQ: closed cards keep source compact rhythm; opened answer gets bottom space
   INSIDE the card, not between all rows. */
#main-content #faq details {
    margin: 0 !important;
}

#main-content #faq details[open] {
    padding-bottom: 14px !important;
}

#main-content #faq details[open] > p {
    margin-bottom: 0 !important;
}

/* GTAS form: force dark source styling on ALL controls, including focused email. */
#main-content #cf input[type="text"],
#main-content #cf input[type="email"],
#main-content #cf select,
#main-content #cf textarea {
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 12px 14px !important;
    border-radius: 8px !important;
    border: 1px solid rgba(255,255,255,.2) !important;
    background: rgba(255,255,255,.07) !important;
    color: #fff !important;
    font: inherit !important;
    font-size: 15px !important;
    box-shadow: none !important;
}

#main-content #cf input[type="text"]:focus,
#main-content #cf input[type="email"]:focus,
#main-content #cf select:focus,
#main-content #cf textarea:focus {
    background: rgba(255,255,255,.07) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,.32) !important;
    outline: none !important;
    box-shadow: 0 0 0 1px rgba(255,255,255,.08) !important;
}

#main-content #cf input::placeholder,
#main-content #cf textarea::placeholder {
    color: #9aa0c4 !important;
    opacity: 1 !important;
}

/* The source form is a grid with 12px gap.
   Divi/wpautop can wrap controls in <p>; normalize both direct and wrapped cases. */
#main-content #cf {
    display: grid !important;
    gap: 12px !important;
}

#main-content #cf > p {
    margin: 0 !important;
    padding: 0 !important;
}

#main-content #cf > select,
#main-content #cf > textarea,
#main-content #cf > p > select,
#main-content #cf > p > textarea {
    margin: 0 !important;
}

/* Explicit vertical gap between select and textarea for both possible DOM shapes. */
#main-content #cf > select + textarea,
#main-content #cf > select + p:has(> textarea),
#main-content #cf > p:has(> select) + textarea,
#main-content #cf > p:has(> select) + p:has(> textarea) {
    margin-top: 12px !important;
}

/* Prevent white browser autofill/focus background on email field. */
#main-content #cf input:-webkit-autofill,
#main-content #cf input:-webkit-autofill:hover,
#main-content #cf input:-webkit-autofill:focus {
    -webkit-text-fill-color: #fff !important;
    -webkit-box-shadow: 0 0 0 1000px #2b3068 inset !important;
    transition: background-color 9999s ease-out 0s !important;
}


/* v1.0.36 — GTAS select/textarea structural fix */
#main-content #cf > .field-select,
#main-content #cf > .field-message {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#main-content #cf > .field-select select,
#main-content #cf > .field-message textarea {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
}

#main-content #cf > .field-message {
    margin-top: 12px !important;
}
