

:root {
    --bs-border-radius: 0.375rem;
    --bs-btn-border-radius: 1rem;
}

/* cookies */
:root {
    --messageFontSize: 12pt;
    --messageFontWeig: normal;
    --messageTextColor: #000;
    --messageLineHeight: 1.2rem;
    --btnFontSize: 10pt;
    --btnFontWeight: normal;
    --btnMargin: 0 15px 0 15px;
    --btnPadding: 6px 0px 2px 0px;
    --btnRadius: 0;
    --btnAcceptBorder: 0;
    --btnAcceptTextColor: #000;
    --btnAcceptBg: none transparent;
    --btnAcceptBgHover: none transparent;
    --btnRejectTextColor: #000;
    --btnRejectBorder: 0;
    --btnRejectBgHover: none transparent;
    --btnInfoBorder: 0;
    --btnInfoTextColor: #000;
    --btnInfoBg: none transparent;
    --btnInfoBgHover: none transparent;
    --btnSettingsAcceptBorder: 1px solid #000;
    --btnSettingsAcceptTextColor: #fff;
    --btnSettingsAcceptBg: #000;
    --btnSettingsAcceptBgHover: #fff;
    --btnSettingsSelectBorder: 0;
    --btnSettingsSelectTextColor: #000;
    --btnSettingsSelectBg: none transparent;
    --btnSettingsSelectBgHover: none transparent;
    --buttonsPadding: 0 0 0 0;
    --messagePadding: 0 0 0 0;
}


@font-face {    /* logo */
    font-family: 'polysans_median';
    src: url('../fonts/polysans-median-webfont.woff2') format('woff2'),
        url('../fonts/polysans-median-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {    /* titles */
    font-family: 'polysans_slim';
    src: url('../fonts/PolySans-Slim.woff2') format('woff2'),
        url('../fonts/PolySans-Slim.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}


@font-face {    /* text */
    font-family: 'Aeonik-Regular';
    src: url('../fonts/Aeonik-Regular.woff2') format('woff2'),
        url('../fonts/Aeonik-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {    /* text Italic */
    font-family: 'Aeonik-Regular-Italic';
    src: url('../fonts/Aeonik-Regular.woff2') format('woff2'),
        url('../fonts/Aeonik-Regular.woff') format('woff');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {    /* text Bold */
    font-family: 'Aeonik-Bold';
    src: url('../fonts/Aeonik-Regular.woff2') format('woff2'),
        url('../fonts/Aeonik-Regular.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}


body { font-family: 'Aeonik-Regular'; font-size: 15pt; }
p { font-size: 15pt; text-align: left; }
p.text-small { font-size: 15pt; }
p.text-big { font-size: 18pt; }

h1, h2, h3, h4, h5, h6 { font-family: 'polysans_slim'; line-height: normal; }

a { position: relative; color: #000; text-decoration: none;}

a.link-animated::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 4px;
    border-radius: 4px;
    background-color: #18272F;
    bottom: 0;
    left: 0;
    transform-origin: right;
    transform: scaleX(0);
    transition: transform .3s ease-in-out;
}

a.link-animated:hover::before { transform-origin: left; transform: scaleX(1); }

.btn {
    --bs-btn-border-radius: 4rem;
}
.container-pf-lg { max-width: 1215px;}
.container-pf-lg-2 { max-width: 1136px;}
.max-width-305 { max-width: 305px;}

.logo-font-plasafe { font-family: 'polysans_median'; font-size: 30.75pt; z-index: 1001;}
.logo-header-svg { margin-top: 16px; margin-bottom: 16px;}
.button-menu-toggler { padding-left: 0; padding-right: 0; margin: 0; border: 0;}
.button-menu-toggler:hover,
.button-menu-toggler:focus,
.button-menu-toggler:active { box-shadow: none; }
.button-menu-text { font-size: 18pt; }

h1 { font-size: 70pt; margin: 0; }
h2 { font-size: 60pt; margin: 0; padding-bottom: 70px; }
h3 { font-size: 45pt; margin: 0; padding-bottom: 35px; }
h4 { font-size: 18pt; margin: 0; padding-bottom: 20px; }

h1, h2, h3, h4 { 
    -webkit-hyphens: auto;
    -moz-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
    /* for unsupported browsers */
    word-wrap: break-word;
}

.hero-section { /* height: 100svh; */ }

.pt-05rem { padding-top: 05rem !important; }
.pb-06rem { padding-bottom: 06rem !important; }
.pb-10rem { padding-bottom: 10rem !important; }

.big-link { font-size: 45pt; margin: 0; padding-bottom: 20px;}
.link { text-decoration: none; color: #000; }
.link-white { text-decoration: none; color: #fff; }

ul { list-style: none; padding-left: 0;}
li { font-size: 15pt; }
li a.link-animated::before { height: 2px; bottom: -4px; }

ul.style-list { list-style: initial; padding-left: 2rem; }
ul.style-list li,
ol.style-list li { margin-bottom: 1rem; }

/* footer */
.text-body-secondary { font-size: 15pt; }
.text-body-secondary a.link-animated::before { height: 2px; bottom: -4px;}


/* menu full screen */
.menuFullScreen.collapse:not(.show) {display: block; }
.menuFullScreen { position: fixed; width: 100%; height: 0; left: 0; top: 0; /* z-index: 10000;*/ opacity: 0; padding-top: 0; padding-bottom: 0; overflow-y: hidden; }
.menuFullScreen .column-left { height: 100dvh; background-repeat: no-repeat; background-size: cover; 
    transform: translateY(-110%); 
    transition: transform 0.5s ease-out;}
.menuFullScreen .column-right { height: 100dvh; 
    transform: translateY(110%); 
    transition: transform 0.5s ease-out; }

.menuFullScreen.show { width: 100%; height: 100dvh; opacity: 1; background: #000; z-index: 1000; color: #fff; 
    transition-duration: 0.5s, 0.5s;
    transition-delay: 0s, 0s;
    transition-property: height, opacity;
    transition-timing-function: ease, ease;  }

.menuFullScreen.show .column-menu { width: 50%; height: 100dvh; }
.menuFullScreen.show .column-left { height: 100dvh; background-repeat: no-repeat; background-size: cover; transform: translateY(0%);}
.menuFullScreen.show .column-right { height: 100dvh; transform: translateY(0%);  }

.nav-row { height: 72px; padding: 28px 30px 8px 30px; margin-right: 20px;}

.closeMenu {
    -webkit-animation: fade-out 0.7s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
            animation: fade-out 0.7s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
}

.menuFullScreen.open { 
    -webkit-animation: fade-in 0.7s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
            animation: fade-in 0.7s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
    height: 100vh; width: 100%; padding-top: 200px; padding-bottom: 100px;
}

.menuFullScreen .navbar-menu-general { margin-bottom: 2.9rem;}
.menuFullScreen .navbar-menu-general li.nav-item { }
.menuFullScreen .navbar-menu-general li.nav-item:last-child { border-bottom: none transparent; }
.menuFullScreen .navbar-menu-general li.nav-item a.nav-link { font-family: 'polysans_slim'; font-size: 45px; line-height: 60px; text-decoration: none; padding: 0; color: var(--menutop-color);}
.menuFullScreen .navbar-menu-general li.nav-item a.nav-link:hover { color: var(--menutop-hover-color); }

.menuFullScreen .navbar-menu-general li.nav-item {
    transition: 0.3s ease;
    background: #000;
    color: #ffffff;
    font-size: 20px;
    text-decoration: none;
    border-top: 4px solid #000;
    border-bottom: 4px solid #000;
    padding: 6px 0;
    margin: 0 20px;
}
.menuFullScreen .navbar-menu-general li.nav-item:hover {
    border-top: 4px solid #ffffff;
    border-bottom: 4px solid #ffffff;
    padding: 6px 0; 
}

.menuFullScreen .navbar-menu-languages { margin-bottom: 2.9rem; }
.menuFullScreen .navbar-menu-languages li.nav-item a.nav-link { font-family: 'polysans_slim'; font-size: 27px; line-height: 37px; padding: 0; }
.menuFullScreen .navbar-menu-contact { margin-bottom: 0; }
.menuFullScreen .navbar-menu-contact li.nav-item a.nav-link { font-family: 'polysans_slim'; font-size: 18px; line-height: 28px; padding: 0; }

.navbar-menu-close { top: 5%; right: 10%;}


.slide-top {
	-webkit-animation: slide-top 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
            animation: slide-top 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}
.slide-origen {
    -webkit-animation: slide-origen 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
            animation: slide-origen 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}

.arrow-down { border: none; background-color: transparent; }
.arrow-down img { max-width: 35px; margin-top: 16px; }
.arrow-down-animated { 
    -webkit-animation: uparrow 0.6s infinite alternate ease-in-out; 
            animation: uparrow 0.6s infinite alternate ease-in-out; 
}


.revealing-image {
	/* Create View Timeline */
	view-timeline-name: --revealing-image;
	view-timeline-axis: block;

	/* Attach animation, linked to the  View Timeline */
	animation: linear reveal both;
	animation-timeline: --revealing-image;

	/* Tweak range when effect should run*/
	animation-range: entry 20% cover 50%;
}

/* animation menu fade-in */
@-webkit-keyframes fade-in {
    0% {opacity: 0;}
    100% {opacity: 1;}
}
@keyframes fade-in {
    0% {opacity: 0;}
    100% {opacity: 1;}
}

/* animation menu fade-out */
@-webkit-keyframes fade-out {
    0% {opacity: 1; height: 100vh; }
    100% {opacity: 0; height: 0vh;}
}
@keyframes fade-out {
    0% {opacity: 1; height: 100vh;}
    100% {opacity: 0; height: 0vh;}
}

/* animation logo slide-top */
@-webkit-keyframes slide-top {
    0% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }
    100% {
        -webkit-transform: translateY(-110px);
                transform: translateY(-110px);
    }
}
@keyframes slide-top {
    0% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }
    100% {
        -webkit-transform: translateY(-110px);
                transform: translateY(-110px);
    }
}

/* animation logo slide-origen */
@-webkit-keyframes slide-origen {
    0% {
        -webkit-transform: translateY(-110px);
                transform: translateY(-110px);
    }
    100% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }
}
@keyframes slide-origen {
    0% {
        -webkit-transform: translateY(-110px);
                transform: translateY(-110px);
    }
    100% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }
}

@keyframes reveal {
	from {
		opacity: 0;
		clip-path: inset(45% 20% 45% 20%);
	}
	to {
		opacity: 1;
		clip-path: inset(0% 0% 0% 0%);
	}
}

/* cookies */
.cc-window-title { display: none; }
.cc-window .cc-window-message p { padding: 0 0 0 0; }

.cc-window .cc-window-buttons button.cc-btn-accept { border-bottom: 2px solid #000; position: relative; }
.cc-window .cc-window-buttons button.cc-btn-accept:hover { color: #000; border-bottom: 2px solid #fff; }

.cc-window .cc-window-buttons button.cc-btn-reject { border-bottom: 2px solid #fff; }
.cc-window .cc-window-buttons button.cc-btn-reject:hover { color: #000; border-bottom: 2px solid #000; }

.cc-window .cc-window-buttons button.cc-btn-info { border-bottom: 2px solid #fff; }
.cc-window .cc-window-buttons button.cc-btn-info:hover { border-bottom: 2px solid #000; }

/* cookies modal preferences */
.cc-modal-content { padding: 0 24px 0 24px; margin-bottom: 0; }
.cc-modal-window .cc-window-settings-buttons { padding: 16px 0 16px 0; }
.cc-window-settings-buttons button.cc-btn-settings-accept { border-radius: 25px; padding: 6px 20px; margin-right: 0; }
.cc-window-settings-buttons button.cc-btn-settings-accept:hover {color: #000; }
.cc-window-settings-buttons button.cc-btn-settings-select { border-bottom: 2px solid #fff; }
.cc-window-settings-buttons button.cc-btn-settings-select:hover { border-bottom: 2px solid #000; }


/* control display by default */
.d-only-desktop-block { display: block; }
.d-only-desktop-flex { display: flex; }
.d-only-mobile-block { display: none; }


/* --- responsive -------------------------------------------------------------- */
/* grid-breakpoints:
    xs: 0
    sm: 576px
    md: 768px
    lg: 992px
    xl: 1200px
    xxl: 1400px
*/

/* 'sm' applies to x-small devices (portrait phones, less than 576px) sm: 576px */
/* 'md' applies to small devices (landscape phones, less than 768px) */
@media (max-width: 768px) {
    .container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        --bs-gutter-x: 2.0rem; }

    
    main.container { padding: 0 !important; }
    section.container { padding-right: calc(var(--bs-gutter-x) * .5); padding-left: calc(var(--bs-gutter-x) * .5);}


    .container-pf-lg { max-width: inherit; }
    .container-pf-lg-2 { max-width: inherit; }

    h1 { font-size: 54pt; }
    h2 { font-size: 44pt; padding-bottom: 50px; }
    h3 { font-size: 32pt; }

    .big-link { font-size: 30pt; padding-bottom: 7px; }
    
    
    .pt-5-mobile { padding-top: 3rem !important; }
    .pb-06rem { padding-bottom: 03rem !important; }
    .pb-10rem { padding-bottom: 05rem !important; }
}

/* 'sm' applies to x-small devices (portrait phones, less than 576px) sm: 576px */
/* 'md' applies to small devices (landscape phones, less than 768px) */
/* 'lg' applies to medium devices (tablets, less than 992px) */
@media (min-width: 0) and (max-width: 992px) { 
    .d-only-desktop-block,
    .d-only-desktop-flex { display: none; }
    .d-only-mobile-block { display: block; }

    .menuFullScreen.show .column-left { display: none; }
    .menuFullScreen.show .column-right { width: 100%; }

    .menuFullScreen .navbar-menu-languages { margin: 0 20px; margin-bottom: 2.9rem; }
    .menuFullScreen .navbar-menu-contact { margin: 0 20px; margin-bottom: 0; }
}


/* 'lg' applies to medium devices (tablets, less than 992px) */
@media (min-width: 768px) and (max-width: 992px) { 

}


/* 'xl' applies to large devices (desktops, less than 1200px) */
@media (min-width: 992px) and (max-width: 1200px) {

}


/* 'xxl' applies to x-large devices (large desktops, less than 1400px) */
@media (min-width: 1200px) and (max-width: 1400px) { 

}


/* XX-Large devices (larger desktops, 1400px and up) xxl: 1400px */
@media (min-width: 1400px) and (max-width: 1520px) { 

}


/* wide screens */
@media (min-width: 1999px) { 

}