/* FlightSchoolUS original affiliate campaigns. Artwork is illustrative, not a provider logo. */
.affiliate-block {
  --affiliate-teal: #92e6ce;
  --affiliate-teal-deep: #176b5c;
  --affiliate-orange: #ff983e;
  margin-block: 32px;
  min-width: 0;
  font-family: var(--sans);
}
.affiliate-block[hidden], .affiliate-block [hidden] { display: none !important; }
.affiliate-block .affiliate-label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0 0 11px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.affiliate-label-mark { width: 7px; height: 7px; border-radius: 50%; background: #d77936; box-shadow: 0 0 0 3px #fff1e5; }
.affiliate-banner-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
  align-items: stretch;
  gap: 20px;
  min-width: 0;
  container: affiliate-banner / inline-size;
}
.affiliate-creative {
  --affiliate-surface: #122b42;
  --affiliate-accent: var(--affiliate-orange);
  --affiliate-image-position: 72% 40%;
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 420px;
  padding: 0;
  overflow: hidden;
  border: 1px solid #284761;
  border-radius: 14px;
  background: var(--affiliate-surface);
  color: #fff;
  box-shadow: 0 9px 22px -13px #0c2a45a3, 0 2px 5px #0d24300d;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.affiliate-creative::before {
  content: '';
  position: absolute;
  z-index: 4;
  inset: 0 0 auto;
  height: 4px;
  background: var(--affiliate-accent);
  pointer-events: none;
}
.affiliate-creative-hogs {
  --affiliate-surface: #103b3d;
  --affiliate-accent: var(--affiliate-teal);
  --affiliate-image-position: 62% 48%;
  border-color: #2d5956;
}
.affiliate-visual { position: relative; flex: 0 0 160px; height: 160px; overflow: hidden; }
.affiliate-visual > img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--affiliate-image-position); transition: transform .4s ease; }
.affiliate-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #071c2826 0%, #071c2800 35%, var(--affiliate-surface) 100%); pointer-events: none; }
.affiliate-creative-top { position: absolute; z-index: 2; top: 17px; left: 22px; right: 22px; display: flex; align-items: flex-start; min-width: 0; margin: 0; }
.affiliate-creative-top > div { width: fit-content; max-width: 100%; min-width: 0; padding: 10px 13px; border: 1px solid #ffffff38; border-radius: 7px; background: #0b2439eb; box-shadow: 0 3px 12px #06141e24; }
.affiliate-creative-hogs .affiliate-creative-top > div { background: #0b3234eb; }
.affiliate-block .affiliate-provider { margin: 0; color: #fff; font-size: 18px; font-weight: 750; line-height: 1.3; letter-spacing: -.025em; }
.affiliate-block .affiliate-category { max-width: 310px; margin: 4px 0 0; color: #e1edf3; font-size: 9px; font-weight: 600; line-height: 1.5; letter-spacing: .06em; text-transform: uppercase; }
.affiliate-creative-hogs .affiliate-category { color: #cff5e9; }
.affiliate-block .affiliate-creative-copy { position: relative; z-index: 1; margin: 8px 26px 24px; }
.affiliate-block .affiliate-creative-copy h3 {
  max-width: 510px;
  margin: 0;
  color: #fff;
  font-family: var(--serif);
  font-size: clamp(30px, 2.6vw, 36px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.affiliate-block .affiliate-creative-copy p { max-width: 560px; margin: 15px 0 0; color: #deebf1; font-size: 13px; line-height: 1.75; }
.affiliate-creative-hogs .affiliate-creative-copy p { color: #def1eb; }
.affiliate-block .affiliate-cta {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  align-self: flex-start;
  min-height: 50px;
  min-width: 225px;
  max-width: calc(100% - 52px);
  margin: auto 26px 25px;
  padding: 13px 18px;
  border: 1px solid var(--affiliate-accent);
  border-radius: 7px;
  background: var(--affiliate-accent);
  color: #102b3e;
  box-shadow: 0 5px 15px #020c1524;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.5;
  text-decoration: none;
  transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}
.affiliate-cta > svg { width: 19px; height: 19px; flex: 0 0 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .18s ease; }
.affiliate-block .affiliate-cta:hover { border-color: #ffb566; background: #ffb566; color: #102b3e; box-shadow: 0 7px 19px #020c153b; }
.affiliate-block .affiliate-creative-hogs .affiliate-cta:hover { border-color: #b8f7e5; background: #b8f7e5; }
.affiliate-cta:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) {
  .affiliate-creative:hover { transform: translateY(-3px); box-shadow: 0 15px 28px -13px #0c2a457a, 0 3px 8px #0d243014; border-color: var(--affiliate-accent); }
  .affiliate-creative:hover .affiliate-visual > img { transform: scale(1.035); }
  .affiliate-cta:hover > svg, .affiliate-text-link:hover > span { transform: translateX(3px); }
}
.affiliate-block .affiliate-disclosure { margin-top: 12px; color: var(--muted); font-size: 11px; line-height: 1.65; }
.affiliate-block .affiliate-disclosure p { margin: 0; color: inherit; font-size: inherit; line-height: inherit; }
.affiliate-block .affiliate-disclosure p + p { margin-top: 4px; }
.affiliate-disclosure a { color: var(--navy); text-decoration: underline; }
.affiliate-disclosure a:hover { color: var(--orange-deep); }
/* A single full-width campaign uses its available width; paired and sidebar cards stay stacked. */
@container affiliate-banner (min-width: 800px) {
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:only-child,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:has(+ .affiliate-creative[hidden]),
  .affiliate-block:not(.affiliate-compact) .affiliate-creative[hidden] + .affiliate-creative:not([hidden]) {
    min-height: 330px;
    padding: 29px 32px;
  }
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:only-child .affiliate-visual,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:has(+ .affiliate-creative[hidden]) .affiliate-visual,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative[hidden] + .affiliate-creative:not([hidden]) .affiliate-visual {
    position: absolute;
    inset: 0 0 0 auto;
    width: 49%;
    height: 100%;
  }
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:only-child .affiliate-visual::after,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:has(+ .affiliate-creative[hidden]) .affiliate-visual::after,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative[hidden] + .affiliate-creative:not([hidden]) .affiliate-visual::after {
    background: linear-gradient(90deg, var(--affiliate-surface) 0%, transparent 62%), linear-gradient(0deg, #071c2840, transparent 60%);
  }
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:only-child .affiliate-creative-top,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:has(+ .affiliate-creative[hidden]) .affiliate-creative-top,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative[hidden] + .affiliate-creative:not([hidden]) .affiliate-creative-top {
    position: relative;
    inset: auto;
    max-width: 52%;
    margin-bottom: 20px;
  }
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:only-child .affiliate-creative-top > div,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:has(+ .affiliate-creative[hidden]) .affiliate-creative-top > div,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative[hidden] + .affiliate-creative:not([hidden]) .affiliate-creative-top > div {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
  }
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:only-child .affiliate-creative-copy,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:has(+ .affiliate-creative[hidden]) .affiliate-creative-copy,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative[hidden] + .affiliate-creative:not([hidden]) .affiliate-creative-copy {
    width: 51%;
    margin: 0 0 24px;
  }
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:only-child .affiliate-cta,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative:has(+ .affiliate-creative[hidden]) .affiliate-cta,
  .affiliate-block:not(.affiliate-compact) .affiliate-creative[hidden] + .affiliate-creative:not([hidden]) .affiliate-cta {
    max-width: 51%;
    margin: auto auto 0 0;
  }
}
.affiliate-compact .affiliate-banner-grid { grid-template-columns: minmax(0, 1fr); gap: 17px; }
.affiliate-compact .affiliate-creative { min-height: 0; }
.affiliate-compact .affiliate-visual { flex-basis: 140px; height: 140px; }
.affiliate-compact .affiliate-creative-top { top: 15px; left: 18px; right: 18px; }
.affiliate-compact .affiliate-creative-top > div { padding: 9px 11px; }
.affiliate-compact .affiliate-provider { font-size: 16px; }
.affiliate-compact .affiliate-category { font-size: 8px; }
.affiliate-block.affiliate-compact .affiliate-creative-copy { margin: 5px 19px 21px; }
.affiliate-block.affiliate-compact .affiliate-creative-copy h3 { font-size: 28px; }
.affiliate-block.affiliate-compact .affiliate-creative-copy p { margin-top: 13px; font-size: 12px; line-height: 1.75; }
.affiliate-block.affiliate-compact .affiliate-cta { min-width: 0; width: calc(100% - 38px); max-width: calc(100% - 38px); margin: auto 19px 21px; gap: 10px; padding: 12px 14px; font-size: 12px; }
/* Original vector marks give compact text placements the same campaign identity. */
.affiliate-aircraft-art { display: block; width: 50px; height: 38px; flex: 0 0 auto; color: inherit; }
.affiliate-art-orbit { stroke: currentColor; stroke-width: .6; opacity: .3; }
.affiliate-art-route { stroke: currentColor; stroke-width: 1; stroke-dasharray: 3 4; opacity: .55; }
.affiliate-art-machine { stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.affiliate-art-fill { fill: currentColor; stroke: none; opacity: .2; }
.affiliate-art-point { fill: currentColor; stroke: none; }
.affiliate-text-block { padding: 21px; border: 1px solid #d9e2e5; border-radius: 12px; background: #f6f9fa; box-shadow: 0 5px 15px #12334a05; }
.affiliate-text-block .affiliate-label { margin-bottom: 15px; }
.affiliate-text-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 18px; }
.affiliate-text-card { --text-accent: #ed852d; display: flex; flex-direction: column; min-width: 0; padding: 18px 20px 19px; border: 1px solid #e1d9cf; border-top: 4px solid var(--text-accent); border-radius: 9px; background: #fffaf3; }
.affiliate-text-hogs { --text-accent: #29977a; border-color: #cbdfd8; border-top-color: var(--text-accent); background: #edf8f3; }
.affiliate-text-heading { display: flex; align-items: center; gap: 12px; min-width: 0; margin-bottom: 11px; }
.affiliate-text-symbol { display: flex; align-items: center; justify-content: center; flex: 0 0 50px; width: 50px; height: 50px; border-radius: 50%; background: #17334a; color: #ffb068; }
.affiliate-text-hogs .affiliate-text-symbol { background: #123e3e; color: #a3ead4; }
.affiliate-block .affiliate-text-provider { margin: 0; color: #17334a; font-size: 16px; font-weight: 750; line-height: 1.4; letter-spacing: -.025em; }
.affiliate-block .affiliate-text-message { margin: 0 0 17px; color: #425b66; font-size: 13px; line-height: 1.75; }
.affiliate-block .affiliate-text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; align-self: flex-start; min-height: 44px; max-width: 100%; margin-top: auto; padding: 10px 14px; border: 1px solid #d8b998; border-radius: 6px; background: #fff0dc; color: #17334a; font-size: 12px; font-weight: 750; line-height: 1.5; text-decoration: none; transition: background .18s ease, border-color .18s ease; }
.affiliate-block .affiliate-text-hogs .affiliate-text-link { border-color: #9ec9b8; background: #d6efe4; }
.affiliate-block .affiliate-text-link:hover { border-color: #d08c47; background: #ffe1b8; color: #17334a; }
.affiliate-block .affiliate-text-hogs .affiliate-text-link:hover { border-color: #69a88e; background: #bce4d3; }
.affiliate-text-link:focus-visible { outline: 3px solid #21577a; outline-offset: 3px; }
.affiliate-text-link > span { flex-shrink: 0; font-size: 17px; transition: transform .18s ease; }
.affiliate-text-block .affiliate-disclosure { padding-top: 12px; border-top: 1px solid #dce5e7; margin-top: 14px; }
@media (max-width: 680px) {
  .affiliate-block { margin-block: 26px; }
  .affiliate-banner-grid { gap: 18px; }
  .affiliate-creative { min-height: 0; }
  .affiliate-visual { flex-basis: 155px; height: 155px; }
  .affiliate-creative-top { top: 16px; left: 20px; right: 20px; }
  .affiliate-block .affiliate-provider { font-size: 17px; }
  .affiliate-block .affiliate-creative-copy { margin: 7px 22px 23px; }
  .affiliate-block .affiliate-creative-copy h3 { font-size: 31px; }
  .affiliate-block .affiliate-creative-copy p { font-size: 13px; }
  .affiliate-block .affiliate-cta { min-width: 0; width: calc(100% - 44px); max-width: calc(100% - 44px); margin: auto 22px 23px; }
  .affiliate-text-block { padding: 17px; }
  .affiliate-text-grid { gap: 16px; }
  .affiliate-text-card { padding: 17px 16px; }
  .affiliate-text-heading { gap: 10px; }
  .affiliate-block .affiliate-text-provider { font-size: 15px; }
}
@media (max-width: 380px) {
  .affiliate-creative-top { left: 18px; right: 18px; }
  .affiliate-block .affiliate-creative-copy { margin-inline: 18px; }
  .affiliate-block .affiliate-creative-copy h3 { font-size: 29px; }
  .affiliate-block .affiliate-cta { width: calc(100% - 36px); max-width: calc(100% - 36px); margin-inline: 18px; padding-inline: 15px; }
  .affiliate-text-heading { align-items: flex-start; }
  .affiliate-text-symbol { flex-basis: 43px; width: 43px; height: 43px; }
  .affiliate-text-symbol .affiliate-aircraft-art { width: 43px; height: 33px; }
}
@media (prefers-reduced-motion: reduce) {
  .affiliate-creative, .affiliate-visual > img, .affiliate-cta, .affiliate-cta > svg, .affiliate-text-link, .affiliate-text-link > span { transition: none; }
  .affiliate-creative:hover, .affiliate-creative:hover .affiliate-visual > img, .affiliate-cta:hover > svg, .affiliate-text-link:hover > span { transform: none; }
}
@media print { .affiliate-block { display: none !important; } }
