﻿/* =========================================================
         AIR PLAN â€” BOOTSTRAP FOOTER
      ========================================================= */

      .apf-footer,
      .apf-footer * {
        box-sizing: border-box;
      }

      .apf-footer {
        --apf-blue: #74a5c3;
        --apf-blue-dark: #527f9f;
        --apf-blue-rgb: 116, 165, 195;
        --apf-ink: #173746;
        --apf-white: #ffffff;

        position: relative;
        isolation: isolate;
        overflow: hidden;
        padding: clamp(72px, 8vw, 118px) 0 0;
        background:
          radial-gradient(
            circle at 7% 18%,
            rgba(255, 255, 255, 0.15),
            transparent 24%
          ),
          linear-gradient(145deg, var(--apf-blue) 0%, var(--apf-blue-dark) 100%);
        color: var(--apf-white);
        font-family: "Manrope", sans-serif;
      }

      .apf-footer::before {
        content: "AIR PLAN";
        position: absolute;
        z-index: -2;
        right: -0.035em;
        bottom: 43px;
        color: rgba(255, 255, 255, 0.045);
        font-family: "Cormorant Garamond", serif;
        font-size: clamp(140px, 22vw, 345px);
        font-weight: 600;
        line-height: 0.68;
        letter-spacing: -0.07em;
        white-space: nowrap;
        pointer-events: none;
      }

      .apf-footer a {
        color: inherit !important;
        text-decoration: none !important;
      }

      .apf-footer__shell {
        position: relative;
        z-index: 2;
        width: min(1280px, calc(100% - 48px));
        margin-inline: auto;
      }

      /* DECORATIVE COASTAL DRAWINGS */

      .apf-drawing {
        position: absolute;
        z-index: -1;
        overflow: visible;
        color: rgba(255, 255, 255, 0.22);
        pointer-events: none;
      }

      .apf-drawing path,
      .apf-drawing circle,
      .apf-drawing line {
        fill: none;
        stroke: currentColor;
        stroke-width: 1.35;
        stroke-linecap: round;
        stroke-linejoin: round;
      }

      .apf-drawing--sun {
        top: 41px;
        right: clamp(18px, 5vw, 82px);
        width: clamp(82px, 8vw, 122px);
        transform: rotate(8deg);
      }

      .apf-drawing--waves {
        left: -24px;
        bottom: 18%;
        width: clamp(125px, 13vw, 205px);
        transform: rotate(-5deg);
      }

      /* CLOSING BOOKING PANEL */

      .apf-footer__closing {
        position: relative;
        overflow: hidden;
        padding: clamp(32px, 4vw, 55px);
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 42px;
        border: 1px solid rgba(255, 255, 255, 0.34);
        border-radius: 30px;
        background:
          radial-gradient(
            circle at 94% 8%,
            rgba(255, 255, 255, 0.2),
            transparent 31%
          ),
          rgba(255, 255, 255, 0.1);
        box-shadow: 0 30px 75px rgba(23, 55, 70, 0.19);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
      }

      .apf-footer__closing::after {
        content: "";
        position: absolute;
        right: -86px;
        bottom: -118px;
        width: 260px;
        height: 260px;
        border: 1px solid rgba(255, 255, 255, 0.18);
        border-radius: 50%;
        box-shadow:
          0 0 0 35px rgba(255, 255, 255, 0.035),
          0 0 0 70px rgba(255, 255, 255, 0.022);
        pointer-events: none;
      }

      .apf-footer__closing-copy {
        position: relative;
        z-index: 2;
        max-width: 760px;
      }

      .apf-footer__eyebrow {
        margin: 0 0 15px;
        display: flex;
        align-items: center;
        gap: 12px;
        color: rgba(255, 255, 255, 0.77);
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 0.22em;
        text-transform: uppercase;
      }

      .apf-footer__eyebrow::before {
        content: "";
        width: 38px;
        height: 1px;
        flex-shrink: 0;
        background: currentColor;
      }

      .apf-footer__title {
        max-width: 750px;
        margin: 0;
        color: var(--apf-white);
        font-family: "Cormorant Garamond", serif;
        font-size: clamp(49px, 5.7vw, 82px);
        font-weight: 500;
        line-height: 0.88;
        letter-spacing: -0.045em;
      }

      .apf-footer__title em {
        font-weight: 500;
      }

      .apf-footer__description {
        max-width: 610px;
        margin: 21px 0 0;
        color: rgba(255, 255, 255, 0.73);
        font-size: 12px;
        line-height: 1.78;
      }

      .apf-footer__actions {
        position: relative;
        z-index: 2;
        min-width: 218px;
        display: grid;
        gap: 11px;
      }

      .apf-footer__button,
      .apf-footer__button:link,
      .apf-footer__button:visited {
        min-height: 53px;
        padding: 0 22px;
        display: inline-flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
        border: 1px solid var(--apf-white);
        border-radius: 999px;
        color: var(--apf-white) !important;
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        transition:
          transform 0.25s ease,
          background 0.25s ease,
          color 0.25s ease;
      }

      .apf-footer__button--primary,
      .apf-footer__button--primary:link,
      .apf-footer__button--primary:visited {
        background: var(--apf-white);
        color: var(--apf-blue-dark) !important;
      }

      .apf-footer__button:hover {
        transform: translateY(-3px);
        background: var(--apf-white);
        color: var(--apf-blue-dark) !important;
      }

      .apf-footer__button--primary:hover {
        background: transparent;
        color: var(--apf-white) !important;
      }

      .apf-footer__button span {
        width: 28px;
        height: 28px;
        display: grid;
        place-items: center;
        flex-shrink: 0;
        border: 1px solid currentColor;
        border-radius: 50%;
      }

      .apf-footer__button svg {
        width: 13px;
        height: 13px;
      }

      /* MAIN FOOTER */

      .apf-footer__main {
        padding: clamp(58px, 7vw, 90px) 0 clamp(44px, 5vw, 66px);
        display: grid;
        grid-template-columns: minmax(290px, 1.35fr) minmax(125px, 0.55fr)
          minmax(125px, 0.55fr) minmax(230px, 0.8fr);
        align-items: start;
        gap: clamp(34px, 5vw, 78px);
      }

      .apf-brand {
        max-width: 365px;
      }

      .apf-brand__link {
        width: max-content;
        max-width: 100%;
        display: inline-flex;
        align-items: center;
        gap: 13px;
      }

      .apf-brand__mark {
        width: 52px;
        height: 52px;
        display: grid;
        place-items: center;
        flex-shrink: 0;
        border: 1px solid rgba(255, 255, 255, 0.78);
        border-radius: 50%;
        background: var(--apf-white);
        color: var(--apf-blue-dark);
        box-shadow: 0 14px 34px rgba(23, 55, 70, 0.16);
      }

      .apf-brand__mark svg {
        width: 28px;
        height: 28px;
      }

      .apf-brand__name {
        display: flex;
        flex-direction: column;
        line-height: 1;
      }

      .apf-brand__name strong {
        color: var(--apf-white);
        font-family: "Cormorant Garamond", serif;
        font-size: 25px;
        font-weight: 600;
        letter-spacing: 0.1em;
      }

      .apf-brand__name small {
        margin-top: 6px;
        color: rgba(255, 255, 255, 0.61);
        font-size: 7px;
        font-weight: 700;
        letter-spacing: 0.16em;
        text-transform: uppercase;
      }

      .apf-brand__copy {
        max-width: 345px;
        margin: 24px 0 0;
        color: rgba(255, 255, 255, 0.68);
        font-size: 11px;
        line-height: 1.85;
      }

      .apf-brand__location {
        width: max-content;
        max-width: 100%;
        margin-top: 23px;
        display: inline-flex;
        align-items: center;
        gap: 10px;
        color: rgba(255, 255, 255, 0.82) !important;
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
      }

      .apf-brand__location span {
        width: 31px;
        height: 31px;
        display: grid;
        place-items: center;
        flex-shrink: 0;
        border: 1px solid rgba(255, 255, 255, 0.35);
        border-radius: 50%;
        transition:
          background 0.25s ease,
          color 0.25s ease;
      }

      .apf-brand__location:hover span {
        background: var(--apf-white);
        color: var(--apf-blue-dark);
      }

      .apf-brand__location svg {
        width: 14px;
        height: 14px;
      }

      .apf-footer__heading {
        margin: 4px 0 21px;
        color: rgba(255, 255, 255, 0.55);
        font-size: 8px;
        font-weight: 700;
        letter-spacing: 0.2em;
        text-transform: uppercase;
      }

      .apf-footer__links {
        margin: 0;
        padding: 0;
        display: grid;
        gap: 13px;
        list-style: none;
      }

      .apf-footer__links a,
      .apf-footer__links a:link,
      .apf-footer__links a:visited {
        position: relative;
        width: max-content;
        max-width: 100%;
        padding-bottom: 3px;
        color: rgba(255, 255, 255, 0.78) !important;
        font-size: 11px;
        font-weight: 500;
        line-height: 1.45;
        transition:
          color 0.25s ease,
          transform 0.25s ease;
      }

      .apf-footer__links a::after {
        content: "";
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        height: 1px;
        background: var(--apf-white);
        transform: scaleX(0);
        transform-origin: right;
        transition: transform 0.25s ease;
      }

      .apf-footer__links a:hover {
        color: var(--apf-white) !important;
        transform: translateX(3px);
      }

      .apf-footer__links a:hover::after {
        transform: scaleX(1);
        transform-origin: left;
      }

      .apf-contact {
        display: grid;
        gap: 10px;
      }

      .apf-contact__item,
      .apf-contact__item:link,
      .apf-contact__item:visited {
        min-height: 68px;
        padding: 12px 13px 12px 15px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 36px;
        align-items: center;
        gap: 14px;
        border: 1px solid rgba(255, 255, 255, 0.24);
        border-radius: 15px;
        background: rgba(255, 255, 255, 0.075);
        color: var(--apf-white) !important;
        transition:
          transform 0.25s ease,
          background 0.25s ease,
          border-color 0.25s ease;
      }

      .apf-contact__item:hover {
        transform: translateY(-3px);
        border-color: rgba(255, 255, 255, 0.55);
        background: rgba(255, 255, 255, 0.13);
      }

      .apf-contact__item small {
        display: block;
        color: rgba(255, 255, 255, 0.53);
        font-size: 7px;
        font-weight: 700;
        letter-spacing: 0.13em;
        text-transform: uppercase;
      }

      .apf-contact__item strong {
        display: block;
        margin-top: 6px;
        color: var(--apf-white);
        font-size: 10px;
        font-weight: 600;
        line-height: 1.35;
      }

      .apf-contact__icon {
        width: 36px;
        height: 36px;
        display: grid;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, 0.35);
        border-radius: 50%;
      }

      .apf-contact__icon svg {
        width: 14px;
        height: 14px;
      }

      /* COPYRIGHT */

      .apf-footer__bottom {
        min-height: 78px;
        padding: 18px 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 30px;
        border-top: 1px solid rgba(255, 255, 255, 0.22);
      }

      .apf-footer__copyright {
        margin: 0;
        color: rgba(255, 255, 255, 0.57);
        font-size: 8px;
        font-weight: 600;
        letter-spacing: 0.09em;
        text-transform: uppercase;
      }

      .apf-footer__signoff {
        margin: 0;
        color: rgba(255, 255, 255, 0.57);
        font-family: "Cormorant Garamond", serif;
        font-size: 15px;
        font-style: italic;
      }

      .apf-footer__top,
      .apf-footer__top:link,
      .apf-footer__top:visited {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        color: rgba(255, 255, 255, 0.78) !important;
        font-size: 8px;
        font-weight: 700;
        letter-spacing: 0.13em;
        text-transform: uppercase;
      }

      .apf-footer__top span {
        width: 34px;
        height: 34px;
        display: grid;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, 0.36);
        border-radius: 50%;
        transition:
          transform 0.25s ease,
          background 0.25s ease,
          color 0.25s ease;
      }

      .apf-footer__top:hover span {
        transform: translateY(-3px);
        background: var(--apf-white);
        color: var(--apf-blue-dark);
      }

      .apf-footer__top svg {
        width: 14px;
        height: 14px;
      }

      .apf-footer a:focus-visible {
        outline: 3px solid var(--apf-white);
        outline-offset: 4px;
      }

      @media (max-width: 1050px) {
        .apf-footer__main {
          grid-template-columns: minmax(280px, 1.25fr) repeat(2, minmax(130px, 0.6fr));
        }

        .apf-footer__contact-column {
          grid-column: 1 / -1;
          padding-top: 10px;
        }

        .apf-contact {
          max-width: 560px;
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }
      }

      @media (max-width: 820px) {
        .apf-footer__closing {
          grid-template-columns: 1fr;
          gap: 30px;
        }

        .apf-footer__actions {
          min-width: 0;
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .apf-footer__main {
          grid-template-columns: minmax(250px, 1.2fr) repeat(2, minmax(110px, 0.5fr));
          gap: 38px;
        }
      }

      @media (max-width: 767px) {
        .apf-footer {
          padding-top: 65px;
        }

        .apf-footer__shell {
          width: min(100% - 32px, 1280px);
        }

        .apf-drawing--sun {
          top: 15px;
          right: 10px;
          opacity: 0.75;
        }

        .apf-drawing--waves {
          display: none;
        }

        .apf-footer__closing {
          padding: 30px 22px 23px;
          gap: 27px;
          border-radius: 24px;
        }

        .apf-footer__eyebrow {
          font-size: 8px;
        }

        .apf-footer__title {
          font-size: clamp(46px, 13.8vw, 64px);
          line-height: 0.9;
        }

        .apf-footer__description {
          font-size: 11px;
        }

        .apf-footer__actions {
          grid-template-columns: 1fr;
        }

        .apf-footer__button {
          width: 100%;
        }

        .apf-footer__main {
          padding: 55px 0 43px;
          grid-template-columns: repeat(2, minmax(0, 1fr));
          gap: 42px 30px;
        }

        .apf-brand {
          max-width: 520px;
          grid-column: 1 / -1;
        }

        .apf-brand__copy {
          max-width: 500px;
        }

        .apf-footer__contact-column {
          grid-column: 1 / -1;
        }

        .apf-footer__bottom {
          min-height: 0;
          padding: 24px 0 28px;
          flex-wrap: wrap;
        }

        .apf-footer__signoff {
          order: 3;
          width: 100%;
        }
      }

      @media (max-width: 500px) {
        .apf-footer__main {
          grid-template-columns: 1fr 1fr;
        }

        .apf-contact {
          grid-template-columns: 1fr;
        }

        .apf-footer__bottom {
          align-items: flex-start;
        }

        .apf-footer__copyright {
          max-width: 220px;
          line-height: 1.65;
        }
      }

      @media (prefers-reduced-motion: reduce) {
        .apf-footer *,
        .apf-footer *::before,
        .apf-footer *::after {
          scroll-behavior: auto !important;
          transition: none !important;
        }
      }

    /* =========================================================
       BOOTSTRAP LAYOUT BRIDGE
    ========================================================= */

    body.apf-template {
      min-width: 320px;
      margin: 0;
      overflow-x: hidden;
      background: #173746;
      font-family: "Manrope", sans-serif;
    }

    .apf-footer__shell.container-xxl {
      width: 100%;
      max-width: 1280px;
      padding-right: 24px;
      padding-left: 24px;
    }

    .apf-footer__closing.row,
    .apf-footer__main.row {
      display: flex;
      flex-wrap: wrap;
      gap: 0;
    }

    .apf-footer__closing.row {
      --bs-gutter-x: clamp(2rem, 4vw, 3.5rem);
      --bs-gutter-y: 1.875rem;
      margin-right: 0;
      margin-left: 0;
    }

    .apf-footer__main.row {
      --bs-gutter-x: clamp(2rem, 5vw, 4.875rem);
      --bs-gutter-y: 2.625rem;
    }

    .apf-footer__main.row > [class*="col-"] {
      min-width: 0;
    }

    @media (max-width: 767.98px) {
      .apf-footer__shell.container-xxl {
        padding-right: 16px;
        padding-left: 16px;
      }

      .apf-footer__closing.row {
        --bs-gutter-x: 0;
        --bs-gutter-y: 1.6875rem;
      }

      .apf-footer__main.row {
        --bs-gutter-x: 1.875rem;
        --bs-gutter-y: 2.625rem;
      }
    }
