@charset "utf-8";
/*--------------------------------------------------------------------------------
  .mv
--------------------------------------------------------------------------------*/
:root { --mv-img-height: clamp(300px, calc(720 / 1200 * 100vw), 720px); }
.mv {
  position: relative;
  mask-image: url("../image/mask/wave.svg");
  mask-repeat: no-repeat;
  mask-position: center bottom;
  mask-size: 160% auto;
  background: url("../image/bg.gif") repeat center top;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: repeat(2, auto);
  grid-template-areas:
    "mv-hd mv-hd"
    "mv-logo mv-img";
}
.mv:before {
  content: "";
  width: min(20%, 350px);
  height: 100%;
  background: url("../image/mv_bg01.png") no-repeat left top;
  background-size: contain;
  position: absolute;
  left: 0;
  top: 0;
}
.mv:after {
  content: "";
  width: clamp(150px, 40%, 500px);
  height: 100%;
  background: url("../image/mv_bg02.png") no-repeat left bottom;
  background-size: contain;
  position: absolute;
  left: 0;
  bottom: 0;
}
.mv_hd {
  position: relative;
  z-index: 20;
  grid-area: mv-hd;
}
.mv_hd .l-hd { background: none; }
.mv_logo {
  position: relative;
  z-index: 1;
  grid-area: mv-logo;
  justify-self: center;
  padding: 0 clamp(0px, calc(40 / 1200 * 100vw), 60px);
}
.mv_img {
  position: relative;
  z-index: 1;
  grid-area: mv-img;
  height: var(--mv-img-height);
}
.mv_img:after {
  content: "";
  width: clamp(150px, 50%, 400px);
  height: 100%;
  background: url("../image/mv_bg03.png") no-repeat right bottom;
  background-size: contain;
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 10;
}
@media (max-width: 1400px) {
  .mv:before { width: clamp(150px, 25%, 300px); }
}
@media (max-width: 960px) {
  .mv_logo { padding: 0 clamp(0px, calc(20 / 1200 * 100vw), 40px); }
}

/* logo
----------------------------------------*/
@media (min-width: 961px) { :root { --mv-logo-break-point: 1200; --mv-logo-max: 115; } }
@media (max-width: 960px) { :root { --mv-logo-break-point: 960; --mv-logo-max: 100; } }
.mv_logo .logo {
  display: flex;
  flex-direction: column;
  row-gap: clamp(20px, calc(30 / var(--mv-logo-break-point) * 100vw), 30px);
  padding: clamp(20px, calc(40 / var(--mv-logo-break-point) * 100vw), 40px);
}
.mv_logo .logo_img {
  width: clamp(50px, (var(--mv-logo-max) / var(--mv-logo-break-point) * 100vw), (var(--mv-logo-max) * 1px));
}
.mv_logo .logo_copy {
  padding-left: 6%;
  line-height: var(--lineh-s);
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  flex-direction: row-reverse;
}
.mv_logo .logo_copy-item {
  writing-mode: vertical-rl;
  font-family: var(--ff-min);
  font-weight: 400;
  font-size: clamp(7px, calc(15 / 960 * 100vw), 15px);
}
@media (min-width: 1401px) {
  .mv_logo .logo { margin-top: 2rem; }
}

/* slider
----------------------------------------*/
.mv-slider {
  overflow: hidden;
}
.mv-slider_list {
  list-style: none;
  height: var(--mv-img-height);
}
.mv-slider_item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/*--------------------------------------------------------------------------------
  .news
--------------------------------------------------------------------------------*/
.news {
  display: grid;
  padding-bottom: var(--space-2s);
}
@media (min-width:961px) {
  .news {
    padding-top: var(--space-2l);
    grid-template-columns: auto 1fr;
    grid-template-rows: auto 1fr;
    grid-column-gap: var(--space-l);
    grid-row-gap: var(--space-l);
    grid-template-areas:
      "news-hd news-list"
      "news-btn news-list";
  }
  .news_hd {
    grid-area: news-hd;
    text-align: center;
  }
  .news_list {
    grid-area: news-list;
    width: min(100%, 880px);
    justify-self: end;
  }
  .news_btn { text-align: center; }
}
@media (max-width:960px) {
  .news {
    padding-top: var(--space-l);
    grid-template-columns: 1fr;
    grid-row-gap: var(--space-m);
  }
  .news_btn { text-align:right; }
}

/*--------------------------------------------------------------------------------
  .kodawari
--------------------------------------------------------------------------------*/
.kodawari {
  background: url("../image/kodawari-deco.svg") no-repeat center top;
  background-size: 1800px auto;
  text-align: center;
  margin-top: var(--space-l);
}
@media (max-width:1200px) {
  .kodawari {
    background-size: 150% auto;
  }
}
.kodawari_content {
  position: relative;
  text-align: center;
}
.kodawari_content:before {
  content: "";
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  left: 0;
  top: calc(var(--space-3l) + var(--space-m));
  z-index: -1;
  mask-image: url("../image/mask/semicircle.svg");
  mask-repeat: no-repeat;
  mask-position: center top;
  mask-size: cover;
  background: linear-gradient(180deg, rgba(var(--bpink2-rgba), 0.4) 0%, rgba(var(--bpink2-rgba), 0) 100%);
}
.kodawari_img-area {
  max-width: 1080px;
  margin: var(--space-s) auto 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: 1fr; 
}
.kodawari_img {
  grid-area: 1 / 1 / 2 / 3;
  padding-top: var(--space-s);
}
.kodawari_copy {
  grid-area: 1 / 2 / 2 / 3;
  line-height: var(--lineh-s);
  display: flex;
  align-items: flex-start;
  flex-direction: row-reverse;
  column-gap: 0.25rem;
  text-align: left;
}
.kodawari_copy-item {
  writing-mode: vertical-rl;
  font-family: var(--ff-min);
  font-weight: 400;
  font-size: clamp(0.8em, 3vw, 1.4em);
  background-color: var(--yellow);
  color: #FFF;
  padding: 0.8em 0.4em;
  position: relative;
  z-index: 2;
}
.kodawari_txt {
  padding: var(--space-m) 0;
}
.kodawari_txt p:not(:first-of-type) {
  padding-top: 1rem;
}
.kodawari_btn {
  font-size: var(--fs-m);
  width: 80%;
  max-width: 320px;
}
@media (min-width: 961px) {
  .kodawari_img img {
    width: 100%;
    max-width: min((720 / 1200 * 100vw), 720px);
  }
}
@media (max-width: 960px) {
  .kodawari-container:before {
    top: var(--space-3l);
  }
  .kodawari_img img {
    width: 78%;
    max-width: 600px;
  }
}

/*--------------------------------------------------------------------------------
  .products
--------------------------------------------------------------------------------*/
.products-container { padding-top: var(--space-3l); }
.products {
  min-width: 360px;
  list-style: none;
  display: grid;
  grid-column-gap: var(--space-s);
}
.products_item a,
.products_item a:visited,
.products_item a:hover {
  color: inherit;
  text-decoration: none;
}
.products_img-area {
  position: relative;
}
.products_img-btn {
  position: absolute;
  right: 12%;
  bottom: 0;
  z-index: 2;
  width: 16%;
  height: 16%;
}
.products_img-wrap,
.products_img {
  mask-image: url("../image/mask/hana.svg");
  mask-repeat: no-repeat;
  mask-position: center top;
  mask-size: cover;
}
.products_img-wrap {
  background-color: var(--bpink2);
  position: relative;
}
.products_img {
  display: block;
  background-color: #FFF;
}
.products_img img {
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.products_ttl,
.products_meta {
  text-align: center;
}
.products_ttl {
  position: relative;
  font-weight: bold;
  font-size: var(--fs-l);
  padding: 1.5rem 0;
  line-height: var(--lineh-s);
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.products_ttl small {
  font-size: var(--fs-3s);
  font-weight: normal;
  display: block;
}
.products_ttl:after {
  content: "";
  width: 4rem;
  height: 1px;
  background-color: var(--red);
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
}
.products_meta {
  font-size: var(--fs-s);
  padding-top: 1.5rem;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
@media (min-width: 961px) {
  .products {
    grid-template-columns: repeat(3, 1fr);
    grid-row-gap: var(--space-s);
    padding-top: var(--space-s);
  }
  .products_item:nth-of-type(3n+2) {
    padding-top: var(--space-m);
  }
  .products_img-wrap {
    padding: clamp(4px, (12 / 1200 * 100vw), 12px);
  }
}
@media (max-width: 960px) {
  .products {
    grid-template-columns: repeat(2, 1fr);
    grid-row-gap: var(--space-m);
    padding-top: var(--space-m);
  }
  .products_img-area {
    max-width: 340px;
    margin: 0 auto;
  }
  .products_img-wrap {
    padding: clamp(4px, (12 / 640 * 100vw), 12px);
  }
}
@media (hover: hover) {
  .products_img { overflow: hidden; }
  .products_img img { transition: transform 0.8s var(--cubic-bezier); }
  .products_item a:hover .products_img img { transform: scale(1.08); }
}

/*--------------------------------------------------------------------------------
  .links
--------------------------------------------------------------------------------*/
.links {
  background-color: var(--bpink);
  padding: var(--space-l) calc(var(--side-space) - (var(--space-3s) / 2));
  overflow: hidden;
  margin-top: var(--space-3l);
}
.links_swiper {
  overflow: visible;
}
.links_list {
  list-style: none;
  max-width: var(--base-width);
  margin: 0 auto;
  display: flex;
}
.links_list a,
.links-list a:visited,
.links_list a:hover {
  color: inherit;
  text-decoration: none;
}
.links_list-item {
  width: calc(100% / 3);
  padding: 0 calc(var(--space-3s) / 2);
}
.links_list-inner {
  display: block;
  height: 100%;
  border-radius: 1rem;
  overflow: hidden;
}
.links_list-link {
  height: 100%;
  padding: var(--space-m) 0;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}
.links_list-link:before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.links_list-link.-item01:before {
  background: url("../image/links_p01.webp") no-repeat center bottom;
  background-size: cover;
}
.links_list-link.-item02:before {
  background: url("../image/links_p02.webp") no-repeat center center;
  background-size: cover;
}
.links_list-link.-item03:before {
  background: url("../image/links_p03.webp") no-repeat center center;
  background-size: cover;
}
.links_list-ttl {
  position: relative;
  z-index: 2;
  white-space: nowrap;
  display: inline-flex;
  align-items: flex-start;
  flex-direction: row-reverse;
  text-align: center;
  writing-mode: vertical-rl;
  padding: 1em 0.6em;
  font-family: var(--ff-min);
  font-size: var(--fs-2l);
  font-weight: 400;
  line-height: var(--lineh-2s);
  background-color: #FFF;
  box-shadow: 5px 5px 0px 0px var(--bpink2);
}
@media (max-width: 960px) {
  .links_list-ttl {
    font-size: var(--fs-l);
  }
}
@media (min-width: 801px) {
  .links_list-item {
    height: clamp(260px, (460 / 1200 * 100vw), 460px);
  }
}
@media (max-width: 800px) {
  .links_list-item {
    height: clamp(220px, (360 / 800 * 100vw), 360px);
  }
}
@media (hover: hover) {
  .links_list-link:before { transition: transform 0.8s var(--cubic-bezier), opacity 0.15s ease-in-out; }
  .links_list-link:hover:before { transform: scale(1.08); opacity: 0.8; }
}

/*--------------------------------------------------------------------------------
  .contact
--------------------------------------------------------------------------------*/
.contact { padding: var(--space-3l) 0; }
