@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

/* Webfont: PFRegalDisplayPro-Black */
@font-face {
  font-family: 'PFRegalDisplayProBlack';
  src: url('../fonts/PFRegalDisplayPro-Black.woff') format('woff'), 
       url('../fonts/PFRegalDisplayPro-Black.woff2') format('woff2');
  font-style: normal;
  font-weight: normal;
}

.clearfix:before, .clearfix:after { content: " "; display: table; }
.clearfix:after { clear: both; }
*, ul{
  margin: 0;
  padding: 0;  
  box-sizing: border-box;   
}
::selection{
  background-color: var(--basic);
  -webkit-text-fill-color: #fff; 
  color:#fff !important;
}

/* width */
::-webkit-scrollbar {
  width: var(--space-0-25);
}
/* Track */
::-webkit-scrollbar-track {
  background: var(--grey);
}
/* Handle */
::-webkit-scrollbar-thumb {
  background: var(--greydark);
  transition: opacity 300ms ease-out;
  cursor: pointer;
  opacity: 0.9;
}
/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
  opacity: 1;
}

/* ==========================================================================
   GLOBAL WRAPPER UTILITIES
   ========================================================================== */

/*  
  .rwrap (Root Wrap)
  The root wrapper for major entities (Nodes, Taxonomies, Blocks).
  Used primarily to apply vertical spacing 'padding-block' to the 
  outermost layer of a component.
  
  .gwrap (Gap Wrap)
  Controls the vertical layout structure. 
  Used to apply vertical spacing 'gap' between child elements, 
  such as node fields or sub-components.
  
  .awrap (Alpha 'primary content' Wrap)
  The 'primary content' container. 
  Used to apply styles to that 'primary content' container,
  e.q. if there is smedia it becomes flex.
  
  .wwrap (Width Wrap)
  The constraint wrapper.
  Used to define the max-width, apply horizontal padding (padding-inline), 
  and center the content horizontally (margin-inline: auto).
*/

@view-transition {
  navigation: auto;
}

html{
  font-size: 100%; /* Keep the browser default! This ensures 'rem' is always stable for padding/margin */
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
  background-color: #0E0F24;
  color: #fff;
  font-size: 16px;
}
body{
  font-size: var(--fs-base); /* Apply the fluid base size */
  line-height: 1.6; /* Gold standard for readability */
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  overflow-x: hidden;
}
.layout-container{
  overflow: clip;
}
.serif,
.block-label,
.top-group-nav > span,
.product .name-field-plain{
  font-family: 'PFRegalDisplayProBlack';
  font-style: normal;
  font-weight: normal;
}

/* line heights */
.big{
  line-height: 1.4;
}
h1, h2, h3, .bigg{
  line-height: 1.2;
}
.biggg,
.name-field-links a,
.name-field-files a,
.slink,
.name-field-files a,
.language-switcher-language-url .links a,
.block-wth-primary-local-tasks > ul a,
form label,
form fieldset legend,
nav .menu a{
  line-height: 1.1;
}
.xl,
.article time{
  line-height: 1;
}


/* font-sizes */
.xl,
header .menu--main > .menu a,
header .menu--main > .menu span,
.layout-container .top-group-wrap > .atitle{
  font-size: var(--fs-xl);
}
.biggg,
.block-label,
header .menu--main .menu ul a,
.top-group-nav > span{
  font-size: var(--fs-biggg);
}
.bigg{
  font-size: var(--fs-bigg);
}
.big,
.footop h2,
.product .name-field-plain,
#node-7 .name-field-links a{
  font-size: var(--fs-big);
}
.article .atitle{
  font-size: 1rem;
}
.small,
.breadcrumbs,
.article time,
figcaption,
.description,
table,
.foocopy{
  font-size: var(--fs-small);
}
.small-more,
.slink,
.name-field-links a,
.name-field-files a,
main .form-submit,
.form-type-radio label{
  font-size: var(--fs-small-more);
}
.language-switcher-language-url .links a{
  font-size: var(--fs-stable-big);
}

/* font-weight */
.name-field-links a,
.name-field-files a,
.slink,
.pager li a{
  font-weight: 500;
}
.xbold{
  font-weight: 700;
}
.field__label{
  font-weight: 600;
}
.thin{
  font-weight: 200;
}
h1, h2, h3, h4{
  font-weight: 400;
}

/* colors */
.basic{
  color: var(--basic);
}

/* glass effect */
.glass{
  background-color: var(--dark);
  backdrop-filter: blur(25px) saturate(120%);
}


/* extras, tags & categories */
.extras{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--space);
  flex-wrap: wrap;
}
.name-field-tags > .field-items-wrap{
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-0-25);
  align-items: center;
}
.name-field-tags > .field-items-wrap > .field-item:not(:last-child) a::after{
  content: ",";
}
.name-field-tags > .field-items-wrap{
  line-height: 1;
}
.name-field-tags a::before{
  content: '#';
}


/* tables */
.tablewrap{
  overflow-x: auto;
  overflow-y: hidden;
}
table{
  border: none;
  border-collapse: collapse;
  border-spacing: 0;
  line-height: 1.1;
  font-variant-numeric: tabular-nums; /* tells the browser to use monospaced figures-numbers */
}
table :is(th, td){
  padding: var(--space-0-25);
  /* white-space: nowrap; */
  text-align: center;
  border: 1px solid #ccc;
}
table :is(th, td):first-child{
  text-align: left;
}
/* Editor Table for Columns - Layout */
table.tgrid{
  border: none;
}
table.tgrid th,
table.tgrid td{
  padding-left: 0;
  text-align: left;
  border: none;
  vertical-align: top;
}
table.tgrid th:last-child,
table.tgrid td:last-child{
  padding-right: 0;
}

/* auto line break */
.formatxt > *{
  text-wrap: pretty;
}

/* rows - gaps */
.gwrap,
.txtwrap1,
.scolumn .name-field-smedia > .field-items-wrap{
  display: flex;
  flex-direction: column;   
  align-items: stretch;
}
.name-field-links > .field-items-wrap, 
.name-field-files > .field-items-wrap{
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space);
  flex-wrap: wrap;
}
.gwrap{ 
  gap: var(--space);
}
.nodend.product.gwrap{
  gap: var(--space-2);
}
.foor{
  gap: var(--space-0-75);
}

.txtwrap1,
.scolumn .name-field-smedia > .field-items-wrap{
  gap: var(--space-0-5);
}
.gwrap > div{
  width: 100%; /* needed to occupy all the available space due to '.gwrap flex' */
}

/* margins & paddings */
.rwrap,
.region-footer{
  padding-block: var(--pad-block);
}
.formatxt > *:not(:last-child),
.block-wth-page-title > h1{
  margin-bottom: var(--space-0-5);
}
.block-label{
  margin-bottom: var(--space);
}
.formatxt > * + :is(h2, h3, h4){
  margin-top: var(--space);
}
figcaption{
  margin-top: 5px;
  font-style: italic;
}
.path-user main{
  padding-top: var(--space);
  padding-bottom: var(--space-2);
}
.view-footer,
.view-empty,
.pager{
  margin-top: var(--space);
}
.views-exposed-form{
  margin-bottom: var(--space);
}
.field__label{
  margin-bottom: 5px;
}
.view-footer{
  text-align: center;
}

.wwrap,
.path-user main{
  padding-inline: var(--space);
}
.wwrap,
.path-user main,
.fluid,
.centxtposit > .awrap .txtwrap1 > *:not(.name-field-mtxt){
  margin-inline: auto;
}

/* lined divided items */
.sharewrap{
  position: relative;
  padding-top: var(--space-0-5);
}
.sharewrap::before{
  content: "";
  display: block;
  width: 50%;
  max-width: 250px;
  height: 1px;
  background-color: var(--greylight);
  position: absolute;
  left: 0;
  top: 0;
}

/* max-width */
.wwrap,
.path-user main{
  max-width: var(--w-basic);
}
.awrap .txtwrap1 > *:not(.name-field-mtxt){
  max-width: var(--w-txtmax);
}
.user-login-form{
  max-width: 500px;
}
#block-cta .name-field-body{
  max-width: none;
}

/* links & buttons & submits */
a{
  color: inherit;
  transition: all 300ms ease-out;
  text-decoration: none;
}
.formatxt a:not(.slink){
  text-decoration: underline;
}
.formatxt a:not(.slink),
.name-field-tags a,
.name-field-cat a{
  opacity: 0.85;
}
.formatxt a:not(.slink):hover,
.name-field-tags a:hover,
.name-field-cat a:hover{
  opacity: 1;
}
button{
  all: unset;
  cursor: pointer;
  box-sizing: border-box;
}
.slink,
.name-field-links a,
.name-field-files a,
main .form-submit{
  color: #fff;
  font-style: italic;
  display: inline-block;
  border: none; 
  padding: 10px var(--space-0-25); 
  transition: all 0.2s ease-out; 
  position: relative;
  z-index: 1;
}
.slink,
.name-field-links a{
  padding-right: var(--space-0-75);
}
.slink:hover,
.name-field-links a:hover,
.name-field-files a:hover,
main .form-submit:hover{
  color: var(--dark);
  text-shadow: none;
}
.slink::after,
.name-field-links a::after{
  display: block;
  position: absolute;
  transition: all 300ms ease-out;
  content: "";
  right: var(--space-0-25);
  top: 50%;
  background-color: #fff;
}
.slink::after,
.name-field-links a::after{
  width: 14px;
  height: 14px;
  clip-path: polygon(20% 0%, 100% 0%, 100% 80%, 87% 80%, 87% 23%, 10% 100%, 0% 90%, 77% 13%, 20% 13%);
  transform: translateY(-50%) rotate(90deg);
  transform-origin: center center;
}
.slink:hover::after,
.name-field-links a:hover::after{
  background-color: var(--dark);
}
.slink:hover::after,
.name-field-links a:hover::after{
  transform: translateY(-50%) rotate(45deg);
}

.slink::before,
.name-field-links a::before{
  content: "";
  display: block;
  width: 100%;
  height: 3px;
  position: absolute;
  z-index: -1;
  left: 0;
  bottom: 0;
  transition: height 300ms ease-out;
  background-color: #fff;
}
.slink:hover::before,
.name-field-links a:hover::before{
  height: 100%;
}

.name-field-files a{
  border: 1px solid #fff;
}
.name-field-files a:hover{
  background-color: #fff;
}

/* admin blocks */
.region-help,
.view-empty{
  text-align: center;
}

/* 1. Define the animation for the 6-second auto-hide effect */
@keyframes dismissDrupalMessage {
  0%, 85% {
    /* Stays fully visible and interactive for the first ~5.1 seconds */
    opacity: 1;
    visibility: visible;
  }
  100% {
    /* Fades out smoothly and becomes non-interactive at 6 seconds */
    opacity: 0;
    visibility: hidden;
  }
}
.region-help {
  position: relative;
  z-index: 90;
}

/* 3. Base styles for the Drupal message */
.region-help div[data-drupal-messages]{
  width: 100%;
}
body:not(.user-logged-in) .region-help div[data-drupal-messages]{
  /* Prevent layout jumps for ALL users by removing it from standard document flow */
  position: absolute;
  z-index: 30;
  top: 5px; 
  left: 0;
  /* Apply the 6-second animation, retaining the final 'hidden' state */
  animation: dismissDrupalMessage 6s ease-in-out forwards;
}
/* Optional: Pause the fade-out if the user hovers over the message to read it */
body:not(.user-logged-in) .region-help div[data-drupal-messages]:hover{
  animation-play-state: paused;
}
.region-help div[data-drupal-messages] > div{
  padding: var(--space-0-25);
  background-color: var(--basic);
  color: #fff;
  font-size: var(--fs-stable-normal);
  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.3);
  display: inline-block;
  border-radius: var(--radius);
  margin-inline: 5px;
}
.region-help a{
  text-decoration: underline;
}



.block-wth-primary-local-tasks{
  position: relative;
  z-index: 10;
}

/* Container for the tabs (the ul element) */
.block-wth-primary-local-tasks > ul {
  list-style: none;
  display: flex; 
  justify-content: center;
  overflow-x: auto; 
  border-radius: 8px; 
  padding-top: 5px;
}
.path-user .block-wth-primary-local-tasks > ul{
  justify-content: flex-start;
  margin-bottom: var(--space-0-5);
}
.block-wth-primary-local-tasks > ul li a {
  display: block; 
  padding: var(--space-0-25) var(--space-0-5); 
  margin: 0 2px;
  text-decoration: none; 
  color: #666; 
  background-color: #eee; 
  border: none; 
  border-radius: 5px 5px 0 0;
  white-space: nowrap; 
  position: relative; 
  font-size: var(--fs-small);
  font-weight: 500;
}
.block-wth-primary-local-tasks > ul li a:hover {
  color: var(--dark); 
  background-color: #e9e9e9; 
  border-radius: 5px;
}
.block-wth-primary-local-tasks > ul li a.is-active,
.block-wth-primary-local-tasks > ul li a[aria-current="page"] {
  color: var(--basic); 
  background-color: #ffffff;
  font-weight: 600; 
  box-shadow: 0 -2px 5px rgba(0,0,0,0.2);
  z-index: 1;
}
.block-wth-primary-local-tasks > ul li a.is-active::after,
.block-wth-primary-local-tasks > ul li a[aria-current="page"]::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px; 
  background-color: var(--basic); 
  border-radius: 2px 2px 0 0;
}
.block-wth-primary-local-tasks > ul li a.is-active {
  padding-bottom: calc(var(--space-0-25) + 3px);
}


/* mark */
mark{
  background-color: transparent;
  color: inherit;
  display: inline;
  box-decoration-break: clone;
  background-image: linear-gradient(
                to bottom,
                transparent 60%, 
                #f5ffa4 61%   
            );
  background-repeat: no-repeat;
  background-size: 0% 100%;
  background-position: left center;
  /* --- FIREFOX TRANSITION FIX START --- */
  /* Explicitly define how the background bounding box is calculated to help Firefox */
  background-origin: content-box;
  background-clip: content-box; 
  /* --- FIREFOX TRANSITION FIX END --- */
  /* 2. ANIMATION: Transition the background-size property */
  transition: background-size 1.5s ease-out 0.5s;
  -moz-transition: background-size 1.5s ease-out 0.5s; /* Firefox prefix for safety */
}
mark.actelem{
  background-size: 100% 100%; 
}

/* lists */
.layout-container nav ul{
  list-style: none;
  list-style-type: none;
}
.formatxt ul,
.formatxt ol{
  margin-left: 20px;
}
.centxtalign .formatxt ul,
.centxtalign .formatxt ol{
  list-style-position: inside;
  margin-left: 0;
}
.formatxt ul li,
.formatxt ol li{
  margin: 5px 0;
}
.formatxt ul ol{
  list-style-image: url('../imgs/list-icon-white.svg');
}

/* forms */
.user-login-form{
  max-width: 500px;
}
#css-anchor form{
  text-align: left;
}
.two-cols{
  display: flex;
  flex-wrap: wrap;
  column-gap: var(--space);
  justify-content: space-between;
}
.two-cols > div{
  width: calc(50% - var(--space-0-5));
}
.two-cols + div{
  margin-top: var(--space-0-5);
}

form label:not(.option),
form fieldset legend{
  display: block;
  margin-bottom: 5px;
}
form label.form-required::after,
form fieldset[required="required"] legend::after{
  content: "*";
}
form input,
progress{
  accent-color: var(--basic);
}
form input:not(.form-submit),
form textarea,
form select{
  display: block;
  color: inherit;
  transition: all 300ms ease-out;
  font-size: 17px;
  font-family: inherit;
  line-height: 1.1;
  background-color: var(--dark);
  border: 1px solid #fff;
  padding: 8px;
  border-radius: var(--radius);
  max-width: 100%;
}
form input:not(.form-submit):focus{
  border-color: var(--basic);
  outline: none;
  box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);
}
form select{
  width: auto;
  min-width: 150px;
}
form .form-item:not(:last-child){
  margin-bottom: var(--space-0-5);
  position: relative;
}
form .description{
  margin-top: 5px;
}
.form-type-radio{
  display: grid;
  grid-template-columns: var(--space-0-5) 1fr;
  grid-template-rows: auto auto;
  column-gap: var(--space-0-25);
  row-gap: 0;
  align-items: center;
}
.form-type-radio input[type="radio"]{
  width: var(--space-0-5);
  height: var(--space-0-5);
  grid-column: 1 / 2;
  grid-row: 1 / 2;
  justify-self: start;
}
.form-type-radio label{
  grid-column: 2 / 3;
  grid-row: 1 / 2;
  margin-bottom: 0;
}
.form-type-radio .description{
  grid-column: 2 / 3;
  grid-row: 2 / 3;
}
/* Toggle Switcher checkbox */
/* 1. The Container Grid */
.form-type-checkbox {
  display: grid;
  /* Column 1 is for the Toggle, Column 2 for text */
  grid-template-columns: 50px 1fr; 
  grid-template-rows: auto auto;
  column-gap: 12px;
  row-gap: 0;
  align-items: center;
}
/* 2. The Switcher (Input) */
.form-type-checkbox input[type="checkbox"]{
  grid-column: 1 / 2;
  grid-row: 1 / 2;
  /* Toggle Styles */
  appearance: none;
  -webkit-appearance: none;
  width: 50px;
  height: 26px;
  background-color: var(--greylight);
  border-radius: 50px;
  border-bottom: none;
  position: relative;
  cursor: pointer;
  transition: background-color 0.3s;
  margin-top: 4px; /* Align with the first line of the label */
  border: none;
}
.form-type-checkbox input[type="checkbox"]:checked {
  background-color: #4CAF50;
}
/* 3. The Toggle Knob */
.form-type-checkbox input[type="checkbox"]::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  background-color: white;
  border-radius: 50%;
  transition: transform 0.3s;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.form-type-checkbox input[type="checkbox"]:checked::after {
  transform: translateX(24px);
}
/* 4. The Label */
.form-type-checkbox label{
  grid-column: 2 / 3;
  grid-row: 1 / 2;
  margin: 0;
  cursor: pointer;
}
/* 5. The Description */
.form-type-checkbox .description {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
  font-size: var(--fs-small);
  color: var(--grey);
  margin-top: 0;
}

input[type="file"] {
  font-family: inherit;
  font-size: inherit;
  background-color: transparent;
  cursor: pointer;
}
input[type="file"]::file-selector-button{
  background-color: var(--basic);
  color: inherit;
  border: none;
  margin-right: 15px;
  padding: 7px 15px;
  border-radius: 0.5rem;
  transition: background-color 0.3s ease;
  content: "";
  cursor: pointer;
} 
input[type="file"]::file-selector-button:hover {
  background-color: var(--greylight);
}

form fieldset{
  border: none;
  margin: 0;
  padding: 0;
  min-width: 0;
}
form fieldset legend{
  padding: 0;
}
form fieldset .form-type-radio:not(:last-child){
  margin-bottom: 10px;
}

form > p:not(:last-child){
  margin-bottom: var(--space-0-5);
}

form .description a{
  text-decoration: underline;
}

.form-item-pass{
  position: relative;
}
#edit-pass{
  padding-right: 32px;
  box-sizing: border-box;
}
.password-toggle-btn{
  position: absolute;
  right: 0;
  bottom: 1px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 5px;
  color: var(--greydark); /* Icon color */
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.3s;
}
.password-toggle-btn:hover{
  color: #000;
}
.password-toggle-btn svg{
  width: 22px;
  height: 22px;
}

.views-exposed-form{
  display: flex;
  justify-content: center;
}
.views-exposed-form .form-item{
  margin-bottom: 0;
}
.layout-container .form-submit{
  cursor: pointer;
  font-size: inherit;
  color: var(--dark);
}
.layout-container .form-submit:hover{
  background-color: var(--basic);
}
.views-exposed-form,
.views-exposed-form select{
  text-align: center;
}


/* pager */
.pager ul{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-0-25);
}
.pager li{
  list-style: none;
}


/* various */
main,
.article{
  position: relative;
}
.layout-container .formatxt hr{
  margin: var(--space-0-5) 0;
  height: 2px;
  border: none;
  background: var(--greylight);
  display: block;
  clear: both;
}
.article time{
  display: block;
}
@keyframes draw{  
  to {
    stroke-dashoffset: 0;
  }
}
del{
  opacity: 0.75;
}
span[data-big-pipe-placeholder-id]{
  display: none;
}
#css-anchor .views-exposed-form input{
  display: none;
}

/* edit links */
.media > .contextual{
  display: none;
}
.view .dropbutton-wrapper{
  display: none;
}
.user-logged-in .view .dropbutton-wrapper{ /* Operations links */
  display: inline-block;
  background-color: #eee;
  padding: 5px;
  border-radius: var(--radius);
  box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.3);
  font-size: 12px;
  margin-top: 5px;
}
.user-logged-in .view .dropbutton-wrapper a{
  text-decoration: none;
}
.user-logged-in .view .dropbutton-wrapper a:hover{
  color: var(--basic);
}

/* side media */
.smedia > .awrap{
  display: flex;
  gap: var(--space);
  align-items: flex-start;
}
.smedia.nodend > .awrap{
  overflow: visible; /* for sticky swrap2 position */
}
.smedia > .awrap > div{
  width: calc(50% - var(--space-0-5))
}
.smedia.nodend.product > .awrap > .swrap2{
  width: calc(33.34% - var(--space-0-5));
}
.smedia.nodend.product > .awrap > .txtwrap2{
  width: calc(66.65% - var(--space-0-5));
}
.smedia.nodend.product .swrap2{
  position: sticky;
  top: calc(65px + var(--space-0-5));
  align-self: flex-start;
}
.smedia.nodend.product .name-field-smedia img{
  max-height: calc(100vh - 110px);
}
.sslide.nodend.product .name-field-smedia img{
  max-height: calc(100vh - 145px);
}
.article.smedia.spos-alt > .awrap{
  flex-direction: row-reverse;
}

/* Thumbnails pager, Slideshow */
.sslide-pagerimg .flickity-thumb-nav {
  margin-top: 10px; 
}
.sslide-pagerimg .flickity-thumb-nav .thumb-cell{
  width: 90px;  
  height: 90px;
  cursor: pointer;
  opacity: 0.6; 
  transition: opacity 0.3s ease;
}
.sslide-pagerimg .flickity-thumb-nav .thumb-cell:not(:last-child){
  margin-right: 10px;
}
.sslide-pagerimg .flickity-thumb-nav .thumb-cell img{
  width: 100%;
  height: 100%;
  object-fit: cover; /* Prevents image distortion */
  max-width: none;
  margin: 0;
  display: block;
}
.sslide-pagerimg .flickity-thumb-nav .thumb-cell.is-nav-selected {
  opacity: 1;
  border: 2px solid var(--basic);
}

/* mtxts - multicolumn */
.name-field-mtxt > .field-items-wrap{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding-block: var(--space-0-5);
}
.nolay .name-field-mtxt > .field-items-wrap > .field-item,
.article[data-lay="12"] .name-field-mtxt > .field-items-wrap > .field-item{
  width: 25%;
  padding: var(--space-0-5);
}
.article[data-lay="12"] .name-field-mtxt > .field-items-wrap > .field-item{
  width: 33.33%;
}
.nolay .name-field-mtxt > .field-items-wrap > .field-item:not(:first-child),
.article[data-lay="12"] .name-field-mtxt > .field-items-wrap > .field-item:not(:first-child){
  border-left: 1px solid #fff;
}

.bkgmedia-fullheight[data-lay="5"]{
  display: block;
  height: calc(100vh - 120px);
  height: calc(100svh - 120px);
}
.article[data-lay="5"] .name-field-mtxt > .field-items-wrap{
  flex-direction: column;
  justify-content: space-around;
  flex-wrap: nowrap;
  padding: 0;
}
.article[data-lay="5"] div:not(.field-item){
  height: 100%;
}
.article[data-lay="5"] .name-field-mtxt > .field-items-wrap > .field-item{
  opacity: 0;
  transition: transform 600ms ease-out, opacity 600ms ease-out;
}
.article[data-lay="5"] .name-field-mtxt > .field-items-wrap > .field-item:nth-child(1){
  transform: translateX(-200px);
}
.article[data-lay="5"] .name-field-mtxt > .field-items-wrap > .field-item:nth-child(2){
  text-align: right;
  transform: translateX(200px);
}
.article[data-lay="5"] .name-field-mtxt > .field-items-wrap > .field-item:nth-child(3){
  text-align: center;
  transform: unset;
}
.article[data-lay="5"] .name-field-mtxt > .field-items-wrap > .field-item.actelem{
  opacity: 1;
}
.article[data-lay="5"] .name-field-mtxt > .field-items-wrap > .field-item:nth-child(1).actelem,
.article[data-lay="5"] .name-field-mtxt > .field-items-wrap > .field-item:nth-child(2).actelem{
  transform: translateX(0);
}
.article[data-lay="5"] .name-field-mtxt > .field-items-wrap > .field-item:nth-child(2).actelem{
  transition-delay: 500ms;
}
.article[data-lay="5"] .name-field-mtxt > .field-items-wrap > .field-item:nth-child(3).actelem{
  transition-delay: 1s;
}

.article[data-lay="6"] > .awrap .atitle{
  align-self: flex-start;
  position: relative;
}
.article[data-lay="6"] > .awrap .atitle::after{
  content: "";
  display: block;
  height: 1px;
  width: 150px;
  position: absolute;
  left: calc(100% + var(--space-0-5));
  bottom: 40%;
  background-color: #fff;
}
.article[data-lay="6"] .name-field-mtxt > .field-items-wrap{
  gap: var(--space-0-5) 2%;
}
.article[data-lay="6"] .name-field-mtxt > .field-items-wrap > .field-item{
  width: 32%;
  padding: var(--space-0-5);
  background-color: rgba(255, 255, 255, 0.1);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.article[data-lay="6"] .name-field-mtxt > .field-items-wrap > .field-item > p:last-child{
  min-height: 46px;
  line-height: 1.1;
}

.article[data-lay="7"].rwrap{
  padding-bottom: 0;
}
.article[data-lay="7"] > .awrap{
  position: relative;
  padding-block: var(--pad-block);
}
.article[data-lay="7"] > .awrap::before,
.article[data-lay="7"] > .awrap::after{
  content: "";
  display: block;
  height: 1px;
  width: calc(100% - var(--space-2));
  background-color: #fff;
  position: absolute;
  left: var(--space);
}
.article[data-lay="7"] > .awrap::before{
  top: 0;
}
.article[data-lay="7"] > .awrap::after{
  bottom: 0;
}

.article[data-lay="8"] > .awrap .atitle{
  align-self: flex-start;
  position: relative;
  margin-bottom: var(--space);
}
.article[data-lay="8"] > .awrap .atitle::after{
  content: "";
  display: block;
  height: 1px;
  width: 50vw;
  position: absolute;
  right: 0;
  bottom: 0;
  background-color: #fff;
}

.article[data-lay="10"] > .awrap .atitle{
  display: inline-block;
  position: relative;
}
.article[data-lay="10"] > .awrap .atitle::before,
.article[data-lay="10"] > .awrap .atitle::after{
  content: "";
  display: block;
  height: 1px;
  width: 300px;
  position: absolute;
  right: 0;
  bottom: 40%;
  background-color: #fff;
}
.article[data-lay="10"] > .awrap .atitle::before{
  right: calc(100% + var(--space-0-5));
}
.article[data-lay="10"] > .awrap .atitle::after{
  left: calc(100% + var(--space-0-5));
}

.article[data-lay="11"] > .wwrap{
  max-width: none;
  padding-inline: 0;
}
.article[data-lay="11"] > .wwrap .txtwrap1{
  margin-left: calc((100vw - var(--w-basic)) / 2 );
  padding-left: var(--space);
}
.article[data-lay="11"] .name-field-smedia :is(img, video){
  width: 100%;
}

.article[data-lay="12"] .name-field-mtxt{
  background-color: rgba(255, 255, 255, 0.1);
  padding-block: var(--space-0-5);
}

/* breadcrumbs */
.breadcrumbs{
  text-align: center;
  border-bottom: 1px solid #fff;
  padding: 10px var(--space-0-5);
  text-transform: uppercase;
  line-height: 1;
}
.breadcrumbs > a:first-child{
  opacity: 0.7;
}
.breadcrumbs > a:first-child:hover{
  opacity: 1;
}

/* Custom styles */

#node-23 > .awrap{
  position: relative;
  z-index: 1;
}
#node-23 > .wwrap{
  padding-inline: var(--space);
}
#node-23 > .awrap::before{
  content: "";
  display: block;
  width: calc(100% - var(--space-2));
  height: calc(100% + var(--space-2));
  position: absolute;
  left: var(--space);
  top: -50px;
  background-color: rgba(255, 255, 255, 0.1);
}
.name-field-infoblo .rwrap{
  padding-block: 0;
}

.block-blog,
.block-h-blog{
  position: relative;
  padding-top: var(--space-2);
}
.block-blog::before{
  content: "";
  display: block;
  width: 80%;
  max-width: 900px;
  height: 1px;
  background-color: #fff;
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
}


/* Group field */
.top-group-wrap{
  display: flex;
  align-items: center;
  gap: var(--space-0-5) var(--space);
  position: absolute;
  left: 0;
  top: 0;
  width: 50%;
  z-index: 10;
  line-height: 1;
}
.top-group-nav{
  display: flex;
  align-items: center;
}
.top-group-nav > span{
  display: block;
  cursor: pointer;
  transition: color 300ms ease-out;
  color: rgba(255, 255, 255, 0.5);
  position: relative;
}
.top-group-nav > span:not(:first-child){
  padding-left: 35px;
}
.top-group-nav > span:not(:first-child)::before{
  content: "";
  display: block;
  width: 15px;
  height: 2px;
  background-color: rgba(255, 255, 255, 0.5);
  position: absolute;
  left: 10px;
  top: 50%;
}
.top-group-nav > span.top-group-nav-active,
.top-group-nav > span:hover{
  color: rgba(255, 255, 255, 1);
}
.group-wrap{
  position: relative;
}
.grouppy .txtwrap1{
  margin-top: 120px;
}

/* .centxtalign */
.centxtalign > .awrap .txtwrap1{
  text-align: center;
}
.centxtalign > .awrap .formatxt img{
  margin-inline: auto;
}
.centxtalign .name-field-tags > .field-items-wrap{
  justify-content: center;
}
.centxtalign .sharewrap::before{
  left: 50%;
  transform: translateX(-50%);
}


/* scroll effect*/
.txtwrap2.effe > .txtwrap1{ 
  /* the effect applying to child because vertical transform confuse the viewport-elements edges */
  opacity: 0;
  transform: translateY(150px);
  transform-origin: center center;
  transition: transform 1s ease-out, opacity 1s ease-out;
}
.txtwrap2.effe.actelem > .txtwrap1{
  opacity: 1;
  transform: translateY(0);
}
.domino{
  opacity: 0;
  transform: translateX(100px);
  transform-origin: center center;
  transition: transform 0.5s ease-out, opacity 0.5s ease-out;
}
.domino.effe.actelem{
  opacity: 1;
  transform: translateX(0);
} 
.swrap1.effe{
  opacity: 0;
  transform: translateX(150px);
  transition: transform 1s ease-out, opacity 1s ease-out;
} 
.spos-alt .swrap1.effe{
  transform: translateX(-150px);
}
.smedia .swrap1.effe.actelem{
  opacity: 1;
  transform: translateX(0);
}
.atitle.effe::before,
.atitle.effe::after{
  transform: scale(0);
  transform-origin: center center;
  transition: transform 300ms ease-out;
}
.atitle.effe.actelem::before,
.atitle.effe.actelem::after{
  transform: scale(1);
  transition-delay: 500ms;
}



/* header */
header{
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  background-color: var(--dark);
  border-bottom: 1px solid #fff;
  z-index: 200;
}
.user-logged-in.toolbar-horizontal header{
  top: 60px;
}
main{
  margin-top: 120px;
}
.region-header{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-0-5);
  padding-block: var(--space-0-5);
  transition: padding 300ms ease-out;
  position: relative;
  z-index: 20;
}
.scrolled .region-header{
  padding-block: var(--space-0-25);
}

/* header logo */
.logowrap{
  width: 160px;
  text-align: center;
  font-weight: bold;
  line-height: 1;
  transition: width 300ms ease-out;
}
.scrolled header .logowrap{
  width: 100px;
}
.logowrap img, 
.logowrap svg{
  display: block;
  width: 100%;
  height: auto;
}

.language-switcher-language-url .links a{
  display: inline-block;
  position: relative;
  padding-top: 5px;
  padding-bottom: 5px;
}
.language-switcher-language-url .links a::after{
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background-color: #fff;
  transition: width 300ms ease-out;
}
.language-switcher-language-url .links a.is-active::after,
.language-switcher-language-url .links a:hover::after{
  width: 100%;
}

.navwrap{
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  height: 100svh;
  transition: opacity 500ms ease-out;
  overflow: auto;
  background-color: var(--dark);
  opacity: 0;
  z-index: -10;
  pointer-events: none;
  padding-top: 118px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.scrolled .navwrap{
  padding-top: 68px;
}
.opennav .navwrap{
  opacity: 1;
  z-index: 10;
  pointer-events: all;
}
.navwrap > .wwrap{
  width: 100%;
}

header .menu--main > .menu a,
header .menu--main > .menu span{
  display: inline-block;
  padding-block: 10px;
  line-height: 1;
  opacity: 0.6;
}
header .menu--main > .menu > li{
  padding-block: 10px;
  line-height: 1;
  border-bottom: 1px solid #fff;
  text-align: right;
}
header .menu--main > .menu  > .menu-item--expanded > span{
  transition: opacity 300ms ease-out;
  cursor: pointer;
  position: relative;
  padding-right: 30px;
}
header .menu--main > .menu  > .menu-item--expanded > span::after{
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  background-color: #fff;
  clip-path: polygon(45% 0%, 55% 0%, 55% 45%, 100% 45%, 100% 55%, 55% 55%, 55% 100%, 45% 100%, 45% 55%, 0% 55%, 0% 45%, 45% 45%);
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  transition: all 300ms ease-out;
}
header .menu--main > .menu  > .menu-item--expanded.item-open > span::after{
  clip-path:polygon(45% 45%, 55% 45%, 55% 45%, 100% 45%, 100% 55%, 55% 55%, 55% 55%, 45% 55%, 45% 55%, 0% 55%, 0% 45%, 45% 45%);
}
header .menu--main > .menu a:is(:hover, :focus):hover,
header .menu--main > .menu span:is(:hover, :focus):hover,
header .menu--main > .menu > .menu-item--active-trail > a:not([href*='#']),
header .menu--main > .menu  > .menu-item--expanded.item-open > span,
header .menu--main > .menu a.is-active:not([href*='#']),
header .menu--main > .menu > .menu-item--expanded:hover > a,
header .menu--main > .menu > .menu-item--expanded:hover > span{
  opacity: 1;
}

.menu-item--expanded > ul {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s ease-out;
  /* Optional: Ensure no default spacing makes the menu look partially open */
  margin-top: 0;
  margin-bottom: 0;
}

/* Step 2: Show the submenu when the parent li gets the 'item-open' class */
.menu-item--expanded.item-open > ul {
  /* Set this value to be larger than the expected height of your submenu */
  max-height: 200px; 
}

/* Target the unordered list container */
header .menu--main > .menu{
  list-style-type: none; 
  counter-reset: list-counter; 
}
header .menu--main > .menu > li{
  counter-increment: list-counter; 
  position: relative;
}
header .menu--main > .menu > li::before{
  content: counter(list-counter, decimal-leading-zero) ". ";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--fs-biggg);
}

/* navicon & totop */
.totop{
  position: fixed;
  z-index: 80;
  transition: all 0.3s ease-out;
  opacity: 0;
  right: 0;
}
.navicon,
.totop{
  cursor: pointer;
  overflow: hidden;
}
.navicon{
  width: 60px;
  height: 40px;
}
.totop{
  width: 60px;
  height: 50px;
  bottom: 0;
  transform: translateY(100%);
}
.scrolled .totop{
  transform: translateY(0);
  opacity: 1;
}


/* navicon */
.navicon{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.navicon::before,
.navicon::after{
  content: " ";
}
.navicon::before,
.navicon::after,
.navicon span{
  position: absolute;
  display: block;
  height: 2px;
  transition: all 500ms ease-out;
  background-color: #fff;
}
.navicon::before,
.navicon::after{
  left: 20%;
  width: 60%;
}
.navicon::before{
  top: 22%;
}
.navicon span{
  top: 45%;
  left: 0;
  width: 100%;
}
.navicon::after{
  top: 68%;
}
.opennav .navicon::after,
.opennav .navicon::before{
  top: 25%;
  left: 47%;
  width: 3px;
  height: 50%;
  transform: rotate(45deg);
  transform-origin: center center;
}
.opennav .navicon::after{
  transform: rotate(-45deg);
}
.opennav .navicon::before{
  transform: rotate(45deg);
}
.opennav .navicon span{
  width: 0;
}
.user-logged-in .navwrap{
  top: 60px;
}


/* language-switcher */
.language-switcher-language-url .links{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  list-style: none;
  gap: var(--space-0-25);
}
.navwrap .language-switcher-language-url .links{
  justify-content: flex-start;
}
.language-switcher-language-url .links a{
  position: relative;
  font-family: monospace;
  text-transform: uppercase;
  white-space: nowrap;
  width: 2ch;
  overflow: hidden;
  display: block;
}
.language-switcher-language-url > .contextual{
  display: none;
}


/* Quotes */
blockquote{
  font-style: italic;
  position: relative;
}
blockquote::before,
blockquote > *:last-child::after{
  content: "";
  display: inline-block;
  width: 20px;
  height: 15px;
  clip-path: polygon(12% 3%, 36% 3%, 29% 44%, 44% 44%, 44% 97%, 56% 97%, 56% 46%, 68% 3%, 92% 3%, 85% 44%, 100% 44%, 100% 97%, 0% 97%, 0% 46%);
  background-color: #fff;
  opacity: 0.9;
}
blockquote::before{
  position: absolute;
  left: -21px;
  top: -7px;
}
blockquote > *:last-child::after{
  position: relative;
  right: -7px;
  bottom: -7px;
  transform: rotate(180deg);
}

/* totop */
.totop::after{
  content: " ";
  width: 36px;
  height: 36px;
  display: block;
  position: absolute;
  top: 50%;
  transition: all 300ms linear;
  background-color: #fff;
  left: 50%;
  transform: translate(-50%, -50%);
}
.totop::after{
  clip-path: polygon(50% 21%, 100% 71%, 92% 79%, 50% 37%, 8% 79%, 0% 71%);
}


/* footer */
.footop,
footer .menu--main .menu{
  display: flex;
}
.footop{
  gap: 2%;
}
.footop > div,
.foocopy{
  width: 32%;
}
footer .slogo svg path{
  stroke:#fff !important;
} 
footer .logowrap{
  margin-inline: auto;
}
.footop h2{
  margin-bottom: var(--space-0-5);
}
.footop .name-field-mtxt > .field-items-wrap{
  padding: 0;
  justify-content: space-between;
  gap: var(--space-0-5);
}
.foocopy{
  text-align: center;
  border-top: 1px solid #fff;
  margin-inline: auto;
  margin-top: var(--space);
  padding-top: var(--space);
}
.foocopy a{
  text-decoration: underline;
}


@media (max-height: 799px), (max-width: 1149px) {
  .region-header{
    padding-block: var(--space-0-25);
  }
  header .logowrap{
    width: 120px;
  }
  main{
    margin-top: 77px;
  }
  .bkgmedia-fullheight[data-lay="5"]{
    display: block;
    height: calc(100vh - 77px);
    height: calc(100svh - 77px);
  }
}

@media screen and (max-width: 1600px){
  .article[data-lay="11"] > .wwrap .txtwrap1{
    margin-left: 0;
  }
}

@media screen and (max-width: 1150px){
  .headr{
    display: none;
  }
  .wwrap,
  .path-user main{
    padding-inline: var(--space-0-5);
  }
  #node-23 > .awrap::before{
    width: calc(100% - var(--space));
    left: var(--space-0-5);
  }
  /* mtxts - multicolumn */
  .name-field-mtxt > .field-items-wrap,
  .footop{
    flex-direction: column;
  }
  .footop{
    align-items: center;
    gap: var(--space);
    text-align: center;
  }
  .footop > div, .foocopy{
    width: auto;
  }
  .footop h2{
    margin-bottom: var(--space-0-25);
  }
  footer .socialswrap{
    justify-content: center;
  }
  .nolay .name-field-mtxt > .field-items-wrap,
  .article[data-lay="12"] .name-field-mtxt > .field-items-wrap{
    align-items: center;
  }
  .nolay .name-field-mtxt > .field-items-wrap > .field-item,
  .article[data-lay="12"] .name-field-mtxt > .field-items-wrap > .field-item{
    width: auto;
    padding: var(--space-0-5);
  }

  .nolay .name-field-mtxt > .field-items-wrap > .field-item:not(:first-child),
  .article[data-lay="12"] .name-field-mtxt > .field-items-wrap > .field-item:not(:first-child){
    border-left: none;
    position: relative;
  }
  .nolay .name-field-mtxt > .field-items-wrap > .field-item:not(:first-child)::before,
  .article[data-lay="12"] .name-field-mtxt > .field-items-wrap > .field-item:not(:first-child)::before{
    content: " ";
    display: block;
    width: 200px;
    height: 1px;
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
  }
  .article[data-lay="6"] .name-field-mtxt > .field-items-wrap{
    align-items: flex-start;
  }
  .article[data-lay="6"] .name-field-mtxt > .field-items-wrap > .field-item{
    width: 500px;
    max-width: 100%;
  }
  .article[data-lay="6"] .name-field-mtxt > .field-items-wrap > .field-item > p:last-child{
    min-height: unset;
  }
  .article[data-lay="6"] > .awrap .atitle::after{
    width: 100px;
  }
  .article[data-lay="7"] > .awrap::before, .article[data-lay="7"] > .awrap::after {
    width: calc(100% - var(--space));
    left: var(--space-0-5);
  }
  .article[data-lay="10"] > .awrap .atitle::before,
  .article[data-lay="10"] > .awrap .atitle::after{
    width: var(--space);
  }
  .article[data-lay="11"] > .wwrap{
    max-width: none;
    padding-inline: 0;
  }
  .article[data-lay="11"] > .wwrap .txtwrap1{
    margin-left: 0;
    padding-left: var(--space-0-5);
  }
}
@media screen and (max-width: 850px){
  #css-anchor .smedia > .awrap{
    flex-direction: column;
    gap: var(--space-0-5);
    align-items: stretch; /* Forces children to 100% width in a column */
  }
  .smedia > .awrap > div,
  .layout-container .smedia.nodend.product > .awrap > div{
    width: 100%;
  }
  .smedia.nodend.product .swrap2{
    position: static;
  }
  /* taxid-14 = 'Our work' */
  #css-anchor .taxid-14.smedia > .awrap,
  #css-anchor .wt-node.smedia > .awrap{
    flex-direction: column-reverse;
  }
  .top-group-wrap{
    width: auto;
    position: relative;
    top: 0;
    left: 0;
    flex-wrap: wrap;
  }
  .grouppy .txtwrap1{
    margin-top: var(--space-0-5);
  }
  .rwrap:not(.scolumn) .swrap2{
    position: static;
  }
  .block-wth-primary-local-tasks > ul li a{
    padding-inline: var(--space-0-25);
  }
  .two-cols{
    flex-direction: column;
  }
  .two-cols > div{
    width: 100%;
  }
}

@media screen and (max-width: 400px){
  .navicon{
    width: 40px;
  }
  header .logowrap {
    width: 100px;
  }
}