@charset "utf-8";
/* ==========================================================================
   Base
   ========================================================================== */
[id^="moflin"] {
  --moflin-theme-color: #f29c8d;
  --moflin-bg-color: #f5eee6;
  --moflin-beige-color: #e6d2c7;
  --moflin-light-gray-color: #b8b9bd;
  --moflin-gray-color: #717279;
  --moflin-font-family: "Lexend Deca", "Noto Sans JP", sans-serif;
}
[id^="moflin"] img {
  width: 100%;
}
.pc {
  display: inline;
}
.sp {
  display: none;
}
/*---- font ------*/
#moflin {
  color: var(--moflin-gray-color);
  font-family: var(--moflin-font-family);
}
#moflin h2, #moflin h3, #moflin h4, #moflin h5 {
  padding: 0;
  line-height: 1.5;
}
[id^="moflin"] p {
  font-size: min(4vw, 18px);
  margin-bottom: 10px;
  line-height: 2;
}
[id^="moflin"] a {
  color: var(--moflin-gray-color);
  text-decoration: none;
}
#moflin .moflin-color {
  color: var(--moflin-theme-color);
}
#moflin h2.title {
  font-size: min(14vw, 100px);
  color: var(--moflin-beige-color);
  margin-bottom: min(6vw, 40px);
  padding: 0;
  line-height: 1.1;
  text-align: center;
}
#moflin h2.title.gray {
  color: var(--moflin-light-gray-color);
}
#moflin h2.title.moflin-color {
  color: var(--moflin-theme-color);
}
#moflin h2.title.ja {
  font-size: min(10vw, 70px);
}
#moflin h2.title.descender {
  line-height: 1.5;
}
#moflin h2.title .subtitle {
  font-size: min(4.5vw, 22px);
  color: var(--moflin-gray-color);
  display: block;
}
#moflin .lead p {
  font-size: min(4.3vw, 22px);
  text-align: center;
}
#moflin p.note {
  font-size: min(3.8vw, 14px);
}
@media (max-width: 767px) {
  .pc {
    display: none;
  }
  .sp {
    display: inline;
  }
}
/* ==========================================================================
   Components
   ========================================================================== */
[id^="moflin"] a.moflin-btn {
  position: relative;
  border-radius: 10px;
  display: inline-block;
  background: var(--moflin-theme-color);
  padding: 20px 60px;
  color: #ffffff;
  font-size: min(4.0vw, 20px);
  font-weight: 700;
  border-color: var(--moflin-theme-color);
  transition: .3s ease-out;
}
[id^="moflin"] a.moflin-btn::after {
  position: absolute;
  content: "";
  display: inline-block;
  right: 33px;
  top: 50%;
  width: 10px;
  aspect-ratio: 1;
  transform: translateY(-50%) rotate(45deg);
  border-top: solid #fff;
  border-right: solid #fff;
  border-width: 2px;
  min-height: auto;
}
[id^="moflin"] a.moflin-btn:hover {
  transform: scale(1.05);
}
[id^="moflin"] a.moflin-gray-btn {
  color: #ffffff;
}
[id^="moflin"] a.moflin-btn:hover {
  transform: scale(1.05);
}
/* ------------------------ スクロールアニメーション  ------------------------*/
.js-fade {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity .6s ease-out 0s, transform .6s ease-out 0s;
}
.js-fade.js-anm-on {
  opacity: 1;
  transform: translateY(0);
}
/* ------------------------ pdp  ------------------------*/
#pdp .js-fade {
  opacity: 1;
  transform: translateY(0);
}
/*--------------------youtube modal--------------------*/
.js-modal-open {
  cursor: pointer;
}
.js-modal-open__image {
  overflow: hidden;
}
.js-modal-open:hover {
  transform: scale(1.05);
}
/* 背景の黒い膜 */
.modal-overlay {
  display: none; /* 最初は隠す */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 9999;
  align-items: center;
  justify-content: center;
}
/* クラスが付いたら表示 */
.modal-overlay.is-active {
  display: flex;
}
/* 動画の箱 */
.modal-content {
  position: relative;
  width: 90%;
  max-width: 1300px;
  background: #000;
}
/* 16:9のレスポンシブ対応 */
#video-container {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
}
#video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/* 閉じるボタン */
.close-btn {
  position: absolute;
  top: -40px;
  right: 0;
  background: none;
  border: none;
  cursor: pointer;
}
.icon-close {
  display: block;
  position: relative;
  width: 30px;
  height: 30px;
  cursor: pointer;
}
.icon-close::before, .icon-close::after { 
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  height: 40px; 
  background: #ffffff;
  transition: height .2s ease-out;
}
.icon-close:hover::before, .icon-close:hover::after {
  width: 1px;
  height: 50px;
}
.icon-close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.icon-close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

/*--------------------アコーディオン--------------------*/
.js-acctarget {
  display: block;
  max-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  transition: padding .1s ease-out, max-height .3s ease-out;
  overflow: hidden;
}
.js-acctarget.is-on {
  max-height: 1000px;
  padding-top: 20px;
  padding-bottom: 20px;
}

.accordion-header {
  width: 100%;
  padding: 15px 3em 15px 10px;
  background: none;
  border: none;
  cursor: pointer;
  position: relative;
  transition: background-color 0.3s;
  background-color: #ffffff;
}
.accordion-header:hover {
  background-color: #f9f9f9;
}
.accordion-header::before, .accordion-header::after {
  content: "";
  position: absolute;
  right: 20px;
  top: 50%;
  background-color: #333;
  transition: transform 0.3s ease-out;
}
.accordion-header::before {
  width: 16px;
  height: 2px;
  margin-top: -1px;
  left: auto;
  transform: rotate(0deg);
}

.accordion-header::after {
  width: 2px;
  height: 16px;
  margin-top: -8px;
  right: 27px;
  transform: rotate(0deg);
}
.accordion-header.active::after {
  transform: rotate(90deg);
}
.accordion-header.active::before {
  transform: rotate(180deg);
}
.accordion-content {
  height: 0;
  overflow: hidden;
  transition: height 0.3s ease-out;
}
.accordion-inner {
  padding: 20px;
}
/*---- topbtn ------*/
#moflin #topbtn {
  width: 150px;
  border: none;
  cursor: pointer;
  opacity: 0;
  padding: 20px;
  background: none;
  pointer-events: none;
  transition: opacity .5s ease-out, transform .3s ease-out;
  position: absolute;
  bottom: 200px;
}
#moflin .switch-container:has(> #topbtn) {
  display: flex;
  justify-content: flex-end;
}
#moflin #topbtn:hover {
  transform: scale(1.05);
}
#moflin #topbtn.is-active {
  opacity: 1;
  pointer-events: auto;
}
#moflin #topbtn.is-fixed {
  position: fixed;
  bottom: 0;
  right: 0;
  z-index: 101;
}
@media (max-width: 767px) {
  #moflin #topbtn {
    width: 100px;
    bottom: 25vw;
  }
  [id^="moflin"] a.moflin-btn {
    background: var(--moflin-theme-color);
    padding: 10px 40px;
  }
  [id^="moflin"] a.moflin-btn::after {
    right: 20px;
  }
}
/* ==========================================================================
   layout
   ========================================================================== */
/*----------------------- header -----------------------*/
button.l-pnavBtn, button.l-pnavSub_btn-close {
  cursor: pointer;
    display: none;
}
.l-pnav{
    margin-right: 0 !important;
}
.l-pnavSub.is-on, .l-pnavSub.is-on .l-pnavSub_inr {
  height: calc(var(--winH) * 1);
}
#moflin .l-header a.c-btn, .l-pnavSub a.c-btn {
  color: #ffffff;
}
.l-pnavSub .linkbtn {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.l-pnavSub .linkbtn li {
  width: auto;
}
.l-pnavSub .linkbtn li a {
  margin: 10px !important;
}
/*----------------------- moflin-比較 -----------------------*/
#model-comparison{
  text-align: center;
}
#model-comparison .accordion-header {
  background-color: var(--moflin-theme-color);
  color: #ffffff;
  font-size: min(5vw,30px);
  font-weight: 700;
}
#model-comparison button.accordion-header:hover {
  background-color: #ffbaae;
}
#model-comparison .accordion-header::before, #model-comparison .accordion-header::after {
  background-color: #ffffff;
}
#model-comparison .accordion-inner {
  padding: 20px;
  border: solid 2px var(--moflin-theme-color);
}
#model-comparison h3 {
  font-size: min(4.2vw,24px);;
  margin-bottom: 20px;
}
#model-comparison table {
    width: 100%;
    max-width: 1000px;
  background-color: #ffffff;
  color: var(--moflin-theme-color);
  border-collapse: collapse;
  border-radius: 10px;
  font-size: min(4vw,20px);
  margin: 20px auto;
  padding: 10px;
}
#model-comparison table, th, td {
    padding: 10px;    
  border: 1px solid var(--moflin-theme-color);
}
#model-comparison table th {
  background-color: var(--moflin-theme-color);
  color: #ffffff;
  border-left-color: #ffffff;
  border-right-color: #ffffff;
}
#model-comparison table th:first-child {
  border-left-color: var(--moflin-theme-color);
}
#model-comparison table th:last-child {
  border-right-color: var(--moflin-theme-color);
}

/*----------------------- moflin-goods-link -----------------------*/
#moflin-goods {
  margin: 50px auto;
}
#moflin-goods h2 {
  color: #e6d2c7;
  margin-bottom: 3rem;
}
#moflin-goods .is-s {
  color: var(--moflin-gray-color);
}
[id*="link-goods__inner"] {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}
#moflin-goods .aem-Grid:has(>.image) {
  display: flex;
  justify-content: center;
}
#moflin-goods__image {
  margin: 0 auto 4rem;
}
#moflin-goods .image {
  border-radius: 20px;
  overflow: hidden;
}
#moflin-goods img {
  transition: .3s ease-out;
}
#moflin-goods img:hover {
  transform: scale(1.05);
}
#moflin-goods .cmp-product_panel_list {
  min-height: 200px;
}
#moflin-goods li.cmp-product_panel_list__item {
  width: 200px;
  min-height: 200px;
}
.cmp-product_panel {
  width: 100%;
  min-height: 200px;
}
.cmp-product_panel .cmp-product_panel__thumb {
  max-height: 200px;
}
.cmp-product_panel .cmp-product_panel__info .cmp-product_panel__code {
  font-size: 14px;
  height: 30px;
}
/*----------------------- share -----------------------*/
#share {
  background-color: #ffffff;
}
#share .note {
  text-align: right;
  font-size: 14px;
}
#share .sub-tl {
  font-size: min(4.2vw, 22px);
  line-height: 1;
    font-weight: 200;    
}
.p-share-lead {
  background: #eeeef0;
}
.p-share .c-sec_inr {
  padding-bottom: 50px;
}
#share .btn {
  text-align: center;
}
/*----------------------- faq -----------------------*/
#faq {
  margin: min(5vw, 50px) 0;
}
#moflin #faq .inner {
  max-width: 900px;
}
#faq h2.title {
  color: var(--moflin-theme-color);
}
#faq .accordion-item:last-child {
  border-bottom: solid 2px #ddd;
}
#faq .accordion-header {
  text-align: left;
  color: var(--moflin-gray-color);
  font-size: min(4vw, 20px);
  border-top: 2px solid #ddd;
}
#faq .btn {
  text-align: center;
  margin-top: 50px;
}
/*----------------------- owners-voice -----------------------*/
#owners-voice_inner {
  width: 90%;
  max-width: 1200px;
  margin: 100px auto;
  background-image: url(/content/dam/casio/global/moflin/review/img/bg-nikoniko.jpg), url(/content/dam/casio/global/moflin/review/img/bg-yorokobi.jpg), url(/content/dam/casio/global/moflin/review/img/bg-jamp.jpg);
  background-repeat: no-repeat;
  background-position: top 10% right 0, top 50% left 0, bottom 0 right 0;
  background-size: 20%;
}
.owners-voice_title {
  display: flex;
  align-items: flex-end;
  line-height: 1.0;
}
#owners-voice .owners-voice_title h3 {
  margin: 0 10px 0 0;
  line-height: 1;
}
.owners-voice_title p {
  line-height: 1;
}
.voice-grp {
  margin-top: 50px;
  text-align: center;
}
.voice-grp__left {
  display: flex;
  justify-content: flex-start;
}
.voice-grp__right {
  display: flex;
  justify-content: flex-end;
}
#owners-voice .voices {
  position: relative;
  text-align: center;
  max-width: 400px;
  border: solid 3px var(--moflin-theme-color);
  border-radius: 50%;
  margin: 30px;
  padding: 30px 60px;
  height: fit-content;
}
#owners-voice .voices::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  border-style: solid;
  border-width: 20px 20px 0 0;
  border-color: var(--moflin-theme-color) transparent transparent;
  translate: -50% 100%;
  transform: skew(-25deg);
  transform-origin: top;
}
#owners-voice .voices::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  border-style: solid;
  border-width: 15.2px 15.2px 0 0;
  border-color: #ffffff transparent transparent;
  translate: calc(-50% - 0.4px) 100%;
  transform: skew(-25deg);
  transform-origin: top;
}
#owners-voice .voices:nth-child(1)::before {
  bottom: 0;
  left: 50%;
  border-width: 20px 0 0 20px;
  translate: -50% 100%;
  transform: skew(7deg);
}
#owners-voice .voices:nth-child(1)::after {
  bottom: 0;
  left: 50%;
  border-width: 15.2px 0 0 15.2px;
  translate: calc(-50% + 0.4px) 100%;
  transform: skew(7deg);
}
.voices h4 {
  color: var(--moflin-theme-color);
  font-size: min(5vw, 22px);
  display: inline;
  padding: 0 20px;
  position: relative;
}
.voices h4::before, .voices h4::after {
  content: "";
  position: absolute;
  top: 50%;
  display: inline-block;
  width: 2px;
  height: 1em;
  background: var(--moflin-theme-color);
}
.voices h4::before {
  transform: rotate(335deg) translateY(-50%);
  left: -1em;
}
.voices h4::after {
  transform: rotate(25deg) translateY(-50%);
  right: -1em;
}
/*footer*/
.l-footer {
  margin-top: 100px;
}
/*----------------------- pdp -----------------------*/
#moflin #pdp .voice-grp__left, #moflin #pdp .voice-grp__right {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 60px;
}
#moflin #pdp #owners-voice_inner {
  width: 100%;
  background-position: top 37% right 0, top 65% left 0, bottom 0 right 48%;
  background-size: 12%;
}
#moflin #pdp #owners-voice .voices {
  margin: 0;
  padding: 30px;
}
@media (max-width: 767px) {
  /*moflin-goods*/
  #moflin-goods li.cmp-product_panel_list__item {
    width: 40vw;
  }
}