/*
 Theme Name:     dsgourakis
 Theme URI:      https://www.dsgourakis.com/
 Description:    Made by Dsgourakis
 Author:         Dimitris Sgourakis
 Author URI:     https://www.dsgourakis.com/
 Version:        1.0.3
*/

/*------------------------------------------------------------

#RESET

--------------------------------------------------------------*/

:root {
    --white: #FFF;
    --black: #000;
    --background: #F6F6F6;
    --primary: #003E5F;
    --secondary: #005B8B;
    --spacing-small: clamp(8px, 2vw, 32px);
    --spacing-medium: clamp(12px, 3vw, 48px);
    --spacing-large: clamp(16px, 4vw, 64px);
    --spacing-xl: clamp(20px, 8vw, 128px);
    --font-size-note:  12px;
    --font-size-description:  14px;
    --font-size-small:  clamp(15px, 1.11vw, 16px);
    --font-size-medium: clamp(16px, 1.25vw, 18px);
    --font-size-large:  clamp(18px, 1.39vw, 20px);
    --font-weight-regular: 400;
    --font-weight-bold: 700;
    --font-weight-black: 800;
    --font-size-h1: clamp(42px, 4.72vw, 60px);
    --font-size-h2: clamp(36px, 4.03vw, 52px);
    --font-size-h3: clamp(28px, 3.33vw, 48px);
    --font-size-h4: clamp(22px, 2.36vw, 36px);
    --font-size-h5: clamp(18px, 1.67vw, 24px);
    --font-size-h6: clamp(16px, 1.39vw, 20px);
}

* {
    box-sizing: border-box;
}

body {
    background: var(--background);
    color: var(--black);
    font-family: 'Inter', sans-serif;
    font-size: var(--font-size-small);
    margin: 0;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--black);
    font-family: 'Inter', sans-serif;
    margin: 0;
    font-weight: var(--font-weight-black);
}

p, .font-size-small, .font-size-medium, .font-size-large {
    font-weight: var(--font-weight-regular);
    margin: 0;
}

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

img, video {
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
}

button:not(:disabled) {
    cursor: pointer;
}

.nooverflow {
    overflow: hidden !important;
    touch-action: none;
}

.relative{
    position: relative;
}

.center {
    text-align: center;
}

.justify-center {
    display: flex;
    justify-content: center;
}

.align-center {
    display: flex;
    align-items: center;
}

.nopad {
    padding: 0 !important;
}

.menu {
    display: flex;
    margin: 0;
    padding: 0;
    align-items: center;
}

.menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.bg {
    background-color: var(--background);
}

.c-white {
    color: var(--white);
}

.c-black {
    color: var(--black);
}

.c-primary {
    color: var(--primary);
}

.c-secondary {
    color: var(--secondary);
}

.fw-400 {
    font-weight: var(--font-weight-regular);
}

.fw-700 {
    font-weight: var(--font-weight-bold);
}

.fw-800 {
    font-weight: var(--font-weight-black);
}

h1, .h1 {
    font-size: var(--font-size-h1);
}

h2, .h2 {
    font-size: var(--font-size-h2);
}

h3, .h3 {
    font-size: var(--font-size-h3);
}

h4, .h4 {
    font-size: var(--font-size-h4);
}

h5, .h5 {
    font-size: var(--font-size-h5);
}

h6, .h6 {
    font-size: var(--font-size-h6);
}

.font-size-small {
    font-size: var(--font-size-small);
}

.font-size-medium {
    font-size: var(--font-size-medium);
}

.font-size-large {
    font-size: var(--font-size-large);
}

.mx-small {
    margin-inline: var(--spacing-small);
}

.mx-medium {
    margin-inline: var(--spacing-medium);
}

.mx-large {
    margin-inline: var(--spacing-large);
}

.mx-xl {
    margin-inline: var(--spacing-xl);
}

.my-small {
    margin-block: var(--spacing-small);
}

.my-medium {
    margin-block: var(--spacing-medium);
}

.my-large {
    margin-block: var(--spacing-large);
}

.my-xl {
    margin-block: var(--spacing-xl);
}

.px-small {
    padding-inline: var(--spacing-small);
}

.px-medium {
    padding-inline: var(--spacing-medium);
}

.px-large {
    padding-inline: var(--spacing-large);
}

.px-xl {
    padding-inline: var(--spacing-xl);
}

.py-small {
    padding-block: var(--spacing-small);
}

.py-medium {
    padding-block: var(--spacing-medium);
}

.py-large {
    padding-block: var(--spacing-large);
}

.py-xl {
    padding-block: var(--spacing-xl);
}

.btn {
    border-radius: var(--spacing-small);
    background: var(--secondary);
    display: flex;
    padding: 0.75em 1.5em;
    align-items: center;
    gap: 8px;
    color: var(--white);
    text-decoration: none !important;
}

button.btn {
    border: none;
    cursor: pointer;
    font-size: var(--font-size-small);
}

/*------------------------------------------------------------

#BREADCRUMBS

--------------------------------------------------------------*/

#crumbs {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    padding-block: 24px;
}

#crumbs a,
#crumbs span.current {
    color: var(--black);
    font-size: var(--font-size-small);
    font-weight: var(--font-weight-regular);
    line-height: 130%;
}

#crumbs span.current {
    opacity: 50%;
}


/*------------------------------------------------------------

#HEADER

--------------------------------------------------------------*/

.navbar {
    background: var(--background);
}

.header-logo {
    background-color: var(--white);
    padding: 1em;
}

.header-logo .logo {
    max-height: 60px;
}

.nav li a,
.nav li a:hover,
.nav li a:focus {
    text-decoration: none;
}

.nav.main li a {
    font-family: 'Inter', sans-serif;
    font-weight: var(--font-weight-regular);
    font-size: var(--font-size-small);
    line-height: 100%;
    text-transform: uppercase;
}

/*------------------------------------------------------------

#HERO

--------------------------------------------------------------*/




/*------------------------------------------------------------

#PAGES

--------------------------------------------------------------*/





/*------------------------------------------------------------

#FOOTER

--------------------------------------------------------------*/




/*------------------------------------------------------------

#CONTACT FORM

--------------------------------------------------------------*/




/*------------------------------------------------------------

#MEDIA QUERIES

--------------------------------------------------------------*/

/*
// Mobile First
*/

/*
// Extra small devices (portrait phones, less than 576px)
// No media query for `xs` since this is the default in Bootstrap
*/

/* Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) {

}

/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {

}

/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {

}

/* X-Large devices (large desktops, 1200px and up) */

@media (min-width: 1200px) {

    .navbar {
        display: flex;
        justify-content: space-between;
    }

    .menu {
        height: 100%;
    }

    nav.navbar {
        height: 100%;
    }

    ul.navbar-nav.main {
        display: flex;
        padding: 0;
        list-style: none;
        align-items: center;
        height: 100%;
    }

    .navbar-nav.main li {
        display: flex;
        align-items: center;
        position: relative;
    }

    .navbar-nav.main > li {
        padding: 12px 16px;
        border-radius: 8px;
        transition: background 0.2s ease-in-out;
    }

    .navbar-nav.main > li:hover {
        background: rgba(0, 0, 0, 0.2);
    }

    .navbar-nav.main > li > a {
        color: var(--white);
    }

    .header-wrapper.bg .navbar-nav.main > li > a {
        color: var(--black);
    }

    .navbar-nav.main .menu-item-has-children::after {
        content: '';
        display: inline-block;
        width: 18px;
        height: 18px;
        margin-left: 6px;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='M14.3267 6.45172C14.4914 6.28697 14.7585 6.28697 14.9232 6.45172C15.088 6.61647 15.088 6.88353 14.9232 7.04828L9.29825 12.6733C9.1335 12.838 8.86644 12.838 8.70169 12.6733L3.07669 7.04828C2.91194 6.88353 2.91194 6.61647 3.07669 6.45172C3.24144 6.28697 3.50849 6.28697 3.67325 6.45172L8.99997 11.7784L14.3267 6.45172Z' fill='white'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-size: contain;
    }

    .header-wrapper.bg .navbar-nav.main .menu-item-has-children::after {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='M14.3267 6.45172C14.4914 6.28697 14.7585 6.28697 14.9232 6.45172C15.088 6.61647 15.088 6.88353 14.9232 7.04828L9.29825 12.6733C9.1335 12.838 8.86644 12.838 8.70169 12.6733L3.07669 7.04828C2.91194 6.88353 2.91194 6.61647 3.07669 6.45172C3.24144 6.28697 3.50849 6.28697 3.67325 6.45172L8.99997 11.7784L14.3267 6.45172Z' fill='black'/%3E%3C/svg%3E");
    }

    ul.sub-menu {
        opacity: 0;
        visibility: hidden;
        list-style: none;
        position: absolute;
        background: var(--white);
        border-radius: 16px;
        box-shadow: -8px 32px 64px 0 rgba(0, 0, 0, 0.2);
        padding: 24px 16px;
        margin-top: 10px;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        transform: translateY(-10px);
        transition: opacity 0.3s ease-in-out,
        visibility 0.3s ease-in-out,
        transform 0.3s ease-in-out;
        width: 334px;
        top: 100%;
        left: 0;
        z-index: 9;
    }

    .navbar-nav.main .menu-item-has-children:hover > ul.sub-menu,
    .navbar-nav.main ul.sub-menu:hover {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .navbar-nav.main ul.sub-menu li {
        padding: 12px 16px;
        width: 100%;
        border-radius: 8px;
        transition: background 0.2s ease-in-out;
    }

    .navbar-nav.main ul.sub-menu li:hover {
        background: rgba(0, 0, 0, 0.05);
    }

    .navbar-nav.main ul.sub-menu li a {
        color: var(--black);
        font-weight: 800;
    }

    .navbar-toggle {
        display: none;
    }

    .mobile-menu-toggle {
        display: none;
    }
    
}

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

}



/*
// Desktop First
*/

/* X-Large devices (large desktops, less than 1400px) */
@media (max-width: 1400px) {

}

/* Large devices (desktops, less than 1200px) */
@media (max-width: 1200px) {

    .header-wrapper {
        padding: 0;
    }

    .menu-wrapper {
        background: var(--white);
        padding: 6px 10px;
        border-bottom: 1px solid #111;
    }

    .navbar {
        display: flex;
        flex-wrap: nowrap;
        gap: 24px;
        justify-content: space-between;
    }

    .navbar .menu {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        bottom: 0;
    }

    .mobile-nav-wrapper {
        display: flex;
        justify-content: space-between;
    }

    .navbar-toggle {
        background: none;
        border: none;
    }

    .navbar-toggle svg  {
        width: 25px;
        height: 25px;
    }

    .navbar-toggle svg path {
        fill: var(--black);
    }

    .burger path {
        transition: transform 0.5s ease, opacity 0.5s ease;
        transform-origin: center;
    }

    .nooverflow .burger path:nth-child(1) {
        opacity: 0;
    }

    .nooverflow .burger path:nth-child(2) {
        transform: rotate(45deg) translate(5px, 5px);
    }

    .nooverflow .burger path:nth-child(3) {
        opacity: 0;
    }

    #full-menu-container {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        background: rgba(0, 0, 0, 0.5);
        position: absolute;
        top: 100%;
        right: 0;
        left: 0;
        bottom: 0;
        height: calc(100vh - 100%);
        visibility: hidden;
        opacity: 0;
        transition: visibility 0.3s ease-in, opacity 0.3s ease-in;
    }

    .nooverflow #full-menu-container {
        visibility: visible;
        opacity: 1;
    }

    .nav.main {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
        background: var(--white);
        padding-inline: var(--spacing-small);
        padding-top: 10%;
        height: 100%;
        width: 80%;
        position: relative;
        left: -100%;
        transition: left 0.3s ease-in;
    }

    .nooverflow .nav.main {
        left: 0;
    }

    .nav.main li a {
        color: var(--black);
        font-size: var(--font-size-large);
        font-weight: bold;
    }

    .navbar-nav.main li.menu-item-has-children {
        display: flex;
        justify-content: space-between;
        flex-direction: column;
        position: relative;
        width: 100%;
    }

    .menu-item-has-children button.mobile-menu-toggle {
        border: none;
        background: none;
        position: absolute;
        right: 0;
    }

    .mobile-menu-toggle svg {
        width: 20px;
        height: 20px;
        fill: var(--black);
    }

    ul.sub-menu {
        display: none;
        background: #ececec;
        padding: 10px;
        margin-top: 24px;
    }

    .nav.main li.menu-item-has-children.mobile-menu-open .sub-menu {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

}

/* Medium devices (tablets, less than 992px) */
@media (max-width: 992px) {

}

/* Small devices (landscape phones, 576px and up) */
@media (max-width: 768px) {

}

/* X-Small devices (portrait phones, less than 576px) */
@media (max-width: 576px) { 
   
}