/* リセットとベーススタイル */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

abbr,
address,
article,
aside,
audio,
b,
blockquote,
body,
canvas,
caption,
cite,
code,
dd,
del,
details,
dfn,
div,
dl,
dt,
em,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
html,
i,
iframe,
img,
ins,
kbd,
label,
legend,
li,
main,
mark,
menu,
nav,
object,
ol,
p,
pre,
q,
samp,
section,
small,
span,
strong,
sub,
summary,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
time,
tr,
ul,
var,
video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	font-weight: normal;
	vertical-align: baseline;
	background: transparent
}

body {
	line-height: 1
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
	display: block
}

ol,
ul {
	list-style: none
}

blockquote,
q {
	quotes: none
}

blockquote:after,
blockquote:before,
q:after,
q:before {
	content: "";
	content: none
}

a { color: var(--color-primary); text-decoration: none; }
a:hover { opacity: 0.75; }

body {
    font-family: 'Inter', 'Noto Sans JP', 'Noto Sans', sans-serif;
    background-color: #ffffff;
    color: #000000;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}


.header {
    padding: 4px 0 32px 0;
    text-align: center;
    max-width: 1100px;
    width: 100%;
    margin: 0 auto;
}

.pocketlogo{
    width: 220px;
    height: auto;
    margin-right: auto;
}


/* コンテナ */
.container {
    min-height: 100vh;
    background-color: #ffffff;
}

/* 背景画像セクション */
.background-wrapper {
    position: relative;
    overflow: hidden;
    background: url(images/background.webp)no-repeat center;
    top: 0;
    left: 0;
    background-size: cover;
    padding: 8px 8px;
}


/* キャンペーンタイトル */
.title-section {
    position: relative;
    z-index: 10;
}

.title-image {
    width: 100%;
    height: auto;
    margin: 0 auto;
}

/* 商品画像エリア */
.products-section {
    position: relative;
    z-index: 10;
    padding: 0 16px;
    margin-top: 32px;
    margin-bottom: 30px;
}

.products{
    display: flex;
    margin: auto;
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: 1000px;
}


/* キャンペーン期間セクション */
.campaign-period-section {
    position: relative;
    z-index: 10;
    margin: 48px 0;
    padding: 0 16px;
}

.campaign-period-content {
    max-width: 800px;
    margin: 0 auto;
}

.section-title-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-bottom: 12px;
}

.section-title-line {
    height: 1px;
    width: 60px;
    background-color: #000000;
}

.section-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 24px;
    font-weight: 500;
    text-align: center;
    white-space: nowrap;
}

.date-container {
    text-align: center;
    margin-bottom: 16px;
}

.date-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: 'Noto Serif JP', serif;
    line-height: 0.5;
}

.date-group {
    display: flex;
    align-items: center;
    gap: 4px;
}

.date-year {
    font-size: 24px;
}

.date-year-mobile {
    display: inline;
}

.date-number {
    font-size: 32px;
    font-weight: 500;
}

.date-unit {
    font-size: 24px;
}

.date-separator {
    font-size: 32px;
}

.date-day-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    top: 2px;
}

.date-day-circle {
    width: 29px;
    height: 29px;
    background-color: #d9d9d9;
    border-radius: 50%;
}

.date-day-text {
    position: absolute;
    font-size: 15px;
}

/* ID連携ボタン */
.cta-section {
    position: relative;
    z-index: 10;
    margin-top: 32px;
    padding: 0 16px;
}

.cta-button {
    display: block;
    max-width: 363px;
    margin: 0 auto;
    background-color: #f29600;
    color: #ffffff;
    text-align: center;
    text-decoration: none;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 20px;
    font-weight: 500;
    padding: 16px;
    border-radius: 90px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: background-color 0.3s ease;
}

.cta-button:hover {
    background-color: #d98600;
}

/* 応募条件セクション */
.conditions-section {
    position: relative;
    z-index: 10;
    margin-top: 48px;
    padding: 0 16px;
}

.conditions-content {
    max-width: 1000px;
    margin: 0 auto;
}

.notice-content {
    max-width: 1000px;
    margin: 0 auto;
}

.conditions-header {
    background: linear-gradient(to right, #bb1a21, #e50012, #bb1a21);
    padding: 4px 0;
    margin: 48px 0 24px;
}

.conditions-title {
    text-align: center;
    color: #ffffff;
    font-size: 20px;
    font-weight: 400;
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
}

.conditions-text {
    font-size: 15px;
    line-height: 27px;
}

.conditions-text p {
    margin-bottom: 16px;
}

.conditions-text p:last-child {
    margin-bottom: 0;
}


.notice-text {
    font-size: 1rem;
    text-align: center;
    color: #bb1a21;
    margin-top: 32px;
    padding-bottom: 6px;
    border-bottom: 1px solid #bb1a21;
    font-weight: bold;
}

.terms-heading{margin-top: 20px;font-weight: bold;}


    .col2 {
    width: 48%;
}

#footer .notice{margin-top: 12px;font-size: 1.2rem}
#footer{border-top: #83a1b7 solid 3px;padding:20px 0;text-align: center;}
#footer .contact{font-size: 1.2rem;font-weight: 700;letter-spacing: 0.1em;text-indent: 0.1em;margin-top: 40px;margin-bottom: 20px}
#footer .qa a{display: inline-block;color: #fff;margin:20px auto 40px;background: #83a1b7;padding: 12px 20px;font-size: 1.2rem;font-weight: 700;letter-spacing: 0.1em;text-indent: 0.1em;text-decoration: none;}
#footer{max-width:1000px;margin: auto;margin-top: 4%;}

#footer .tlink{margin: 60px auto 30px}
#footer .tlink li{padding:0 20px}
#footer .tlink li+li{border-left: 1px solid #000;}
#footer .logo{background: #fff;padding: 20px 0}
#footer .logo li{padding:0 20px}
#footer address{padding: 12px;text-align: center}

@media screen and (max-width: 751px) {/*スマホのスタイル*/
#footer .notice{margin-top: 12px;font-size: 1rem}
#footer .contact a{font-size: 1.4rem;}
#footer .qa a{padding: 6px 12px;font-size: 1rem;}
#footer .toiawase li{width: 100%;margin-bottom: 20px}
#footer dl{font-size: 0.8rem;}
#footer dt span{font-size: 1.2rem}
#footer dd{padding-left: 10px;line-height: 1.2em}
#footer dd .name{font-size: 1.3rem}
#footer dd .tel{font-size: 1.6rem;letter-spacing: 0.2em;line-height: 2}
#footer .tlink{margin: 10px auto 10px}
#footer .tlink li{padding:0 5px;font-size: 0.8rem}
#footer .logo li{width: 50%;padding: 10px}
#footer address{font-size: 0.7rem}
}

.flex {
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    display: -webkit-flex;
    flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
}
    .flex--bet {
    justify-content: space-between;
    -webkit-justify-content: space-between;
}

#footer .tlink {
    margin: 60px auto 30px;}

    .flex--center {
    justify-content: center;
    -webkit-justify-content: center;
}



/* タブレット・デスクトップ対応 (768px以上) */
@media (min-width: 768px) {

    /* キャンペーンタイトル */
    .title-section {
        padding: 0;
    }

    .title-image {
        max-width: 1000px;
    }

    /* 商品画像エリア */
    .products-section {
        margin-top: 48px;
    }


    /* キャンペーン期間セクション */
    .campaign-period-section {
        margin-top: 64px;
    }

    .section-title-line {
        width: 100px;
    }

    .section-title {
        font-size: 32px;
    }

    .date-container {
        margin-bottom: 24px;
    }

    .date-wrapper {
        flex-direction: row;
        gap: 16px;
    }

    .date-year {
        font-size: 32px;
    }

    .date-year-mobile {
        display: none;
    }

    .date-number {
        font-size: 48px;
    }

    .date-unit {
        font-size: 32px;
    }

    .date-separator {
        font-size: 40px;
    }

    /* ID連携ボタン */
    .cta-section {
        margin-top: 48px;
    }

    .cta-button {
        max-width: 580px;
        font-size: 26px;
        padding: 28px;
    }

    /* 応募条件セクション */
    .conditions-section {
        margin-top: 64px;
    }

    .conditions-header {
        padding: 4px 0;
    }




}

/* スマホ専用 (767px以下) */
@media (max-width: 767px) {

    .header {
    padding: 2px 0 16px 0;
    text-align: center;
    width: 100%;
    margin: 0 auto;
}


    .pocketlogo{
    width: 140px;
    height: auto;
    margin-right: auto;
}

    .title-section {
        padding: 8px 8px 0;
    }

    .title-image {
        max-width: 100%;
    }

    .products{
    display: flex;
    margin: auto;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
}

.products li{width: calc(100% / 2 - 8px);}

.products-section {
    position: relative;
    z-index: 10;
    padding: 0 4px;
    margin-top: 22px;
    margin-bottom: 20px;
}

    .campaign-period-section,
    .cta-section,
    .conditions-section {
        margin-top: 32px;
        padding: 0 12px;
    }

    .section-title {
        font-size: 22px;
    }

    .date-number {
        font-size: 36px;
    }

    .cta-button {
        font-size: 18px;
        padding: 14px;
        width: 90%;
    }

    .conditions-text {
        font-size: 14px;
        line-height: 24px;
    }

    .notice-content {
    width: 100%;
    margin: 0 auto;
    padding: 0 3%;
}
#footer{padding: 0 3%;}

    picture {
        display: block;
        width: 100%;
        padding: 0 3%;
    }

        .date-separator {
        font-size: 26px;
        transform:rotate(90deg);
    }

}

  /* ===== Variables ===== */
  :root {
    --red: #c0181e;
    --red-dark: #a01015;
    --gray-arrow: #999;
    --step-gap: 32px;
  }

  /* ===== Section wrapper ===== */
  .oubo-section {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
  }

  /* =========================================
     PC LAYOUT (横並び)
  ========================================= */
  .oubo-pc {
    display: flex;
    align-items: stretch;
    border: 2px solid var(--red);
    gap: 0;
  }

  /* 左：「応募方法」縦書きラベル */
  .oubo-label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 56px;
    padding: 12px 8px;
    margin-right: 24px;
    background: linear-gradient(-45deg, #b81c22, #e50012, #b81c22);
    text-align: center;
    font-family: serif;
  }
  .oubo-label span {
    writing-mode: vertical-rl;
    font-size: 28px;
    font-weight: 900;
    letter-spacing: 0.25em;
    color: #fff;
    line-height: 1;
  }

  /* 右：ステップ群 */
  .oubo-steps {
    flex: 1;
    display: flex;
    align-items: flex-start;
    gap: 0;
  }

  /* 各ステップ */
  .step {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1%;
  }

  /* ステップヘッダー（赤バー＋三角） */
  .step-header {
    position: relative;
    width: 100%;
  }
  .step-bar {
    background: linear-gradient(-45deg, #b81c22, #e50012, #b81c22);
    color: #fff;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-align: center;
    width: 100%;
    clip-path: polygon(0 0, 100% 0, 100% 60%, 52% 60%, 50% 80%, 48% 60%, 0 60%);
    padding-bottom: 20px;
  }
  .step-bar sup {
    font-size: 14px;
    vertical-align: super;
  }

  /* コンテンツ */
  .step-content {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
  }

  .step-image {
    object-fit: cover;
  }
  .img-qr {
    width: 200px;
    height: 200px;
  }
  .img-screen {
    width: 200px;
    height: 200px;
  }

  .step-text {
    font-size: 14px;
    line-height: 1.8;
    color: #333;
  }

  /* PC間の矢印 */
  .arrow {
    width: 36px;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-self: center;
    margin-top: 20px; /* visual centering after header */
  }
  .arrow svg {
    fill: var(--gray-arrow);
  }

  /* 注記 */
  .oubo-note {
    margin-top: 5px;
    font-size: 12px;
    color: #444;
    text-align: right;
  }

  .pc-only{display: block;}
  .sp-only{display: none;}


  /* =========================================
     Responsive breakpoint
  ========================================= */
  @media (max-width: 767px) {

      .oubo-section {
    width: 94%;
    margin: 0 auto;
  }

    .oubo-pc {
      display: block;
    }

    .oubo-label {
      min-width: auto;
      margin-right: 0;
      writing-mode: horizontal-tb;
      font-size: 22px;
      letter-spacing: 0.3em;
      padding: 10px 0;
      font-family: serif;
    }
    .oubo-label span {
      writing-mode: horizontal-tb;
      font-size: 24px;
      letter-spacing: 0.3em;
    }

    .oubo-steps {
      display: flex;
      flex-direction: column;
      gap: 0;
      padding: 1%;
    }

    .step {
      width:100%;
      padding: 0 8px 8px;
    }

        .step:first-child{
   margin-top: 10px;
    }


    .step-content {
      flex-direction: row;
      align-items: center;
      gap: 16px;
      text-align: left;
    }

    .step-text {
      flex: 1;
    }

    .img-qr {
      width: 160px;
      height: 160px;
    }
    .img-screen {
      width: 160px;
      height: 160px;
    }

    .arrow {
      width: 100%;
      margin: 8px 0;
    }
    .arrow svg {
      transform: rotate(90deg);
    }

    .oubo-note {
      margin-top: 5px;
      text-align: center;
    }

    .br-pc {
      display: none;
    }
  
  .pc-only{display: none;}
  .sp-only{display: block;}

  }