/* ==========================================================================
   ALIA MOVEMENT CAMPS - arkusz stylów (WERSJA 2)
   Paleta: ciepłe beże, kremy i mokka (wg inspiracji od klientki), delikatny blush
   Typografia: Favorite Notification (nagłówki) + Aston Script (akcent)
               + Roboto Light (tekst, nawigacja, cienki pasek u góry)
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Kroje pisma z DAFONT (self-hosted)
   Pliki w assets/fonts zostały uzupełnione o polskie znaki - patrz
   tools/patch-fonts.py oraz README.md (licencja!).
   -------------------------------------------------------------------------- */
@font-face {
  font-family: "Favorite Notification";
  src: url("../fonts/favorite-notification.woff") format("woff"),
       url("../fonts/favorite-notification.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Favorite Notification";
  src: url("../fonts/favorite-notification-italic.woff") format("woff"),
       url("../fonts/favorite-notification-italic.ttf") format("truetype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Aston Script";
  src: url("../fonts/aston-script.woff") format("woff"),
       url("../fonts/aston-script.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* --------------------------------------------------------------------------
   1. Zmienne
   -------------------------------------------------------------------------- */
:root {
  /* kolory - ciepłe beże zamiast zieleni (nazwy zmiennych zostają, żeby
     wszystkie podstrony przejęły nową paletę bez przepisywania klas) */
  --green: #6d6053;         /* mokka - dawna zieleń marki */
  --green-dark: #574c42;
  --green-deep: #40382f;    /* ciemne sekcje, stopka */
  --cream: #f4efe8;
  --cream-2: #ece4d9;
  --cream-3: #e0d6c8;
  --white: #fbf9f6;
  --ink: #2b2521;
  --ink-70: rgba(43, 37, 33, 0.7);
  --ink-55: rgba(43, 37, 33, 0.55);
  --ink-35: rgba(43, 37, 33, 0.35);
  --pink: #e7d7cf;          /* blush - dawny baby pink */
  --pink-2: #d8c3b8;
  --line: rgba(43, 37, 33, 0.14);
  --line-light: rgba(255, 255, 255, 0.24);

  /* typografia */
  --font-display: "Favorite Notification", "Playfair Display", "Times New Roman", Georgia, serif;
  --font-script: "Aston Script", "Playfair Display", cursive;
  --font-sans: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  /* rytm */
  --container: 1280px;
  --container-narrow: 880px;
  --gutter: clamp(20px, 5vw, 64px);
  --section-y: clamp(72px, 11vw, 148px);
  --tile-gap: clamp(14px, 1.8vw, 26px);
  --radius: 6px;
  --radius-lg: clamp(16px, 1.8vw, 26px);
  --radius-xl: clamp(20px, 2.6vw, 40px);

  /* ruch */
  --ease: cubic-bezier(0.22, 0.68, 0.28, 1);
  --header-h: 74px;

  /* logo ALIA - wektor wbudowany w arkusz, dzięki czemu maska działa
     także przy otwarciu strony bezpośrednio z dysku (file://) */
  --logo-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 701.6648 445.6303%22%3E%3Cpath transform=%22matrix(1,0,0,-1,1,444.6303)%22 d=%22M70 263 127.6 417.9C123.1 427.5 119.1 434 115.5 437.5 111.9 440.9 109.4 442.9 108 443.6H139.4L252.1 140.1C257.6 124.6 262.7 114.6 267.3 110 271.9 105.3 274.7 102.9 275.8 102.5H237.2C239.6 103.2 240.6 106.2 240.3 111.5 239.9 116.8 237.7 125.3 233.6 137L226.4 155C218.8 138.9 207.5 125.9 192.4 116.1 177.3 106.4 161.2 101.5 144.1 101.5 127.9 101.5 113 105.6 99.3 113.8 85.6 122.1 74.7 133 66.6 146.8 58.6 160.5 54.5 175.4 54.5 191.5 54.5 212.1 59.7 235.9 70 263ZM144.1 103C162.6 103 179.1 108.1 193.7 118.2 208.3 128.3 219 141.1 225.9 156.5L161 330.4H97.2L72 261.5C61.7 234.4 56.6 211.1 56.6 191.5 56.6 175.4 60.5 160.6 68.4 147.3 76.3 133.9 87 123.2 100.3 115.1 113.7 107.1 128.3 103 144.1 103ZM132.2 407.1C131.9 408.8 131.4 410.3 130.7 411.5 130 412.7 129.3 414 128.6 415.3L98.3 332.5H160ZM24.2 140.1 25.7 137.5C21.3 125.8 19 117.3 18.8 111.8 18.6 106.3 19.4 103.2 21.1 102.5H0C1.7 103.2 4.8 106 9.3 111 13.7 116 18.7 125.7 24.2 140.1ZM270.6 396.8V151.9C270.6 138.5 271.5 128.4 273.2 121.5 274.9 114.7 276.5 110.1 278.1 107.7 279.6 105.3 280.4 104.1 280.4 104.1H388.4C413.1 104.1 432 110.9 449.1 128.7L449.2 124.9 434.2 102.5H241.3C241.3 102.5 242.1 103.7 243.8 106.1 245.6 108.5 247.3 113.1 249 120 250.7 126.9 251.6 136.6 251.6 149.3V396.8C251.6 415 250.1 427.2 247.2 433.3 244.3 439.5 242.3 442.9 241.3 443.6H279.9C279.9 443.6 279.1 442.4 277.5 440 276 437.6 274.5 433.1 272.9 426.4 271.4 419.7 270.6 409.8 270.6 396.8ZM448.1 396.8V149.3C448.1 136.6 448.9 126.9 450.6 120 452.4 113.1 454.1 108.5 455.8 106.1 457.5 103.7 458.4 102.5 458.4 102.5H417.2C417.2 102.5 418.2 103.7 420.3 106.1 422.4 108.5 424.3 113.1 426.2 120 428.1 126.9 429 136.6 429 149.3V396.8C429 415 427.3 427.2 423.9 433.3 420.5 439.5 418.2 442.9 417.2 443.6H457.9C457.9 443.6 457 442.4 455.3 440 453.6 437.6 451.9 433.1 450.4 426.4 448.8 419.7 448.1 409.8 448.1 396.8ZM493.9 263 551.5 417.9C547 427.5 543 434 539.4 437.5 535.8 440.9 533.3 442.9 531.9 443.6H563.3L676 140.1C681.5 124.6 686.5 114.6 691.2 110 695.8 105.3 698.6 102.9 699.7 102.5H661.1C663.5 103.2 664.5 106.2 664.2 111.5 663.8 116.8 661.6 125.3 657.5 137L650.3 155C642.7 138.9 631.4 125.9 616.3 116.1 601.2 106.4 585.1 101.5 567.9 101.5 551.8 101.5 536.9 105.6 523.2 113.8 509.5 122.1 498.6 133 490.5 146.8 482.5 160.5 478.4 175.4 478.4 191.5 478.4 212.1 483.6 235.9 493.9 263ZM567.9 103C586.5 103 603 108.1 617.6 118.2 632.2 128.3 642.9 141.1 649.8 156.5L584.9 330.4H521.1L495.9 261.5C485.6 234.4 480.5 211.1 480.5 191.5 480.5 175.4 484.4 160.6 492.3 147.3 500.2 133.9 510.8 123.2 524.2 115.1 537.6 107.1 552.2 103 567.9 103ZM556.1 407.1C555.8 408.8 555.3 410.3 554.6 411.5 553.9 412.7 553.2 414 552.5 415.3L522.2 332.5H583.9ZM448.1 140.1 447.7 135.6C443.3 123.9 442.8 117.3 442.7 111.8 442.5 106.3 443.3 103.2 445 102.5H423.9C425.6 103.2 428.7 106 433.1 111 437.6 116 442.6 125.7 448.1 140.1%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,1,444.6303)%22 d=%22M85 46.1V2.9C85 2.1 84.8 1.5 84.3 .955 83.9 .4547 83.2 .2047 82.4 .2047 81.6 .2047 81 .4547 80.6 .955 80.2 1.5 79.9 2.1 79.9 2.9V37.8L65.1 9.4C64.5 8.1 63.6 7.4 62.3 7.4 61.2 7.4 60.2 8.1 59.6 9.4L44.7 37.5V2.9C44.7 2.1 44.5 1.5 44 .955 43.6 .4547 43 .2047 42.2 .2047 41.3 .2047 40.7 .4547 40.2 .955 39.8 1.5 39.6 2.1 39.6 2.9V46.1C39.6 47 39.8 47.7 40.3 48.2 40.8 48.7 41.5 49 42.4 49 43.5 49 44.4 48.3 45.1 47L62.4 13.8 79.5 47C79.9 47.7 80.3 48.2 80.7 48.5 81.2 48.8 81.7 49 82.3 49 83.1 49 83.8 48.7 84.3 48.2 84.8 47.7 85 47 85 46.1ZM94.5 24.6C94.5 29.6 95.3 34 97.1 37.7 98.8 41.4 101.4 44.2 104.7 46.2 108 48.2 111.9 49.2 116.4 49.2 120.9 49.2 124.8 48.2 128.1 46.2 131.4 44.2 133.9 41.4 135.6 37.7 137.4 34 138.3 29.6 138.3 24.6 138.3 19.6 137.4 15.3 135.6 11.6 133.8 7.9 131.3 5 128 3 124.7 1 120.8 0 116.4 0 111.9 0 108 1 104.7 3 101.4 5 98.9 7.8 97.1 11.5 95.4 15.2 94.5 19.6 94.5 24.6ZM132.5 24.6C132.5 31 131.1 35.9 128.3 39.3 125.5 42.7 121.5 44.4 116.4 44.4 111.3 44.4 107.3 42.7 104.5 39.3 101.6 35.8 100.2 30.9 100.2 24.6 100.2 18.3 101.6 13.4 104.5 10 107.3 6.5 111.3 4.8 116.4 4.8 121.5 4.8 125.4 6.5 128.3 9.9 131.1 13.4 132.5 18.3 132.5 24.6ZM185.3 49.1C186.1 49.1 186.7 48.9 187.3 48.4 187.8 47.9 188.1 47.3 188.1 46.7 188.1 46.3 188 45.9 187.8 45.6L168.3 2C168 1.5 167.6 1 167 .6817 166.5 .364 165.9 .2047 165.3 .2047 164.6 .2047 164 .364 163.5 .6817 162.9 1 162.5 1.5 162.3 2L142.8 45.6C142.6 45.9 142.6 46.3 142.6 46.6 142.6 47.3 142.8 47.9 143.4 48.4 144 48.9 144.7 49.1 145.4 49.1 146.5 49.1 147.3 48.6 147.8 47.5L165.4 7.8 182.9 47.5C183.2 48 183.5 48.4 183.9 48.7 184.4 49 184.8 49.1 185.3 49.1ZM194.1 3.3V45.9C194.1 46.7 194.4 47.4 194.9 47.9 195.4 48.4 196.1 48.6 197 48.6H222.5C223.3 48.6 223.9 48.4 224.4 48 224.9 47.6 225.1 47 225.1 46.3 225.1 45.6 224.9 45 224.4 44.6 223.9 44.2 223.3 44 222.5 44H199.6V27.3H221.1C221.9 27.3 222.6 27.1 223 26.7 223.5 26.3 223.7 25.7 223.7 25 223.7 24.2 223.5 23.7 223 23.3 222.6 22.9 221.9 22.6 221.1 22.6H199.6V5.2H222.5C223.3 5.2 223.9 5 224.4 4.6 224.9 4.2 225.1 3.6 225.1 2.9 225.1 2.1 224.9 1.6 224.4 1.2 223.9 .7503 223.3 .5457 222.5 .5457H197C196.1 .5457 195.4 .7957 194.9 1.3 194.4 1.8 194.1 2.5 194.1 3.3ZM278.6 46.1V2.9C278.6 2.1 278.3 1.5 277.9 .955 277.4 .4547 276.8 .2047 276 .2047 275.2 .2047 274.5 .4547 274.1 .955 273.7 1.5 273.5 2.1 273.5 2.9V37.8L258.7 9.4C258.1 8.1 257.1 7.4 255.9 7.4 254.7 7.4 253.8 8.1 253.1 9.4L238.2 37.5V2.9C238.2 2.1 238 1.5 237.6 .955 237.2 .4547 236.5 .2047 235.7 .2047 234.9 .2047 234.3 .4547 233.8 .955 233.4 1.5 233.1 2.1 233.1 2.9V46.1C233.1 47 233.4 47.7 233.9 48.2 234.4 48.7 235.1 49 235.9 49 237.1 49 238 48.3 238.7 47L256 13.8 273.1 47C273.5 47.7 273.9 48.2 274.3 48.5 274.7 48.8 275.2 49 275.8 49 276.7 49 277.4 48.7 277.8 48.2 278.3 47.7 278.6 47 278.6 46.1ZM289.8 3.3V45.9C289.8 46.7 290.1 47.4 290.6 47.9 291.1 48.4 291.8 48.6 292.7 48.6H318.2C319 48.6 319.6 48.4 320.1 48 320.5 47.6 320.8 47 320.8 46.3 320.8 45.6 320.5 45 320.1 44.6 319.6 44.2 319 44 318.2 44H295.3V27.3H316.8C317.6 27.3 318.3 27.1 318.7 26.7 319.2 26.3 319.4 25.7 319.4 25 319.4 24.2 319.2 23.7 318.7 23.3 318.3 22.9 317.6 22.6 316.8 22.6H295.3V5.2H318.2C319 5.2 319.6 5 320.1 4.6 320.5 4.2 320.8 3.6 320.8 2.9 320.8 2.1 320.5 1.6 320.1 1.2 319.6 .7503 319 .5457 318.2 .5457H292.7C291.8 .5457 291.1 .7957 290.6 1.3 290.1 1.8 289.8 2.5 289.8 3.3ZM367.4 46.1V3.1C367.4 2.2 367.1 1.5 366.6 .9893 366.2 .466 365.5 .2047 364.6 .2047 363.8 .2047 363 .591 362.4 1.4L334.1 39.2V3.1C334.1 2.2 333.8 1.5 333.4 .9893 332.9 .466 332.2 .2047 331.4 .2047 330.6 .2047 330 .466 329.5 .9893 329 1.5 328.8 2.2 328.8 3.1V46.1C328.8 47 329.1 47.7 329.5 48.2 330 48.7 330.7 49 331.5 49 332.5 49 333.2 48.6 333.9 47.8L362.1 10V46.1C362.1 47 362.3 47.7 362.8 48.2 363.3 48.7 364 49 364.8 49 365.6 49 366.2 48.7 366.7 48.2 367.1 47.7 367.4 47 367.4 46.1ZM390.1 3.1V43.9H375.5C374.6 43.9 374 44.1 373.6 44.5 373.1 44.9 372.9 45.5 372.9 46.3 372.9 47 373.1 47.6 373.6 48 374 48.4 374.6 48.6 375.5 48.6H410.5C411.3 48.6 411.9 48.4 412.4 48 412.8 47.6 413.1 47 413.1 46.3 413.1 45.5 412.8 44.9 412.4 44.5 411.9 44.1 411.3 43.9 410.5 43.9H395.8V3.1C395.8 2.2 395.5 1.5 395 .9893 394.5 .466 393.9 .2047 393 .2047 392.1 .2047 391.4 .466 390.9 .9893 390.4 1.5 390.1 2.2 390.1 3.1ZM433.8 24.6C433.8 29.6 434.7 34 436.5 37.7 438.3 41.4 440.8 44.2 444.2 46.2 447.5 48.2 451.4 49.2 456 49.2 459 49.2 461.9 48.7 464.6 47.7 467.3 46.7 469.6 45.3 471.6 43.5 472.4 42.8 472.7 42 472.7 41.1 472.7 40.5 472.6 39.9 472.2 39.5 471.8 39 471.4 38.7 470.9 38.7 470.3 38.7 469.7 39 468.9 39.5 466.6 41.3 464.5 42.6 462.6 43.3 460.7 44 458.5 44.4 456.1 44.4 450.8 44.4 446.8 42.7 443.9 39.3 441.1 35.8 439.6 30.9 439.6 24.6 439.6 18.3 441.1 13.4 443.9 9.9 446.8 6.5 450.8 4.8 456.1 4.8 458.5 4.8 460.7 5.1 462.6 5.9 464.5 6.6 466.6 7.9 468.9 9.7 469.7 10.2 470.3 10.4 470.9 10.4 471.4 10.4 471.8 10.2 472.2 9.8 472.6 9.3 472.7 8.7 472.7 8 472.7 7.1 472.4 6.3 471.6 5.7 469.6 3.8 467.3 2.4 464.6 1.5 461.9 .489 459 0 456 0 451.4 0 447.5 .9893 444.2 3 440.8 4.9 438.3 7.8 436.5 11.5 434.7 15.2 433.8 19.6 433.8 24.6ZM522.7 2.6C522.7 1.9 522.5 1.3 521.9 .8864 521.4 .4317 520.8 .2047 520.1 .2047 518.9 .2047 518.1 .7503 517.7 1.8L512.8 12.9H487.1L482.2 1.8C481.8 .7503 481 .2047 479.8 .2047 479.1 .2047 478.5 .4436 477.9 .9207 477.4 1.4 477.1 2 477.1 2.7 477.1 3 477.2 3.4 477.4 3.8L496.9 47.1C497.1 47.8 497.6 48.3 498.1 48.6 498.6 48.9 499.2 49 499.9 49 500.6 49 501.2 48.9 501.7 48.5 502.3 48.2 502.7 47.7 502.9 47.1L522.5 3.8C522.6 3.4 522.7 3 522.7 2.6ZM489.2 17.5H510.8L499.9 42ZM575.4 46.1V2.9C575.4 2.1 575.2 1.5 574.7 .955 574.2 .4547 573.6 .2047 572.8 .2047 572 .2047 571.4 .4547 570.9 .955 570.5 1.5 570.3 2.1 570.3 2.9V37.8L555.5 9.4C554.9 8.1 554 7.4 552.7 7.4 551.6 7.4 550.6 8.1 549.9 9.4L535.1 37.5V2.9C535.1 2.1 534.9 1.5 534.4 .955 534 .4547 533.4 .2047 532.5 .2047 531.7 .2047 531.1 .4547 530.6 .955 530.2 1.5 529.9 2.1 529.9 2.9V46.1C529.9 47 530.2 47.7 530.7 48.2 531.2 48.7 531.9 49 532.7 49 533.9 49 534.8 48.3 535.5 47L552.8 13.8 569.9 47C570.3 47.7 570.7 48.2 571.1 48.5 571.6 48.8 572.1 49 572.7 49 573.5 49 574.2 48.7 574.7 48.2 575.1 47.7 575.4 47 575.4 46.1ZM586.6 3.1V45.9C586.6 46.7 586.9 47.4 587.4 47.9 587.9 48.4 588.6 48.6 589.5 48.6H605.7C610.7 48.6 614.6 47.4 617.4 45 620.2 42.5 621.6 39 621.6 34.5 621.6 30 620.2 26.5 617.4 24 614.6 21.5 610.7 20.3 605.7 20.3H592.2V3.1C592.2 2.2 592 1.5 591.5 .9893 591 .466 590.3 .2047 589.4 .2047 588.6 .2047 587.9 .466 587.4 .9893 586.9 1.5 586.6 2.2 586.6 3.1ZM605.1 24.9C612.4 24.9 616.1 28.1 616.1 34.5 616.1 40.8 612.4 44 605.1 44H592.2V24.9ZM628 5.7C627.3 6.3 627 7.1 627 8 627 8.7 627.2 9.2 627.5 9.7 627.9 10.2 628.3 10.4 628.8 10.4 629.4 10.4 630.1 10.2 630.8 9.7 635 6.4 639.8 4.8 645.2 4.8 649.1 4.8 652.1 5.5 654.2 7 656.3 8.5 657.4 10.7 657.4 13.4 657.4 15 656.9 16.3 655.9 17.3 654.9 18.3 653.5 19.1 651.9 19.6 650.3 20.2 648.1 20.9 645.3 21.5 641.6 22.4 638.5 23.3 636.1 24.2 633.7 25.2 631.8 26.5 630.3 28.3 628.8 30.1 628.1 32.4 628.1 35.3 628.1 38 628.8 40.4 630.3 42.5 631.8 44.6 633.9 46.3 636.5 47.4 639.2 48.6 642.2 49.2 645.6 49.2 648.8 49.2 651.8 48.7 654.5 47.7 657.3 46.7 659.6 45.3 661.5 43.5 662.2 42.8 662.5 42 662.5 41.1 662.5 40.5 662.4 39.9 662 39.5 661.6 39 661.2 38.7 660.7 38.7 660.2 38.7 659.5 39 658.7 39.5 656.5 41.3 654.4 42.6 652.5 43.3 650.6 44 648.3 44.4 645.6 44.4 641.9 44.4 638.9 43.6 636.8 42.1 634.7 40.5 633.7 38.3 633.7 35.5 633.7 33.1 634.6 31.3 636.5 30.1 638.3 28.8 641.1 27.8 644.9 26.9 649.1 25.9 652.3 25 654.7 24.1 657.1 23.3 659 22 660.6 20.3 662.2 18.6 663 16.4 663 13.6 663 10.9 662.2 8.5 660.7 6.5 659.3 4.4 657.2 2.8 654.5 1.7 651.8 .5686 648.7 0 645.3 0 641.9 0 638.6 .5114 635.5 1.5 632.4 2.6 629.9 3.9 628 5.7%22/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------------------
   2. Reset / podstawy
   -------------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

* { margin: 0; padding: 0; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 16px);
}

body {
  font-family: var(--font-sans);
  font-size: clamp(15px, 0.55vw + 13.4px, 17px);
  font-weight: 300;
  line-height: 1.72;
  color: var(--ink);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

body.is-locked { overflow: hidden; }

img,
picture,
svg { display: block; max-width: 100%; }

img { height: auto; }

a { color: inherit; text-decoration: none; }

button,
input,
textarea,
select {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  border-radius: 0;
}

fieldset {
  border: 0;
  min-width: 0;
}

button { cursor: pointer; }

ul, ol { list-style: none; }

::selection { background: var(--pink); color: var(--ink); }

:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 999;
  padding: 12px 20px;
  background: var(--green);
  color: var(--cream);
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.skip-link:focus { left: 12px; top: 12px; }

.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* --------------------------------------------------------------------------
   3. Typografia
   -------------------------------------------------------------------------- */
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: 0.005em;
}

.h-display {
  font-size: clamp(3rem, 7.8vw, 6.4rem);
  line-height: 1;
}

h1, .h1 { font-size: clamp(2.5rem, 5.8vw, 4.8rem); }
h2, .h2 { font-size: clamp(2.1rem, 4.4vw, 3.7rem); line-height: 1.1; }
h3, .h3 { font-size: clamp(1.4rem, 2.1vw, 1.95rem); line-height: 1.22; }
h4, .h4 { font-size: clamp(1.15rem, 1.5vw, 1.35rem); line-height: 1.32; }

.serif-italic { font-style: italic; }

/* pismo odręczne - akcenty (Aston Script) */
.script {
  font-family: var(--font-script);
  font-style: normal;
  letter-spacing: 0.01em;
  line-height: 1.25;
}

/* "&" - kroju nagłówkowego brakuje tego znaku, więc świadomie bierzemy
   go z kroju zapasowego i traktujemy jako ozdobnik */
.amp {
  font-family: "Playfair Display", Georgia, serif;
  font-style: italic;
  font-weight: 400;
}

em, .em { font-style: italic; }

strong, b { font-weight: 500; }

p + p { margin-top: 1.05em; }

.lead {
  font-size: clamp(1.02rem, 1.15vw, 1.2rem);
  line-height: 1.75;
  color: var(--ink-70);
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--green);
}

.eyebrow::before {
  content: "";
  width: 26px;
  height: 1px;
  background: var(--pink-2);
}

.eyebrow--plain::before { display: none; }
.eyebrow--light { color: var(--pink); }
.eyebrow--light::before { background: rgba(253, 223, 228, 0.5); }

.section-title { margin-top: 22px; }
.section-title + .lead { margin-top: 22px; }

/* dłuższe zdania w roli nagłówka - spokojniejszy stopień pisma */
.section-title--sm { font-size: clamp(1.5rem, 2.5vw, 2.25rem); line-height: 1.16; }

.muted { color: var(--ink-55); }
.small { font-size: 0.86rem; line-height: 1.65; }
.tiny {
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   4. Układ
   -------------------------------------------------------------------------- */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.container--narrow { max-width: var(--container-narrow); }
.container--wide { max-width: 1560px; }

.section { padding-block: var(--section-y); }
.section--tight { padding-block: clamp(56px, 7vw, 96px); }
.section--flush-top { padding-top: 0; }
/* treść wpisu startuje bliżej hero - hero ma już własny padding dolny */
.section--article { padding-top: clamp(44px, 5.5vw, 76px); }

.bg-cream { background: var(--cream); }
.bg-cream-2 { background: var(--cream-2); }
.bg-white { background: var(--white); }

.bg-green {
  background: var(--green);
  color: var(--cream);
}
.bg-green .eyebrow { color: var(--pink); }
.bg-green .eyebrow::before { background: rgba(253, 223, 228, 0.5); }
.bg-green .lead,
.bg-green .muted { color: rgba(247, 243, 236, 0.78); }

.bg-green-deep {
  background: var(--green-deep);
  color: var(--cream);
}

.grid { display: grid; gap: clamp(24px, 3vw, 48px); }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.rule {
  height: 1px;
  background: var(--line);
  border: 0;
}

.stack-sm > * + * { margin-top: 12px; }
.stack > * + * { margin-top: 22px; }
.stack-lg > * + * { margin-top: 38px; }

.center { text-align: center; }
.center .eyebrow { justify-content: center; }

/* --------------------------------------------------------------------------
   5. Przyciski
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 16px 32px;
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 300;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-align: center;
  border: 1px solid var(--green);
  border-radius: 999px;
  background: var(--green);
  color: var(--cream);
  transition: background 0.4s var(--ease), color 0.4s var(--ease),
    border-color 0.4s var(--ease), transform 0.4s var(--ease);
}

.btn:hover {
  background: var(--green-deep);
  border-color: var(--green-deep);
  transform: translateY(-2px);
}

.btn--ghost {
  background: transparent;
  color: var(--ink);
  border-color: var(--ink-35);
}
.btn--ghost:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--cream);
}

.btn--light {
  background: var(--cream);
  border-color: var(--cream);
  color: var(--green-deep);
}
.btn--light:hover {
  background: var(--pink);
  border-color: var(--pink);
  color: var(--green-deep);
}

.btn--outline-light {
  background: transparent;
  border-color: var(--line-light);
  color: var(--cream);
}
.btn--outline-light:hover {
  background: var(--cream);
  border-color: var(--cream);
  color: var(--green-deep);
}

.btn--block { width: 100%; }

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--line);
  transition: border-color 0.4s var(--ease), color 0.4s var(--ease);
}
.link-arrow svg { transition: transform 0.4s var(--ease); }
.link-arrow:hover { border-color: var(--green); color: var(--green); }
.link-arrow:hover svg { transform: translateX(5px); }

.bg-green .link-arrow { border-color: var(--line-light); }
.bg-green .link-arrow:hover { color: var(--pink); border-color: var(--pink); }

/* --------------------------------------------------------------------------
   6. Nagłówek / nawigacja
   -------------------------------------------------------------------------- */
.header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--header-h);
  display: flex;
  align-items: center;
  transition: background 0.45s var(--ease), box-shadow 0.45s var(--ease),
    height 0.45s var(--ease);
}

.header::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 1px;
  background: var(--line);
  opacity: 0;
  transition: opacity 0.45s var(--ease);
}

.header.is-scrolled {
  background: rgba(244, 239, 232, 0.92);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  height: 64px;
}
.header.is-scrolled::after { opacity: 1; }

.header__inner {
  width: 100%;
  max-width: 1560px;
  margin-inline: auto;
  padding-inline: var(--gutter);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
}

/* logo (znak graficzny - SVG przez maskę, dziedziczy kolor z currentColor) */
.logo {
  display: inline-flex;
  align-items: center;
  line-height: 1;
  color: var(--ink);
  transition: color 0.4s var(--ease);
}

.logo__img {
  display: block;
  height: var(--logo-h, 46px);
  width: calc(var(--logo-h, 46px) * 1.5747);
  background-color: currentColor;
  -webkit-mask: var(--logo-mask) center / contain no-repeat;
  mask: var(--logo-mask) center / contain no-repeat;
  transition: height 0.45s var(--ease), width 0.45s var(--ease);
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}

.header .logo__img { --logo-h: 44px; }
.header.is-scrolled .logo__img { --logo-h: 38px; }

.header.is-transparent:not(.is-scrolled) .logo { color: var(--cream); }
.header.is-transparent:not(.is-scrolled) .burger span { background: var(--cream); }

/* cienki pasek zakładek - "pigułka" nad zdjęciem (Roboto Light) */
.nav {
  grid-column: 2;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 5px;
  background: rgba(251, 249, 246, 0.8);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 999px;
  box-shadow: 0 10px 30px -22px rgba(43, 37, 33, 0.5);
  transition: background 0.45s var(--ease), border-color 0.45s var(--ease),
    box-shadow 0.45s var(--ease);
}

.header.is-scrolled .nav {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}

.nav__link {
  display: inline-flex;
  align-items: center;
  padding: 9px clamp(12px, 1.4vw, 20px);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 300;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--ink);
  transition: background 0.35s var(--ease), color 0.35s var(--ease);
}

.nav__link:hover { background: rgba(43, 37, 33, 0.07); }

/* skrót do strony głównej - ikona domku zamiast napisu */
.nav__link--home { padding-inline: 13px; }
.nav__link--home svg { display: block; }
.nav__link.is-active { background: var(--cream-2); color: var(--ink); }

.nav__cta {
  display: inline-flex;
  align-items: center;
  padding: 9px clamp(14px, 1.6vw, 22px);
  border-radius: 999px;
  background: var(--green);
  color: var(--cream);
  font-size: 11px;
  font-weight: 300;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background 0.35s var(--ease), transform 0.35s var(--ease);
}
.nav__cta:hover { background: var(--green-deep); transform: translateY(-1px); }

.header__actions {
  grid-column: 3;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.burger {
  display: flex;
  width: 42px;
  height: 42px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  gap: 6px;
  margin-right: -8px;
}

.burger span {
  display: block;
  width: 26px;
  height: 1px;
  background: var(--ink);
  transition: transform 0.4s var(--ease), opacity 0.3s var(--ease),
    width 0.4s var(--ease), background 0.4s var(--ease);
}
.burger span:last-child { width: 18px; }

.burger.is-open span:first-child { transform: translateY(3.5px) rotate(45deg); }
.burger.is-open span:last-child { width: 26px; transform: translateY(-3.5px) rotate(-45deg); }

/* menu mobilne */
.mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 99;
  background: var(--green);
  padding: calc(var(--header-h) + 28px) var(--gutter) 40px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-12px);
  transition: opacity 0.5s var(--ease), transform 0.5s var(--ease),
    visibility 0.5s;
  overflow-y: auto;
}

.mobile-nav.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.mobile-nav__list { display: flex; flex-direction: column; }

.mobile-nav__list li { border-bottom: 1px solid rgba(247, 243, 236, 0.16); }

.mobile-nav__link {
  display: block;
  padding: 17px 0;
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 8vw, 2.4rem);
  color: var(--cream);
  transition: color 0.35s var(--ease), padding-left 0.35s var(--ease);
}
.mobile-nav__link:hover,
.mobile-nav__link.is-active { color: var(--pink); padding-left: 8px; }

.mobile-nav__footer {
  margin-top: 36px;
  color: rgba(247, 243, 236, 0.78);
  font-size: 13px;
  letter-spacing: 0.06em;
}
.mobile-nav__footer a { display: inline-block; padding-block: 3px; }
.mobile-nav__footer a:hover { color: var(--pink); }

/* --------------------------------------------------------------------------
   7. Hero
   -------------------------------------------------------------------------- */
.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  background: var(--cream);
}

.hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: calc(var(--header-h) + clamp(48px, 7vw, 90px)) clamp(24px, 5vw, 88px)
    clamp(48px, 6vw, 80px) var(--gutter);
}

.hero__title {
  margin-top: 26px;
  font-size: clamp(2.6rem, 4.4vw, 4.4rem);
  line-height: 1.02;
}

.hero__title .accent {
  font-style: italic;
  color: var(--green);
}

.hero__text {
  margin-top: 26px;
  max-width: 46ch;
}

.hero__actions {
  margin-top: 38px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.hero__facts {
  margin-top: clamp(44px, 6vw, 72px);
  padding-top: 26px;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: clamp(20px, 4vw, 52px);
}

.hero__fact { max-width: 190px; }
.hero__fact dt {
  font-family: var(--font-display);
  font-size: 1.9rem;
  line-height: 1;
  color: var(--green);
}
.hero__fact dd {
  margin-top: 8px;
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ink-55);
  line-height: 1.5;
}

.hero__media {
  position: relative;
  overflow: hidden;
  background: var(--cream-2);
}

.hero__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
}

.hero__badge {
  position: absolute;
  left: 0;
  bottom: clamp(24px, 5vw, 56px);
  border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
  background: var(--cream);
  padding: 18px 26px 18px clamp(20px, 3vw, 34px);
  max-width: 320px;
}
.hero__badge .tiny { color: var(--green); }
.hero__badge p { margin-top: 6px; font-size: 0.92rem; line-height: 1.5; }

.hero__scroll {
  position: absolute;
  left: var(--gutter);
  bottom: 26px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ink-55);
}
.hero__scroll::after {
  content: "";
  width: 46px;
  height: 1px;
  background: var(--ink-35);
  animation: scrollLine 2.6s var(--ease) infinite;
  transform-origin: left;
}

@keyframes scrollLine {
  0%, 100% { transform: scaleX(0.35); opacity: 0.5; }
  50% { transform: scaleX(1); opacity: 1; }
}

/* hero podstron */
.page-hero {
  position: relative;
  border-radius: 0 0 var(--radius-xl) var(--radius-xl);
  min-height: clamp(380px, 58vh, 620px);
  display: flex;
  align-items: center;
  padding: calc(var(--header-h) + 60px) 0 clamp(40px, 5vw, 68px);
  background: var(--green-deep);
  overflow: hidden;
  color: var(--cream);
}

.page-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(38, 32, 27, 0.58);
}

/* nagłówek podstrony wyśrodkowany - tak samo na desktopie i na telefonie */
.page-hero__inner { position: relative; z-index: 2; text-align: center; }
.page-hero__inner .pill-row { justify-content: center; }
.page-hero__title { margin: 20px auto 0; max-width: 20ch; }
.page-hero__text {
  margin: 22px auto 0;
  max-width: 52ch;
  color: rgba(247, 243, 236, 0.86);
}

.breadcrumbs {
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(247, 243, 236, 0.7);
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: center;
}
.breadcrumbs a:hover { color: var(--pink); }
.breadcrumbs span { opacity: 0.5; }

/* --------------------------------------------------------------------------
   7b. Strona główna - plakat otwierający i kafle zakładek (wersja 2)
   -------------------------------------------------------------------------- */
.poster {
  /* odstęp nad paskiem i pod nim jest taki sam: pasek jest wyśrodkowany
     w pasie o wysokości --header-h, a zdjęcie startuje dokładnie pod nim */
  padding: var(--header-h) var(--gutter) 0;
  background: var(--cream);
}

.poster__frame {
  position: relative;
  max-width: 1560px;
  margin-inline: auto;
  /* kadr banerowy - bez martwego pola nad postaciami */
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #fdfcfa;
}

.poster__frame > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 62%;
}

/* logo siada w optycznym środku wolnej przestrzeni nad postaciami */
.poster__inner {
  position: absolute;
  top: 24%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-inline: clamp(16px, 4vw, 60px);
  text-align: center;
  gap: clamp(10px, 1.4vw, 20px);
  color: var(--ink);
}

.poster__eyebrow {
  font-family: var(--font-sans);
  font-weight: 300;
  font-size: clamp(8px, 0.78vw, 11px);
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--ink-55);
}

.poster__logo {
  color: var(--ink);
  --logo-h: clamp(46px, 8.4vw, 126px);
}

.poster__script {
  font-family: var(--font-script);
  font-size: clamp(1.1rem, 2.3vw, 2.1rem);
  line-height: 1;
  color: var(--green);
}

.poster__foot {
  margin-top: clamp(26px, 3.2vw, 44px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(12px, 1.6vw, 20px);
  text-align: center;
}

.poster__foot p {
  max-width: 46ch;
  color: var(--ink-70);
  font-size: clamp(0.95rem, 1.1vw, 1.12rem);
}

.poster__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

/* trzy zakładki w formie zdjęć: O NAS / CAMPY / EVENTY */
.tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--tile-gap);
}

/* odstęp od zdjęcia u góry taki sam jak przerwa między kaflami */
.section--tiles { padding-top: var(--tile-gap); }

.tile-item { display: flex; flex-direction: column; }

.tile {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--radius-xl);
  aspect-ratio: 4 / 5;
  background: var(--cream-2);
}

.tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.tile:hover img { transform: scale(1.05); }

.tile__bar {
  position: absolute;
  left: clamp(12px, 1.2vw, 18px);
  right: clamp(12px, 1.2vw, 18px);
  bottom: clamp(12px, 1.2vw, 18px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 8px 8px clamp(16px, 1.6vw, 24px);
  border-radius: 999px;
  background: rgba(251, 249, 246, 0.88);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.tile__name {
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 1.5vw, 1.5rem);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1;
  color: var(--ink);
}

.tile__arrow {
  flex: none;
  width: clamp(34px, 3vw, 42px);
  height: clamp(34px, 3vw, 42px);
  border-radius: 50%;
  background: var(--green);
  color: var(--cream);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.4s var(--ease), transform 0.4s var(--ease);
}
.tile:hover .tile__arrow { background: var(--green-deep); transform: translateX(3px); }

/* sekcja jako duży zaokrąglony blok (inspiracja z układu przesłanego przez klientkę) */
.section--card {
  margin-inline: clamp(0px, 1.6vw, 24px);
  border-radius: var(--radius-xl);
}

/* --------------------------------------------------------------------------
   8. Bloki treści
   -------------------------------------------------------------------------- */
.split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(32px, 5vw, 88px);
  align-items: center;
}

.split--top { align-items: start; }
.split--stretch { align-items: stretch; }
.split--stretch .split__media,
.split--stretch .figure {
  height: 100%;
  aspect-ratio: auto;
  min-height: clamp(360px, 46vw, 620px);
}
.split--wide-media { grid-template-columns: 0.9fr 1.1fr; }
.split--wide-copy { grid-template-columns: 1.1fr 0.9fr; }

.split__media { position: relative; }

.figure {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--cream-2);
}
.figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.1s var(--ease);
}
.figure--tall { aspect-ratio: 3 / 4; }
.figure--portrait { aspect-ratio: 4 / 5; }
.figure--square { aspect-ratio: 1 / 1; }
.figure--wide { aspect-ratio: 4 / 3; }
.figure--pano { aspect-ratio: 16 / 10; }

.figure__caption {
  margin-top: 12px;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-55);
}

.media-duo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 1.6vw, 20px);
  align-items: start;
}
.media-duo .figure:last-child { margin-top: clamp(28px, 5vw, 64px); }

.quote-block {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3.1vw, 2.75rem);
  font-style: italic;
  line-height: 1.24;
  letter-spacing: -0.01em;
}

.quote-block cite {
  display: block;
  margin-top: 22px;
  font-family: var(--font-sans);
  font-size: 11px;
  font-style: normal;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  opacity: 0.75;
}

/* równanie marki: ALIA + TRENER = CAMP */
.equation {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  white-space: nowrap;
  max-width: 100%;
  gap: clamp(9px, 1.3vw, 20px);
  font-family: var(--font-display);
  /* rozmiar dobrany tak, by całe równanie mieściło się w jednej linii
     także w wąskiej kolumnie układu .split na dużych ekranach */
  font-size: clamp(1.25rem, 2.5vw, 2.1rem);
  letter-spacing: 0.04em;
  line-height: 1.15;
}
.equation span { color: var(--green); font-size: 0.7em; }
.bg-green .equation span { color: var(--pink); }

/* lista atutów */
.feature-list { display: grid; gap: 2px; }

.feature {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 4px 20px;
  padding: 26px 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.feature:first-child { border-top: 1px solid var(--line); }

.feature__num {
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--green);
  padding-top: 2px;
}
.feature__title { font-family: var(--font-display); font-size: 1.4rem; }
.feature__text {
  grid-column: 2;
  margin-top: 8px;
  color: var(--ink-70);
  font-size: 0.94rem;
}

.bg-green .feature { border-color: var(--line-light); }
.bg-green .feature:first-child { border-top-color: var(--line-light); }
.bg-green .feature__num { color: var(--pink); }
.bg-green .feature__text { color: rgba(247, 243, 236, 0.78); }

/* lista z odhaczeniem */
.check-list { display: grid; gap: 14px; }
.check-list li {
  position: relative;
  padding-left: 30px;
  line-height: 1.6;
}
.check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 13px;
  height: 1px;
  background: var(--green);
}
.bg-green .check-list li::before { background: var(--pink); }

.dot-list { display: grid; gap: 12px; }
.dot-list li { position: relative; padding-left: 22px; line-height: 1.6; }
.dot-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 6px;
  height: 6px;
  background: var(--pink-2);
  border-radius: 50%;
}

/* pigułki informacyjne */
.pill-row { display: flex; flex-wrap: wrap; gap: 10px; }

.pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 18px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-70);
}
.pill--solid { background: var(--pink); border-color: var(--pink); color: var(--ink); }
.pill--green { background: var(--green); border-color: var(--green); color: var(--cream); }
.bg-green .pill { border-color: var(--line-light); color: rgba(247, 243, 236, 0.85); }

/* karty wartości */
.value-card {
  padding: clamp(28px, 3vw, 40px);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  height: 100%;
  transition: transform 0.5s var(--ease), border-color 0.5s var(--ease);
}
.value-card:hover { transform: translateY(-4px); border-color: var(--green); }
.value-card__icon { color: var(--green); margin-bottom: 20px; }
.value-card h3 { font-size: 1.35rem; }
.value-card p { margin-top: 12px; color: var(--ink-70); font-size: 0.94rem; }

/* --------------------------------------------------------------------------
   9. Karty campów
   -------------------------------------------------------------------------- */
.camp-card {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

.camp-card__media {
  position: relative;
  overflow: hidden;
  min-height: 340px;
  background: var(--cream-2);
}
.camp-card__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.camp-card:hover .camp-card__media img { transform: scale(1.05); }

.camp-card__tag {
  position: absolute;
  top: 18px;
  left: 18px;
  border-radius: 999px;
  z-index: 2;
  background: var(--pink);
  color: var(--ink);
  padding: 9px 18px;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.camp-card__body {
  padding: clamp(28px, 3.4vw, 52px);
  display: flex;
  flex-direction: column;
}

.camp-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-55);
}

.camp-card__title { margin-top: 18px; }
.camp-card__desc { margin-top: 16px; color: var(--ink-70); font-size: 0.96rem; }

.camp-card__list {
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
}
.camp-card__list li {
  position: relative;
  padding-left: 22px;
  font-size: 0.92rem;
  color: var(--ink-70);
}
.camp-card__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 0.65em;
  width: 10px; height: 1px;
  background: var(--green);
}

.camp-card__footer {
  margin-top: auto;
  padding-top: 30px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.price { display: flex; align-items: baseline; gap: 8px; }
.price__value { font-family: var(--font-display); font-size: 2rem; line-height: 1; }
.price__label { font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-55); }

/* zapowiedź kolejnych campów */
.soon-card {
  border: 1px dashed var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(30px, 4vw, 56px);
  text-align: center;
  background: transparent;
}
.soon-card h3 { margin-top: 14px; }
.soon-card p { margin: 14px auto 0; max-width: 44ch; color: var(--ink-70); }

/* --------------------------------------------------------------------------
   10. Program / akordeon
   -------------------------------------------------------------------------- */
.accordion { border-top: 1px solid var(--line); }

.accordion__item { border-bottom: 1px solid var(--line); }

.accordion__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 26px 0;
  text-align: left;
  /* przycisk siedzi w <h3>, więc kroje trzeba ustawić jawnie */
  font-family: var(--font-sans);
  font-weight: 300;
  transition: color 0.35s var(--ease);
}
.accordion__trigger:hover { color: var(--green); }

.accordion__day {
  flex: none;
  font-family: var(--font-sans);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--green);
  width: 86px;
  padding-top: 3px;
}

.accordion__title {
  flex: 1;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 1.8vw, 1.55rem);
  line-height: 1.25;
}

.accordion__date {
  flex: none;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.05em;
  color: var(--ink-70);
}

.accordion__icon {
  flex: none;
  position: relative;
  width: 16px;
  height: 16px;
}
.accordion__icon::before,
.accordion__icon::after {
  content: "";
  position: absolute;
  background: currentColor;
  transition: transform 0.45s var(--ease), opacity 0.35s var(--ease);
}
.accordion__icon::before { left: 0; top: 50%; width: 16px; height: 1px; }
.accordion__icon::after { left: 50%; top: 0; width: 1px; height: 16px; }

.accordion__trigger[aria-expanded="true"] .accordion__icon::after {
  transform: scaleY(0);
  opacity: 0;
}

.accordion__panel {
  overflow: hidden;
  height: 0;
  transition: height 0.5s var(--ease);
}

.accordion__content {
  padding: 4px 0 34px;
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 20px;
}

.accordion__content .dot-list { grid-column: 2; }
.accordion__content p { grid-column: 2; color: var(--ink-70); }
.accordion__note {
  grid-column: 2;
  margin-top: 16px;
  font-size: 0.84rem;
  color: var(--ink-55);
  font-style: italic;
}

.bg-green .accordion,
.bg-green .accordion__item { border-color: var(--line-light); }
.bg-green .accordion__day { color: var(--pink); }
.bg-green .accordion__trigger:hover { color: var(--pink); }
.bg-green .accordion__content p,
.bg-green .accordion__note { color: rgba(247, 243, 236, 0.78); }

/* --------------------------------------------------------------------------
   11. Karty informacyjne / cena
   -------------------------------------------------------------------------- */
.info-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(26px, 3vw, 44px);
}
/* pełna wysokość tylko tam, gdzie karta jest bezpośrednim elementem siatki */
.info-card--fill { height: 100%; }
.info-card--pink { background: var(--pink); border-color: var(--pink); }
.info-card--green { background: var(--green); border-color: var(--green); color: var(--cream); }
.info-card--green .check-list li::before { background: var(--pink); }
.info-card h3 { font-size: clamp(1.5rem, 2.2vw, 1.95rem); }
.info-card .eyebrow + h3 { margin-top: 12px; }
.info-card__sub {
  margin-top: 12px;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--ink-55);
}
.info-card--green .info-card__sub { color: rgba(247, 243, 236, 0.75); }
.info-card > .check-list,
.info-card > .dot-list { margin-top: 22px; }
/* pierwszy element karty nie dokłada marginesu do jej paddingu */
.info-card > :first-child { margin-top: 0; }
.info-card > :last-child { margin-bottom: 0; }

.price-box {
  position: sticky;
  top: calc(var(--header-h) + 20px);
  background: var(--green);
  color: var(--cream);
  border-radius: var(--radius-lg);
  padding: clamp(28px, 3vw, 40px);
}
.price-box__price {
  font-family: var(--font-display);
  font-size: 3.1rem;
  line-height: 1;
  margin-top: 6px;
}
.price-box__meta {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--line-light);
  display: grid;
  gap: 14px;
  font-size: 0.9rem;
}
.price-box__meta div { display: flex; justify-content: space-between; gap: 16px; }
.price-box__meta dt { color: rgba(247, 243, 236, 0.72); }
.price-box__meta dd { text-align: right; }
.price-box .btn { margin-top: 28px; }
.price-box__note {
  margin-top: 16px;
  font-size: 0.78rem;
  line-height: 1.6;
  color: rgba(247, 243, 236, 0.7);
}

/* trenerka */
.trainer {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}
.trainer__monogram {
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-lg);
  background: var(--green);
  color: var(--pink);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  text-align: center;
  padding: 30px;
}
.trainer__monogram span {
  font-family: var(--font-display);
  font-size: clamp(4rem, 8vw, 6.5rem);
  line-height: 0.9;
  letter-spacing: 0.04em;
}
.trainer__monogram small {
  font-size: 10.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(247, 243, 236, 0.85);
}

/* --------------------------------------------------------------------------
   12. Galeria + lightbox
   -------------------------------------------------------------------------- */
.gallery-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: clamp(28px, 3vw, 44px);
}

.filter-btn {
  padding: 10px 20px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-70);
  transition: all 0.35s var(--ease);
}
.filter-btn:hover { border-color: var(--green); color: var(--green); }
.filter-btn.is-active {
  background: var(--green);
  border-color: var(--green);
  color: var(--cream);
}

.gallery {
  columns: 3;
  column-gap: clamp(12px, 1.6vw, 20px);
}
.gallery__item {
  break-inside: avoid;
  margin-bottom: clamp(12px, 1.6vw, 20px);
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--cream-2);
  cursor: pointer;
}
.gallery__item img { width: 100%; transition: transform 1.1s var(--ease), opacity 0.4s var(--ease); }
.gallery__item:hover img { transform: scale(1.04); }
.gallery__item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(64, 56, 47, 0.16);
  opacity: 0;
  transition: opacity 0.4s var(--ease);
}
.gallery__item:hover::after { opacity: 1; }
.gallery__item.is-hidden { display: none; }

.gallery-strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(220px, 1fr);
  gap: clamp(12px, 1.4vw, 18px);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  /* natywny pasek przewijania ukryty - zamiast niego wygaszenie prawej krawędzi */
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 90px), transparent 100%);
  mask-image: linear-gradient(to right, #000 calc(100% - 90px), transparent 100%);
  transition: -webkit-mask-image 0.4s var(--ease), mask-image 0.4s var(--ease);
}
.gallery-strip::-webkit-scrollbar { width: 0; height: 0; display: none; }
.gallery-strip .figure { scroll-snap-align: start; }
.cta-band { border-radius: var(--radius-xl); }

/* koniec przewijania - zdejmujemy wygaszenie, żeby ostatnie zdjęcie było pełne */
.gallery-strip.is-scroll-end,
.gallery-strip:not(.is-scrollable) {
  -webkit-mask-image: none;
  mask-image: none;
}

/* od tej szerokości cały pasek mieści się w kadrze - przewijanie zbędne */
@media (min-width: 1240px) {
  .gallery-strip {
    grid-auto-columns: minmax(0, 1fr);
    overflow-x: visible;
    -webkit-mask-image: none;
    mask-image: none;
  }
}

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(30, 26, 22, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 56px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s var(--ease), visibility 0.4s;
}
.lightbox.is-open { opacity: 1; visibility: visible; }

.lightbox__img {
  max-width: min(100%, 1100px);
  max-height: 84vh;
  object-fit: contain;
  border-radius: var(--radius-lg);
}

.lightbox__close,
.lightbox__nav {
  position: absolute;
  color: var(--cream);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(247, 243, 236, 0.3);
  transition: background 0.35s var(--ease), color 0.35s var(--ease);
}
.lightbox__close:hover,
.lightbox__nav:hover { background: var(--cream); color: var(--green-deep); }

.lightbox__close { top: clamp(14px, 3vw, 32px); right: clamp(14px, 3vw, 32px); }
.lightbox__nav--prev { left: clamp(10px, 3vw, 32px); top: 50%; transform: translateY(-50%); }
.lightbox__nav--next { right: clamp(10px, 3vw, 32px); top: 50%; transform: translateY(-50%); }

.lightbox__counter {
  position: absolute;
  bottom: clamp(16px, 3vw, 30px);
  left: 50%;
  transform: translateX(-50%);
  color: rgba(247, 243, 236, 0.75);
  font-size: 11px;
  letter-spacing: 0.2em;
}

/* --------------------------------------------------------------------------
   13. Formularze
   -------------------------------------------------------------------------- */
.form-wrap {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  padding: clamp(26px, 4vw, 56px);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 26px);
}

.field { display: flex; flex-direction: column; gap: 8px; }
.field--full { grid-column: 1 / -1; }

.field label {
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-55);
}

.field input,
.field textarea,
.field select {
  width: 100%;
  padding: 14px 16px;
  background-color: var(--cream);
  border: 1px solid transparent;
  border-radius: var(--radius);
  font-size: 0.98rem;
  font-weight: 300;
  transition: border-color 0.35s var(--ease), background-color 0.35s var(--ease);
}

.field select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%232b2521' stroke-width='1' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
  cursor: pointer;
}

.field textarea { resize: vertical; min-height: 130px; line-height: 1.6; }

.field input:hover,
.field textarea:hover,
.field select:hover { border-color: var(--line); }

.field input:focus,
.field textarea:focus,
.field select:focus {
  outline: none;
  border-color: var(--green);
  background-color: var(--white);
}

.field input::placeholder,
.field textarea::placeholder { color: var(--ink-35); }

.field.has-error input,
.field.has-error textarea,
.field.has-error select { border-color: #b4544f; }

.field__error {
  font-size: 11.5px;
  color: #b4544f;
  letter-spacing: 0.02em;
  text-transform: none;
  display: none;
}
.field.has-error .field__error { display: block; }

.checkbox {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 14px;
  align-items: start;
  cursor: pointer;
}
.checkbox input {
  appearance: none;
  width: 22px;
  height: 22px;
  flex: none;
  background: var(--white);
  border: 1px solid var(--ink-35);
  border-radius: 4px;
  margin-top: 1px;
  padding: 0;
  cursor: pointer;
  transition: all 0.3s var(--ease);
}
.checkbox:hover input { border-color: var(--green); }
.checkbox input:checked { background: var(--green); border-color: var(--green); }
.checkbox input:checked::after {
  content: "";
  display: block;
  width: 6px; height: 11px;
  margin: 3px auto 0;
  border: solid var(--cream);
  border-width: 0 1.5px 1.5px 0;
  transform: rotate(45deg);
}
.checkbox span {
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--ink);
  letter-spacing: 0;
  text-transform: none;
}
.checkbox a { text-decoration: underline; text-underline-offset: 3px; }

.form-note {
  margin-top: 20px;
  font-size: 0.8rem;
  color: var(--ink-55);
  line-height: 1.65;
}

.form-status {
  margin-top: 20px;
  padding: 16px 20px;
  border-radius: var(--radius);
  background: var(--pink);
  font-size: 0.9rem;
  line-height: 1.6;
  display: none;
}
.form-status.is-visible { display: block; }

/* odpowiedzi tak / nie */
.radio-inline { display: flex; flex-wrap: wrap; gap: 10px; }
.radio-pill { position: relative; display: inline-flex; }
.radio-pill input { position: absolute; opacity: 0; width: 0; height: 0; }
.radio-pill span {
  display: inline-flex;
  align-items: center;
  padding: 9px 24px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-70);
  cursor: pointer;
  transition: all 0.3s var(--ease);
}
.radio-pill span:hover { border-color: var(--green); color: var(--green); }
.radio-pill input:checked + span {
  background: var(--green);
  border-color: var(--green);
  color: var(--cream);
}
.radio-pill input:focus-visible + span { outline: 2px solid var(--green); outline-offset: 3px; }

/* pytanie w zgodach to całe zdanie - nie może być mikrokapitalikami */
.field label.field__question,
.field__question {
  font-size: 0.94rem;
  line-height: 1.6;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
}
.field__question .req { color: var(--green); }

[hidden] { display: none !important; }

/* pole-pułapka na boty - zawsze niewidoczne */
.field--honeypot { display: none !important; }

/* ocena gwiazdkowa */
.rating {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 6px;
}
.rating input { position: absolute; opacity: 0; width: 0; height: 0; }
.rating label {
  cursor: pointer;
  color: var(--ink-35);
  transition: color 0.25s var(--ease), transform 0.25s var(--ease);
  padding: 0;
}
.rating label svg { width: 24px; height: 24px; }
.rating input:checked ~ label,
.rating label:hover,
.rating label:hover ~ label { color: var(--green); }
.rating label:hover { transform: scale(1.1); }
.rating input:focus-visible + label { outline: 2px solid var(--green); outline-offset: 3px; }

/* --------------------------------------------------------------------------
   14. Opinie / blog - stany puste i karty
   -------------------------------------------------------------------------- */
.empty-state {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--white);
  padding: clamp(36px, 5vw, 72px);
  text-align: center;
}
.empty-state__icon {
  color: var(--green);
  margin-bottom: 22px;
  display: flex;
  justify-content: center;
}
.empty-state p { margin: 16px auto 0; max-width: 52ch; color: var(--ink-70); }
.empty-state .btn { margin-top: 30px; }

.skeleton-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2.4vw, 32px);
  margin-top: clamp(32px, 4vw, 56px);
}

.skeleton-card { border: 1px dashed var(--line); border-radius: var(--radius-lg); padding: 16px; }
.skeleton-card__media {
  aspect-ratio: 4 / 3;
  background: var(--cream-2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-35);
}
.skeleton-card__line {
  height: 9px;
  background: var(--cream-2);
  margin-top: 14px;
}
.skeleton-card__line--short { width: 55%; }
.skeleton-card p {
  margin-top: 16px;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-35);
}

.review-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(24px, 3vw, 40px);
  height: 100%;
  display: flex;
  flex-direction: column;
}
.review-card__stars { color: var(--green); display: flex; gap: 3px; }
.review-card__text {
  margin-top: 18px;
  font-family: var(--font-display);
  font-size: 1.28rem;
  font-style: italic;
  line-height: 1.45;
}
.review-card__author {
  margin-top: auto;
  padding-top: 22px;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-55);
}

.post-card { display: flex; flex-direction: column; height: 100%; }
.post-card__media { overflow: hidden; border-radius: var(--radius-lg); aspect-ratio: 4 / 3; background: var(--cream-2); }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.post-card:hover .post-card__media img { transform: scale(1.04); }
.post-card__meta { margin-top: 18px; font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-55); }
.post-card__title { margin-top: 10px; font-size: 1.5rem; }
.post-card__title a { transition: color 0.35s var(--ease); }
.post-card__title a:hover { color: var(--green); }
.post-card__excerpt { margin-top: 12px; color: var(--ink-70); font-size: 0.94rem; }
.post-card__more {
  margin-top: auto;
  padding-top: 18px;
  font-size: 10.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--green);
}

/* treść pojedynczego wpisu */
.article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 20px;
  /* nagłówek wpisu jest wyśrodkowany, więc wiersz z datą też - i musi mieć
     odstęp od ścieżki nawigacji nad nim, inaczej oba wiersze się zlewają */
  margin: 18px 0 0;
  font-size: 10.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(247, 243, 236, 0.8);
}
.article__meta span::after {
  content: "";
  display: inline-block;
  width: 18px;
  height: 1px;
  margin-left: 20px;
  vertical-align: middle;
  background: rgba(247, 243, 236, 0.45);
}
.article__meta span:last-child::after { display: none; }

/* odstępy dotyczą rytmu samego artykułu - nie zawartości zagnieżdżonych kart */
.article-body > * + * { margin-top: 22px; }
.article-body > h2 {
  margin-top: clamp(40px, 4.4vw, 64px);
  font-size: clamp(1.6rem, 2.7vw, 2.3rem);
}
.article-body > h3 { margin-top: clamp(28px, 3vw, 40px); }
.article-body > .figure,
.article-body > .quote-block,
.article-body > .info-card { margin-top: clamp(32px, 3.6vw, 50px); }
.article-body > .figure + p,
.article-body > .quote-block + p,
.article-body > .info-card + p { margin-top: clamp(32px, 3.6vw, 50px); }
.article-body .figure__caption { margin-top: 12px; }
.article-body > .dot-list,
.article-body > .check-list { margin-top: 20px; }

.article-foot {
  margin-top: clamp(44px, 5vw, 72px);
  padding-top: 28px;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: 18px 30px;
  align-items: center;
  justify-content: space-between;
  font-size: 0.94rem;
  color: var(--ink-70);
}

/* --------------------------------------------------------------------------
   15. Kontakt
   -------------------------------------------------------------------------- */
.contact-item {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  transition: color 0.35s var(--ease);
}
.contact-item:first-child { border-top: 1px solid var(--line); }
a.contact-item:hover { color: var(--green); }
.contact-item__icon { flex: none; color: var(--green); margin-top: 3px; }
.contact-item__label { font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-55); }
.contact-item__value { margin-top: 5px; font-size: 1.05rem; }

.socials { display: flex; gap: 12px; }
.socials a {
  width: 46px; height: 46px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--line);
  transition: all 0.35s var(--ease);
}
.socials a:hover { background: var(--green); border-color: var(--green); color: var(--cream); }
.bg-green .socials a { border-color: var(--line-light); }
.bg-green .socials a:hover { background: var(--cream); border-color: var(--cream); color: var(--green-deep); }

/* --------------------------------------------------------------------------
   16. CTA + stopka
   -------------------------------------------------------------------------- */
.cta-band {
  position: relative;
  overflow: hidden;
  background: var(--green-deep);
  color: var(--cream);
  text-align: center;
  padding-block: clamp(72px, 10vw, 140px);
}
.cta-band__bg {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0.22;
}
.cta-band__inner { position: relative; z-index: 2; }
.cta-band h2 { margin-top: 20px; }
.cta-band p { margin: 20px auto 0; max-width: 50ch; color: rgba(247, 243, 236, 0.82); }
.cta-band .btn { margin-top: 34px; }

.footer {
  /* ciemniejsza od sekcji, żeby nie zlewała się z blokiem nad nią */
  background: var(--green-deep);
  color: var(--cream);
  padding-top: clamp(56px, 7vw, 92px);
  padding-bottom: 28px;
}

.footer a { transition: color 0.3s var(--ease); }
.footer a:hover { color: var(--pink); }

.footer__top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1.2fr;
  gap: clamp(32px, 4vw, 64px);
  padding-bottom: clamp(40px, 5vw, 64px);
  border-bottom: 1px solid var(--line-light);
}

.footer__logo { display: inline-flex; color: var(--pink); }
.footer__logo .logo__img { --logo-h: 78px; }

.footer__tagline { margin-top: 24px; max-width: 34ch; color: rgba(247, 243, 236, 0.78); font-size: 0.94rem; }

.footer__heading {
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--pink);
  margin-bottom: 22px;
}

.footer__nav { display: grid; gap: 11px; font-size: 0.95rem; }
.footer__contact { display: grid; gap: 11px; font-size: 0.95rem; color: rgba(247, 243, 236, 0.85); }
.footer__contact strong { display: block; font-weight: 400; color: var(--cream); }
.footer .socials { margin-top: 24px; }

/* ikony społecznościowe na ciemnej stopce - czytelniejszy kontur i rozmiar */
.footer .socials a {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.34);
  color: var(--cream);
}
.footer .socials a svg { width: 19px; height: 19px; }
.footer .socials a:hover {
  background: var(--cream);
  border-color: var(--cream);
  color: var(--green-deep);
}

.footer__legal {
  padding-top: 26px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 32px;
  font-size: 0.78rem;
  color: rgba(247, 243, 236, 0.66);
  line-height: 1.7;
}
.footer__legal-data { display: flex; flex-wrap: wrap; gap: 6px 26px; }

.footer__bottom {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--line-light);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px 24px;
  font-size: 0.76rem;
  color: rgba(247, 243, 236, 0.6);
}

/* --------------------------------------------------------------------------
   17. Animacje wejścia
   -------------------------------------------------------------------------- */
/* treść jest widoczna od razu - bez pojawiania się przy przewijaniu
   (klasa .reveal została w kodzie, żeby nie przepisywać wszystkich podstron) */
.reveal { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* --------------------------------------------------------------------------
   18. Responsywność
   -------------------------------------------------------------------------- */
@media (max-width: 1180px) {
  .nav__link { padding: 9px 15px; font-size: 10.5px; letter-spacing: 0.16em; }
}

@media (max-width: 1024px) {
  .nav__link { padding: 8px 13px; font-size: 10px; letter-spacing: 0.14em; }

  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero__copy { padding: calc(var(--header-h) + 56px) var(--gutter) 56px; }
  .hero__media { min-height: 62vh; }
  .hero__media img { position: relative; }
  .hero__scroll { display: none; }
  .hero__badge { bottom: 0; }

  .split,
  .split--wide-media,
  .split--wide-copy,
  .trainer { grid-template-columns: 1fr; }
  .split__media { order: -1; }
  .split--media-last .split__media { order: 0; }

  .camp-card { grid-template-columns: 1fr; }
  .camp-card__media { min-height: 300px; aspect-ratio: 4 / 3; }

  .gallery { columns: 2; }
  .poster__frame { aspect-ratio: 3 / 2; }
  .tiles { gap: var(--tile-gap); }
  .tile { aspect-ratio: 3 / 4; }
  .tile__bar { padding-left: 14px; }
  .tile__name { letter-spacing: 0.06em; }
  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .skeleton-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .footer__top { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }

  .price-box { position: static; }
  .trainer__monogram { aspect-ratio: 16 / 9; }
}

@media (max-width: 760px) {
  :root { --header-h: 100px; }

  /* pasek jest jedyną nawigacją, więc na telefonie zostają wszystkie zakładki */
  /* pasek to jedyna nawigacja - czytelny stopień pisma jest ważniejszy
     niż zmieszczenie wszystkiego w jednym wierszu */
  .header__inner { padding-inline: 12px; }
  .header.is-scrolled { height: var(--header-h); }
  .nav {
    flex-wrap: wrap;
    justify-content: center;
    gap: 3px;
    padding: 5px;
    border-radius: 24px;
  }
  .nav__link { padding: 9px 12px; font-size: 10.5px; letter-spacing: 0.1em; }
  .nav__link--home { padding-inline: 11px; }
  .nav__cta { padding: 9px 15px; font-size: 10.5px; letter-spacing: 0.12em; }

  .header .logo__img { --logo-h: 38px; }
  .header.is-scrolled .logo__img { --logo-h: 34px; }
  .footer__logo .logo__img { --logo-h: 66px; }

  .h-display { font-size: clamp(2.5rem, 12vw, 3.6rem); }

  .grid-2,
  .grid-3,
  .grid-4,
  .form-grid,
  .media-duo,
  .skeleton-grid { grid-template-columns: 1fr; }

  .media-duo .figure:last-child { margin-top: 0; }

  .gallery { columns: 1; }

  .tiles { grid-template-columns: 1fr; }
  .tile { aspect-ratio: 16 / 11; }

  .poster { padding-inline: 12px; }
  .poster__frame { aspect-ratio: 4 / 3; }
  .poster__inner { padding-inline: 14px; gap: 6px; }
  .poster__logo { --logo-h: clamp(72px, 21vw, 112px); }

  .hero__facts { gap: 22px; }
  .hero__fact { max-width: none; flex: 1 1 40%; }

  .accordion__trigger { flex-wrap: wrap; gap: 6px 16px; padding: 22px 0; }
  .accordion__day { width: auto; padding-top: 0; }
  .accordion__date { width: 100%; order: 3; }
  .accordion__title { flex-basis: 100%; order: 4; margin-top: 4px; }
  .accordion__icon { margin-left: auto; }
  .accordion__content { grid-template-columns: 1fr; gap: 0; }
  .accordion__content .dot-list,
  .accordion__content p,
  .accordion__note { grid-column: 1; }

  .feature { grid-template-columns: 1fr; gap: 6px; }
  .feature__text { grid-column: 1; }

  .camp-card__footer { flex-direction: column; align-items: flex-start; }
  .camp-card__footer .btn { width: 100%; }

  .footer__top { grid-template-columns: 1fr; }
  .footer__legal { flex-direction: column; gap: 8px; }

  .lightbox__nav { width: 44px; height: 44px; }
  .lightbox__nav--prev { left: 8px; }
  .lightbox__nav--next { right: 8px; }

  .btn { padding: 15px 24px; font-size: 11px; }
}

@media print {
  .header, .mobile-nav, .cta-band, .hero__scroll, .btn { display: none !important; }
  body { background: #fff; color: #000; }
}
