/* 393pxアートボードを画面幅に合わせてスケール表示する枠 */
.smow-sp-viewport {
  --sp-base-width: 393;
  --sp-base-height: 20992;
  --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: 20992px;
  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: #5c5550;
  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: 1433px;
  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: #5c5550;
  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: #5c5550;
  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: 2700px;
  left: 0;
  width: 393px;
  height: 1299px;
  display: flex;
  flex-direction: column;
  gap: 64px;
  background-color: #f1ebe2;
}

.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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: 3999px;
  left: 0;
  width: 393px;
  height: 853px;
  display: flex;
  background-image: url(./img/section-message-bg.webp);
  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: #5c5550;
  font-size: 27px;
  letter-spacing: 2.7px;
  line-height: 65px;
  white-space: normal;
}

.smow-sp .section-reason {
  position: absolute;
  top: 4913px;
  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: #5c5550;
  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: #5c5550;
  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: 6164px;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: 8479px;
  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: #5c5550;
  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: 9500px;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  font-size: 27px;
  letter-spacing: 5.40px;
  line-height: 99px;
}

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

.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: 12780px;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  font-size: 86px;
  letter-spacing: 2.58px;
  line-height: normal;
  white-space: nowrap;
}

.smow-sp .section-plan {
  position: absolute;
  top: 13435px;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  font-size: 30px;
  letter-spacing: 0;
  line-height: 262px;
  white-space: nowrap;
}

.smow-sp .section-voice {
  position: absolute;
  top: 15413px;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: 19239px;
  left: -2px;
  width: 395px;
  height: 1558px;
}

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

.smow-sp .text-wrapper-9 {
  position: absolute;
  top: 74px;
  left: 98px;
  
  font-family: "Noto Serif JP", Helvetica;
  font-weight: 500;
  color: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #c19a4b;
}

.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: #2a868d;
  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: 20615px;
  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: #6b6259;
}

.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: #5c5550;
  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: #6b6259;
  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: #6b6259;
  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: 20992px;
  /* 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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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: #c19a4b;
}





.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: #2a868d;
  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: 19239px;
  left: 0;
  width: 393px;
  min-height: 1376px;
  height: auto;
  padding: 74px 20px 58px;
  box-sizing: border-box;
  z-index: 1;
}

.smow-sp .faq-accordion__bg {
  position: absolute;
  inset: 0;
  background-color: #f1ebe2;
  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: #5c5550;
  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: #5c5550;
  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: #5c5550;
  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 #c19a4b;
  border-radius: 20px;
  background: #ffffff;
  overflow: hidden;
}

.smow-sp .faq-accordion__contact-head {
  background-color: #c19a4b;
  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: #2a868d;
  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: 20615px;
}

@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: #5c5550;
  font-family: "Noto Sans JP", Helvetica;
  font-size: 18px;
  font-weight: 500;
}

.phone-modal__number {
  margin: 0 0 24px;
  color: #5c5550;
  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: #c19a4b;
  color: #ffffff;
}

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

/* =========================================================
   新ファーストビュー（PC / SP 共通）
   fv-hero.webp（941×1600）の上に、空きエリア（38.2%〜70.2%）へ
   SMOWロゴ・キャッチコピー・区切り飾りを HTML で重ねる。
   座標は SP 393px 幅を基準にした比率（--fv-u）で定義しているので、
   --fv-w を変えるだけで PC 側にも同じ比率で追従する。
   フェードインは JS 非依存の CSS アニメーション。
   ========================================================= */

.smow-sp .section-fv,
.smow-pc .section-fv {
  --fv-u: calc(var(--fv-w) / 393);
  height: auto;
}

.smow-sp .section-fv {
  --fv-w: 393px;
  top: 97px;
  left: 0;
  width: 393px;
}

.smow-pc .section-fv {
  --fv-w: 1920px;
  top: 0;
  left: 0;
  width: 1920px;
}

/* ヘッダー：キャッチコピー（左）＋ ILロゴ（右上）
   従来は .header-text の幅 214px に対し本文が約218px あり
   「あなたのとなりが心地い【い。】」が欠けていたので、
   ロゴを少し小さくして本文側に幅を回している */
.smow-sp .header-text {
  width: 222px;
}

/* .header は display:flex。既定の align-items:stretch だとロゴが
   ヘッダー高（73px）まで縦に引き伸ばされる（本来は 106×59px）。
   align-self で伸長を止め、比率どおりに表示する */
.smow-sp .header-logo,
.smow-pc .header-logo {
  align-self: flex-start;
  object-fit: contain;
}

.smow-sp .header-logo {
  width: 106px;
  height: auto;
}

.fv-stage {
  position: relative;
  width: var(--fv-w);
  margin: 0 auto;
}

.smow-pc .fv-stage {
  margin-top: 300px;
}

.fv-main {
  display: block;
  width: 100%;
  height: auto;
}

/* ---- 画像中央の空きエリアに重ねるブロック ----
   画像の 38.2%〜70.2% が空きエリア。その中で上下中央に置く */
.fv-overlay {
  position: absolute;
  left: 0;
  right: 0;
  top: 45.5%;
  height: 21%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* ---- メインキャッチコピー ---- */
.fv-copy {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  color: #12354b;
}

.fv-line {
  display: block;
  font-size: calc(24 * var(--fv-u));
  line-height: calc(36 * var(--fv-u));
  letter-spacing: 0.04em;
  white-space: nowrap;
}

/* 「てのひら」「てのなか」だけ大きく・アクセント色に。
   行の高さは line-height を px で固定しているので行間は崩れない */
.fv-em {
  font-style: normal;
  font-size: 1.18em;
  color: #2a868d;
}

/* PCはFVを列いっぱい（--fv-w:1920px）にしている分だけ倍率が大きくなるので、
   キャッチだけ一段小さくする。SP側の見え方は変えない */
.smow-pc .fv-line {
  font-size: calc(18.5 * var(--fv-u));
  line-height: calc(34 * var(--fv-u));
}

/* 1文字ずつ滲み出す。--i は HTML 側に書いた表示順の連番。
   文字spanを静的に持たせているので JS には依存しない */
.fv-c {
  display: inline-block;
  animation: fvCharReveal 1s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: calc(0.5s + var(--i) * 0.06s);
}

.fv-space {
  width: 0.38em;
}

@keyframes fvCharReveal {
  0% {
    opacity: 0;
    filter: blur(12px);
    transform: translate3d(0, calc(6 * var(--fv-u)), 0);
  }
  55% {
    opacity: 0.5;
    filter: blur(4px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
  }
}

/* ---- 金の区切り飾り ---- */
.fv-divider {
  position: relative;
  display: block;
  width: calc(150 * var(--fv-u));
  height: 1px;
  margin-top: calc(12 * var(--fv-u));
}

.fv-divider::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background-color: #c0a86e;
}

/* ---- FV最下部のCTA ---- */
.fv-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  position: relative;
  background-color: var(--coloraccentmain);
  color: #ffffff;
  font-family: "Noto Sans JP", Helvetica;
  font-weight: 500;
  text-decoration: none;
}

.smow-sp .fv-cta {
  width: 353px;
  height: 60px;
  margin: 26px auto 0;
  font-size: 17px;
  letter-spacing: 4.8px;
  text-indent: 4.8px;
}

.smow-pc .fv-cta {
  width: 720px;
  height: 108px;
  margin: 44px auto 0;
  font-size: 32px;
  letter-spacing: 9.9px;
  text-indent: 9.9px;
}

.fv-cta-arrow {
  position: absolute;
  right: calc(24 * var(--fv-u));
  display: block;
  border-style: solid;
  border-color: #ffffff;
  border-width: calc(1.5 * var(--fv-u)) calc(1.5 * var(--fv-u)) 0 0;
  width: calc(8 * var(--fv-u));
  height: calc(8 * var(--fv-u));
  transform: rotate(45deg);
}

/* ---- フェードイン（滲み出す） ---- */
@keyframes fvReveal {
  0% {
    opacity: 0;
    filter: blur(28px);
    transform: translate3d(0, calc(8 * var(--fv-u)), 0) scale(1.02);
  }
  30% {
    opacity: 0.22;
    filter: blur(19px);
  }
  60% {
    opacity: 0.62;
    filter: blur(8px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0) scale(1);
  }
}

.fv-divider,
.fv-cta {
  animation: fvReveal 1.4s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.fv-divider { animation-delay: 2.4s; }
.fv-cta     { animation-delay: 2.8s; }

@media (prefers-reduced-motion: reduce) {
  .fv-c,
  .fv-divider,
  .fv-cta {
    animation: none;
    opacity: 1;
    filter: none;
    transform: none;
  }
}

/* =========================================================
   特長セクション（FVのCTAボタンの下）
   ========================================================= */

.smow-sp .section-features,
.smow-pc .section-features {
  --fv-u: calc(var(--fv-w) / 393);
  position: absolute;
  box-sizing: border-box;
}

.smow-sp .section-features {
  --fv-w: 393px;
  top: 925px;
  left: 0;
  width: 393px;
  padding: 0 14px;
}

.smow-pc .section-features {
  --fv-w: 1600px;
  top: 3817px;
  left: 0;
  width: 1920px;
  padding: 0;
}

/* ---- 見出し「てのひらぼせき IL（イル）の3つの特長」 ---- */
.features-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(12 * var(--fv-u));
  margin: 0 0 calc(20 * var(--fv-u));
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: calc(13 * var(--fv-u));
  line-height: 1.4;
  letter-spacing: 0.04em;
  color: #5c5550;
  text-align: center;
}

.features-heading::before,
.features-heading::after {
  content: "";
  flex: 0 0 auto;
  width: calc(22 * var(--fv-u));
  height: 1px;
  background-color: #c0a86e;
  /* 見出し内の「3」が大きく行ボックスを上へ広げるため、align-items:center だと
     罫線が本文の光学中心より上にずれる。フォントサイズ基準で下へ寄せて揃える */
  position: relative;
  top: 0.25em;
}

.features-heading-inner {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* SPは他セクションの見出しに合わせる（Noto Serif JP / 30px / lh46px / 字間3px / #5C5550）。
   金の罫線は他セクションに無いのでSPでは外す */
.smow-sp .features-heading {
  display: block;
  font-size: 26px;
  font-weight: 500;
  line-height: 40px;
  letter-spacing: 2px;
  margin-bottom: 24px;
}

.smow-sp .features-heading-inner {
  white-space: nowrap;
}

.smow-sp .features-heading::before,
.smow-sp .features-heading::after {
  display: none;
}

.features-heading-num {
  font-style: normal;
  font-size: 1.55em;
  color: #2a868d;
  padding: 0 0.08em;
}

.features-list {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  width: var(--fv-w);
  max-width: 100%;   /* SPは section 側の padding 分だけ内側に収める */
}

.feature {
  flex: 1 1 0;
  min-width: 0;
  padding: 0 calc(5 * var(--fv-u));
  text-align: center;
}

/* PCは3カラム（縦罫線）、SPは1カラムに積む（横罫線） */
.smow-pc .feature + .feature {
  border-left: 1px solid #dfd3bd;
}

.smow-sp .features-list {
  flex-direction: column;
}

/* SPは1カラム。横幅を活かすためアイコンを左、テキストを右に置く。
   グリッドなので HTML を変えずに組める */
.smow-sp .feature {
  display: grid;
  grid-template-columns: calc(58 * var(--fv-u)) 1fr;
  column-gap: calc(16 * var(--fv-u));
  align-items: start;
  width: 100%;
  padding: 0;
  text-align: left;
}

.smow-sp .feature-icon {
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 100%;
  height: calc(54 * var(--fv-u));
  margin: calc(2 * var(--fv-u)) 0 0;
}

.smow-sp .feature-title {
  grid-column: 2;
  font-size: calc(18 * var(--fv-u));
  line-height: 1.5;
}

.smow-sp .feature-text {
  grid-column: 2;
  margin-top: calc(6 * var(--fv-u));
  font-size: calc(16 * var(--fv-u));
  line-height: 1.85;
}

/* 実寸表記。本文とは別行に置いて仕様として読ませる */
.feature-spec {
  display: block;
  margin-top: calc(4 * var(--fv-u));
  letter-spacing: 0.06em;
  color: #8a6944;
}

/* 3カラム用に入れている改行はSPでは不要（横幅いっぱいに流す） */
.smow-sp .feature-text br {
  display: none;
}

.smow-sp .feature + .feature {
  margin-top: calc(22 * var(--fv-u));
  padding-top: calc(22 * var(--fv-u));
  border-top: 1px solid #dfd3bd;
}

.feature-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(38 * var(--fv-u));
  height: calc(38 * var(--fv-u));
  margin: 0 auto calc(9 * var(--fv-u));
  color: #b99a5e;
}

.feature-icon svg {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}

.feature-title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: calc(9.5 * var(--fv-u));
  line-height: 1.45;
  letter-spacing: 0;
  color: #8a6944;
}

/* PCは3カラム。見出しの行数（1行/2行）が揃わないと本文の開始位置が
   ずれるので、2行分の高さを確保して頭を揃える */
.smow-pc .feature-title {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  min-height: 1.45em;
}

/* 見出しは明朝、説明文だけゴシックにして読みやすさを優先 */
.feature-text {
  margin: calc(7 * var(--fv-u)) 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: calc(10 * var(--fv-u));
  line-height: 1.65;
  letter-spacing: 0.01em;
  color: #76777a;
}

/* =========================================================
   FVとの一体感：ページ全体の地色をFV画像の地色に合わせる
   FV画像（fv-hero.webp）の背景は #F8F6F3〜#F9F7F4 の暖色アイボリー。
   従来ページは純白 #FFFFFF だったため、画像の上下に継ぎ目が出ていた。
   カード類（.circle / .badge / .faq-item など）は
   var(--colortextwhite) = #FFFFFF のままにして、地色との差で見せる。
   ========================================================= */
body,
.smow-pc,
.smow-sp {
  background-color: #f7f2ee;
}

/* =========================================================
   PC：本文の列を1100px幅に絞り、左右の余白に影を落とす
   （--pc-scale で 1920px のアートボード全体を縮めているので、
     セクションごとの比率やレイアウトは元のまま）
   ========================================================= */
body {
  background-color: #ebe3da;
}

.smow-pc,
.smow-sp {
  background-color: #f7f2ee;
}

.smow-pc {
  box-shadow: 0 0 90px rgba(90, 72, 52, 0.28);
}


/* =========================================================
   「暮らしにそっと寄り添うお墓」の見出し色
   ベースは本文と同じグレー、「暮らし」「お墓」だけ金茶で強調
   ========================================================= */
.smow-sp .section-intro-2,
.smow-pc .text-wrapper-5 {
  color: #5c5550;
}

.intro-accent {
  color: #2a868d;
}
