/*
 * TE v4 – főoldal (alpha58)
 * author: Laszlo BLAHO – www.blaho.hu
 *
 * Csak a főoldalon (index.php: $isHome) és a főoldali elrendezéseknél töltődik be
 * (asset: template.te_v4.home).
 *
 *  1. Szekciók (te-section chrome: v4-home, v4-home-bottom)
 *  2. Főoldali slider (te.home.slider)
 *  3. Gyorslinksáv (te.home.quicklinks)
 *  4. Friss hírek (te.home.news)
 *  5. Események (TE Events „mainpage” modul a szekcióban)
 *  6. Számláló (sablonstílus → Főoldal)
 *  7. Partnerek (te.home.partners)
 *  8. Vékony lábléc, főoldali cikk
 */

/* ==========================================================================
   1. Szekciók
   ========================================================================== */

.te-sec {
   --te-sec-pad: clamp(40px, 5vw, 72px);
   --te-sec-ink: hsl(var(--blue));

   position: relative;
   overflow: hidden;
   padding-block: var(--te-sec-pad);
   background-color: var(--te-sec-bg, transparent);
   isolation: isolate;
}

.te-sec--tight {
   --te-sec-pad: clamp(28px, 3.5vw, 48px);
}

.te-sec--light {
   background-color: hsla(var(--lightBlue), .12);
}

.te-sec--dark {
   --te-sec-ink: hsl(var(--white));

   color: hsl(var(--white));
}

/* világos színes háttéren (rózsaszín, homok…) a cím sötétkék marad: fehérrel nem olvasható */
.te-sec--bg:not(.te-sec--dark) {
   --te-sec-ink: hsl(var(--darkBlue));
}

.te-sec__inner {
   position: relative;
   z-index: 1;
}

.te-sec__head {
   display: flex;
   flex-wrap: wrap;
   align-items: flex-end;
   justify-content: space-between;
   gap: var(--space-3) var(--space-5);
   margin-bottom: clamp(20px, 2.5vw, 32px);
}

.te-sec__title {
   margin: 0;
   color: var(--te-sec-ink);
   font-size: clamp(1.875rem, 1.3rem + 2vw, 2.75rem);
   font-weight: 700;
   line-height: 1.1;
   letter-spacing: -.01em;
}

.te-sec__more {
   display: inline-flex;
   align-items: center;
   gap: var(--space-2);
   min-height: 40px;
   padding: 0 var(--space-4);
   border: 1px solid hsla(var(--blue), .45);
   border-radius: var(--radius);
   background-color: transparent;
   color: var(--te-sec-ink);
   font-size: var(--fs-sm);
   font-weight: 700;
   text-decoration: none;
   transition: background-color var(--transition-time), color var(--transition-time), border-color var(--transition-time);

   svg {
      transition: transform var(--transition-time);
   }

   &:hover,
   &:focus-visible {
      border-color: hsl(var(--blue));
      background-color: hsl(var(--blue));
      color: hsl(var(--white));
      text-decoration: none;

      svg {
         transform: translateX(3px);
      }
   }
}

/* színes háttéren áttetsző fehér gomb (a terv „Eseménynaptár →” gombja) */
.te-sec--bg .te-sec__more {
   border-color: hsla(var(--white), .7);
   background-color: hsla(var(--white), .25);

   &:hover,
   &:focus-visible {
      border-color: hsl(var(--white));
      background-color: hsl(var(--white));
      color: hsl(var(--blue));
   }
}

.te-sec--head-center .te-sec__head {
   flex-direction: column;
   align-items: center;
   text-align: center;
}

/* „tf” vízjel (media/images/watermark.svg) a szekció jobb felső részén */
.te-sec__mark {
   position: absolute;
   top: -8%;
   right: 4%;
   z-index: 0;
   height: 115%;
   aspect-ratio: 846 / 856;
   background-color: hsla(var(--white), .22);
   -webkit-mask: url('../images/watermark.svg') center / contain no-repeat;
   mask: url('../images/watermark.svg') center / contain no-repeat;
   pointer-events: none;
}

/* ==========================================================================
   2. Főoldali slider
   ========================================================================== */

.te-hslider {
   --te-hs-h: clamp(420px, 38vw, 600px);
   --te-hs-stripe: clamp(14px, 2.2vw, 36px);
   --te-hs-band: clamp(32px, 3.6vw, 52px);
   --te-hs-tan: 0.0699;
   --te-hs-left: 0px;
   --te-hs-bottom: 0px;

   position: relative;
   overflow: hidden;
   background-color: hsl(var(--blue));
   color: hsl(var(--white));
   isolation: isolate;

   /* JS nélkül / indulás előtt csak az első dia látszik */
   &:not(.is-initialized) .te-hslide:not(:first-child) {
      display: none;
   }
}

.te-hslider--small {
   --te-hs-h: clamp(340px, 30vw, 460px);
}

.te-hslider--large {
   --te-hs-h: clamp(480px, 46vw, 720px);
}

.te-hslider--s1 {
   --te-hs-left: var(--te-hs-stripe);
}

.te-hslider--s2 {
   --te-hs-bottom: var(--te-hs-band);
}

/* áttűnésnél a diák egy rácscellában egymáson: a slider magassága mindig a legmagasabb diáé,
   így lapozáskor nem ugrál (a kép mérete nem számít: object-fit: cover) – alpha60 */
.te-hslider .splide__list {
   display: grid;

   > .te-hslide {
      grid-area: 1 / 1;
      position: relative;
      width: 100%;
   }
}

/* a v4-top sáv konténerében is teljes szélességű (alpha60) */
.te-top .te-hslider {
   width: 100vw;
   margin-inline: calc(50% - 50vw);
}

.te-top:has(.te-hslider) {
   overflow-x: clip;

   .te-top__inner:has(> .te-hslider:first-child) {
      padding-top: 0;
   }
}

.te-hslide {
   position: relative;
   display: flex;
   align-items: center;
   height: var(--te-hs-h);
   overflow: hidden;
   margin: 0;
   padding: 0;
   isolation: isolate;
   list-style: none;

   &::before {
      content: none;
   }
}

.te-hslide__media {
   position: absolute;
   inset: 0;
   z-index: -2;
   overflow: hidden;
   background-color: hsl(var(--te-hs-ov, var(--blue)));

   img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transform: scale(1.02);
      transform-origin: 50% 50%;
      will-change: transform;

      /* lassú ráközelítés a dia ideje alatt (slider.js: is-zooming / is-frozen), alpha61 */
      &.is-zooming {
         animation: te-hs-zoom var(--te-hs-dur, 6000ms) linear forwards;
      }

      &.is-frozen {
         animation-play-state: paused;
      }
   }
}

.te-hslider.is-paused .te-hslide__media img.is-zooming {
   animation-play-state: paused;
}

@keyframes te-hs-zoom {
   from {
      transform: scale(1.02);
   }

   to {
      transform: scale(1.1);
   }
}

@media (prefers-reduced-motion: reduce) {
   .te-hslide__media img,
   .te-hslide__media img.is-zooming {
      animation: none;
      transform: none;
   }
}

/* a dia színe bal felől: a szöveg alatt erős, a kép jobb oldala szabadon látszik */
.te-hslide__shade {
   position: absolute;
   inset: 0;
   z-index: -1;
   background: linear-gradient(90deg,
      hsla(var(--te-hs-ov, var(--blue)), .94) 0%,
      hsla(var(--te-hs-ov, var(--blue)), .86) 32%,
      hsla(var(--te-hs-ov, var(--blue)), .35) 58%,
      hsla(var(--te-hs-ov, var(--blue)), 0) 78%);
}

.te-hslide--noimage .te-hslide__shade {
   background: hsl(var(--te-hs-ov, var(--blue)));
}

.te-hslide__inner {
   position: relative;
   z-index: 1;
   width: 100%;
   padding-top: clamp(40px, 5vw, 72px);
   padding-bottom: calc(var(--te-hs-bottom) + 40px);
   padding-left: max(var(--container-pad), calc(var(--te-hs-left) * 2 + 24px));
}

.te-hslide__body {
   max-width: min(640px, 100%);

   /* kiemelőszín (kiemeloszin mező, alap: arany) a cím fölött */
   &::before {
      content: '';
      display: block;
      width: 56px;
      height: 5px;
      margin-bottom: var(--space-4);
      border-radius: 3px;
      background-color: var(--te-hs-accent, hsl(var(--gold)));
   }
}

.te-hslide--light .te-hslide__meta {
   color: hsla(var(--darkBlue), .8);
}

.te-hslide__meta {
   display: flex;
   flex-wrap: wrap;
   gap: var(--space-2) var(--space-4);
   margin: 0 0 var(--space-3);
   color: hsla(var(--white), .8);
   font-size: var(--fs-sm);
}

.te-hslide__title {
   margin: 0;
   color: var(--te-hs-title, hsl(var(--white)));
   font-size: clamp(1.875rem, 1.2rem + 2.6vw, 3.25rem);
   font-weight: 700;
   line-height: 1.08;
   letter-spacing: -.01em;
   text-wrap: balance;
   hyphens: manual;
   display: -webkit-box;
   overflow: hidden;
   -webkit-line-clamp: 3;
   -webkit-box-orient: vertical;

   /* a cím legfeljebb 3 sor (hosszú címnél kisebb betű), így a slider magassága állandó */
   .te-hslide--long & {
      font-size: clamp(1.625rem, 1.15rem + 2vw, 2.625rem);
   }

   .te-hslide--xlong & {
      font-size: clamp(1.375rem, 1.05rem + 1.4vw, 2.125rem);
   }
}

.te-hslide__intro {
   display: -webkit-box;
   margin: var(--space-4) 0 0;
   overflow: hidden;
   color: var(--te-hs-text, hsla(var(--white), .9));
   font-size: clamp(1rem, .95rem + .3vw, 1.125rem);
   line-height: 1.55;
   hyphens: manual;
   -webkit-line-clamp: 3;
   -webkit-box-orient: vertical;
}

.te-hslide__btn {
   display: inline-flex;
   align-items: center;
   gap: var(--space-3);
   min-height: 48px;
   margin-top: var(--space-5);
   padding: 0 var(--space-5);
   border-radius: var(--radius);
   background-color: var(--te-hs-btn-c, hsl(var(--te-hs-btn, var(--gold))));
   color: hsl(var(--te-hs-btn-ink, var(--darkBlue)));
   font-weight: 700;
   text-decoration: none;
   transition: background-color var(--transition-time), color var(--transition-time);

   svg {
      transition: transform var(--transition-time);
   }

   &:hover,
   &:focus-visible {
      background-color: hsl(var(--white));
      color: hsl(var(--blue));

      svg {
         transform: translateX(3px);
      }
   }

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

/* Díszítés: a hero két sávja (bal: rózsaszín, alul: türkiz), 4°-ban döntve, diánként
   (alpha62: a dián belül, a fotó és az árnyék fölött, a szöveg alatt; a szín a cikkből is jöhet) */
.te-hslider__deco {
   position: absolute;
   inset: 0;
   z-index: 0;
   container-type: size;
   pointer-events: none;
}

.te-hslider__s1,
.te-hslider__s2 {
   position: absolute;
   inset: 0;
   display: none;
}

.te-hslider--s1 .te-hslider__s1 {
   display: block;
   background-color: var(--te-hs-c1);
   clip-path: polygon(
      0 0,
      calc(var(--te-hs-stripe) + (100cqh - var(--te-hs-bottom)) * var(--te-hs-tan)) 0,
      calc(var(--te-hs-stripe) - var(--te-hs-bottom) * var(--te-hs-tan)) 100%,
      0 100%
   );
}

.te-hslider--s2 .te-hslider__s2 {
   display: block;
   background-color: var(--te-hs-c2);
   clip-path: polygon(
      0 calc(100% - var(--te-hs-band) - var(--te-hs-left) * var(--te-hs-tan)),
      100% calc(100% - var(--te-hs-band) + (100cqw - var(--te-hs-left)) * var(--te-hs-tan)),
      100% 100%,
      0 100%
   );
}

/* Vezérlők (alpha62): sávos lapozó, szünet és nyilak egy csoportban a dia jobb alsó sarkában,
   a konténer jobb szélén – a szöveg (bal oszlop, legfeljebb 640 px) és a gomb nem fut rájuk */
.te-hslider__controls {
   position: absolute;
   right: 0;
   bottom: calc(var(--te-hs-bottom) + 24px);
   left: 0;
   z-index: 2;
   display: flex;
   align-items: center;
   justify-content: flex-end;
   gap: var(--space-3);
   padding-right: var(--container-pad);
   pointer-events: none;

   > * {
      pointer-events: auto;
   }
}

.te-hslider__bars.splide__pagination {
   position: static;
   flex-wrap: nowrap;
   justify-content: flex-start;
   gap: 6px;
   padding: 6px 12px;
   border-radius: 999px;
   background-color: hsla(var(--darkBlue), .35);
   -webkit-backdrop-filter: blur(4px);
   backdrop-filter: blur(4px);
   transform: none;

   li {
      margin: 0;
   }

   .splide__pagination__page {
      display: block;
      width: clamp(24px, 3vw, 44px);
      height: 24px;
      margin: 0;
      padding: 0;
      border: 0;
      border-radius: 0;
      background:
         linear-gradient(hsl(var(--gold)), hsl(var(--gold))) left center / calc(var(--te-progress, 0) * 100%) 4px no-repeat,
         linear-gradient(hsla(var(--white), .45), hsla(var(--white), .45)) center / 100% 4px no-repeat;
      opacity: 1;
      cursor: pointer;
      transform: none;

      /* az aktív sáv halvány arany alapon a dia idejével töltődik (slider.js: --te-progress) */
      &.is-active {
         background:
            linear-gradient(hsl(var(--gold)), hsl(var(--gold))) left center / calc(var(--te-progress, 0) * 100%) 4px no-repeat,
            linear-gradient(hsla(var(--gold), .4), hsla(var(--gold), .4)) center / 100% 4px no-repeat;
         transform: none;
      }

      &:not(.is-active):hover {
         background:
            linear-gradient(hsl(var(--white)), hsl(var(--white))) center / 100% 4px no-repeat;
      }

      &:focus-visible {
         outline: 2px solid hsl(var(--white));
         outline-offset: 2px;
      }
   }
}

.te-hslider__toggle,
.te-hslider__arrow {
   display: inline-grid;
   place-items: center;
   width: 36px;
   height: 36px;
   padding: 0;
   border: 1px solid hsla(var(--white), .5);
   border-radius: 50%;
   background-color: hsla(var(--darkBlue), .35);
   color: hsl(var(--white));
   cursor: pointer;

   &:hover,
   &:focus-visible {
      border-color: hsl(var(--white));
      background-color: hsl(var(--white));
      color: hsl(var(--blue));
   }

   &:disabled {
      opacity: .4;
      cursor: default;
   }
}

.te-hslider__toggle {
   .splide__toggle__play,
   .splide__toggle__pause {
      display: none;
   }

   &:not(.is-active) .splide__toggle__play,
   &.is-active .splide__toggle__pause {
      display: block;
   }
}

.te-hslider__arrows.splide__arrows {
   display: flex;
   gap: var(--space-2);

   .splide__arrow {
      position: static;
      transform: none;
   }

   .splide__arrow--prev svg {
      transform: scaleX(-1);
   }
}

/* alpha63: a szöveg és a vezérlők ugyanabban a középre zárt konténerben (.container), széles
   képernyőn sem tolódnak el egymás felé; a szöveg a vezérlők elől kitér (nincs átfedés) */
@media (768px <= width < 1280px) {
   .te-hslide__body {
      max-width: min(640px, 100% - 340px);
   }
}

/* 768 px alatt: kép felül (16:9), alatta a szöveg a dia színén; az alsó sáv elmarad */
@media (width < 768px) {
   .te-hslider {
      --te-hs-bottom: 0px;
      --te-hs-stripe: 10px;
   }

   .te-hslider__s2 {
      display: none !important;
   }

   .te-hslide {
      display: block;
      height: auto;
      min-height: 0;
      background-color: hsl(var(--te-hs-ov, var(--blue)));
   }

   .te-hslide__media {
      position: relative;
      inset: auto;
      z-index: 0;
      aspect-ratio: 16 / 9;
   }

   .te-hslide__shade {
      top: auto;
      height: 48px;
      bottom: auto;
      margin-top: -48px;
      position: relative;
      display: block;
      background: linear-gradient(0deg, hsl(var(--te-hs-ov, var(--blue))), hsla(var(--te-hs-ov, var(--blue)), 0));
   }

   .te-hslide--noimage .te-hslide__shade {
      display: none;
   }

   .te-hslide__inner {
      padding-top: var(--space-3);
      padding-bottom: var(--space-6);
   }

   .te-hslide__title {
      font-size: clamp(1.5rem, 1.2rem + 2vw, 2rem);
   }

   .te-hslide__intro {
      -webkit-line-clamp: 3;
   }

   /* telefonon a fotó jobb alsó sarkában (a szöveg a fotó alatt kezdődik) */
   .te-hslider__controls {
      top: calc(100vw * 9 / 16 - 48px);
      bottom: auto;
   }

   .te-hslider__arrows.splide__arrows {
      display: none;
   }
}

/* ==========================================================================
   3. Gyorslinksáv
   ========================================================================== */

.te-quick__list {
   display: grid;
   grid-template-columns: repeat(var(--te-quick-n, 5), minmax(0, 1fr));
   margin: 0;
   padding: 0;
   list-style: none;

   @media (width < 1040px) {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }

   @media (width < 576px) {
      grid-template-columns: minmax(0, 1fr);
   }
}

.te-quick__item {
   margin: 0;
   padding: 0;
   background-color: hsl(var(--te-cat, var(--blue)));

   &::before {
      content: none;
   }
}

.te-quick__link {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: var(--space-3);
   height: 100%;
   min-height: 64px;
   padding: var(--space-4) clamp(16px, 1.6vw, 24px);
   color: hsl(var(--te-cat-ink, var(--white)));
   font-weight: 700;
   line-height: 1.25;
   text-decoration: none;
   transition: background-color var(--transition-time);

   .te-quick__icon {
      flex: 0 0 auto;
      transition: transform var(--transition-time);
   }

   &:hover,
   &:focus-visible {
      background-color: hsla(var(--black), .12);

      .te-quick__icon {
         transform: translateX(4px);
      }
   }

   &:focus-visible {
      outline: 3px solid hsl(var(--white));
      outline-offset: -6px;
   }
}

/* ==========================================================================
   4. Friss hírek
   ========================================================================== */

.te-hnews {
   display: grid;
   grid-template-columns: repeat(var(--te-hnews-cols, 3), minmax(0, 1fr));
   gap: var(--space-5);
   margin: 0;
   padding: 0;
   list-style: none;
}

.te-hnews__item {
   display: flex;
   min-width: 0;
   margin: 0;
   padding: 0;

   > * {
      flex: 1 1 auto;
   }

   &::before {
      content: none;
   }
}

@media (width < 1040px) {
   .te-hnews {
      grid-template-columns: none;
      grid-auto-flow: column;
      grid-auto-columns: calc((100% - var(--space-5)) / 2.3);
      gap: var(--space-4);
      overflow-x: auto;
      overscroll-behavior-x: contain;
      scroll-snap-type: x mandatory;
      scroll-padding-inline: var(--container-pad);
      margin-inline: calc(var(--container-pad) * -1);
      padding: 4px var(--container-pad) var(--space-4);
      scrollbar-width: thin;
      scrollbar-color: hsla(var(--blue), .35) transparent;
   }

   .te-hnews__item {
      scroll-snap-align: start;
   }
}

@media (width < 576px) {
   .te-hnews {
      grid-auto-columns: 82%;
   }
}

/* ==========================================================================
   5. Események (TE Events „mainpage” modul a szekcióban)
   A kártya geometriája a modul saját mainpage.css-éé (álló kép 260:350, a kép aljából
   félig kilógó négyzetes dátumjelvény, ennek megfelelő felső térköz); itt csak a v4
   betűi, árnyéka, lekerekítése és a telefonos lapozható sor.
   ========================================================================== */

.te-sec .teevents-mainpage {
   --te-badge-size: 56px;

   gap: var(--space-5);

   .event {
      border-radius: var(--radius-lg);
      background-color: hsl(var(--white));
      box-shadow: 0 2px 4px hsla(var(--darkBlue), .06), 0 12px 28px -12px hsla(var(--darkBlue), .25);
      color: hsl(var(--darkBlue));
      transition: transform var(--transition-time), box-shadow var(--transition-time);

      &:hover,
      &:focus-visible {
         transform: translateY(-3px);
         box-shadow: 0 2px 4px hsla(var(--darkBlue), .08), 0 18px 36px -14px hsla(var(--darkBlue), .35);

         h3 {
            text-decoration: underline;
            text-underline-offset: 3px;
         }
      }

      &:focus-visible {
         outline: 3px solid hsl(var(--blue));
         outline-offset: 3px;
      }
   }

   .eventImage {
      aspect-ratio: 260 / 350;
      background-color: hsla(var(--lightBlue), .3);
   }

   .eventDateBadge {
      border-radius: var(--radius);
      font-family: var(--font-base);
   }

   .eventDateMonth {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: var(--tracking-caps);
   }

   .eventDateDay {
      font-size: 1.375rem;
      font-weight: 700;
      line-height: 1;
   }

   .eventBody {
      flex: 1 1 auto;
      gap: var(--space-2);
   }

   h3 {
      margin: 0;
      font-size: 1.125rem;
      line-height: 1.3;
      hyphens: manual;
   }

   .eventLocation {
      margin: auto 0 0;
      font-size: 11px;
      letter-spacing: .06em;
      line-height: 1.4;
   }

   .eventTime {
      font-weight: 700;
   }

   /* telefonon vízszintesen lapozható sor, mint a friss hírek */
   @media (width < 576px) {
      grid-template-columns: none;
      grid-auto-flow: column;
      grid-auto-columns: 78%;
      gap: var(--space-4);
      overflow-x: auto;
      overscroll-behavior-x: contain;
      scroll-snap-type: x mandatory;
      scroll-padding-inline: var(--container-pad);
      margin-inline: calc(var(--container-pad) * -1);
      padding: 4px var(--container-pad) var(--space-4);

      .event {
         scroll-snap-align: start;
      }
   }
}

/* a v3 index.php-ban kézzel írt „További események” gomb helyett a szekció „… →” linkje */
.te-sec #eventItemsContainer + a,
.te-sec .teevents-mainpage + a {
   display: none;
}

/* ==========================================================================
   6. Számláló
   ========================================================================== */

.te-stats {
   background-color: hsl(var(--darkBlue));
   color: hsl(var(--white));
}

.te-stats__list {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   margin: 0;
   padding: clamp(32px, 4vw, 56px) 0;
   list-style: none;

   @media (width < 768px) {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      row-gap: var(--space-6);
   }
}

.te-stats__item {
   margin: 0;
   padding: var(--space-2) clamp(16px, 2.5vw, 40px);
   border-left: 1px solid hsla(var(--white), .2);

   &::before {
      content: none;
   }

   &:first-child {
      border-left: 0;
   }

   @media (width < 768px) {
      &:nth-child(odd) {
         border-left: 0;
      }
   }
}

.te-stats__num {
   display: flex;
   align-items: flex-start;
   margin: 0;
   color: hsl(var(--lightBlue));
   font-size: clamp(2.5rem, 1.8rem + 2.6vw, 4rem);
   font-weight: 700;
   line-height: 1;
   font-variant-numeric: tabular-nums;
   white-space: nowrap;
}

.te-stats__fix {
   color: hsl(var(--gold));
   font-size: .6em;
   line-height: 1.1;
}

.te-stats__label {
   margin: var(--space-3) 0 0;
   color: hsla(var(--white), .85);
   font-size: var(--fs-xs);
   font-weight: 700;
   letter-spacing: var(--tracking-caps);
   line-height: 1.4;
   text-transform: uppercase;
}

/* ==========================================================================
   7. Partnerek
   ========================================================================== */

.te-partners {
   --te-p-gap: clamp(24px, 3vw, 48px);
   --te-p-n: 5;

   display: grid;
   grid-template-columns: auto minmax(0, 1fr) auto;
   align-items: center;
   gap: var(--space-4);

   @media (width < 1040px) {
      --te-p-n: 3;
   }

   @media (width < 576px) {
      --te-p-n: 2;
   }
}

.te-partners__track {
   display: flex;
   grid-column: 2;
   gap: var(--te-p-gap);
   margin: 0;
   padding: var(--space-2) 0;
   overflow-x: auto;
   overscroll-behavior-x: contain;
   scroll-behavior: smooth;
   scroll-snap-type: x mandatory;
   scrollbar-width: none;
   list-style: none;

   &::-webkit-scrollbar {
      display: none;
   }

   &:focus-visible {
      outline: 2px solid hsl(var(--blue));
      outline-offset: 4px;
   }

   @media (prefers-reduced-motion: reduce) {
      scroll-behavior: auto;
   }
}

.te-partners__item {
   display: flex;
   flex: 0 0 calc((100% - (var(--te-p-n) - 1) * var(--te-p-gap)) / var(--te-p-n));
   align-items: center;
   justify-content: center;
   margin: 0;
   padding: 0;
   scroll-snap-align: start;

   &::before {
      content: none;
   }
}

.te-partners__link {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 100%;
   height: 72px;

   img {
      display: block;
      width: auto;
      max-width: 100%;
      height: auto;
      max-height: 60px;
      object-fit: contain;
      filter: grayscale(1);
      opacity: .75;
      transition: filter var(--transition-time), opacity var(--transition-time);
   }
}

a.te-partners__link:hover img,
a.te-partners__link:focus-visible img {
   filter: none;
   opacity: 1;
}

.te-partners__arrow {
   display: inline-grid;
   place-items: center;
   width: 44px;
   height: 44px;
   padding: 0;
   border: 1px solid hsla(var(--blue), .35);
   border-radius: 50%;
   background-color: hsl(var(--white));
   color: hsl(var(--blue));
   cursor: pointer;
   transition: background-color var(--transition-time), color var(--transition-time);

   &[hidden] {
      display: inline-grid;
      visibility: hidden;
   }

   &:hover,
   &:focus-visible {
      border-color: hsl(var(--blue));
      background-color: hsl(var(--blue));
      color: hsl(var(--white));
   }
}

.te-partners__arrow--prev {
   grid-column: 1;
   grid-row: 1;

   svg {
      transform: scaleX(-1);
   }
}

.te-partners__arrow--next {
   grid-column: 3;
   grid-row: 1;
}

@media (width < 576px) {
   .te-partners__arrow {
      width: 36px;
      height: 36px;
   }
}

/* ==========================================================================
   8. Vékony lábléc, főoldali cikk
   ========================================================================== */

.te-footer--slim .te-footer__slim {
   display: grid;
   grid-template-columns: minmax(0, 1.6fr) repeat(auto-fit, minmax(160px, 1fr));
   gap: var(--space-6) var(--space-5);
   padding-block: var(--space-7);
   border-bottom: 1px solid hsla(var(--white), .15);

   @media (width < 768px) {
      grid-template-columns: repeat(2, minmax(0, 1fr));

      .te-footer__brand {
         grid-column: 1 / -1;
      }
   }

   @media (width < 576px) {
      grid-template-columns: minmax(0, 1fr);
      gap: 0;
      padding-block: var(--space-5) 0;
      border-bottom: 0;

      .te-footer__brand {
         padding-bottom: var(--space-5);
      }
   }
}

.te-footer__tagline {
   max-width: 340px;
   margin: var(--space-4) 0 0;
   color: hsla(var(--white), .7);
   line-height: 1.6;
}

.te-footer__contact {
   .te-footmenu__toggle::after {
      display: none;
   }

   .te-footer__address {
      line-height: 1.7;
   }

   @media (width < 576px) {
      padding-bottom: var(--space-4);
   }
}

.te-footer__social {
   display: flex;
   flex-wrap: wrap;
   margin: var(--space-3) 0 0;

   a + a::before {
      content: '·';
      margin-inline: 8px;
      color: hsla(var(--white), .5);
   }
}

.te-page--home {
   padding-block: var(--space-7);
}

.te-mainpage__title {
   margin: 0 0 var(--space-5);
   color: hsl(var(--blue));
}

.te-mainpage__text {
   max-width: 860px;
   line-height: 1.7;
}
