@charset "UTF-8";
/*
A modern CSS reset 2023 / 9 / 18
https://github.com/Andy-set-studio/modern-css-reset
*/
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

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

ul[role=list], ol[role=list] {
  list-style: none;
}

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

h1, h2, h3, h4, button, input, label {
  line-height: 1.1;
}

h1, h2, h3, h4 {
  text-wrap: balance;
}

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

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

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

textarea:not([rows]) {
  min-height: 10em;
}

:target {
  scroll-margin-block: 5ex;
}

/**  base  **/
@keyframes fadeIn {
  100% {
    opacity: 1;
  }
}
@keyframes fadeOut {
  100% {
    opacity: 0;
  }
}
@keyframes clipPath {
  100% {
    clip-path: inset(0);
  }
}
@keyframes clipPathCircle {
  100% {
    clip-path: circle(100% at 50% 50%);
  }
}
p,
ul,
ol,
h1,
h2,
h3,
figure,
dl,
dd,
button {
  margin: 0;
  padding: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
}

ul,
ol {
  list-style: none;
}

img,
video {
  max-width: 100%;
  vertical-align: bottom;
  line-height: 1;
}

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  appearance: none;
}

a {
  color: currentColor;
  text-decoration: none;
}
@media (hover: hover) {
  a:hover {
    opacity: 0.5;
  }
}

[x-cloak],
[v-cloak] {
  display: none !important;
}

*:focus {
  outline: none;
}

@media (min-width: 600px) {
  .device-sp {
    display: none;
  }
}

.device-pc {
  display: none;
}
@media (min-width: 600px) {
  .device-pc {
    display: block;
  }
}

html {
  scroll-behavior: smooth;
}

body.scroll_rock {
  overflow: hidden;
}

:root {
  --font-color: #222222;
  --font-title-color: #090058;
  --color-white: #ffffff;
  --color-black: #000000;
  --color-yellow: #F3FFA7;
  --color-towel-black: #4F4F4F;
  --color-body-bg: #F1F8F8;
  --color-footer-bg: #96898A;
}

html {
  font-size: 100%;
}

body {
  color: var(--font-color);
  font-family: "Yu Gothic Pr6N D";
  font-size: 16px;
  font-size: 1rem;
  background-color: var(--color-body-bg);
}

.sr-only:not(:focus):not(:active) {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Yu Gothic Pr6N B";
  color: var(--font-title-color);
}

main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
main img {
  width: 100%;
  height: auto;
}

header {
  position: relative;
}
header .hobonichi {
  --hobo-x: 2.1333333333vw;
  --hobo-y: 2.1333333333vw;
  --hobo-fs: 0.478125rem;
  --hobo-ls: 1.071px;
  position: absolute;
  top: var(--hobo-y);
  right: var(--hobo-x);
  color: var(--font-title-color);
  font-family: "Koburina Gothic W6 JIS2004";
  font-size: var(--hobo-fs);
  letter-spacing: var(--hobo-ls);
}
@media (min-width: 768px) {
  header .hobonichi {
    --hobo-x: 1.25vw;
    --hobo-y: 1.5972222222vw;
    --hobo-fs: 0.9375rem;
    --hobo-ls: 2.1px;
  }
}
header .strapline {
  position: absolute;
  --s-01-x: 15.2vw;
  --s-01-y: 71.2vw;
  --s-01-w: 69.3333333333vw;
  --s-01-h: 6.7733333333vw;
  --s-02-x: 5.8666666667vw;
  --s-02-y: 81.0666666667vw;
  --s-02-w: 88.2666666667vw;
  --s-02-h: 15.8133333333vw;
  --s-03-x: 30.6666666667vw;
  --s-03-y: 102.1333333333vw;
  --s-03-w: 36.5333333333vw;
  --s-03-h: 4.2133333333vw;
  --s-marker-x: 21.6106666667vw;
  --s-marker-y: 71.4666666667vw;
  --s-marker-w: 57.3333333333vw;
  --s-marker-h: 5.0666666667vw;
}
header .strapline-01 {
  left: var(--s-01-x);
  top: var(--s-01-y);
  width: var(--s-01-w);
  height: var(--s-01-h);
}
header .strapline-02 {
  left: var(--s-02-x);
  top: var(--s-02-y);
  width: var(--s-02-w);
  height: var(--s-02-h);
}
header .strapline-03 {
  left: var(--s-03-x);
  top: var(--s-03-y);
  width: var(--s-03-w);
  height: var(--s-03-h);
}
header .strapline-marker {
  left: var(--s-marker-x);
  top: var(--s-marker-y);
  width: var(--s-marker-w);
  height: var(--s-marker-h);
}
header .strapline-marker {
  background-color: var(--color-yellow);
}
@media (min-width: 768px) {
  header .strapline {
    --s-01-x: 34.7916666667%;
    --s-01-y: 36.3333333333%;
    --s-01-w: 30.8333333333%;
    --s-01-h: 4.8111111111%;
    --s-02-x: 30.0694444444%;
    --s-02-y: 44.2222222222%;
    --s-02-w: 40.4166666667%;
    --s-02-h: 11.5555555556%;
    --s-03-x: 40.2083333333%;
    --s-03-y: 60.2222222222%;
    --s-03-w: 18.4027777778%;
    --s-03-h: 3.3888888889%;
    --s-marker-x: 36.9444444444%;
    --s-marker-y: 36.3333333333%;
    --s-marker-w: 26.1111111111%;
    --s-marker-h: 4.1111111111%;
  }
}

.footer {
  --fs-footer: .875rem;
  --ls-footer: 1.96px;
  --fs-copyright: .5625rem;
  --ls-copyright: 0.9px;
  --footer-pad: 317px 0 47px 35px;
  --store-pad: 27px 0 31px;
  --share-gap: 12px;
  --share-icon-gap: 24px;
  --hobo-pad: 27px 0 0;
  display: flex;
  flex-direction: column;
  padding: var(--footer-pad);
  color: var(--color-white);
  font-size: var(--fs-footer);
  font-family: "Koburina Gothic W6 JIS2004";
  letter-spacing: var(--ls-footer);
  background-color: var(--color-footer-bg);
}
.footer_group {
  display: flex;
  flex-direction: column;
}
.footer_share {
  display: flex;
  align-items: flex-end;
  gap: var(--share-gap);
}
.footer_share > p {
  letter-spacing: 0.8px;
}
.footer_share ul {
  display: flex;
  align-items: center;
  gap: var(--share-icon-gap);
}
.footer_hobo {
  padding: var(--hobo-pad);
}
.footer_store {
  padding: var(--store-pad);
}
.footer_copyright {
  font-size: var(--fs-copyright);
  text-align: left;
  letter-spacing: var(--ls-copyright);
}
@media (min-width: 768px) {
  .footer {
    --fs-footer: 1rem;
    --fs-copyright: .75rem;
    --ls-footer: 0.8px;
    --ls-copyright: 1.2px;
    --footer-pad: 124px 0 76px;
    --store-pad: 20px 0 54px;
    --share-gap: 40px;
    --share-icon-gap: 27px;
    --hobo-pad: 0 0 0 61px;
  }
  .footer ul {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
  }
  .footer_group {
    flex-direction: row;
    justify-content: center;
    align-items: center;
  }
  .footer_share {
    justify-self: flex-end;
    align-items: center;
  }
  .footer_hobo {
    justify-self: flex-start;
  }
  .footer_hobo li:not(:last-of-type):after {
    content: "／";
  }
  .footer_store li:not(:last-of-type):after {
    content: "｜";
  }
  .footer_copyright {
    text-align: center;
  }
}

.racks {
  --racks-ar: 375 / 650;
  --towel-width: 28vw;
  position: relative;
  aspect-ratio: var(--racks-ar);
  overflow: hidden;
  background-color: var(--color-body-bg);
  transition: all 0.5s;
  --t-_NZ95388-x: 1.6vw;
  --t-_NZ95388-y: 9.0666666667vw;
  --t-_NZ95369-x: 24.2666666667vw;
  --t-_NZ95369-y: 8.2666666667vw;
  --t-_NZ95367-x: 44.8vw;
  --t-_NZ95367-y: 9.0666666667vw;
  --t-_NZ95375-x: 66.6666666667vw;
  --t-_NZ95375-y: 9.0666666667vw;
  --t-_NZ95399-x: 11.4666666667vw;
  --t-_NZ95399-y: 37.0666666667vw;
  --t-_NZ95397-x: 34.4vw;
  --t-_NZ95397-y: 37.0666666667vw;
  --t-_NZ95391-x: 56.8vw;
  --t-_NZ95391-y: 36.5333333333vw;
  --t-_NZ95372-x: 13.8666666667vw;
  --t-_NZ95372-y: 109.3333333333vw;
  --t-_NZ95373-x: 34.6666666667vw;
  --t-_NZ95373-y: 109.3333333333vw;
  --t-_NZ95395-x: 56.2666666667vw;
  --t-_NZ95395-y: 108.5333333333vw;
  --t-_NZ95376-x: -0.8vw;
  --t-_NZ95376-y: 140.2666666667vw;
  --t-_NZ95380-x: 18.9333333333vw;
  --t-_NZ95380-y: 140.2666666667vw;
  --t-_NZ95382-x: 36vw;
  --t-_NZ95382-y: 140vw;
  --t-_NZ95384-x: 54.9333333333vw;
  --t-_NZ95384-y: 140.2666666667vw;
  --t-_NZ95387-x: 73.8666666667vw;
  --t-_NZ95387-y: 139.7333333333vw;
}
.racks .towel {
  position: absolute;
  width: var(--towel-width);
  height: auto;
  aspect-ratio: 1/1;
  transform-origin: center top;
}
.racks .towel img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.racks .towel:nth-of-type(1) {
  animation: breeze 1.8s 0.1s linear;
}
.racks .towel:nth-of-type(2) {
  animation: breeze 1.8s 0.2s linear;
}
.racks .towel:nth-of-type(3) {
  animation: breeze 1.8s 0.3s linear;
}
.racks .towel:nth-of-type(4) {
  animation: breeze 1.8s 0.4s linear;
}
.racks .towel:nth-of-type(5) {
  animation: breeze 1.8s 0.5s linear;
}
.racks .towel:nth-of-type(6) {
  animation: breeze 1.8s 0.6s linear;
}
.racks .towel:nth-of-type(7) {
  animation: breeze 1.8s 0.7s linear;
}
.racks .towel:nth-of-type(8) {
  animation: breeze 1.8s 0.8s linear;
}
.racks .towel:nth-of-type(9) {
  animation: breeze 1.8s 0.9s linear;
}
.racks .towel:nth-of-type(10) {
  animation: breeze 1.8s 1s linear;
}
.racks .towel:nth-of-type(11) {
  animation: breeze 1.8s 1.1s linear;
}
.racks .towel:nth-of-type(12) {
  animation: breeze 1.8s 1.2s linear;
}
.racks .towel:nth-of-type(13) {
  animation: breeze 1.8s 1.3s linear;
}
.racks .towel:nth-of-type(14) {
  animation: breeze 1.8s 1.4s linear;
}
.racks .towel:nth-of-type(15) {
  animation: breeze 1.8s 1.5s linear;
}
.racks .towel-_NZ95388 {
  top: var(--t-_NZ95388-y);
  left: var(--t-_NZ95388-x);
}
.racks .towel-_NZ95369 {
  top: var(--t-_NZ95369-y);
  left: var(--t-_NZ95369-x);
}
.racks .towel-_NZ95367 {
  top: var(--t-_NZ95367-y);
  left: var(--t-_NZ95367-x);
}
.racks .towel-_NZ95375 {
  top: var(--t-_NZ95375-y);
  left: var(--t-_NZ95375-x);
}
.racks .towel-_NZ95399 {
  top: var(--t-_NZ95399-y);
  left: var(--t-_NZ95399-x);
}
.racks .towel-_NZ95397 {
  top: var(--t-_NZ95397-y);
  left: var(--t-_NZ95397-x);
}
.racks .towel-_NZ95391 {
  top: var(--t-_NZ95391-y);
  left: var(--t-_NZ95391-x);
}
.racks .towel-_NZ95372 {
  top: var(--t-_NZ95372-y);
  left: var(--t-_NZ95372-x);
}
.racks .towel-_NZ95373 {
  top: var(--t-_NZ95373-y);
  left: var(--t-_NZ95373-x);
}
.racks .towel-_NZ95395 {
  top: var(--t-_NZ95395-y);
  left: var(--t-_NZ95395-x);
}
.racks .towel-_NZ95376 {
  top: var(--t-_NZ95376-y);
  left: var(--t-_NZ95376-x);
}
.racks .towel-_NZ95380 {
  top: var(--t-_NZ95380-y);
  left: var(--t-_NZ95380-x);
}
.racks .towel-_NZ95382 {
  top: var(--t-_NZ95382-y);
  left: var(--t-_NZ95382-x);
}
.racks .towel-_NZ95384 {
  top: var(--t-_NZ95384-y);
  left: var(--t-_NZ95384-x);
}
.racks .towel-_NZ95387 {
  top: var(--t-_NZ95387-y);
  left: var(--t-_NZ95387-x);
}
@media (min-width: 768px) {
  .racks {
    --racks-ar: 1440 / 900;
    --towel-width: 17.5694444444%;
    padding: 0 calc((100vw - 1440px) / 2);
    --t-_NZ95388-x: 6.5277777778%;
    --t-_NZ95388-y: 2.5555555556%;
    --t-_NZ95369-x: 11.875%;
    --t-_NZ95369-y: 39.5555555556%;
    --t-_NZ95367-x: 41.0416666667%;
    --t-_NZ95367-y: 2.5555555556%;
    --t-_NZ95375-x: 58.4722222222%;
    --t-_NZ95375-y: 2.5555555556%;
    --t-_NZ95399-x: 33.8888888889%;
    --t-_NZ95399-y: 67.4444444444%;
    --t-_NZ95397-x: 49.6527777778%;
    --t-_NZ95397-y: 67.4444444444%;
    --t-_NZ95391-x: 82.6388888889%;
    --t-_NZ95391-y: 28.3333333333%;
    --t-_NZ95372-x: 23.8194444444%;
    --t-_NZ95372-y: 2.5555555556%;
    --t-_NZ95373-x: 65.3472222222%;
    --t-_NZ95373-y: 67.4444444444%;
    --t-_NZ95395-x: 81.1111111111%;
    --t-_NZ95395-y: 65.4444444444%;
    --t-_NZ95376-x: 18.125%;
    --t-_NZ95376-y: 67.4444444444%;
    --t-_NZ95380-x: 75.8333333333%;
    --t-_NZ95380-y: 2.5555555556%;
    --t-_NZ95382-x: 72.3611111111%;
    --t-_NZ95382-y: 40%;
    --t-_NZ95384-x: 1.1805555556%;
    --t-_NZ95384-y: 67.4444444444%;
    --t-_NZ95387-x: -0.0694444444%;
    --t-_NZ95387-y: 28.4444444444%;
  }
}

@keyframes breeze {
  0% {
    transform: rotate(0deg);
  }
  15% {
    transform: rotate(-5deg);
  }
  40% {
    transform: rotate(5deg);
  }
  60% {
    transform: rotate(-2deg);
  }
  80% {
    transform: rotate(2deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
.photo {
  --pic-w-min: 85.3333333333vw;
  --pic-w-max: 700px;
  width: min(var(--pic-w-min), var(--pic-w-max));
  opacity: 0;
  transition: opacity 1s;
}
.photo.in-view, .in-view .photo {
  opacity: 1;
}

.caption-wrap {
  position: relative;
}
.caption-wrap + .caption-wrap {
  margin-top: var(--cap-w-mt, 20px);
}
@media (min-width: 768px) {
  .caption-wrap {
    --cap-w-mt: 82px;
  }
}

.caption {
  position: absolute;
  opacity: 0;
  transition: all 0.75s 0.3s ease-in-out;
}
.caption-01 {
  top: 38.7580299786%;
  left: 3.4285714286%;
  width: 31.4285714286%;
  height: 35.5460385439%;
  transform: translateX(50px) scale(0.5);
}
.caption-02 {
  top: 20.7708779443%;
  left: 65.1428571429%;
  width: 30.2857142857%;
  height: 36.8308351178%;
  transform: translateX(-50px) scale(0.5);
}
.caption-03 {
  top: 13.4903640257%;
  left: 7.7142857143%;
  width: 38.8571428571%;
  height: 18.2012847966%;
  transform: translateY(50px) scale(0.5);
}
.in-view .caption {
  opacity: 1;
  transform: translate(0) scale(1);
}

.paragraph {
  --para-pad: 34px calc((100vw - 320px) / 2);
  --para-fs: 0.875rem;
  --para-lh: 183.5%;
  --para-ls: -0.42px;
  padding: var(--para-pad);
  display: grid;
  gap: 1em;
  font-size: var(--para-fs);
  line-height: var(--para-lh);
  letter-spacing: var(--para-ls);
}
.paragraph br {
  display: var(--br, none);
}
.paragraph.lead {
  --para-pad: 18px calc((100vw - 320px) / 2);
}
@media (min-width: 768px) {
  .paragraph {
    --para-pad: 62px calc((100vw - 520px) / 2);
    --para-fs: 1rem;
    --para-lh: 215%;
    --para-ls: 0.72px;
    --br: block;
  }
  .paragraph.lead {
    --para-pad: 46px calc((100vw - 1440px) / 2) 69px;
  }
}

.products {
  --grid-pad: 18px 0 51.5px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--grid-pad);
  background-color: #ffffff;
  opacity: 0;
  transition: opacity 2s;
}
.products.in-view {
  opacity: 1;
}
@media (min-width: 768px) {
  .products {
    --grid-pad: 50px 0 99px;
  }
}

.product-list {
  --grid-col: repeat(2, 1fr);
  --grid-gap: 20px 14px;
  width: min(80vw, 1130px);
  display: grid;
  grid-template-columns: var(--grid-col);
  gap: var(--grid-gap);
}
@media (min-width: 450px) {
  .product-list {
    --grid-col: repeat(3, 1fr);
  }
}
@media (min-width: 768px) {
  .product-list {
    --grid-col: repeat(4, 1fr);
    --grid-gap: 40px 35px;
  }
}

.item {
  --color-cart-button: #7AB3F5;
  --name-fs: 0.875rem;
  --name-lh: 148.5%;
  --name-ls: -0.36px;
  --size-fs: 0.75rem;
  --size-lh: 148.5%;
  --size-ls: -0.36px;
  --price-fs: 0.875rem;
  --price-lh: 119.958%;
  --price-ls: 0.42px;
  --price-m: 8px 0 7px;
  --inc-tax-fs: 0.5625rem;
  --inc-tax-lh: 186.601%;
  --inc-tax-ls: 0.36px;
  --button-fs: 0.7239375rem;
  --button-lh: 25px;
  --button-ls: 0.579px;
  --button-max-w: 192px;
}
.item a {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.item__photo {
  aspect-ratio: 142/177.5;
  margin-bottom: 13.5px;
}
.item__photo img {
  width: auto;
  height: 100%;
  object-fit: cover;
}
.item__name {
  font-family: "Yu Gothic Pr6N M";
  font-size: var(--name-fs);
  line-height: var(--name-lh);
  letter-spacing: var(--name-ls);
}
.item__size {
  font-family: "Yu Gothic Pr6N D";
  font-size: var(--size-fs);
  line-height: var(--size-lh);
  letter-spacing: var(--size-ls);
}
.item .price, .item__currency {
  font-family: "Yu Gothic Pr6N B";
  font-family: "Yu Gothic Pr6N B";
  font-size: var(--price-fs);
  line-height: var(--price-lh);
  letter-spacing: var(--price-ls);
}
.item__price {
  display: flex;
  flex-wrap: wrap;
  margin: auto 0 4px;
  font-feature-settings: "halt" on;
}
.item__inc-tax {
  margin-left: 0.25em;
  font-family: "Yu Gothic Pr6N R";
  font-size: var(--inc-tax-fs);
  line-height: var(--inc-tax-lh);
  letter-spacing: var(--inc-tax-ls);
}
.item__button {
  width: 100%;
  max-width: var(--button-max-w);
  font-family: "Yu Gothic Pr6N B";
  color: var(--color-white);
  font-size: var(--button-fs);
  line-height: var(--button-lh);
  letter-spacing: var(--button-ls);
  text-align: center;
  border-radius: calc(var(--button-lh) / 2);
  background-color: var(--color-cart-button);
}
@media (min-width: 768px) {
  .item {
    --name-fs: 1.125rem;
    --name-lh: 159.5%;
    --name-ls: 1.44px;
    --size-fs: 1rem;
    --size-lh: 159.5%;
    --size-ls: 1.28px;
    --price-fs: 1.3125rem;
    --price-lh: 142.857%;
    --price-m: 5px 0 9px;
    --inc-tax-fs: 0.625rem;
    --inc-tax-lh: 300%;
    --inc-tax-ls: 0.4px;
    --button-fs: 1rem;
    --button-lh: 35px;
    --button-ls: 0.8px;
    --button-max-w: 192px;
  }
  .item .price, .item__currency {
    font-family: "Yu Gothic Pr6N D";
  }
  .item__button {
    padding: 0 0 0 2.8472222222vw;
    text-align: left;
  }
}