html {
    font-size: 16px; /* ベースのフォントサイズ */
  }
  
/* ベーススタイル（スマートフォン用） */
* {
    box-sizing: border-box;
}

body {
    font-family: 'Helvetica Neue', Arial, sans-serif;
    line-height: 1.6;
    color: #333;
    margin: 0;
    padding: 0;
    background-color: #FFFFFF;
}

.container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0;
}

header {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.header-image {
    width: 100%;
    height: auto;
    display: block;
}

h1, h2 {
    margin-bottom: 20px;
}

#steps {
    background-color: #FFFFFF;
    padding: 25px 20px 15px;
    text-align: center;
}

.steps-title {
    margin-bottom: 15px;
}

.steps-title-image {
    max-width: 100%;
    height: auto;
}

.steps-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 35px;
    margin-bottom: 30px;
}

.step {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.step-number-image {
    max-width: 28%;
    height: auto;
    margin-bottom: 10px;
}

.step-description {
    font-size: 19px;
    line-height: 1.6;
    text-align: center;
    font-weight: 600;
}

.underline {
    text-decoration: underline;
    text-decoration-color: #FF6600;
    text-underline-offset: 5px;
    color: #040000;
    font-weight: bold;
}

.btn-container {
    text-align: center;
    margin: 30px 0;
}

.btn {
    display: inline-block;
    background-color: #FF6600;
    color: white;
    padding: 15px 30px;
    text-decoration: none;
    border-radius: 5px;
    font-size: 18px;
    font-weight: bold;
    transition: background-color 0.3s;
}

.btn:hover {
    background-color: #FF8533;
}

#lottery {
    background-color: #FFFFFF;
    padding: 0 20px 105px;
    text-align: center;
}

.orange-background {
    background-color: #ff5a00;
    padding: 20px 0 40px;
    margin: -55px 0;
    border-top-left-radius: 100% 5%;
    border-top-right-radius: 100% 5%;
    border-bottom-left-radius: 100% 5%;
    border-bottom-right-radius: 100% 5%;
    position: relative;
    z-index: 1;
}

#vote, .trivia, .stamp-book-button-container {
    max-width: 600px;
    margin: 0 auto;
    padding: 0 15px;
}

.candy-list {
    list-style-type: none;
    padding: 0;
    margin: 0 0 35px;
}

.candy-list-title {
    text-align: center;
    margin-top: -43px;
    margin-bottom: 10px;
}

.candy-list-image {
    max-width: 100%;
    height: auto;
}

.candy-item {
    margin-bottom: 10px;
    padding: 5px;
    display: flex;
    align-items: center;
}

.candy-item-image {
    flex: 0.8;
    text-align: center;
}

.candy-item-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #FFFFFF;
    padding-left: 5px;
}

.candy-item-product-name {
    font-size: clamp(1rem, calc(1.4rem + 0.625vw), 1.4rem);
    font-weight: bold;
    line-height: 1;
}

.candy-item-product-description {
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 20px 0;
    font-size: clamp(0.3rem, calc(0.6rem + 0.625vw), 1rem);
}

.candy-item-product-button {
    text-align: center;
    position: relative;
    font-weight: 800;
}

.vote-btn {
    position: relative;
    z-index: 1;
    background-color: #ffff00;
    color: #ff5a00;
    border: none;
    padding: 5px 10px;
    border-radius: 15px;
    cursor: pointer;
    width: 100%;
    height: 60px;
    font-size: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.purchased {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #FFFFFF;
    z-index: 2;
    pointer-events: none;
    display: none;
    width: 100%;
    text-align: center;
    font-size: 20px;
}

.overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: none;
    background-color: #000000;
    opacity: 0.4;
    border-radius: 15px;
}

.vote-warning {
    width: 100%;
    text-align: center;
    font-size: 11px;
    color: #FFFFFF;
}

.trivia {
    margin-top: 40px;
    position: relative;
}

.trivia-container {
    position: relative;
    width: 100%;
    margin: 0 auto;
}

.trivia-background-image {
    width: 100%;
    height: auto;
    display: block;
}

.trivia-content-wrapper {
    position: absolute;
    top: 15%;
    left: 10%;
    right: 10%;
    bottom: 5%;
    overflow: hidden;
}

.trivia-content {
    font-family: '小塚ゴシック Pr6N';
    height: 100%;
    overflow-y: hidden;
    font-size: 70%;
    font-weight: 800;
    line-height: 1.6em;
    text-align: justify;
    text-justify: inter-word;
    letter-spacing: 0.3em;
}

.trivia-content p {
    margin-bottom: 8px;
}

.highlight {
    color: #FF6600;
    font-weight: bold;
}

.trivia-content::-webkit-scrollbar {
    width: 5px;
}

.trivia-content::-webkit-scrollbar-thumb {
    background-color: #FF6600;
    border-radius: 5px;
}

.trivia-content::-webkit-scrollbar-track {
    background-color: #f1f1f1;
}

.stamp-book-button-container {
    text-align: center;
    margin-top: 20px;
}

.stamp-book-button {
    display: inline-block;
    width: 80%;
    background-color: #FF6600;
    color: white;
    text-decoration: none;
    padding: 10px 20px;
    border: solid 2px #FFFFFF;
    border-radius: 15px;
    font-size: 128%;
    font-weight: bold;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    transition: background-color 0.3s, transform 0.3s;
    letter-spacing: 3px;
}

.stamp-book-button:hover {
    background-color: #FF8533;
    transform: translateY(-2px);
}

.stamp-book-button:active {
    transform: translateY(0);
}

#campaign {
    color: #4B4B4B;
    font-size: 12px;
    padding: 55px 20px 20px;
    background-color: #FFFFFF;
}

#campaign h3 {
    margin-top: 20px;
    margin-bottom: 10px;
    color: #4B4B4B;
    font-size: 14px;
    text-align: center;
}

#campaign ul {
    padding-left: 20px;
    line-height: 1.5;
    margin: 0;
}

#campaign li {
    margin-bottom: 0;
}

/* フォントサイズクラス */
.fs-10 { font-size: 10px; }
.fs-11 { font-size: 11px; }
.fs-12 { font-size: 12px; }
.fs-13 { font-size: 13px; }
.fs-14 { font-size: 14px; }
.fs-15 { font-size: 15px; }
.fs-16 { font-size: 16px; }
.fs-18 { font-size: 18px; }
.fs-20 { font-size: 20px; }
.fs-22 { font-size: 22px; }
.fs-24 { font-size: 24px; }
.fs-26 { font-size: 26px; }
.fs-28 { font-size: 28px; }
.fs-30 { font-size: 30px; }
.fs-32 { font-size: 32px; }
.fs-36 { font-size: 36px; }
.fs-40 { font-size: 40px; }
.fs-48 { font-size: 48px; }
.fs-56 { font-size: 56px; }
.fs-64 { font-size: 64px; }

/* PC・タブレット用スタイル */
@media screen and (min-width: 573px) {
    body {
        background-image: url(../img/pc_backgroundimage.jpg);
        background-size: auto 919px;
        background-attachment: fixed;
        background-position: top;
        background-repeat: repeat-x;
    }
    header, .container{
        max-width: 573px;
        max-height: 919px;
        height: 100vh;
        width: auto;
        margin: 0 auto;
    }

    header {
        max-width: 573px;
    }
    
    .trivia-content {
        font-size: 1.1em;
    }

    /* PC・タブレット用フォントサイズ調整 */
    .fs-10 { font-size: 12px; }
    .fs-11 { font-size: 13px; }
    .fs-12 { font-size: 14px; }
    .fs-13 { font-size: 15px; }
    .fs-14 { font-size: 16px; }
    .fs-15 { font-size: 17px; }
    .fs-16 { font-size: 18px; }
    .fs-18 { font-size: 20px; }
    .fs-20 { font-size: 22px; }
    .fs-22 { font-size: 24px; }
    .fs-24 { font-size: 26px; }
    .fs-26 { font-size: 28px; }
    .fs-28 { font-size: 30px; }
    .fs-30 { font-size: 32px; }
    .fs-32 { font-size: 34px; }
    .fs-36 { font-size: 38px; }
    .fs-40 { font-size: 42px; }
    .fs-48 { font-size: 50px; }
    .fs-56 { font-size: 58px; }
    .fs-64 { font-size: 66px; }
}