#campaign, #campaign div, #campaign span, #campaign object, #campaign iframe, #campaign h1, #campaign h2, #campaign h3, #campaign h4, #campaign h5, #campaign h6, #campaign p, #campaign blockquote, #campaign pre, #campaign abbr, #campaign address, #campaign cite, #campaign code, #campaign del, #campaign dfn, #campaign em, #campaign img, #campaign ins, #campaign kbd, #campaign q, #campaign samp, #campaign small, #campaign strong, #campaign sub, #campaign sup, #campaign var, #campaign b, #campaign i, #campaign dl, #campaign dt, #campaign dd, #campaign ol, #campaign ul, #campaign li, #campaign fieldset, #campaign form, #campaign label, #campaign legend, #campaign table, #campaign caption, #campaign tbody, #campaign tfoot, #campaign thead, #campaign tr, #campaign th, #campaign td, #campaign article, #campaign aside, #campaign canvas, #campaign details, #campaign figcaption, #campaign figure, #campaign hgroup, #campaign menu, #campaign nav, #campaign section, #campaign summary, #campaign time, #campaign mark, #campaign audio, #campaign video{
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }
#campaign{
  line-height: 1; }
#campaign article, #campaign aside, #campaign section, #campaign div, #campaign p, #campaign main{
  box-sizing: border-box; }
#campaign article, #campaign aside, #campaign details, #campaign figcaption, #campaign figure, #campaign hgroup, #campaign menu, #campaign nav, #campaign section{
  display: block; }
#campaign ul{
  list-style: none; }
#campaign blockquote, #campaign q{
  quotes: none; }
#campaign blockquote:before, #campaign blockquote:after, #campaign q:before, #campaign q:after{
  content: '';
  content: none; }
#campaign a{
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }
#campaign ins{
  background-color: #ff9;
  color: #000;
  text-decoration: none; }
#campaign mark{
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold; }
#campaign del{
  text-decoration: line-through; }
#campaign abbr[title], #campaign dfn[title]{
  border-bottom: 1px dotted;
  cursor: help; }
#campaign table{
  border-collapse: collapse;
  border-spacing: 0; }
#campaign hr{
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0; }
#campaign input, #campaign select{
  vertical-align: middle; }
#campaign{
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "游ゴシック", YuGothic, sans-serif;
  color: #333;
  font-size: 20px;
  line-height: 1.4;
  -webkit-text-size-adjust: none; }
#campaign a{
  color: #0074BD;
  text-decoration: none;
  transition: color 0.3s; }
@media only screen and (max-width: 1000px){
  #campaign{
    font-size: 18px; } 
}
@media only screen and (max-width: 830px){
  #campaign{
    font-size: 16px; } 
}
@media only screen and (max-width: 680px){
  #campaign{
    font-size: 14px; } 
}
@media only screen and (max-width: 468px){
  #campaign{
    font-size: 12px; } 
}
#campaign .largeText{
  font-size: 1.3em; }
#campaign .smallText{
  font-size: .8em; }
#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;
  padding: 3em 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: 2em; }
    @media only screen and (max-width: 830px){
      #campaign .mainContents .assets02{
        text-align: left; } 
}
    #campaign .mainContents .assets02 .dateText{
      font-size: 1.8em;
      font-weight: bold; }
      @media only screen and (max-width: 1000px){
        #campaign .mainContents .assets02 .dateText{
          font-size: 3.5vw; } 
}
  #campaign .mainContents .assets03{
    background-color: #EFE7D6;
    padding: 2em;
    margin-bottom: 3em; }
    #campaign .mainContents .assets03 .flow{
      position: relative;
      background-color: #FFF;
      padding: 1em 1em 1em 4em;
      border-radius: 1em;
      margin: 1.5em 0 0; }
      #campaign .mainContents .assets03 .flow .step{
        position: absolute;
        top: -1em;
        left: -1em;
        background-color: #0074be;
        color: #FFF;
        padding: .3em;
        line-height: 1;
        display: flex;
        width: 4em;
        height: 4em;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        border-radius: 3em; }
        #campaign .mainContents .assets03 .flow .step span{
          font-size: 1em; }
        #campaign .mainContents .assets03 .flow .step b{
          font-size: 1.3em; }
#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;
    aspect-ratio: 1/1; }
    #campaign .grid_item .photo img{
      width: 100%;
      height: 100%;
      object-fit: contain; }
  #campaign .grid_item h3{
    font-size: 1.2em; }
  #campaign .grid_item .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; }
    @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: 4rem;
  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; }
#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; }

/* --- Patch: reduce gap between header icon and label (override header.css) --- */
#g_header .icon {
  margin-bottom: 0 !important;
}
#g_header .tab_pc .icon,
#g_header .tab_sp .icon {
  margin-bottom: 0 !important;
}
