@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

/*reset*/
html, body,
h1, h2, h3, h4, h5, h6,
a, p, span,
em, small, strong,
sub, sup,
mark, del, ins, strike,
abbr, dfn,
blockquote, q, cite,
code, pre,
ol, ul, li, dl, dt, dd,
div, section, article,
main, aside, nav,
header, hgroup, footer,
img, figure, figcaption,
address, time,
audio, video,
canvas, iframe,
details, summary,
fieldset, form, label, legend,
table, caption,
tbody, tfoot, thead,
tr, th, td {
  border: 0;
  margin: 0;
  padding: 0;
}
body {
  font-size: 1.6rem;
  line-height: 1.5;
}
* {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  opacity: 0.7;
}
a img:hover {
  opacity: 0.7;
}
article,
aside,
footer,
header,
nav,
section,
main {
  display: block;
}
* {
  box-sizing: border-box;
}
*:before,
*:after {
  box-sizing: inherit;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
ol,
ul {
  list-style: none;
}
img,
video {
  border-style: none;
  display: block;
}
blockquote,
q {
  quotes: none;
}
blockquote:after,
blockquote:before,
q:after,
q:before {
  content: "";
}
[hidden] {
  display: none !important;
}
[disabled] {
  cursor: not-allowed;
}
:focus:not(:focus-visible) {
  outline: none;
}

/*setting*/
:root {
  --color-darkbl: #006899;
  --color-palebl: #D6ECF7;
  --color-wt: #FFF;
  --color-ye: #FEEA9E;
  --color-pi: #C64480;
  --font: "Noto Sans JP";
}
html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: var(--font), sans-serif;
  font-size: 62.5%;
  font-weight: 400;
}
body {
  color: var(--color-wt);
  font-size: 1.6rem;
  line-height: 1.7;
  margin: 0 auto;
  text-align: center;
  background: url("../images/bg_water.png") repeat;
  background-size: 7.2rem;
  overflow-wrap: anywhere; /* 収まらない場合に折り返す */
  word-break: normal; /* 単語の分割はデフォルトに依存 */
}
a {
  text-decoration: underline;
  transition: all 0.3s ease;
}
img {
  max-width: 100%;
}
/* AOSの移動距離調整 */
[data-aos="zoom-in-up"] {
  transform: translate3d(0, 40px, 0) scale(.9) !important;
  transition: transform 0.05s ease-in-out, opacity 0.05s ease; /* ここを追加 */
  opacity: 0.7; /* 初期状態で薄くしておくと自然 */
}

[data-aos="zoom-in-up"].aos-animate {
  transform: translateZ(0) scale(1) !important;
  opacity: 1; /* アニメーション後は完全表示 */
}
[data-aos="fade-up"] {
  transform: translateY(20px) !important;
}
[data-aos="fade-up"].aos-animate {
  transform: translateY(0) !important;
}

/*utility*/
.bold{
  font-weight: 700;
}
p span.bold{
  color: var(--color-ye);
  padding-bottom: 0.1rem;
}
.center{
  text-align: center;
}
.pc{
  display: block;
}
.mb8{
  margin-bottom: 0.8rem !important;
}
.mb16{
  margin-bottom: 1.6rem !important;
}
.mb24{
  margin-bottom: 2.4rem !important;
}
.mb32{
  margin-bottom: 3.2rem !important
}
.mb40{
  margin-bottom: 4rem !important;
}
.mb48{
  margin-bottom: 4.8rem !important;
}
.mb64{
  margin-bottom: 6.4rem !important;
}
@media screen and (max-width:550px) {
  .pc{
    display: none;
  }
}

/*base design - area & text
-------------------------*/
p{
  text-align: left;
  padding: 0 2rem 1.6rem;
}
.small{
  font-size: 1.1rem;
  line-height: 1.6;
  margin-top: -0.8rem;
}
section img{
  width: calc(100% - 4rem);
  margin: 0 auto 2.4rem;
  border-radius: 1rem;
  overflow: hidden;
}
p + img{
  margin-top: 1.6rem;
}
img + p.small{
  margin-top: -1.6rem;
}
.buttonLarge{
  display: block;
  color: var(--color-wt);
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  padding: 2rem 1.6rem;
  margin: 2rem;
  background: var(--color-pi);
  border-radius: 0.4rem;
  filter: drop-shadow(0 4px 0 rgba(0, 0, 0, 0.25));
  position: relative;
}
.buttonLarge::before{
  content: "";
  display: block;
  width: 1rem; height: 2rem;
  background: url("../images/icon_arrow-l.svg") no-repeat center center;
  background-size: contain;
  position: absolute;
  top: 50%; right: 1.2rem;
  transform: translateY(-50%);
}
.buttonSmall{
  display: block;
  width: fit-content;
  color: var(--color-darkbl);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  padding: 1rem 3.8rem;
  margin: 2rem auto;
  background: #FFDE4D;
  border-radius: 0.4rem;
  filter: drop-shadow(0 4px 0 rgba(0, 0, 0, 0.25));
  position: relative;
}
.buttonSmall::before{
  content: "";
  display: block;
  width: 1.2rem; height: 2.4rem;
  background: url("../images/icon_arrow-s.svg") no-repeat center center;
  background-size: contain;
  position: absolute;
  top: 50%; right: 0.6rem;
  transform: translateY(-50%);
}
.buttonlead{
  text-align: center;
  color: var(--color-wt);
  font-weight: 700;
  padding-top: 1.6rem;
}
.title--block{
  color: var(--color-darkbl);
  font-weight: 900;
  font-size: 2.2rem;
  line-height: 1.6;
  background: var(--color-wt);
  padding: 3.3rem 2rem;
  margin: 2.4rem 0 3.2rem;
  position: relative;
}
.title--block::before, .title--block::after{
  content: "";
  background: url("../images/bg_stripe.png") repeat top;
  background-size: auto 0.8rem;
  display: block;
  width: 100%;
  height: 0.8rem;
  margin: 0 auto;
  position: absolute;
  left: 0;
}
.title--block::before{
  top: 0.5rem;
}
.title--block::after{
  bottom: 0.5rem;
}
.title--underline{
  display: inline-block;
  width: auto;
  color: var(--color-wt);
  font-size: 2rem;
  line-height: 1.5;
  padding: 2.4rem 0 0.8rem;
  border-bottom: 0.2rem solid var(--color-wt);
  margin-bottom: 3.2rem;
}
.title--underline span.bold{
  color: var(--color-ye);
}
.title--balloon{
  display: block;
  width: fit-content;
  color: var(--color-wt);
  text-align: center;
  font-size: 1.6rem;
  font-weight: 700;
  background-color: var(--color-darkbl);
  border-radius: 10rem;
  padding: 0.5rem 2.4rem 0.8rem;
  margin: 0 auto;
  position: relative;
}
.title--balloon::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-style: solid;
  border-width: 1.2rem 1rem 0 1rem; /* 三角形のサイズ（高さ12px, 幅20px） */
  border-color: var(--color-darkbl) transparent transparent transparent; /* 上辺のみ色をつける */
}
.title--balloon--pink {
  background-color: var(--color-pi);
}
.title--balloon--pink::after {
  border-color: var(--color-pi) transparent transparent transparent; /* 上辺のみ色をつける */
}
.panel{
  display: block;
  width: calc(100% - 4rem);
  background: var(--color-wt);
  border-radius: 1rem;
  margin: 0 2rem 2rem;
  padding: 0.3rem 0.3rem 0;
  box-sizing: border-box;
  color: var(--color-darkbl);
  font-size: 1.6rem;
}
.panel--pinkFrame{
  border: 0.2rem solid var(--color-pi);
}
.panel--pinkFrame p span.bold{
  color: var(--color-pi);
  background: none;
}
.panel--voice{
  padding-bottom: 0.8rem;
  position: relative;
}
.panel--voice::before{
  content: "";
  display: block;
  width: 5rem; height: 3.7rem;
  background: url("../images/icon_quote.svg") no-repeat center center;
  background-size: contain;
  position: absolute;
  top: -1rem; right: 1.1rem;
}
.panel--voice h4{
  font-size: 1.8rem;
  font-weight: 700;
  padding: 3.2rem 2rem 2.4rem;
}
.titleBlock{
  display: flex;
  padding: 2rem;
  justify-content: left;
  gap: 1.6rem;
  align-items: center;
}
.titleBlock h4{
  text-align: left;
  margin: 0;padding: 0;
}
.titleIcon{
  width: 7.2rem; height: 7.2rem;
  margin: 0;padding: 0;
}
.panel--voice p span.bold{
  background: none;
  color: var(--color-pi);
}
.title--panel{
  display: block;
  border-radius: 0.9rem 0.9rem 0 0;
  background: var(--color-palebl);
  color: var(--color-darkbl);
  font-size: 2.4rem;
  line-height: 1.4;
  padding: 0.5rem 0.6rem 1.2rem;
}
.title--panel .small{
  font-size: 1.6rem;
}
.title--panel .att{
  display: block;
  font-size: 1.4rem;
  font-weight: 400;
}
.list-dot, .list-num{
  font-size: 1.6rem;
  line-height: 1.5;
  text-align: left;
  padding: 1.6rem 1.6rem 1rem 2.4rem;
}
.list-dot li, .list-num li{
  padding-bottom: 0.6rem;
}
.list-dot li{
  padding-left: 0.8em;
  position: relative;
}
.list-dot li::before{
  content: "●";
  color: var(--color-or);
  font-size: 0.4rem;
  padding-top: 1rem;
  position: absolute;
  left: 0;
}
.list-dot li span.bold{
  padding-bottom: 0.3rem;
  background: linear-gradient(transparent 50%, var(--color-ye) 0%);
}
.list-num{
  list-style: decimal outside !important;
  padding: 0 2rem 5.8rem 3.5em;
  color: var(--color-wt);
}
.list-num li::marker {
  font-weight: 700;
  color: var(--color-ye);
}
.list-num li span.bold{
  color: var(--color-ye);
  padding-bottom: 0.2rem;
}


/*unique design
-------------------------*/
.kv_content{
  margin: 0;
  position: relative;
  z-index: 5;
}
.kv_50{
  width: 33%;
  aspect-ratio: 550 / 828;
  position: absolute;
  top: calc(225 / 375 * 100%);
  left: 3%;
}
.listAttention{
  padding: 2rem 2rem 0.4rem;
}
.listAttention li{
  display: block;
  width: 100%; min-height: 3.1rem;
  padding: 0 0 1.6rem 4.6rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  text-align-last: left;
  position: relative;
}
.listAttention li .bold{
  color: var(--color-pi);
}
.listAttention li::before{
  content: "";
  display: block;
  width: 3.5rem; height: 3.1rem;
  background: url("../images/icon_attention.svg") no-repeat center center;
  background-size: contain;
  position: absolute;
  left: 0; top: calc(50% - 0.8rem);
  transform: translateY(-50%);
}
.image01{
  width: 50%; min-width: 20rem;
  margin: 0 auto 2.4rem;
}
.imagewrap{
  padding: 2rem 0 0.4rem;
}
.imagewrap h5{
  color: var(--color-darkbl);
  text-align: center;
  font-size: 1.8rem;
  font-weight: 700;
  padding: 1rem;
}
.image-icon{
  width: 5.8rem;
  border-radius: 0;
  margin-top: -1.6rem;
  margin-bottom: 1rem;
}
#waterBlock{
  background: var(--color-palebl);
  padding-bottom: 5.6rem;
}
#waterBlock p{
  color: var(--color-darkbl);
}
#waterBlock .title--underline{
  color: var(--color-darkbl);
  border-bottom: 0.2rem solid var(--color-darkbl);
}
#waterBlock .title--underline span.bold{
  color: var(--color-pi);
}
#waterBlock .attMessage{
display: flex;
gap: 0.8rem;
justify-content: center;
align-items: center;
}
#waterBlock .attMessage p{
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  color: var(--color-pi);
  line-height: 1;
  padding: 0; margin: 0;
}
#waterBlock .attMessage img{
  width: 3rem; height: 3rem;
  margin: 0; padding: 0;
}
.image06{
  width: 8.8rem;
  padding: 2.4rem 0 1.6rem;
  margin: 0 auto;
}
.image07{
  width: 8.1rem;
  padding: 2.4rem 0 1.6rem;
  margin: 0 auto;
}
#waterBlock .title--balloon--pink{
  margin-top: -2.2rem;
}
.title--sideline {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.6rem; /* 線と文字の間隔 */
  color: var(--color-pi) !important;
  font-size: 1.8rem;
  font-weight: 700;
  margin: 3.2rem 0 0;
}
.title--sideline::before,
.title--sideline::after {
  content: "";
  display: block;
  width: 3rem;       /* 線の長さ */
  height: 0.3rem;      /* 線の太さ */
  background-color: var(--color-pi); /* 線の色 */
  border-radius: 10px; /* 角を丸くする場合 */
}
.title--sideline::before {
  transform: rotate(50deg); /* 左側の線の角度 */
}
.title--sideline::after {
  transform: rotate(-50deg);  /* 右側の線の角度（左右対称にするなら逆の数値） */
}
#waterBlock + section .title--block{
  margin-top: 0.5rem;
}
.image09{
  width: 70%; min-width: 22rem;
}
.kitBlock{
  max-width: 40rem;
  min-height: 19rem;
  padding: 0 8rem 0 0;
  margin: 0 auto;
  position: relative;
}
.kitBlock .panel{
  background-color: var(--color-ye);
}
.kitBlock .panel .title--balloon{
  margin-top: -2.2rem;
}
.kitBlock__image{
  width: 15rem; max-width: 40%;
  position: absolute;
  top: -3.2rem; right: 0;
}
.list-check{
  text-align: left;
  font-weight: 700;
  padding: 2rem 2rem 2rem 1.6rem;
}
.list-check li{
  padding-left: 3.4rem;
  position: relative;
}
.list-check li::before{
  content: "";
  display: block;
  width: 2.4rem; height: 2.4rem;
  background: url("../images/icon_check.svg") no-repeat center center;
  background-size: contain;
  position: absolute;
  left: 0; top: 0.2rem;
}
.btnArea{
  background-color: var(--color-ye);
  padding: 0 2rem 2rem;
  margin: 0;
}
.btnArea .title--balloon--pink{
  font-size: 1.4rem;
  padding: 0.4rem 1.6rem;
  transform: translateY(-1.7rem);
}
.btnArea .title--balloon--pink::after{
  top: 90%;
}
.btnLead{
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: 1rem;
  color: var(--color-darkbl);
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.4;
  margin: 0.8rem 0 0;
  padding: 0;
}
.btnLead::before, .btnLead::after{
  content: "";
  display: block;
  width: 3rem; height: 0.1rem;
  margin-top: 2rem;
  background: var(--color-darkbl);
  transform: rotate(60deg);
}
.btnLead::after{
  transform: rotate(-60deg);
}
.btnsubtext{
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 1/1;
  width: fit-content;
  color: var(--color-wt);
  padding: 0.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  line-height: 1.3;
  background-color: var(--color-darkbl);
  border-radius: 10rem;
  position: absolute;
  top: -0.8rem; left: -0.8rem;
  transform: rotate(-10deg);
}
footer{
  font-size: 1.4rem;
  font-weight: bold;
  background: var(--color-bg2);
  padding: 3.2rem 1.6rem 3rem;
}
footer p{
  text-align: center;
  font-size: 1.2rem;
}
.sns-buttons{
  display: flex;
  justify-content: center;
  gap: 1.6rem;
  width: 100%;
  margin-bottom: 2.4rem;
}
footer .sns {
  margin: 2.5rem 0;
  display: flex;
  gap: 1.5rem;
  justify-content: center;
}

footer .copyright {
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.1em;
}

/*PC design
-------------------------*/
.wrapper{
  display: block;
  width: 100%; max-width: 500px;
  margin: 0 auto;
  background: var(--color-darkbl);
  box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
  border-left: 0.4rem solid var(--color-wt);
  border-right: 0.4rem solid var(--color-wt);
  position: relative;
  z-index: 1;
}
@media screen and (max-width:500px) {
  .wrapper{
    border: none;
  }
}
