.vds-school {
    --school-ink: #081b3d;
    --school-muted: #52617a;
    --school-red: #ff3f58;
    color: var(--school-ink);
    background: #fff;
    font-family: var(--vds-font-family, Inter, Arial, sans-serif);
    overflow: clip;
}
.vds-school *, .vds-school *::before, .vds-school *::after { box-sizing: border-box; }
.vds-school__container { width: min(86%, 90rem); margin-inline: auto; }
.vds-school__image { display: block; width: 100%; height: 100%; object-fit: cover; }
.vds-school__eyebrow { display: flex; align-items: center; gap: .9rem; margin: 0 0 1rem; color: #65738b; font-size: .65rem; font-weight: 600; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.vds-school__eyebrow::before { content: ''; width: 2rem; height: 2px; flex: 0 0 auto; background: var(--school-red); }
.vds-school__title { margin: 0; max-width: 45rem; font-size: clamp(2rem, 3.1vw, 3.6rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.05; }
.vds-school__description { color: var(--school-muted); font-size: clamp(.95rem, 1.15vw, 1.2rem); line-height: 1.5; }
.vds-school__description p { margin: 1rem 0 0; }
.vds-school__description p:first-child { margin-top: 0; }
.vds-school__title + .vds-school__description { margin-top: 1rem; }
.vds-school__link { display: inline-flex; align-items: center; gap: .85rem; color: var(--school-ink); font-size: .66rem; font-weight: 700; line-height: 1.5; letter-spacing: .02em; text-decoration: none; text-transform: uppercase; }
.vds-school__link:hover { color: var(--school-red); }
.vds-school__link > span:last-child { font-size: 1.2rem; }
.vds-school a:focus-visible { outline: 2px solid var(--school-red); outline-offset: 5px; }
.vds-school__hero { position: relative; isolation: isolate; display: flex; align-items: center; min-height: clamp(28rem, 40vw, 45rem); padding: 4rem 0 6rem; background: #deebf3; clip-path: polygon(0 0,100% 0,100% 83%,40% 100%,0 92%); }
.vds-school__hero-image, .vds-school__hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.vds-school__hero-image { z-index: -2; object-fit: cover; object-position: center; }
.vds-school__hero-shade { z-index: -1; background: linear-gradient(90deg,rgba(242,248,252,.94),rgba(242,248,252,.78) 26%,rgba(242,248,252,.05) 64%); }
.vds-school__hero-title { max-width: 33rem; margin: 0; font-size: clamp(2.8rem,5.2vw,6rem); font-weight: 600; line-height: 1.02; letter-spacing: -.045em; }
.vds-school__hero-title > span { display: block; margin-top: .2rem; font-size: .63em; font-weight: 300; line-height: 1.12; }
.vds-school__hero-content > .vds-school__description { max-width: 27rem; margin-top: 1rem; }
.vds-school__split { display: grid; grid-template-columns: 46% 54%; align-items: center; }
.vds-school__split-copy { min-width: 0; padding: 3rem 3.5vw 3rem max(7vw, calc((100vw - 90rem)/2)); }
.vds-school__split-media { height: clamp(20rem,26vw,32rem); min-width: 0; clip-path: polygon(17% 8%,100% 0,100% 100%,0 88%); }
.vds-school__about { padding: 1rem 0 3rem; }
.vds-school__features { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); padding-top: 2.5rem; }
.vds-school__feature { position: relative; text-align: center; padding: 0 1.5rem; }
.vds-school__feature + .vds-school__feature::before { content: ''; position: absolute; left: 0; top: .7rem; bottom: .2rem; width: 1px; background: #d8e1eb; }
.vds-school__icon { display: block; width: 3rem; height: 3rem; margin: 0 auto 1rem; }
.vds-school__feature h3 { margin: 0; font-size: 1.1rem; font-weight: 600; letter-spacing: -.03em; line-height: 1.2; }
.vds-school__feature p { max-width: 15rem; margin: .65rem auto 0; color: var(--school-muted); font-size: .88rem; line-height: 1.5; }
.vds-school__offers { padding: 3rem 0; background: #f3f7fa; }
.vds-school__section-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.vds-school__section-header > .vds-school__link { flex: 0 0 auto; margin-bottom: .3rem; }
.vds-school__offer-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.5rem; }
.vds-school__offer { display: flex; flex-direction: column; min-width: 0; background: #fff; box-shadow: 0 .5rem 1.8rem rgba(8,27,61,.04); }
.vds-school__offer-media { aspect-ratio: 1.8; overflow: hidden; }
.vds-school__offer-copy { display: flex; flex-direction: column; align-items: flex-start; flex: 1; padding: 1.2rem 1.3rem; }
.vds-school__offer h3 { margin: 0; font-size: 1.15rem; font-weight: 600; letter-spacing: -.035em; line-height: 1.15; }
.vds-school__offer .vds-school__description { margin: .65rem 0 1.2rem; font-size: .92rem; }
.vds-school__offer .vds-school__link { margin-top: auto; }
.vds-school__resorts { padding: 3rem 0 2rem; }
.vds-school__resort-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .9rem; }
.vds-school__resort { position: relative; isolation: isolate; display: block; aspect-ratio: 1.95; min-width: 0; background: #dce8f0; color: #fff; text-decoration: none; clip-path: polygon(4% 0,100% 0,96% 100%,0 100%); }
.vds-school__resort::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(transparent 30%,rgba(6,23,49,.78)); }
.vds-school__resort .vds-school__image { position: absolute; inset: 0; z-index: -2; transition: transform .3s; }
.vds-school__resort:hover .vds-school__image { transform: scale(1.035); }
.vds-school__resort-name { position: absolute; inset: auto 1.5rem 1.3rem; display: flex; align-items: center; justify-content: space-between; gap: .75rem; font-size: clamp(1rem,1.6vw,1.45rem); font-weight: 500; line-height: 1.2; }
.vds-school__instructor { padding: clamp(2.5rem, 5vw, 5rem) 0; }
.vds-school__instructor .vds-school__split { width: min(86%, 90rem); margin-inline: auto; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); }
.vds-school__instructor .vds-school__split-media { height: auto; aspect-ratio: 1.6; clip-path: polygon(0 0,100% 0,94% 100%,0 100%); }
.vds-school__instructor .vds-school__image { object-position: center 65%; }
.vds-school__instructor .vds-school__split-copy { padding: 1rem 0; }
.vds-school__instructor .vds-school__description { max-width: 35rem; line-height: 1.65; }
.vds-school__split--reverse { grid-template-columns: 54% 46%; }
.vds-school__split--reverse .vds-school__split-copy { padding: 1rem 0; }
.vds-school__split--reverse .vds-school__split-media { clip-path: polygon(0 0,100% 0,94% 100%,0 100%); }
.vds-school__instructor .vds-school__link { margin-top: 1.5rem; padding-bottom: .4rem; border-bottom: 1px solid currentColor; }
.vds-school__cta { position: relative; isolation: isolate; min-height: clamp(21rem, 27vw, 29rem); display: flex; align-items: center; padding: clamp(3.5rem, 5vw, 5rem) 0; background: #122d4e; color: #fff; clip-path: polygon(0 0,100% 3%,100% 100%,0 100%); }
.vds-school__cta-image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.vds-school__cta::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(7,28,54,.82) 0%,rgba(7,28,54,.58) 35%,rgba(7,28,54,.18) 68%,rgba(7,28,54,.04) 100%); }
.vds-school__cta .vds-school__eyebrow { color: #d1dae6; }
.vds-school__cta .vds-school__title { max-width: 19ch; color: #fff; font-weight: 300; font-size: clamp(2.4rem,3.8vw,4.25rem); line-height: 1.08; text-wrap: balance; text-shadow: 0 2px 14px rgba(0,0,0,.15); }
.vds-school__cta .vds-school__eyebrow { margin-bottom: 1.1rem; }
.vds-school__cta .vds-school__button { min-height: 3.25rem; min-width: 12.5rem; margin-top: 1.75rem; padding: .9rem 1.4rem; font-size: .75rem; }
.vds-school__cta .vds-school__button > span:last-child { font-size: 1.25rem; line-height: 1; }
.vds-school__button { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 3rem; margin-top: 1.5rem; padding: .8rem 1.3rem; background: var(--school-red); color: #fff; font-size: .7rem; font-weight: 600; text-transform: uppercase; text-decoration: none; }
.vds-school__button:hover { background: #df2944; }
@media (max-width: 1024px) {
    .vds-school__offer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .vds-school__features { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem 0; }
    .vds-school__feature:nth-child(3)::before { display: none; }
    .vds-school__section-header { align-items: flex-start; flex-direction: column; gap: 1rem; }
}
@media (max-width: 767px) {
    .vds-school__container { width: calc(100% - 2.5rem); }
    .vds-school__hero { min-height: 34rem; align-items: flex-end; padding: 4rem 0; clip-path: polygon(0 0,100% 0,100% 96%,42% 100%,0 96%); }
    .vds-school__hero-image { object-position: 62% center; }
    .vds-school__hero-shade { background: linear-gradient(0deg,rgba(246,250,252,.96),rgba(246,250,252,.75) 42%,rgba(246,250,252,.1)); }
    .vds-school__hero-title { max-width: 28rem; font-size: clamp(2.6rem,9vw,4rem); }
    .vds-school__split, .vds-school__split--reverse { grid-template-columns: 1fr; }
    .vds-school__split-copy, .vds-school__split--reverse .vds-school__split-copy { padding: 2.5rem 1.25rem; }
    .vds-school__split-media { height: 19rem; clip-path: polygon(8% 5%,100% 0,100% 100%,0 94%); }
    .vds-school__instructor .vds-school__split { width: calc(100% - 2.5rem); grid-template-columns: 1fr; gap: 1.5rem; }
    .vds-school__instructor .vds-school__split-media { height: auto; aspect-ratio: 1.5; clip-path: none; }
    .vds-school__instructor .vds-school__split-copy { padding: 0; }
    .vds-school__about { padding-top: 0; }
    .vds-school__features { padding-top: 2rem; }
    .vds-school__feature { padding-inline: .8rem; }
    .vds-school__feature h3 { font-size: 1rem; }
    .vds-school__feature p { font-size: .8rem; }
    .vds-school__resort-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
    .vds-school__resort-name { inset-inline: 1rem; bottom: 1rem; }
    .vds-school__cta { min-height: 22rem; padding: 3.5rem 0; clip-path: polygon(0 0,100% 2%,100% 100%,0 100%); }
    .vds-school__cta::after { background: linear-gradient(90deg,rgba(7,28,54,.8),rgba(7,28,54,.3)); }
    .vds-school__cta .vds-school__title { font-size: clamp(2.25rem,7.5vw,3rem); }
}
@media (max-width: 480px) {
    .vds-school__offer-grid, .vds-school__resort-grid { grid-template-columns: 1fr; }
    .vds-school__offer-grid { gap: 1.25rem; }
    .vds-school__resort { aspect-ratio: 2; }
    .vds-school__title { font-size: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
    .vds-school__resort .vds-school__image { transition: none; }
}


/* Dokładnie 7 szkół — osobny układ sekcji. */
.vds-school__resort-grid:has(> :nth-child(7):last-child) {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 1rem;
}

.vds-school__resort-grid:has(> :nth-child(7):last-child)
    > .vds-school__resort {
    grid-column: span 2;
    aspect-ratio: 1.65;
}

/* Drugi rząd: trzy kafelki na środku. */
.vds-school__resort-grid:has(> :nth-child(7):last-child)
    > :nth-child(5) {
    grid-column: 2 / span 2;
}

.vds-school__resort-grid:has(> :nth-child(7):last-child)
    > :nth-child(6) {
    grid-column: 4 / span 2;
}

.vds-school__resort-grid:has(> :nth-child(7):last-child)
    > :nth-child(7) {
    grid-column: 6 / span 2;
}

/* Czytelne nazwy także przy czterech kolumnach. */
.vds-school__resort-grid:has(> :nth-child(7):last-child)
    .vds-school__resort-name {
    inset-inline: 1.1rem;
    bottom: 1.1rem;
    font-size: clamp(1rem, 1.15vw, 1.25rem);
    line-height: 1.25;
}

/* Tablet: dwie kolumny, ostatni kafelek wyśrodkowany. */
@media (min-width: 481px) and (max-width: 1100px) {
    .vds-school__resort-grid:has(> :nth-child(7):last-child) {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .vds-school__resort-grid:has(> :nth-child(7):last-child)
        > .vds-school__resort {
        grid-column: auto / span 2;
        aspect-ratio: 1.95;
    }

    .vds-school__resort-grid:has(> :nth-child(7):last-child)
        > :last-child {
        grid-column: 2 / span 2;
    }
}

/* Telefon: jedna kolumna. */
@media (max-width: 480px) {
    .vds-school__resort-grid:has(> :nth-child(7):last-child) {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.8rem;
    }

    .vds-school__resort-grid:has(> :nth-child(7):last-child)
        > .vds-school__resort {
        grid-column: 1 / -1;
        aspect-ratio: 2;
    }
}