@charset "utf-8";

main {
    position: relative;
    padding-bottom: 9.8%;
}
@media print, screen and (max-width: 768px) {
    main {
        padding-bottom: 26.1vw;
    }
}

/* ==============================
   Background decoration
============================== */
.monozukuri-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    aspect-ratio: 1920 / 769;
    top: -54.5%;
    z-index: 0;
    pointer-events: none;
}

.monozukuri-bg--bottom {
    top: auto;
    bottom: 0;
    right: 0;
    left: auto;
    width: 65.7%;   /* 1263/1920 */
    aspect-ratio: 421 / 138;
}

.monozukuri-hero-banner {
    position: relative;
    overflow: hidden;
}

.monozukuri-hero-banner img {
    width: 100%;
    display: block;
}
@media print, screen and (max-width: 768px) {
    .monozukuri-bg {
        aspect-ratio: 5 / 2;
        top: 0;
    }

    .monozukuri-bg--bottom {
        top: auto;
        bottom: -13.6vw;
        right: 0;
        left: auto;
        z-index: 0;
        width: 100%;
        aspect-ratio: 375 / 208;
    }
}

/* ==============================
   Hero
============================== */
.monozukuri-hero {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.monozukuri-hero-content {
    text-align: center;
    z-index: 2;
    white-space: nowrap;
    margin-top: 4.5%;    /* 88/1920 */
    margin-bottom: 3.9%; /* 76/1920 */
}

.monozukuri-hero-title {
    font-size: min(4.8rem, 2.5vw);
    font-weight: 500;
    letter-spacing: 0.15em;
    line-height: 1;
    color: #000;
    margin-bottom: 0.55em;
}

.monozukuri-hero-en {
    font-size: min(2.4rem, 1.25vw);
    font-weight: 500;
    letter-spacing: 0.15em;
    display: block;
    line-height: 1;
    color: #8D8D8D;
    margin-bottom: 0.6em;
}
@media print, screen and (max-width: 768px) {
    .monozukuri-hero-content {
        margin-top: 12.8vw;    /* 48/375 */
        margin-bottom: 13vw; /* 49/375 */
    }

    .monozukuri-hero-title {
        font-size: 6.6vw;
        margin-bottom: 0;
    }

    .monozukuri-hero-en {
        font-size: 3.7vw;
        margin-bottom: 0.28em;
    }
}
/* ==============================
   Intro (large photo + text card)
============================== */
.monozukuri-intro {
    position: relative;
    overflow: hidden;
}

.monozukuri-intro-photo {
    position: relative;
    overflow: hidden;
    aspect-ratio: 64 / 37;
}

.monozukuri-intro-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.monozukuri-intro-card {
    position: absolute;
    top: 10%;
    left: 0;
    width: 39.9%; /* 766/1920 */
    background-color: rgba(255, 255, 255, 0.9);
    box-sizing: border-box;
    font-size: min(4rem, 2.08vw);
    padding: 2.5em 0 2.5em 4.45em;
}

#tsukuru .monozukuri-intro-card {
    left: auto;
    right: 0;
    padding-left: 3.425em;
}

#todokeru .monozukuri-intro-card {
    padding-left: 3.375em;
}

.monozukuri-intro-heading {
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.4;
    color: #000;
}

.monozukuri-intro-en {
    font-size: min(2.4rem, 1.25vw);
    font-weight: 500;
    letter-spacing: 0.15em;
    color: #0b0b0b;
    display: block;
    margin-top: 1em;
}
@media print, screen and (max-width: 768px) {
    .monozukuri-intro-photo {
        aspect-ratio: 25 / 36;
    }

    .monozukuri-intro-card {
        top: 21vw;
        left: 3.7vw;
        width: 53.4vw; /* 193/375 */
        font-size: 5.8vw;
        padding: 0.77em 0.49em 1.17em 1.15em;
    }

    #tsukuru .monozukuri-intro-card {
        top: auto;
        bottom: 7.7vw;
        left: 5vw;
        right: auto;
        padding-left: 0.89em;
    }

    #todokeru .monozukuri-intro-card {
        top: auto;
        bottom: 12vw;
        left: auto;
        right: 5vw;
        padding-left: 0.89em;
    }

    .monozukuri-intro-en {
        font-size:2.4vw;
        color: #8D8D8D;
        line-height: 1.8;
    }
}

/* ==============================
   YouTube
============================== */
.monozukuri-youtube {
    position: relative;
    padding: 5.5% 0 3.3%;
    box-sizing: border-box;
    text-align: center;
    overflow: hidden;
}

.monozukuri-youtube .monozukuri-bg {
    top: -18.5%;
    width: 65.2%; /* 1252/1920 */
    aspect-ratio: 1252 / 415;
}

.monozukuri-youtube-grid {
    display: flex;
    justify-content: space-between;
    width: 62.5%; /* 1200/1920 */
    margin: 0 auto;
}

.monozukuri-youtube-grid iframe {
    width: 32.6%;
    aspect-ratio: 392 / 219;
}

.monozukuri-youtube p {
    width: 57.2%; /* 1100/1920 */
    margin: 2.2em auto 0;
    font-size: min(2rem, 1.04vw);
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 2;
    color: #000;
    text-align: justify;
    text-justify: inter-ideograph;
}
@media print, screen and (max-width: 768px) {
    .monozukuri-youtube {
        padding: 16vw 0 5vw;
    }

    .monozukuri-youtube .monozukuri-bg {
        top: -20.5vw;
        width: 100%; /* 1252/1920 */
        aspect-ratio: 75 / 83;
    }

    .monozukuri-intro .monozukuri-youtube-grid {
        display: none;
    }

    .monozukuri-youtube p {
        width: 84.8vw; /* 318/375 */
        margin: 0 auto;
        font-size: 4.2vw;
    }
}

/* ==============================
   Map
============================== */
.monozukuri-map {
    width: 50.3%; /* 966/1920 */
    margin: 0 auto 8.6%;
    box-sizing: border-box;
    text-align: center;
}
@media print, screen and (max-width: 768px) {
    .monozukuri-map {
        width: 98.1vw; /* 368/375 */
        margin: 0 auto 16vw 0;
    }
}

/* ==============================
   Farms grid
============================== */
.monozukuri-farms {
    width: 57.2%; /* 1100/1920 */
    margin: 0 auto 6%;
    box-sizing: border-box;
}

.monozukuri-farms-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3.8%;
    justify-content: space-between;
    margin: 0 auto;
}

.monozukuri-farms-item-name {
    font-size: min(3.6rem, 1.875vw);
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #000;
    margin-top: 0.7em;
    line-height: 1.4;
}
@media print, screen and (max-width: 768px) {
    .monozukuri-farms {
        width: 100%;
        margin: 0 auto 6%;
        box-sizing: border-box;
    }

    .monozukuri-farms-grid {
        display: block;
        margin: 0 auto;
    }

    .monozukuri-farms-item + .monozukuri-farms-item {
        margin-top: 12vw;
    }

    .monozukuri-farms-item-name {
        font-size: 5.8vw;
        letter-spacing: 0.15em;
        margin-top: 4.3vw;
        text-align: center;
    }
}

/* ==============================
   Story (alternating layout)
============================== */
.monozukuri-story {
    padding: 6% 0;
    overflow: hidden;
}

.monozukuri-story-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 88.9%; /* 1708/1920 */
}

.monozukuri-story--reverse .monozukuri-story-inner {
    flex-direction: row-reverse;
    margin-right: 0;
    margin-left: auto;
}

.monozukuri-story-photo {
    width: 50.3%; /* 860/1708 */
    overflow: hidden;
}

.monozukuri-story-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.monozukuri-story-text {
    width: 37.9%; /* 648/1708 */
    box-sizing: border-box;
}

.monozukuri-story-heading {
    font-size: min(4rem, 2.08vw);
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.4;
    color: #000;
    margin-bottom: 0.8em;
}

.monozukuri-story-body {
    font-size: min(2rem, 1.04vw);
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 2;
    color: #000;
    text-align: justify;
    text-justify: inter-ideograph;
}
@media print, screen and (max-width: 768px) {
    .monozukuri-story {
        padding: 12.9vw 0 0;
    }

    .monozukuri-story-inner {
        display: block;
        width: 100%;
    }

    .monozukuri-story--reverse .monozukuri-story-inner .monozukuri-story-photo {
        margin-right: 0;
        margin-left: auto;
    }

    .monozukuri-story-photo {
        width: 92.2vw; /* 346/375 */
        margin-bottom: 9vw;
    }

    .monozukuri-story-text {
        width: 84.8vw; /* 318/375 */
        margin: 0 auto;
    }

    .monozukuri-story-heading {
        font-size: 5.8vw;
        letter-spacing: 0.15em;
        margin-bottom: 1.6em;
    }

    .monozukuri-story--reverse .monozukuri-story-heading {
        text-align: right;
    }

    .monozukuri-story-body {
        font-size: 4.2vw;
    }
}

/* ==============================
  SP YouTube
============================== */
.monozukuri-youtube-sp {
    display: none;
}
@media print, screen and (max-width: 768px) {

    .monozukuri-youtube-sp {
        display: block;
        position: relative;
        padding: 21.7vw 0 26.4vw;
        box-sizing: border-box;
        overflow: hidden;
    }

    .monozukuri-youtube-grid {
        display: block;
        width: 100%;
    }

    .monozukuri-youtube-grid iframe {
        width: 100%;
        aspect-ratio: 25 / 14;
    }
    .monozukuri-youtube-grid iframe + iframe {
        margin-top: 10.6vw;
    }
}

/* ==============================
   Factory slider (tsukuru / todokeru)
============================== */
.monozukuri-factory {
    padding: 0;
    overflow: hidden;
}

.monozukuri-factory#factory-2,
.monozukuri-factory#todokeru-sales {
    margin-bottom: 6.6%;
}

.monozukuri-factory-title {
    font-size: min(4rem, 2.08vw);
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.5;
    color: #000;
    text-align: center;
    padding: 1.55em 0 1.6em;
}

.monozukuri-factory-image {
    position: relative;
    z-index: 1;
}

.monozukuri-factory-bg {
    position: relative;
    padding: 3.125% 0;
}

#factory-heiseidai .monozukuri-factory-bg,
#factory-2 .monozukuri-factory-bg,
#todokeru-sales .monozukuri-factory-bg {
    background-color: #EEE;
}
.monozukuri-factory-bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 56.8%; /* 1092/1920 */
    aspect-ratio: 546 / 179;
    object-fit: cover;
}

#factory_main .monozukuri-factory-bg-image {
    position: absolute;
    top: auto;
    bottom: 0;
    right: 0;
    left: auto;
    width: 43.8%; /* 842/1920 */
    aspect-ratio: 421 / 179;
    object-fit: cover;
}

.monozukuri-factory-slider {
    position: relative;
    overflow: hidden;
    padding: 7.81% 0;
    width: 70%; /* 1345/1920 */
    background-color: #FFF;
    margin: 0 auto;
}

.monozukuri-factory-slider-track {
    display: flex;
    transition: transform 0.5s ease;
    will-change: transform;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
    touch-action: pan-y;
}

.monozukuri-factory-slider-track.is-dragging {
    cursor: grabbing;
}

.monozukuri-factory-slider-track img {
    -webkit-user-drag: none;
    user-select: none;
}

.monozukuri-factory-slide {
    display: flex;
    min-width: 100%;
    box-sizing: border-box;
    padding: 0 9.1%;
    justify-content: space-between;
    position: relative;
}

.monozukuri-factory-slide-photo {
    width: 43.4%; /* 458/1055 */
    aspect-ratio: 229 / 250;
    overflow: hidden;
}

.monozukuri-factory-slide-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.monozukuri-factory-slide-text {
    width: 47.8%; /* 505/1055 */
}

.monozukuri-factory-slide-heading {
    font-size: min(4rem, 2.08vw);
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.4;
    color: #000;
    margin-bottom: 1em;
}

.monozukuri-factory-slide-body {
    font-size: min(2rem, 1.04vw);
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 2;
    color: #000;
    text-align: justify;
    text-justify: inter-ideograph;
}

.monozukuri-factory-slide-next {
    position: absolute;
    top: calc(50% - 1.31em);
    right: 3.68em; /* 96/1055 */
    width: 2.31em;
    height: 2.62em;
    margin: auto 0;
    cursor: pointer;
    background: transparent url(../images/monozukuri/decor-slide-next.svg) no-repeat center right;
    background-size: contain;
    border: none;
    font-size: min(1.6rem, 0.83vw);
    font-weight: 500;
}

.monozukuri-factory-dots {
    display: none;
}
@media print, screen and (max-width: 768px) {
    .monozukuri-factory#factory-2,
    .monozukuri-factory#todokeru-sales {
        margin-bottom: 17.8vw;
    }

    .monozukuri-factory-title {
        font-size: 5.8vw;
        letter-spacing: 0.15em;
        padding: 2.4em 0 2.36em;
    }

    .monozukuri-factory-bg {
        position: relative;
        padding: 12.35vw 0;
    }

    #factory-2 .monozukuri-factory-bg {
        background-color: #FFF;
    }

    .monozukuri-factory-bg-image {
        position: absolute;
        top: -28.17vw; /*105.66/375*/
        left: 0;
        width: 100%;
        aspect-ratio: 375 / 233;
        object-fit: cover;
    }

    #factory_main .monozukuri-factory-bg-image {
        position: absolute;
        top: 0;
        bottom: auto;
        right: 0;
        left: auto;
        width: 100%;
        aspect-ratio: 125 / 82;
    }

    .monozukuri-factory-slider {
        position: relative;
        overflow: hidden;
        padding: 0;
        width: 100%;
        background-color: transparent;
        margin: 0 auto;
    }

    .monozukuri-factory-slide {
        display: block;
        min-width: 100%;
        box-sizing: border-box;
        padding: 0 7.6vw;
        justify-content: space-between;
        position: relative;
    }

    .monozukuri-factory-slide-photo {
        width: 73.3vw; /* 275/375 */
        aspect-ratio: 11 / 12;
        margin: 0 auto;
    }

    .monozukuri-factory-slide-text {
        width: 84.8vw; /* 318/375 */
        margin: 0 auto;
    }

    .monozukuri-factory-slide-heading {
        font-size: 5.8vw;
        letter-spacing: 0.15em;
        margin-top: 21.3vw;
        margin-bottom: 1.5em;
        text-align: center;
    }

    .monozukuri-factory-slide-body {
        font-size: 4.2vw;
    }

    .monozukuri-factory-slide-next {
        display: none;
    }

    .monozukuri-factory-dots {
        position: absolute;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 6.67vw; /* 25/375 */
        margin-top: 0;
        z-index: 1;
        top: 88vw;
        left: 0;
        right: 0;
        margin-right: auto;
        margin-left: auto;
    }

    .monozukuri-factory-dot {
        width: 2.67vw; /* 10/375 */
        height: 2.67vw;
        padding: 0;
        border: none;
        border-radius: 50%;
        background-color: #D9D9D9;
        cursor: pointer;
    }

    .monozukuri-factory-dot.active {
        background-color: #000;
    }
}

/* ==============================
   Page navigation (bottom buttons)
============================== */
.monozukuri-page-nav {
    position: relative;
    z-index: 0;
}

.monozukuri-page-nav-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 59.32%; /* 1139/1920 */
    margin: 0 auto;
}

.monozukuri-page-nav-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48%; /* 547/1139 */
    max-width: 547px;
    height: 3.08em;
    border: 1px solid #000;
    padding: 0 1.6em;
    box-sizing: border-box;
    font-size: min(2.4rem, 1.25vw);
    font-weight: 600;
    letter-spacing: 0.25em;
    color: #000;
    text-decoration: none;
}

.monozukuri-page-nav-btn span:first-of-type {
    margin-right: 2.34em;
}
@media print, screen and (max-width: 768px) {
    .monozukuri-page-nav-inner {
        width: 84.53vw; /* 317/375 */
    }

    .monozukuri-page-nav-btn {
        width: 40vw; /* 150/375 */
        max-width: 40vw;
        height: 3.08em;
        padding: 0 0.9em;
        box-sizing: border-box;
        font-size: 4.2vw;
        letter-spacing: 0.1em;
    }

    .monozukuri-page-nav-btn span:first-of-type {
        margin-right: 1.62em;
    }
}
