/* Color Variables */
:root {
    color-scheme: light;
    
    --plum: #450a18;  /* Main plum color */
    --dark-plum: #410A18;  /* Darker shade for header and footer */
    --darker-plum: #290611;
    --text-color: #F2CCBB;  /* Text color */
    --pale-text-color: #f0e5df;  /* Text color */
    --white: #FFFFFF; /* Standard white */
    --black: #000000; /* Standard black */

    --dark-plum-90: rgba(65, 10, 29, 0.90); /* Dark plum with 90% opacity */
    --plum-90: rgba(69, 10, 29, 0.90); /* Plum with 90% opacity */
  
    --fade-start: 30%; /* the dark part of the carousel fade */
    --fade-end: 50%;   /* the transparent part of the carousel fade */
}
  
/* fade-in animations */
/* Hide the content initially */
.main-content, header {
    opacity: 0;            /* Start fully transparent */
    transform: translateY(20px); /* Start slightly below */
    animation: fadeIn 1s ease-out forwards; /* Animate to full opacity */
}
/* Keyframes for fade-in effect */
@keyframes fadeIn {
    to {
        opacity: 1;          /* Fully visible */
        transform: translateY(0); /* Move to original position */
    }
}
@keyframes scaleAndFade {
    0% {
        transform: scale(1); /* Start at normal size */
        opacity: 1; /* Fully visible */
    }
    50% {
        transform: scale(1.01); /* Grows to 120% */
        opacity: 0.6; /* Becomes semi-transparent */
    }
    100% {
        transform: scale(1); /* Stays at 120% */
        opacity: 1; /* Returns to fully visible */
    }
}

@keyframes scaleFade {
    0% { transform: scale(1) translateZ(0) }
    100% { transform: scale(1.2) translateZ(0); }
}




/* Global Styles */
html, body {
    overflow-x: hidden; /* Prevents horizontal scrolling; on mobile removes bottom white bar when scrolling */
}

body {  
    min-height: 100vh;
    margin: 0; /* Removes default margin */
    padding: 0;  
    scroll-behavior: smooth;
    font-family: "Bellefair", serif;
    font-weight: 400; /* Specifies the thickness of the font. '400' is normal weight, while '700' is bold. */
    font-style: normal; /* Defines the style of the font. 'Normal' means the text is upright, not italic or oblique. */
    color: var(--text-color);
    -webkit-tap-highlight-color: transparent; /* Removes blue tap highlight */ 
    position: relative; /* Set this to allow positioning of the pseudo-element */
    text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
    transition: transform 0.5s ease;
}

/* Veil effects */
body::before {
    content: ""; /* Creates the pseudo-element */
    width: 100%; /* Cover the full width */
    height: 110vh; /* Cover the entire body content as it grows */
    position: fixed; /* Fixes it to the viewport, so it scrolls with the page */
    top: 0; /* Starts from the top */
    left: 0;
    background-image: url('./images/base-background.png'); /* Replace with your image path */
    background-size: cover; /* Makes the image cover the entire page */
    background-repeat: no-repeat; /* Prevents the image from repeating */
    background-position: center; /* Centers the image */
    pointer-events: none; /* Ensure it doesn't block interactions with content */
}
.veil-background {
    width: 100%; /* Cover the full width */
    height: 110vh; /* Cover the entire body content as it grows */
    position: fixed; /* Fixes it to the viewport, so it scrolls with the page */
    top: 0; /* Starts from the top */
    left: 0;
    background-color: var(--dark-plum); /* The veil's color */
    opacity: 0.8; /* Semi-transparent veil */
    pointer-events: none; /* Ensure it doesn't block interactions with content */
    will-change: transform, opacity;
}
.veil-black {
    width: auto; /* Cover the full width */
    height: 110vh; /* Cover the entire body content as it grows */
    position: fixed; /* Fixes it to the viewport, so it scrolls with the page */
    top: 0; /* Starts from the top */
    left: 160px;
    right: 160px;
    background-color: var(--dark-plum); /* The veil's color */
    opacity: 0.5;
    pointer-events: none; /* Ensure it doesn't block interactions with content */
    transition: 
        right 0.5s ease, 
        left 0.5s ease; /* Smoothly animate height and padding */
    will-change: transform, opacity;
  }
.veil-plum {
    width: auto; /* Cover the full width */
    height: 110vh; /* Cover the entire body content as it grows */
    position: fixed; /* Fixes it to the viewport, so it scrolls with the page */
    top: 0; /* Starts from the top */
    left: 170px;
    right: 170px;
    background-color: var(--plum); /* The veil's color */
    opacity: 0.70;
    pointer-events: none; /* Ensure it doesn't block interactions with content */
    transition: 
        right 0.5s ease, 
        left 0.5s ease; /* Smoothly animate height and padding */
    will-change: transform, opacity;
  }
#beam {
    width: auto; /* Cover the full width */
    height: 150px; /* Cover the entire body content as it grows */
    position: fixed; /* Fixes it to the viewport, so it scrolls with the page */
    top: 0; /* Starts from the top */
    left: 170px;
    right: 170px;
    background: rgba(65, 10, 29, 0);
    background: linear-gradient(180deg,rgba(65, 10, 29, 1) 21%, rgba(255, 255, 255, 0) 100%);
    pointer-events: none; /* Ensure it doesn't block interactions with content */
    z-index: 999;
    animation-delay: 0.1s;
    transition: 
        height 0.5s ease, 

        left 0.5s ease, 
        right 0.5s ease, 

        justify-content 0.5s ease,
        padding 0.5s ease;
  }

img {
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
}

a {
    color: var(--text-color);
    text-decoration: none;
}



/* Header Styling */
#main-header {
    position: fixed;
    top: 0;
    width: auto;
    clip-path: inset(0 0 0 0);
    height: 150px;
    right: 170px;
    left: 170px;
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.15);
    background: rgba(65, 10, 29, 0);
    background: linear-gradient(360deg,rgba(65, 10, 29, 1) 79%, rgba(255, 255, 255, 0) 100%);padding: 0px 40px;
    display: flex; /* Activates Flexbox for layout. */
    flex-direction: row;
    justify-content: space-between; /* Distributes items with space between them. */
    align-items: center; /* Aligns items at the center vertically. */
    z-index: 1000; /* Ensures it stays above other elements */
    animation-delay: 0.1s;
    transition: 
        height 0.5s ease, 

        left 0.5s ease, 
        right 0.5s ease, 

        justify-content 0.5s ease,
        padding 0.5s ease;
  }

.logo {
    font-size: 85px;
    font-family: 'Ruthie';
    padding-right: 40px;
    transition: 
        font-size 0.5s ease, 
        text-shadow 0.5s ease, 

        position 0.5s ease, 
        left 0.5s ease, 
        top 0.5s ease;
  }

.logo:hover {
    text-shadow: 0px 8px 8px rgba(0, 0, 0, 0.95);
/*    animation: scaleAndFade 1.0s ease-in-out forwards; */
  }

.nav-lang {
    display: flex;
    flex-direction: column;
    align-content: space-between;
    gap: 60px;
    transition: gap 0.5s ease;
}

.language-icons {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    gap: 15px;
    transition: gap 0.5s ease;
}

.language-icons img {
    width: auto;
    height: 15px;
    cursor: pointer;
    transition: height 0.5s ease;
  }

.language-icons .nav {
    font-size: 15px;
  }

.nav {
    white-space: nowrap;
    height: 15px;
    font-size: 18px;
    font-weight: bold;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    transition: 
        transform 0.5s ease, 
        text-shadow 0.5s ease, 

        font-size 0.5s ease, 
        width 0.5s ease;
  }

.nav:hover {
    transform: scale(1.2); /* Enlarge the paragraph */
    text-shadow: 0px 8px 8px rgba(0, 0, 0, 0.5);
  }

.nav img {
    opacity: 0.3;
    transition: 
        opacity 0.5s ease,

        transform 0.5s ease; 
  }

.nav:hover img {
    opacity: 1.0;
  }

.nav p {
    transition: font-size 0.5s ease;
  }

.nav-links {
    width: 100%; /* Makes the links span full width */
    font-size: 26px;
    display: flex;
    gap: 30px;
    transition: gap 0.5s ease;
  }

.nav-links .nav {
    font-size: 26px;
    transition:
        transform 0.5s ease, 
        opacity 0.5s ease;
}

/*highlight the current tab - decided inside each page's html*/
#current {
    color: var(--pale-text-color);
}



/* shrinked header */
#main-header.shrink, #beam.shrink {
    height: 100px; /* Shrinks to 100px */
}

#main-header.shrink .logo {
    font-size: 50px;
}

#main-header.shrink .nav-lang, 
#main-header.shrink .language-icons {
    gap: 20px;
}

#main-header.shrink .language-icons img {
    height: 12px;
}

#main-header.shrink .nav-links {
    gap: 24px;
}

#main-header.shrink .nav-links .nav {
    font-size: 22px;
}





/* Main Section Styling */
.main-content {
    min-height: 80vh;
    margin-right: 170px;
    margin-left: 170px;
    padding-top: 150px;
    overflow: hidden; /* good for mobile; not necessary for desktop */
    z-index: 1;
    animation-delay: 0.4s;
    transition: 
        margin-right 0.5s ease, 

        margin-left 0.5s ease; /* Smoothly animate height and padding */
  }












/* Footer Styling */
#main-footer {
    position: relative;
    bottom: 0;
    width: auto;
    height: fit-content;
    margin-right: 170px;
    margin-left: 170px;
    /*box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.15);*/
    background: rgb(65,10,29);
    background: linear-gradient(180deg, rgba(65,10,24,1) 0%, rgba(65,10,24,1) 35%, rgba(65,10,24,1) 100%);
    padding: 20px 40px;
    display: flex;
    flex-direction: column;
    z-index: 1000;
    transition: 
        margin-left 0.5s ease, 
        margin-right 0.5s ease,

        flex-direction 0.5s ease,
        justify-content 0.5s ease,
        align-items 0.5s ease;
  }

.footer-content {
    padding-top: 30px;
    padding-bottom: 50px;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.05);
    transition: flex-direction 0.5s ease;
  }

.footer-desc {
    text-justify: center;
    text-align: center;
    font-size: 19px;
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
.footer-desc p {
    width: 300px;
  }

  /*.footer-socials .nav, .footer-policies {
    font-size: 29px;
  }*/

.footer-socials, .footer-policies {
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: 50px;
/*    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.5);*/
    transition: 
        padding-left 0.5s ease,

        flex-direction 0.5s ease,
        justify-content 0.5s ease,
        padding-top 0.5s ease,
        padding-bottom 0.5s ease;
  }

.footer-socials img {
    width: 30px;
    height: auto;
    box-shadow: none;
  }

  .copyright {
    padding-top: 20px;
    align-self: center;
    transition: 
        font-size 0.5s ease,
  }







/* SCREEN SIZE VARIANTS */
/* where right side is gone */
@media (max-width: 1200px) {

    .veil-black, .veil-plum, #beam {
        right: 10px;
    }

    #main-header, #beam {
        left: 0px;
        right: 10px;
    }

    .main-content {
        margin-right: 10px;
    }

    #main-footer {
        margin-left: 0px;
        margin-right: 10px;
    }
}



/* 768 */
/* where both sides are gone */
@media (max-width: 865px) {

    .veil-black {
        left: 0px;
    }
    .veil-plum, #beam {
        left: 10px;
    }

    #main-header, #beam {
        justify-content: end;
        height: 200px;
        left: 10px;
      }

    .logo {
        position: absolute;
        left: 40px;
        top: 20px;
      }

    #main-header:not(.shrink) .logo {
        left: 30px;
        top: 10px;
    }

    .nav-lang{
        gap: 110px;
    }

    .nav p {
        font-size: 0px;
    }
    #main-header.shrink .nav p {
        font-size: 15px;
    }

    .main-content {
        margin-left: 10px;
      }

    #main-footer {
        margin-left: 10px;
      }

    .footer-socials {
        padding-left: 10px;
    }
}



/* when the ToC shrinks */
@media (max-width: 685px) {

    #main-header.shrink, #beam.shrink {
        height: 150px; /* Shrinks to 150px */
    }
    #main-header.shrink .nav-lang {
        gap: 70px;
    }
    #main-header.shrink .nav-links {
        gap: 15px;
    }

    /* Footer Styling */
    .footer-content {
        flex-direction: column;
      }

    .footer-socials {
        flex-direction: row;
        padding-top: 30px;
        padding-bottom: 55px;
    }

    .footer-policies {
        width: 100vw;
        flex-direction: row;
        justify-content: space-evenly;
        gap: 0px;
    }
}



@media (max-width: 580px) {
    #main-header, #beam {
        padding: 0px 15px;
    }
    #main-header.shrink, #beam.shrink {
        /*padding: 0px 27px;*/
        padding: 0px 40px;
    }
}
@media (max-width: 542px) {
    #main-header:not(.shrink) .nav-links .nav:nth-of-type(1) {
        opacity: 0.0;
    }

    #main-header.shrink .logo {
        left: 20px;
        top: 10px;
    }
}



/* for mobile */
/* 360px for my android */
/*@media (pointer: coarse)*/
@media (max-width: 450px) 
{
    :root {
        --plum: #450a18;  /* Main plum color */
        --dark-plum: #410A18;  /* Darker shade for header and footer */
        --darker-plum: #290611;
        --text-color: #F2CCBB;  /* Text color */
        
        --fade-start: 70%;
        --fade-end: 90%;
      }

    .veil-black, .veil-plum {
        left: 10px;
    }
    .veil-plum {
        opacity: 0.5;
    }

    #main-header, #beam {
        height: 150px;
        justify-content: center;
        padding: 0px 20px;
    }
    #main-header.shrink, #beam.shrink {
        height: 120px;
        padding: 0px 20px;
    }

    .logo {
        font-size: 60px;
        padding-right: 20px;
    }
    #main-header.shrink .logo {
        font-size: 45px;
    }

    .nav-lang {
        width: 100%;
        gap: 90px;
    }
    #main-header.shrink .nav-lang {
        width: 100%;
        gap: 65px;
    }

    .language-icons, 
    #main-header.shrink .language-icons {
        gap: 5px;
    }

    .nav-links {
        gap: 0px;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
/*    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.5);*/
      }

    .nav-links .nav {
        font-size: 18px;
    }
    #main-header.shrink .nav-links .nav {
        font-size: 16px;
    }

    #main-header:not(.shrink) .nav-links .nav:nth-of-type(1) {
        opacity: 1.0;
    }

    #main-header.shrink .nav p {
        font-size: 0px;
    }

    .copyright {
        font-size: 12px;
    }
}













@font-face {
    font-family: 'Ruthie'; /* The name you want to use for the font */
    src: url('./fonts/Ruthie-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
