@charset "utf-8";

body {
  margin: 0; /* marginを0に設定しています */
}

#template {
	width: 100%;
  max-width: 520px;
  min-width: 375px;
	margin: 0 auto;
}

#template img {
  vertical-align: bottom;
  max-width: 100%;
}

#template .box_container {
  display: flex;
  align-items: center;
}

#template .box {
  position: relative;
}

#template .box_btn {
  position: absolute;
  bottom: 8.2%;
  width: 88.9%;
  max-width: 77%;
}

#template .box:nth-of-type(1) .box_btn {
  left: 15%;
}

#template .box:nth-of-type(2) .box_btn {
  left: 8%;
}

#template .box .box_btn img {
  max-width: 100%;
}

#template .box.select_box {
  position: relative;
}

#template .box.select_box .custom-select-wrapper {
  position: absolute;
  top: 68%;
  width: 100%;
  display: flex;
  align-content: middle;
  justify-content: center;
  align-items: center;
  gap: 5%;
  height: fit-content;
}

#template .box.select_box:first-child .custom-select-wrapper {
  margin-left: 4%;
}

#template .box.select_box:last-child .custom-select-wrapper {
  margin-left: -6%;
}

.custom-select-wrapper label {
    font-size: 2.4vh;
    color: rgb(105, 105, 105);
}

.submit-button {
  height: 118px;
  background: #fff;
  background-size: cover;
  background-repeat: no-repeat;
  border: none;
  cursor: pointer;
  text-indent: -9999px;
}

.submit-button:first-child {
   background-image: url('../img/0613_campaign_buy_button_01.png');
}
.submit-button:last-child {
   background-image: url('../img/0613_campaign_buy_button_02.png');
}

#template .link_container {
  position: relative;
}

#template .link {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 14.1%;
  margin: 0 auto;
  width: 33.1%;
  max-width: 248px;
}

dl {
  margin: 0;
  padding: 0;
}

dl dd {
  margin: 0;
  padding: 0;
}

dl dt img {
  width: 100%;
  max-width: 100%;
}

.custom-select {
    position: relative;
    display: inline-block;
    width: 131px;
    min-width: 80px;
}

.custom-select select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-color: #ffffff;
    border: 2px solid #d1d5db;
    border-radius: 4px;
    padding: 8% 36px 8% 16px;
    font-size: 2.4vh;
    font-weight: 500;
    color: #374151;
    cursor: pointer;
    min-height: 4.5vh;
    width: 100%;
    transition: all 0.2s ease;
}

.custom-select select:hover {
    border-color: #9ca3af;
}

.custom-select select:focus {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.custom-select::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid #6b7280;
    pointer-events: none;
    transition: transform 0.2s ease;
}

/* フォーカス時のアニメーション */
.custom-select:focus-within::after {
    transform: translateY(-50%) rotate(180deg);
}

.campaign-image-container {
  position: relative;
}

.campaign-link {
  position: absolute;
  bottom: 8%;
  left: 13%;
  margin-top: 0;
  margin-bottom: 0px;
  font-size: 14px;
}

.campaign-terms {
  padding: 24px 10%;
  background-color: rgb(233, 233, 233);
  color: rgb(7, 16, 63);
  font-size: 14px;
  word-break: break-all;
}

.campaign-terms h2 {
  font-size: 14px;
  margin: 0;
  padding: 0;
}
.campaign-terms h3 {
  font-size: 14px;
  margin-top: 1em;
  margin-bottom: 0;
}
.campaign-terms p {
  margin: 0;
  padding: 0;
}

/* フッター
-------------------------------------------------------------- */
footer {
	background-color: #e8e8e8;
  padding-bottom: 60px;
}

footer .guide_link  {
	margin: 0 auto;
	padding: 7% 0 0;
	width: min(calc(310 / 750 * 100vw), 210px);
}

.footer_nav {
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-top: 5%;
	/* margin-bottom: 8%; */
  gap: 0.8em;
}

.footer_nav p {
	font-size: min(calc(21 / 750 * 100vw), 14px);
	font-weight: 500;
  text-align: center;
	margin-top: 0;
  margin-bottom: 0;
}

.footer_nav a {
	color: #444444;
}

#footer {
	margin: 0;
	background-color: #322e71;
	color: #fff;
}


@media screen and (max-width: 375px) {
  #template .box.select_box .custom-select-wrapper {
    position: absolute;
    top: 94%;
    height: fit-content;
    margin-top: -91px;
  }

  .custom-select {
    width: 92px;
  }
  .custom-select select {
    width: 95px;
  }
}


@media screen and (max-width: 520px) {
  .custom-select {
      width: 25vw;
  }
  .submit-button {
    margin: 0 auto;
    min-width: 252px;
    max-height: 85px;
  }
  .campaign-link {
    font-size: 10px;
  }
  .campaign-terms {
    font-size: 12px;
  }
  .custom-select-wrapper label {
    font-size: 1.8vh;
  }
  .custom-select select {
    font-size: 1.8vh;
  }
}