@charset "UTF-8";

/*normalize: http://necolas.github.io/normalize.css/*/

/* Box sizing rules */

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

/* Remove default margin */

body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
ul,
ol,
dd {
  margin: 0;
  padding: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */

ul,
ol{
  list-style: none;
}

/* Set core root defaults */

/* html:focus-within {
  scroll-behavior: smooth;
} */

/* Set core body defaults */

body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

/* A elements that don't have a class get default styles */

a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

/* Make images easier to work with */

img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */

input,
button,
textarea,
select {
  font: inherit;
}

:root {
  --text-color:#000000;
  --prevNext-loupeScale: 0;
  --prevNext-loupeX: 0;
  --prevNext-loupeY: 0;
  --wp--preset--color--base:#fff;
}

/* ==========================================================================
   共通設定
========================================================================== */

html {
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	font-size: 62.5%;
  scroll-padding-top: 112px;
}

body {
	font-family: 'Noto Sans','Noto Sans JP','Noto Sans CJK JP','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','游ゴシック','游ゴシック体', 'YuGothic M', YuGothic,'メイリオ',Meiryo,sans-serif;
	font-feature-settings : 'pkna';
	color: #fff;
	text-align: justify;
	width:100%;
	font-size: 1.6rem;
	line-height: 1.5;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  background-image: -webkit-image-set(
    url('../../img/clean-step/main_bk.jpg') 1x,
    url('../../img/clean-step/main_bk@2x.jpg') 2x
  );
  background-image: image-set(
    url('../../img/clean-step/main_bk.jpg') 1x,
    url('../../img/clean-step/main_bk@2x.jpg') 2x
  );
  background-attachment: fixed;
}

img{
	vertical-align:bottom;
	width: 100%;
	height: auto;
  backface-visibility: hidden;
}

a{
	color:#fff;
	text-decoration: none;
  display: inline-block;
}

a:hover{
  opacity: .8;
}

.spShow{
	display: none;
}

.pcShow{
	display: inline-block;
}

.container *{
    transition: all .2s;
  }

button{
  background: none;
  border: none;
  padding: 0;
  outline: none;
  color: #fff;
}

button:focus{
    outline: none;
  }

button:disabled{
    opacity:1;
    color: #fff;
  }

@font-face {
 font-family: "YuGothic M";
 src: local("Yu Gothic Medium"),
      local("Yu Gothic");
 font-weight: 500;
}

/* ==========================================================================
   游ゴシック
========================================================================== */

.fontYuGo{
  font-family: '游ゴシック','游ゴシック体', 'YuGothic M', YuGothic,'Hiragino Kaku Gothic ProN','メイリオ',Meiryo,sans-serif;
  font-weight: 500;
}

@media only screen and (max-width: 767px) {
  .fontYuGo{
    font-family: '游ゴシック','游ゴシック体', 'YuGothic M', YuGothic,"Noto Sans JP", "Hiragino Kaku Gothic ProN",YuGothic,'Yu Gothic',"メイリオ", sans-serif;
    font-weight: 400;
  }
}

/* ==========================================================================
   Futura PT
========================================================================== */

.fontFP{
  font-family: "futura-pt", sans-serif;
  font-style: normal;
}

/* ==========================================================================
   Montserrat Alternates
========================================================================== */

.fontMA {
  font-family: "Montserrat Alternates", sans-serif;
  font-style: normal;
}

/* ==========================================================================
   header
========================================================================== */

.pageHeader{
  width: 100%;
  padding: 0 30px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 900;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

@media (max-width:767px){

.pageHeader{
    padding: 0 calc(calc(10/390) * 100vw)
}
  }

.pageHeader .headerLogo{
    font-size: 3rem;
    font-weight: 500;
    line-height: 1;
    margin-top: 30px;
  }

.pageHeader .headerLogo a{
      outline: none;
    }

@media (max-width:767px){

.pageHeader .headerLogo{
      display: none
  }
    }

.pageHeader .menuBtn{
    grid-column: 3;
    justify-self: end;
    align-self: center;
    position: relative;
    z-index: 1000;
    margin-top: 50px;
  }

.pageHeader .menuBtn button{
      width: 62px;
      height: 62px;
      background: #fff;
      border-radius: 50%;
      display: grid;
      place-content: center;
      cursor: pointer;
    }

.pageHeader .menuBtn .lineBox{
      width: 35px;
      height: 20px;
      display: grid;
      grid-template-columns: 100%;
      grid-template-rows: auto;
      gap: 8px;
    }

.pageHeader .menuBtn .line{
      height: 2px;
      background: #C0A98B;
      transition: rotate .2s linear;
    }

.pageHeader .menuBtnOpen{
    gap:0;
  }

.pageHeader .menuBtnOpen .line{
      grid-column: 1;
      align-self: center;
    }

.pageHeader .menuBtnOpen .line1{
      grid-row: 1;
      rotate: 20deg;
    }

.pageHeader .menuBtnOpen .line2{
      grid-row: 1;
      opacity: 0;
    }

.pageHeader .menuBtnOpen .line3{
      grid-row: 1;
      rotate: -20deg;
    }

@media (max-width:767px){
    .pageHeader .menuBtn{
      margin: calc(calc(10/390) * 100vw) 0 0 auto;
    }
      .pageHeader .menuBtn button{
        width: calc(calc(49/390) * 100vw);
        height: calc(calc(49/390) * 100vw);
      }
      .pageHeader .menuBtn .lineBox{
        width: calc(calc(27/390) * 100vw);
        height: calc(calc(20/390) * 100vw);
        display: grid;
        grid-template-columns: 100%;
        grid-template-rows: auto;
        gap: calc(calc(5/390) * 100vw);
      }
      .pageHeader .menuBtn .line{
        height: calc(calc(2/390) * 100vw);
      }
  }

/* ==========================================================================
   メニュー
========================================================================== */

.gNav{
  display: none;
  opacity: 0;
  translate: 100% 0;
  background: #8B7253;
  border-radius: 30px;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 999;
  width: 686px;
  height: 100svh;
  justify-content: center;
  align-items: center;
  overflow-y: auto;
  overscroll-behavior-y: none;
}

.gNav .inner{
    margin: auto;
    width: 100%;
    padding: 75px;
  }

.gNav .pageLink{
    max-width: 442px;
    font-size: 2.2rem;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: -.03em;
    padding-bottom: 30px;
    background-image : linear-gradient(to right, #A58A69 3px, transparent 3px);
    background-size: 6px 3px;
    background-repeat: repeat-x;
    background-position: left bottom;
  }

.gNav .pageLink li + li{
      margin-top: 28px;
    }

.gNav .sns{
    margin-top: 32px;
  }

.gNav .sns figcaption{
      font-size: 2.2rem;
      font-weight: 400;
      display: flex;
      align-items: center;
    }

.gNav .sns figcaption::before{
        content: '';
        width: 13px;
        height: 23px;
        background: url('../../img/clean-step/follow_icon.svg') no-repeat center center / contain;
        flex-shrink: 0;
        margin-right: 13px;
      }

.gNav .sns ul{
      margin-top: 23px;
      display: flex;
      gap: 17px;
    }

.gNav .sns ul li{
        flex: 0 1 22px;
      }

.navOpen{
  display: flex;
  animation: menuSlideIn .4s 1 0s ease-in-out forwards;
}

.navClose{
  animation: menuSlideOut .4s 1 0s ease-in-out forwards;
}

@keyframes menuSlideIn {
  0%{
    opacity: 0;
    translate: 100% 0;
  }
  100%{
    opacity: 1;
    translate: 0 0;
  }
}

@keyframes menuSlideOut {
  0%{
    opacity: 1;
    translate: 0 0;
  }
  99%{
    opacity: 0;
    translate: 100% 0;
  }
  100%{
    opacity: 0;
    translate: 100% 0;
    display: none;
  }
}

.overlay{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 888;
  display: none;
}

@media (max-width:767px){
  .gNav{
    border-radius: 0;
    width: 100vw;
    height: 100svh;
  }
    .gNav .inner{
      margin: auto;
      width: 100%;
      padding: calc(calc(30/390) * 100vw);
    }
    .gNav .pageLink{
      max-width: none;
      font-size: calc(calc(22/390) * 100vw);
      font-weight: 500;
      line-height: 1.3;
      letter-spacing: -.03em;
      padding-bottom: calc(calc(30/390) * 100vw);
      background-image : linear-gradient(to right, #A58A69 calc(calc(3/390) * 100vw), transparent calc(calc(3/390) * 100vw));
      background-size: calc(calc(6/390) * 100vw) calc(calc(3/390) * 100vw);
      background-repeat: repeat-x;
      background-position: left bottom;
    }
      .gNav .pageLink li + li{
        margin-top: calc(calc(28/390) * 100vw);
      }
      .gNav .pageLink li:first-child{
        width: calc(calc(30/390) * 100vw);
      }
    .gNav .sns{
      margin-top: calc(calc(32/390) * 100vw);
    }
      .gNav .sns figcaption{
        font-size: calc(calc(22/390) * 100vw);
      }
        .gNav .sns figcaption::before{
          width: calc(calc(13/390) * 100vw);
          height: calc(calc(23/390) * 100vw);
          margin-right: calc(calc(13/390) * 100vw);
        }
      .gNav .sns ul{
        margin-top: calc(calc(23/390) * 100vw);
        gap: calc(calc(17/390) * 100vw);
      }
        .gNav .sns ul li{
          flex: 0 1 calc(calc(22/390) * 100vw);
        }
}

/* ==========================================================================
   メイン画面
========================================================================== */

.cleanStepPage{
  display: grid;
  grid-template-columns: 1fr minmax(670px,calc(calc(670/1400) * 100%));
}

.cleanStepPage .slideBox{
    grid-column: 1;
    grid-row: 1;
  }

.cleanStepPage .mainContent{
    grid-column: 2;
    grid-row: 1;
  }

@media (max-width:1300px){
  .cleanStepPage{
    display: grid;
    grid-template-columns: 100%;
  }
    .cleanStepPage .slideBox{
      display: none;
    }
    .cleanStepPage .mainContent{
      grid-column: 1;
      grid-row: 1;
      justify-content: center;
    }
}

/* ==========================================================================
   cleanStepMain
========================================================================== */

.cleanStepMain{
  container-type: inline-size;
  width: 520px;
  margin: 50px 0 60px;
  box-shadow: 0 6px 6px rgba(0,0,0,.16);
  border-radius: 50px;
  background: #F4EADE;
  color: #111111;
  letter-spacing: -.03em;
  overflow: hidden;
}

@media (max-width:1300px){

.cleanStepMain{
    margin-inline: auto
}
  }

@media (max-width:767px){

.cleanStepMain{
    width: 100vw;
    margin: 0 0 calc(calc(20/520) * 100vw);
    border-radius: 0 0 calc(calc(50/520) * 100cqw) calc(calc(50/520) * 100cqw);
    padding-top: calc(calc(50/520) * 100cqw)
}
  }

.cleanStepMain .fv{
    padding: calc(calc(18/520) * 100cqw) calc(calc(48/520) * 100cqw);
  }

.cleanStepMain .fv header{
      text-align: center;
    }

.cleanStepMain .fv header h2{
        font-size: calc(calc(76/520) * 100cqw);
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0;
      }

.cleanStepMain .fv header p{
        font-size: calc(calc(26/520) * 100cqw);
        font-weight: 700;
        line-height: 1;
        letter-spacing: .6em;
        color: #765630;
        margin-top: calc(calc(15/520) * 100cqw);
      }

.cleanStepMain .fv .toptext{
      margin-top: calc(calc(16/520) * 100cqw);
      font-size: calc(calc(18/520) * 100cqw);
      line-height: 1.5;
      font-weight: 500;
    }

.cleanStepMain .fv ul{
      margin-top: calc(calc(81/520) * 100cqw);
      display: flex;
      justify-content: space-between;
    }

.cleanStepMain .fv ul li{
        flex: 0 1 calc(calc(179/520) * 100cqw);
        position: relative;
        z-index: 1;
      }

.cleanStepMain .fv ul li .circle{
          display: flex;
          justify-content: center;
          align-items: center;
          text-align: center;
          font-size: calc(calc(15/520) * 100cqw);
          line-height: 1.46;
          background: #fff;
          border-radius: 50%;
          position: absolute;
          z-index: 2;
        }

.cleanStepMain .fv ul li .img{
          border-radius: calc(calc(20/520) * 100cqw);
          overflow: hidden;
        }

.cleanStepMain .fv ul li:nth-child(1) .circle{
          width: calc(calc(126/520) * 100cqw);
          height: calc(calc(126/520) * 100cqw);
          top: calc(-1 * calc(calc(61/520) * 100cqw));
          left: calc(-1 * calc(calc(28/520) * 100cqw));
        }

.cleanStepMain .fv ul li:nth-child(1) .img{
          rotate: -3deg;
        }

.cleanStepMain .fv ul li:nth-child(1)::after{
          content: '';
          width: 24px;
          height: 24px;
          background: url('../../img/clean-step/fv_arrow.svg') no-repeat center center / contain;
          position: absolute;
          top: calc(calc(119/520) * 100cqw);
          right: calc(-1 * calc(calc(46/520) * 100cqw));
        }

.cleanStepMain .fv ul li:nth-child(2) .circle{
          width: calc(calc(151/520) * 100cqw);
          height: calc(calc(151/520) * 100cqw);
          top: calc(-1 * calc(calc(87/520) * 100cqw));
          left: calc(-1 * calc(calc(44/520) * 100cqw));
        }

.cleanStepMain .fv ul li:nth-child(2) .img{
          rotate: 3deg;
        }

.cleanStepMain .fv .endText{
      margin-top: calc(calc(14/520) * 100cqw);
      font-size: calc(calc(16/520) * 100cqw);
      line-height: 1.56;
    }

/* ==========================================================================
   proposal
========================================================================== */

.cleanStepMain .proposal{
    background: #A58A69;
    border-radius: calc(calc(30/520) * 100cqw);
    position: relative;
    padding: calc(calc(50/520) * 100cqw) calc(calc(40/520) * 100cqw) calc(calc(70/520) * 100cqw);
  }

.cleanStepMain .proposal .modalBtnList{
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0 calc(calc(23/520) * 100cqw);
    }

.cleanStepMain .proposal .modalBtn{
      width: 100%;
      height: calc(calc(73/520) * 100cqw);
      border-radius: calc(calc(10/520) * 100cqw);
      padding: calc(calc(15/520) * 100cqw);
      display: flex;
      align-items: center;
      font-size: calc(calc(16/520) * 100cqw);
      letter-spacing: -.01em;
      line-height: 1.43;
      font-weight: 500;
      text-align: justify;
      color: #111;
      background:url('../../img/clean-step/circle_arrow.svg') no-repeat calc(100% - calc(calc(15/520) * 100cqw)) center / calc(calc(24/520) * 100cqw) auto;
      background-color: #fff;
      cursor: pointer;
    }

@media (hover:hover){
        .cleanStepMain .proposal .modalBtn:hover{
          opacity: .8;
        }
      }

.cleanStepMain .proposal .modalBox{
      display: none;
      position: absolute;
      z-index: 10;
      top: 0;
      left: 0;
      width: 100%;
      background: #8B7253;
      padding: calc(calc(48/520) * 100cqw) calc(calc(40/520) * 100cqw) calc(calc(70/520) * 100cqw);
      border-radius: calc(calc(30/520) * 100cqw);
    }

.cleanStepMain .proposal .modalBox header{
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: calc(calc(19/520) * 100cqw);
      }

.cleanStepMain .proposal .modalBox header h2{
          font-size: calc(calc(30/520) * 100cqw);
          font-weight: 500;
          line-height: 1.16;
          color: #fff;
        }

.cleanStepMain .proposal .modalBox header .modalCloseBtn{
          width: calc(calc(64/520) * 100cqw);
          cursor: pointer;
        }

@media (hover:hover){
            .cleanStepMain .proposal .modalBox header .modalCloseBtn:hover{
              opacity: .8;
            }
          }

.cleanStepMain .proposal .modalBox .img{
        border-radius: calc(calc(90/520) * 100cqw);
        overflow: hidden;
      }

.cleanStepMain .proposal .modalBox .textBox{
        margin-top: calc(calc(20/520) * 100cqw);
      }

.cleanStepMain .proposal .modalBox .textBox p{
          color: #fff;
          font-size: calc(calc(16/520) * 100cqw);
          line-height: 1.56;
        }

.cleanStepMain .proposal .modalBox .textBox p + p{
          margin-top: 1.5em;
        }

.cleanStepMain .proposal .openModal{
      display: block;
      opacity: 1;
      animation: modalFadeIn .5s 1 0s linear forwards;
    }

.cleanStepMain .proposal .modalClose{
      animation: modalFadeOut .3s 1 0s linear forwards;
    }

@keyframes modalFadeIn {
      0%{
        opacity: 0;
      }
      100%{
        opacity: 1;
      }
    }

@keyframes modalFadeOut {
      0%{
        opacity: 1;
      }
      99%{
        opacity: 0;
      }
      100%{
        opacity: 0;
        display: none;
      }
    }

.cleanStepMain .proposal .proposalSec{
      margin-top: calc(calc(36/520) * 100cqw);
    }

.cleanStepMain .proposal .proposalSec >header h2{
          color: #fff;
          font-size: calc(calc(24/520) * 100cqw);
          line-height: 1.45;
          letter-spacing: 0;
          font-weight: 500;
        }

.cleanStepMain .proposal .proposalSec >header .en{
          font-size: calc(calc(85/520) * 100cqw);
          font-weight: 800;
          color: #fff;
          line-height: 1;
          text-box-trim: trim-both;
          text-box-edge: cap alphabetic;
          margin-top: calc(calc(25/520) * 100cqw);
        }

.cleanStepMain .proposal .proposalSec .toptext{
        margin: calc(calc(49/520) * 100cqw) 0;
        font-size: calc(calc(16/520) * 100cqw);
        line-height: 1.87;
        letter-spacing: 0;
        color: #fff;
      }

.cleanStepMain .proposal .proposalSec .innerSec{
        width: calc(calc(440/520) * 100cqw);
        margin-inline: auto;
        display: grid;
        grid-template-columns: 100%;
        grid-template-rows: auto 1fr;
      }

.cleanStepMain .proposal .proposalSec .innerSec h2{
          grid-column: 1;
          grid-row: 1;
          z-index: 2;
          align-self: end;
          width: calc(calc(260/520) * 100cqw);
          height: calc(calc(42/520) * 100cqw);
          background: #111;
          border-radius: calc(calc(10/520) * 100cqw);
          display: flex;
          justify-content: center;
          align-items: center;
          font-size: calc(calc(18/520) * 100cqw);
          font-weight: 500;
          color: #fff;
          rotate: -5deg;
          margin-bottom: calc(calc(26/520) * 100cqw);
        }

.cleanStepMain .proposal .proposalSec .innerSec .img{
          grid-column: 1;
          grid-row: 1;
          z-index: 1;
          border-radius: calc(calc(90/520) * 100cqw);
          overflow: hidden;
        }

.cleanStepMain .proposal .proposalSec .innerSec p{
          grid-column: 1;
          grid-row: 2;
          width: calc(calc(400/520) * 100cqw);
          margin: calc(calc(10/520) * 100cqw) auto 0;
          color: #fff;
          font-size: calc(calc(15/520) * 100cqw);
          line-height: 1.86;
          letter-spacing: 0;
        }

.cleanStepMain .proposal .proposalSec .innerSec + .innerSec{
        margin-top: calc(calc(29/520) * 100cqw);
      }

/* ==========================================================================
   共通部品
========================================================================== */

.cleanStepMain .enTitle{
    font-size: calc(calc(30/520) * 100cqw);
    font-weight: 500;
    line-height: 1;
  }

.cleanStepMain .enTitle::after{
      content: attr(data-en);
      font-size: calc(calc(105/520) * 100cqw);
      font-weight: 800;
      text-box-trim: trim-both;
      text-box-edge: cap alphabetic;
      margin-top: calc(calc(12/520) * 100cqw);
      display: block;
      letter-spacing: 0;
      font-family: "futura-pt", sans-serif;
    }

/* ==========================================================================
   導入事例
========================================================================== */

.cleanStepMain .case{
    padding: calc(calc(70/520) * 100cqw) calc(calc(40/520) * 100cqw);
  }

.cleanStepMain .case .enTitle{
      margin-bottom: calc(calc(54/520) * 100cqw);
    }

.cleanStepMain .case .enTitle::after{
        color: #C7AF8F;
      }

.cleanStepMain .case .voiceSec >h2{
        font-size: calc(calc(21/520) * 100cqw);
        line-height: 1;
        letter-spacing: 0;
        padding-bottom: calc(calc(15/520) * 100cqw);
        background-image : linear-gradient(to right, #A58A69 calc(calc(3/520) * 100cqw), transparent calc(calc(3/520) * 100cqw));
        background-size: calc(calc(6/520) * 100cqw) calc(calc(3/520) * 100cqw);
        background-repeat: repeat-x;
        background-position: left bottom;
        margin-bottom: calc(calc(40/520) * 100cqw);
      }

.cleanStepMain .case .voiceSec + .voiceSec2{
      margin-top: calc(calc(59/520) * 100cqw);
    }

.cleanStepMain .case .voice >header{
        display: flex;
        align-items: center;
        flex-flow: row wrap;
      }

.cleanStepMain .case .voice >header::before{
          content: '';
          width: calc(calc(100/520) * 100cqw);
          height: calc(calc(136/520) * 100cqw);
          background-repeat: no-repeat;
          background-position: left center;
          background-size: contain;
          flex-shrink: 0;
          margin-right: calc(calc(30/520) * 100cqw);
        }

.cleanStepMain .case .voice >header h2{
          width: calc(calc(292/520) * 100cqw);
          height: calc(calc(137/520) * 100cqw);
          background: url('../../img/clean-step/filodasjo.svg') no-repeat center center / contain;
          display: flex;
          flex-flow: column;
          justify-content: center;
          align-items: flex-start;
          font-size: calc(calc(17/520) * 100cqw);
          line-height: 1.29;
          letter-spacing: 0;
          text-align: justify;
          padding-left: calc(calc(38/520) * 100cqw);
        }

.cleanStepMain .case .voice >header h2 span{
            padding-left: 5em;
          }

.cleanStepMain .case .voice >header .position{
          flex: 0 1 100%;
          font-size: calc(calc(17/520) * 100cqw);
          font-weight: 700;
          line-height: 1.29;
          letter-spacing: 0;
          margin-top: calc(calc(20/520) * 100cqw);
        }

.cleanStepMain .case .voice >p{
        margin-top: calc(calc(10/520) * 100cqw);
        font-size: calc(calc(15/520) * 100cqw);
        font-weight: 300;
        line-height: 1.46;
        letter-spacing: 0;
      }

.cleanStepMain .case .voice + .voice{
      margin-top: calc(calc(41/520) * 100cqw);
    }

.cleanStepMain .case .voice1 >header::before{
          background-image: -webkit-image-set(
            url('../../img/clean-step/voice1.png') 1x,
            url('../../img/clean-step/voice1@2x.png') 2x
          );
          background-image: image-set(
            url('../../img/clean-step/voice1.png') 1x,
            url('../../img/clean-step/voice1@2x.png') 2x
          );
        }

.cleanStepMain .case .voice2 >header::before{
          background-image: -webkit-image-set(
            url('../../img/clean-step/voice2.png') 1x,
            url('../../img/clean-step/voice2@2x.png') 2x
          );
          background-image: image-set(
            url('../../img/clean-step/voice2.png') 1x,
            url('../../img/clean-step/voice2@2x.png') 2x
          );
        }

.cleanStepMain .case .voice3 >header::before{
          background-image: -webkit-image-set(
            url('../../img/clean-step/voice3.png') 1x,
            url('../../img/clean-step/voice3@2x.png') 2x
          );
          background-image: image-set(
            url('../../img/clean-step/voice3.png') 1x,
            url('../../img/clean-step/voice3@2x.png') 2x
          );
        }

/* ==========================================================================
   flow
========================================================================== */

.cleanStepMain .flow{
    padding: calc(calc(70/520) * 100cqw) calc(calc(40/520) * 100cqw);
    border-radius: calc(calc(30/520) * 100cqw);
    background: url('../../img/clean-step/flow_bk.svg') no-repeat left calc(calc(424/520) * 100cqw) / 100% auto;
    background-color: #A58A69;
  }

.cleanStepMain .flow .enTitle{
      margin-bottom: calc(calc(34/520) * 100cqw);
      color: #fff;
    }

.cleanStepMain .flow .enTitle::after{
        color: #fff;
      }

.cleanStepMain .flow .toptext{
      color: #fff;
      font-size: calc(calc(15/520) * 100cqw);
      line-height: 1.86;
      letter-spacing: 0;
    }

.cleanStepMain .flow ol{
      width: calc(calc(419/520) * 100cqw);
      margin:calc(calc(24/520) * 100cqw) auto 0;
    }

.cleanStepMain .flow .flowSec{
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
    }

.cleanStepMain .flow .flowSec .textBox{
        flex: 0 1 calc(calc(198/520) * 100cqw);
      }

.cleanStepMain .flow .flowSec .textBox .num{
          font-size: calc(calc(25/520) * 100cqw);
          color: #FAF454;
          font-weight: 700;
          line-height: 1;
          margin-bottom: calc(calc(5/520) * 100cqw);
        }

.cleanStepMain .flow .flowSec .textBox h2{
          color: #fff;
          font-size: calc(calc(18/520) * 100cqw);
          font-weight: 700;
          line-height: 1.33;
        }

.cleanStepMain .flow .flowSec .textBox >p{
          font-size: calc(calc(15/520) * 100cqw);
          line-height: 1.86;
          letter-spacing: 0;
          color: #fff;
          margin-top: calc(calc(5/520) * 100cqw);
        }

.cleanStepMain .flow .flowSec .img{
        flex: 0 1 calc(calc(179/520) * 100cqw);
        border-radius: calc(calc(20/520) * 100cqw);
        overflow: hidden;
      }

.cleanStepMain .flow .flowSec1 .textBox{
        order: 1;
        margin-bottom: calc(calc(58/520) * 100cqw);
      }

.cleanStepMain .flow .flowSec1 .img{
        order: 2;
        rotate: 3deg;
      }

.cleanStepMain .flow .flowSec2 .textBox{
        order: 2;
        margin-bottom: calc(calc(19/520) * 100cqw);
      }

.cleanStepMain .flow .flowSec2 .textBox >p{
          line-height: 1.46;
        }

.cleanStepMain .flow .flowSec2 .img{
        order: 1;
        rotate: -3deg;
      }

.cleanStepMain .flow .flowSec3 .textBox{
        order: 1;
        margin-bottom: calc(calc(58/520) * 100cqw);
      }

.cleanStepMain .flow .flowSec3 .img{
        order: 2;
        rotate: 3deg;
      }

/* ==========================================================================
   plan
========================================================================== */

.cleanStepMain .plan{
    padding: calc(calc(70/520) * 100cqw) calc(calc(40/520) * 100cqw);
  }

.cleanStepMain .plan .enTitle{
      margin-bottom: calc(calc(31/520) * 100cqw);
    }

.cleanStepMain .plan .enTitle::after{
        color: #C7AF8F;
      }

.cleanStepMain .plan .toptext{
      font-size: calc(calc(15/520) * 100cqw);
      line-height: 1.86;
      letter-spacing: 0;
      margin-bottom: calc(calc(19/520) * 100cqw);
      width: -moz-max-content;
      width: max-content;
    }

.cleanStepMain .plan .planSec{
      background: #fff;
      border: calc(calc(1/520) * 100cqw) solid #C7C7C7;
      border-radius: calc(calc(10/520) * 100cqw);
      padding: calc(calc(15/520) * 100cqw) calc(calc(20/520) * 100cqw);
    }

.cleanStepMain .plan .planSec h2{
        font-size: calc(calc(16/520) * 100cqw);
        font-weight: 700;
        letter-spacing: 0;
        line-height: 1;
        color: #D85B00;
        padding-bottom: calc(calc(15/520) * 100cqw);
        background-image : linear-gradient(to right, #A58A69 calc(calc(2/520) * 100cqw), transparent calc(calc(2/520) * 100cqw));
        background-size: calc(calc(4/520) * 100cqw) calc(calc(3/520) * 100cqw);
        background-repeat: repeat-x;
        background-position: left bottom;
        margin-bottom: calc(calc(13/520) * 100cqw);
      }

.cleanStepMain .plan .planSec1 .priceText{
        font-size: calc(calc(15/520) * 100cqw);
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1;
        display: flex;
        align-items: center;
      }

.cleanStepMain .plan .planSec1 .priceText span:first-child{
          padding-right: calc(calc(10/520) * 100cqw);
        }

.cleanStepMain .plan .planSec1 .priceText strong{
          font-size: calc(calc(40/520) * 100cqw);
          font-weight: 800;
        }

.cleanStepMain .plan .planSec1 .priceText small{
          font-size: calc(calc(20/520) * 100cqw);
          padding-left: calc(calc(12/520) * 100cqw);
          font-weight: 700;
        }

.cleanStepMain .plan .planSec1 .priceText span:last-child{
          font-size: calc(calc(20/520) * 100cqw);
          font-weight: 700;
          padding-left: calc(calc(10/520) * 100cqw);
        }

.cleanStepMain .plan .planSec1 .notice{
        font-size: calc(calc(14/520) * 100cqw);
        line-height: 1.74;
        margin-top: calc(calc(7/520) * 100cqw);
      }

.cleanStepMain .plan .planSec2{
      margin-top: calc(calc(20/520) * 100cqw);
    }

.cleanStepMain .plan .planSec2 p{
        font-size: calc(calc(14/520) * 100cqw);
        line-height: 1.74;
      }

/* ==========================================================================
   faq
========================================================================== */

.cleanStepMain .faq{
    padding: 0 calc(calc(40/520) * 100cqw) calc(calc(70/520) * 100cqw);
  }

.cleanStepMain .faq .enTitle{
      margin-bottom: calc(calc(54/520) * 100cqw);
    }

.cleanStepMain .faq .enTitle::after{
        color: #C7AF8F;
      }

.cleanStepMain .faq .faqBox{
      background: #fff;
      border-radius: calc(calc(10/520) * 100cqw);
    }

.cleanStepMain .faq .faqBox >header{
        display: flex;
        align-items: center;
        gap: 0 calc(calc(19/520) * 100cqw);
        cursor: pointer;
        letter-spacing: 0;
        padding: calc(calc(18/520) * 100cqw) calc(calc(23/520) * 100cqw) calc(calc(18/520) * 100cqw) calc(calc(28/520) * 100cqw);
      }

@media (hover:hover){
          .cleanStepMain .faq .faqBox >header:hover{
            opacity: .8;
          }
        }

.cleanStepMain .faq .faqBox >header::before{
          content: 'Q';
          font-family: "futura-pt", sans-serif;
          font-size: calc(calc(30/520) * 100cqw);
          font-weight: 800;
          color: #D85A01;
          flex-shrink: 0;
          line-height: 1;
        }

.cleanStepMain .faq .faqBox >header h2{
          font-size: calc(calc(17/520) * 100cqw);
          font-weight: 500;
          line-height: 1.4;
        }

.cleanStepMain .faq .faqBox >header::after{
          content: '';
          width: calc(calc(16/520) * 100cqw);
          height: calc(calc(10/520) * 100cqw);
          background: url('../../img/clean-step/faq_arrow.svg') no-repeat center center / contain;
          flex-shrink: 0;
          margin: 0 0 0 auto;
          transition: rotate .2s linear;
        }

.cleanStepMain .faq .faqBox .open::after{
          rotate: 180deg;
        }

.cleanStepMain .faq .faqBox .hideBox{
        display: none;
        transition: none;
        padding: 0 calc(calc(49/520) * 100cqw) calc(calc(20/520) * 100cqw) calc(calc(30/520) * 100cqw);
      }

.cleanStepMain .faq .faqBox .hideBox .inner{
          display: flex;
          gap: 0 calc(calc(20/520) * 100cqw);
        }

.cleanStepMain .faq .faqBox .hideBox .inner::before{
            content: 'A';
            font-family: "futura-pt", sans-serif;
            font-size: calc(calc(30/520) * 100cqw);
            font-weight: 800;
            color: #868686;
            flex-shrink: 0;
            line-height: 1;
          }

.cleanStepMain .faq .faqBox .hideBox .aBox{
          padding-top: .2em;
          font-size: calc(calc(16/520) * 100cqw);
          line-height: 1.5;
        }

.cleanStepMain .faq .faqBox + .faqBox{
      margin-top: calc(calc(20/520) * 100cqw);
    }

/* ==========================================================================
   LET’S START
========================================================================== */

.cleanStepMain .start{
    position: relative;
    z-index: 2;
    background: #A58A69;
    border-radius: calc(calc(30/520) * 100cqw);
    padding: calc(calc(70/520) * 100cqw) calc(calc(40/520) * 100cqw);
  }

.cleanStepMain .start .enTitle{
      margin-bottom: calc(calc(62/520) * 100cqw);
      color: #fff;
    }

.cleanStepMain .start .enTitle::after{
        color: #C7AF8F;
        font-size: calc(calc(85/520) * 100cqw);
        width: -moz-max-content;
        width: max-content;
      }

.cleanStepMain .start .startSec{
      letter-spacing: 0;
    }

.cleanStepMain .start .startSec header{
        margin-bottom: calc(calc(17/520) * 100cqw);
      }

.cleanStepMain .start .startSec header h2{
          color: #FAF353;
          font-size: calc(calc(22/520) * 100cqw);
          font-weight: 500;
          margin-bottom: calc(calc(6/520) * 100cqw);
        }

.cleanStepMain .start .startSec header p{
          color: #fff;
          font-size: calc(calc(15/520) * 100cqw);
          line-height: 1.86;
          letter-spacing: 0;
        }

.cleanStepMain .start .startSec .startBtnLink{
        height: calc(calc(60/520) * 100cqw);
        background: #fff;
        border-radius: calc(calc(30/520) * 100cqw);
        color: #111;
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: center;
        font-size: calc(calc(17/520) * 100cqw);
        font-weight: 500;
        line-height: 1.29;
        background-repeat: no-repeat;
      }

.cleanStepMain .start .startSec .startBtnLink .small{
          font-size: calc(calc(14/520) * 100cqw);
          display: block;
        }

.cleanStepMain .start .startSec .startBtnLink + .startBtnLink{
        margin-top: calc(calc(20/520) * 100cqw);
      }

.cleanStepMain .start .startSec .downBtnLink{
        background-image: url('../../img/clean-step/start_down.svg'),url('../../img/clean-step/circle_arrow.svg');
        background-position: calc(calc(34/520) * 100cqw) center,calc(100% - calc(calc(20/520) * 100cqw)) center;
        background-size: calc(calc(31/520) * 100cqw) auto,calc(calc(20/520) * 100cqw) auto;
      }

.cleanStepMain .start .startSec .onlineBtnLink{
        background-image: url('../../img/clean-step/start_online.svg'),url('../../img/clean-step/circle_arrow.svg');
        background-position: calc(calc(31/520) * 100cqw) center,calc(100% - calc(calc(20/520) * 100cqw)) center;
        background-size: calc(calc(38/520) * 100cqw) auto,calc(calc(20/520) * 100cqw) auto;
      }

.cleanStepMain .start .startSec .onlineBtnLink{
        background-image: url('../../img/clean-step/start_online.svg'),url('../../img/clean-step/circle_arrow.svg');
        background-position: calc(calc(31/520) * 100cqw) center,calc(100% - calc(calc(20/520) * 100cqw)) center;
        background-size: calc(calc(38/520) * 100cqw) auto,calc(calc(20/520) * 100cqw) auto;
      }

.cleanStepMain .start .startSec .contactBtnLink{
        background-image: url('../../img/clean-step/start_contact.svg'),url('../../img/clean-step/circle_arrow.svg');
        background-position: calc(calc(35/520) * 100cqw) center,calc(100% - calc(calc(20/520) * 100cqw)) center;
        background-size: calc(calc(31/520) * 100cqw) auto,calc(calc(20/520) * 100cqw) auto;
      }

.cleanStepMain .start .startSec + .startSec{
      margin-top: calc(calc(50/520) * 100cqw);
    }

/* ==========================================================================
   endFooter
========================================================================== */

.cleanStepMain .endFooter{
    margin-top: calc(-1 * calc(calc(26/520) * 100cqw));
    background: #8B7253;
    position: relative;
    z-index: 1;
    padding: calc(calc(70/520) * 100cqw) calc(calc(24/520) * 100cqw) calc(calc(24/520) * 100cqw);
    color: #fff;
  }

.cleanStepMain .endFooter h2{
      font-size: calc(calc(14/520) * 100cqw);
      font-weight: 400;
      line-height: 1;
      letter-spacing: 0;
      margin-bottom: calc(calc(31/520) * 100cqw);
    }

.cleanStepMain .endFooter .catch{
      display: flex;
      flex-flow: column;
      gap:calc(calc(10/520) * 100cqw) 0;
      font-weight: 600;
      letter-spacing: -.02em;
      line-height: 1;
    }

.cleanStepMain .endFooter .catch span{
        rotate: -5deg;
      }

.cleanStepMain .endFooter .catch span:nth-child(1){
        font-size: calc(calc(30/520) * 100cqw);
      }

.cleanStepMain .endFooter .catch span:nth-child(2){
        font-size: calc(calc(42/520) * 100cqw);
        text-align: center;
        width: -moz-max-content;
        width: max-content;
        letter-spacing: -.05em;
        transform-origin: center center;
      }

.cleanStepMain .endFooter .catch span:nth-child(3){
        font-size: calc(calc(26/520) * 100cqw);
        text-align: right;
      }

.cleanStepMain .endFooter .footerLogo{
      width: calc(calc(157/520) * 100cqw);
      margin: calc(calc(21/520) * 100cqw) auto 0;
    }

/* ==========================================================================
   copyright
========================================================================== */

.cleanStepPage .copyright{
    width: 520px;
    color: #fff;
    text-align: center;
    font-size: 1.4rem;
    margin-bottom: 20px;
  }

@media (max-width:767px){

.cleanStepPage .copyright{
       width: 100vw;
       margin-bottom: calc(calc(20/390) * 100vw)
  }
    }

/* ==========================================================================
   cleanStepSlide
========================================================================== */

.slideBox .slideBoxInner{
    height: 100svh;
    width: 100%;
    position: sticky;
    top: 0;
    display: flex;
    justify-content: center;
    align-items: center;
  }

.cleanStepSlide{
  width: 498px;
  margin: auto;
  position: relative;
  z-index: 1;
}

.cleanStepSlide .swiper-slide .mamGrandama{
      color: #fff;
      text-align: center;
      font-weight: 700;
      font-size: 3rem;
      letter-spacing: -.03em;
      line-height: 1;
      margin-bottom: 6px;
    }

.cleanStepSlide .catch{
    position: absolute;
    top: 42px;
    left: 50%;
    z-index: 2;
    width: -moz-max-content;
    width: max-content;
    translate: -50% 0;
    color: #fff;
    text-align: center;
    font-weight: 700;
    font-size: 3.6rem;
    line-height: 1.22;
    letter-spacing: -.03em;
  }

.cleanStepSlide .okudake{
    position: absolute;
    top: 300px;
    left: -47px;
    z-index: 2;
    color: #fff;
    text-align: center;
    font-weight: 500;
    font-size: 1.9rem;
    letter-spacing: -.03em;
    line-height: 1.21;
  }

.cleanStepSlide .okudake::before{
      content: '';
      width: 146px;
      height: 109px;
      background-position: center center;
      background-repeat: no-repeat;
      background-size: contain;
      background-image: -webkit-image-set(
        url('../../img/clean-step/slide_illu.png') 1x,
        url('../../img/clean-step/slide_illu@2x.png') 2x
      );
      background-image: image-set(
        url('../../img/clean-step/slide_illu.png') 1x,
        url('../../img/clean-step/slide_illu@2x.png') 2x
      );
      position: absolute;
      top: -79px;
      left: -22px;
    }

.cleanStepSlide .contactBtn{
    width: 280px;
    height: 50px;
    margin: -34px auto 0;
    position: relative;
    z-index: 2;
  }

.cleanStepSlide .contactBtn a{
      width: 100%;
      height: 100%;
      background: url('../../img/clean-step/slide_contact_bk.svg') no-repeat center center / contain;
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 1.8rem;
      font-weight: 500;
      letter-spacing: -.03em;
      color: #111;
    }

.cleanStepSlide .sns{
    margin-top: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0 17px;
  }

.cleanStepSlide .sns li{
      flex: 0 1 22px;
    }

.cleanStepSlide .com{
    text-align: center;
    color: #fff;
    font-size: 1.4rem;
    line-height: 1;
    margin-top: 23px;
  }

/* ==========================================================================
   end
========================================================================== */