body {
    font-family: "Hiragino Kaku Gothic ProN", sans-serif;
}

/* Apply font family to all text elements */
* {
    font-family: "Hiragino Kaku Gothic ProN", sans-serif;
}

/* Ensure headings use the same font family */
h1, h2, h3, h4, h5, h6 {
    font-family: "Hiragino Kaku Gothic ProN", sans-serif;
}

/* Ensure buttons and inputs use the same font family */
button, input, textarea, select {
    font-family: "Hiragino Kaku Gothic ProN", sans-serif;
}

#home .hero-wrapper {
    background-image: url(./images/home_bg_pattern.png);
    background-position: top left;
    background-position-y: -100px;
    background-repeat: no-repeat;
}
.hero {
    background-image: url(./images/top-hero.png);
    background-size: 100%;
    background-position: top center;
    background-repeat: no-repeat;
    min-height: 120vh;
}
#home-company {
    background-image: url(./images/company/header.png);
    background-size: 100%;
    background-position: top center;
    background-repeat: no-repeat;
    min-height: 75vh;
}
#work-hero {
    background-image: url(./images/work/header.png);
    background-size: 100%;
    background-position: top center;
    background-repeat: no-repeat;
    min-height: 75vh;
}
#only-hero {
    background-image: url(./images/only/header.png);
    background-size: 100%;
    background-position: top center;
    background-repeat: no-repeat;
    min-height: 75vh;
}
#recruitment-hero {
    background-image: url(./images/recruitment/header.png);
    background-size: 100%;
    background-position: top center;
    background-repeat: no-repeat;
    min-height: 1200px;
}
#certification-hero{
    background-image: url(./images/certification/header.png);
    background-size: 100%;
    background-position: top center;
    background-repeat: no-repeat;
    min-height: 75vh;
}
.p-kaku {
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", "Meiryo", sans-serif;
}
#home #work {
    background-image: url(./images/about-bg-02.png);
    background-size: contain;
    background-position: top;
    background-repeat: no-repeat;
}

@keyframes scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

.animate-scroll {
    animation: scroll 30s linear infinite;
}

.animate-scroll:hover {
    animation-play-state: paused;
}

/* Material Icons styling */
.material-icons {
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -webkit-font-feature-settings: 'liga';
    font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;
}


/* Entry hover effects */
.entry-1:hover,
.entry-2:hover,
.entry-3:hover,
.entry-4:hover,
.entry-5:hover,
.entry-6:hover,
.entry-7:hover,
.entry-8:hover,
.entry-9:hover,
.entry-10:hover {
    transform: translateY(-2px);
    transition: all 0.3s ease;
}

/* Modal close button positioning and styling */
#activityModal .closebttn > button{
    z-index: 10;
    border: solid 4px #fff;
}

/* Modal close button hover effect */
#episodeModal .closebttn > button:hover,
#activityModal .closebttn > button:hover {
    transform: scale(1.1);
    transition: transform 0.2s ease;
}

/***ABOUT***/
#about {
    background-image: url(./images/about-bg.svg);
    background-size: 40%;
    background-position: right;
    background-position-y: 60%;
    background-repeat: no-repeat;
}

/***Sustainability***/
.sus {
    background-image: url(images/sustainability/sus_bg_pattern.png);
    background-color:#9DBC7A ;
    background-size: contain;
    background-position: top center;
    background-repeat: repeat;
    position: relative;
}
/* .sus::before {
 content: '';
  display: block;
  height: 100%;
  position: absolute;
  width: 100%;
 background-color:#9DBC7A ;
} */


/* Mobile Navigation Styles */
#mobile-nav-overlay {
    transition: opacity 0.3s ease;
}

#mobile-nav-overlay.hidden {
    opacity: 0;
    pointer-events: none;
}

#mobile-nav-overlay:not(.hidden) {
    opacity: 1;
    pointer-events: auto;
}

#mobile-menu-btn {
    transition: transform 0.2s ease;
}

#mobile-menu-btn:hover {
    transform: scale(1.1);
}

#close-mobile-nav {
    transition: all 0.2s ease;
}

#close-mobile-nav:hover {
    transform: scale(1.1);
    background-color: #f3f4f6;
}

/* Mobile navigation overlay styles */
#mobile-nav-overlay {
    background-color: #308976;
}

/* Navigation link hover effects */
#mobile-nav-overlay nav a {
    transition: opacity 0.2s ease;
}

#mobile-nav-overlay nav a:hover {
    opacity: 0.8;
}

/* Social media icon hover effects */
#mobile-nav-overlay .social-icon {
    transition: transform 0.2s ease;
}

#mobile-nav-overlay .social-icon:hover {
    transform: scale(1.1);
}

.mt-work {
    margin-top: 460px;
}
.mb-work {
    margin-bottom: 160px;
    max-width: 960px;
}
.px-recruitment {
    padding-left: 6rem;
    padding-right: 6rem;
}
.prefooter {
    padding-left: 0rem;
    padding-right: 0rem;
}
.px-160 {
    padding-left: 160px;
    padding-right: 160px;
}
.pb-footer {
    padding-bottom: 170px!important;
}

.web {
    display: block;
}
.mob {
    display: none;
}
.w-1199 {
    max-width: 1199px; margin: 0 auto;
}
@media (min-width: 1280px) {
    .container {
        max-width: 1100px!important; margin: 0 auto;
    }
}
@media (min-width: 1024px) {
    .container {
        max-width: 1100px; margin: 0 auto;
    }
}
@media (max-width: 768px) {
    .web {
        display: none;
    }
    .mob {
        display: block;
    }
    .py-20 {
        padding-top: 2.5rem!important;
        padding-bottom: 2.5rem!important;
    }
    .mt-20 {
        margin-top: 2.5rem!important;
    }
    #home .hero {
        background-image: url(./images/home-hero-mob.png);
        background-position: top left;
        background-repeat: no-repeat;
        min-height: 70vh;
    }
    #home .hero-wrapper {
        background-position: -10rem 0;
        background-size: 100%;
    }
    #home-company {
        min-height: 50vh;
    }

    header {
        background-color: #ffffff;
        padding-top: 0!important;
    }
    /***ABOUT***/
    #about {
    background-image: url(./images/about-bg-mob.svg);
    background-size: 70%;
    background-position-x: 12rem;
    }
    #home #work {
        background-size: 230%;
        background-position-x: 65%;
    }
    .mt-work {
        margin-top: 340px;
    }
    .mb-work {
        margin-bottom: 60px;
        max-width: 100%;
    }
    .otherLinks {
        padding-top: 0px!important;
    }
    .px-recruitment {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .prefooter {
        padding-left: 2rem;
        padding-right: 2rem;
    }
    .address {
        font-size: 16px!important;
    }
    .footer-links {
        display: flex!important;
        flex-direction: row!important;
        gap: 1rem!important;
    }
    .footer-links a {
        margin-top: 0!important;
        display: flex;
    }
    .footer-links span {
        font-size: 17px!important;
    }
    .footer-links img {
        width: 15px!important;
        height: 40px!important;
    }
    .pb-footer {
        padding-bottom: 60px!important;
    }
    #home-company,
    #work-hero,
    #only-hero,
    #certification-hero {
        background: url(./images/company/hero-mob.png) no-repeat top center;
        background-size: 100%;
        margin-top: 70px!important;
        min-height: 40vh;
    }
    #work-hero {
        background: url(./images/work/hero-mob.png) no-repeat top center;
    }
    #only-hero {
        background: url(./images/only/hero-mob.png) no-repeat top center;
    }
    #recruitment-hero {
        background-size: cover;
        min-height: 90vh;
    }
    #certification-hero {
        background: url(./images/work/company/hero-mob.png) no-repeat top center;
    }
    .text-4xl {font-size: 26px!important;}
    .text-xl {font-size: 12px!important;}
    .px-160 {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .py-24 {
        padding-top: 3rem!important;
        padding-bottom: 3rem!important;
    }
    .pl-32 {
        padding-left: 0rem!important;
    }
    .rounded-3xl {
        border-radius: 1rem!important;
    }
    .w-1199 {
        min-width:100%;
    }
    .about-recycle h3 {
        font-size: 16px!important;
    }
    .about-recycle p {
        font-size: 12px!important;
    }
    .section-message {
        background-color: none!important;
    }
    iframe {
        height: 400px!important;
    }
    .readMore span.px-8 {
        padding-left: 0.5rem!important;
        padding-right: 0.5rem!important;
    }
    .readMore img {
        right: -2.5rem!important;
    }
    
}

@media (max-width: 375px) {
    #work-hero,
    #only-hero,
    #certification-hero  {
        min-height: 40vh;
        background-size: 100%;
    }
    .header-msg {
        padding-bottom: 4rem!important;
    }
    .px-6 {
        padding-left: 1rem!important;
        padding-right: 1rem!important;
    }
}


/* Fade-in Animation Styles */
.fade-in-section {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
}

.fade-in-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered animation delays for multiple elements */
.fade-in-section.delay-1 {
    transition-delay: 0.2s;
}

.fade-in-section.delay-2 {
    transition-delay: 0.4s;
}

.fade-in-section.delay-3 {
    transition-delay: 0.6s;
}

.fade-in-section.delay-4 {
    transition-delay: 0.8s;
}

.fade-in-section.delay-5 {
    transition-delay: 1.0s;
}

/* Other Links hover effect */
button,
.footer-links a {
    transition: opacity 0.2s ease;
}
button:hover,
.footer-links a:hover {
    opacity: 0.7;
}
.closebttn button,
.readMore button {
    opacity: 1!important;
}

/* Job Category Accordion Transition Effects */
.job-content {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out, padding 0.5s ease-in-out;
}

.job-content.active {
    max-height: 2000px;
    opacity: 1;
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
}

/* FAQ Accordion Transition Effects */
.faq-answer {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out, padding 0.5s ease-in-out;
}

.faq-answer.active {
    max-height: 200px;
    opacity: 1;
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
}