/* normalize css */

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
}

main {
  display: block;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

a {
  background-color: transparent;
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

img {
  border-style: none;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.5;
  margin: 0;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

details {
  display: block;
}

summary {
  display: list-item;
}

template {
  display: none;
}

[hidden] {
  display: none;
}


/* website */

:root {
  --black: hsla(0, 0%, 0%, 1);
  --black-05: hsla(0, 0%, 0%, .05);
  --black-10: hsla(0, 0%, 0%, .1);
  --black-15: hsla(0, 0%, 0%, .15);
  --black-20: hsla(0, 0%, 0%, .2);
  --blue-dark: hsla(190, 55%, 60%, 1);
  --blue-light: hsla(190, 55%, 70%, 1);
  --blue-50: hsla(190, 55%, 70%, .5);
  --gray-dark: hsla(210, 15%, 25%, 1);
  --gray-light: hsl(0, 0%, 97%, 1);
  --green-dark: hsla(165, 55%, 60%, 1);
  --green-light: hsla(165, 55%, 70%, 1);
  --orange-dark: hsla(20, 90%, 75%, 1);
  --orange-light: hsla(30, 90%, 75%, 1);
  --pink-dark: hsla(0, 70%, 75%, 1);
  --pink-light: hsla(0, 70%, 83%, 1);
  --pink-50: hsla(0, 70%, 83%, .5);
  --magenta-dark: hsla(350, 50%, 60%, 1);
  --magenta-light: hsl(350, 85%, 65%);
  --white: hsl(0, 0%, 100%, 1);
  --yellow: hsl(40, 75%, 65%, 1);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-padding-top: 7rem;
  line-height: 1.5;
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  width: 100%;
  background-color: var(--white);
  color: var(--gray-dark);
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  font-weight: 400;
}

h1, h2, h3, h4 {
  text-transform: uppercase;
}

h1, h2 {
  color: var(--green-dark);
  font-weight: 900;
}

h3, h4 {
  font-weight: 700;
}

h1 {
  margin: 0;
  font-size: min(4rem, 4.5vw);
}

h2 {
  margin: 0 0 3rem;
  font-size: min(2.5rem, 6vw);
  text-align: center;
}

h3 {
  margin: 0 0 2rem;
  font-size: min(1.5rem, 4.5vw);
}

h4 {
  margin: 0 0 1.5rem;
  font-size: 1rem;
}

h4 span {
  font-weight: 500;
  text-transform: none;
}

p {
  margin: 0 0 1rem;
}

a {
  text-decoration: none;
}

button {
  border: 0;
  background: none;
  cursor: pointer;
}

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

.skip-link {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1000;
  padding: 0.75rem 1.25rem;
  background: var(--white);
  color: var(--gray-dark);
  font-weight: 600;
  transform: translateY(-100%);
}

.skip-link:focus {
  transform: none;
}

blockquote {
  font-size: 1.125rem;
  font-weight: 300;
  font-style: italic;
}

picture {
  width: 100%;
}

picture img {
  display: block;
  object-fit: cover;
  height: 100%;
  width: 100%;
}


/* main elements */

nav,
header,
main,
footer {
  width: min(100%, 3840px);
}

.nav__inner,
.header__inner,
.section__inner,
.footer__inner {
  width: 100%;
  max-width: 1200px;
}


/* nav */

nav {
  position: sticky;
  top: 0;
  display: flex;
  justify-content: center;
  z-index: 10;
  background-color: var(--white);
}

nav.active {
  box-shadow: 0 2px 10px 0 var(--black-10);
}

.nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: min(2rem, 3.125vw) 2rem;
}

.logo {
  display: block;
  height: min(2.25rem, 6.15vw);
  fill-rule: evenodd;
  clip-rule: evenodd;
  stroke-linejoin: round;
  stroke-miterlimit: 2;
}

.logo path { fill-rule: nonzero; }

.logo__white-stroke {
  fill: none;
  stroke: var(--white);
  stroke-width: 3.08px;
}

.logo__blue-light { fill: var(--blue-light); }
.logo__green-light { fill: var(--green-light); }
.logo__green-dark { fill: var(--green-dark); }
.logo__orange-light { fill: var(--orange-light); }
.logo__orange-dark { fill: var(--orange-dark); }
.logo__pink-light { fill: var(--pink-light); }
.logo__pink-dark { fill: var(--pink-dark); }
.logo__white { fill: var(--white); }
.logo__yellow { fill: var(--yellow); }

menu {
  display: flex;
  justify-content: flex-end;
  list-style-type: none;
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
}

menu li {
  margin-left: 2.5rem;
}

menu a {
  display: flex;
  align-items: center;
  color: var(--gray-dark);
  transition: color 0.3s linear;
}

menu svg {
  display: block;
  margin: 0 0.5rem 0 0;
  height: 1rem;
  fill: var(--green-dark);
  transition: fill 0.3s linear;
}

menu li.active a {
  color: var(--black);
}

menu li.active svg {
  fill: var(--pink-dark);
}

@media (hover: hover) {
  menu a:hover {
    color: var(--black);
  }

  menu a:hover svg {
    fill: var(--pink-dark);
  }
}

/* header */

header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  background-color: var(--white);
}

.header__inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 1920px;
}

header h1 {
  display: block;
  position: absolute;
  top: 20%;
  right: 3vw;
  max-width: min(800px, 52vw);
  line-height: min(5rem, 5vw);
  text-align: center;
}

header h1 span {
  font-weight: 100;
  text-transform: lowercase;
}

.header__bottom {
  display: flex;
  position: absolute;
  bottom: 0;
  width: 100%;
  height: min(max(10vw, 3rem), 17rem);
  overflow: hidden;
}

.header__bottom::before {
  content: '';
  display: block;
  margin: 0 -50vw;
  width: 200vw;
  height: 100vw;
  overflow: hidden;
  background-color: var(--gray-light);
  border-radius: 50% 50% 0 0;
  box-shadow: 1px 1px 10px 1px var(--black-10);
}


/* main */

main {
  position: relative;
}

section {
  position: relative;
  display: flex;
  justify-content: center;
  z-index: 1;
}

.section--light { background-color: var(--white); }
.section--mid { background-color: var(--gray-light); }
.section--dark { background-color: var(--gray-dark); }

.section__inner {
  padding: 5rem 2rem 2rem;
}

section:first-of-type .section__inner {
  padding-top: 0;
}

section h2 {
  margin-bottom: min(4rem, 10.25vw);
}

.section--dark h2 {
  color: var(--white);
}

section h3 {
  margin-bottom: min(4rem, 8.25vw);
  text-align: center;
}


/* services section */

.cards {
  margin-bottom: 5rem;
  padding: 0 5rem;
}

.cards-others {
  margin-bottom: 0;
}

article {
  --pad-1: min(1rem, max(0.5rem, 1.6vw));
  --pad-2: min(2rem, max(1.75rem, 3.5vw));
  --pad-2-5: min(2.5rem, max(2rem, 4vw));

  position: relative;
  margin-bottom: 3rem;
  padding: var(--pad-2-5) var(--pad-1) var(--pad-2) var(--pad-2-5);
  cursor: pointer;
  background-color: var(--white);
  --accent: var(--blue-dark);
  border-right: solid var(--accent);
  border-right-width: min(3rem, max(2rem, 4.8vw));
  border-radius: 2rem;
  box-shadow: 1px 1px 10px 1px var(--black-05);
  transition: box-shadow .3s linear;
}

article.open {
  cursor: default;
}

article::after {
  content: '';
  position: absolute;
  top: 1.5rem;
  right: max(-2.25rem, min(-1.5rem, -3.6vw));
  display: block;
  width: min(1.5rem, max(1rem, 2.4vw));
  height: min(1.5rem, max(1rem, 2.4vw));
  background-color: var(--gray-light);
  border-radius: 50%;
  box-shadow: inset 0 0 6px 2px var(--black-05);
  transition: box-shadow .3s linear;
}

.article__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height .3s linear;
}

.article__body ul {
  list-style: none;
  margin-bottom: 1rem;
}

.article__body li {
  position: relative;
  padding: 0 0 0.25rem 1.25rem;
}

.article__body li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5625rem;
  display: block;
  width: 0.4375rem;
  height: 0.4375rem;
  background-color: var(--green-light);
  border-radius: 50%;
}

article:nth-child(1) { --accent: var(--pink-light); }
article:nth-child(2) { --accent: var(--pink-dark); }
article:nth-child(3) { --accent: var(--orange-dark); }
article:nth-child(4) { --accent: var(--orange-light); }
article:nth-child(5) { --accent: var(--yellow); }
article:nth-child(6) { --accent: var(--green-dark); }
article:nth-child(7) { --accent: var(--green-light); }
article:nth-child(8) { --accent: var(--blue-light); }

.cards-others article:nth-child(1) { --accent: var(--magenta-light); }
.cards-others article:nth-child(1) .article__body li::before { background-color: var(--magenta-light); }
.cards-others article:nth-child(2) { --accent: var(--magenta-dark); }

.btn-more {
  display: flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  background-color: var(--accent);
  border-radius: 2rem;
}

.btn-more::before {
  content: "Tovább";
  color: var(--white);
  font-size: 0.625rem;
  font-weight: 500;
}

.btn-more::after {
  content: "";
  display: block;
  position: relative;
  top: -0.0625rem;
  margin-left: 0.5rem;
  padding: 0.125rem;
  border: solid var(--white);
  border-width: 0.0625rem 0.0625rem 0 0;
  rotate: 135deg;
  transition: margin-left .3s linear,
    top .3s linear, rotate .3s linear;
}

@media (hover: hover) {
  article:hover {
    box-shadow: 1px 1px 10px 1px var(--black-15);
  }

  article:hover::after {
    box-shadow: inset 0 0 6px 2px var(--black-15);
  }

  article:hover .btn-more::after {
    margin-left: 1.5rem;
  }
}

article.active .article__body {
  max-height: 100rem;
}

article.active .btn-more {
  background-color: var(--gray-light);
}

article.active .btn-more::before {
  content: "Bezár";
  color: var(--gray-dark);
}

article.active .btn-more::after {
  top: 0.125rem;
  rotate: -45deg;
  border-color: var(--gray-dark);
}


/* about section */

#about .section__inner {
  padding-bottom: 1.25rem;
}

.about__grid {
  position: relative;
  display: grid;
  grid-template-columns: 400px auto;
  gap: 5.75rem;
}

.about__grid::before {
  content: "";
  display: block;
  position: absolute;
  top: 500px;
  left: 120px;
  width: 200px;
  height: 200px;
  background-color: var(--blue-50);
  border-radius: 50%;
}

.about__grid::after {
  content: "";
  display: block;
  position: absolute;
  top: 800px;
  left: 160px;
  width: 160px;
  height: 160px;
  background-color: var(--pink-50);
  border-radius: 50%;
}

.about__grid picture {
  position: relative;
  margin: 40px 0 0 25px;
  width: 360px;
  max-width: 70vw;
  aspect-ratio: 1/1;
}

.about__grid img {
  position: relative;
  border-radius: 50%;
  z-index: 3;
}

.about__grid picture::before {
  content: "";
  display: block;
  position: absolute;
  top: -20px;
  left: -5px;
  width: 380px;
  max-width: calc(70vw + 0.7 * 20px) ;
  aspect-ratio: 1/1;
  background-color: var(--green-light);
  border-radius: 50%;
  z-index: 2;
  transition: background-color .7s linear;
}

.about__grid picture::after {
  content: "";
  display: block;
  position: absolute;
  top: -35px;
  left: -25px;
  width: 400px;
  max-width: calc(70vw + 0.7 * 40px);
  aspect-ratio: 1/1;
  background-color: var(--green-dark);
  border-radius: 50%;
  z-index: 1;
  transition: background-color 1s linear;
}

@media (hover: hover) {
  .about__grid picture:hover::before {
    background-color: var(--green-dark);
  }

  .about__grid picture:hover::after {
    background-color: var(--green-light);
  }
}

.about__grid__content p:nth-child(1) {
  font-size: 1.25rem;
  font-weight: 600;
}

.about__grid__content p:nth-child(1) strong {
  color: var(--green-dark);
  font-weight: 800;
}

.about__grid h3 {
  margin: 0 0 2rem;
  font-size: min(1.25rem, 4.5vw);
  text-align: left;
}

.about__grid ul {
  list-style: none;
  margin-bottom: 3rem;
}

.about__grid ul li {
  position: relative;
  padding: 0 0 0.75rem 1.25rem;
}

.about__grid ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .5625rem;
  display: block;
  width: .4375rem;
  height: .4375rem;
  background-color: var(--green-light);
  border-radius: 50%;
}

.blockquote-wrap {
  position: relative;
  margin: 4rem 0;
  border: 1px solid var(--green-light);
  border-width: 1px 0;
}

.blockquote-wrap blockquote {
  padding: 3rem 3rem 4rem;
}

.blockquote-wrap figcaption {
  position: absolute;
  bottom: 2.875rem;
  right: 3rem;
  display: block;
  font-size: 0.75rem;
  font-weight: 300;
  text-align: right;
}


/* gallery */

.pictures {
  display: grid;
  gap: 3rem;
  margin-bottom: 3rem;
}

.pictures-grid-2 {
  grid-template-columns: 1fr 1fr;
}

.pictures-grid-3 {
  grid-template-columns: 1fr 1fr 1fr;
}

.pictures picture {
  display: block;
  padding: 1rem;
  cursor: pointer;
  background-color: var(--white);
  box-shadow: 1px 1px 10px 1px var(--black-10);
  border-radius: 2rem;
  transition: box-shadow .3s linear;
}

@media (hover: hover) {
  .pictures picture:hover {
    box-shadow: 1px 1px 10px 1px var(--black-20);
  }
}

.pictures picture img {
  border-radius: 1.25rem;
}


/* contact section */

#contact .section__inner {
  display: flex;
  align-items: center;
  flex-direction: column;
}

address {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3rem;
  margin-bottom: 3rem;
  width: 100%;
  font-style: normal;
}

.address__item {
  display: flex;
  align-items: center;
  color: var(--white);
}

.address__item figure {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: .625rem;
  height: 3rem;
  aspect-ratio: 1/1;
  border-radius: 50%;
  transition: background-color .3s linear;
}

.address__item svg {
  display: block;
  height: 1.5rem;
  fill: var(--white);
}

.address__item__content h4 {
  margin: 0;
  color: var(--c);
  font-size: 0.875rem;
  transition: color .3s linear;
}

.address__item__content p {
  margin: 0;
  font-size: 0.875rem;
}

.address__item figure { background-color: var(--c); }

@media (hover: hover) {
  .address__item:hover figure { background-color: var(--c-hover); }
  .address__item:hover h4 { color: var(--c-hover); }
}

.address__item:nth-child(1) { --c: var(--pink-dark);   --c-hover: var(--pink-light); }
.address__item:nth-child(2) { --c: var(--orange-dark); --c-hover: var(--orange-light); }
.address__item:nth-child(3) { --c: var(--green-dark);  --c-hover: var(--green-light); }
.address__item:nth-child(4) { --c: var(--blue-dark);   --c-hover: var(--blue-light); }


/* privacy policy */

#cookiefirst-policy-page h2,
#cookiefirst-policy-page h3 {
  text-align: left;
  margin: 2rem 0 1rem;
}

#cookiefirst-policy-page h2 {
  font-size: 1.5rem;
  font-weight: 700;
}

#cookiefirst-policy-page h3 {
  font-size: 1.25rem;
  font-weight: 500;
}
#cookiefirst-policy-page h2 + h3 {
  margin-top: 0;
}

#cookiefirst-policy-page h4 {
  font-size: 1rem;
  font-weight: 500;
}

#cookiefirst-policy-page p {
  margin-bottom: 1rem;
}

#cookiefirst-policy-page > div p:first-child {
  font-size: 0.75rem;
}

#cookiefirst-policy-page a {
  color: var(--green-dark);
  transition: color .3s linear;
}

@media (hover: hover) {
  #cookiefirst-policy-page a:hover {
    color: var(--green-light);
  }
}

/* footer */

footer {
  display: flex;
  justify-content: center;
  background-color: var(--gray-dark);
  color: var(--gray-light);
  font-size: 0.875rem;
}

.footer__inner {
  display: flex;
  justify-content: center;
  padding: 2rem;
}

footer p {
  margin: 0;
}

footer button {
  color: var(--green-dark);
  font-weight: inherit;
  transition: color .3s linear;
}

@media (hover: hover) {
  footer button:hover {
    color: var(--green-light);
  }
}

footer button::before {
  content: "|";
  margin: 0 0.5rem;
  cursor: default;
  color: var(--white);
}


.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img,
.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img:active,
.pswp__img {
  cursor: pointer;
}


/* media query */

@media screen and (max-width: 1199px) {
  address {
    grid-template-columns: repeat(2, 1fr);
    width: 80vw;
  }
}

@media screen and (max-width: 999px) {
  .nav__inner {
    justify-content: center;
  }

  menu {
    position: fixed;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    z-index: 100;
    background: var(--white);
    box-shadow: 0 2px 10px 0 var(--black-10);
  }

  menu li {
    margin: 0;
    width: 25%;
  }

  menu a {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 1rem 0;
    line-height: 0.75rem;
    font-size: 0.625rem;
  }

  menu svg {
    display: block;
    margin: 0 0 0.5rem;
    height: 1.25rem;
  }

  .cards {
    padding: 0;
  }

  .pictures {
    grid-template-columns: 1fr 1fr;
  }

  .about__grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .about__grid picture {
    margin-inline: auto;
  }

  .about__grid::before,
  .about__grid::after {
    display: none;
  }

  .about__grid__content p:nth-child(1) {
    font-size: 1.125rem;
  }

  .blockquote-wrap blockquote {
    padding: 2rem 1rem 3rem;
  }

  .blockquote-wrap figcaption {
    bottom: 1.875rem;
  }

  .footer__inner {
    padding-bottom: 6.5rem;
  }
}

@media screen and (max-width: 699px) {
  .pictures {
    grid-template-columns: 1fr;
  }

  address {
    grid-template-columns: 1fr;
    width: auto;
  }

  .footer__inner {
    flex-direction: column;
    text-align: center;
  }

  footer button {
    margin-top: 1rem;
  }

  footer button::before {
    display: none;
  }
}


/* reduced motion */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
  }
}
