/*
Theme Name: Fontos Studio Divi Child
Theme URI: https://fontosstudio2.hu
Description: Child theme for Divi custom portfolio layouts and site-specific customizations.
Author: Fontos Studio
Template: Divi
Version: 1.0.0
*/

/* Main menu */
@media (min-width: 981px) {
  .fs-main-menu .et_pb_menu__menu > nav > ul {
    column-gap: 78px;
  }

  .fs-main-menu .et_pb_menu__menu > nav > ul > li {
    margin: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
}

/* Hero video preload overlay */
.fs-hero-white-preload-bg {
  --fs-hero-preload-duration: 3s;
  background-color: #ffffff !important;
  opacity: 1;
  pointer-events: none;
  will-change: opacity;
}

.fs-hero-white-preload-bg.is-fading {
  animation: fs-hero-white-preload-fade var(--fs-hero-preload-duration) ease forwards;
}

.et_pb_section:has(.fs-hero-white-preload-bg).et_pb_preload,
.et_pb_section_0.et-pb-has-background-video.et_pb_preload {
  background: #ffffff !important;
}

.et_pb_section:has(.fs-hero-white-preload-bg).et_pb_preload::before,
.et_pb_section_0.et-pb-has-background-video.et_pb_preload::before,
.fs-hero-video-preloading.et_pb_preload::before {
  display: none !important;
  content: none !important;
  background: none !important;
}

.et_pb_section:has(.fs-hero-white-preload-bg).et_pb_preload .fs-hero-white-preload-bg,
.et_pb_section_0.et-pb-has-background-video.et_pb_preload .fs-hero-white-preload-bg,
.fs-hero-video-preloading.et_pb_preload .fs-hero-white-preload-bg {
  visibility: visible !important;
}

.et_pb_section:has(.fs-hero-white-preload-bg):not(.fs-hero-video-ready) video,
.et_pb_section_0.et-pb-has-background-video:not(.fs-hero-video-ready) video,
.fs-hero-video-preloading video {
  visibility: hidden !important;
  opacity: 0 !important;
}

.et_pb_section:has(.fs-hero-white-preload-bg):not(.fs-hero-video-ready) .mejs-overlay-loading,
.et_pb_section:has(.fs-hero-white-preload-bg):not(.fs-hero-video-ready) .mejs-overlay-loading-bg-img,
.et_pb_section_0.et-pb-has-background-video:not(.fs-hero-video-ready) .mejs-overlay-loading,
.et_pb_section_0.et-pb-has-background-video:not(.fs-hero-video-ready) .mejs-overlay-loading-bg-img,
.fs-hero-video-preloading .mejs-overlay-loading,
.fs-hero-video-preloading .mejs-overlay-loading-bg-img {
  display: none !important;
}

.fs-hero-video-ready video {
  visibility: visible !important;
  opacity: 1 !important;
}

@keyframes fs-hero-white-preload-fade {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

/* Animated menu underline */
a.et_pb_link.fs-menu-underline,
a.et_pb_link.fs-menu-underline-white {
  --fs-menu-underline-color: #060606;
  overflow: visible;
}

a.et_pb_link.fs-menu-underline-white {
  --fs-menu-underline-color: #ffffff;
}

a.et_pb_link.fs-menu-underline .et_pb_link_inner,
a.et_pb_link.fs-menu-underline-white .et_pb_link_inner {
  position: relative;
  width: fit-content !important;
  max-width: 100%;
}

a.et_pb_link.fs-menu-underline .et_pb_link_inner::before,
a.et_pb_link.fs-menu-underline-white .et_pb_link_inner::before {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  content: "";
  background-color: var(--fs-menu-underline-color);
  pointer-events: none;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s ease;
}

a.et_pb_link.fs-menu-underline:hover .et_pb_link_inner::before,
a.et_pb_link.fs-menu-underline:focus-visible .et_pb_link_inner::before,
a.et_pb_link.fs-menu-underline.is-current-page .et_pb_link_inner::before,
a.et_pb_link.fs-menu-underline-white:hover .et_pb_link_inner::before,
a.et_pb_link.fs-menu-underline-white:focus-visible .et_pb_link_inner::before,
a.et_pb_link.fs-menu-underline-white.is-current-page .et_pb_link_inner::before {
  transform: scaleX(1);
}

/* Arrow buttons */
body #page-container .et_pb_section a.et_pb_button.fs-arrow-button,
body #page-container .et_pb_section a.et_pb_button.fs-arrow-button-left {
  --flex-direction: row;
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  justify-content: flex-start;
  gap: 18px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  text-decoration: none;
}

body #page-container .et_pb_section a.et_pb_button.fs-arrow-button::before,
body #page-container .et_pb_section a.et_pb_button.fs-arrow-button::after,
body #page-container .et_pb_section a.et_pb_button.fs-arrow-button-left::before,
body #page-container .et_pb_section a.et_pb_button.fs-arrow-button-left::after {
  position: static !important;
  inset: auto !important;
  flex: 0 0 auto;
  align-self: center;
  width: auto;
  height: 16px;
  aspect-ratio: 24 / 17;
  margin: 0 !important;
  line-height: 1 !important;
  background-color: currentColor;
  opacity: 1 !important;
  transform: translateX(0) !important;
  transition: transform 0.25s ease !important;
}

body #page-container .et_pb_section a.et_pb_button.fs-arrow-button::before,
body #page-container .et_pb_section a.et_pb_button.fs-arrow-button-left::after {
  display: none !important;
  content: none !important;
}

body #page-container .et_pb_section a.et_pb_button.fs-arrow-button::after {
  display: inline-block !important;
  content: "" !important;
  -webkit-mask: url("assets/icons/right-arrow.svg") center / contain no-repeat;
  mask: url("assets/icons/right-arrow.svg") center / contain no-repeat;
}

body #page-container .et_pb_section a.et_pb_button.fs-arrow-button-left::before {
  display: inline-block !important;
  content: "" !important;
  -webkit-mask: url("assets/icons/left-arrow.svg") center / contain no-repeat;
  mask: url("assets/icons/left-arrow.svg") center / contain no-repeat;
}

body #page-container .et_pb_section a.et_pb_button.fs-arrow-button:hover::after {
  transform: translateX(5px) !important;
}

body #page-container .et_pb_section a.et_pb_button.fs-arrow-button-left:hover::before {
  transform: translateX(-5px) !important;
}

@media (max-width: 767px) {
  body #page-container .et_pb_section a.et_pb_button.fs-arrow-button::after,
  body #page-container .et_pb_section a.et_pb_button.fs-arrow-button-left::before {
    height: 12px;
  }
}

/* Back to top button */
.fs-top-arrow-icon .et_pb_icon_wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.fs-top-arrow-icon .et_pb_icon_wrap .et-pb-icon {
  display: block;
  width: 94px;
  height: 53px;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  background: url("assets/icons/top-arrow.svg") center / contain no-repeat;
  cursor: pointer;
}

@media (max-width: 767px) {
  .fs-top-arrow-icon .et_pb_icon_wrap .et-pb-icon {
    width: 73px;
    height: 41px;
  }
}

/* Bento / magazine grid: Portfolio + Filterable Portfolio */
.bento-filterable-portfolio .et_pb_ajax_pagination_container > .et_pb_posts.et_grid_module,
.bento-filterable-portfolio .et_pb_portfolio_items_wrapper > .et_pb_portfolio_items.et_pb_grid_items {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-auto-rows: 120px;
  grid-auto-flow: dense;
  gap: 16px;
}

.bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item {
  width: auto !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
}

.bento-filterable-portfolio .et_pb_portfolio_item {
  position: relative;
  overflow: hidden;
}

.bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item > a,
.bento-filterable-portfolio .et_portfolio_image {
  display: block;
  width: 100%;
  height: 100%;
}

.bento-filterable-portfolio .et_portfolio_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Cím/meta elrejtése, ha csak képes mozaik kell */
.bento-filterable-portfolio .entry-title,
.bento-filterable-portfolio .et_pb_module_header,
.bento-filterable-portfolio .post-meta {
  display: none !important;
}

.bento-filterable-portfolio .fs-portfolio-overlay {
  position: absolute;
  z-index: 4;
  left: 48px;
  right: 48px;
  bottom: 50px;
  color: #ffffff;
  pointer-events: none;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.bento-filterable-portfolio .fs-portfolio-meta {
  margin: 0;
  color: #ffffff;
  font-size: 18px;
  font-weight: 600;
  line-height: 30px;
}

.bento-filterable-portfolio .fs-portfolio-title {
  margin: 0;
  color: #ffffff;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

@media (hover: hover) and (pointer: fine) {
  .bento-filterable-portfolio .fs-portfolio-overlay {
    opacity: 0;
    transform: translateY(8px);
  }

  .bento-filterable-portfolio .et_pb_portfolio_item:hover .fs-portfolio-overlay,
  .bento-filterable-portfolio .et_pb_portfolio_item:focus-within .fs-portfolio-overlay {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Ismétlődő, hételemes bento elrendezés */
.bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item:nth-child(7n + 1) {
  grid-column: span 4;
  grid-row: span 3;
}

.bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item:nth-child(7n + 2) {
  grid-column: span 2;
  grid-row: span 3;
}

.bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item:nth-child(7n + 3),
.bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item:nth-child(7n + 4) {
  grid-column: span 2;
  grid-row: span 2;
}

.bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item:nth-child(7n + 5) {
  grid-column: span 4;
  grid-row: span 4;
}

.bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item:nth-child(7n + 6) {
  grid-column: span 4;
  grid-row: span 3;
}

.bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item:nth-child(7n + 7) {
  grid-column: span 2;
  grid-row: span 3;
}

/* Tablet */
@media (max-width: 980px) {
  .bento-filterable-portfolio .et_pb_ajax_pagination_container > .et_pb_posts.et_grid_module,
  .bento-filterable-portfolio .et_pb_portfolio_items_wrapper > .et_pb_portfolio_items.et_pb_grid_items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 150px;
  }

  .bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item {
    grid-column: span 1 !important;
    grid-row: span 2 !important;
  }

  .bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item:nth-child(7n + 1),
  .bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item:nth-child(7n + 5),
  .bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item:nth-child(7n + 6) {
    grid-column: span 2 !important;
  }
}

/* Mobil */
@media (max-width: 767px) {
  .bento-filterable-portfolio .et_pb_ajax_pagination_container > .et_pb_posts.et_grid_module,
  .bento-filterable-portfolio .et_pb_portfolio_items_wrapper > .et_pb_portfolio_items.et_pb_grid_items {
    display: block !important;
  }

  .bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item {
    margin-bottom: 16px !important;
  }

  .bento-filterable-portfolio .et_portfolio_image {
    aspect-ratio: 4 / 3;
    position: relative;
  }

  .bento-filterable-portfolio .et_portfolio_image::after {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    pointer-events: none;
  }

  .bento-filterable-portfolio .fs-portfolio-overlay {
    left: 18px;
    right: 18px;
    bottom: 23px;
  }

  .bento-filterable-portfolio .fs-portfolio-meta {
    font-size: 14px;
    line-height: 30px;
  }

  .bento-filterable-portfolio .fs-portfolio-title {
    font-size: 16px;
    line-height: 32px;
  }
}

/* Bento portfolio v2: Figma-based 1378px / 606px layout */
.bento-filterable-portfolio .et_pb_portfolio_item {
  min-width: 0;
}

@media (min-width: 981px) {
  .bento-filterable-portfolio .et_pb_ajax_pagination_container > .et_pb_posts,
  .bento-filterable-portfolio .et_pb_portfolio_items_wrapper > .et_pb_portfolio_items {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-rows: 293px !important;
    grid-auto-flow: dense !important;
    gap: 20px !important;
  }

  .bento-filterable-portfolio .et_pb_portfolio_item.fs-bento-wide-left {
    grid-column: 1 / span 2 !important;
    grid-row: span 2 !important;
  }

  .bento-filterable-portfolio .et_pb_portfolio_item.fs-bento-wide-right {
    grid-column: 2 / span 2 !important;
    grid-row: span 2 !important;
  }

  .bento-filterable-portfolio .et_pb_portfolio_item.fs-bento-tall-left {
    grid-column: 1 !important;
    grid-row: span 2 !important;
  }

  .bento-filterable-portfolio .et_pb_portfolio_item.fs-bento-tall-right {
    grid-column: 3 !important;
    grid-row: span 2 !important;
  }

  .bento-filterable-portfolio .et_pb_portfolio_item.fs-bento-half-left {
    grid-column: 1 !important;
    grid-row: span 1 !important;
  }

  .bento-filterable-portfolio .et_pb_portfolio_item.fs-bento-half-right {
    grid-column: 3 !important;
    grid-row: span 1 !important;
  }

  .bento-filterable-portfolio .et_pb_portfolio_item.fs-bento-full {
    grid-column: 1 / -1 !important;
    grid-row: span 2 !important;
  }
}

@media (min-width: 768px) and (max-width: 980px) {
  .bento-filterable-portfolio .et_pb_ajax_pagination_container > .et_pb_posts,
  .bento-filterable-portfolio .et_pb_portfolio_items_wrapper > .et_pb_portfolio_items {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-rows: 280px !important;
    grid-auto-flow: dense !important;
    gap: 16px !important;
  }

  .bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
  }

  .bento-filterable-portfolio .et_pb_portfolio_item.fs-bento-wide-left,
  .bento-filterable-portfolio .et_pb_portfolio_item.fs-bento-wide-right,
  .bento-filterable-portfolio .et_pb_portfolio_item.fs-bento-full {
    grid-column: span 2 !important;
  }

  .bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item.fs-bento-tall-left,
  .bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item.fs-bento-tall-right,
  .bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item.fs-bento-half-left,
  .bento-filterable-portfolio .et_pb_grid_item.et_pb_portfolio_item.fs-bento-half-right {
    grid-column: span 1 !important;
  }
}

/* Works portfolio filters */
.bento-filterable-portfolio .et_pb_portfolio_filters {
  clear: both;
  margin: 0 0 90px !important;
}

.bento-filterable-portfolio .et_pb_portfolio_filters ul {
  display: flex !important;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 40px;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

.bento-filterable-portfolio .et_pb_portfolio_filters ul::before,
.bento-filterable-portfolio .et_pb_portfolio_filters ul::after {
  display: none !important;
  content: none !important;
}

.bento-filterable-portfolio .et_pb_portfolio_filters li {
  order: 10;
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.bento-filterable-portfolio .et_pb_portfolio_filters .et_pb_portfolio_filter_all {
  order: 1;
}

.bento-filterable-portfolio .et_pb_portfolio_filters li:has(a[data-category-slug="tajepiteszet"]) {
  order: 2;
}

.bento-filterable-portfolio .et_pb_portfolio_filters li:has(a[data-category-slug="epiteszet"]) {
  order: 3;
}

.bento-filterable-portfolio .et_pb_portfolio_filters li a {
  position: relative;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 0 8px !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(0, 0, 0, 0.5) !important;
  font-family: "Epilogue", Helvetica, Arial, sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 21px !important;
  text-transform: uppercase;
  transition: color 0.2s ease;
}

.bento-filterable-portfolio .et_pb_portfolio_filters li a::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  content: "";
  background: #000000;
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left center;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.bento-filterable-portfolio .et_pb_portfolio_filters li a:hover,
.bento-filterable-portfolio .et_pb_portfolio_filters li a:focus-visible,
.bento-filterable-portfolio .et_pb_portfolio_filters li a.active {
  background: transparent !important;
  color: #000000 !important;
}

.bento-filterable-portfolio .et_pb_portfolio_filters li a.active::after {
  opacity: 1;
  transform: scaleX(1);
}

.bento-filterable-portfolio .et_pb_portfolio_filters li a:focus-visible {
  outline: 1px solid #000000;
  outline-offset: 3px;
}

@media (max-width: 767px) {
  .bento-filterable-portfolio .et_pb_portfolio_filters {
    margin-bottom: 30px !important;
  }

  .bento-filterable-portfolio .et_pb_portfolio_filters ul {
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 12px;
    width: auto !important;
  }

  .bento-filterable-portfolio .et_pb_portfolio_filters li a {
    padding-bottom: 6px !important;
    font-size: 15px !important;
    line-height: 18px !important;
    white-space: nowrap;
  }
}

/* Portfolio previous / next navigation */
.fs-portfolio-navigation {
  --horizontal-gap: 0px;
  --horizontal-gap-parent: 0px;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  column-gap: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  flex-basis: 100% !important;
}

.fs-portfolio-navigation .nav-previous,
.fs-portfolio-navigation .nav-next {
  display: flex;
  align-items: center;
  align-self: center;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.fs-portfolio-navigation .nav-next {
  justify-content: flex-end;
  margin-left: auto !important;
  text-align: right;
}

.fs-portfolio-navigation .nav-previous a,
.fs-portfolio-navigation .nav-next a {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  margin: 0 !important;
  padding: 0 !important;
}

.fs-portfolio-navigation .meta-nav {
  display: inline-block;
  flex: 0 0 auto;
  width: 24px;
  height: 17px;
  font-size: 0;
  line-height: 0;
  background-color: currentColor;
}

.fs-portfolio-navigation .nav-previous .meta-nav {
  -webkit-mask: url("assets/icons/left-arrow.svg") center / contain no-repeat;
  mask: url("assets/icons/left-arrow.svg") center / contain no-repeat;
}

.fs-portfolio-navigation .nav-next .meta-nav {
  -webkit-mask: url("assets/icons/right-arrow.svg") center / contain no-repeat;
  mask: url("assets/icons/right-arrow.svg") center / contain no-repeat;
}

@media (max-width: 980px) {
  .fs-portfolio-navigation .nav-label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  .fs-portfolio-navigation .nav-previous a,
  .fs-portfolio-navigation .nav-next a {
    gap: 0;
  }
}
