@charset "UTF-8";
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
  letter-spacing: 0.025em; }

[hidden] {
  display: none !important; }

ul {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 0; }

button {
  padding: 0;
  overflow: visible;
  color: inherit;
  font: inherit;
  background: none;
  border: 0;
  text-align: left;
  margin: 0;
  cursor: pointer; }

input, textarea {
  background: none;
  border: none;
  -webkit-border-radius: 0;
  border-radius: 0;
  margin: 0;
  padding: 0;
  color: inherit;
  -webkit-appearance: none;
  touch-action: manipulation; }

html {
  font-size: calc( 15px + (28.4 - 15) * (100vw - 320px) / (1024 - 320));
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }
@media (min-width: 1024px) {
  html {
    font-size: calc( 10.6px + (30 - 10.6) * (100vw - 1024px) / (2880 - 1024)); } }

*, *:before, *:after {
  -webkit-box-sizing: inherit;
  box-sizing: inherit; }

body {
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", "Helvetica Neue", sans-serif;
  color: #000;
  background: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; height: auto; }

.flex {
  display: -webkit-flex;
  display: flex; }

.flex-wrap {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap; }

.justify-between {
  -webkit-justify-content: space-between;
  justify-content: space-between; }

.justify-end {
  -webkit-justify-content: flex-end;
  justify-content: flex-end; }

.justify-start {
    -webkit-justify-content: flex-start;
    justify-content: flex-start; }

.aligncenter {
  -webkit-align-items: center;
  align-items: center; }

.block { display: block; }
.inline-block { display: inline-block; }
.d-none { display: none; }

.visuallyhidden {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0; }

.color-black { color: #000; }
.color-grey { color: #595959; }

.current-text {
  font-size: 0.7rem;
  line-height: 1.618; }
  .current-text p { margin-bottom: 1rem; }
  .current-text p:last-child { margin-bottom: 0; }
@media (min-width: 1024px) {
  .current-text { font-size: .75rem; } }

.menu-title {
  font-weight: 600;
  font-size: 0.73rem;
  line-height: .9; }
@media (min-width: 1024px) {
  .menu-title { font-size: 0.86rem; } }

.legend-text, .link-btn {
  font-size: 0.59rem;
  line-height: 1.1; }
@media (min-width: 1024px) {
  .legend-text, .link-btn { font-size: 0.73rem; } }

.info-text {
  font-size: 0.59rem;
  line-height: 1.618; }
@media (min-width: 1024px) {
  .info-text { font-size: 0.86rem; line-height: 1.4; } }

.section-title {
  font-weight: 600;
  font-size: .93rem;
  line-height: 1; }

.from-bottom {
  opacity: 0;
  -webkit-transform: translate3d(0, 1.618rem, 0);
  transform: translate3d(0, 1.618rem, 0);
  -webkit-transition: 0.8s linear opacity, 0.8s ease-in-out transform;
  transition: 0.8s linear opacity, 0.8s ease-in-out transform; }
.from-bottom.up {
  opacity: 1;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.xxs-row { margin-bottom: 7px; }
.xs-row { margin-bottom: .618rem; }
.sm-row { margin-bottom: 1rem; }
.md-row { margin-bottom: 1.618rem; }

.mb-phi { margin-bottom: 1.618rem; }
.mb-sm-phi { margin-bottom: .618rem; }
.mt-phi { margin-top: 1.618rem; }
.mt-sm-phi { margin-top: .618rem; }
.mt-micro { margin-top: .382rem; }

.link-btn {
  display: inline-block;
  width: 100%;
  padding: .618rem;
  background: #fff;
  color: #313131;
  border-radius: 40px;
  border: 1px solid #000;
  text-transform: uppercase;
  text-align: center;
  letter-spacing: .2px;
  cursor: pointer;
  transition: 0.3s linear background-color; }
.link-btn:hover { background-color: #f1f1f1; }
@media (min-width: 1024px) {
  .link-btn { max-width: 10.18rem; padding: .618rem 1.618rem; } }
.link-btn--dark {
  background: #000; color: #fff; border-color: #000; }
.link-btn--dark:hover { background-color: #313131; }
.btn-maxw-sm { max-width: 8rem; }
.btn-maxw-md { max-width: 10rem; }
.btn-maxw-lg { max-width: 12rem; }
.btn-maxw-xl { max-width: 14rem; }
.btn-pad-sm { padding: .382rem .618rem; }

.input {
  width: 100%;
  border: 1px solid #e0e0e0;
  border-radius: 40px;
  font-size: 0.59rem;
  color: #000;
  padding: .618rem 1rem; }
@media (min-width: 1024px) {
  .input { font-size: 0.73rem; } }
.input::-webkit-input-placeholder { color: #797979; }
.input::-moz-placeholder { color: #797979; }
.input:-ms-input-placeholder { color: #797979; }

textarea.input {
  border-radius: 16px;
  resize: vertical;
  min-height: 6.18rem;
  font-family: inherit; }

.grid {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  width: calc(100% - 1rem);
  max-width: calc(100% - 1rem);
  margin-left: auto;
  margin-right: auto; }
@media (min-width: 1024px) {
  .grid {
    width: calc(100% - 1.333rem);
    max-width: calc(100% - 1.333rem); } }

.col {
  position: relative;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  max-width: 100%;
  padding-right: 0.5rem;
  padding-left: 0.5rem; }
@media (min-width: 1024px) {
  .col { padding-right: 0.66665rem; padding-left: 0.66665rem; } }

.xxs-col-1 { width: 16.66667%; max-width: 16.66667%; }
.xxs-col-2 { width: 33.33333%; max-width: 33.33333%; }
.xxs-col-3 { width: 50%; max-width: 50%; }
.xxs-col-6 { width: 100%; max-width: 100%; }

@media (min-width: 1024px) {
  .lg-col-4 { width: 20%; max-width: 20%; }
  .lg-col-5 { width: 25%; max-width: 25%; }
  .lg-col-6 { width: 30%; max-width: 30%; }
  .lg-col-8 { width: 38.2%; max-width: 38.2%; }
  .lg-col-10 { width: 50%; max-width: 50%; }
  .lg-col-12 { width: 61.8%; max-width: 61.8%; }
  .lg-col-16 { width: 80%; max-width: 80%; }
  .lg-col-20 { width: 100%; max-width: 100%; } }

.img-container {
  position: relative;
  line-height: 0;
  background: #f1f1f1;
  overflow: hidden; }
.img-container img {
  display: block;
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  -o-object-fit: cover;
  object-fit: cover; }

.ar-golden { padding-top: 61.8%; }
.ar-square { padding-top: 100%; }
.ar-16x9 { padding-top: 56.25%; }
.ar-portrait { padding-top: 127%; }
.ar-portrait-tall { padding-top: 138%; }
.ar-portrait-mid { padding-top: 118%; }

.AnnouncementBar {
  background: #fff;
  color: #595959;
  text-align: center; }
.AnnouncementBar__Wrapper { padding: 5px 0; }
.AnnouncementBar__Content {
  font-size: 0.59rem;
  line-height: 1.1; }
@media (min-width: 1024px) {
  .AnnouncementBar__Content { font-size: 0.73rem; } }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff; }
.site-header__inner {
  height: 3.91rem;
  align-items: center; }
@media (min-width: 1024px) {
  .site-header__inner { height: 6.18rem; } }
.site-header__logo {
  display: flex;
  align-items: center;
  line-height: 0; }
.site-header__logo img {
  width: auto;
  height: 0.86667rem; }
@media (min-width: 1024px) {
  .site-header__logo img { height: 1.33rem; } }
.site-header__lg-item {
  display: none;
  align-items: center;
  line-height: 1; }
@media (min-width: 1024px) {
  .site-header__lg-item { display: flex; } }
.site-header__lg-item a,
.site-header__lg-item button {
  transition: 0.3s linear color; }
.site-header__lg-item a:hover,
.site-header__lg-item button:hover { color: #797979; }
.site-header__xxs-item {
  display: flex;
  align-items: center; }
@media (min-width: 1024px) {
  .site-header__xxs-item { display: none; } }
.site-header__utils { display: none; }
@media (min-width: 1024px) {
  .site-header__utils { display: flex; } }
.site-header__utils .container {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 1.618rem; }
.site-header__border {
  position: absolute;
  bottom: 0; left: 0; right: 0; }
.site-header__border div {
  border-bottom: 1px solid #797979;
  margin: 0 8px; }
@media (min-width: 1024px) {
  .site-header__border div { margin: 0 0.66665rem; } }

.site-header__utils .material-icons-outlined {
  font-size: 1.1em;
  margin-right: 3px; }

.home-hero { position: relative; overflow: hidden; }
.home-hero .img-container { min-height: 61.8vh; }
@media (min-width: 1024px) {
  .home-hero .img-container { min-height: 80vh; } }
.home-hero__overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 2.618rem 0;
  background: linear-gradient(0deg, rgba(0,0,0,.55) 0%, transparent 100%); }
.home-hero__title {
  font-size: 1.83rem;
  font-weight: 600;
  line-height: 1.1;
  color: #fff;
  max-width: 61.8%; }
@media (min-width: 1024px) {
  .home-hero__title { font-size: 2.96rem; } }
.home-hero__sub {
  font-size: 0.7rem;
  line-height: 1.618;
  color: rgba(255,255,255,.8);
  margin-top: .618rem;
  max-width: 38.2%; }
@media (max-width: 1023px) {
  .home-hero__sub { max-width: 80%; } }

.home-section { padding: 2.618rem 0; }
@media (min-width: 1024px) {
  .home-section { padding: 4.236rem 0; } }

.home-section__border {
  margin-top: 2.618rem;
  border-bottom: 1px solid #e0e0e0; }

.product-grid-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.618rem; }

.product-loop { display: block; }
.product-loop__inner { margin-bottom: 8px; }
.product-loop h2 { margin-bottom: 3px; }

.price { display: flex; }
.price__container { display: flex; }
.price-item--sale { color: #000; }

.info-chart__bar {
  height: 6px;
  background: #000;
  border-radius: 3px;
  transition: width 1.2s ease-out; }
.info-chart__bar--mid { background: #797979; }
.info-chart__bar--dark { background: #313131; }
.info-chart__label {
  font-size: 0.59rem;
  color: #595959;
  margin-bottom: 4px; }
@media (min-width: 1024px) {
  .info-chart__label { font-size: 0.7rem; } }
.info-chart__row { margin-bottom: 1.618rem; }
.info-chart__val {
  font-weight: 600;
  font-size: 0.73rem;
  margin-top: 4px; }
.info-chart__track {
  background: #f1f1f1;
  border-radius: 3px;
  overflow: hidden; }

.blockquote-side {
  border-left: 3px solid #000;
  padding-left: 1rem; }
.blockquote-side .bq-label {
  font-weight: 600;
  margin-bottom: .382rem; }

.flex-end-col {
  display: flex;
  flex-direction: column;
  justify-content: flex-end; }

.team-card { position: relative; overflow: hidden; }
.team-card__img .img-container { border-radius: 2px; }
.team-card__name {
  font-weight: 600;
  font-size: 0.73rem;
  margin-top: .618rem; }
.team-card__role {
  font-size: 0.59rem;
  color: #595959;
  margin-top: 3px; }

.content-narrow { max-width: 61.8%; }
@media (max-width: 1023px) {
  .content-narrow { max-width: 100%; } }

.trust-block { padding: 1.618rem 0; }
.trust-block__item {
  padding-right: 1.618rem;
  margin-bottom: 1.618rem; }
.trust-block__item--bordered {
  border-right: 1px solid #e0e0e0; }
@media (max-width: 1023px) {
  .trust-block__item--bordered { border-right: 0; } }
.trust-icon {
  font-size: 1.83rem;
  margin-bottom: .618rem;
  display: block; }
.trust-heading {
  font-weight: 600;
  font-size: 0.73rem;
  margin-bottom: .382rem; }
.trust-desc {
  font-size: 0.59rem;
  color: #595959;
  line-height: 1.618; }
@media (min-width: 1024px) {
  .trust-desc { font-size: 0.7rem; } }

.review-card {
  border-bottom: 1px solid #e0e0e0;
  padding-bottom: 1.618rem;
  margin-bottom: 1.618rem; }
.review-card:last-child { border-bottom: 0; margin-bottom: 0; }
.review-row { gap: 1.618rem; align-items: flex-start; }
.review-card__stars {
  font-size: 0.59rem;
  letter-spacing: 2px;
  color: #000;
  margin-bottom: .382rem; }
.review-card__text {
  font-size: 0.7rem;
  line-height: 1.618;
  color: #313131;
  margin-bottom: .618rem; }
@media (min-width: 1024px) {
  .review-card__text { font-size: .75rem; } }
.review-card__author { font-size: 0.59rem; color: #595959; }
.review-thumb {
  width: 100px; min-width: 100px;
  border-radius: 2px; overflow: hidden; }

.faq-item { border-bottom: 1px solid #e0e0e0; }
.faq-item__q {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 1rem 0;
  font-weight: 600;
  font-size: 0.73rem;
  cursor: pointer;
  text-align: left; }
@media (min-width: 1024px) {
  .faq-item__q { font-size: 0.86rem; } }
.faq-item__q span {
  transition: transform .3s ease;
  font-size: 1.2em; }
.faq-item.active .faq-item__q span { transform: rotate(45deg); }
.faq-item__a {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s ease, padding .4s ease;
  font-size: 0.7rem;
  line-height: 1.618;
  color: #595959; }
.faq-item.active .faq-item__a {
  max-height: 20rem;
  padding-bottom: 1rem; }

.contact-form .input,
.contact-form textarea.input { margin-bottom: .618rem; }

.cart-overlay {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,.5);
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease; }
.cart-overlay.active { opacity: 1; pointer-events: auto; }

.cart-popup {
  position: fixed;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%) scale(.95);
  width: calc(100% - 2rem);
  max-width: 780px;
  max-height: 85vh;
  background: #fff;
  border-radius: 4px;
  z-index: 201;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
  overflow-y: auto; }
.cart-popup.active {
  opacity: 1; pointer-events: auto;
  transform: translate(-50%, -50%) scale(1); }
.cart-popup__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.618rem;
  border-bottom: 1px solid #e0e0e0; }
.cart-popup__title { font-weight: 600; font-size: .93rem; }
.cart-popup__close { font-size: 1.2rem; cursor: pointer; padding: 4px; }
.cart-popup__body { padding: 1.618rem; }
.cart-popup__footer {
  padding: 1rem 1.618rem 1.618rem;
  border-top: 1px solid #e0e0e0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: .618rem; }
.cart-popup__total { font-weight: 600; font-size: .93rem; }
.cart-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.cart-item {
  display: flex;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid #f1f1f1;
  align-items: center; }
.cart-item:last-child { border-bottom: 0; }
.cart-item__img {
  width: 72px; min-width: 72px; height: 72px;
  border-radius: 2px; overflow: hidden; background: #f1f1f1; }
.cart-item__img img { width: 100%; height: 100%; object-fit: cover; }
.cart-item__info { flex: 1; }
.cart-item__name { font-weight: 600; font-size: 0.7rem; margin-bottom: 3px; }
.cart-item__price { font-size: 0.59rem; color: #595959; }
.cart-item__qty { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.cart-item__qty button {
  width: 28px; height: 28px;
  border: 1px solid #000;
  border-radius: 50%;
  text-align: center;
  font-size: 14px;
  line-height: 26px; }
.cart-item__qty-val { font-size: 0.7rem; min-width: 20px; text-align: center; }
.cart-item__remove {
  font-size: 0.59rem; color: #797979;
  cursor: pointer; text-decoration: underline; }
.cart-empty {
  text-align: center;
  padding: 2.618rem 0;
  color: #595959;
  font-size: 0.73rem; }

.modal-overlay {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,.6);
  z-index: 300;
  display: none;
  align-items: center;
  justify-content: center; }
.modal-overlay.active { display: flex; }
.modal-box {
  background: #fff;
  border-radius: 4px;
  padding: 2.618rem;
  max-width: 420px;
  width: calc(100% - 2rem);
  text-align: center; }
.modal-box--left { text-align: left; }
.modal-title { font-weight: 600; font-size: .93rem; margin-bottom: .618rem; }
.modal-fields { text-align: left; margin-bottom: 1rem; }
.modal-fields .input { margin-bottom: .618rem; }
.modal-btns { display: flex; gap: 8px; justify-content: center; }

.gdpr-banner {
  position: fixed;
  bottom: 1rem; right: 1rem;
  width: 320px;
  max-width: calc(100% - 2rem);
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  padding: 1.618rem;
  z-index: 500;
  box-shadow: 0 2px 12px rgba(0,0,0,.1);
  display: none; }
.gdpr-banner.active { display: block; }
.gdpr-banner__title { font-weight: 600; font-size: 0.73rem; margin-bottom: .382rem; }
.gdpr-banner__text {
  font-size: 0.59rem;
  line-height: 1.618;
  color: #595959;
  margin-bottom: .618rem; }
.gdpr-banner__text a { text-decoration: underline; }
.gdpr-banner__btns { display: flex; gap: 6px; flex-wrap: wrap; }
.gdpr-banner__btns .link-btn { flex: 1; min-width: 0; padding: .382rem .618rem; font-size: 0.5rem; }
@media (min-width: 1024px) {
  .gdpr-banner__btns .link-btn { font-size: 0.59rem; } }

.gdpr-settings__box {
  background: #fff;
  border-radius: 4px;
  padding: 1.618rem;
  max-width: 400px;
  width: calc(100% - 2rem); }
.gdpr-settings__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: .618rem 0;
  border-bottom: 1px solid #f1f1f1; }
.gdpr-settings__row:last-of-type { border-bottom: 0; }
.gdpr-settings__label { font-size: 0.59rem; }
.gdpr-toggle {
  position: relative;
  width: 36px; height: 20px;
  background: #e0e0e0;
  border-radius: 10px;
  cursor: pointer;
  transition: background .2s; }
.gdpr-toggle.on { background: #000; }
.gdpr-toggle:after {
  content: "";
  position: absolute;
  top: 2px; left: 2px;
  width: 16px; height: 16px;
  background: #fff;
  border-radius: 50%;
  transition: left .2s; }
.gdpr-toggle.on:after { left: 18px; }
.gdpr-toggle--locked { opacity: .5; pointer-events: none; }
.gdpr-settings__actions { display: flex; gap: 8px; margin-top: 1rem; }

.cart-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #000; color: #fff;
  border-radius: 50%;
  width: 16px; height: 16px;
  font-size: 9px;
  margin-left: 3px;
  vertical-align: middle; }

.site-footer {
  background: #f1f1f1;
  padding: 2.618rem 0 1.618rem; }
.site-footer__inner { align-items: flex-start; }
.site-footer__section { margin-bottom: 1rem; }
@media (min-width: 1024px) {
  .site-footer__section { margin-bottom: 0; } }
.site-footer__title { margin-bottom: 7px; }
.site-footer__menu ul li { line-height: 1.618; }
.site-footer__menu ul li a { transition: 0.3s linear color; }
.site-footer__menu ul li a:hover { color: #797979; }
.footer-logo img { width: auto; height: 1.618rem; }
@media (min-width: 1024px) {
  .footer-logo img { height: 2rem; } }
.footer-contact .material-icons-outlined {
  font-size: 13px;
  margin-right: 3px; }

.err-msg {
  color: #ad3232;
  font-size: 0.5rem;
  margin-top: -4px;
  margin-bottom: .382rem; }

.page-main { padding-top: 2.618rem; padding-bottom: 4.236rem; }
.page-h1 { font-size: 1.83rem; line-height: 1.2; }
.page-date { margin-top: .382rem; }
.legal-heading { font-weight: 600; margin-top: 1.618rem; }
.legal-contact { margin-top: 1.618rem; }
.legal-gap { margin-top: .618rem; }

.material-icons-outlined { font-size: inherit; vertical-align: middle; }

.align-end { align-items: flex-end; }
.flex-1 { flex: 1; }
.text-xs { font-size: .59rem; }
.thankyou-icon { font-size: 2.618rem; margin-bottom: .618rem; display: block; }
.mx-auto { margin-left: auto; margin-right: auto; }
.pt-0 { padding-top: 0; }
