/* Shared outer content frame. Authority: Design/Website_Style_Guide.md. */
:root {
  --page-content-max:1452px;
  --page-gutter:42px;
  --contact-action-width:225px;
}
@media (max-width:1300px) { :root { --page-gutter:27px; } }
@media (max-width:900px) { :root { --page-gutter:24px; } }
@media (max-width:640px) { :root { --page-gutter:22px; } }
@media (max-width:370px) { :root { --page-gutter:18px; } }

body[data-page] :is(
  .product-container, .hero-inner, .hero-baseline, .contracts-inner,
  .content-section, .partners-inner, .solutions-strip,
  .about-hero-inner, .about-industries,
  .careers-hero-inner, .careers-values, .careers-section-inner,
  .careers-equal-opportunity, .job-hero-inner,
  .contact-inner, .site-footer
) {
  width:min(calc(100% - 2 * var(--page-gutter)),var(--page-content-max));
  max-width:var(--page-content-max);
  margin-inline:auto;
  padding-inline:0;
  min-width:0;
}

/* The Home copy and both right-hand elements use the same outer edges. */
body[data-page="home"] .hero-copy { padding-left:0; }
body[data-page="home"] .hero h1 { margin-left:0; }
body[data-page="home"] .communications-label { right:0; }
body[data-page="home"] .odin-feature { right:0; }
@media (max-width:640px) {
  body[data-page="home"] .odin-feature { left:0; width:100%; max-width:none; }
}

/* Match the ISO column to the shared contact action without moving other groups. */
body[data-page] .contact-actions .button { min-width:var(--contact-action-width); }
body[data-page] .footer-certifications-right {
  justify-self:end;
  text-align:right;
}
@media (max-width:640px) {
  body[data-page] .footer-certifications-right {
    justify-self:start;
    width:var(--contact-action-width);
    max-width:100%;
  }
}

/* Contact band (redesigned 2026-11-05): one panel with the message, the EDWOSB card and the company details.
   A blue-to-green accent line on top, soft brand light in the corners, evenly aligned columns with hairline dividers. */
body[data-page] .contact-section { position:relative; isolation:isolate; overflow:hidden; border-top:0; border-bottom:1px solid #1b3d5e;
  background:
    radial-gradient(ellipse 55% 160% at 0% 0%, #12457a8c, transparent 60%),
    radial-gradient(ellipse 45% 140% at 100% 100%, rgba(140,198,63,.12), transparent 62%),
    linear-gradient(115deg, #0b2b4b 0%, #071d35 55%, #061629 100%); }
body[data-page] .contact-section::before { content:""; position:absolute; inset:0 0 auto; height:2px; background:linear-gradient(90deg, transparent, #3aa0ff 18%, #8cc63f 82%, transparent); opacity:.9; }
body[data-page] .contact-section::after { content:""; position:absolute; z-index:-1; inset:0; background-image:radial-gradient(#ffffff0f 1px, transparent 1.3px); background-size:22px 22px; -webkit-mask-image:linear-gradient(90deg, transparent 30%, #000 70%); mask-image:linear-gradient(90deg, transparent 30%, #000 70%); }
body[data-page] .contact-inner { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(250px,auto) minmax(0,1fr); align-items:center; gap:clamp(28px,4vw,56px); padding-block:44px; }
body[data-page] .contact-message .eyebrow { margin:0 0 12px; }
body[data-page] .contact-message h2 { margin:0; font-size:clamp(25px,2.25vw,32px); line-height:1.25; }
body[data-page] .contact-message h2 span { white-space:nowrap; }

body[data-page] .contact-certification { display:flex; align-items:center; gap:16px; max-width:380px; margin:0; padding:18px 24px; border:1px solid #5b95c64d; border-radius:16px; background:linear-gradient(160deg, #ffffff12, #ffffff05); box-shadow:inset 0 1px 0 #ffffff14, 0 14px 34px #0005; text-align:left; }
body[data-page] .contact-cert-icon { display:grid; flex:0 0 auto; place-items:center; width:56px; height:56px; border:1px solid #3aa0ff59; border-radius:50%; background:radial-gradient(circle at 35% 30%, #1d5a92, #0c2c4c); box-shadow:0 0 22px #3aa0ff40; }
body[data-page] .contact-cert-icon img { width:30px; height:30px; }
body[data-page] .contact-certification p { margin:0; font-family:Exo,Arial,sans-serif; font-size:15.5px; font-weight:700; line-height:1.35; color:#f1f7fd; text-wrap:balance; }

body[data-page] .contact-actions { display:grid; gap:16px; justify-self:end; padding-left:clamp(24px,3vw,40px); border-left:1px solid #5b95c633; font-size:13px; color:#c3d6e8; }
body[data-page] .contact-identity { margin:0; }
body[data-page] .contact-logo { display:block; width:190px; height:auto; }
body[data-page] .contact-identity > p { margin:10px 0 0; font-size:12.5px; letter-spacing:.02em; color:#a8bdd1; }
body[data-page] .contact-address { display:grid; gap:10px; font-size:14px; font-style:normal; }
body[data-page] .contact-address > a { display:grid; grid-template-columns:18px auto; align-items:start; gap:10px; width:fit-content; color:#dbe9f6; text-decoration:none; }
body[data-page] .contact-address > a > img { width:18px; height:18px; margin-top:2px; opacity:.85; }
body[data-page] .contact-address .contact-map-link > span { display:grid; gap:2px; }
body[data-page] .contact-address > a:hover, body[data-page] .contact-address > a:focus-visible { color:#fff; }
body[data-page] .contact-address > a:hover span, body[data-page] .contact-address > a:focus-visible span { text-decoration:underline; text-underline-offset:4px; }

@media (max-width:1100px) {
  body[data-page] .contact-inner { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); row-gap:26px; }
  body[data-page] .contact-message { grid-column:1; grid-row:1; }
  body[data-page] .contact-certification { grid-column:1; grid-row:2; justify-self:start; }
  body[data-page] .contact-actions { grid-column:2; grid-row:1 / span 2; align-self:center; justify-self:stretch; }
}
@media (max-width:640px) {
  body[data-page] .contact-inner { grid-template-columns:minmax(0,1fr); gap:24px; padding-block:36px; }
  body[data-page] :is(.contact-message, .contact-certification, .contact-actions) { grid-column:1; grid-row:auto; }
  body[data-page] .contact-certification { max-width:none; }
  body[data-page] .contact-actions { padding:24px 0 0; border-left:0; border-top:1px solid #5b95c633; }
  body[data-page] .contact-logo { width:170px; }
}

/* Footer bottom row: copyright centered, Back to top on the right; same 12px text as the rest of the footer. */
body[data-page] .footer-bottom { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:24px; font-size:12px; }
body[data-page] .footer-bottom > p { grid-column:2; text-align:center; color:#a8bdd1; }
body[data-page] .footer-bottom .back-top { grid-column:3; justify-self:end; font-size:12px; }
/* Privacy Policy and Terms and Conditions links on the left (2026-11-05). */
body[data-page] .footer-legal { grid-column:1; grid-row:1; justify-self:start; display:flex; flex-wrap:wrap; gap:6px 20px; }
body[data-page] .footer-bottom > p { grid-row:1; }
body[data-page] .footer-bottom .back-top { grid-row:1; }
body[data-page] .footer-legal a { font-size:12px; color:#a8bdd1; text-decoration:none; }
body[data-page] .footer-legal a:hover, body[data-page] .footer-legal a:focus-visible, body[data-page] .footer-legal a[aria-current] { color:#fff; text-decoration:underline; text-underline-offset:3px; }
@media (max-width:640px) {
  body[data-page] .footer-bottom { grid-template-columns:minmax(0,1fr); gap:10px; }
  body[data-page] .footer-bottom > p, body[data-page] .footer-bottom .back-top, body[data-page] .footer-legal { grid-column:1; grid-row:auto; justify-self:center; }
  body[data-page] .footer-bottom > p { order:1; }
  body[data-page] .footer-legal { order:2; justify-content:center; }
  body[data-page] .footer-bottom .back-top { order:3; }
}

/* Footer is now the copyright row only; the contact band above supplies the dividing line. */
body[data-page] .footer-bottom { margin-top:0; padding-top:0; border-top:0; }
