.inner {
    max-width: 1080px;
    margin: 0 auto;
    padding: 0 15px;
}

.red-cl {
    color: #E6000F !important;
}

.pcOnly {
    display: block;
}

.spOnly {
    display: none !important;
}

/* HERO */
.hero {
    min-height: 680px;
    background: url('/sustainability/society/contribution/collabo/images/hero_bg_pc.jpg') top center no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    margin-bottom: 18px;
}

.hero .hero-content {
    width: 680px;
    min-height: 470px;
    background-color: rgba(255, 255, 255, 0.9);
    position: absolute;
    top: 50%;
    transform: translateY(-48%);
}

.hero h1 {
    border: 0;
    margin-bottom: 18px;
    margin-top: -5px;
}

.hero .hero_sub-ttl {
    font-weight: 700;
    font-size: 20px;
    text-align: center;
    letter-spacing: 3px;
    margin-bottom: 15px;
}

.hero .hero_txt {
    font-size: 15px;
    line-height: 1.6;
    text-align: center;
    padding: 0 50px;
    letter-spacing: 10%;
}

.accordion {
    border-bottom: 1px solid #C2C2C2;
    padding-bottom: 31px;
    margin-bottom: 27px;
}

.accordion.pb-22 {
    padding-bottom: 22px;
}

.accordion .label {
    cursor: pointer;
    font-weight: 700;
    font-size: 24px;
    text-align: left;
    letter-spacing: 1px;
    position: relative;
}

.accordion .label::before {
    content: '';
    position: absolute;
    right: 0;
    top: 44%;
    transform: translateY(-50%) rotate(90deg);
    transition: all .35s linear;
    background-color: #E60012;
    width: 24px;
    height: 3px;
}

.accordion.active .label::before {
    transform: translateY(-50%) rotate(180deg);
}

.accordion .label::after {
    content: '';
    position: absolute;
    right: 0;
    top: 44%;
    transform: translateY(-50%);
    background-color: #E60012;
    width: 24px;
    height: 3px;
}

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

.accordion .content.three_button {
    display: flex;
    flex-direction: column;
}

.accordion .content.one_button {
    display: flex;
    gap: 9px;
}

.accordion .content.one_button .content_left {
    min-width: 400px;
}

.accordion .content.three_button .content_left {
    margin-bottom: 14px;
}

.accordion .content .content_left {
    max-width: 100%;
    text-align: left;
}

.accordion .content .txt_note {
    font-size: 14px;
}

.accordion .content .txt {
    font-size: 15px;
    line-height: 1.6667;
    margin-top: 8px;
}

.accordion .pc_mt_0 {
    margin-top: 0 !important;
}

.btn_group {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.accordion .content.one-button .btn_group {
    justify-content: center;
}

.accordion .content.two_button .btn_group {
    justify-content: flex-end;
}

.primary_button {
    width: 324px;
    border: 1px solid #E6000F;
    border-radius: 100px;
    color: #000000;
    padding: 13px 0 12px;
    font-weight: 500;
    font-size: 18px;
    line-height: 1.5;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.15);
}

.primary_button::after {
    content: '';
    display: inline-block;
    transform: rotate(45deg) translateX(-3px);
    border-top: solid 1px #E60012;
    border-right: solid 1px #E60012;
    aspect-ratio: 1 / 1;
    grid-row-start: 1;
    grid-column-start: 1;
    position: absolute;
    right: 16px;
    width: 5.56px;
}

.primary_button:hover {
    text-decoration: none;
    opacity: .7;
}

.primary_button.btn_red {
    background-color: #E60012;
    color: #FFF;
}

.primary_button.btn_red::after {
    display: none;
}

a[href$=".pdf"].primary_button.btn_red {
    padding-right: 0;
    background: #E60012;
}

.primary_button.w-310 {
    width: 308px;
}

.article {
    margin-top: 78px;
    margin-bottom: 72px;
}

.article .inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
}

.article .article-ttl {
    font-weight: 700;
    font-size: 32px;
    line-height: 1.4;
    text-align: left;
}

.article .article-ttl span {
    font-size: 24px;
    line-height: 1.583;
    letter-spacing: 5%;
}

.article .article-txt {
    font-size: 16px;
    line-height: 1.625;
    margin: 22px 0 32px;
    text-align: left;
}

.article .primary_button::after {
    content: '';
    display: inline-block;
    transform: rotate(0) translateX(-3px);
    background-size: 100%;
    aspect-ratio: 1 / 1;
    z-index: 2;
    position: absolute;
    right: 16px;
    width: 14px;
    height: 11px;
    border-top: unset;
    border-right: unset;
}

.article .primary_button.i-icon-external::before {
    content: none !important;
    background: none !important;
}

.article_right {
    margin-right: -4px;
}

.article_right img {
    max-width: 520px;
}

.voice {
    border-top: 1px solid #C2C2C2;
    margin-bottom: 80px;
}

.voice .head {
    height: 208px;
    max-width: 1090px;
    margin: 0 auto;
    background: url(/sustainability/society/contribution/collabo/images/voice_ttl_bg_left_pc.png) top left no-repeat, url(/sustainability/society/contribution/collabo/images/voice_ttl_bg_right_pc.png) bottom right no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
}

.voice .head h2 {
    font-weight: 700;
    font-size: 32px;
    line-height: 1.5;
    text-align: center;
}

.slider-wrapper {
    position: relative;
}

.slick-slide {
    margin: 0 25px;
    position: relative;
}

.voice .custom-prev,
.voice .custom-next {
    position: absolute;
    top: 46%;
    transform: translateY(-50%);
    z-index: 10;
    transition: left 0.3s ease, right 0.3s ease;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    outline: none;
    border: none;
    cursor: pointer;
}

.voice .custom-prev {
    background: #E6000F url(/sustainability/society/contribution/collabo/images/arr_left.png) center center no-repeat;
}

.voice .custom-next {
    background: #E6000F url(/sustainability/society/contribution/collabo/images/arr_right.png) center center no-repeat;
}

.voice .custom-prev:hover,
.voice .custom-next:hover {
    opacity: .8;
}

@media screen and (min-width: 769px) and (max-width: 1065px) {
    .voice .custom-prev {
        left: 10px !important;
    }

    .voice .custom-next {
        right: 10px !important;
    }
}

.voice .slick-dotted.slick-slider {
    margin-bottom: 0;
}

.voice .slick-dots {
    width: auto;
    position: unset;
    display: flex;
    align-items: center;
}

.voice .slick-dots li {
    width: 8px;
    height: 8px;
    margin: 0 6px;
}

.voice .slick-dots li button {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #888888;
    padding: 4px;
}

.voice .slick-dots li.slick-active button {
    background-color: #E60012;
}

.voice .slick-dots li button::before {
    display: none;
}

.voice .custom-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 19px;
    gap: 15px;
}

.voice .custom-dots .custom-button {
    width: 40px;
    height: 40px;
    cursor: pointer;
    background: transparent;
    border: 0;
    padding: 0;
    appearance: none;
    -webkit-appearance: none;
    line-height: 0;
}

.voice .custom-dots .custom-button:focus {
    outline: none;
}

.voice .custom-dots .custom-button:focus-visible {
    outline: 2px solid #E60012;
    outline-offset: 3px;
    border-radius: 6px;
}

.voice .custom-dots .custom-button:hover {
    opacity: .8;
}

.voice_carousel_item {
    background: #FFF6EF;
    max-width: 1000px;
    margin: 0 auto;
    padding: 32px 40px;
    border: 1px solid #F1EFCE;
    box-sizing: border-box;
}

.voice_carousel_item .voice_card {
    display: flex;
    align-items: flex-start;
    gap: 25px;
}

.voice_carousel_item .voice_card .card_left img {
    height: 100%;
}

.voice_carousel_item .voice_card .card_right {
    flex: 1;
    text-align: left;
    max-width: 450px;
    margin-top: -1px;
}

.voice_carousel_item .badge {
    font-weight: 700;
    font-size: 17px;
    color: #FFF;
    background: #A58B55;
    position: relative;
    display: inline-flex;
    padding: 5px 13px 3px 34px;
    line-height: 1.4;
}

.voice_carousel_item .badge::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    background: #A58B55 url(/sustainability/society/contribution/collabo/images/ilus_cup.png) center left no-repeat;
}

.voice_carousel_item .card_txt {
    font-weight: 500;
    font-size: 15px;
    margin-top: 5px;
}

.voice_carousel_item .line-bottom {
    border-bottom: 1px solid #C2C2C2;
}

.voice_carousel_item .card_ttl {
    font-weight: 700;
    font-size: 20px;
    line-height: 1.4;
    margin-top: 10px;
    letter-spacing: .8px;
}

.voice_carousel_item .card_sub_ttl {
    font-weight: 700;
    font-size: 20px;
    line-height: 1.55;
    margin: 8px 0;
}

.voice_carousel_item .card_right .thumb img {
    height: 100%;
}

.voice_textbox {
    margin-top: 20px;
}

.voice_textbox_ttl {
    text-align: left;
    font-weight: 500;
    font-size: 15px;
}

.voice_textbox_txt {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.625;
    text-align: left;
    margin-top: 17px;
}

.section05 {
    margin-bottom: 79px;
    padding: 0 15px;
}

.section05 .inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    border: 1px solid #C2C2C2;
    padding: 30px 32px;
    box-sizing: border-box;
}

.section05 .textbox h3 {
    font-weight: 700;
    font-size: 24px;
    letter-spacing: 5%;
    text-align: left;
}

.section05 .textbox p {
    font-weight: 400;
    font-size: 15px;
    line-height: 1.6667;
    text-align: left;
    letter-spacing: -.1px;
    margin-top: 4px;
}

/* =========================
   Gallery
========================= */
.gallery {
  width: 100%;
  overflow: hidden;
}

.scroll-wrapper {
  width: 100%;
  overflow: hidden;
  position: relative;
}

.gallery #galleryTrack.scroll-track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
}

.gallery #galleryTrack > .scroll-content {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  flex: 0 0 auto;
}

.gallery #galleryTrack > .scroll-content img {
  display: block;
  width: auto;
  height: auto;
  max-width: none;
  flex: 0 0 auto;
}

.gallery #galleryTrack.is-animated {
  animation: galleryScroll 50s linear infinite;
}

@keyframes galleryScroll {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(calc(-1 * var(--gallery-scroll-width)), 0, 0);
  }
}

.gallery #galleryTrack > .scroll-content.pcOnly {
  display: flex !important;
}

.gallery #galleryTrack > .scroll-content.spOnly {
  display: none !important;
}

@media (max-width: 768px) {
  .gallery #galleryTrack > .scroll-content.pcOnly {
    display: none !important;
  }

  .gallery #galleryTrack > .scroll-content.spOnly {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    flex: 0 0 auto !important;
  }
}

@media (max-width: 1000px) {
    .accordion .content {
        flex-direction: column;
        gap: 15px;
    }

    .accordion .content .btn_group {
        justify-content: center;
    }

    .accordion .content.two_button .btn_group {
        justify-content: center;
    }

    .voice .head {
        width: 95vw;
    }

    .voice_carousel_item {
        max-width: 95vw;
    }
}

@media (max-width: 979px) {
    body {
        display: block;
    }
}

@media (min-width: 769px) and (max-width: 900px) {
    .article .spOnly {
        display: block !important;
    }

    .article .pcOnly {
        display: none !important;
    }

    .article .article_img {
        width: 65%;
        margin-top: 15px;
    }
}

@media (max-width: 979px) {
    body {
        display: block;
    }
}

@media (max-width: 768px) {
    .pcOnly {
        display: none !important;
    }

    .spOnly {
        display: block !important;
    }

    .inner {
        padding: 0 20px;
    }

    /* HERO */
    .hero {
        min-height: 599px;
        background: url('/sustainability/society/contribution/collabo/images/hero_bg_sp.jpg') top center no-repeat;
        background-size: 100%;
        margin-bottom: 22px;
    }

    .hero .hero-content {
        width: 86.15%;
        min-height: 487px;
        transform: translateY(-50%);
    }

    .hero h1 {
        margin-bottom: 2px;
        margin-top: -2px;
    }

    .hero h1 img {
        width: 86.3%;
        max-width: 290px;
    }

    .hero .hero_sub-ttl {
        font-size: 18px;
        line-height: 1.533;
        letter-spacing: 5%;
        text-align: center;
        margin-bottom: 10px;
    }

    .hero .hero_txt {
        font-weight: 400;
        font-size: 15px;
        line-height: 1.533;
        text-align: center;
        letter-spacing: 0;
        padding: 0 12px;
    }

    .accordion {
        border-bottom: 1px solid #C2C2C2;
        padding-bottom: 11px;
        margin-bottom: 8px;
        position: relative;
    }

    .accordion::after {
        content: '';
        position: absolute;
        bottom: -1px;
        left: -20px;
        width: calc(100% + 40px);
        height: 1px;
        background-color: #C2C2C2;
    }

    .sp-pb-6 {
        padding-bottom: 6px !important;
    }

    .accordion .label {
        font-size: 16px;
        padding-left: 16px;
        letter-spacing: 0;
    }

    .accordion .label::before {
        right: 16px;
        width: 12px;
        height: 2px;
    }

    .accordion .label::after {
        right: 16px;
        width: 12px;
        height: 2px;
    }

    .accordion .content {
        margin-bottom: 16px;
    }

    .accordion .content.two_button {
        flex-direction: column;
    }

    .accordion .content.one_button {
        flex-direction: column;
    }

    .accordion .content .left {
        width: 100%;
    }

    .accordion .content .content_left {
        min-width: unset;
    }

    .accordion .content.one_button .content_left {
        min-width: unset;
    }

    .accordion .content.three_button .left {
        margin-bottom: 0;
    }

    .accordion .content .txt_note {
        margin-top: 17px;
        letter-spacing: 0px;
        padding-left: 16px;
    }

    .accordion .content .txt {
        font-size: 14px;
        line-height: 1.75;
        margin-top: 22px;
        padding-left: 14px;
    }

    .accordion .sp_mt_6 {
        margin-top: 6px !important;
    }

    .btn_group {
        margin-top: 18px;
        flex-direction: column;
    }

    .primary_button {
        width: 318px;
        margin: 0 auto;
    }

    .primary_button::after {
        right: 10px;
        top: 50%;
        transform: rotate(45deg) translateX(-7px);
    }

    .primary_button.pdf_button::after {
        content: '';
        position: absolute;
        right: 10px;
        display: inline-block;
        background: url(/sustainability/society/contribution/collabo/images/download_ilus.png) center no-repeat;
        background-size: 14px 14px;
        width: 14px;
        height: 14px;
        transform: translateX(-3px);
    }

    .article {
        margin-top: 64px;
        margin-bottom: 58px;
    }

    .article .inner {
        flex-direction: column;
    }

    .article .article-ttl {
        font-size: 22px;
        letter-spacing: -.5px;
        line-height: 1.4;
        text-align: center;
    }

    .article .article-ttl span {
        font-size: 18px;
    }

    .article .article_img {
        margin-top: 32px;
    }

    .article .article-txt {
        line-height: 1.5;
        margin: 22px 0 30px;
        text-align: center;
        letter-spacing: 1px;
    }

    .voice {
        margin-bottom: 60px;
    }

    .voice .head {
        height: 160px;
        width: 100%;
        margin: 0 auto;
        background: url(/sustainability/society/contribution/collabo/images/voice_ttl_bg_left_sp.png) top left no-repeat, url(/sustainability/society/contribution/collabo/images/voice_ttl_bg_right_sp.png) bottom right no-repeat;
    }

    .voice .head h2 {
        font-size: 22px;
        line-height: 1.5;
    }

    .voice .custom-prev,
    .voice .custom-next,
    .voice .custom-dots {
        display: none;
    }

    .voice_carousel_item .voice_card {
        display: flex;
        flex-direction: column;
    }

    .voice_carousel_item {
        margin: 0 auto 30px;
        padding: 22px 22px 40px 20px;
        width: 100% !important;
    }

    .voice_carousel_item .voice_card .card_left {
        max-height: none !important;
        overflow: hidden !important;
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        margin-bottom: 18px;
    }

    .voice_carousel_item .voice_card .card_left img.spOnly {
        width: 70% !important;
        height: auto !important;
        display: block !important;
        object-fit: contain;
    }

    .voice_carousel_item .voice_card .card_left img.pcOnly {
        display: none !important;
    }

    .voice_carousel_item .voice_card .card_left img {
        width: 100%;
        height: auto;
        display: block;
    }

    .voice_carousel_item .voice_card .card_right {
        display: flex;
        flex-direction: column;
        width: 100%;
        margin: 0 auto;
    }

    .voice_carousel_item .badge {
        align-self: center;
        padding: 3px 16px 3px 34px;
    }

    .voice_carousel_item .card_ttl {
        letter-spacing: 0;
    }

    .voice_carousel_item .card_txt {
        margin-top: 15px;
    }

    .voice_carousel_item .card_sub_ttl {
        margin-bottom: 11px;
    }

    .voice .thumb {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .voice_textbox {
        margin-top: 14px;
    }

    .voice_textbox .show .voice_textbox_txt {
        height: 100%;
    }

    .voice .custom-nav {
        margin-top: 14px;
    }

    .section05 {
        padding: 0 20px;
        margin-bottom: 60px;
    }

    .section05 .inner {
        flex-direction: column;
        gap: 19px;
        padding: 18px 25px 27px 25px;
    }

    .section05 .textbox h3 {
        font-size: 22px;
    }

    .section05 .textbox p {
        font-size: 16px;
        line-height: 1.5;
        text-align: left;
        letter-spacing: -.1px;
        margin-top: 10px;
    }
}

@media screen and (max-width: 768px) {
    .voice_carousel {
        display: block !important;
        width: 100% !important;
    }

    .voice_carousel > div {
        width: 100% !important;
        display: block !important;
    }

    .voice_carousel_item {
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
        margin: 0 auto 30px !important;
        float: none !important;
    }

    .voice_carousel_item > div,
    .voice_carousel > div > div {
        width: 100% !important;
        display: block !important;
    }
}

@media (max-width: 360px) {
    .primary_button {
        width: 270px;
        margin: 0 auto;
    }
}

.voice .head h2 {
    text-shadow:
        -2px -2px 0 #fff, 0 -2px 0 #fff, 2px -2px 0 #fff,
        -2px 0 0 #fff, 2px 0 0 #fff,
        -2px 2px 0 #fff, 0 2px 0 #fff, 2px 2px 0 #fff;
}