/*
* support-single-parent
* 2025/11 probrem-single-parent をベースに移植
* index.css
*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400,700&display=swap');

:root {
  --primary-color: #dc000c;
  --primary-color-alpha: rgba(220, 0, 12, 0.6);
  --bg-color-section: #f9f4eb;
  --border-color: #ccc;
  --radius: 10px;
  --shadow-container: 0 0 15px rgba(0,0,0,0.15);
  --spacer-xl: 3em;
  --spacer-lg: 2em;
  --spacer-md: 1em;
  --spacer-sm: .5em;
  --spacer-xs: .25em;
  --spacer-section: 3em;
}
@media (min-width: 768px) {
  :root {
    --radius: 20px;
    --spacer-section: 5em;
  }
  .pc-text-center{ text-align: center; }

}
.u-mt-xl{ margin-top: var(--spacer-xl); }
.u-mt-lg{ margin-top: var(--spacer-lg); }
.u-mt-md{ margin-top: var(--spacer-md); }
.u-mt-sm{ margin-top: var(--spacer-sm); }
.u-mt-xs{ margin-top: var(--spacer-xs); }

.u-mb-xl{ margin-bottom: var(--spacer-xl); }
.u-mb-lg{ margin-bottom: var(--spacer-lg); }
.u-mb-md{ margin-bottom: var(--spacer-md); }
.u-mb-sm{ margin-bottom: var(--spacer-sm); }
.u-mb-xs{ margin-bottom: var(--spacer-xs); }

body {
  font-family: "Noto Sans JP", sans-serif;
  @media (min-width: 768px) {
    font-size: 16px;
  }
}
/* --------------------------------
  hero
-------------------------------- */
.hero {
  overflow: hidden;
  position: relative;
}
.hero::after {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  right: -100%;
  bottom: 0;
  left: -100%;
  margin: auto;
  width: calc(100% + 683px);
  height: 55%;
  background: #f1f1f1;
}

.hero_container {
  position: relative;
  margin: auto;
  max-width: 1366px;
}

.hero_img {
  text-align: center;
}
.hero_img img {
  width: 100%;
  max-width: none;
}

.hero_btn {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  position: absolute;
  right: 10px;
  bottom: 10.06667vw;
  border-radius: 50%;
  width: 37.86667vw;
  height: 37.86667vw;
  background-image: linear-gradient(to right, var(--primary-color), #f5492d);
  text-align: center;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 0 4vw 0.93333vw rgba(51, 51, 51, 0.45);
  font-weight: bold;
  line-height: 1.3;
}
@media (min-width: 768px) {
  .hero_btn {
    right: 7.7%;
    bottom: 8%;
    width: 216px;
    height: 216px;
    box-shadow: 0 0 40px 10px rgba(51, 51, 51, 0.45);
    font-size: 1.92rem;
    line-height: 1.4;
  }
  .hero_btn:hover::before {
    opacity: 1;
  }
}
@media (min-width: 768px) and (max-width: 960px) {
  .hero_btn {
    width: 180px;
    height: 180px;
    font-size: 1.6rem;
  }
}
.hero_btn::before {
  content: "";
  display: block;
  opacity: 0;
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  border-radius: 50%;
  width: 100%;
  height: 100%;
  transition: ease 0.23s;
  background: rgba(255, 255, 255, 0.3);
}
.hero_btn strong {
  margin-right: 0.8vw;
  letter-spacing: 0.1rem;
  font-size: 6.66667vw;
}
@media (min-width: 768px) {
  .hero_btn strong {
    margin-right: 3px;
    font-size: 2em;
  }
}
.hero_btnInner {
  position: relative;
  z-index: 2;
  padding-top: 1.6vw;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .hero_btnInner {
    padding-top: 5px;
  }
}
.hero_btnInner::after {
  content: "";
  display: block;
  margin: auto;
  margin-top: 2.66667vw;
  border-top: 0.66667vw solid #fff;
  border-right: 0.66667vw solid #fff;
  width: 2.4vw;
  height: 2.4vw;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
@media (min-width: 768px) {
  .hero_btnInner::after {
    content: "";
    margin-top: 14px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    width: 10px;
    height: 10px;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
}

.hero_btnEm {
  display: inline-block;
  margin-bottom: 1.06667vw;
  color: #ede6b9;
}
@media (min-width: 768px) {
  .hero_btnEm {
    margin-bottom: 4px;
  }
}

/* --------------------------------
  message
-------------------------------- */
.message {
  padding-block: var(--spacer-section);
  overflow: hidden;
  background: var(--bg-color-section);
  .slick-slide {
    margin: 0 2.66667vw;
    @media (min-width: 768px) {
      margin: 0 10px;
    }
  }
  .message_list {
    margin: 25.33333vw 0 0;
    @media (min-width: 768px) {
      display: flex;
      margin: 110px 0 0 -10px;
      width: calc(100% + 20px);
    }
  }
  .message_item {
    padding: 9.06667vw;
    height: 100%;
    background: #fff;
    text-align: center;
    border-radius: var(--radius);
    @media (min-width: 768px) {
      padding: 34px;
    }
  }
  .message_img {
    display: inline-flex;
    margin: -26.66667vw auto 0;
    border-radius: 50%;
    width: 25.33333vw;
    height: 25.33333vw;
    @media (min-width: 768px) {
      margin: -80px auto 20px;
      width: 90px;
      height: 90px;
    }
  }
  .message_heading {
    margin-top: 2.13333vw;
    font-size: 4.26667vw;
    line-height: 1.444444444;
    @media (min-width: 768px) {
      margin-top: 8px;
      font-size: 1.8rem;
    }
  }
  .message_body {
    margin-top: 2.66667vw;
    text-align: left;
    @media (min-width: 768px) {
      margin-top: 10px;
    }
  }
}

/* -------------------------------------------------------------------------------------------------------------------------------
  202312 追加（wanibuchi）
------------------------------------------------------------------------------------------------------------------------------- */
h2.line {
  width: 100%;
  margin-bottom: 50px;
  font-size: 28px;
  font-weight: bold;
  border-bottom: 2px solid #e60012;
  position: relative;
  &::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: -2px;
    width: 80%;
    border-bottom: 2px solid #d5d5d5;
  }
}

/* --------------------------------
セクション
-------------------------------- */
.wrapper {
  max-width: 1366px;
  margin: auto;
  width: 90%;
}

/* --------------------------------
できること
-------------------------------- */
.can_section {
  padding-block: var(--spacer-section);
  .can_contents {
    margin: var(--spacer-lg) 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacer-md);
    @media (min-width: 768px) {
      grid-template-columns: repeat(3,1fr);
      gap: var(--spacer-lg);
    }
    .can_item {
      border-radius: var(--radius);
      box-shadow: var(--shadow-container);
      overflow: hidden;
      padding-bottom: var(--spacer-md);
      img {
        width: 100%;
      }
      .can_price {
        font-weight: bold;
        background-color: #fce8e8;
        position: relative;
        text-align: center;
        padding: var(--spacer-sm) 0 0;
        &:after {
          content: '';
          position: absolute;
          width: 0;
          height: 0;
          bottom: 0;
          left: 50%;
          transform: translate(-50%,100%);
          border-top: 15px solid #fce8e8;
          border-right: 44vw solid transparent;
          border-left: 44vw solid transparent;
          z-index: 1;
          @media (min-width: 768px) {
            border-right: 12vw solid transparent;
            border-left: 12vw solid transparent;
          }
        }
        span {
          color: var(--primary-color);
        }
        .can_price_big {
          font-size: 8vw;
          @media (min-width: 768px) {
            font-size: 1.8rem;
          }
          @media (min-width: 1151px) {
            font-size: 3rem;
          }
        }
      }
      .can_text {
        display: flex;
        align-items: center;
        font-weight: bold;
        font-size: 1.1em;
        min-height: 3lh;
        margin-top: var(--spacer-md);
        padding-inline: var(--spacer-md);
      }
      .can_text_note{
        background: url('../images/icon_can_arrow.svg') no-repeat left var(--spacer-md) top var(--spacer-sm) / 1.5em;
        padding: 0 var(--spacer-md) 0 calc(var(--spacer-md) + var(--spacer-lg));

      }
    }

  }
}

/*ページトップアンカーリンク*/
#topagetop {
  position: fixed;
  width: 60px;
  height: 60px;
  bottom: 10%;
  right: -100px;
  display: block;
  background: #cd3e2c;
  text-decoration: none;
  border: 0;
  transition: 1.0s;
  opacity: .75;
  z-index: 9999;
  @media (max-width: 767px) {
    width: 40px;
    height: 40px;
  }
  &:hover {
    opacity: 1;
  }
  span {
    position: absolute;
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
    width: 1.25em;
    height: 1.25em;
    border: 4px solid #fff;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -30%) rotate(-45deg);
  }
}

section.lead_section{
  background: var(--bg-color-section);
  padding-block: var(--spacer-section);
  h2{
    text-align: center;
    font-size: 1.25em;
    margin-bottom: 1.5em;
    span{
      display: block;
    }
    strong{
      position: relative;
      font-size: 1.5em;
      font-weight: bold;
      text-decoration: underline;
      text-decoration-color: var(--primary-color);
      text-decoration-thickness: 5px;
    }
    @media (min-width: 768px) {
      font-size: 2em;
      br{
        display: none;
      }
    }
  }
  > .wrapper > ul{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacer-md);
    > li:nth-child(1){
      grid-column: 1 / -1;
    }
    @media (min-width: 768px) {
      grid-template-columns: repeat(3,1fr);
      gap: var(--spacer-lg);
      > li:nth-child(1){
        grid-column: auto;
      }
    }
    > li{
      padding-bottom: var(--spacer-md);
      background: #fff;
      box-shadow: var(--shadow-container);
      overflow: hidden;
      border-radius: var(--radius);
      img{
        margin-bottom: var(--spacer-xs);
      }
      h3{
        text-align: center;
        font-size: 1.5rem;
        padding: var(--spacer-sm) var(--spacer-xs);
        @media (min-width: 768px) {
          font-size: 2.5rem;
        }
      }
      p{
        padding: 0 var(--spacer-md);
        font-size: .9em;
        @media (min-width: 768px) {
          font-size: 1em;
        }
      }
    }
  }
}

/*達成率*/
@keyframes shimmer {
  from { transform: translateX(-100%); }
  to   { transform: translateX(100%);  }
}
section.cta_section{
  padding-block: var(--spacer-section);
  color: #fff;
  text-align: center;
  background: url(../images/cta_bg.jpg) no-repeat center top / cover;
  @media (min-width: 768px) {
    background: url(../images/cta_bg_lg.jpg) no-repeat top center / cover;
  }
  h2 {
    text-align: center;
    font-size: 1.25em;
    font-weight: bold;
    margin-bottom: var(--spacer-sm);
    strong{
      font-size: 1.25em;
      font-weight: bold;
      color: var(--primary-color);
      margin-right: .1em;
      text-shadow:
        0 0 2px #fff,
        0 0 4px #fff,
        0 1px 2px rgba(255, 255, 255, 0.5),
        0 -1px 2px rgba(255, 255, 255, 0.5),
        1px 0 2px rgba(255, 255, 255, 0.5),
        -1px 0 2px rgba(255, 255, 255, 0.5);
    }
    sup{
      font-size: .5em;
      vertical-align: super;
      margin-right: .25em;
    }
    small{
      font-size: .75em;
      display: block;
    }
    @media (min-width: 768px) {
      font-size: 2em;
      br{
        display: none;
      }
      small{
        font-size: .5em;
      }
    }
  }
  h3{
    font-size: .9em;
    @media (min-width: 768px) {
      font-size: 1.25em;
    }
    position: relative;
    width: fit-content;
    padding: var(--spacer-md);
    border-radius: var(--radius);
    margin: 0 auto 20px; /*▼の分あける*/
    background: rgba(255,255,255,0.1);
    small{
      font-size: .9em;
      @media (min-width: 768px) {
        font-size: .8em;
      }
      margin-top: var(--spacer-sm);
      font-weight: normal;
      display: block;
    }
    ::after{
      content: '';
      width: 0;
      height: 0;
      border-style: solid;
      border-right: 10px solid transparent;
      border-left: 10px solid transparent;
      border-top: 14px solid rgba(255,255,255,0.1);
      border-bottom: 0;
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translate(-50%,100%);
    }
  }
  h4{
    font-size: 1em;
    margin-bottom: var(--spacer-md);
    @media (min-width: 768px) {
      font-size: 1.25em;
      margin-bottom: 0;
    }
  }
  .progress_bar {
    max-width: 800px;
    margin: 0 auto;

    .progress_bar_percentage {
      font-weight: bold;
      line-height: 1.5;
      @media (min-width: 768px) {
        font-size: 1.25em;
      }
      .progress_percent {
        color: var(--primary-color);
        display: inline-block;
        transition: all 0.3s ease;
        font-size: 2em;
        margin-inline: .1em;
        text-shadow:
          0 0 2px #fff,
          0 0 4px #fff,
          0 1px 2px rgba(255, 255, 255, 0.5),
          0 -1px 2px rgba(255, 255, 255, 0.5),
          1px 0 2px rgba(255, 255, 255, 0.5),
          -1px 0 2px rgba(255, 255, 255, 0.5);
      }
      small{
        font-weight: initial;
        display: block;
        font-size: .65em;
      }
    }
    .progress_bar_container {
      position: relative;
      width: 75%;
      height: 20px;
      background: #fff;
      overflow: visible;
      border-radius: 5px;
      margin: 1em auto 3em;
      .progress_bar_fill {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        background: linear-gradient(90deg, #2d8f47 0%, #4caf50 100%);
        width: 0%;
        transition: width 2.0s ease-out;
        overflow: hidden;
        border-radius: 5px;
        &::after {
          content: '';
          position: absolute;
          top: 0;
          left: 0;
          right: 0;
          bottom: 0;
          background: linear-gradient(
            90deg,
            transparent 0%,
            rgba(255, 255, 255, 0.3) 50%,
            transparent 100%
          );
          animation: shimmer 2s infinite;
        }
      }
      /*マーカー*/
      .progress_bar_marker {
        position: absolute;
        top: 0;
        transform: translateX(-50%);
        z-index: 10;
        .progress_bar_marker_line {
          display: block;
          width: 2px;
          height: 20px;
          background: #ccc;
          margin: 0 auto;
        }
        .progress_bar_marker_text {
          display: block;
          font-size: 0.9em;
          white-space: nowrap;
          margin-top: 0.25em;
          transform: translateX(-50%);
          position: absolute;
          left: 50%;
        }
      }
    }
  }

  .cta{
    padding-top: var(--spacer-md);
    /*
    background: rgba(255,255,255,0.1);
    border-radius: var(--radius);
    border: solid rgba(255,255,255,0.25);
    border-width: 1px 0 0;
    */
  }

  .campaign{
    h4{
      font-size: .9em;
    }
    ul{
      background: rgba(255,255,255,0.1);
      border-radius: var(--radius);
      padding-block: var(--spacer-md);
      display: flex;
      gap: var(--spacer-md);
      align-items: center;
      justify-content: center;
      li{
        max-width: 100px;
        img{
          border-radius: 50%;
        }
      }
    }
    @media (min-width: 768px) {
      width: fit-content;
      margin-inline: auto;
      ul{
        li{
          max-width: 120px;
        }
      }
    }
  }
}
section.staff_section {
  padding-bottom: var(--spacer-section);
  ul.staff_voices {
    margin-block: var(--spacer-lg);
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacer-md);
    @media (min-width: 768px) {
      grid-template-columns: repeat(2,1fr);
      gap: var(--spacer-lg);
    }
    li {
      margin-top: calc(100px / 2);
      padding-top: calc(100px / 2);
      background: #fff;
      border-radius: var(--radius);
      position: relative;
      box-shadow: var(--shadow-container);
      img {
        display: block;
        max-width: 100px;
        position: absolute;
        top: calc(-100px / 2);
        left: 50%;
        transform: translateX(-50%);
        border: 1px solid var(--border-color);
        border-radius: 50%;
      }
      div{
        padding: var(--spacer-md) var(--spacer-lg);
        p{
          margin-bottom: var(--spacer-sm);
          &.name{
            text-align: right;
            margin-bottom: 0;
          }
        }
      }
    }
  }
}

ul.asterisk{
  font-size: .9em;
  > li{
    position: relative;
    padding: 0 0 0 1em;
    &::before{
      position: absolute;
      top: 0;
      left: 0;
      content: '※';
    }
  }
}
ul.arrows{
  > li{
    padding: 0 0 0 .75em;
    line-height:1.5;
    background: url('../images/icon_arrow_red.svg') no-repeat top 10px left / auto .5em;
  }
}

section.support_section {
  padding-bottom: var(--spacer-section);
/*  background: #ffc6a9;*/
  background: #e8f1c5;
  .c-container{
    overflow:visible;
  }
  .support_header{
    padding-block: var(--spacer-section) calc(var(--spacer-section) + 1em);
    background-color: var(--bg-color-section);
    /*
    background: url('../images/support_header.webp') no-repeat right top / contain;
    background: url('../images/support_header.webp') no-repeat center top / cover;
    color: #fff;
    text-shadow: 0 1px 3px rgba(0,0,0,0.5);
    */
    p{
      font-size: 1.1em;
    }
  }
  ul.support_case{
    transform: translateY(calc(var(--spacer-xl) * -1));
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacer-md);
    @media (min-width: 768px) {
      grid-template-columns: repeat(2,1fr);
      gap: var(--spacer-lg);
      > li:nth-child(1),
      > li:nth-child(2) {
        transform: translateX(-3vw);
      }
      > li:nth-child(3),
      > li:nth-child(4) {
        transform: translateX(3vw);
      }
    }
    > li{
      background: #fff;
      overflow: hidden;
      border-radius: var(--radius);
      box-shadow: var(--shadow-container);
      .support_img{
        img{
          width: 100%;
        }
      }
      h3{
        position: relative;
        width:fit-content;
        margin-inline: auto;
        padding-block: var(--spacer-md) var(--spacer-sm);
        font-size: 1.25em;
        &::after{
          position: absolute;
          bottom: 0;
          left: 50%;
          transform: translateX(-50%);
          content: '';
          width: 2em;
          height: 2px;
          background-color: var(--primary-color);
        }

      }
      .support_txt{
        padding: var(--spacer-md);
      }
    }
  }
}

/*ガバナンス*/
section.gov_section{
  padding-block: var(--spacer-section);
  ul.gov_contents{
    margin-top: var(--spacer-lg);
    @media (min-width: 768px) {
      margin-top: var(--spacer-xl);
    }
    > li{
      display: grid;
      grid-template-columns: 1fr;
      gap: var(--spacer-md);
      &:not(:last-child){
        margin-bottom: var(--spacer-lg);
      }
      @media (min-width: 768px) {
        grid-template-columns: 1fr 2fr;
        gap: var(--spacer-lg);
      }
      .gov_img{
        width: 100%;
        aspect-ratio: 2/1;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        overflow: hidden;
        img{
          width: 100%;
          height: 100%;
          object-fit: contain;
        }
      }
      .gov_txt{
        h3{
          font-size: 1.25em;
          margin-bottom: var(--spacer-md);
        }
      }
    }
  }
}

/*ガバナンス*/
section.faq_section{
  padding-block: var(--spacer-section);
  details{
    margin-bottom: var(--spacer-md);
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    > summary{
      position: relative;
      padding: var(--spacer-md) 3.5em;
      cursor: pointer;
      font-weight: bold;
      @media (min-width: 768px) {
        font-size: 1.1em;
      }
      &::before{
        position: absolute;
        top: 1em;
        left: 1em;
        content: '';
        width: 1.75em;
        aspect-ratio: 1/1;
        background: url('../images/icon_faq_q.svg') no-repeat center center / contain;
      }
      &::after {
        position: absolute;
        top: 50%;
        right: 1em;
        content: '';
        width: .75em;
        aspect-ratio: 1/1;
        background: url('../images/icon_arrow_red.svg') no-repeat center center / contain;
        transform: translateY(-50%) rotate(90deg);
        transition: transform .3s;
      }
    }
    > div{
      position: relative;
      border-top: 1px solid var(--primary-color);
      margin-inline: var(--spacer-md);
      padding: var(--spacer-md) 0 var(--spacer-md) 2.5em;

      &::before{
        position: absolute;
        top: 1em;
        left: 0;
        content: '';
        width: 1.75em;
        aspect-ratio: 1/1;
        background: url('../images/icon_faq_a.svg') no-repeat center center / contain;
      }
    }
    &[open]{
      box-shadow: var(--shadow-container);
      border-color: var(--primary-color);
      > summary{
        &::after {
          transform: translateY(-50%) rotate(-90deg);
        }
      }
    }
  }
}
/*上書き*/
.l-header_btn{
  @media (max-width: 767px) {
    line-height: 1.5;
    padding: 0 4vw;
    &:after{
      margin-left: 2vw;
    }
  }
  @media (min-width: 768px) {
    br{
      display: none;
    }
  }
}
/*EPISODE*/
.episode_section {
  padding-block: var(--spacer-section);
  .episode_text{
    img.episode_img{
      margin: 0 0 1em 0;
    }
    p{
      margin-bottom: 1em;
      span{
        font-weight: bold;
        background: linear-gradient(transparent 50%, #fff36b 50%);
      }
    }
    @media (min-width: 768px) {
      img.episode_img{
        width: 40%;
        margin: 0 2em 1em 0;
        float: left;
      }
      &::after{
        clear: both;
      }
    }
  }
}
