@charset "utf-8";
/* PC
======================================== */
@media (min-width: 641px) {
  html {
    font-size: 16px !important;
    color: #232323;
  }
  #sec01 h2 {
    font-size: 64px;
    font-weight: 900;
    line-height: 1.2 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #sec01 h3 {
    font-size: 24px;
    font-weight: 700;
    margin-top: 25px;
    padding: 0 !important;
    line-height: 1.75 !important;
  }
  /* sec02（sec03と同じフェード＋ズーム） */
  #sec02 {
    width: 100%;
    aspect-ratio: 100 / 109 !important;
    background-color: #000000;
    position: relative;
    overflow: hidden;
  }
  #sec02::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(/content/dam/casio/global/dimensionshifter/images/img02-2-min.png);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    opacity: 0;
    transform: scale(1.05);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
    pointer-events: none;
  }
  #sec02.is-visible::before {
    opacity: 1;
    transform: scale(1);
  }
  #sec02 #sec-btn-detail {
    width: 100%;
    position: relative;
  }
  #sec02 #btn-detail {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 160px;
    text-align: center;
    color: #ffffff;
    font-size: 1.125;
    font-weight: 600;
    line-height: 0;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    border-radius: 8px;
    border: 1px solid #FFFFFF;
  }
  #sec02 #sec-btn-detail a:link {
    color: #ffffff !important;
    text-decoration: none !important;
  }
  #sec02 #sec-btn-detail a:visited {
    color: #ffffff !important;
    text-decoration: none !important;
  }
  #sec-sec02-copy {
    width: 100%;
    aspect-ratio: 100 / 109 !important;
    position: relative;
  }
  #sec02-copy {
    width: 100% !important;
    position: absolute;
    left: 0;
    bottom: 0;
  }
  #sec02-copy h2 {
    font-size: 3.75rem;
    font-weight: 900;
    margin: 0 !important;
    padding: 0 !important;
  }
  #sec02-copy p {
    width: 100%;
    font-size: 1.125rem;
    line-height: 1.5;
    font-weight: 700;
  }
  /*************** sec03 ***************/
  #sec03 {
    width: 100%;
    aspect-ratio: 100 / 117.7 !important;
    background-color: #000000;
    position: relative;
    overflow: hidden;
  }
  #sec03::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(/content/dam/casio/global/dimensionshifter/images/img03-min.png);
    background-repeat: no-repeat;
    background-position: right top;
    background-size: cover;
    opacity: 0;
    transform: scale(1.05);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
  }
  #sec03.is-visible::before {
    opacity: 1;
    transform: scale(1);
  }
  #sec-sec03-copy {
    width: 100% !important;
    aspect-ratio: 100 / 117.7 !important;
    position: relative;
  }
  #sec03-copy {
    width: 100% !important;
    position: absolute;
    bottom: 6%;
  }
  #sec03-copy h2 {
    font-size: 3.75rem;
    color: #ffffff;
    font-weight: 900;
    margin: 0 !important;
    padding: 0 !important;
    text-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
  }
  #sec03-copy p {
    width: 100%;
    font-size: 1.375rem;
    color: #ffffff;
    line-height: 1.5;
    font-weight: 700;
    text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3);
  }
  /*************** sec05 ***************/
  #sec05 {
    width: 100%;
    aspect-ratio: 100 / 84 !important;
    background-color: #000000;
    position: relative;
    overflow: hidden;
  }
  #sec05::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(/content/dam/casio/global/dimensionshifter/images/img05-min.png);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    opacity: 0;
    transform: scale(1.05);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
  }
  #sec05.is-visible::before {
    opacity: 1;
    transform: scale(1);
  }
  #sec05-copy {
    width: 100%;
    position: absolute;
    bottom: 4%;
    left: 0;
  }
  #sec05-copy h2 {
    font-size: 3.75rem;
    font-weight: 900;
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
  }
  #sec05-copy p {
    width: 100%;
    font-size: 1.375rem;
    line-height: 1.5;
    font-weight: 700;
  }
  #sec07 {
    padding-top: 4rem;
    padding-bottom: 8rem;
    background-color: #121212;
  }
  #sec07 h2 {
    font-size: 2.5rem !important;
    line-height: 1.4;
    margin-bottom: 1rem !important;
  }
  #sec07 h3 {
    font-size: 2.25rem;
    line-height: 0.7 !important;
    margin-bottom: 0 !important;
    margin-bottom: 3rem !important;
  }
  #sec07 h4 {
    font-size: 1.5rem;
    line-height: 1.5;
  }
  #sec07 .cmp-button--white .cmp-button {
    background-color: #06d0d3 !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    border-style: none !important;
    border-radius: 4px;
    margin-top: 4rem;
    margin-bottom: 2rem;
  }
  #sec07 .cmp-button[target=_blank] .cmp-button__text:after {
    display: none !important;
  }
  #sec07 #js-fade-down101 {
    display: none;
  }
  #sec-spec-txt p i {
    font-size: 0.75rem;
    font-style: normal !important;
  }
  #sec-expression {
    padding-top: 70px;
    padding-bottom: 60px;
  }
  #sec-store-list {
    margin-bottom: 5rem;
  }
  #store-list-litle h2 {
    font-size: 2rem !important;
    line-height: 1.4;
  }
  #store-list-litle h4 {
    font-size: 1.5rem;
    line-height: 1.5;
  }
  #store-list-litle p {
    font-size: 1.125rem !important;
    line-height: 1.6;
  }
}
/* =========================
   Expression Slider (PC)
   ========================= */
@media (min-width: 641px) {
  .sec-expression {
    width: 100%;
    position: relative;
    overflow: hidden;
    padding-top: 70px;
    padding-bottom: 60px;
    touch-action: pan-y;
  }
  .expression-track {
    display: flex;
    gap: 2rem;
    transition: transform 0.6s ease;
    will-change: transform;
  }
  /* --- Expression box --- */
  .expression-box {
    position: relative;
    flex: 0 0 73%;
    aspect-ratio: 1048 / 500;
    background-image: url("/content/dam/casio/global/dimensionshifter/images/expression/expression_base.png");
    background-size: cover;
    background-position: center;
    overflow: hidden;
    cursor: default;
  }
  .expression-inner {
    position: absolute;
    inset: 0;
  }
  /* --- Images --- */
  .expression-img {
    position: absolute;
    height: auto;
    max-width: none;
  }
  .expression-img-ph {
    left: 6.68%; /* 70 / 1048 */
    top: 19.23%; /* 100 / 520 */
    width: 23.09%; /* 242 / 1048 */
  }
  .expression-img-mov {
    left: 41.32%; /* 433 / 1048 */
    top: 19.23%; /* 100 / 520 */
    width: 52.10%; /* 546 / 1048 */
  }
  /* --- Text --- */
  .expression-title, .expression-subtitle {
    position: absolute;
    margin: 0;
    font-family: "DIN-2014", sans-serif;
    font-weight: 700;
    color: #333333;
    white-space: nowrap;
  }
  .expression-title {
    left: 6.68%;
    top: 73.08%;
    font-size: clamp(20px, 3.25vw, 36px);
  }
  .expression-subtitle {
    left: 6.68%;
    top: 82.62%;
    font-size: clamp(14px, 2.3vw, 28px);
  }
  /* --- Navigation --- */
  .expression-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 50px;
  }
  .expression-arrow {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
  }
  .expression-arrow img {
    width: 40px;
    height: auto;
  }
  .expression-dots {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 60px;
  }
  .expression-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #d0d0d0;
    border: 1px solid #d0d0d0;
    cursor: pointer;
  }
  .expression-dot.is-active {
    background-color: #06d0d3;
    border-color: #06d0d3;
  }
  /* --- modal window --- */
  .expression-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99999;
  }
  .expression-modal.is-open {
    display: block;
  }
  .expression-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
  }
  .expression-modal-content {
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    width: min(80vw, 960px);
    background: #000;
  }
  .expression-modal-close {
    position: absolute;
    top: 8px;
    right: 12px;
    z-index: 10001;
    font-size: 2rem;
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
  }
  .expression-modal-body {
    position: relative;
    padding-top: 56.25%;
  }
  .expression-modal-body iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }
}
#expression-title h2 {
  font-size: 2rem !important;
  font-weight: 700 !important;
}
#expression-title h4 {
  font-size: 1.5rem;
  line-height: 1.4;
}
/* ===== Features ===== */
#sec-features {
  background-color: #EFEFEF;
  padding: 5rem 0;
}
#sec-features h3 {
  font-size: 1.5rem;
  line-height: 1.5 !important;
  font-style: normal;
}
#sec-features h2 {
  font-size: 3.5rem;
  line-height: 1.3 !important;
  font-weight: 900;
}
#sec-features h4 {
  font-size: 1.5rem;
  line-height: 1.5 !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
#features01 {
  margin-bottom: 60px;
}
#features01-text {
  padding: 0 3rem;
}
#features01 #features01-text h3 {
  font-size: 1.75rem;
  line-height: 1.5 !important;
  font-weight: 700;
}
#features01 #features01-text h4 {
  font-size: 1.5rem;
  margin-top: 2rem;
}
#features01 #features01-text p {
  font-size: 1.25rem;
  line-height: 1.6;
}
#features01 #features01-text p i {
  font-size: 0.75rem;
  font-style: normal !important;
}
#features02 {
  margin-bottom: 60px;
}
#features02-text {
  padding: 0 3rem;
}
#features02 #features02-text h3 {
  font-size: 1.75rem;
  line-height: 1.5 !important;
  font-weight: 700;
}
#features02 #features02-text h4 {
  font-size: 1.5rem;
  margin-top: 2rem;
}
#features02 #features02-text p {
  font-size: 1.25rem;
  line-height: 1.6;
}
#features02 #features02-text p i {
  font-size: 0.75rem;
  font-style: normal !important;
}
#features02 #features02-text p u {
  font-size: 0.875rem !important;
  text-decoration: none !important;
}
#features03 {
  margin-bottom: 60px;
}
#features03-text {
  padding-left: 3rem;
  padding-right: 3rem;
}
#features03 #features03-text h3 {
  font-size: 1.75rem;
  line-height: 1.5 !important;
  font-weight: 700;
}
#features03 #features03-text h4 {
  font-size: 1.5rem;
  margin-top: 2rem;
}
#features03 #features03-text p {
  font-size: 1.25rem;
  line-height: 1.6;
}
#features03 #features03-text p i {
  font-size: 0.75rem;
  font-style: normal !important;
}
/* ===== Connection ===== */
#sec-connection {
  background-color: #121212;
  padding-top: 140px;
  padding-bottom: 160px;
}
#sec-connection h2 {
  font-size: 3rem;
  line-height: 0;
  font-weight: 900;
  margin-bottom: 0.5rem;
}
#sec-connection h3 {
  font-size: 1.5rem;
  line-height: 1.4;
  font-weight: 700;
  margin-bottom: 2rem;
}
#sec-connection-list ol {
  margin: 1rem !important;
  padding: 0 !important;
  list-style-position: inside !important;
}
#sec-connection-list li {
  font-size: 1.125rem;
  line-height: 1.6;
  font-weight: 500;
  list-style-position: inside !important;
}
#sec-connection-list p {
  font-size: 0.75rem !important;
  line-height: 1.5 !important;
}
/* ===== Tutorial & Interview ===== */
#sec-movie-column {
  padding-top: 120px;
}
#sec-tutorial-mov {
  margin-right: 2rem;
  margin-bottom: 3rem;
}
#sec-interview-mov {
  margin-left: 2rem;
  margin-bottom: 3rem;
}
#sec-tutorial-mov h3, #sec-interview-mov h3 {
  font-size: 2rem;
  font-weight: 700;
}
#sec-tutorial-mov h4, #sec-interview-mov h4 {
  font-size: 1.5rem;
  line-height: 1.5;
  font-weight: 700;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important
}
#sec-tutorial-mov p, #sec-interview-mov p {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.6;
}
/* ===== Tonebook ===== */
#sec-tonebook {
  padding-top: 3rem;
  padding-bottom: 6rem;
}
#tonebook-banner {
  margin-top: 1rem;
}
#tonebook-text h2 {
  font-size: 2rem !important;
  line-height: 1;
  font-weight: 700;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
#tonebook-text p {
  font-size: 1.125rem;
  line-height: 1.6;
}
#sec-btn-buy-bottom .cmp-button--white .cmp-button {
  background-color: #06d0d3 !important;
  color: #ffffff !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  padding-left: 3rem !important;
  padding-right: 3rem !important;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  border-style: none !important;
  border-radius: 4px;
  margin-top: 3rem;
  margin-bottom: 4rem;
}
/* ===== Footer===== */
#sec-footer {
  background-color: #007982;
  padding-top: 4rem;
  padding-bottom: 4rem;
}
/* モーダルを最前面に */
#video-modal {
  position: fixed;
  inset: 0;
  z-index: 999999; /* ヘッダーより必ず上 */
}
.modal__close {
  font-size: 2rem;
  cursor: pointer;
}
/* SP
======================================== */
@media (max-width: 640px) {
  html {
    font-size: 16px !important;
    color: #232323;
  }
  #sec01 h2 {
    font-size: 2rem !important;
    font-weight: 700;
    margin: 0 !important;
    padding: 0 !important;
  }
  #sec01 h3 {
    font-size: 1rem !important;
    font-weight: 700;
    margin-top: 0.5rem;
    padding: 0 !important;
    line-height: 1.75 !important;
  }
  /*#sec02 {
    background-image: url(/content/dam/casio/global/dimensionshifter/images/img02sp-min.png);
    background-repeat: no-repeat;
    width: 100%;
    aspect-ratio: 100 / 166.66 !important;
    background-color: #000000;
    background-position: center top;
    background-size: cover !important;
  }*/
  @media (max-width: 640px) {
    /* sec02（sec03と同じフェード＋ズーム） */
    #sec02 {
      width: 100%;
      aspect-ratio: 100 / 166.66 !important;
      background-color: #000000;
      position: relative;
      overflow: hidden;
    }
    #sec02::before {
      content: "";
      position: absolute;
      inset: 0;
      background-image: url(/content/dam/casio/global/dimensionshifter/images/img02sp-2-min.png);
      background-repeat: no-repeat;
      background-position: center top;
      background-size: cover;
      opacity: 0;
      transform: scale(1.05);
      transition: opacity 1.2s ease-out, transform 1.2s ease-out;
      pointer-events: none;
    }
    #sec02.is-visible::before {
      opacity: 1;
      transform: scale(1);
    }
  }
  #sec02 #sec-btn-detail {
    width: 100%;
    position: relative;
  }
  #sec02 #btn-detail {
    position: absolute;
    top: 0 !important;
    left: 50%;
    transform: translateX(-50%);
    width: 160px;
    text-align: center;
    color: #ffffff;
    font-size: 1.125;
    font-weight: 600;
    line-height: 0;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    border-radius: 8px;
    border: 1px solid #FFFFFF;
  }
  #sec02 #sec-btn-detail a:link {
    color: #ffffff !important;
    text-decoration: none !important;
  }
  #sec02 #sec-btn-detail a:visited {
    color: #ffffff !important;
    text-decoration: none !important;
  }
  #sec-sec02-copy {
    width: 100%;
    aspect-ratio: 100 / 166.66 !important;
    position: relative;
  }
  #sec02-copy {
    width: 100% !important;
    position: absolute;
    left: 0;
    bottom: 1rem;
  }
  #sec02-copy h2 {
    font-size: 2rem !important;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 1rem !important;
    padding: 0 !important;
  }
  #sec02-copy p {
    width: 100%;
    font-size: 0.875rem !important;
    font-weight: 700;
    line-height: 1.6;
  }
  #sec03 {
    width: 100%;
    aspect-ratio: 100 / 173 !important;
    background-color: #000000;
    position: relative;
    overflow: hidden;
  }
  #sec03::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(/content/dam/casio/global/dimensionshifter/images/img03sp-min.png);
    background-repeat: no-repeat;
    background-position: right top;
    background-size: cover;
    opacity: 0;
    transform: scale(1.05);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
  }
  #sec03.is-visible::before {
    opacity: 1;
    transform: scale(1);
  }
  #sec-sec03-copy {
    width: 100% !important;
    aspect-ratio: 100 / 173 !important;
    position: relative;
  }
  #sec03-copy {
    width: 100% !important;
    position: absolute;
    bottom: 6%;
  }
  #sec03-copy h2 {
    font-size: 2rem;
    color: #ffffff;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 1rem !important;
    padding: 0 !important;
    text-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
  }
  #sec03-copy p {
    width: 100%;
    font-size: 0.875rem;
    color: #ffffff;
    line-height: 1.5;
    font-weight: 700;
    text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3);
  }
  #sec05 {
    width: 100%;
    aspect-ratio: 100 / 135.3 !important;
    background-color: #000000;
    position: relative;
    overflow: hidden;
  }
  #sec05::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(/content/dam/casio/global/dimensionshifter/images/img05sp-min.png);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    opacity: 0;
    transform: scale(1.05);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
  }
  #sec05.is-visible::before {
    opacity: 1;
    transform: scale(1);
  }
  #sec05-copy {
    position: absolute;
    bottom: 6%;
  }
  #sec05-copy h2 {
    font-size: 2rem;
    font-weight: 700;
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
  }
  #sec05-copy p {
    width: 100%;
    font-size: 0.875rem;
    line-height: 1.5;
    font-weight: 700;
  }
  #sec07 {
    padding-top: 4rem;
    padding-bottom: 4rem;
    background-color: #121212;
  }
  #sec07 h2 {
    font-size: 2rem;
    line-height: 1.4;
  }
  #sec07 h3 {
    font-size: 1.75rem;
    line-height: 0.7 !important;
    margin-bottom: 2rem !important;
  }
  #sec07 h4 {
    font-size: 1.125rem;
    line-height: 1.5;
    margin-top: 2rem !important;
  }
  #sec07 #product-name h3 {
    font-size: 1.75rem;
    line-height: 0.7 !important;
    margin-bottom: 2rem !important;
    text-align: center !important;
  }
  #sec07 #product-name h4 {
    font-size: 1.125rem;
    line-height: 1.5;
    text-align: center !important;
    margin-top: 2rem !important;
  }
  #sec07 .cmp-button--white .cmp-button {
    background-color: #06d0d3 !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    border-style: none !important;
    border-radius: 4px;
    margin-top: 4rem;
    margin-bottom: 2rem;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
  }
  #sec07 .cmp-button[target=_blank] .cmp-button__text:after {
    display: none !important;
  }
  #sec07 #js-fade-down10 {
    display: none;
  }
  #sec-spec-txt p i {
    font-size: 0.75rem;
    font-style: normal !important;
  }
  /* ===== Expression skider ===== */
  /* carousel */
  .sec-expression {
    width: 100%;
    position: relative;
    overflow: hidden;
    padding-bottom: 2rem;
    touch-action: pan-y; /* 縦スクロールは許可しつつ、横スワイプを取りやすくする */
  }
  .expression-track {
    display: flex;
    gap: 2rem;
    transition: transform 0.6s ease;
  }
  /* carousel box */
  .expression-box {
    position: relative;
    flex: 0 0 90%;
    margin-top: 0;
    margin-left: 5%;
    margin-bottom: 0;
    aspect-ratio: 1 / 1.824;
    background-size: cover;
    background-position: center;
    cursor: pointer;
  }
  .expression-box::before {
    content: "";
    display: block;
    padding-top: 50%;
  }
  /* title text 
  .expression-text {
    position: absolute;
    left: 70px;
    bottom: 0;
  }*/
  .expression-text h3 {
    font-size: 2rem !important;
    color: #fff;
    font-family: "sans-serif";
    position: absolute;
    bottom: 46% !important;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    /*text-shadow: 0 0 10px rgba(0, 0, 0, 0.6);*/
  }
  .expression-text h4 {
    font-size: 1.25rem;
    color: #fff;
    font-family: "sans-serif";
    position: absolute;
    bottom: calc(46% - 2.5rem) !important;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    /*text-shadow: 0 0 10px rgba(0, 0, 0, 0.6);*/
  }
  .expression-box {
    flex-basis: 90%;
  }
  .expression-arrow img {
    width: 30px;
  }
  /* background images */
  .expression01 {
    background-image: url("/content/dam/casio/global/dimensionshifter/images/img-expression01sp-min.png");
  }
  .expression02 {
    background-image: url("/content/dam/casio/global/dimensionshifter/images/img-expression02sp-min.png");
  }
  .expression03 {
    background-image: url("/content/dam/casio/global/dimensionshifter/images/img-expression03sp-min.png");
  }
  /* navigation */
  .expression-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 35px;
    gap: 0;
  }
  .expression-nav .expression-prev {
    order: 1;
  }
  .expression-nav .expression-dots {
    order: 2;
  }
  .expression-nav .expression-next {
    order: 3;
  }
  .expression-arrow {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
  }
  .expression-arrow img {
    width: 40px;
    height: auto;
  }
  /* page dots */
  .expression-dots {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 40px;
  }
  .expression-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid #D0D0D0;
    background-color: #D0D0D0;
    cursor: pointer;
  }
  .expression-dot.is-active {
    border-color: #06D0D3;
    background-color: #06D0D3;
  }
  /* modal window */
  .expression-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1000000;
  }
  .expression-modal.is-open {
    display: block;
  }
  .expression-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
  }
  .expression-modal-content {
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    width: min(80vw, 960px);
    background: #000;
  }
  .expression-modal-close {
    position: absolute;
    top: 8px;
    right: 12px;
    font-size: 2rem;
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
  }
  .expression-modal-body {
    position: relative;
    padding-top: 56.25%;
  }
  .expression-modal-body iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }
  #expression-title h2 {
    font-size: 1.75rem !important;
    font-weight: 700 !important;
  }
  #expression-title h4 {
    font-size: 1.125rem;
    line-height: 1.5;
  }
  /* ===== Store List ===== */
  #sec-store-list {
    margin-bottom: 3rem;
  }
  #store-list-litle h2 {
    font-size: 1.875rem !important;
    line-height: 1.3;
  }
  #store-list-litle h4 {
    font-size: 1.25rem;
    line-height: 1.5;
  }
  #store-list-litle p {
    font-size: 1rem !important;
    line-height: 1.6;
  }
  /* ===== Features ===== */
  #sec-features {
    background-color: #EFEFEF;
    padding: 4rem 0;
  }
  #sec-features h3 {
    font-size: 1.25rem;
    line-height: 1.5 !important;
    font-style: normal;
    margin-bottom: 0 !important;
  }
  #sec-features h2 {
    font-size: 2rem;
    line-height: 1.3 !important;
    font-weight: 700;
  }
  #sec-features h4 {
    font-size: 1.25rem;
    line-height: 1 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
  #features01 {
    margin-bottom: 0px;
  }
  #features01-text {
    padding: 0 !important;
  }
  #features01 #features01-text h3 {
    font-size: 1.25rem;
    line-height: 1.5 !important;
    font-weight: 700;
  }
  #features01 #features01-text h4 {
    font-size: 1.125rem;
    margin-top: 2rem;
  }
  #features01 #features01-text p {
    font-size: 1rem;
    line-height: 1.6;
  }
  #features01 #features01-text p i {
    font-size: 0.75rem;
    font-style: normal !important;
  }
  #features02 {
    margin-bottom: 0px;
  }
  #features02-text {
    padding: 0 !important;
  }
  #features02 #features02-text h3 {
    font-size: 1.25rem;
    line-height: 1.5 !important;
    font-weight: 700;
  }
  #features02 #features02-text h4 {
    font-size: 1.125rem;
    margin-top: 2rem;
  }
  #features02 #features02-text p {
    font-size: 1rem;
    line-height: 1.6;
  }
  #features02 #features02-text p i {
    font-size: 0.75rem;
    font-style: normal !important;
  }
  #features02 #features02-text p u {
    font-size: 0.75rem !important;
    text-decoration: none !important;
  }
  #features03 {
    margin-bottom: 0px;
  }
  #features03-text {
    padding: 0 !important;
  }
  #features03 #features03-text h3 {
    font-size: 1.25rem;
    line-height: 1.5 !important;
    font-weight: 700;
  }
  #features03 #features03-text h4 {
    font-size: 1.125rem;
    margin-top: 2rem;
  }
  #features03 #features03-text p {
    font-size: 1rem;
    line-height: 1.6;
  }
  #features03 #features03-text p i {
    font-size: 0.75rem;
    font-style: normal !important;
  }
  /* ===== Connection ===== */
  #sec-connection {
    background-color: #121212;
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }
  #sec-connection h2 {
    font-size: 2.125rem;
    line-height: 1.5 !important;
    font-weight: 700;
    margin-bottom: 0;
  }
  #sec-connection h3 {
    font-size: 1.25rem;
    line-height: 1.4;
    font-weight: 700;
    margin-bottom: 2rem;
  }
  #sec-connection-list ol {
    margin: 0 !important;
    padding: 0 !important;
    list-style-position: inside !important;
  }
  #sec-connection-list li {
    font-size: 0.875rem;
    line-height: 1.5;
    font-weight: 500;
    margin: 1rem !important;
    padding: 0 !important;
    list-style-position: inside !important;
  }
  #sec-connection-list p {
    font-size: 0.75rem !important;
    line-height: 1.5 !important;
  }
  /* ===== Tutorial & Interview ===== */
  #sec-movie-column {
    padding-top: 120px;
  }
  #sec-tutorial-mov {
    margin-right: 0;
    margin-bottom: 3rem;
  }
  #sec-interview-mov {
    margin-left: 0;
    margin-bottom: 3rem;
  }
  #sec-tutorial-mov h3, #sec-interview-mov h3 {
    font-size: 1.5rem;
    font-weight: 700;
  }
  #sec-tutorial-mov h4, #sec-interview-mov h4 {
    font-size: 1.125rem;
    line-height: 1.5;
    font-weight: 700;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important
  }
  #sec-tutorial-mov p, #sec-interview-mov p {
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.6;
  }
  /* ===== Tonebook ===== */
  #sec-tonebook {
    padding-bottom: 6rem;
  }
  #tonebook-banner {
    margin-top: 1rem;
  }
  #tonebook-text h2 {
    font-size: 1.5rem !important;
    line-height: 1.3;
    font-weight: 700;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  #tonebook-text p {
    font-size: 0.875rem;
    line-height: 1.6;
  }
  #sec-btn-buy-bottom .cmp-button--white .cmp-button {
    background-color: #06d0d3 !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    padding-left: 2rem !important;
    padding-right: 2rem !important;
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
    border-style: none !important;
    border-radius: 4px;
    margin-top: 2rem;
    margin-bottom: 2rem;
  }
  /* ===== Footer===== */
  #sec-footer {
    background-color: #007982;
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}
/* ===== Modal window ===== */
/* Make the thumbnail responsive */ /* Make the thumbnail responsive */
/* Thumbnail image */
.video-thumb img {
  max-width: 100% !important;
  height: auto;
  display: block;
  cursor: pointer;
}
/* Modal base */
.modal {
  position: fixed;
  inset: 0;
  display: flex; /* Always in layout */
  align-items: center;
  justify-content: center;
  z-index: 9999;
  /* Hidden state */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  /* Fade-in / fade-out animation */
  transition: opacity 0.35s ease, visibility 0.35s ease;
}
/* Visible state (when JS adds .is-open) */
.modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
/* Background overlay */
.modal__overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  padding: 0;
  margin: 0;
  background: rgba(0, 0, 0, 0.6);
  cursor: pointer;
}
/* Modal inner container */
.modal__content {
  position: relative;
  max-height: 90vh;
  width: min(90vw, calc((90vh - 80px) * 16 / 9));
  background: #000;
  border-radius: 8px;
  padding: 16px 16px 24px;
  box-sizing: border-box;
  z-index: 1;
  overflow: hidden;
}
/* Header area */
.modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 12px;
}
.modal__title {
  margin: 0;
  font-size: 1rem;
  color: #fff;
}
/* Close button */
.modal__close {
  border: none;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: #fff;
}
/* Body */
.modal__body {
  display: flex;
  align-items: center;
  justify-content: center;
}
/* 16:9 video wrapper */
.modal__video-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: calc(90vh - 80px);
}
@supports not (aspect-ratio: 16 / 9) {
  .modal__video-wrapper {
    width: 100%;
    padding-top: 56.25%;
  }
}
.modal__video-wrapper iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: contain;
}
/* ---- Animations ---- */
@keyframes overlayFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes modalZoomIn {
  0% {
    opacity: 0;
    transform: scale(0.85);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
/* =========================
   Expression Slider (SP)
   ========================= */
@media (max-width: 640px) {
  .sec-expression {
    width: 100%;
    position: relative;
    overflow: hidden;
    padding-top: 40px;
    padding-bottom: 40px;
    touch-action: pan-y;
  }
  .expression-track {
    display: flex;
    gap: 1.5rem;
    transition: transform 0.6s ease;
  }
  .expression-box {
    position: relative;
    flex: 0 0 90%;
    margin-left: 5%;
    aspect-ratio: 100 / 137;
    background-image: url("/content/dam/casio/global/dimensionshifter/images/expression_base_sp.png");
    background-size: cover;
    background-position: center;
    overflow: hidden;
  }
  .expression-inner {
    position: absolute;
    inset: 0;
  }
  .expression-img {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    height: auto;
    max-width: none;
  }
  .expression-img-ph {
    width: 45%;
    top: 7%;
  }
  .expression-img-mov {
    width: 78%;
    bottom: 7%;
    top: auto;
    cursor: pointer;
  }
  .expression-title, .expression-subtitle {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    font-family: "DIN-2014", sans-serif;
    font-weight: 600;
    color: #333333;
    text-align: center;
    white-space: nowrap;
  }
  .expression-title {
    top: 43%;
    font-size: 22px;
  }
  .expression-subtitle {
    top: calc(43% + 1.5rem);
    font-size: 16px;
  }
  .expression-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 35px;
  }
  .expression-arrow img {
    width: 30px;
  }
  .expression-dots {
    display: flex;
    gap: 0.75rem;
    margin: 0 40px;
  }
  .expression-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #D0D0D0;
    border: 1px solid #D0D0D0;
  }
  .expression-dot.is-active {
    background-color: #06D0D3;
    border-color: #06D0D3;
  }
}
/* 動画モーダルを開く画像はリンクカーソルにする */
.expression-img-mov.js-open-movie {
  cursor: pointer;
}
/* =================================================
   Modal close button FINAL (Expression / sec06-mov)
   ================================================= */
/* 共通：モーダルは画面中央 */
.expression-modal-content, .js-video-modal .modal__content {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(80vw, 960px);
}
/* 共通：× は動画の左上・外側 */
.expression-modal-close, .js-video-modal .modal__close {
  position: absolute;
  top: -48px;
  left: 0;
  z-index: 100000;
  font-size: 3rem;
  line-height: 1;
  padding: 8px 12px;
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
}
/* SP：はみ出し防止 */
@media (max-width: 640px) {
  .expression-modal-content, .js-video-modal .modal__content {
    margin-top: 48px;
  }
}
/* =================================================
   Modal FIX — FINAL & SAFE
   ================================================= */
/* ===== Expression modal ===== */
.expression-modal-content {
  position: absolute !important;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) !important;
}
.expression-modal-close {
  position: absolute !important;
  top: -48px !important;
  left: 0 !important;
  right: auto !important;
  transform: none !important;
  z-index: 1000000;
}
/* ===== #sec06-mov modal ===== */
.modal.is-open {
  align-items: center !important;
  justify-content: center !important;
}
.modal.is-open .modal__content {
  position: absolute !important;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) !important;
  width: min(80vw, 960px) !important;
  overflow: visible !important;
}
.modal.is-open .modal__close {
  position: absolute !important;
  top: -48px !important;
  left: 0 !important;
  right: auto !important;
  transform: none !important;
  z-index: 1000000;
}
/* ===== SP safety ===== */
@media (max-width: 640px) {
  .expression-modal-content, .modal.is-open .modal__content {
    margin-top: 48px;
  }
}
/* =================================================
   FINAL FIX — sec06-mov flicker kill
   ================================================= */
.modal:not(.is-open) {
  display: none;
}
.modal.is-open {
  display: flex;
  align-items: center;
  justify-content: center;
}
/* =================================================
   sec06-mov modal title hide (keep close button)
   ================================================= */
.js-video-modal .modal__title {
  display: none !important;
}
/* =================================================
   FORCE modal above header (break stacking context)
   ================================================= */
/* main の stacking context を無効化 */
main {
  z-index: auto !important;
}
/* Expression modal は viewport 直下扱いにする */
.expression-modal {
  position: fixed !important;
  inset: 0;
  z-index: 10000000 !important;
}
/* =========================================
   Page Local Menu wrapper
   ========================================= */
.page-local-menu-wrapper {
  position: sticky;
  top: 0;
  z-index: 1;
}
/* =========================================
   Expression: disable tap highlight (SP UX)
   ========================================= */

.expression-box {
  -webkit-tap-highlight-color: transparent;
  tap-highlight-color: transparent;
  cursor: default;
  user-select: none;
}