@charset "utf-8";

/* ==========================================================
   ベース
========================================================== */
*, *::before, *::after {
    box-sizing: border-box;
}
html {
    font-size: 62.5%;
    scroll-behavior: smooth;
}
body {
    font-size: 1.4rem;
    line-height: 1.7;
    color: #333;
    font-weight: 500;
    font-family: 'Noto Sans JP', "Yu Gothic", YuGothic, "Meiryo", sans-serif;
    background: url('../img/bg01.png') repeat center top / auto;
    background-attachment: fixed;
}
img {
    display: block;
    max-width: 100%;
    height: auto;
}
a img {
    display: block;
}
.rollover:hover {
    opacity: 0.7;
}

/* ==========================================================
   3カラムレイアウト
   SP : site-col が全幅
   PC : 左装飾(fixed) | site-col(中央・margin auto) | 右装飾(fixed)

   sticky と fixed の違い：
   sticky → 親要素の高さを超えると外れる（長いページで破綻）
   fixed  → 常にviewportに張り付く＝「中央だけスクロール」が完全に成立
========================================================== */
.page-wrapper {
    min-height: 100vh;
}

/* PC左右サイドカラム：SPでは非表示 */
.pc-side {
    display: none;
}

/* メインコンテンツ列：すべてのセクションを包含 */
.site-col {
    width: 100%;
    margin: 0 auto;
    position: relative;
}

/* フロートアニメーション（左カラムのスクロール示唆） */
@keyframes float-ud {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(10px); }
}

/* PC表示 */
@media (min-width: 500px) {
    /* 左右サイドカラム：fixed でviewportに固定 */
    .pc-side {
        display: flex;
        position: fixed;
        top: 0;
        height: 100vh;
        /* 幅 = (viewport幅 - 375px) / 2 */
        width: calc((100vw - 375px) / 2);
        overflow: hidden;
        pointer-events: none;
    }

    /* 左カラム：画面最左端寄せ・下端に配置 */
    .pc-side--left {
        left: 0;
        flex-direction: column;
        align-items: flex-start;  /* 画面左端寄せ */
        justify-content: flex-end;
        padding: 0 0 40px 24px;
    }

    /* 右カラム：横軸中央・top 120px */
    .pc-side--right {
        right: 0;
        flex-direction: column;
        align-items: center;      /* カラム内横軸中央 */
        justify-content: flex-start;
        padding-top: 120px;
        padding-right: 4.583333333%;
        padding-left: 4.583333333%;
    }
    /* 右カラム画像：1080px以下は非表示（opacity切替でフェード） */
    .pc-side--right img {
        display: block;
        width: 100%;
        max-width: 412px;
        height: auto;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.4s ease, visibility 0.4s ease;
    }

    /* site-col：375px固定でセンタリング */
    .site-col {
        width: 375px;
        margin: 0 auto;
    }
}

/* 769px以上：左右装飾コンテンツを表示 + 中央カラム拡大（修正依頼260611） */
@media (min-width: 769px) {
    /* 375pxデザインを zoom で等倍拡大（実効幅 562.5px）
       px余白・フォント・%指定すべて比率維持で拡大される */
    .site-col {
        zoom: 1.5;
    }
    /* サイド幅 = (viewport幅 - 拡大後の実効幅 562.5px) / 2 */
    .pc-side {
        width: calc((100vw - 562.5px) / 2);
    }
}

/* 1081px以上：右装飾画像をフェード表示（1080px以下は非表示・修正260612） */
@media (min-width: 1081px) {
    .pc-side--right img {
        opacity: 1;
        visibility: visible;
    }
}

/* 左カラム：スクロール示唆（画像 + ふわふわアニメーション）
   装飾は769px以上のみ表示（500px〜768px は構造だけ存在） */
.pc-scroll-indicator {
    display: block;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
    animation: float-ud 2s ease-in-out infinite;
    pointer-events: none;
}
.pc-scroll-indicator img {
    display: block;
    width: 18px;
    height: auto;
}
@media (min-width: 769px) {
    .pc-scroll-indicator {
        opacity: 1;
        visibility: visible;
    }
}



/* ==========================================================
   共通
========================================================== */
.section-bg01 {
    background-color: #fff;
}
.section-bg02 {
    background-color: #d8531a;
}

/* ==========================================================
   FV
   構造：KV画像 / のれん（中央・season画像の上にかぶさる）/ 販売期間帯（下揃え）
========================================================== */
.fv-box {
    position: relative;
    overflow: hidden;
}
.fv-main {
    width: 100%;
}
/* 販売期間帯：KV下端に下揃え */
.fv-season {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 1;
}
/* のれん：中央寄せ、season帯の上部にかぶさる */
.fv-noren {
    position: absolute;
    left: calc(50% + -.65em);
    transform: translateX(-50%);
    bottom: 16%;
    width: 27.733333333%;
    z-index: 2;
}


/* ==========================================================
   プレゼントセクション
   背景：#fff（body テクスチャの上に白カード）
========================================================== */
.present {
    padding: 15px 10px 30px;
}
.present-inner {
    padding: 10px 12px;
    border-radius: 6px;
}
.present-title {
    margin-bottom: 12px;
}
.present-title img {
    width: 100%;
}
.present-list {
    display: flex;
    flex-direction: column;
    gap: 22px;
	padding: 0 5px 0 10px;
}
.present-item img {
    width: 100%;
}
.present-note {
    text-align: right;
    margin-top: 8px;
	padding: 0 20px;
}
.present-note img {
    width: 30%;
    margin-left: auto;
}

/* ==========================================================
   対象商品セクション（オレンジ背景）
   背景：#d8531a
   コンテンツ内白カード：background #fff
========================================================== */
.section-target {
    background: #d8531a;
    padding: 26px 20px;
}

/* 対象商品タイトルラベル：白カードに少しかぶさる */
.target-product-title {
    margin: 0 auto -34.328358209%;
    padding: 0 23px 0 15px;
    position: relative;
    z-index: 1;
}
.target-product-title img {
    width: 100%;
}

/* 白コンテンツカード */
.target-product-inner {
    background: #fff;
    padding: 128px 6% 28px;
}
.target-product-inner img {
    width: 100%;
}

/* お得なメール便 */
.mail-bin {
	margin-top: 38px;
    padding: 25px 28px 38px 25px;
}
.mail-bin img {
    width: 100%;
}
.mail-bin-title {
    width: 55.223880597%;
    margin: 0 auto 12px;
}

/* オンラインショップ */
.online-shop {
    margin-top: 36px;
    padding: 28px 29px 30px;
}
.online-shop-title {
    margin-bottom: 16px;
}
.online-shop-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
	padding: 0 10px;
}
.online-shop-grid a img {
    width: 100%;
}

/* ==========================================================
   CTAセクション（応募方法）
========================================================== */
.cta-section {
        padding: 0 45px 108px;
    }
.cta-title {
    width: 78.933333333%;
    padding-top: 50px;
    margin-bottom: 5%;
}
.cta-steps {
    display: flex;
	flex-direction: column;
    justify-content: center;
    gap: 12px;
    margin-bottom: 50px;
}
.cta-btn {
    padding: 0 13px;
}


/* ==========================================================
   商品紹介セクション
   product-title は cta背景に重なるよう負のマージンで引き上げ
========================================================== */
.product {
    padding: 48px 0 52px;
}
.product-title {
    width: 67.466666666%;
    margin: 0 auto -24px;
}
.product-img01 {
    margin: 0 auto 72px;
    padding: 0 22px 0 28px;
}
.product-img02 {
    padding: 0 38px 0 25px;
}

/* ==========================================================
   キャンペーン詳細セクション
   構造：セクション全体がオレンジ背景
         dt（見出し）= 横線付き中央テキスト
         dd（内容）  = 白コンテンツブロック（縦積み）
========================================================== */
.campaign {
    padding: 68px 18px 50px;
}
.campaign-title {
    margin-bottom: 38px;
	padding: 0 20px;
}
.campaign-title img {
    width: 80%;
    margin: 0 auto;
}

/* 縦積みリスト */
.campaign-list {
    margin: 0;
    padding: 0 20px 60px;
	background: #fff;
}

/* 見出し：両サイドに横線、中央にテキスト */
.campaign-list dt {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 0 8px;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}
.campaign-list dt::before,
.campaign-list dt::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgba(0, 0, 0, 0.6);
}

/* コンテンツブロック：白 */
.campaign-list dd {
    padding: 5px 0 25px;
    margin: 0;
    font-size: 1.3rem;
    line-height: 1.5;
}

/* ==========================================================
   フッター
========================================================== */
footer {
    padding: 0 0 58px;
    text-align: center;
    background: #fff;
}
.footer-logo {
    width: 200px;
    margin: 0 auto;
}
