@import url("tokens.css");
.pyonair-closing, .pyonair-footer, .pyonair-closing *, .pyonair-footer * { box-sizing: border-box; }
.pyonair-closing, .pyonair-footer { font-family: var(--py-font,"DM Sans",Arial,sans-serif); line-height: 1.45; }
.pyonair-footer-shell { width: min(1248px,calc(100% - 128px)); margin-inline: auto; }
.pyonair-closing { background: #151112 url("backgrounds/red-wave-footer.svg") center / cover no-repeat; color: #fff; }
.pyonair-closing-grid { min-height: 168px; padding-block: 34px; display: grid; grid-template-columns: 1.28fr .95fr auto; align-items: center; gap: 32px; }
.pyonair-closing-kicker { color: white; margin: 0 0 9px; font-size: 12px; line-height: 1.4; letter-spacing: .15em; font-weight: 600; }
.pyonair-closing h2 { margin: 0; color: #fff; font-size: clamp(30px,3.12vw,43px); line-height: 1.07; letter-spacing: -.03em; font-weight: 700; }
.pyonair-closing-copy { border-left: 1px solid rgb(255 255 255 / 20%); padding-left: 26px; margin: 0; color: #fff; font-size: 13px; max-width: 385px; }
.pyonair-footer-cta { display: inline-flex; justify-content: center; align-items: center; gap: 11px; min-height: 48px; min-width: 160px; background: var(--py-action,#DA263A); color: #fff; border: 1px solid transparent; border-radius: 6px; padding: 12px 23px; font-size: 14px; font-weight: 700; text-decoration: none; line-height: 1.3; }
.pyonair-footer-cta:hover { background: #C21F31; }
.pyonair-footer-cta svg { width: 19px; height: 19px; }
.pyonair-footer { background: #fff; color: #637083; padding: 33px 0 28px; }
.pyonair-footer-grid { display: grid; grid-template-columns: 1.85fr .83fr .82fr .84fr; gap: 48px; }
.pyonair-footer-brand img { width: 118px; height: auto; display: block; max-width: 100%; }
.pyonair-footer-brand p { margin: 12px 0 15px; font-size: 13px; max-width: 355px; }
.pyonair-footer-social { display: flex; align-items: center; flex-wrap: wrap; gap: 13px; }
.pyonair-footer-social a { display: inline-flex; align-items: center; justify-content: center; color: #101112; min-width: 25px; min-height: 32px; cursor: pointer; }
.pyonair-footer-social svg { width: 21px; height: 21px; display: block; }
.pyonair-footer-social a:hover { color: var(--py-action,#DA263A); }
.pyonair-footer-tagline { font-size: 12px; border-left: 1px solid #DDE2E8; padding-left: 13px; }
.pyonair-footer-column h3 { font-size: 10px; letter-spacing: .1em; font-weight: 600; margin: 1px 0 12px; line-height: 1.4; color: #52617A; }
.pyonair-footer-column ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.pyonair-footer-column a, .pyonair-footer-legal a { font-size: 13px; color: #5B6B82; text-decoration: none; }
.pyonair-footer-column a:hover, .pyonair-footer-legal a:hover { color: #BC1C30; text-decoration: underline; }
.pyonair-footer-bottom { border-top: 1px solid #E6E8EC; margin-top: 27px; padding-top: 19px; display: flex; gap: 20px; justify-content: space-between; align-items: start; }
.pyonair-footer-bottom p { margin: 0; font-size: 12px; }
.pyonair-footer-legal { display: flex; flex-wrap: wrap; gap: 18px; }
.pyonair-footer-legal a { font-size: 12px; }
.pyonair-closing :is(a,button):focus-visible, .pyonair-footer :is(a,button):focus-visible { outline: 3px solid var(--py-red,#E63946); outline-offset: 4px; }
.pyonair-footer a[aria-disabled="true"] { cursor: help; }
@media(max-width:1100px) { .pyonair-footer-grid { gap: 30px; } .pyonair-closing-grid { gap: 22px; } .pyonair-closing h2 { font-size: 33px; } .pyonair-closing-copy { padding-left: 20px; font-size: 12px; } .pyonair-footer-cta { min-width: 148px; } }
@media(max-width:860px) {
 .pyonair-footer-shell { width: min(720px,calc(100% - 40px)); }
 .pyonair-closing-grid { grid-template-columns: minmax(0,1fr); gap: 22px; padding-block: 30px; }
 .pyonair-closing h2 { font-size: 36px; }
 .pyonair-closing-copy { padding: 0; border: 0; max-width: 48ch; font-size: 14px; }
 .pyonair-footer-cta { justify-self: start; min-height: 48px; }
 .pyonair-footer-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px; }
 .pyonair-footer-brand { grid-column: 1/-1; }
 .pyonair-footer-brand p { max-width: 430px; font-size: 14px; }
 .pyonair-footer-social a { min-width: 36px; min-height: 40px; }
 .pyonair-footer-column ul { gap: 3px; }
 .pyonair-footer-column a { display: inline-flex; align-items: center; min-height: 34px; font-size: 14px; }
 .pyonair-footer-bottom { flex-direction: column; gap: 14px; }
 .pyonair-footer-legal a { min-height: 36px; display: inline-flex; align-items: center; }
}
@media(max-width:560px) {
 .pyonair-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 25px 18px; }
 .pyonair-footer { padding-top: 28px; padding-bottom: 21px; }
 .pyonair-footer-tagline { font-size: 11px; padding-left: 11px; }
 .pyonair-footer-social { gap: 7px; }
 .pyonair-footer-column h3 { font-size: 11px; margin-bottom: 8px; }
 .pyonair-footer-column a { min-height: 40px; }
 .pyonair-closing h2 { font-size: 34px; max-width: 17ch; }
 .pyonair-footer-bottom p { max-width: 36ch; line-height: 1.6; }
}

/* --- Integration hardening (added at site assembly, not part of the handoff).
   Bare element rules in per-page stylesheets (footer, footer::before, nav, p on
   the homepage; p on managed-services) would otherwise restyle this component.
   Class-level resets for every property those element rules set. --- */
.pyonair-footer{display:block;max-width:none;margin:0;min-height:0;
  grid-template-columns:none;align-items:normal;gap:0;position:static;
  overflow:visible;border-radius:0}
.pyonair-footer::before{content:none}
.pyonair-footer > *{position:static;z-index:auto}
.pyonair-footer p{color:inherit}
.pyonair-closing p,.pyonair-footer p{line-height:1.45}
.pyonair-footer-column{display:block;margin-left:0}
.pyonair-footer-legal{margin-left:0}
/* Official logo is 332.4x84.5 (3.93:1): cap height, width auto, never distort */
.pyonair-footer-brand img{height:30px;width:auto;max-width:100%;object-fit:contain;display:block}
