@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap");

html {
  scroll-behavior: smooth;
}

/* -- Reset -------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
    background: #0F1314;
    font-family: "DM Sans", sans-serif;
    font-size: 1rem;
    color: #f6f6f6;
}

#airports-section  {
    background: #0F1314;
    padding: 70px 0 100px 0;
}

/* -- Container ---------------------------------------------------- */
.sp-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 12px;
}
@media (max-width: 767.98px) {
    .sp-container { padding: 0 1.25rem; }
}

/* -- Page heading H1 ---------------------------------------------- */
.sp-pageheading {
    padding-top: 12.5rem;
    padding-bottom: 5.25rem;
    background: #0F1314;
}
@media (max-width: 991.98px) {
    .sp-pageheading { padding-top: 7.75rem; padding-bottom: 3rem; }
}
.sp-pageheading__content {
    display: flex;
    flex-direction: column;
    gap: 1.875rem;
    text-align: center;
}
.sp-pageheading__content h1 {
    color: #fff;
    font-size: 3rem;
    line-height: 100%;
    font-weight: 400;
}
@media (max-width: 991.98px) {
    .sp-pageheading__content h1 { font-size: 2.25rem; line-height: 110%; }
}

/* -- Shared section styles ---------------------------------------- */
.sp-section {
    padding: 6rem 0 7rem;
    background: #0F1314;
    border-bottom: 1px solid #2f3a3d;
}
.sp-section--faq {
    padding: 6rem 0 7.5rem;
    border-top: none;
    border-bottom: none;
}
@media (max-width: 991.98px) {
    .sp-section      { padding: 3.5rem 0 4rem; }
    .sp-section--faq { padding: 3.5rem 0 5rem; }
}

.sp-label {
    display: block;
    font-size: .6875rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: #e3ca86;
    font-weight: 600;
    text-align: center;
    margin-bottom: 1rem;
}
.sp-title {
    font-size: 2.25rem;
    line-height: 110%;
    font-weight: 300;
    color: #fff;
    text-align: center;
    margin-bottom: 3.5rem;
}
@media (max-width: 991.98px) {
    .sp-title { font-size: 1.625rem; margin-bottom: 2rem; }
}

/* -- Section: Intro ----------------------------------------------- */
.sp-section--intro {
    padding: 12.5rem 0 0;
    background: #0F1314;
}
@media (max-width: 991.98px) {
    .sp-section--intro { padding: 7.75rem 0 4rem; }
}

.sp-intro__h1 {
    font-size: 3rem;
    font-weight: 400;
    color: #fff;
    line-height: 1.0;
    text-align: center;
    margin: 0 0 1rem;
}
@media (max-width: 991.98px) {
    .sp-intro__h1 { font-size: 2.25rem; }
}

.sp-intro__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}
@media (max-width: 991.98px) {
    .sp-intro__grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
}
@media (max-width: 600px) {
    .sp-intro__grid { grid-template-columns: 1fr; gap: .875rem; }
}

.sp-intro__card {
    background: #172226;
    padding: 2.5rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
@media (max-width: 991.98px) {
    .sp-intro__card { padding: 1.75rem 1.5rem; }
}

.sp-intro__card-title {
    font-size: 1.5rem;
    font-weight: 400;
    color: #fff;
    line-height: 1.2;
    margin: 0;
}
@media (max-width: 991.98px) {
    .sp-intro__card-title { font-size: 1.25rem; }
}

.sp-intro__card-desc {
    font-size: .9375rem;
    line-height: 1.3;
    color: #b6b6b6;
    font-weight: 300;
    flex-grow: 1;
}
@media (max-width: 991.98px) {
    .sp-intro__card-desc { font-size: .875rem; }
}

.sp-intro__card .sp-btn--outline,
.sp-intro__card .sp-btn--primary {
    align-self: flex-start;
}

/* -- Section: Hero-1 ---------------------------------------------- */
.sp-section--hero1 {
    padding: 12.5rem 0 2.5rem;
    background: #0F1314;
    border-bottom: 1px solid #2f3a3d;
}
@media (max-width: 991.98px) {
    .sp-section--hero1 { padding: 7.75rem 0 2rem; }
}

.sp-hero1 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    align-items: start;
}
@media (max-width: 767.98px) {
    .sp-hero1 { grid-template-columns: 1fr; }
}

/* left column */
.sp-hero1__left {
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
    padding: 0 3rem 0 0;
}
@media (max-width: 991.98px) {
    .sp-hero1__left { padding: 0; gap: 1.5rem; }
}
@media (max-width: 767.98px) {
    .sp-hero1__left {
        text-align: center;
        align-items: center;
    }
    .sp-hero1__btns {
        justify-content: center;
    }
}

.sp-hero1__h1 {
    font-size: 3rem;
    font-weight: 400;
    color: #fff;
    line-height: 1.0;
    margin: 0;
}
@media (max-width: 991.98px) {
    .sp-hero1__h1 { font-size: 2.25rem; }
}

.sp-hero1__desc {
    font-size: 1rem;
    line-height: 1.5;
    color: #b6b6b6;
    font-weight: 300;
}

.sp-hero1__btns {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.sp-btn--primary {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    padding: .875rem 1.875rem .875rem 1.5rem;
    background: #e3ca86;
    color: #0F1314;
    font-size: 1rem;
    font-weight: 500;
    font-family: "DM Sans", sans-serif;
    border: 1px solid #e3ca86;
    border-radius: .25rem;
    cursor: pointer;
    text-decoration: none;
    transition: background .3s, color .3s;
}
.sp-btn--primary:hover { background: #101c1f; color: #b6b6b6; border-color: #101c1f; text-decoration: none; }

.sp-btn--outline {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    padding: .875rem 1.875rem .875rem 1.5rem;
    background: transparent;
    color: #fff;
    font-size: 1rem;
    font-weight: 500;
    font-family: "DM Sans", sans-serif;
    border: 1px solid #e3ca86;
    border-radius: .25rem;
    cursor: pointer;
    text-decoration: none;
    transition: background .3s, color .3s, border-color .3s;
}
.sp-btn--outline:hover { background: #e3ca86; color: #0F1314; text-decoration: none; }

/* arrow icon via limos SVG — swap to relative path before go-live */
.sp-btn__arrow {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    background: url("https://limos.pl/img/svg/arrow-dark.svg") center / contain no-repeat;
    flex-shrink: 0;
}
.sp-btn--outline .sp-btn__arrow {
    filter: brightness(0) invert(1);
}
.sp-btn--outline:hover .sp-btn__arrow {
    filter: none;
}
.sp-btn--primary:hover .sp-btn__arrow {
    filter: brightness(0) saturate(100%) invert(83%) sepia(2%) saturate(3%) hue-rotate(324deg) brightness(99%) contrast(90%);
}

/* tags row — full width, centered, below both columns */
.sp-hero1__tags {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: .625rem;
    justify-content: center;
    margin-top: 2.5rem;
    margin-bottom: .625rem;
}
@media (max-width: 767.98px) {
    .sp-hero1__tags { margin-top: 1.25rem; }
}

.sp-hero1__tag {
    padding: .5rem 1rem;
    border: 1px solid #3f4b4f;
    color: #b6b6b6;
    font-size: .875rem;
    font-weight: 300;
}

/* right column */
.sp-hero1__right {
    background: #172226;
    padding: 2.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-self: start;
}
@media (max-width: 991.98px) {
    .sp-hero1__right { padding: 1.75rem 1.5rem; }
}
@media (max-width: 767.98px) {
    .sp-hero1__right { margin-top: 1.25rem; }
}

.sp-hero1__right-label {
    font-size: .6875rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: #e3ca86;
    font-weight: 600;
}

.sp-hero1__right-h2 {
    font-size: 1.625rem;
    font-weight: 400;
    color: #fff;
    line-height: 1.1;
    margin: 0;
}
@media (max-width: 991.98px) {
    .sp-hero1__right-h2 { font-size: 1.375rem; }
}

.sp-hero1__right-desc {
    font-size: .9375rem;
    line-height: 1.3;
    color: #b6b6b6;
    font-weight: 300;
}

.sp-hero1__checklist {
    display: flex;
    flex-direction: column;
    gap: .875rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.sp-hero1__checklist li {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    font-size: .9375rem;
    line-height: 1.3;
    color: #f6f6f6;
    font-weight: 300;
}
@media (max-width: 991.98px) {
    .sp-hero1__checklist li { font-size: .875rem; }
}

/* -- Section: Hero-2 (centered, no right panel) ------------------ */
.sp-section--hero2 {
    padding: 12.5rem 0 7rem;
    background: #0F1314;
    border-bottom: none;
}
@media (max-width: 991.98px) {
    .sp-section--hero2 { padding: 7.75rem 0 4rem; }
}

.sp-hero2 {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 2rem;
    max-width: 52rem;
    margin: 0 auto;
}

.sp-hero2__h1 {
    font-size: 3rem;
    font-weight: 400;
    color: #fff;
    line-height: 0.95;
    margin: 0;
}
@media (max-width: 991.98px) {
    .sp-hero2__h1 { font-size: 2.5rem; }
}

.sp-hero2__accent {
    color: #e3ca86;
}

.sp-hero2__desc {
    font-size: 1.0625rem;
    line-height: 1.6;
    color: #b6b6b6;
    font-weight: 300;
    max-width: 40rem;
}
@media (max-width: 991.98px) {
    .sp-hero2__desc { font-size: .9375rem; }
}

.sp-hero2__tags {
    display: grid;
    grid-template-columns: repeat(2, auto);
    gap: .625rem;
    justify-content: center;
}
@media (max-width: 600px) {
    .sp-hero2__tags { grid-template-columns: 1fr; }
}

/* -- Section: Stats ----------------------------------------------- */
.sp-section--stats {
    background: #172226;
    padding: 2.5rem 0;
}
@media (max-width: 991.98px) {
    .sp-section--stats { padding: 2rem 0; }
}

.sp-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
    margin-bottom: 3rem;
}
@media (max-width: 991.98px) {
    .sp-stats { grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-bottom: 2rem; }
}

.sp-stats__item {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding-right: 1.5rem;
    border-right: 1px solid #2f3a3d;
}
.sp-stats__item:last-child { border-right: none; padding-right: 0; }
@media (max-width: 991.98px) {
    .sp-stats__item { border-right: none; padding-right: 0; }
}

.sp-stats__value {
    font-size: 2.25rem;
    font-weight: 300;
    color: #e3ca86;
    line-height: 1.1;
}
@media (max-width: 991.98px) {
    .sp-stats__value { font-size: 1.5rem; }
}

.sp-stats__desc {
    font-size: .9375rem;
    line-height: 1.3;
    color: #b6b6b6;
    font-weight: 300;
}
@media (max-width: 991.98px) {
    .sp-stats__desc { font-size: .875rem; }
}

/* tags bar */
.sp-stats__tags {
    border-top: 1px solid #2f3a3d;
    padding-top: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: .875rem;
}

.sp-stats__tags-label {
    font-size: .875rem;
    color: #b6b6b6;
    font-weight: 300;
    text-align: center;
}

.sp-stats__tags-list {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
}

.sp-stats__tag {
    font-size: 1rem;
    font-weight: 400;
    color: #f6f6f6;
    white-space: nowrap;
}

.sp-stats__sep {
    color: #e3ca86;
    margin: 0 1rem;
    font-size: .5rem;
    line-height: 1;
}
@media (max-width: 767.98px) {
    .sp-stats__tag { font-size: .875rem; }
    .sp-stats__sep { margin: 0 .625rem; }
}

/* -- Section: 4-Steps --------------------------------------------- */
.sp-section--4steps {
    padding: 6rem 0 0;
    border-bottom: 1px solid #2f3a3d;
}
@media (max-width: 991.98px) {
    .sp-section--4steps { padding: 3.5rem 0 0; }
}

.sp-section--4steps.no-banner { padding-bottom: 6rem; }
@media (max-width: 991.98px) {
    .sp-section--4steps.no-banner { padding-bottom: 4rem; }
}

.sp-4steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
    margin-bottom: 0;
}
@media (max-width: 991.98px) {
    .sp-4steps { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .sp-4steps { grid-template-columns: 1fr; }
}

.sp-4steps__col {
    background: #172226;
    padding: 2.5rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
@media (max-width: 991.98px) {
    .sp-4steps__col { padding: 1.75rem 1.5rem; }
}

.sp-4steps__num {
    font-size: 2rem;
    font-weight: 300;
    color: #e3ca86;
    line-height: 1;
}

.sp-4steps__title {
    font-size: 1.125rem;
    font-weight: 500;
    color: #e3ca86;
    line-height: 1.35;
}
@media (max-width: 991.98px) {
    .sp-4steps__title { font-size: 1rem; }
}

.sp-4steps__desc {
    font-size: .9375rem;
    line-height: 1.3;
    color: #b6b6b6;
    font-weight: 300;
}
@media (max-width: 991.98px) {
    .sp-4steps__desc { font-size: .875rem; }
}
.sp-4steps__btn-bottom {
    margin-top: auto;
}
@media (max-width: 600px) {
    .sp-4steps__btn-bottom {
        align-self: flex-start;
    }
}

/* banner strip at bottom of 4-steps */
.sp-4steps__banner {
    display: flex;
    align-items: center;
    gap: 3rem;
    padding: 3rem 0 6rem;
    max-width: 52rem;
    margin: 0 auto;
}
@media (max-width: 991.98px) {
    .sp-4steps__banner {
        flex-direction: column;
        gap: 1.5rem;
        padding: 2.5rem 0 4rem;
        text-align: center;
    }
}

.sp-4steps__banner-icon {
    width: 5rem;
    height: 5rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.sp-4steps__banner-icon svg {
    width: 5rem;
    height: 5rem;
}

.sp-4steps__banner-content {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.sp-4steps__banner-title {
    font-size: 1.5rem;
    font-weight: 400;
    color: #fff;
    line-height: 1.3;
}
@media (max-width: 991.98px) {
    .sp-4steps__banner-title { font-size: 1.25rem; }
}

.sp-4steps__banner-desc {
    font-size: .9375rem;
    line-height: 1.3;
    color: #b6b6b6;
    font-weight: 300;
}
@media (max-width: 991.98px) {
    .sp-4steps__banner-desc { font-size: .875rem; }
}

/* -- Section: 3-Box-Full ------------------------------------------ */
.sp-section--3box {
    padding: 6rem 0 7rem;
    border-bottom: 1px solid #2f3a3d;
}
@media (max-width: 991.98px) {
    .sp-section--3box { padding: 3.5rem 0 4rem; }
}

.sp-title-sub {
    font-size: 1.125rem;
    line-height: 1.5;
    font-weight: 300;
    color: #b6b6b6;
    text-align: center;
    margin-top: .75rem;
    margin-bottom: 0rem;
}
@media (max-width: 991.98px) {
    .sp-title-sub { font-size: 1rem; margin-top: .5rem; margin-bottom: 2rem; }
}
/* when sp-title is followed by subtitle, reduce its own bottom margin */
.sp-title:has(+ .sp-title-sub) {
    margin-bottom: 0;
}
/* when sp-title-sub is followed by sp-3box, keep margin; otherwise remove it */
.sp-title-sub:has(+ .sp-3box),
.sp-title-sub:has(+ .sp-4steps),
.sp-title-sub:has(+ .sp-grid),
.sp-title-sub:has(+ .sp-faq),
.sp-title-sub:has(+ .sp-stats),
.sp-title-sub:has(+ .sp-intro__grid) {
    margin-bottom: 3rem;
}

.sp-3box {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}
@media (max-width: 991.98px) {
    .sp-3box { grid-template-columns: 1fr; gap: .875rem; }
}

.sp-3box__col {
    background: #172226;
    padding: 2.5rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.featured {
    box-shadow: inset 0 0 0 1px #e3ca86;
}
@media (max-width: 991.98px) {
    .sp-3box__col { padding: 1.75rem 1.5rem; }
}

/* num + title side by side, title fixed to 2-line height */
.sp-3box__header {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.sp-3box__num {
    font-size: 2.5rem;
    font-weight: 300;
    color: #e3ca86;
    line-height: 1;
    flex-shrink: 0;
}

.sp-3box__title {
    font-size: 1.125rem;
    font-weight: 500;
    color: #fff;
    line-height: 1.35;
    /* fixed height for exactly 2 lines */
    min-height: calc(1.125rem * 1.35 * 2);
    display: flex;
    align-items: center;
}
@media (max-width: 991.98px) {
    .sp-3box__title { font-size: 1.0625rem; }
}

.sp-3box__desc {
    font-size: .9375rem;
    line-height: 1.3;
    color: #b6b6b6;
    font-weight: 300;
}
@media (max-width: 991.98px) {
    .sp-3box__desc { font-size: .875rem; }
}

.sp-3box__list-label {
    font-size: .875rem;
    font-weight: 500;
    color: #e3ca86;
}

.sp-3box__list {
    display: flex;
    flex-direction: column;
    gap: .875rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.sp-3box__list li {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    font-size: .9375rem;
    line-height: 1.3;
    color: #f6f6f6;
    font-weight: 300;
}
@media (max-width: 991.98px) {
    .sp-3box__list li { font-size: .875rem; }
}

/* check icon - swap URL to relative path before go-live */
.sp-3box__check {
    display: inline-block;
    width: 1.125rem;
    height: 1.125rem;
    flex-shrink: 0;
    margin-top: .1rem;
    background: url("https://limos.pl/img/svg/check.svg") center / contain no-repeat;
}

.sp-3box__list strong {
    font-weight: 500;
    color: #fff;
}

/* -- Section: Cards-Icon ------------------------------------------ */
.sp-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
}
@media (max-width: 600px) {
    .sp-grid { grid-template-columns: 1fr; gap: .875rem; }
}

.sp-card {
    background: #172226;
    padding: 2.25rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
@media (max-width: 600px) {
    .sp-card { padding: 1.5rem; }
}
.sp-card__header {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}
.sp-card__icon {
    width: 3rem;
    height: 3rem;
    flex-shrink: 0;
    border: 1px solid #e3ca86;
    display: flex;
    align-items: center;
    justify-content: center;
}
.sp-card__icon svg { width: 1.375rem; height: 1.375rem; }
.sp-card__title {
    font-size: 1.125rem;
    font-weight: 500;
    color: #fff;
    line-height: 1.35;
}
@media (max-width: 991.98px) {
    .sp-card__title { font-size: 1rem; }
}
.sp-card__desc {
    font-size: .9375rem;
    line-height: 1.3;
    color: #b6b6b6;
    font-weight: 300;
}
@media (max-width: 991.98px) {
    .sp-card__desc { font-size: .875rem; }
}

/* -- Section: FAQ ------------------------------------------------- */
.sp-faq {
    max-width: 52rem;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}
.sp-faq__item {
    overflow: hidden;
    margin-bottom: 2px;
}
.sp-faq__question {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1.375rem 1.75rem;
    background: #172226;
    border: none;
    text-align: left;
    color: #e3ca86;
    font-size: 1.0625rem;
    font-weight: 400;
    font-family: "DM Sans", sans-serif;
    cursor: pointer;
    transition: background .25s, color .25s;
}
.sp-faq__question:hover { background: #1c2a2e; }
.sp-faq__question.collapsed { color: #f6f6f6; }
.sp-faq__question.collapsed:hover { color: #e3ca86; }
@media (max-width: 767.98px) {
    .sp-faq__question { font-size: .9375rem; padding: 1.125rem 1.25rem; }
}
.sp-faq__icon {
    flex-shrink: 0;
    width: 1.5rem; height: 1.5rem;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.125rem;
    line-height: 1;
    color: #e3ca86;
}
.sp-faq__question.collapsed .sp-faq__icon {
    background-color: #e3ca86;
    color: #0F1314;
}
.sp-faq__answer {
    background: #111a1d;
    overflow: hidden;
    max-height: 600px;
    transition: max-height .4s ease;
}
.sp-faq__answer.collapsed { max-height: 0; }
.sp-faq__body {
    padding: 1.5rem 1.75rem 1.875rem;
    font-size: .9375rem;
    line-height: 1.3;
    color: #b6b6b6;
    font-weight: 300;
}
.sp-faq__body a { color: #e3ca86; }
@media (max-width: 767.98px) {
    .sp-faq__body { font-size: .875rem; padding: 1.125rem 1.25rem 1.5rem; }
}
