/* Scoped styles for embedding aa3 content inside index.html */
#campaign {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "游ゴシック", YuGothic, sans-serif;
  color: #333;
  font-size: 18px;
  line-height: 1.4;
  -webkit-text-size-adjust: none;
}
#campaign *, #campaign *:before, #campaign *:after {
  box-sizing: border-box;
}
#campaign ul {
  list-style: none;
}
#campaign a {
  color: #0074BD;
  text-decoration: none;
  transition: color 0.3s;
}
@media only screen and (max-width: 480px) {
  #campaign {
    font-size: 12px;
  }
}

/* contents------------------------------- */
#campaign .largeText{
  font-size: 1.3em; }

#campaign .smallText{
  font-size: 1.1em; }

#campaign .boldText{
  font-weight: bold; }

#campaign .titleText{
  font-weight: bold; }

#campaign .marginBottom1em{
  margin-bottom: 1em; }

#campaign .marginBottom2em{
  margin-bottom: 2em; }

#campaign .marginBottom3em{
  margin-bottom: 3em; }

#campaign .marginBottom4em{
  margin-bottom: 4em; }

#campaign .cf:before, #campaign .cf:after{
  content: "";
  display: table; }

#campaign .cf:after{
  clear: both; }

#campaign h2{
  text-align: center;
  font-size: 2.5em; }
  @media only screen and (max-width: 1000px) {
#campaign h2{
      font-size: 5vw; } }
  @media only screen and (max-width: 830px) {
#campaign h2{
      font-size: 6vw; } }
#campaign h2:before{
    content: "▶ ";
    color: #0074be; }
#campaign h2:after{
    content: " ◀";
    color: #0074be; }

#campaign .mainVisual{
  position: relative; }
  @media only screen and (max-width: 1000px) {
#campaign .mainVisual{
      padding: 0 0 1em 0; } }
#campaign .mainVisual img{
    display: block;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto; }
#campaign .mainVisual h1{
    display: block;
    width: 100%;
    max-width: 1000px;
    text-align: center;
    margin: .5em auto 0;
    font-size: 1.5em;
    padding: 0 .5em;
    box-sizing: border-box; }

#campaign .mainContents{
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  margin-bottom: 1.2em;
  padding: 1.5em 1em 1em; }
#campaign .mainContents .photo img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto; }
#campaign .mainContents article {
  overflow: hidden; }
#campaign .mainContents .photo {
  margin-bottom: 1em; }
#campaign .mainContents .assets01{
    border: #0074be solid 2px;
    border-radius: 1em 1em 0 0;
    padding: 1em;
    text-align: center; }
    @media only screen and (max-width: 830px) {
#campaign .mainContents .assets01{
        text-align: left; } }
#campaign .mainContents .assets02{
    border: #0074be solid 2px;
    background-color: #0074be;
    border-radius: 0 0 1em 1em;
    padding: 1em;
    color: #FFF;
    text-align: center;
    margin-bottom: 1em; }
    @media only screen and (max-width: 830px) {
#campaign .mainContents .assets02{
        text-align: center; } }
#campaign .mainContents .assets02 .dateText{
      font-size: 1.8em;
      font-weight: bold; }
      @media only screen and (max-width: 1000px) {
#campaign .mainContents .assets02 .dateText{
          font-size: 4.5vw; } }
#campaign .mainContents .assets03{
    background-color: #EFE7D6;
    padding: 1.5em;
    margin-bottom: 1.5em; }
#campaign .mainContents .assets03 .flow {
  position: relative;
  background-color: #FFF;
  padding: 2em 1em 1em;
  border-radius: 1em;
  margin: 1.5em 0 0;}
#campaign .mainContents .assets03 .flow .step {
  position: absolute;
  top: -1.5em;
  left: 1em;
  display: flex;
  width: 3.5em;
  height: 3.5em;
  background-color: #0074be;
  color: #FFF;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;}
#campaign .mainContents .assets03 .flow .main {
  margin-top: 0.5em;
  font-size: 1.2em;}
#campaign .mainContents .assets03 .flow .note {
  line-height: 1.8;}
#campaign .mainContents .assets03 .flow .step span{
  font-size: 0.75em;
  letter-spacing: 0.05em;}
#campaign .mainContents .assets03 .flow .step b{
  font-size: 1.5em;
  line-height: 1; }
#campaign .mainContents2{
  width: 100%;
  background-color: #e0ffff;
  padding: 3em 0; }
#campaign .mainContents2 .inner{
    width: 100%;
    max-width: 1000px;
    padding: 0 1em;
    margin: 0 auto; }
#campaign .mainContents2 .inner p{
      margin-top: 1em; }

#campaign .present_verA{
  display: flex;
  margin-bottom: 2em; }
#campaign .present_verA .photo{
    border: 1px solid #DDD;
    padding: .5em;
    aspect-ratio: 1/1;
    width: 40%;
    margin-right: 2em; }
    @media only screen and (max-width: 680px) {
#campaign .present_verA .photo{
        margin-right: 1em; } }
#campaign .present_verA .photo img{
      width: 100%;
      height: 100%;
      object-fit: contain; }
#campaign .present_verA .detail{
    flex: 1; }
#campaign .present_verA .detail h3{
      position: relative;
      display: block;
      font-size: 1.5em;
      padding: .3em 2.5em .3em 0;
      line-height: 1.1;
      border-bottom: #0074be 1px solid;
      margin-bottom: 1em; }
#campaign .present_verA .detail h3 span{
        position: absolute;
        display: flex;
        top: 50%;
        right: 0;
        margin-top: -1.25em;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        line-height: 1;
        background-color: #0074be;
        color: #FFF;
        width: 2.5em;
        height: 2.5em;
        border-radius: 2.5em;
        text-align: center; }
#campaign .present_verA .detail h3 span b{
          display: block;
          text-align: center;
          font-size: 1em; }
#campaign .present_verA .detail h3 span em{
          font-size: .5em; }

#campaign .present_column2{
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 2em;
  margin-bottom: 2em; }
  @media only screen and (max-width: 468px) {
#campaign .present_column2{
      grid-template-columns: 1fr; } }

#campaign .present_column3{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-gap: 2em;
  margin-bottom: 2em; }
  @media only screen and (max-width: 680px) {
#campaign .present_column3{
      grid-template-columns: 1fr 1fr; } }
  @media only screen and (max-width: 468px) {
#campaign .present_column3{
      grid-template-columns: 1fr 1fr; } }

#campaign .grid_item{
  position: relative; }
#campaign .grid_item .photo{
    border: 1px solid #DDD;
    padding: .5em;
    margin-bottom: .5em; }
#campaign .grid_item .photo img{
      width: 100%;
      height: auto;
      object-fit: contain; }
#campaign .grid_item h3{
    font-size: 1.2em; }
#campaign .grid_item .targetNumber{
    position: absolute;
    display: flex;
    top: -2em;
    right: -.5em;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    line-height: 1;
    background-color: #0074be;
    color: #FFF;
    width: 4em;
    height: 4em;
    border-radius: 4em;
    text-align: center; }
    @media only screen and (max-width: 468px) {
#campaign .grid_item .targetNumber{
        width: 4em;
        height: 4em; } }
#campaign .grid_item .targetNumber b{
      display: block;
      text-align: center;
      font-size: 1.8em; }
#campaign .grid_item .targetNumber span{
      font-size: .8em; }

#campaign .present_verB{
  border: 1px solid #DDD;
  padding: 1em;
  position: relative; }
#campaign .present_verB h3{
    font-size: 2em;
    padding: .3em 2.5em .3em 0;
    line-height: 1.1;
    border-bottom: #0074be 1px solid;
    margin-bottom: 1em; }
#campaign .present_verB .targetNumber{
    position: absolute;
    display: flex;
    top: -1em;
    right: -.5em;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    line-height: 1;
    background-color: #0074be;
    color: #FFF;
    width: 4em;
    height: 4em;
    border-radius: 4em;
    text-align: center; }
#campaign .present_verB .targetNumber b{
      display: block;
      text-align: center;
      font-size: 1.8em; }
#campaign .present_verB .targetNumber span{
      font-size: .8em; }

#campaign .overview dt, #campaign .overview dd{
  box-sizing: border-box;
  margin-bottom: 1em; }
#campaign .overview dt{
  float: left;
  width: 25%;
  clear: both;
  background-color: #0074be;
  color: #FFF;
  padding: .1em .5em;
  font-size: 1em; }
  @media only screen and (max-width: 680px) {
#campaign .overview dt{
      width: auto;
      float: none; } }
#campaign .overview dd{
  float: right;
  width: 73%;
  font-size: 1.2em; }
  @media only screen and (max-width: 680px) {
#campaign .overview dd{
      width: 100%;
      float: none;
      margin-bottom: 1.5em; } }

#campaign .btn01, #campaign .btn02, #campaign .btn03{
  display: block;
  width: 80%;
  text-align: center;
  margin: 1em auto;
  border-radius: 4rem;
  line-height: 3.5rem;
  font-size: 1.4em; }
  @media only screen and (max-width: 680px) {
#campaign .btn01, #campaign .btn02, #campaign .btn03{
      width: 100%; } }

#campaign .btn01{
  border: #F50057 2px solid;
  background-color: #F50057;
  color: #FFF;
  font-weight: bold;
  box-shadow: 0 6px 0 #b4003c;
  transform: translateY(0);
  transition: transform .12s ease, box-shadow .12s ease; }
#campaign .btn01:active{
  transform: translateY(6px);
  box-shadow: 0 0 0 #b4003c; }

#campaign .btn02{
  border: #0074be 2px solid;
  background-color: #0074be;
  color: #FFF;
  font-weight: bold; }

#campaign .btn03{
  border: #0074be 2px solid;
  color: #0074be;
  font-weight: bold; }

#campaign .bannerContents{
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 3em 1em; }
#campaign .bannerContents a{
    display: block;
    width: 100%;
    margin: 1em 0 0; }
#campaign .bannerContents a img{
      width: 100%; }

#campaign .toTop a{
  display: block;
  background-color: #DDD;
  padding: 1em 0;
  text-align: center;
  color: #333; }

#campaign footer{
  background-color: #333;
  color: #FFF;
  font-size: .8em;
  text-align: center;
  padding: 2em 0 4em; }

#campaign .pc{
  display: inline-block;
  width: 100%;
}

#campaign .sp{
  display: none;
}

@media only screen and (max-width: 480px){
  #campaign .pc{
    display: none;
  }
  #campaign .sp{
    display: inline-block;
    width: 100%;
  }
}

/* STEP1内のサブ導線（チケット/旅行ボタン） */
#campaign .assets03 .flow .subActions{
  margin-top: 1em;
  display: grid;
  grid-template-columns: 1fr 1fr; /* PCは2カラム */
  gap: .8em;
}

/* スマホは縦並び */
@media only screen and (max-width: 680px){
  #campaign .assets03 .flow .subActions{
    grid-template-columns: 1fr;
  }
}

#campaign .assets03 .flow .btnSub{
  display: block;
  text-align: center;
  padding: .9em .8em;
  border-radius: 999px;
  border: 1px solid #0074be;
  background: #fff;
  color: #0074be;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
}

#campaign .assets03 .flow .btnSub:hover{
  background: #f3f9ff;
}
#campaign .assets03 .flow .btnSub:active{
  transform: translateY(1px);
}

/* ===== 旅行をおトクに予約！ セクション ===== */

#campaign .dealLead{
  text-align: center;
  margin: 0.6em 0 1.2em;
  line-height: 1.8;
}

#campaign .dealGrid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2em;
}

@media only screen and (max-width: 680px){
  #campaign .dealGrid{
    grid-template-columns: 1fr;
  }
}

#campaign .dealCard{
  display: block;
  background: #fff;
  border: 1px solid #d9e6f2;
  border-radius: 1em;
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(0,0,0,.06);
  transition: transform .15s ease, box-shadow .15s ease;
  color: #333; /* aタグの青を抑える */
}

#campaign .dealCard:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
}

#campaign .dealCard:focus-visible{
  outline: 3px solid #0074be;
  outline-offset: 2px;
}

#campaign .dealThumb{
  position: relative;
  background: #eef6ff;
  aspect-ratio: 830 / 436; /* バナー比率に寄せる */
}

#campaign .dealThumb img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

#campaign .dealBody{
  padding: 1em 1em 1.1em;
}

#campaign .dealTitle{
  font-size: 1.2em;
  margin: 0 0 .4em;
  line-height: 1.3;
}

#campaign .dealText{
  margin: 0;
  line-height: 1.5;
}

#campaign .dealAll{
  margin-top: 1.2em;
}
