/* 393pxアートボードを画面幅に合わせてスケール表示する枠 */
.smow-sp-viewport {
  --sp-base-width: 393;
  --sp-base-height: 20446;
  --sp-scale: calc(100vw / (var(--sp-base-width) * 1px));

  position: relative;
  width: 100%;
  height: calc(var(--sp-base-height) * 1px * var(--sp-scale));
  overflow: hidden;
}

/* Animaの393px固定レイアウト本体 */
.smow-sp {
  background-color: var(--colortextwhite);
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 50%;
  width: 393px;
  min-width: 393px;
  min-height: 20746px;
  transform: translateX(-50%) scale(var(--sp-scale));
  transform-origin: top center;
}

.smow-sp .header {
  position: absolute;
  top: 19px;
  left: 20px;
  width: 353px;
  height: 73px;
  display: flex;
  gap: 24.5px;
  background-color: transparent;
}

.smow-sp .header-text {
  margin-top: 28px;
  width: 214px;
  height: 44px;
  margin-left: -1px;
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 12px;
  letter-spacing: 4.80px;
  line-height: 22px;
}

.smow-sp .header-logo {
  width: 115.54px;
  height: 64.03px;
}

.smow-sp .section-fv {
  position: absolute;
  top: 97px;
  left: 20px;
  width: 353px;
  height: 754px;
}

.smow-sp .fv-img {
  display: flex;
  flex-direction: column;
  width: 353px;
  align-items: flex-start;
  position: absolute;
  top: 0;
  left: 0;
}

.smow-sp .img {
  position: relative;
  align-self: stretch;
  width: 100%;
  height: 377px;
}

.smow-sp .fv-text {
  position: absolute;
  top: 41px;
  left: 27px;
  width: 120px;
  height: 697px;
  display: flex;
  flex-direction: column;
}

.smow-sp .text-wrapper {
  margin-left: -1px;
  height: 63px;
  margin-top: -1px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #ffffff;
  font-size: 19px;
  letter-spacing: 0;
  line-height: 63px;
  white-space: nowrap;
}

.smow-sp .div {
  margin-left: -1px;
  width: 100px;
  height: 63px;
  margin-top: 12px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #ffffff;
  font-size: 19px;
  letter-spacing: 0;
  line-height: 63px;
  white-space: nowrap;
}

.smow-sp .text-wrapper-2 {
  margin-left: -1px;
  width: 102px;
  height: 63px;
  margin-top: 12px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #ffffff;
  font-size: 19px;
  letter-spacing: 0;
  line-height: 63px;
  white-space: nowrap;
}

.smow-sp .text-wrapper-3 {
  margin-left: -1px;
  width: 100px;
  height: 63px;
  margin-top: 179px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #ffffff;
  font-size: 19px;
  letter-spacing: 0;
  line-height: 63px;
  white-space: nowrap;
}

.smow-sp .text-wrapper-4 {
  margin-left: -1px;
  width: 99px;
  height: 63px;
  margin-top: 179px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #ffffff;
  font-size: 19px;
  letter-spacing: 0;
  line-height: 63px;
  white-space: nowrap;
}

.smow-sp .section-intro {
  position: absolute;
  top: 898px;
  left: 22px;
  width: 371px;
  height: 1189px;
  display: flex;
  flex-direction: column;
}

.smow-sp .section-intro-2 {
  margin-left: 18px;
  width: 210px;
  height: 92px;
  margin-top: -1px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 30px;
  letter-spacing: 0;
  line-height: 46px;
}

.smow-sp .section-intro-body {
  height: 917px;
  margin-top: 22px;
  display: flex;
  flex-direction: column;
  gap: 55px;
}

.smow-sp .section-intro-text {
  display: flex;
  margin-left: 24px;
  width: 274px;
  height: 400px;
  position: relative;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.smow-sp .IL {
  position: relative;
  align-self: stretch;
  margin-top: -2.00px;
  margin-left: -1.00px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 19px;
  letter-spacing: 0;
  line-height: 50px;
}

.smow-sp .section-intro-img {
  flex: 1;
  max-height: 462px;
  display: flex;
  flex-direction: column;
  gap: 59px;
}

.smow-sp .element-IL {
  margin-left: 139px;
  width: 232px;
  height: 160px;
}

.smow-sp .element-IL-2 {
  width: 352px;
  height: 243px;
}

.smow-sp .btn-contact-phone-sp {
  margin-left: 24px;
  margin-top: 53px;
  display: flex;
  gap: 9.4px;
  width: 306px;
  height: 59px;
  background-color: var(--coloraccentmain);
}

.smow-sp .call-icon {
  margin-top: 12px;
  width: 34.63px;
  height: 33px;
  margin-left: 26px;
}

.smow-sp .label {
  margin-top: -33px;
  width: 204px;
  height: 122px;
  color: #ffffff;
  font-size: 17px;
  letter-spacing: 4.80px;
  line-height: 122px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  white-space: nowrap;
}

.smow-sp .section-problem {
  position: absolute;
  top: 2165px;
  left: 0;
  width: 393px;
  height: 1299px;
  display: flex;
  flex-direction: column;
  gap: 64px;
  background-color: #f2f3f4;
}

.smow-sp .section-problem-2 {
  margin-left: 57px;
  width: 270px;
  height: 92px;
  margin-top: 66px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 30px;
  text-align: center;
  letter-spacing: 0;
  line-height: 46px;
}

.smow-sp .section-problem-3 {
  display: flex;
  margin-left: 46px;
  width: 306.8px;
  height: 1026px;
  position: relative;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.smow-sp .div-2 {
  position: relative;
  align-self: stretch;
  width: 100%;
  height: 505px;
}

.smow-sp .circle {
  position: absolute;
  top: 0;
  left: 0;
  width: 302px;
  height: 303px;
  background-color: var(--colortextwhite);
  border-radius: 151px / 151.5px;
}

.smow-sp .label-2 {
  position: absolute;
  top: 446px;
  left: 49px;
  color: #646464;
  font-size: 19px;
  text-align: center;
  letter-spacing: 1.90px;
  line-height: 58px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  white-space: nowrap;
}

.smow-sp .text {
  position: absolute;
  top: 51px;
  left: -1px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 19px;
  text-align: center;
  letter-spacing: 2.00px;
  line-height: 58px;
}

.smow-sp .text-2 {
  position: absolute;
  top: 175px;
  left: 1px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 19px;
  text-align: center;
  letter-spacing: 2.00px;
  line-height: 30px;
}

.smow-sp .icon {
  left: 96px;
  width: 109px;
  display: flex;
  background-image: url(./img/38.svg);
  position: absolute;
  top: 268px;
  height: 162px;
  background-size: 100% 100%;
}

.smow-sp .element {
  margin-top: 87.8px;
  width: 9.56px;
  height: 11.93px;
  margin-left: 38.5px;
}

.smow-sp .label-3 {
  position: absolute;
  top: 446px;
  left: 60px;
  color: #646464;
  font-size: 19px;
  text-align: center;
  letter-spacing: 1.90px;
  line-height: 58px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  white-space: nowrap;
}

.smow-sp .text-3 {
  position: absolute;
  top: 66px;
  left: 10px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 19px;
  text-align: center;
  letter-spacing: 2.00px;
  line-height: 58px;
}

.smow-sp .icon-2 {
  left: 87px;
  width: 127px;
  background-image: url(./img/37.svg);
  position: absolute;
  top: 268px;
  height: 162px;
  background-size: 100% 100%;
}

.smow-sp .section-message {
  position: absolute;
  top: 3464px;
  left: 0;
  width: 393px;
  height: 853px;
  display: flex;
  background-image: url(./img/section-message-bg.png);
  background-size: 100% 100%;
}

.smow-sp .section-message-copy {
  position: absolute;
  top: 107px;
  left: 6px;
  width: 295px;
  height: 195px;
  margin-top: 107px;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 56px;
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 27px;
  letter-spacing: 2.7px;
  line-height: 65px;
  white-space: normal;
}

.smow-sp .section-reason {
  position: absolute;
  top: 4378px;
  left: 19px;
  width: 354px;
  height: 1084px;
  display: flex;
  flex-direction: column;
  gap: 49px;
}

.smow-sp .section-reason-2 {
  display: flex;
  margin-left: 18px;
  width: 301px;
  height: 590px;
  position: relative;
  flex-direction: column;
  align-items: flex-start;
  gap: 25px;
}

.smow-sp .reason-heading {
  position: relative;
  width: fit-content;
  margin-top: -2.00px;
  margin-left: -1.00px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 18px;
  letter-spacing: 2.00px;
  line-height: 35px;
}

.smow-sp .reason-body {
  position: relative;
  align-self: stretch;
  margin-left: -1.00px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 18px;
  letter-spacing: 1.80px;
  line-height: 45px;
}

.smow-sp .section-reason-3 {
  height: 445px;
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.smow-sp .reason-image-top {
  margin-left: 62px;
  width: 292px;
  height: 192px;
}

.smow-sp .reason-image {
  width: 292px;
  height: 193px;
}

.smow-sp .section-reason-cards {
  position: absolute;
  top: 5629px;
  left: 19px;
  width: 354px;
  height: 2170px;
  display: flex;
  flex-direction: column;
}

.smow-sp .section-reason-cards-2 {
  margin-left: 27.7px;
  width: 299px;
  height: 92px;
  margin-top: -1px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 27px;
  text-align: center;
  letter-spacing: 3.00px;
  line-height: 46px;
}

.smow-sp .section-reason-cards-3 {
  display: flex;
  width: 354px;
  height: 1913px;
  position: relative;
  margin-top: 39px;
  flex-direction: column;
  align-items: flex-end;
  gap: 61px;
}

.smow-sp .reason-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  position: relative;
  align-self: stretch;
  width: 100%;
  flex: 0 0 auto;
}

.smow-sp .card-image {
  height: 446px;
  position: relative;
  align-self: stretch;
  width: 100%;
}

.smow-sp .card-label {
  top: 327px;
  left: 38px;
  position: absolute;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 21px;
  letter-spacing: 2.10px;
  line-height: 50px;
}

.smow-sp .card-badges {
  position: absolute;
  top: 331px;
  left: 29px;
  width: 237px;
  height: 88px;
}

.smow-sp .badge {
  width: 237px;
  height: 37px;
  position: absolute;
  top: 51px;
  left: 0;
  background-color: var(--colortextwhite);
}

.smow-sp .badge-2 {
  width: 186px;
  position: absolute;
  top: 0;
  left: 0;
  height: 37px;
  background-color: var(--colortextwhite);
}

.smow-sp .text-wrapper-5 {
  position: relative;
  align-self: stretch;
  margin-left: -1.00px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 35px;
}

.smow-sp .card-image-2 {
  height: 444px;
  position: relative;
  align-self: stretch;
  width: 100%;
}

.smow-sp .card-label-2 {
  top: 54px;
  left: 38px;
  position: absolute;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 21px;
  letter-spacing: 2.10px;
  line-height: 50px;
}

.smow-sp .card-badges-2 {
  position: absolute;
  top: 60px;
  left: 29px;
  width: 212px;
  height: 87px;
}

.smow-sp .badge-3 {
  width: 212px;
  height: 36px;
  position: absolute;
  top: 51px;
  left: 0;
  background-color: var(--colortextwhite);
}

.smow-sp .badge-4 {
  width: 185px;
  position: absolute;
  top: 0;
  left: 0;
  height: 37px;
  background-color: var(--colortextwhite);
}

.smow-sp .card-label-3 {
  top: 325px;
  left: 36px;
  position: absolute;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 21px;
  letter-spacing: 2.10px;
  line-height: 50px;
}

.smow-sp .card-badges-3 {
  position: absolute;
  top: 330px;
  left: 26px;
  width: 272px;
  height: 87px;
}

.smow-sp .badge-5 {
  width: 272px;
  height: 36px;
  position: absolute;
  top: 51px;
  left: 0;
  background-color: var(--colortextwhite);
}

.smow-sp .badge-6 {
  width: 222px;
  position: absolute;
  top: 0;
  left: 0;
  height: 37px;
  background-color: var(--colortextwhite);
}

.smow-sp .reason-card {
  position: relative;
}

.smow-sp .card-label,
.smow-sp .card-label-2,
.smow-sp .card-label-3 {
  z-index: 2;
}

.smow-sp .card-badges,
.smow-sp .card-badges-2,
.smow-sp .card-badges-3 {
  z-index: 1;
}

.smow-sp .btn-contact-phone-sp-2 {
  margin-left: 22px;
  margin-top: 61px;
  display: flex;
  gap: 9.4px;
  width: 306px;
  height: 59px;
  background-color: var(--coloraccentmain);
}

.smow-sp .section-stone-value {
  display: flex;
  flex-direction: column;
  width: 356px;
  align-items: center;
  gap: 33px;
  position: absolute;
  top: 7944px;
  left: 17px;
}

.smow-sp .text-wrapper-6 {
  position: relative;
  width: fit-content;
  margin-top: -2.00px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 30px;
  text-align: center;
  letter-spacing: 3.00px;
  line-height: 46px;
}

.smow-sp .section-stone-value-wrapper {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  align-self: stretch;
  width: 100%;
  flex: 0 0 auto;
}

.smow-sp .section-stone-value-2 {
  position: relative;
  width: 356px;
  height: 567px;
}

.smow-sp .section-stone-list {
  position: absolute;
  top: 8965px;
  left: 19px;
  width: 355px;
  height: 1849px;
  display: flex;
  flex-direction: column;
}

.smow-sp .stone-card {
  width: 354px;
  height: 394px;
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.smow-sp .stone-card-image {
  width: 354px;
  height: 196px;
}

.smow-sp .stone-card-text {
  width: 352px;
  height: 168px;
  position: relative;
}

.smow-sp .stone-card-name {
  left: 96px;
  white-space: nowrap;
  position: absolute;
  top: -15px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 27px;
  letter-spacing: 5.40px;
  line-height: 99px;
}

.smow-sp .stone-card-2 {
  width: 352px;
  position: absolute;
  top: 64px;
  left: -1px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 35px;
}

.smow-sp .stone-card-3 {
  display: flex;
  width: 355px;
  height: 394px;
  position: relative;
  margin-top: 91px;
  flex-direction: column;
  align-items: flex-start;
  gap: 30px;
}

.smow-sp .stone-card-image-2 {
  position: relative;
  align-self: stretch;
  width: 100%;
  height: 196px;
}

.smow-sp .stone-card-text-2 {
  align-self: stretch;
  width: 100%;
  height: 168px;
  position: relative;
}

.smow-sp .stone-card-4 {
  width: 100%;
  position: absolute;
  top: 62px;
  left: -1px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 35px;
}

.smow-sp .stone-card-name-2 {
  width: calc(100% - 260px);
  left: 131px;
  position: absolute;
  top: -1px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 27px;
  letter-spacing: 5.40px;
  line-height: 99px;
}

.smow-sp .stone-card-5 {
  display: flex;
  width: 354px;
  height: 393px;
  position: relative;
  margin-top: 92px;
  flex-direction: column;
  align-items: flex-start;
  gap: 30px;
}

.smow-sp .stone-card-image-3 {
  position: relative;
  align-self: stretch;
  width: 100%;
  height: 195px;
}

.smow-sp .stone-card-name-3 {
  left: 113px;
  white-space: nowrap;
  position: absolute;
  top: -15px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 27px;
  letter-spacing: 5.40px;
  line-height: 99px;
}

.smow-sp .stone-card-6 {
  display: flex;
  width: 352px;
  height: 394px;
  position: relative;
  margin-top: 91px;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
}

.smow-sp .stone-card-image-4 {
  position: relative;
  align-self: stretch;
  width: 100%;
  height: 194px;
}

.smow-sp .stone-card-name-4 {
  left: 131px;
  white-space: nowrap;
  position: absolute;
  top: -20px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 27px;
  letter-spacing: 5.40px;
  line-height: 99px;
}

.smow-sp .section-how-to-use {
  position: absolute;
  top: 10915px;
  left: 0;
  width: 393px;
  height: 1252px;
  display: flex;
  background-color: #f2f3f4;
}

.smow-sp .section-how-to-use-2 {
  display: flex;
  margin-top: 114px;
  width: 354px;
  height: 1037px;
  margin-left: 19px;
  position: relative;
  flex-direction: column;
  align-items: center;
  gap: 52px;
}

.smow-sp .section-how-to-use-3 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
  position: relative;
  align-self: stretch;
  width: 100%;
  flex: 0 0 auto;
}

.smow-sp .how-to-use-image {
  position: relative;
  align-self: stretch;
  width: 100%;
  height: 235px;
}



.smow-sp .call-icon-2 {
  position: absolute;
  width: 35px;
  height: 33px;
  top: 12px;
  left: 26px;
}

.smow-sp .label-4 {
  position: absolute;
  top: 50%;
  left: 118px;
  transform: translateY(-50%);
  margin: 0;
  color: #ffffff;
  font-size: 17px;
  letter-spacing: 4.80px;
  line-height: 1;
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  white-space: nowrap;
}

.smow-sp .section-consult-and {
  position: absolute;
  top: 12245px;
  left: 0;
  width: 393px;
  height: 657px;
}

.smow-sp .section-consult {
  position: absolute;
  top: -1px;
  left: 20px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 30px;
  text-align: center;
  letter-spacing: 0;
  line-height: 46px;
}

.smow-sp .section-consult-note {
  position: absolute;
  top: 516px;
  left: 6px;
  width: 352px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 35px;
}

.smow-sp .section-consult-list {
  position: absolute;
  top: 475px;
  left: 289px;
  width: 352px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 35px;
}

.smow-sp .section-consult-lead {
  position: absolute;
  top: 393px;
  left: -1px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 700;
  color: #646464;
  font-size: 19px;
  letter-spacing: 0.60px;
  line-height: 40px;
}

.smow-sp .section-consult-2 {
  position: absolute;
  top: 118px;
  left: 80px;
  width: 208px;
  height: 207px;
}

.smow-sp .icon-3 {
  position: absolute;
  top: 78px;
  left: 107px;
  width: 101px;
  height: 129px;
  background-image: url(./img/37-1.svg);
  background-size: 100% 100%;
}

.smow-sp .element-wrapper {
  position: absolute;
  top: 78px;
  left: 0;
  width: 87px;
  height: 129px;
  display: flex;
  background-image: url(./img/38-1.svg);
  background-size: 100% 100%;
}

.smow-sp .element-2 {
  margin-top: 69.9px;
  width: 7.6px;
  height: 9.5px;
  margin-left: 30.6px;
}

.smow-sp .text-wrapper-7 {
  position: absolute;
  top: -1px;
  left: 75px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 700;
  color: #646464;
  font-size: 86px;
  letter-spacing: 2.58px;
  line-height: normal;
  white-space: nowrap;
}

.smow-sp .section-plan {
  position: absolute;
  top: 12900px;
  left: 19px;
  width: 355px;
  height: 1856px;
}

.smow-sp .section-plan-inner {
  position: absolute;
  top: 196px;
  left: 1px;
  width: 355px;
  height: 1656px;
  display: flex;
  flex-direction: column;
  gap: 58px;
}

.smow-sp .section-plan-list {
  display: flex;
  width: 354.54px;
  height: 1539px;
  position: relative;
  flex-direction: column;
  align-items: center;
  gap: 72px;
}

.smow-sp .plan-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 26px;
  position: relative;
  align-self: stretch;
  width: 100%;
  flex: 0 0 auto;
}

.smow-sp .image {
  position: relative;
  width: 353px;
  height: 353px;
  aspect-ratio: 1;
  object-fit: cover;
}

.smow-sp .description {
  margin-left: -1.00px;
  position: relative;
  width: fit-content;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 25px;
  text-align: center;
  letter-spacing: 2.50px;
  line-height: 42px;
}

.smow-sp .span {
  letter-spacing: 0.62px;
}

.smow-sp .text-wrapper-8 {
  font-size: 21px;
  letter-spacing: 0.44px;
}

.smow-sp .plan-card-2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 26px;
  position: relative;
  align-self: stretch;
  width: 100%;
  flex: 0 0 auto;
}

.smow-sp .p {
  position: relative;
  width: fit-content;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 25px;
  text-align: center;
  letter-spacing: 2.50px;
  line-height: 42px;
}

.smow-sp .btn-contact-phone-sp-4 {
  margin-left: 23.5px;
  display: flex;
  gap: 9.4px;
  width: 306px;
  height: 59px;
  background-color: var(--coloraccentmain);
}

.smow-sp .element-3 {
  position: absolute;
  top: 140px;
  left: 209px;
  width: 145px;
  height: 1px;
  object-fit: cover;
}

.smow-sp .section-plan-heading {
  position: absolute;
  top: -1px;
  left: -1px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 30px;
  letter-spacing: 0;
  line-height: 262px;
  white-space: nowrap;
}

.smow-sp .section-voice {
  position: absolute;
  top: 14878px;
  left: -9px;
  width: 402px;
  height: 3739px;
}

.smow-sp .section-voice-2 {
  position: absolute;
  top: -1px;
  left: 66px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 30px;
  text-align: center;
  letter-spacing: 3.00px;
  line-height: 46px;
}

.smow-sp .voice-card {
  position: absolute;
  top: 2496px;
  left: 28px;
  width: 374px;
  height: 1243px;
}

.smow-sp .voice-card-image {
  position: absolute;
  top: 211px;
  left: 2px;
  width: 372px;
  height: 250px;
}

.smow-sp .voice-card-text {
  position: absolute;
  top: 0;
  left: 0;
  width: 354px;
  height: 1243px;
}

.smow-sp .voice-card-story {
  position: absolute;
  top: 962px;
  left: 1px;
  width: 352px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 35px;
}

.smow-sp .voice-card-badge {
  position: absolute;
  top: 783px;
  left: 1px;
  width: 177px;
  height: 262px;
}

.smow-sp .badge-7 {
  position: absolute;
  top: 113px;
  left: 0;
  width: 177px;
  height: 35px;
  background-color: var(--colortextbase);
  border-radius: 18px;
}

.smow-sp .story-title {
  position: absolute;
  top: -1px;
  left: 15px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #ffffff;
  font-size: 19px;
  letter-spacing: 0.40px;
  line-height: 262px;
  white-space: nowrap;
}

.smow-sp .voice-card-text-2 {
  position: absolute;
  top: 495px;
  left: 1px;
  width: 352px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 35px;
}

.smow-sp .voice-card-title {
  position: absolute;
  top: 39px;
  left: -1px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 30px;
  letter-spacing: 0;
  line-height: 262px;
  white-space: nowrap;
}

.smow-sp .voice {
  position: absolute;
  top: -1px;
  left: -1px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 19px;
  letter-spacing: 0.40px;
  line-height: 262px;
  white-space: nowrap;
}

.smow-sp .voice-card-2 {
  position: absolute;
  top: 1262px;
  left: 0;
  width: 382px;
  height: 1243px;
}

.smow-sp .voice-card-text-3 {
  position: absolute;
  top: 0;
  left: 28px;
  width: 354px;
  height: 1243px;
}

.smow-sp .voice-card-image-2 {
  position: absolute;
  top: 211px;
  left: 9px;
  width: 373px;
  height: 257px;
}

.smow-sp .voice-card-3 {
  position: absolute;
  top: 63px;
  left: 28px;
  width: 374px;
  height: 1208px;
}

.smow-sp .voice-card-image-3 {
  position: absolute;
  top: 212px;
  left: 1px;
  width: 373px;
  height: 251px;
}

.smow-sp .voice-card-text-4 {
  position: absolute;
  top: 0;
  left: 0;
  width: 360px;
  height: 1208px;
}

.smow-sp .section-faq {
  position: absolute;
  top: 18704px;
  left: -2px;
  width: 395px;
  height: 1558px;
}

.smow-sp .element-4 {
  position: absolute;
  top: 0;
  left: 0;
  width: 395px;
  height: 1567px;
  background-color: #f2f3f4;
}

.smow-sp .text-wrapper-9 {
  position: absolute;
  top: 74px;
  left: 98px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 30px;
  text-align: center;
  letter-spacing: 3.00px;
  line-height: 46px;
  white-space: nowrap;
}

.smow-sp .element-5 {
  position: absolute;
  top: 150px;
  left: 21px;
  width: 354px;
  height: 61px;
  background-color: var(--colortextwhite);
  border-radius: 21px;
}

.smow-sp .element-6 {
  position: absolute;
  top: 229px;
  left: 21px;
  width: 354px;
  height: 61px;
  background-color: var(--colortextwhite);
  border-radius: 21px;
}

.smow-sp .element-7 {
  position: absolute;
  top: 308px;
  left: 21px;
  width: 354px;
  height: 94px;
  background-color: var(--colortextwhite);
  border-radius: 21px;
}

.smow-sp .text-wrapper-10 {
  position: absolute;
  top: 128px;
  left: 32px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0.90px;
  line-height: 100px;
  white-space: nowrap;
}

.smow-sp .text-wrapper-11 {
  position: absolute;
  top: 210px;
  left: 32px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0.90px;
  line-height: 100px;
  white-space: nowrap;
}

.smow-sp .q {
  position: absolute;
  top: 327px;
  left: 32px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0.90px;
  line-height: 25px;
}

.smow-sp .element-8 {
  position: absolute;
  top: 433px;
  left: 22px;
  width: 353px;
  height: 1067px;
  background-color: var(--colortextwhite);
  border-radius: 19px;
  border: 2px solid;
  border-color: #3c7643;
}

.smow-sp .element-9 {
  position: absolute;
  width: 71px;
  height: 71px;
  top: 471px;
  left: 165px;
}

.smow-sp .element-10 {
  position: absolute;
  top: 559px;
  left: 33px;
  width: 329px;
  height: 82px;
}

.smow-sp .q-2 {
  position: absolute;
  top: 578px;
  left: 65px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  color: #ffffff;
  font-size: 18px;
  letter-spacing: 0.54px;
  line-height: 25px;
}

.smow-sp .a {
  position: absolute;
  top: 653px;
  left: 50px;
  width: 311px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 400;
  color: #3c7643;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 35px;
}

.smow-sp .text-wrapper-12 {
  font-weight: 700;
}

.smow-sp .text-wrapper-13 {
  font-weight: 500;
}

.smow-sp .section-footer {
  display: flex;
  flex-direction: column;
  width: 393px;
  align-items: center;
  gap: 46px;
  position: absolute;
  top: 20262px;
  left: 0;
}

.smow-sp .footer-cta-bar {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  position: relative;
  align-self: stretch;
  width: 100%;
  flex: 0 0 auto;
}

.smow-sp .footer-cta-phone {
  position: relative;
  align-self: stretch;
  width: 100%;
  height: 89px;
  background-color: var(--coloraccentmain);
}

.smow-sp .element-11 {
  position: absolute;
  width: 41px;
  height: 41px;
  top: 24px;
  left: 40px;
}

.smow-sp .div-3 {
  position: absolute;
  top: 8px;
  left: 97px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  color: #ffffff;
  font-size: 21px;
  letter-spacing: 6.30px;
  line-height: 77px;
  white-space: nowrap;
}

.smow-sp .text-wrapper-14 {
  letter-spacing: 1.32px;
}

.smow-sp .text-wrapper-15 {
  font-size: 18px;
  letter-spacing: 0.97px;
}

.smow-sp .footer-cta-shop {
  position: relative;
  align-self: stretch;
  width: 100%;
  height: 89px;
  background-color: #616270;
}

.smow-sp .div-4 {
  position: absolute;
  top: 7px;
  left: 149px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  color: #ffffff;
  font-size: 22px;
  letter-spacing: 6.60px;
  line-height: 81px;
  white-space: nowrap;
}

.smow-sp .text-wrapper-16 {
  letter-spacing: 1.45px;
}

.smow-sp .text-wrapper-17 {
  font-size: 17px;
  letter-spacing: 0.87px;
}

.smow-sp .element-12 {
  position: absolute;
  width: 36px;
  height: 54px;
  top: 17px;
  left: 40px;
}

.smow-sp .footer-bottom {
  position: relative;
  width: 243px;
  height: 151px;
}

.smow-sp .text-wrapper-18 {
  position: absolute;
  top: 60px;
  left: -1px;
  
  font-family: "Noto Serif Myanmar", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 14px;
  letter-spacing: 0;
  line-height: 90px;
  white-space: nowrap;
}

.smow-sp .futter-logo {
  position: absolute;
  top: 0;
  left: 26px;
  width: 183px;
  height: 43px;
}

.smow-sp .with-japanese-ston {
  position: absolute;
  top: 32px;
  left: 70px;
  font-family: "Inter", Helvetica;
  font-weight: 400;
  color: #616270;
  font-size: 8px;
  line-height: 9px;
  white-space: nowrap;
}

.smow-sp .text-wrapper-19 {
  letter-spacing: 0.13px;
}

.smow-sp .text-wrapper-20 {
  letter-spacing: 0.11px;
}

.smow-sp .text-wrapper-21 {
  letter-spacing: 0.10px;
}

.smow-sp .text-wrapper-22 {
  letter-spacing: 0.12px;
}

.smow-sp .text-wrapper-23 {
  letter-spacing: 0.14px;
}

.smow-sp .text-wrapper-24 {
  letter-spacing: 0;
}

.smow-sp .text-wrapper-25 {
  position: absolute;
  top: 32px;
  left: 165px;
  font-family: "Inter", Helvetica;
  font-weight: 400;
  color: #616270;
  font-size: 8px;
  letter-spacing: 0;
  line-height: 9px;
  white-space: nowrap;
}

.smow-sp .element-13 {
  position: absolute;
  top: 2px;
  left: 90px;
  width: 25px;
  height: 22px;
}

.smow-sp .element-14 {
  position: absolute;
  width: 183px;
  height: 43px;
  top: 0;
  left: 0;
}
/* =====================================================
   Original style.css content injected below
   ===================================================== */

.smow-sp {
  background-color: var(--colortextwhite);
  overflow: hidden;
  min-width: 393px;
  min-height: 20446px;
  /* position: relative と width: 100% は削除
     → 第1ルールの position: absolute + left: 50% + translateX(-50%) でセンタリング
     → width: 393px (デザイン幅) を維持して scale() で拡縮 */
}

.smow-sp .header {
  position: absolute;
  top: 18px;
  left: 20px;
  width: 353px;
  height: 73px;
  display: flex;
  gap: 24.5px;
  background-color: transparent;
}

.smow-sp .header-text {
  margin-top: 28px;
  width: 214px;
  height: 44px;
  margin-left: -1px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 12px;
  letter-spacing: 4.80px;
  line-height: 22px;
}





























.smow-sp .IL {
  position: relative;
  align-self: stretch;
  margin-top: -2.00px;
  margin-left: -1.00px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 50px;
}











.smow-sp .label {
  margin-top: -33px;
  width: 204px;
  height: 122px;
  color: #ffffff;
  font-size: 17px;
  letter-spacing: 4.80px;
  line-height: 122px;
  
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  white-space: nowrap;
}



































.smow-sp .reason-heading {
  position: relative;
  width: fit-content;
  margin-top: -2.00px;
  margin-left: -1.00px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 19px;
  letter-spacing: 2.00px;
  line-height: 35px;
}



































































.smow-sp .stone-card-2 {
  width: 352px;
  position: absolute;
  top: 62px;
  left: -1px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 35px;
}









.smow-sp .stone-card-name-2 {
  width: calc(100% - 200px);
  left: 131px;
  position: absolute;
  top: -15px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 27px;
  letter-spacing: 5.40px;
  line-height: 99px;
}











.smow-sp .stone-card-name-4 {
  left: 131px;
  white-space: nowrap;
  position: absolute;
  top: -15px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 27px;
  letter-spacing: 5.40px;
  line-height: 99px;
}









.smow-sp .btn-contact-phone-sp-3 {
  position: relative;
  width: 306px;
  height: 59px;
  background-color: var(--coloraccentmain);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9.4px;
  box-sizing: border-box;
  padding: 0 26px;
  text-decoration: none;
  color: inherit;
}



.smow-sp .label-4 {
  position: absolute;
  top: 50%;
  left: 80px;
  transform: translateY(-50%);
  margin: 0;
  color: #ffffff;
  font-size: 17px;
  letter-spacing: 4.80px;
  line-height: 1;
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  white-space: nowrap;
}





.smow-sp .section-consult-note {
  position: absolute;
  top: 516px;
  left: 16px;
  width: 352px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 300;
  color: #646464;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 35px;
}



.smow-sp .section-consult-lead {
  position: absolute;
  top: 393px;
  left: 10px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 700;
  color: #646464;
  font-size: 19px;
  letter-spacing: 0.60px;
  line-height: 40px;
}



























































































.smow-sp .element-8 {
  position: absolute;
  top: 433px;
  left: 22px;
  width: 353px;
  height: 1067px;
  background-color: var(--colortextwhite);
  border-radius: 20px;
  border: 2px solid;
  border-color: #3c7643;
}





.smow-sp .q-2 {
  position: absolute;
  top: 578px;
  left: 65px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  color: #ffffff;
  font-size: 19px;
  letter-spacing: 0.54px;
  line-height: 25px;
}

.smow-sp .a {
  position: absolute;
  top: 653px;
  left: 50px;
  width: 311px;
  
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 400;
  color: #3c7643;
  font-size: 19px;
  letter-spacing: 0;
  line-height: 35px;
}





.smow-sp .section-footer {
  display: flex;
  flex-direction: column;
  width: 393px;
  align-items: center;
  gap: 46px;
  position: absolute;
  top: 20000px;
  left: 0;
}











.smow-sp .text-wrapper-15 {
  font-size: 19px;
  letter-spacing: 0.97px;
}





































/* =========================================
   FAQ ACCORDION
   ========================================= */
.smow-sp .section-faq.faq-accordion {
  position: absolute;
  top: 18704px;
  left: 0;
  width: 393px;
  min-height: 1380px;
  height: auto;
  padding: 74px 20px 58px;
  box-sizing: border-box;
  z-index: 1;
}

.smow-sp .faq-accordion__bg {
  position: absolute;
  inset: 0;
  background-color: #f2f3f4;
  z-index: 0;
}

.smow-sp .faq-accordion__title,
.smow-sp .faq-accordion__list,
.smow-sp .faq-accordion__contact-card {
  position: relative;
  z-index: 1;
}

.smow-sp .faq-accordion__title {
  margin: 0;
  text-align: center;
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #646464;
  font-size: 30px;
  letter-spacing: 3px;
  line-height: 46px;
}

.smow-sp .faq-accordion__list {
  margin-top: 58px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.smow-sp .faq-accordion__item {
  border-radius: 20px;
  overflow: hidden;
  background-color: #ffffff;
}

.smow-sp .faq-accordion__question {
  width: 100%;
  min-height: 61px;
  padding: 18px 48px 18px 18px;
  border: 0;
  background: #ffffff;
  color: #646464;
  text-align: left;
  cursor: pointer;
  position: relative;
  box-sizing: border-box;
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.9px;
  line-height: 1.6;
}

.smow-sp .faq-accordion__question-text {
  display: block;
}

.smow-sp .faq-accordion__icon {
  position: absolute;
  top: 50%;
  right: 18px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
}

.smow-sp .faq-accordion__icon::before,
.smow-sp .faq-accordion__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background-color: #646464;
  transform: translate(-50%, -50%);
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.smow-sp .faq-accordion__icon::before {
  width: 14px;
  height: 2px;
}

.smow-sp .faq-accordion__icon::after {
  width: 2px;
  height: 14px;
}

.smow-sp .faq-accordion__question[aria-expanded="true"] .faq-accordion__icon::after {
  opacity: 0;
  transform: translate(-50%, -50%) scaleY(0);
}

.smow-sp .faq-accordion__answer {
  padding: 0 18px;
  max-height: 0;
  overflow: hidden;
  background: #ffffff;
  box-sizing: border-box;
  transition: max-height 0.35s ease, padding-top 0.35s ease, padding-bottom 0.35s ease;
}


.smow-sp .faq-accordion__answer[hidden] {
  display: block;
}

.smow-sp .faq-accordion__answer.is-open {
  padding-top: 14px;
  padding-bottom: 18px;
}

.smow-sp .faq-accordion__answer-text {
  margin: 0;
  display: block;
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 400;
  color: #646464;
  font-size: 17px;
  letter-spacing: 0;
  line-height: 32px;
  word-break: break-word;
}

.smow-sp .faq-accordion__answer-text strong {
  font-weight: 700;
}

.smow-sp .faq-accordion__contact-card {
  margin-top: 28px;
  border: 2px solid #3c7643;
  border-radius: 20px;
  background: #ffffff;
  overflow: hidden;
}

.smow-sp .faq-accordion__contact-head {
  background-color: #3c7643;
  padding: 20px 18px;
}

.smow-sp .faq-accordion__contact-question {
  margin: 0;
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  color: #ffffff;
  font-size: 18px;
  letter-spacing: 0.54px;
  line-height: 25px;
}

.smow-sp .faq-accordion__contact-body {
  padding: 18px 18px 22px;
  background: #ffffff;
}

.smow-sp .faq-accordion__contact-answer {
  margin: 0;
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 400;
  color: #3c7643;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 35px;
}

.smow-sp .faq-accordion__contact-answer strong {
  font-weight: 700;
}

/* FAQ高さ変更に伴うフッター位置調整 */
.smow-sp .section-footer {
  top: 20080px;
}

@media screen and (max-width: 393px) {
  .smow-sp .section-faq.faq-accordion {
    width: 100%;
    left: 0;
  }
}
/* =========================================
   SCROLL ANIMATION
   ========================================= */

/* 初期状態 */
.smow-sp .js-float-up,
.smow-sp .js-float-title,
.smow-sp .js-float-card,
.smow-sp .js-float-cta,
.smow-sp .js-float-line {
  opacity: 0;
  transform: translateY(28px);
  will-change: opacity, transform;
}

/* 通常要素 */
.smow-sp .js-float-up.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 0.9s ease,
    transform 0.9s ease;
}

/* 大きなタイトル */
.smow-sp .js-float-title {
  transform: translateY(38px);
}

.smow-sp .js-float-title.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 1.3s ease,
    transform 1.3s ease;
}

/* カード系 */
.smow-sp .js-float-card {
  transform: translateY(34px);
}

.smow-sp .js-float-card.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 1.0s ease,
    transform 1.0s ease;
}

/* CTAは少し強め */
.smow-sp .js-float-cta {
  transform: translateY(24px) scale(0.96);
}

.smow-sp .js-float-cta.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition:
    opacity 0.9s ease,
    transform 0.9s cubic-bezier(.22,1,.36,1);
  animation: cta-soft-pulse 2.4s ease-in-out 1.1s infinite;
}

@keyframes cta-soft-pulse {
  0%,
  100% {
    transform: translateY(0) scale(1);
    box-shadow: 0 0 0 rgba(60, 118, 67, 0);
  }
  50% {
    transform: translateY(-2px) scale(1.025);
    box-shadow: 0 10px 24px rgba(60, 118, 67, 0.22);
  }
}

/* intro見出し1行ずつ */
.smow-sp .section-intro-2 .js-float-line {
  display: block;
  opacity: 0;
  transform: translateY(32px);
}

.smow-sp .section-intro-2.is-visible .js-float-line {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 1.2s ease,
    transform 1.2s ease;
}

.smow-sp .section-intro-2.is-visible .js-float-line:nth-child(1) {
  transition-delay: 0.05s;
}

.smow-sp .section-intro-2.is-visible .js-float-line:nth-child(2) {
  transition-delay: 0.35s;
}

/* 連番ディレイ */
.smow-sp .js-delay-1.is-visible { transition-delay: 0.08s; }

/* CTAの見た目を少し安定 */
.smow-sp .btn-contact-phone-sp,
.smow-sp .btn-contact-phone-sp-2,
.smow-sp .btn-contact-phone-sp-4,
.smow-sp .footer-cta-phone,
.smow-sp .footer-cta-shop {
  transform-origin: center;
  will-change: opacity, transform;
}

/* 動きが苦手な環境向け */
@media (prefers-reduced-motion: reduce) {
  .smow-sp .js-float-up,
  .smow-sp .js-float-title,
  .smow-sp .js-float-card,
  .smow-sp .js-float-cta,
  .smow-sp .js-float-line {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* =========================================
   FLOAT / BLUR ANIMATION UPGRADE
   ========================================= */

.smow-sp .js-reveal-up.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* FVやイントロ本文の「滲んで浮かび上がる」 */
.smow-sp .js-reveal-blur {
  opacity: 0;
  filter: blur(14px);
  transform: translate3d(0, 30px, 0) scale(1.01);
  transition:
    opacity 1.5s ease,
    filter 1.5s ease,
    transform 1.5s cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform, filter;
}

.smow-sp .js-reveal-blur.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0) scale(1);
}

/* intro見出し 1行ずつ */
.smow-sp .section-intro-2 .js-intro-line {
  display: block;
  opacity: 0;
  filter: blur(10px);
  transform: translate3d(0, 30px, 0);
}

.smow-sp .section-intro-2.is-visible .js-intro-line {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
  transition:
    opacity 1.25s ease,
    filter 1.25s ease,
    transform 1.25s cubic-bezier(.22,1,.36,1);
}

.smow-sp .section-intro-2.is-visible .js-intro-line:nth-child(1) {
  transition-delay: 0.05s;
}

.smow-sp .section-intro-2.is-visible .js-intro-line:nth-child(2) {
  transition-delay: 0.32s;
}

/* イントロ本文 */
.smow-sp .section-intro-text .IL.js-reveal-blur {
  transition-duration: 1.7s;
}

/* カードや繰り返し要素のディレイ */






/* CTAは目立たせる */
.smow-sp .js-reveal-cta {
  opacity: 0;
  transform: translate3d(0, 28px, 0) scale(0.96);
  transition:
    opacity 0.95s ease,
    transform 0.95s cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform;
}

.smow-sp .js-reveal-cta.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  animation: smowCtaPulse 2.4s ease-in-out 1.1s infinite;
}

/* 動きが苦手な環境 */
@media (prefers-reduced-motion: reduce) {
  .smow-sp .js-reveal-up,
  .smow-sp .js-reveal-title,
  .smow-sp .js-reveal-blur,
  .smow-sp .js-reveal-cta,
  .smow-sp .fv-text > div,
  .smow-sp .section-intro-2 .js-intro-line {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* =========================================
   SLOW BLUR FLOAT UPGRADE
   ========================================= */

/* 全体の基本：下からふわっと */
.smow-sp .js-reveal-up {
  opacity: 0;
  transform: translate3d(0, 42px, 0);
  transition:
    opacity 1.05s ease,
    transform 1.05s cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform;
}



/* 大きめタイトル */
.smow-sp .js-reveal-title {
  opacity: 0;
  transform: translate3d(0, 52px, 0);
  filter: blur(6px);
  transition:
    opacity 1.45s ease,
    transform 1.45s cubic-bezier(.22,1,.36,1),
    filter 1.45s ease;
  will-change: opacity, transform, filter;
}

.smow-sp .js-reveal-title.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
}

/* かなりゆっくり滲んで出る用 */
.smow-sp .js-reveal-blur-slow {
  opacity: 0;
  filter: blur(16px);
  transform: translate3d(0, 34px, 0) scale(1.015);
  transition:
    opacity 1.9s ease,
    filter 1.9s ease,
    transform 1.9s cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform, filter;
}

.smow-sp .js-reveal-blur-slow.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0) scale(1);
}

/* headerを順番に */
.smow-sp .header .header-text,
.smow-sp .header .header-logo {
  opacity: 0;
  filter: blur(14px);
  transform: translate3d(0, 24px, 0);
}

.smow-sp .header.is-visible .header-text,
.smow-sp .header.is-visible .header-logo {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
  transition:
    opacity 1.6s ease,
    filter 1.6s ease,
    transform 1.6s cubic-bezier(.22,1,.36,1);
}

.smow-sp .header.is-visible .header-text {
  transition-delay: 0.05s;
}

.smow-sp .header.is-visible .header-logo {
  transition-delay: 0.42s;
}

/* FVテキストをもっとゆっくり順番に */
.smow-sp .fv-text > div {
  opacity: 0;
  filter: blur(18px);
  transform: translate3d(0, 34px, 0) scale(1.02);
  will-change: opacity, transform, filter;
}

.smow-sp .fv-text.is-visible > div {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0) scale(1);
  transition:
    opacity 1.8s ease,
    filter 1.8s ease,
    transform 1.8s cubic-bezier(.22,1,.36,1);
}


/* メッセージコピーを3行分として扱う */
.smow-sp .section-message-copy .js-message-line {
  display: block;
  opacity: 0;
  filter: blur(16px);
  transform: translate3d(0, 34px, 0);
}

.smow-sp .section-message-copy.is-visible .js-message-line {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
  transition:
    opacity 1.9s ease,
    filter 1.9s ease,
    transform 1.9s cubic-bezier(.22,1,.36,1);
}

.smow-sp .section-message-copy.is-visible .js-message-line:nth-child(1) {
  transition-delay: 0.05s;
}
.smow-sp .section-message-copy.is-visible .js-message-line:nth-child(2) {
  transition-delay: 0.40s;
}
.smow-sp .section-message-copy.is-visible .js-message-line:nth-child(3) {
  transition-delay: 0.75s;
}

/* VOICEの購入ストーリー本文 */
.smow-sp .voice-card-story {
  opacity: 0;
  filter: blur(14px);
  transform: translate3d(0, 28px, 0);
  will-change: opacity, transform, filter;
}

.smow-sp .voice-card-story.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
  transition:
    opacity 1.75s ease,
    filter 1.75s ease,
    transform 1.75s cubic-bezier(.22,1,.36,1);
}

/* CTA */




@keyframes smowCtaPulse {
  0%, 100% {
    transform: translate3d(0, 0, 0) scale(1);
    box-shadow: 0 0 0 rgba(60, 118, 67, 0);
  }
  50% {
    transform: translate3d(0, -2px, 0) scale(1.025);
    box-shadow: 0 10px 24px rgba(60, 118, 67, 0.22);
  }
}

/* 連番ディレイ */

.smow-sp .js-delay-2.is-visible { transition-delay: 0.20s; }
.smow-sp .js-delay-3.is-visible { transition-delay: 0.32s; }
.smow-sp .js-delay-4.is-visible { transition-delay: 0.44s; }
.smow-sp .js-delay-5.is-visible { transition-delay: 0.56s; }

@media (prefers-reduced-motion: reduce) {
  .smow-sp .js-reveal-up,
  .smow-sp .js-reveal-title,
  .smow-sp .js-reveal-blur-slow,
  .smow-sp .js-reveal-cta,
  .smow-sp .header .header-text,
  .smow-sp .header .header-logo,
  .smow-sp .fv-text > div,
  .smow-sp .section-message-copy .js-message-line,
  .smow-sp .voice-card-story {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}
/* =========================================
   timing adjust
   ========================================= */

/* headerはすぐ */


.smow-sp .header.is-visible .header-logo {
  transition-delay: 0.38s;
}

/* FVテキストはheaderの後に開始 */
.smow-sp .fv-text.is-visible > div:nth-child(1) { transition-delay: 1.05s; }
.smow-sp .fv-text.is-visible > div:nth-child(2) { transition-delay: 1.33s; }
.smow-sp .fv-text.is-visible > div:nth-child(3) { transition-delay: 1.61s; }
.smow-sp .fv-text.is-visible > div:nth-child(4) { transition-delay: 2.05s; }
.smow-sp .fv-text.is-visible > div:nth-child(5) { transition-delay: 2.38s; }

/* =========================================
   message copy fix
   ========================================= */
.smow-sp .section-message {
  position: absolute;
}

.smow-sp .section-message-copy .js-message-line {
  display: block;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}
/* =========================================
   MESSAGE TYPE ANIMATION
   ========================================= */

.smow-sp .section-message-copy .msg-line {
  display: block;
  white-space: nowrap;
}

.smow-sp .section-message-copy .msg-char {
  display: inline-block;
  opacity: 0;
  filter: blur(8px);
  transform: translateY(10px);
  transition:
    opacity 0.45s ease,
    filter 0.45s ease,
    transform 0.45s ease;
}

.smow-sp .section-message-copy.is-visible .msg-char.is-on {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .smow-sp .section-message-copy .msg-char {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
  }
}
.smow-sp .btn-contact-phone-sp,
.smow-sp .btn-contact-phone-sp-2,
.smow-sp .btn-contact-phone-sp-3,
.smow-sp .btn-contact-phone-sp-4 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9.4px;
  box-sizing: border-box;
  padding: 0 26px;
  text-decoration: none;
  color: inherit;
}

.smow-sp .btn-contact-phone-sp .call-icon,
.smow-sp .btn-contact-phone-sp-2 .call-icon,
.smow-sp .btn-contact-phone-sp-4 .call-icon {
  margin-left: 0;
  margin-top: 0;
  flex: 0 0 auto;
}

.smow-sp .btn-contact-phone-sp-3 .call-icon {
  position: absolute;
  top: 50%;
  left: 50px;
  transform: translate(-50%, -50%);
  width: 34.63px;
  height: 33px;
  margin: 0;
}

.smow-sp .btn-contact-phone-sp .label,
.smow-sp .btn-contact-phone-sp-2 .label,
.smow-sp .btn-contact-phone-sp-4 .label,
.smow-sp .btn-contact-phone-sp-3 .label-4 {
  width: auto;
  height: auto;
  margin-top: 0;
  line-height: 1;
  white-space: nowrap;
}

.phone-modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}

.phone-modal.is-open {
  display: block;
}

.phone-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}

.phone-modal__content {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(90vw, 420px);
  padding: 32px 24px 24px;
  background: #ffffff;
  border-radius: 16px;
  transform: translate(-50%, -50%);
  box-sizing: border-box;
  text-align: center;
}

.phone-modal__close {
  position: absolute;
  top: 12px;
  right: 12px;
  border: none;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.phone-modal__lead {
  margin: 0 0 16px;
  color: #646464;
  font-family: "Noto Sans JP", Helvetica;
  font-size: 18px;
  font-weight: 500;
}

.phone-modal__number {
  margin: 0 0 24px;
  color: #646464;
  font-family: "Noto Sans JP", Helvetica;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.6;
}

.phone-modal__actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.phone-modal__call,
.phone-modal__cancel {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  border-radius: 999px;
  text-decoration: none;
  font-family: "Noto Sans JP", Helvetica;
  font-size: 16px;
  font-weight: 500;
  box-sizing: border-box;
}

.phone-modal__call {
  background: #8f7a56;
  color: #ffffff;
}

.phone-modal__cancel {
  border: 1px solid #cccccc;
  background: #ffffff;
  color: #646464;
  cursor: pointer;
}