
.select-icon-row {
  width: 80vw;              /* 画面幅の80% */
  margin: 0 auto;           /* 中央寄せ */
  display: flex;            /* 横並び */
  justify-content: space-between; /* 画像間を均等に配置 */
}

.select-icon-row img {
  width: calc(80vw / 3 - 10px);  /* 3枚分の幅（余白調整） */
  height: auto;
}


.wrap70 {
    width: 70%;
    margin: 50px auto 0 auto;
    overflow-x: auto;
}

.wrap80 {
    width: 80%;
    margin: 0 auto;
    overflow-x: auto;
}


/* チェックポイントの一覧表 */

.wrap90 {
    width: 90%;
    margin: 50px auto 0 auto;
    overflow-x: auto;
}

table.clShopTable {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;  /* 指定割合で固定 */
    border: 2px solid #000;
}

table.clShopTable th,
table.clShopTable td {
    border: 2px solid #000;
    padding: 10px;
    text-align: left;
    vertical-align: middle;
    word-wrap: break-word;
}

table.clShopTable th {
    text-align: center;
    font-size: 20px;
}

table.clShopTable td {
    font-size: 20px;
}


/* 列幅の指定 */
table.clShopTable th:nth-child(1),
table.clShopTable td:nth-child(1) {
    width: 40%;
}
table.clShopTable th:nth-child(2),
table.clShopTable td:nth-child(2),
table.clShopTable th:nth-child(3),
table.clShopTable td:nth-child(3),
table.clShopTable th:nth-child(4),
table.clShopTable td:nth-child(4) {
    width: 20%;
}

table.clShopTable td:nth-child(1) {
    text-align: left;
}
table.clShopTable td:nth-child(2) {
    text-align: center;
}
table.clShopTable td:nth-child(3) {
    text-align: right;
}
table.clShopTable td:nth-child(4) {
    text-align: center;
}

/** 地図 **/

#map {
    width: 95%;
    height: 500px;
    margin: 0 auto;
    display: block;
    border: 2px solid #000;
}

/* 右上に配置する更新ボタン */

#updateBtn {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 1000;
    background-color: white;
    padding: 8px 12px;
    border: 1px solid #444;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    box-shadow: 0px 2px 4px rgba(0,0,0,0.3);
}


/* ヘッダ */

.text_center_header {
    text-align: center;
    font-size: 28px;
    font-weight: bold;
}
.text_center {
    text-align: center;
    font-size: 20px;
}

.text_left {
    text-align: left;
    font-size: 20px;
}


/* Mypage 獲得表 */

table.clRankTable {
    border-collapse: collapse;
    width: 60%;
    max-width: 600px;
    margin: 0 auto;
    font-size: 25px;
}
table.clRankTable td {
    padding: 5px 10px;
}

/* 階層ごとの字下げと背景色 */
#clRankTable .level-1 {
    padding-left: 0px;
}
#clRankTable .level-2 {
    padding-left: 50px;
}

/* 値の列を右寄せ */
#clRankTable .valueR {
    text-align: right;
}



.cp_iptxt {
    position: relative;
    width: 80%;
    margin-bottom: 20px;
}
.cp_iptxt input[type='text'] {
    font: 30px/48px sans-serif;
    width: 100%;
    box-sizing: border-box;
    padding: 0.6em;
    letter-spacing: 1px;
    color: #000000;
    border: 1px solid #1b2538;
    border-radius: 4px;
    margin:0px 20px 0px 0px;
}

.cp_iptxt input[type='tel'] {
    font: 30px/48px sans-serif;
    width: 100%;
    box-sizing: border-box;
    padding: 0.6em;
    letter-spacing: 1px;
    color: #000000;
    border: 1px solid #1b2538;
    border-radius: 4px;
    margin:0px 20px 0px 0px;
}

.cp_iptxt input[type='number'] {
    font: 30px/48px sans-serif;
    width: 100%;
    box-sizing: border-box;
    padding: 0.6em;
    letter-spacing: 1px;
    color: #000000;
    border: 1px solid #1b2538;
    border-radius: 4px;
    margin:0px 20px 0px 0px;
}

.cp_iptxt input[type='email'] {
    font: 30px/48px sans-serif;
    width: 100%;
    box-sizing: border-box;
    padding: 0.6em;
    letter-spacing: 1px;
    color: #000000;
    border: 1px solid #1b2538;
    border-radius: 4px;
    margin:0px 20px 0px 0px;
}

.cp_iptxt input[type='textarea'] {
    font: 30px/48px sans-serif;
    width: 100%;
    box-sizing: border-box;
    padding: 0.6em;
    letter-spacing: 1px;
    color: #000000;
    border: 1px solid #1b2538;
    border-radius: 4px;
    margin:0px 20px 0px 0px;
}

.cp_iptxt_stamp {
    position: relative;
    width: 50%;
    margin-bottom: 20px;
}
.cp_iptxt_stamp input[type='number'] {
    font: 30px/48px sans-serif;
    width: 100%;
    box-sizing: border-box;
    padding: 0.6em;
    letter-spacing: 1px;
    color: #000000;
    border: 1px solid #1b2538;
    border-radius: 4px;
    margin:20px 20px 20px 0px;
    text-align: center;
    margin: 0 auto;
    
}


.cp_iptxt_help {
    font: 24px sans-serif;
    text-align: left;
}
    
.cp_iptxt_caution {
    font: 24px sans-serif;
    color: #ff0000;
    text-align: center;
    
}
    

    



.agreement-area{
//    border:1px dashed #e1e4ea;
    padding:10px;
//    border-radius:8px;
//    background:#fbfdff;
}

textarea#kiyaku{
    width:95%;
    height:320px;
    resize:vertical;
    padding:8px;
    border-radius:6px;
    border:1px solid #000000;
    background:white;
    font-size:20px;
    line-height:1.4;
		    
}

.controls{display:flex;align-items:center;gap:8px;margin-top:12px}
button#login{flex:1;padding:10px;border-radius:8px;border:0;background:#ffffff;color:white;font-weight:600;cursor:pointer}
button[disabled]{opacity:0.5;cursor:not-allowed}
.muted{font-size:12px;color:#6b7280}
.error{color:#b91c1c;font-size:13px;margin-top:8px}



/* 賞品ページ */
      .cards {
          margin: 0 auto;
          padding: 40px 0;
          display: flex;
          justify-content: center;
//          background: #f5f7fa;
          font-family: system-ui, sans-serif;

          width: 90vw;
          max-width: 1100px;
          display: flex;
          flex-direction: column;
          gap: 20px;
      }
      .card {
          display: flex;
          background: #fff;
          height: 300px;
          border-radius: 12px;
          box-shadow: 0 6px 18px rgba(20,20,40,0.06);
          overflow: hidden;
      }
      .thumb {
          flex: 0 0 40%;
          display: flex;
          align-items: center;
          justify-content: center;
          background: #eee;
      }
      .thumb img {
          width: 90%;
          height: auto;
          max-height: 100%;
          object-fit: cover;
      }
      .content {
          flex: 1;
          padding: 28px;
          display: flex;
          flex-direction: column;
          justify-content: center;
          gap: 6px;
      }
      .content p {
          margin: 0;
          font-size: 16px;
          line-height: 1.45;
      }
      .content .title {
          font-weight: 700;
          font-size: 18px;
          margin-bottom: 6px;
      }


