@import "variables.css";
@import "typography.css";
@import "stack.css";
@import "list.css";
@import "splitting.css";
@import "splitting-cells.css";
@import "animations.css";




html {
  overflow-y: scroll;
   overscroll-behavior: auto;

}
@supports (scrollbar-gutter: stable) {
  html {
    overflow-y: auto;
    scrollbar-gutter: stable;
  }
}


body {
  background: var(--black);
  color: var(--white);
  line-height: 1.5;
  transition: background-color 500ms ease-in-out ;

}

/*
main::before, main::after{

content: '';


  display: block;
  width: .5rem;
  height: .5rem;
  background: var(--white);
  position: fixed;
  top: 50%;
  right: 2rem;
 transform: translateY(-50%);
  border-radius: 30000px;

}

main::after{
  top: auto;
  bottom: 2rem;
}

header::before{

content: '';


  display: block;
  width: .5rem;
  height: .5rem;
  background: var(--white);
  position: absolute;
  top: 2rem;
  left: 2rem;

  border-radius: 30000px;


}


*/



h1,
h2 {
  font-weight: 600;
  line-height: 1.1;
  max-width: 30ch;
  color:  var(--white);
}

h1 {
  font-size: 1.25rem;
}

h2 {
  font-size: 1.8rem;
}

a {
  color: currentColor;
}

:focus {
  outline: 0;
  outline-offset: 0;
}

p,
li,
dl {
  max-width: 70ch;
}

p{

line-height: 1.4;
letter-spacing: 0.2px;
margin-block: 0;
   
}


article {
  margin-top: 2.5rem;
  font-size: 1.25rem;
}

main:focus {
  outline: none;
}

a:focus-visible,button:focus-visible,input:focus-visible {

    outline: 5px solid var(--focus);
    
}

@media (min-width: 40em) {

  h2 {
    font-size: 2.5rem;
  }
}

.honey {
  position: absolute;
  left: -9999px;
}
.skip-link {
  display: inline-block;
  padding: 0.7rem 1rem 0.5rem 1rem;
  background: var(--white);
  color: var(--black);
  text-decoration: none;
  font-weight: 700;
  text-transform: uppercase;
  position: absolute;
  top: 1rem;
  left: 1rem;
}


.skip-link:hover {
  background: var(--color-dark);
  color: var(--white-shade);
}

.skip-link:not(:focus) {
  border: 0;
  clip: rect(0 0 0 0);
  height: auto;
  margin: 0;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
}


.wrapper {
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  width: 100%;
}


.default.wrapper{

max-width: 1680px;
padding-top: 10svh;

}

.header-title{

display: flex;
flex-direction: row;
font-weight: 700;
 line-height: 1;
  text-align: left;

  padding-left: 2rem;
  padding-top: 2rem;
  font-size: 1.25rem;
  gap: .5rem;

color: var(--white);

}


.header-title h1{


color: hsl(from var(--white) h s 55%);
font-weight: 500;

}

.header-title a{text-decoration: none}

.wrapper > .blocks {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.wrapper  {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}



.flow > * + * {
  margin-top: var(--flow-space, 1em);
}


.site-head {
  padding: 0;

 
  line-height: 1.1;
 

  z-index: 9999999;
  width:100%;

  position: fixed;
 
}





.site-head__navbottom{
display: flex;
position: fixed;
bottom: 2rem;
left: 2rem;
z-index: 9999;
gap: 1rem;
    align-items: center;

@media only screen and (max-width: 780px){

  display:none;
}
}

header:has(#burgermenu:popover-open) .site-head__navbottom.mobile{   
@media only screen and (max-width: 780px){

 display: flex
;
    justify-content: space-between;    width: 90%;
}
  }


.site-head__navbottom > a, .site-head__navbottom > button, .site-head__navbottom > nav > a {


text-decoration: none;

color:var(--white);
font-size: 0.75rem;

background-color: transparent;
border: none;
padding: 0;
margin: 0;

cursor: pointer;
display: flex;
    align-items: center;
    justify-content: flex-start;
    gap:0.25rem;

}

#buttonburger{


margin: 0em 0em 0em 0em;
    padding-block: 0;
    padding-inline: 0;
    border-width: 0;

width: 36px;
height: 36px;
background-color: transparent;
    right: 1.25rem;
    top: 1.5rem;
    position: fixed;
    cursor: pointer;


    display: inline-flex;
flex-direction: row;
gap:1.25rem;
transition: all 250ms ease-in-out;
pointer-events: auto;
z-index: 777;

    justify-content: center;
}





/* Make sure the spans do not block clicks */
#buttonburger > *{
  pointer-events: none;
}




 .burger-menu{

display: flex;
flex-direction: row;
justify-content: space-between;
width: 100%;
    align-items: center;

}




.burger-menu__bar,
.burger-menu__bar::before,
.burger-menu__bar::after {
  display: block;
  width: .5rem;
  height: .5rem;
  background: var(--white);
  
 
  border-radius: 30000px;
  
 
  transition: transform 150ms ease-out;

  
}


button[popovertarget="burgermenu"]:has(~ #burgermenu:popover-open) > .burger-menu__bar:first-child {  
    transform: translateX(1rem) ;
   
}


button[popovertarget="burgermenu"]:has(~ #burgermenu:popover-open) > .burger-menu__bar:first-child::before,
button[popovertarget="burgermenu"]:has(~ #burgermenu:popover-open) > .burger-menu__bar:first-child::after {  
    transform: translateX(-1.25rem) ;
}


button[popovertarget="burgermenu"]:has(~ #burgermenu:popover-open) > .burger-menu__bar:nth-child(2) {  
    transform: translateX(-.75rem) ;
   
}


button[popovertarget="burgermenu"]:has(~ #burgermenu:popover-open) > .burger-menu__bar:nth-child(2)::before,
button[popovertarget="burgermenu"]:has(~ #burgermenu:popover-open) > .burger-menu__bar:nth-child(2)::after {  
    transform: translateX(1.25rem) ;

}



.mainnav-container:has(#burgermenu:popover-open){

@media only screen and (max-width: 780px){
  background-color: var(--black);height: 100svh;
}

}

.burger-menu__bar {
  
  position: relative;
}

.burger-menu__bar::before,
.burger-menu__bar::after {
  content: '';
      position: absolute;
      
}

.burger-menu__bar:first-child::before,
.burger-menu__bar:first-child::after {
left: .5rem;
      
}

.burger-menu__bar:nth-child(2)::before,
.burger-menu__bar:nth-child(2)::after {
left: -.5rem;
      
}


.burger-menu__bar{
  top: .75rem;

}


.burger-menu__bar::before {
  top: -.75rem;

}

.burger-menu__bar::after {
  bottom: -.75rem;

}

.site-head__navbottom > a:hover, .site-head__navbottom > button:hover {

transform: scale( 1.1);

}

.icon-sound-on, .icon-sound-off {display: none}
.sound-on > .icon-sound-on {display: block}
.sound-off > .icon-sound-off {display: block}

.site-head__brand {
  text-transform: uppercase;
  font-weight: 800;
  text-decoration: none;
  width: 200px;
}

nav{font-family: var(--monofont);}


.navigation ul[role="list"] {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 2rem;
  padding: 0;
  flex-direction: column;
text-transform: uppercase;
    align-items: flex-end;
  @media only screen and (min-width: 780px) {
flex-direction: row;
align-items: center;
  }
}
.navigation li {
  margin: 0;
  list-style-type: none;
}

.navigation > ul[role="list"] > li > a {
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none;
  color: currentColor;
  display: flex;
  gap: 0.125rem;

}

.navigation a:hover {
  font-weight: 700;
}


.navigation a.active {
  font-weight: 700;
}


.burger-menu__trigger {
  display: none;
}


#closeburger{

  background-color: transparent;

margin: 0em 0em 0em 0em;
    padding-block: 0px;
    padding-inline: 0px;
    border-width: 0px;
    border-style: none;
    border-color: transparent;
 
width: 25px;
height: 25px;
}

.burger-menu-close {
   width: 25px;
    /* position: relative; */
    display: grid
;
}




.burger-menu-close::before {
  content: '';
  top: 0;
  transform: rotate(45deg);
  border: 1px solid var(--white);
  background-color: white;
}


.burger-menu-close::after {
  content: '';
  top: 0;
  transform: rotate(-45deg);
  border: 1px solid var(--white);
  background-color: white;
  margin-top: -2px;
}


#buttonburger[popover] {
    position: relative;
    width: 100%;
     height: 100%;
    color: currentcolor;
   
    inset: 0px;
    margin: auto;
    padding: 1rem;
    border-radius: 0;

border: 0;
    overflow: auto;

     background-color: hsla(0, 0%, 0%, 0.95);
  backdrop-filter: blur(5px);
}


#buttonburger[popover]::backdrop {
  background-color: hsla(0, 0%, 0%, 0.45);
  backdrop-filter: blur(2px);
  animation: fadeIn 150ms ease-in;
  animation-fill-mode: forwards;
}



#burgermenu{
  
  
  flex-direction: row;
      overflow: visible;


width: fit-content;
    height: fit-content;
    color: currentcolor;
    background-color: transparent;
    inset: 0px;
top:0px;
right:6rem;
    border: 0;
    margin: 0;
    left:auto;
 @media only screen and (max-width: 780px) {



     right: 1.25rem;
    left: auto;
    width: 100%;
    height: auto;
    z-index: 999;
    top:12svh;

   
    }
}





#burgermenu:popover-open  {
  display: flex;
  
}




.subdrop{

padding-inline-start: 1rem;
gap: .5rem;
display: flex;
flex-direction: column;
margin-top: 0.5rem;
}


.chevron-down{display: none}

.subdrop.drop-languages { 
    
 

top: -90%;

border: 0;
padding: 0;
 
overflow: visible;
margin: 0;
}




.languages.droplink > a{display: flex;
flex-direction: row;
align-items: center; cursor: pointer; }


.languages.droplink > a:hover{opacity: .7 }

.subdrop.drop-languages:hover {transform: scale(1.1);  }


.languages.droplink:has(.subdrop.drop-languages:hover) > a{opacity: .7  }

.languages.droplink{padding: 0; }
.languages:hover{z-index:99;}

.subdrop a {

      font-weight: 400;

  font-size: 0.875rem;
  text-decoration: none;
  color: currentColor;
}

/* Dropdown Parent Link Style */
.droplink {
    display: inline-block;
    min-width: fit-content;
    position: relative;
    padding: 1rem 0;
    display: flex
;
    flex-direction: column;
    align-items: flex-end;
}



/* List elements within the dropdown */
.subdrop li {
    display: block!important;
    padding: 0!important;
}

/* Links within the dropdown list */
.subdrop a {
    display: block;
    white-space: nowrap;
}

/* Allows links to show on hover/focus and through keyboard navigation via focus-within */



.chevron-down{transition: transform 150ms ease-in-out}

.droplink:hover > a > .chevron-down{


transform: rotateZ(180deg);

}


/* Separate these to avoid IE completely ignoring the css above */
.droplink:focus-within .subdrop { 
    visibility: visible;
    height: auto;
    z-index: 11;
}




.maincta{display: block;
border: 1px solid rgba(255, 255, 255, 0.5);
text-align: center;
padding: 12px 0;
font-size:0.875rem}


#mainlogo {

    position: relative;
}


#headermobile{display: flex;flex-direction: row; justify-content: space-between; padding: 1rem}


.site-head__inner{display: flex;flex-direction: row; justify-content: space-between;}



section.grid{

  margin:  4rem 0;
      gap: 2rem;
}


section.grid.removemargintop{

  margin-top: 0;
}


section.grid.removemarginbottom{

  margin-bottom: 0;
}


@media only screen and (min-width: 780px) {






.grid {
    display: flex;
    flex-direction: row;
}


.column.c4 {
    width: calc(33.3333333% - 2rem);
}


.column.c6 {
    width: 50%;
}



}





        /* -------------------------------------------------
           Footer specific styles
           ------------------------------------------------- */
        .footer {
        
            margin: 2rem;
            max-width: calc(100% - 2rem);
            display: flex;
            flex-wrap: wrap;
            gap: 2rem;
            font-size: 0.95rem;
            margin-top: 50vh;
            background-color: hsl(from var(--black) h s 6%);
            padding: 2rem;
            position: relative;
        }

        .footer-section {
            flex: 1 1 200px;          /* grow, shrink, min‑width */
        }

        .address,
        .contact {
            margin-bottom: 1rem;
        }

        .address p,
        .contact p {
            margin-bottom: 0.4rem;
        }

        .links-col {
            column-count: 2;          /* two columns of links */
            column-gap: 1.5rem;
        }

        .links-col a {
            display: block;
            margin-bottom: 0.4rem;
            
        }

        .footer-bottom {
            width: 100%;
            border-top: 1px solid #ddd;
            margin-top: 2rem;
            padding-top: 1rem;
            font-size: 0.85rem;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            align-items: center;
        }

        .footer-bottom a {
            margin-left: 1rem;
           
        }

        @media (max-width: 780px) {
            .footer {
                flex-direction: column;
                padding: 1rem;
            }
            .links-col {
                column-count: 1;
            }
            .footer-bottom {
                flex-direction: column;
                align-items: flex-start;
            }
            .footer-bottom a {
                margin: 0.3rem 0 0;
            }
        }






.subdrop { 
    height: 1;
}

.droplink:hover .subdrop { 
    visibility: visible;
    height: auto;
    z-index: 11;
}










.chevron-down{display: block}

/* The submenu links container*/
.subdrop { 
    height: 0;
    border-top: 0;
    min-width: 100%;
    left: 0;
    margin: 0;
    position: absolute;
    text-align: left;
    top: 100%;
    visibility: hidden;
    height: 1px;
    overflow: hidden;
    z-index: 10;
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 0.5rem;
    padding: 1rem;
    margin-top: -.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    background-color: var(--black);

   @media only screen and (max-width: 780px){

visibility: visible;
overflow: visible;
height: auto;

border: 0;
border-radius: 0;
padding: 0;
margin: 0;
position:relative;
align-items: flex-end;
margin-top:1rem;
    gap: 1rem;
    font-size:1.5rem;
    background-color: transparent;
   }

}



.maplibregl-popup{
    transform: none !important;

    position: fixed !important;
    z-index: 9999;
    will-change: unset !important;
    border-width: 2px;
    border-style: solid;
    flex-direction: column-reverse !important;
    border-radius: .25rem;
    top: auto !important;
    width: calc(100% - 2rem) !important;
    left: 1rem !important;
    bottom: 1rem !important;
    max-width: none !important;
    text-align: center;
font-size: 0.875rem;
justify-content: flex-end;
padding: 1rem !important;

    @media only screen and (min-width: 780px) {

      left: 4rem !important;
       width: 100% !important;
    height: max-content !important;
     bottom: 0rem !important;
    top: 4rem !important;
    width: auto !important;
      position: absolute !important;
 text-align: left;
      max-width: 40ch !important;
    }

}


.maplibregl-popup h2{color: currentcolor;}

 .maplibregl-popup-tip{display: none !important}


.maplibregl-popup-content {
    background: transparent !important;
    border-radius:  none !important;
    box-shadow: none !important;
    display: flex
;
    flex-direction: column;
    gap: .5rem;
    align-items: center;
        font-family: var(--mainfont), sans-serif !important;

    @media only screen and (min-width: 780px) {


 align-items: flex-start;

    }
    
}

.maplibregl-popup.earth{

  border-color: var(--earth);
 color: var(--earth);
  background-color: hsl(from var(--earth) h s var(--dark));
  
}

.maplibregl-popup.user{

  border-color: var(--user);
  background-color: hsl(from var(--user) h s var(--dark));
  color: var(--user);
 
}




#map{

width: 100svw;
height: 100svh;

margin: auto;
top: 0px;

border-radius: 0rem;
position: relative;



}

body.body-map {
    height: 100svh;
    overflow: hidden;
    scrollbar-width: none;}

.addressdescription, .maplibregl-popup h2{ font-size: 1.25rem; color: currentcolor;}

.addressdescription, .mapdescription{color: var(--white);}

.mapdescription{

font-size: 1rem;
line-height: 1.3;

 @media only screen and (max-width: 780px) {

  display:none;}

}

.maplibregl-canvas{opacity: 0.7}
.coordinates{ padding:0; font-size: 1rem; background-color: transparent; margin:0;border:0; color: currentcolor; text-decoration: underline}
.portallink{font-family: var(--monofont); padding:1rem;border-radius:.5rem;border:1px solid currentcolor; text-decoration: none; font-size: 1rem;}






  .start-button {
    opacity: 1;
   width: 200px;
    aspect-ratio: 1 / 1;
    border: 1px dashed currentcolor;
    background-color: transparent;
    color: currentcolor;
    border-radius: 99999px;
    display: flex;
    align-items: center;
    justify-content: center;
      animation-name:startButton;
        animation-fill-mode:forwards;
        animation-duration:1.5s;
        animation-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55);
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        transform-origin: 50% 50%;
        text-decoration: none;
        cursor: pointer;
  }

   .start-button:hover {
    background-color: var(--white);
    color: var(--black);
   }

.link-stackpage{
opacity: 1;
   width: max-content;
  padding: 1rem;
    border: 1px dashed currentcolor;
    background-color: transparent;
    color: currentcolor;
    border-radius: .5rem;
    display: flex;
    align-items: center;
    justify-content: center;
 
        position: absolute;
        bottom: 10%;
        left: 50%;
        transform: translateX(-50%);
        text-decoration: none;

        

}
 
 .fadeOut {

      animation-name:fade;
        animation-fill-mode:forwards;
        animation-duration:0.750s;
        animation-timing-function: ease-in-out;

}


 .outbutton {

      animation-name:outButton;
        animation-fill-mode:forwards;
        animation-duration:1s;
        animation-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55);

}
  



.start-button > span { 
    opacity: 1;
   
      animation-name:startButtonText;
        animation-fill-mode:forwards;
        animation-duration:2s;

  }




.container-intro{
  position: absolute;
  top: 2rem;
  left: 2rem;
  display: flex;
  flex-direction: row;
  gap: 2rem;
      align-items: center;
    justify-content: flex-start;
    font-family: var(--monofont);
    font-size: 1rem;
    max-width: 45ch;
}




 .container-animated{
        view-timeline-name:--container-char-animation;
    }



 .word {

    animation-name:FadeInChar;
    animation-timeline:--container-char-animation;
    animation-fill-mode:both;
    animation-duration:1s;
    animation-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55);
    animation-range: contain;
    animation-range-start: -300svh;

}

.content-section .word {

animation-name: FadeInChar;
animation-duration: 1s;
animation-fill-mode: both;
animation-timing-function: linear;

animation-range: unset;
animation-range-start: -200svh;

}






.alternativetitle{color:currentColor;}

/* DETAILS */

details {

width: 100%;
margin: auto;
  margin-block: .5rem;
padding: 0 2rem;
 
  font-size: 1rem;
  font-weight: 400;
  background: oklch(from var(--backgroundcolor) 0.99 0.02 h);
  border-radius: 1rem;
  cursor: pointer;
  

/* https://smoothshadows.com/#djEsMiw1LDAuMDIsMjQsMzIsMCwjMDMwNzEyLCNmM2Y0ZjYsI2ZmZmZmZiwy */
box-shadow: 0px 1px 1px rgba(3, 7, 18, 0.02),
  0px 5px 4px rgba(3, 7, 18, 0.02),
  0px 12px 9px rgba(3, 7, 18, 0.01),
  0px 20px 15px rgba(3, 7, 18, 0.01),
  0px 32px 24px rgba(3, 7, 18, 0.00);




  opacity: 1;
transition: transform 250ms ease-in-out, box-shadow 150ms ease-in-out, background-color 300ms ease-in-out;
border: 1px dashed var(--white);
}








details:hover {






 background-color: hsla(0, 0%, 100%, 3%);

}


summary {
  padding: 2rem 0;
  position: relative; 
  anchor-name: --summary;
font-weight: 600;
display: flex;
flex-direction: row;
align-items: center;
gap: .5rem;
  &::marker {
    content: "";
  }
  
  &::before,
  &::after {
    /* Custom marker dimensions */
    content: "";
    border-block-start: 3px solid currentColor;
    height: 0;
    width: 1rem;
   
    /* Positions the lines */
    inset-block-start: 50%;
    inset-inline-end: 0;
    
    /* Anchor the shape to the summary */
    position: absolute;
    position-anchor: --summary;
    position-area: top end;
  }
  
  /* Rotate just the ::after line to create a "+"" shape */
  &::after {
    transform: rotate(90deg);
    transform-origin: 50%;
  }

  svg {width: 35px;height: auto;}
}

/* Rotate the line when open */
details[open] summary::after {
  transform: rotate(0deg);
}


details[open] {
  
  padding-bottom: 2rem;
}


details[open] p {
  
  animation: animateDown 250ms ease-in-out forwards;
}




/* CARDS */



.card-dots{


font-size: 0.875rem;
line-height: 1.2;

display: flex;
flex-direction: column;
gap:1rem;


background:transparent;

position: relative;   
text-align: center;

--dot-size: .5rem;
--dot-color: grey;

}

.element-image > svg, .element-image > img{width:100%;height:100%;}
.element-image {position:relative;}


/* ----- four pseudo‑elements (top‑left, top‑right, bottom‑left, bottom‑right) ----- */
.card-dots::before,
.card-dots::after,
.card-dots > .element-image::before,
.card-dots > .element-image::after,
.card-dots .dot-bl,
.card-dots .dot-br {
  content:"";
  position:absolute;
  width:var(--dot-size);
  height:var(--dot-size);
  background:var(--dot-color);
  border-radius:50%;
}

/* TL */
.card-dots::before { top:.5rem; left:0; transform:translate(-50%,-50%); }
/* TR */
.card-dots::after  { top:.5rem; right:0; transform:translate(50%,-50%); }


/* TL */
.card-dots > .element-image::before { bottom:0; left:0; transform:translate(-50%,-50%); }
/* TR */
.card-dots > .element-image::after  { bottom:0; right:0; transform:translate(50%,-50%); }

/* BL */
.card-dots .dot-bl { bottom:0; left:0; transform:translate(-50%,50%); }
/* BR */
.card-dots .dot-br { bottom:0; right:0; transform:translate(50%,50%); }

.card-border{padding:1rem; border-radius: .5rem;height: 100%;}






.internal-layout{gap:2rem; flex-wrap: wrap;}

.internal-layout .c6 {

@media only screen and (min-width: 780px) {
  width:calc(50% - 1rem);


}
}


.internal-layout .column {
@media only screen and (max-width: 780px) {
  width:100% !important;

}
.content-card-dots {padding: 2rem;}