@charset "UTF-8";
/* CSS Document - SP */

/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Shippori+Mincho:wght@400;500;600;700;800&display=swap');

/* base
----------------------------------- */
html {
  width: 100%;
  scroll-behavior: smooth;
    scroll-padding-top: 80px;
}

body {
  width: 100%;
  margin: 0;
  padding: 0;
  color: #333;
  background-color: #fff;
  font-family: "Shippori Mincho", serif;
  font-size: 14px;
  line-height: 1.8;
  text-align: justify;
  font-weight: 400;
  overflow-x: hidden;
  animation: fadeIn 1s ease 0s 1 normal;
}

p {
  text-align: justify;
}

*, *::before, *::after {
  box-sizing: border-box;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: #333;
  text-decoration: none;
  transition: opacity 0.3s ease, color 0.3s ease;
}

a:hover {
  color: #333;
  text-decoration: none;
}

.sp_no {
  display: none !important;
}

/* FLEX */
.flex {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

/* header
----------------------------------- */
#header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 0;
    padding-left: 5vw;
    padding-bottom: 0;
    box-sizing: border-box;
     background: rgba(255, 255, 255, 0.94);
    z-index: 9998;
}

.logo {
    z-index: 9999;
  margin: 0;
  width: 170px;
  display: flex;
  align-items: center;
}

.logo a {
  display: flex;
  align-items: center;
}

.logo img {
  width: auto;
  height: 28px;
}

.gnav {
  display: none;
}

/* first view
----------------------------------- */
.fv {
  position: relative;
  width: 100%;
  min-height: 100svh;
  background: #fff;
}

.fv_inner {
  position: relative;
  width: 100%;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transform: translateY(-20px);
}

.mizuhiki {
  width: 54px;
  margin-bottom: 22px;
}

.mizuhiki img {
  width: 100%;
  height: auto;
  display: block;
}

.fv h2 {
  margin: 0;
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.8;
  
}

/* scroll
----------------------------------- */
.scroll_line {
  position: absolute;
  left: 50%;
  bottom: 36px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.scroll_line p {
  margin: 0 0 16px;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.36em;
  color: #222;
  animation: scrollTextBlink 1.8s ease-in-out infinite;
}

.scroll_line span {
  position: relative;
  display: block;
  width: 1px;
  height: 64px;
  overflow: hidden;
  background: transparent;
}

.scroll_line span::before {
  content: "";
  position: absolute;
  left: 0;
  top: -64px;
  width: 1px;
  height: 64px;
  background: #222;
  animation: scrollLineMoveSp 1.8s ease-in-out infinite;
}

@keyframes scrollTextBlink {
  0% { opacity: 0; }
  25% { opacity: 1; }
  65% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes scrollLineMoveSp {
  0% {
    transform: translateY(0);
    opacity: 0;
  }
  20% {
    opacity: 1;
  }
  70% {
    opacity: 1;
  }
  100% {
    transform: translateY(128px);
    opacity: 0;
  }
}

/* right sns
----------------------------------- */
.side_sns {
    position: fixed;
    right: 90px;
    top: 0;
    z-index: 9999;
    display: flex;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    height: 80px;

}

.side_sns a {

  display: flex;
  justify-content: center;
  align-items: center;
}

.side_sns a img {
  width: 28px;
  height: auto;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 400px) {
    .side_sns {
        right: 90px;
        width: 40px;
    }
    .side_sns a img {
        width: 18px;
        }
}
.side_sns a:hover {
  opacity: 0.65;
}

/* right contact
----------------------------------- */
.side_contact {
  font-family: "Noto Sans JP", sans-serif;

}

.side_contact .mail_icon {
  color: #000;
  font-weight: 400;
  font-size: 40px;
  line-height: 1;
}
.side_contact .mail_txt {
    display: none;
}
.side_contact:hover {
  opacity: 0.75;
}

/* intro
----------------------------------- */
.top_intro {
    position: relative;
    width: 100%;
    padding-top: 48px;
    padding-right: 0;
    padding-left: 0;
    background: #fff;
}

.top_intro_inner {
  width: 88%;
  margin: 0 auto;
  text-align: center;
}

.top_intro_title {
  margin: 0 0 30px;
  font-size: 26px;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.18em;
}

.top_intro_title span {
  font-size: 0.8em;
}

.top_intro_text {
  margin: 0 auto 32px;
  font-size: 14px;
  line-height: 2.2;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-align: left;
}

.top_intro_text br {
  display: none;
}

.top_intro_img {
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
}

.top_intro_img::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: #fff;
  pointer-events: none;
  transform: translateX(0);
}

.top_intro_img.is-show::before {
  animation: img-wrap 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes img-wrap {
  100% {
    transform: translateX(100%);
  }
}

.top_intro_img img {
  width: 100%;
  height: auto;
  display: block;
}

/* common section
----------------------------------- */
.box1 {
    width: 100%;
    padding-top: 48px;
    padding-right: 0;
    padding-left: 0;
    background: #fff;
}

.pickup_inner {
  width: 88%;
  margin: 0 auto;
}

/* 見出し */
.sec_title {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 45px;
}

.sec_title span {
  display: block;
  width: 1px;
  height: 60px;
  background: #222;
}

.sec_title h2 {
  margin: 22px 0;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.26em;
}

/* pickup list
----------------------------------- */
.pickup_list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

.pickup_list li {
  position: relative;
}

.pickup_list li a {
  position: relative;
  min-height: 78px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  box-sizing: border-box;
  overflow: hidden;
  transition: 0.3s ease;
  border: none !important;
}

.pickup_list li strong {
  position: relative;
  z-index: 2;
  display: block;
  margin-bottom: 8px;
  font-size: 19px;
  font-weight: 600;
  line-height: 1;
}

.pickup_list li em {
  position: relative;
  z-index: 2;
  display: block;
  font-style: normal;
  font-size: 12px;
  line-height: 1;
  color: #555;
}

.pickup_kumade {
  --line-color: #d51b39;
}

.pickup_novelty {
  --line-color: #00a9a5;
}

.pickup_yukapita {
  --line-color: #f39800;
}

.pickup_list li a::before,
.pickup_list li a::after,
.pickup_list li::before,
.pickup_list li::after {
  content: "";
  position: absolute;
  z-index: 1;
  background: var(--line-color);
  transition: transform 0.45s ease;
}

.pickup_list li a::before {
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  transform: scaleX(0);
  transform-origin: left center;
}

.pickup_list li a::after {
  top: 0;
  right: 0;
  width: 2px;
  height: 100%;
  transform: scaleY(0);
  transform-origin: top center;
}

.pickup_list li::before {
  right: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  transform: scaleX(0);
  transform-origin: right center;
}

.pickup_list li::after {
  left: 0;
  bottom: 0;
  width: 2px;
  height: 100%;
  transform: scaleY(0);
  transform-origin: bottom center;
}

.pickup_list li.is-show a::before {
  transform: scaleX(1);
  transition-delay: 0s;
}

.pickup_list li.is-show a::after {
  transform: scaleY(1);
  transition-delay: 0.35s;
}

.pickup_list li.is-show::before {
  transform: scaleX(1);
  transition-delay: 0.7s;
}

.pickup_list li.is-show::after {
  transform: scaleY(1);
  transition-delay: 1.05s;
}

.pickup_kumade a:hover {
  background: #d51b39;
  color: #fff;
}

.pickup_novelty a:hover {
  background: #00a9a5;
  color: #fff;
}

.pickup_yukapita a:hover {
  background: #f39800;
  color: #fff;
}

.pickup_list li a:hover em {
  color: #fff;
}

/* service
----------------------------------- */
.top_service_inner {
  width: 88%;
  margin: 0 auto;
}

.top_service_lead {
  margin: 0 auto 50px;
  text-align: left;
  font-size: 14px;
  line-height: 2.2;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.top_service_lead br {
  display: none;
}

.service_list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 42px;
}

.service_list li {
  text-align: center;
}

.service_icon {
  width: 74px;
  height: auto;
  margin: 0 auto 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.service_icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.service_list h3 {
  position: relative;
  margin: 0 0 18px;
  padding-bottom: 14px;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.1em;
}

.service_list h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: #222;
}

.service_list p {
  margin: 0 5%;
  text-align: justify;
  font-size: 14px;
  line-height: 2;
}

/* bana
----------------------------------- */
.bana_inner {
  width: 88%;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

.bana_box1 {
  display: grid;
  grid-template-columns: 1fr;
 
}

.bana_box1 li,
.bana_list li,
.company_btn_img {
  position: relative;
  overflow: hidden;
}

.bana_box1 li::before,
.bana_list li::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: #fff;
  transform: translateX(0);
  pointer-events: none;
}

.bana_box1 li img,
.bana_list li img{
  display: block;
  width: 100%;
  height: auto;
  opacity: 0;
  transform: scale(1.04);
}

.bana_box1 li.is-show::before,
.bana_list li.is-show::before {
  animation: imgCoverLeftToRight 1.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.bana_box1 li.is-show img,
.bana_list li.is-show img {
  animation: imgFadeIn 1.2s ease forwards;
}

@keyframes imgCoverLeftToRight {
  100% {
    transform: translateX(100%);
  }
}

@keyframes imgFadeIn {
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* company button
----------------------------------- */
.company_btn_wrap {
  width: 100%;
  margin: 60px auto;
}

.company_btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 86px;
  border: 3px solid #d1c2a4;
  background: #fff;
  box-sizing: border-box;
  overflow: visible;
  transition: 0.3s ease;
}

.company_btn_text {
  position: relative;
  z-index: 2;
  text-align: center;
  padding-right: 80px;
}

.company_btn_text strong {
  display: block;
  margin-bottom: 8px;
  font-size: 22px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.2em;
}

.company_btn_text em {
  display: block;
  font-style: normal;
  font-size: 12px;
  line-height: 1;
  color: #555;
}

.company_btn_img {
  position: absolute;
  right: -16px;
  bottom: -2px;
  z-index: 1;
  width: 160px;
  pointer-events: none;
}

.company_btn:hover {
  opacity: 0.75;
  transform: translateY(-3px);
}

/* banner list
----------------------------------- */
.bana_list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

.bana_list li {
  text-align: center;
}

/* footer
----------------------------------- */
#footer {
  width: 100%;
  margin-top: 64px;
  padding: 50px 0 30px;
  background: #727272;
  color: #fff;
  box-sizing: border-box;
}

.footer_inner {
  position: relative;
  width: 88%;
  margin: 0 auto;
  display: block;
}

#footer a {
  color: #fff;
  text-decoration: none;
  transition: 0.3s ease;
}

#footer a:hover {
  opacity: 0.6;
}

#footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer_nav > ul > li {
  display: flex;
  align-items: center;
  margin-bottom: 18px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: 1;
  white-space: nowrap;
}

.footer_nav > ul > li::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 72px;
  height: 1px;
  margin-right: 18px;
  background: #fff;
}

.footer_nav > ul > li span {
  display: none;
}

.footer_center {
  margin-top: 34px;
}

.footer_links h3 {
  display: flex;
  align-items: center;
  margin: 0 0 18px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.22em;
  line-height: 1;
  white-space: nowrap;
}

.footer_links h3::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 72px;
  height: 1px;
  margin-right: 18px;
  background: #fff;
}

.footer_links ul {
  padding-left: 90px;
  margin-top: 18px;
}

.footer_links li {
  margin-left: 90px;
  margin-bottom: 9px;
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.footer_logo {
  margin-top: 42px;
  text-align: center;
}

.footer_logo img {
  width: 210px;
  height: auto;
}

.footer_logo p {
  margin: 10px 0 0;
  font-size: 13px;
  letter-spacing: 0.18em;
  line-height: 1;
  text-align: center;
}

/* hamburger
----------------------------------- */
#nav-open {
  display: inline-block;
  width: 82px;
  height: 80px;
  vertical-align: middle;
  position: relative;
  z-index: 9999;
  padding: 26px 22px 10px;
}

.menu_moji {
  font-size: 12px;
  z-index: 9999;
  text-align: center;
  color: #fff;
  display: block;
  margin-top: 32px;
  letter-spacing: 0.08em;
}

#nav-open span,
#nav-open span::before,
#nav-open span::after {
  position: absolute;
  transition: all 0.4s;
  height: 3px;
  width: 38px;
  border-radius: 3px;
  background: #000;
  display: block;
  content: "";
  cursor: pointer;
  z-index: 9999;
}

#nav-open span::before {
  bottom: -12px;
}

#nav-open span::after {
  bottom: -24px;
}

#nav-content {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  transition: 0.2s ease-in-out;
  font-weight: 700;
}

#nav-content.open {
  display: block;
  opacity: 1;
  overflow: auto;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 9998;
  width: min(100vw, 420px);
  max-height: 95vh;
  background: rgba(245, 245, 245, 0.94);
  padding: 80px 28px 50px;
}

#nav-content.open::before {
  content: "";
  overflow: hidden;
  filter: blur(10px);
  z-index: -1;
}

.hamburger-top {
  height: 40px;
}

.category {
  text-align: left;
    border-top: 1px solid #333;
}

.category-title a {
    border-bottom: 1px solid #333;
  text-decoration: none;
  font-size: 16px;
  display: block;
    padding-top: 20px;
  padding-bottom: 20px;
  clear: both;
    text-align: center;
}

.sub_m_en {
  float: right;
  width: 40%;
  font-size: 14px;
  padding-top: 4px;
}

.sub_m_en2 {
  width: 100%;
  font-size: 14px;
  display: block;
  text-align: center;
}

.menu_inbox1 a {
  display: block;
  font-size: 20px;
  padding: 14px 10px;
  border: 1px solid #51432A;
  text-align: center;
  overflow: hidden;
  background-color: #51432A;
  color: #F9F5F1;
}

.menu_inbox1 .tel {
  display: block;
  clear: both;
  font-size: 24px;
  padding-top: 10px;
  text-align: center;
}

#nav-open.active span {
  transform: translateY(12px) rotate(-45deg);
}

.menu_inbox2 {
  display: block;
  clear: both;
  border-bottom: 1px solid #000;
  font-size: 18px;
  letter-spacing: 0.2em;
  text-align: center;
  padding: 14px 24px;
  text-indent: -0.2em;
}

.menu_inbox3 {
  padding-top: 15px;
  padding-bottom: 15px;
  text-align: center;
}

.menu_inbox3 .flex_c li {
  width: 50px;
  margin-right: 5px;
  margin-left: 5px;
}

.menu_inbox3 .flex_c li a img {
  width: 25px;
}

#nav-open.active span::before {
  transform: translateY(-12px) rotate(45deg);
  opacity: 0;
}

#nav-open.active span::after {
  transform: translateY(-24px) rotate(90deg);
}

/* original
----------------------------------- */
.original_inner {
  width: 100%;
  margin: 0 auto;
}
.original_box {
      border-top: 1px solid #333;
}
.original_box ul {
      width: 88%;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
    margin-bottom: 24px;
    margin-top: 24px;
}
.original_box ul .leftl {
    width: 100%;
    font-size: 14px;
    
}
.original_box ul .leftr {
    width: 100%;
     
    font-size: 14px;
   
}
.original_box ul .right {
    width: 100%;
     margin-top: 24px;
}
.mgb_24 {
    margin-bottom: 24px !important;
}
.top_intro_text2 {
  margin: 0 auto 32px;
  font-size: 14px;
  line-height: 2.2;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-align: left;
}
.txt_right {
    text-align: right;
    display: block;
    margin-top: 24px;
}

.comp_inner {
  width: 88%;
  margin: 0 auto;
}
.comp_box {
  width: 88%;
}

.comp_box dl {
  display: block;
  padding: 16px 0;
    border-bottom: 1px solid #222;
}

.comp_box dt {
  padding-left: 0;
  margin-bottom: 8px;
  font-size: 14px;
  letter-spacing: 0.22em;
}

.comp_box dd {
  padding-left: 0;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.06em;
}

.comp_box dd br {
  display: none;
}

.rec_box {
  width: 88%;
  height: 240px;
  margin: 60px auto 80px;
      background: #c8c8c8;
}

.rec_btn {
  width: min(520px, 86%);
  min-height: 82px;
  margin: 0 auto;
  border: 2px solid #222;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: #222;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.22em;
  transition: 0.3s ease;
}

.rec_btn:hover {
  background: #222;
  color: #fff;
  opacity: 1;
}
.fv h2 {
  margin: 0;
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 26px;
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: 0.22em;
}

/* 文字アニメ用 */
.fv h2 span {
  display: inline-block;
  opacity: 0;
  transform: translateY(-18px);
  animation: fvTextDown 0.8s ease forwards;
}

@keyframes fvTextDown {
  0% {
    opacity: 0;
    transform: translateY(-18px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}