.copy_guard {
    pointer-events: none;
}
@media print {
    .copy_guard {
        display: none !important;
    }
}
img {
    max-width: 100%;
    width: auto;
    height: auto;
}

.content article > .nattoku2026 {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
}
@media screen and (min-width: 768px) and (max-width: 1050px) {
    .content article > .nattoku2026 {
        margin-left: 0;
        margin-right: 0;
    }
}
h2 {
    position: relative;
    display: inline-block;
}
h2::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 63px;
    height: 173px;
    transform: translateY(-50%);
    background-image: url(/campaign/nattoku2026/images/icon_exclamation_01.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
}
.nattoku {
    vertical-align: middle;
}
.nattoku2026__inner {
    max-width: 1920px;
    margin: 0 auto;
}
@media screen and (max-width: 767px) {
    h2::before {
        width: 41px;
        height: 111px;
    }
}

/*KV*/
.kv {
    margin-bottom: 45px;
    position: relative;
    width: 100%;
    height: 100%;
    background-image: url(/campaign/nattoku2026/images/bg_kv_pc.jpg);
    background-size: 100% 100%;
    background-repeat: no-repeat;
}
.kv h1 {
    width: 100%;
    height: 100%;
    object-fit: cover;
    text-align: center;

    /* マスク画像（透過部分が切り抜かれる） */
    mask-image: url(/campaign/nattoku2026/images/bg_kv_mask_pc.png);
    mask-size: 100% 100%;
    mask-repeat: no-repeat;
    mask-position: center;

    /* Chrome, Safari 用 */
    -webkit-mask-image: url(/campaign/nattoku2026/images/bg_kv_mask_pc.png);
    -webkit-mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
}
.kv h1 img {
    margin: 56px 110px 0 16px;
    max-width: calc(100% - 126px);
}
@media screen and (max-width: 767px) {
    .kv {
        margin-bottom: 64px;
        background-image: url(/campaign/nattoku2026/images/bg_kv_sp.jpg);
    }
    .kv h1 {
        mask-image: url(/campaign/nattoku2026/images/bg_kv_mask_sp.png);

        -webkit-mask-image: url(/campaign/nattoku2026/images/bg_kv_mask_sp.png);
    }
    .kv h1 img {
        margin: 0 14% 0 0;
        max-width: 86%;
    }
}

/*intro*/
.intro {
    margin-bottom: 56px;
    padding: 0 7%;
}
.intro .read {
    text-align: center;
    font-size: 3.2rem;
    font-weight: bold;
    color: #08287F;
    line-height: 1.9;
    margin-bottom: 55px;
}
.intro .description {
    text-align: center;
    font-size: 3.2rem;
    font-weight: bold;
    line-height: 1.9;
    color: #08287F;
    margin-bottom: 80px;
}
.intro__column4 {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}
.intro__column4 .intro__col {
    display: flex;
    flex-direction: column;
    width: 225px;
    text-align: center;
    padding: 49px 0 41px 0;
    border: 2px solid #000066;
    border-radius: 8px;
}
.intro__column4 .intro__col img {
    margin-top: auto;
    margin-bottom: 23px;
    align-self: center;
}
.intro__column4 .intro__col .catchword {
    margin-bottom: 19px;
    font-size: 3.2rem;
    font-weight: bold;
    font-style: italic;
    color: #08287F;
}
.intro__column4 .intro__col .text {
    font-size: 1.6rem;
    line-height: 1.5;
}
@media screen and (max-width: 959px) {
    .intro__column4 {
        max-width: 470px;
        margin: 0 auto;
        flex-wrap: wrap;
    }
}
@media screen and (max-width: 767px) {
    .intro {
        margin-bottom: 50px;
        padding: 0 5%;
    }
    .intro .read {
        font-size: 1.6rem;
        margin-bottom: 45px;
    }
    .intro .description {
        font-size: 2.0rem;
        margin-bottom: 64px;
    }
    .intro .description .nattoku {
        margin-top: 14px;
    }
    .intro__column4 {
        gap: 15px;
    }
    .intro__column4 .intro__col {
        width: calc(50% - 8px);
        padding: 36px 0 31px 0;
        border: 1px solid #000066;
        border-radius: 6px;
    }
    .intro__column4 .intro__col img {
        margin-bottom: 19px;
    }
    .intro__column4 .intro__col .catchword {
        margin-bottom: 16px;
        font-size: 1.8rem;
    }
    .intro__column4 .intro__col .text {
        font-size: 1.2rem;
    }
}

/*consent*/
.consent {
    padding: 204px 7% 249px;
    background-color: #F0F4FF;
    clip-path: polygon(0 7%, 100% 0, 100% 93%, 0 100%);
    text-align: center;
}
.bottom_straight {
    margin-bottom: 9px;
    padding-bottom: 74px;
    clip-path: polygon(0 7%, 100% 0, 100% 100%, 0 100%);
}
.consent h2 {
    font-size: 5.0rem;
    font-weight: bold;
    line-height: 1.5;
    font-style: italic;
    color: #08287F;
}
.consent h2::before {
    left: -68px;
}
.consent h2 .nattoku {
    padding-left: 11px;
}
.consent__column2 {
    margin-top: 92px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-content: center;
    column-gap: 23px;
    row-gap: 50px;
}
.consent__column2 .consent__col {
    padding: 39px 40px 34px;
    display: flex;
    flex-direction: column;
    position: relative;
    background: #fff;
    max-width: 497px;
    border-radius: 10px;
}
.consent__column2 .consent__item:nth-of-type(odd) .consent__col {
    justify-self: end;
}
.consent__column2 .consent__item:nth-of-type(even) .consent__col {
    justify-self: start;
}
.consent__column2 .consent__col::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 333px;
    background: #F6F9FF;
    border-radius: 10px 10px 0 0;

    clip-path: polygon(
        0 0,
        100% 0,
        100% 70%,
        0 85%
    );
    z-index: 0;
}
.consent__column2 .consent__col > * {
    position: relative;
    z-index: 1;
}
.consent__column2 .consent__col .num {
    position: absolute;
    top: -26px;
    left: 3px;
}
.consent__column2 .consent__col .title {
    margin-bottom: 16px;
    padding-bottom: 21px;
    font-size: 3.2rem;
    font-weight: bold;
    font-style: italic;
    color: #000066;
    border-bottom: 1px solid #ccc;
}
.consent__column2 .consent__col .title small {
    font-size: 2.8rem;
}
.consent__column2 .consent__col .title small.brandcolor {
    color: #08287F;
}
.consent__column2 .consent__col .title small.tiny {
    font-size: 2.2rem;
}
.consent__column2 .consent__col .title.autumn_space {
    letter-spacing: -0.05em;
}
.consent__column2 .consent__col .title.takarakuji_space {
    letter-spacing: -0.04em;
}
.consent__column2 .consent__col img:not(.num) {
    margin-bottom: 23px;
}
.consent__column2 .consent__col .text {
    font-size: 1.6rem;
    line-height: 1.8;
    text-align: left;
    margin-bottom: 23px;
}
.consent__column2 .consent__col .text sup {
    vertical-align: super !important;
}
.consent__column2 .consent__col .target {
    margin-top: auto;
    margin-bottom: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.consent__column2 .consent__col .target p {
    display: inline-block;
    position: relative;
    padding: 6px 7px 7px 17px;
    font-size: 1.4rem;
    font-weight: 500;
    color: #285AE1;
    text-align: left;
}
.consent__column2 .consent__col .target p::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 1px;
    width: 6px;
    height: 17px;
    transform: translateY(-50%);
    background-image: url(/campaign/nattoku2026/images/icon_exclamation_02.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
    z-index: 1;
}
.consent__column2 .consent__col .target p::after {
    content: "";
    position: absolute;
    bottom: 3px;
    left: 0;
    width: 100%;
    height: 5px;
    background-color: #D2E2F1;
    z-index: 0;
}
.consent__column2 .consent__col .consent_link {
    position: relative;
    padding: 13px 17px 12px 0;
    font-size: 1.4rem;
    font-weight: bold;
    color: #fff;
    background-color: #000066;
    border: 1px solid #C0D2FF;
}
.consent__column2 .consent__col .consent_link::after {
    content: "";
    position: absolute;
    top: 1.1em;
    width: 10px;
    height: 10px;
    border-top: 2px solid;
    border-right: 2px solid;
    transform: rotate(45deg);
    margin-left: 4px;
}
.consent .consent_list {
    max-width: 1017px;
    margin: 37px auto 0;
    padding: 0 20px;
    text-align: left;
}
.consent .consent_list li {
    font-size: 1.2rem;
    line-height: 1.5;
    text-indent: calc(-1em + -8px);
    padding-left: calc(1em + 8px);;
}
.consent .consent_list li .list_num {
    margin-right: 8px;
}
.consent .consent_list li .list_num {
    margin-right: 8px;
}
.consent__column2 .consent__col .consent_link.comingsoon {
    color: #000066;
    background-color: #E8E8E8;
}
.consent__column2 .consent__col .consent_link.comingsoon::after {
    content: none;
}
.consent h2 .responsive_br {
    display: none;
}

@media screen and (max-width: 1161px) {
    .consent h2 .responsive_br {
        display: block;
    }
}
@media screen and (max-width: 809px) {
    .consent {
        padding-right: 5%;
        padding-left: 5%;
    }
    .consent__column2 .consent__col .consent_link {
        padding-right: 10px;
    }
}
@media screen and (max-width: 767px) {
    .consent {
        padding: 113px 0 102px;
        clip-path: polygon(0 6%, 100% 0, 100% 94%, 0 100%);
    }
    .bottom_straight {
        margin-bottom: 7px;
        padding-bottom: 80px;
        clip-path: polygon(0 6%, 100% 0, 100% 100%, 0 100%);
    }
    .consent h2 {
        font-size: 2.8rem;
    }
    .consent h2::before {
        left: -39px;
    }
    .consent h2 .nattoku {
        padding-left: 4px;
    }
    .consent__column2 {
        margin-top: 35px;
        display: block;
    }
    .consent__column2 .consent__col {
        padding: 30px 28px 20px;
    }
    .consent__column2 .consent__item .consent__col {
        justify-self: center !important;
    }
    .consent__column2 .consent__col::before {
        height: 50%;
    }
    .consent__column2 .consent__col .num {
        top: -16px;
        left: 15px;
    }
    .consent__column2 .consent__col .title {
        margin-bottom: 11px;
        padding-bottom: 14px;
        font-size: 2.4rem;
    }
    .consent__column2 .consent__col .title small {
        font-size: 2.0rem;
    }
    .consent__column2 .consent__col .title small.tiny {
        font-size: 1.8rem;
    }
    .consent__column2 .consent__col .title.autumn_space {
        letter-spacing: 0;
    }
    .consent__column2 .consent__col img:not(.num) {
        margin-bottom: 18px;
    }
    .consent__column2 .consent__col .text {
        font-size: 1.4rem;
        margin-bottom: 20px;
    }
    .consent__column2 .consent__col .target {
        margin-bottom: 13px;
        gap: 5px;
    }
    .consent__column2 .consent__col .target p {
        padding: 0 5px 2px 11px;
        background-color: transparent;
        font-size: 1.2rem;
    }
    .consent__column2 .consent__col .target p::before {
        left: 1px;
        width: 4px;
        height: 12px;
    }
    .consent__column2 .consent__col .target p::after {
        bottom: 0;
        height: 4px;
    }
    .consent__column2 .consent__col .consent_link {
        display: block;
        padding: 11px 12px 10px 0;
        font-size: 1.2rem;
    }
    .consent__column2 .consent__col .consent_link::after {
        width: 8px;
        height: 8px;
        border-top: 2px solid;
        border-right: 2px solid;
    }

    .mainSwiper {
        margin-bottom: 15px;
        padding: 0 20px;
    }
    .mainSwiper .swiper-slide {
        padding-top: 16px;
        max-width: 497px;
    }
    .thumbSwiper {
        padding: 0 20px;
    }
    .thumbSwiper .swiper-slide {
        margin-top: 6px;
        position: relative;
        cursor: pointer;
        opacity: 0.5;
        transition: opacity .3s;
    }
    .thumbSwiper .swiper-slide .num {
        position: absolute;
        top: -6px;
        left: 4px;
        width: 24px;
        height: 18px;
    }
    .thumbSwiper .swiper-slide img {
        display: block;
        width: 100%;
        height: auto;
    }
    .thumbSwiper .swiper-slide-thumb-active {
        opacity: 1;
    }
    .thumbSwiper .swiper-slide-thumb-active img:not(.num) {
        border: 1px solid #000066;
        border-radius: 3px;
    }

/* バー全体 */
    .info-flow_pagination {
        margin: 24px auto 0;
        position: relative;
        width: 80% !important;
        height: 3px !important;
        background: #fff;
        border-radius: 999px;
        overflow: hidden;
    }

    /* 現在位置 */
    .info-flow_pagination .swiper-pagination-progressbar-fill {
        background: #000066;
    }
}

/*connection*/
.connection {
    margin: 91px 0 151px;
    padding: 0 7%;
    text-align: center;
}
.connection h2 {
    margin-bottom: 132px;
    font-size: 4.8rem;
    font-weight: bold;
    color: #000066;
}
.connection h2::before {
    top: calc(50% - 7px);
    left: -86px;
}
.connection h3 {
    margin-bottom: 31px;
    font-size: 3.2rem;
    font-weight: bold;
    line-height: 1.5;
    color: #08287F;
}
.connection h4 {
    margin-bottom: 29px;
    font-size: 2.4rem;
    font-weight: 500;
}
.connection .explanation {
    margin-bottom: 40px;
    font-size: 1.6rem;
    line-height: 1.8;
}
.connection__movie {
    position: relative;
    max-width: 1020px;
    margin: 0 auto 72px;
    padding: 50px 40px;
    background-color: #F0F4FF;
}
.connection__movie .movie_title {
    position: absolute;
    top: -9px;
    left: -8px;
}
.date {
    padding-right: 21px;
    text-align: right;
    font-size: 1.2rem;
    color: #000066;
}
@media screen and (max-width: 767px) {
    .connection {
        margin: 79px 0 63px;
        padding: 0 5%;
    }
    .connection h2 {
        margin-bottom: 53px;
        font-size: 2.8rem;
    }
    .connection h2::before {
        top: calc(50% - 16px);
        left: -47px;
    }
    .connection h3 {
        margin-bottom: 18px;
        font-size: 1.8rem;
    }
    .connection h4 {
        margin-bottom: 17px;
        font-size: 1.4rem;
    }
    .connection .explanation {
        margin-bottom: 21px;
        font-size: 1.2rem;
    }
    .connection__movie {
        margin: 0 auto 40px;
        padding: 17px 14px;
    }
    .connection__movie:last-of-type {
        margin-bottom: 7px;
    }
    .connection__movie .movie_title {
        position: absolute;
        top: 8px;
        left: -5px;
        z-index: 3;
    }
    .date {
        padding-right: 11px;
    }
}

/*youtube*/
/* ===== YouTube カスタムサムネイル（クリックで再生・背面透け防止） ===== */
/* ラッパー：背面の iframe 初期画面がホバー透過で見えないよう白背景（再生中は下の隙間が白く見えないよう黒に切替） */
.connection__movie .yt-embed {
    position: relative;
    width: 100%;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    background-color: #fff;
    overflow: hidden;
    line-height: 0;
}

.connection__movie .yt-embed:has(.stream__frame.is-active) {
    background-color: #000;
}

/* IFrame API が iframe 外に付けるラッパー div（setSize 前後で枠からはみたり白隙間になりがち） */
.connection__movie .yt-embed > div {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    margin: 0;
    padding: 0;
    background-color: #000;
}

@media screen and (max-width: 767px) {
    .connection__movie .yt-embed {
        max-width: initial;
    }
}

/* 初期は非表示（ホバーでサムネが半透明になっても YouTube が透けない） */
.connection__movie .yt-embed .stream__frame {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    aspect-ratio: auto;
    border: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* 再生開始後：iframe を表示（クリック後は画像に戻さない） */
.connection__movie .yt-embed .stream__frame.is-active {
    display: block;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* カバー操作層（クリックで非表示） */
.connection__movie .yt-embed__cover {
    position: absolute;
    inset: 0;
    z-index: 2;
    margin: 0;
    padding: 0;
    border: 0;
    cursor: pointer;
    background: transparent;
    display: block;
    width: 100%;
    height: 100%;
}

.connection__movie .yt-embed__cover.is-hidden {
    display: none;
}

/* サムネイル：ドラッグ不可・長押しメニュー抑止・選択不可（詳細は併せて script で contextmenu 対応） */
.connection__movie .yt-embed__cover-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    transition: opacity 0.2s ease;
}

/* PC：ホバーで薄くするが背面は白＋iframe 非表示のため透けない */
.connection__movie .yt-embed__cover:hover .yt-embed__cover-img {
    opacity: 0.88;
}

@media print {
    .connection__movie .yt-embed__cover,
    .connection__movie .yt-embed__cover-img {
        display: none !important;
    }
}