/* Shared company footer, with separate light and dark palettes. */
footer.company-footer {
  --footer-accent: #70e2bd;
  padding: 80px 0 28px;
  overflow: hidden;
  isolation: isolate;
  background: radial-gradient(ellipse at 0 0, #123e43, transparent 55%), #091c25;
  color: #d1e0e5;
}
.company-footer::before,
.company-footer::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  border: 3px solid rgb(112 226 189 / 20%);
  border-radius: 50%;
}
.company-footer::before { width: 330px; height: 330px; right: -170px; top: 20px; }
.company-footer::after { width: 160px; height: 160px; left: -90px; bottom: -60px; }
.company-footer-grid {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1.15fr 1fr;
  gap: 40px;
  margin-bottom: 54px;
}
.company-footer-grid > * { min-width: 0; }
footer.company-footer .footer-logo { margin-bottom: 22px; }
footer.company-footer .footer-logo img { width: 230px; max-width: 100%; }
.company-footer-brand p { margin: 0 0 16px; font-size: 15px; line-height: 1.8; color: #d1e0e5; }
.company-footer-name { display: block; color: #aec4cc; font-size: 13px; line-height: 1.7; }
.company-footer-links h2 {
  position: relative;
  padding: 0 0 15px;
  margin: 0 0 24px;
  font-size: 20px;
  line-height: 1.4;
  color: #f2f8fa;
}
.company-footer-links h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 42px;
  height: 3px;
  background: var(--footer-accent);
  border-radius: 3px;
}
.company-footer-links ul { margin: 0; padding: 0; list-style: none; }
.company-footer-links li { margin: 0 0 12px; font-size: 14px; font-weight: 400; line-height: 1.5; }
.company-footer-links a { display: inline-flex; align-items: baseline; gap: 9px; color: #d1e0e5; }
.company-footer-links a i { font-size: 10px; color: var(--footer-accent); }
.company-footer-links a:hover { color: var(--footer-accent); text-decoration: underline; text-underline-offset: 4px; }
.company-footer-contact {
  display: grid;
  grid-template-columns: 1.1fr 1.2fr 0.9fr;
  padding: 25px 20px;
  border-radius: 16px;
  background: #70e2bd;
  color: #08251e;
}
.company-footer-detail { display: flex; align-items: center; gap: 16px; min-width: 0; padding: 0 20px; }
.company-footer-detail + .company-footer-detail { border-left: 1px solid rgb(8 37 30 / 25%); }
.company-footer-detail > i { font-size: 34px; flex: 0 0 38px; color: #125247; }
.company-footer-detail > div { min-width: 0; }
.company-footer-detail strong { display: block; font-size: 14px; font-weight: 700; line-height: 1.5; margin-bottom: 4px; }
.company-footer-detail :is(address, a, span) { font-size: 13px; font-style: normal; font-weight: 600; line-height: 1.6; overflow-wrap: anywhere; }
.company-footer .company-footer-detail a { color: #08251e; }
.company-footer .company-footer-detail a:hover { color: #08251e; text-decoration: underline; text-underline-offset: 3px; }
.company-footer-copyright { padding-top: 26px; font-size: 13px; line-height: 1.8; }
.company-footer-copyright a { color: var(--footer-accent); font-weight: 700; }
.company-footer a:focus-visible { outline: 2px solid var(--footer-accent); outline-offset: 5px; border-radius: 2px; }
.company-footer-contact a:focus-visible { outline-color: #08251e; }
html[data-theme="dark"] footer.company-footer { background: radial-gradient(ellipse at 0 0, #102d35, transparent 55%), #07131b; }
html[data-theme="dark"] .company-footer .company-footer-detail a,
html[data-theme="dark"] .company-footer .company-footer-detail a:hover { color: #08251e; }
/* Use the original dark-lettered logo on the light surface. */
.company-footer .footer-logo-light { display: none; }
html:not([data-theme="dark"]) .company-footer .footer-logo-light { display: block; }
html:not([data-theme="dark"]) .company-footer .footer-logo-dark { display: none; }
html:not([data-theme="dark"]) footer.company-footer {
  --footer-accent: #08765d;
  background: radial-gradient(ellipse at 0 0, #dcefe9, transparent 55%), #f3f8f7;
  color: #304f58;
  border-top: 1px solid #d4e5df;
}
html:not([data-theme="dark"]) .company-footer::before,
html:not([data-theme="dark"]) .company-footer::after { border-color: rgb(8 118 93 / 14%); }
html:not([data-theme="dark"]) .company-footer-brand p,
html:not([data-theme="dark"]) .company-footer-links a { color: #304f58; }
html:not([data-theme="dark"]) .company-footer-name { color: #526c73; }
html:not([data-theme="dark"]) .company-footer-links h2 { color: #123c43; }
html:not([data-theme="dark"]) .company-footer-links a:hover { color: #075c49; }
html:not([data-theme="dark"]) .company-footer-contact {
  background: #cceee2;
  box-shadow: inset 0 0 0 1px #a6d7c6;
}
html:not([data-theme="dark"]) .company-footer-copyright a:hover { color: #075c49; }
@media (max-width: 1050px) {
  .company-footer-grid { grid-template-columns: 1.4fr 1fr 1fr; gap: 30px; }
  .company-footer-brand { grid-column: 1 / -1; max-width: 560px; }
  .company-footer-contact { grid-template-columns: 1fr; padding: 12px 24px; }
  .company-footer-detail { padding: 18px 0; }
  .company-footer-detail + .company-footer-detail { border-left: 0; border-top: 1px solid rgb(8 37 30 / 25%); }
}
@media (max-width: 600px) {
  footer.company-footer { padding-top: 48px; }
  .company-footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 20px; margin-bottom: 32px; }
  .company-footer-links h2 { font-size: 18px; margin-bottom: 20px; }
  .company-footer-detail { gap: 12px; }
  .company-footer-detail > i { font-size: 28px; flex-basis: 32px; }
}
@media (max-width: 380px) {
  .company-footer-grid { grid-template-columns: 1fr; }
}
