.site-footer { overflow: hidden; background: radial-gradient(ellipse at 50% 35%, #fcfaf5, #f6f2e9); color: #c31830; }
.footer-filter-definitions { position: absolute; overflow: hidden; pointer-events: none; }
.footer-promo { position: relative; width: min(94%, 1160px); height: 285px; margin-inline: auto; }
.footer-brand-badge { position: absolute; z-index: 1; top: 22px; left: 50%; display: flex; width: 176px; height: 176px; align-items: flex-start; justify-content: center; padding-top: 27px; border: 1px solid #d9ccba; border-radius: 50%; background: linear-gradient(145deg, #fffaf0, #f6f0e4); box-shadow: 0 -3px 17px rgba(66, 47, 21, 0.14), inset 0 2px 2px #fff; color: #c21b31; font-size: 36px; font-weight: 750; letter-spacing: -0.065em; line-height: 1; transform: translateX(-50%); }
.footer-traveler-panel { position: absolute; z-index: 1; top: 114px; left: 0; width: 26%; height: 114px; background: linear-gradient(135deg, #fffcf4, #f7efdf); clip-path: polygon(0 0, 82% 0, 100% 100%, 20% 100%); filter: drop-shadow(0 6px 9px rgba(56, 39, 18, 0.2)); }
.footer-traveler-icon { position: absolute; z-index: 2; top: -6px; left: 32px; width: 128px; height: 128px; }
.footer-traveler-icon img, .footer-traveler-icon canvas { display: block; width: 100%; height: 100%; object-fit: contain; }
.footer-flight-path { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; fill: none; stroke: #c31830; stroke-width: 2.4; stroke-dasharray: 7 7; stroke-linecap: round; }
.footer-ribbon { position: absolute; z-index: 2; top: 92px; right: 0; left: 14.6%; height: 136px; filter: drop-shadow(0 8px 7px rgba(62, 28, 18, 0.25)); }
.footer-ribbon-face { position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, #df263d, #bc142a 27%, #c41930 80%, #e32b40); clip-path: polygon(0 0, 100% 0, 92.5% 100%, 7.5% 100%); }
.footer-ribbon-face::after { position: absolute; inset: 5px 7px; background: linear-gradient(110deg, #c0182e, #d11c31 48%, #bc122a); clip-path: polygon(0 0, 100% 0, 92.5% 100%, 7.5% 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18); content: ""; }
.footer-ribbon-fold { position: absolute; z-index: 0; right: 30%; bottom: -10px; left: 7.5%; height: 22px; background: linear-gradient(#8d0b1e, #ba152b); clip-path: polygon(0 0, 100% 0, 98.5% 100%, 1% 100%); }
.footer-ribbon-content { position: relative; z-index: 2; display: grid; height: 100%; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 0 7.5%; }
.footer-ribbon-content h2 { margin: 0; color: #fff4df; font-size: clamp(20px, 2vw, 29px); font-weight: 500; letter-spacing: -0.045em; line-height: 1.18; }
.footer-ribbon-content h2 span { display: block; }
.footer-packages { display: inline-flex; width: clamp(230px, 18.5vw, 274px); min-height: 48px; align-items: center; justify-content: center; gap: 12px; padding: 10px 16px; background: linear-gradient(180deg, #fffcf4, #f7efde); clip-path: polygon(3% 0, 95% 0, 100% 50%, 95% 100%, 3% 100%, 0 50%); color: #bf1730; font-size: clamp(14px, 1vw, 16px); font-weight: 700; letter-spacing: -0.035em; line-height: 1.25; text-align: center; transition: color 160ms ease, background-color 160ms ease; }
.footer-packages svg { width: 22px; height: 20px; flex: 0 0 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.footer-packages:hover { background: #fff; color: #981026; }
.footer-packages:focus-visible { outline: none; box-shadow: inset 0 0 0 3px #8e1027; }
.footer-brand-badge:focus-visible { outline: 3px solid #c31830; outline-offset: 4px; }
.footer-legal { border-top: 1px solid #e83a4e; }
.footer-legal-inner { display: flex; width: min(90%, 1120px); min-height: 60px; align-items: center; justify-content: space-between; gap: 16px; margin-inline: auto; padding: 16px 0; }
.footer-legal p { margin: 0; font-size: 14px; line-height: 1.4; }
.footer-legal a { font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.footer-legal a:hover { color: #981026; }
.footer-legal a:focus-visible { outline: 2px solid #c31830; outline-offset: 3px; }

@media (max-width: 1200px) and (min-width: 1001px) {
  .footer-traveler-icon { top: 0; left: 20px; width: 112px; height: 112px; }
  .footer-ribbon-content { gap: 16px; }
  .footer-ribbon-content h2 { font-size: 23px; }
  .footer-packages { width: 230px; font-size: 14px; padding-inline: 14px; }
}

@media (max-width: 1000px) {
  .footer-promo { height: auto; min-height: 0; padding: 84px 0 30px; }
  .footer-brand-badge { top: 12px; width: 152px; height: 152px; padding-top: 23px; font-size: 32px; }
  .footer-traveler-panel { top: 108px; width: 30%; height: 138px; clip-path: polygon(0 0, 80% 0, 100% 100%, 14% 100%); }
  .footer-traveler-icon { top: 2px; left: 14px; width: 132px; height: 132px; }
  .footer-ribbon { position: relative; top: auto; right: auto; left: auto; height: auto; min-height: 186px; margin-left: 17%; }
  .footer-ribbon-content { grid-template-columns: 1fr; justify-items: center; gap: 16px; padding: 22px 10% 26px; text-align: center; }
  .footer-ribbon-content h2 { font-size: 23px; }
  .footer-packages { width: min(100%, 290px); min-height: 48px; font-size: 16px; }
  .footer-ribbon-fold { right: 15%; }
}

@media (max-width: 700px) {
  .footer-promo { width: calc(100% - 32px); padding-top: 108px; padding-bottom: 24px; }
  .footer-brand-badge { top: 10px; left: 65%; width: 124px; height: 124px; padding-top: 22px; font-size: 28px; }
  .footer-traveler-panel { top: 12px; left: 2%; width: 90px; height: 88px; background: none; clip-path: none; filter: none; }
  .footer-traveler-icon { top: -4px; left: -4px; width: 98px; height: 98px; }
  .footer-flight-path { display: none; }
  .footer-ribbon { min-height: 0; margin-left: 0; }
  .footer-ribbon-content { gap: 16px; padding: 22px 8% 24px; }
  .footer-ribbon-content h2 { font-size: clamp(19px, 4vw, 22px); line-height: 1.2; }
  .footer-packages { min-height: 48px; gap: 10px; padding-inline: 15px; font-size: 15px; }
  .footer-packages svg { width: 22px; flex-basis: 22px; }
  .footer-legal-inner { width: calc(100% - 36px); min-height: 0; flex-direction: column; gap: 8px; padding: 16px 0; text-align: center; }
  .footer-legal p { font-size: 13px; }
}

@media (max-width: 380px) {
  .footer-ribbon-content { padding-inline: 8%; }
  .footer-ribbon-content h2 { font-size: 18px; }
  .footer-packages { gap: 8px; padding-inline: 15px; font-size: 14px; }
}
