/* style02.css - For Mobile Layout - Improved Version */

@media (max-width: 480px) {

    /* General layout adjustments */
    .site-wrapper {
        width: 100%;
    }

    header {
        padding-left: 15px;
        padding-right: 15px;
        height: 68px;
        max-width: 100%; 
        position:fixed;
    }

    #img-headerLogo {
        width: 80px;
        height: 30px; 
    }
    h1 {
        font-size: 0.75rem;
        margin-left: 10px; 
    }

    main {
        padding-top: 68px;
    }

    h2 {
        font-size: 1.3rem;
        margin-left: 15px; 
        margin-right: 15px;
        margin-bottom: 8px;
    }

    h3 {
        font-size: 1.05rem;
        margin-left: 15px; 
        margin-right: 15px;
        margin-top: 0;
    }

    /* Hide navigation */
    header nav {
        display: none;
    }

.hambuger_menu_icon{
    width:40px;
    height:40px;
    margin-top: 32px;
}

.hambuger_icon_base{
    position: relative;
    width: 40px;
    height:2px;
    color:#000;
    background: currentColor;
}

.hambuger_icon_base:before{
    content:"";
    position: absolute;
    top: -10px;
    width: 100%;
    height: 100%;
    background: currentColor;
}
.hambuger_icon_base:after{
    content:"";
    position: absolute;
    top: 10px;
    width: 100%;
    height: 100%;
    background: currentColor;
}

.modal_menu{
    position: fixed;
    top:68px;
    left:0;
    display:flex;
    justify-content:center;
    align-items: center;
    width:100%;
    height: 70%;
    background-color :#FFFFFF;
    opacity: 0;
    pointer-events:none;
    visibility:none;
    transition: all 1s ease;
    &.is-show{
        opacity: 1;
        pointer-events:auto;
        visibility:visible;
    }
}

#menu_title{
    font-size:1rem;
    font-weight: bold;
    text-align:center;
    padding-top:1rem;
}

.menu_content{
    align-items:center;
}

.modal-list{
    font-size:1.5rem;
    list-style: none;
    padding-top:1rem;
    align-items:center;
}

.batsu_icon{
    padding-top: 20px;
    padding-bottom: 20px;
    color:gray;
    font-size:2.5rem;
    font-weight: bold;
    text-align:center;
}

    /* Main copy adjustments */
    .main-copy-bg {
        padding: 25px 15px; 
        min-height: 180px; 
        align-items: center; 
        text-align: center;
    }

    .title {
        font-size: 1.8rem; 
        padding-left: 0;
        margin-bottom: 8px; 
    }

    .subTitle {
        font-size: 1.2rem; 
        padding-left: 0;
    }

    /* Product section: cards in 1 column */
    #product {
        margin: 30px 0; 
        padding-left: 15px;
        padding-right: 15px;
        max-width: 100%;
    }

    #product .productGrid {
        grid-template-columns: 1fr; 
        gap: 25px; 
        padding-top: 15px;
        padding-bottom: 25px;
    }

    #product .card {
        width: 100%; 
        max-width: 350px; 
        margin-left: auto;
        margin-right: auto;
        padding: 20px; 
        border-radius: 10px;
    }
    
    #product .card > a > div[id^="img-product"] {
        width: 160px;
        height: 160px;
        margin: 0 auto 15px auto; 
    }
    
    #product .cardTitle {
        font-size: 1rem;
        width: 100%;
        margin-bottom: 8px; 
    }

    #product .cardText {
        font-size: 0.9rem; 
        width: 100%;
        line-height: 1.65; 
    }


    /* Greeting section adjustments */
    #greeting {
        margin: 40px 0;
        padding-left: 15px;
        padding-right: 15px;
        max-width: 100%;
        padding-top: 25px;
        padding-bottom: 25px;
        border-bottom: 1px solid #ccc;
    }

    .greetingText {
        font-size: 1rem; 
        line-height: 1.7; 
    }
    .greetingText p {
        margin-bottom: 1.2em; 
    }
    .president-name {
        margin-right: 15px; 
        margin-top: 20px; 
    }
    .coop-position {
        font-size: 0.8rem; 
    }
    .name {
        font-size: 1.2rem; 
    }


    /* Corporate Profile section: info and map stacked vertically */
    #coopProfile {
        margin: 40px 0;
        padding-left: 15px;
        padding-right: 15px;
        max-width: 100%;
        padding-top: 25px;
        padding-bottom: 25px;
    }

    #coopProfile .info {
        flex-direction: column;
        align-items: flex-start; 
    }

    #coopProfile .info dl {
        width: 100%;
        margin-right: 0;
        margin-bottom: 25px; 
        font-size: 0.8rem; 
    }

    #coopProfile .info dt {
        width: 30%; 
        padding: 10px 8px; 
    }

    #coopProfile .info dd {
        width: 70%; 
        padding: 10px 8px;
        line-height: 1.6;
    }

    #coopProfile .info .map {
        width: 100%;
        margin-left: 0;
        height: 320px;
    }
    #coopProfile .info .map iframe {
        width: 100%;
        height: 100%; 
    }


    /* Equipment section: items stacked vertically */
    #equipment {
        margin: 40px 0;
        width: auto; 
        padding-left: 15px;
        padding-right: 15px;
        max-width: 100%;
        padding-top: 25px;
        padding-bottom: 25px;
    }

    #equipment .equip-line1,
    #equipment .equip-line2 {
        flex-direction: column;
        align-items: center; 
        gap: 30px;
        margin-top: 25px;
    }
        
    #equipment .contText {
        width: 100%;
        font-size: 0.9rem; 
        line-height: 1.7; 
        margin-top: 0;
        margin-bottom: 15px;
    }

    #equipment .equip-item {
        width: 100%;
        max-width: 330px;
    }

    #equipment .equip-image1,
    #equipment .equip-image2,
    #equipment .equip-image3 {
        width: 100%; 
        height: auto; 
    }
    .equip-cap {
        font-size: 0.8rem; 
        padding-top: 10px; 
    }


    /* Achieve section*/
    #achieve {
        margin: 40px 0;
        width: 100%; 
        padding-left: 15px;
        padding-right: 15px;
        box-sizing: border-box;
        max-width: 100%;
        padding-top: 25px;
        padding-bottom: 25px;
        border-bottom: 1px solid #ccc;
    }

    #achieve .achieveContainer {
        flex-direction: column;
        align-items: center; 
        padding-top: 30px; 
        gap: 30px; 
    }
    
    #achieve #leaflet .textContainer,
    #achieve #dtp .textContainer,
    #achieve #ebook .textContainer {
        order: 1;
    }
    #achieve #leaflet .imgContainer,
    #achieve #dtp .imgContainer,
    #achieve #ebook .imgContainer {
        order: 2;
    }

    #achieve .textContainer {
        width: 100%;
    }
    
    #achieve .achieveTitle {
        font-size: 1.15rem; 
        padding: 12px 0; 
        text-align: center; 
    }

    #achieve .achieveText {
        width: 100%;
        font-size: 0.9rem; 
        line-height: 1.7; 
        margin-left: 0;
    }

    #achieve .imgContainer {
        display: flex;
        flex-direction: row; 
        flex-wrap: wrap;     
        justify-content: center; 
        gap: 20px;
        width: 100%;
    }
    
    /* Background image divs styling - ensuring visibility and proper scaling */
    #achieve .imgContainer div[id^="img-nameCard"],
    #achieve .imgContainer div[id^="img-brochure"],
    #achieve .imgContainer div[id^="img-DTP"] {
        width: 160px; 
        height: 160px; 
        background-size: cover;
        background-position: center;
    }
    /* Ensuring namecard images are cover as per desktop original */
    #achieve .imgContainer div[id^="img-nameCard01"],
    #achieve .imgContainer div[id^="img-nameCard02"] {
        background-size: cover;
    }
    /* Others can be contain if that was the original intent for detail */
    #achieve .imgContainer div[id^="img-brochure01"], #achieve .imgContainer div[id^="img-brochure02"],
    #achieve .imgContainer div[id^="img-DTP01"], #achieve .imgContainer div[id^="img-DTP02"] {
        background-size: contain;
    }


    #achieve .capsetContainer div[id^="img-leaflet"],
    #achieve .capsetContainer div[id^="img-selfpub"] {
        width: 160px; 
        height: 227px; 
        background-size: contain;
        background-position: center;
    }

    #achieve .imgContainer div[id^="img-ebook01"] {
        width: 100%;
        max-width: 330px; 
        height: 156px; 
        background-size: contain;
        background-position: center;
    }
    #achieve .imgContainer div[id^="img-ebook02"]{
        width: 160px; 
        height: 160px; 
        background-size: contain;
        background-position: center;
        /* display: none; */ 
    }
    .cap-cooperateName{
        font-size: 0.8rem; 
        padding-top:10px;
        padding-bottom:4px;
    }
    .cap-exp{
        font-size: 0.75rem; 
        line-height: 1.5;
    }


    /* Contact section */
    #contact {
        margin: 40px 0;
        padding-left: 15px;
        padding-right: 15px;
        padding-top: 0;
        padding-bottom: 25px;
    }
    #contact .contactTxt { 
        text-align: center;
    }
    #contact .contactTxt h2,
    #contact .contactTxt h3 {
        margin-left: 0;
        margin-right: 0;
    }
    .contactContainer{
        width:100%;
    }
    #contactImg {
        width: 100%;
        max-width: 340px; 
        height: 128px; 
        background-size: contain;
        margin-top: 15px;
        margin-left: auto;
        margin-right: auto;
    }

    /* Footer */
    footer {
        width: 100%; 
        height: auto; 
        padding: 25px 15px;
        font-size: 0.8rem; 
        text-align: center;
        line-height: 1.6;
    }
}