@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 (Fade + Zoom, same as 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;
    line-height: 1.2 !important;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    margin-bottom: 2rem;
    padding: 0 !important;
  }
  #sec02-copy p {
    width: 100%;
    font-size: 1.375rem;
    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 p {
    font-size: 1.125rem !important;
    line-height: 1.6 !important;
  }
  #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-expression {
    padding-top: 70px;
    padding-bottom: 60px;
  }
}
/* =========================
   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: 9999;
  }
  .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: 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: 100px;
  padding-bottom: 80px;
}
#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;
}
/* ===== Footer===== */
#sec-footer {
  background-color: #007982;
  padding-top: 4rem;
  padding-bottom: 4rem;
}
/* SP (Smartphone/Mobile)
======================================== */
@media (max-width: 640px) {
  html {
    font-size: 16px !important;
    color: #232323;
  }
  #sec01 h2 {
    font-size: 2.5rem !important;
    font-weight: 700;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.3 !important;
    margin-bottom: 1rem !important;
  }
  #sec01 h3 {
    font-size: 1rem !important;
    font-weight: 700;
    margin-top: 0.5rem;
    padding: 0 !important;
    line-height: 1.75 !important;
  }
  @media (max-width: 640px) {
    /* sec02 (Fade + Zoom, same as 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: 2.5rem !important;
    font-weight: 700;
    line-height: 1.3 !important;
    margin-bottom: 1rem !important;
    padding: 0 !important;
  }
  #sec02-copy p {
    width: 100%;
    font-size: 1.125rem !important;
    font-weight: 700;
    line-height: 1.6;
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }
  #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: 2.5rem;
    color: #ffffff;
    font-weight: 700;
    line-height: 1.2;
    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: 1.125rem;
    color: #ffffff;
    line-height: 1.6;
    font-weight: 700;
    text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3);
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }
  #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: 2%;
  }
  #sec05-copy h2 {
    font-size: 2.5rem !important;
    font-weight: 700;
    line-height: 1.2 !important;
    margin-bottom: 1rem !important;
    margin-top: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    width: 100%;
  }
  #sec05-copy p {
    width: 100%;
    font-size: 1.125rem;
    line-height: 1.6;
    font-weight: 700;
    padding-left: 2rem;
    padding-right: 2rem;
  }
  #sec07 {
    padding-top: 2rem;
    padding-bottom: 2rem;
    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.25rem;
    line-height: 1.5;
    margin-top: 2rem !important;
  }
  #sec07 p {
    font-size: 1rem;
    line-height: 1.6;
  }
  #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;
  }
  /* ===== 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%;
  }
  .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;
  }
  .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;
  }
  .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: 9999;
  }
  .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: 1.125rem !important;
    line-height: 1.5;
    font-weight: 500;
    margin: 1rem !important;
    padding: 0 !important;
    list-style-position: inside !important;
  }
  #sec-connection-list p {
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }
  /* ===== Tutorial & Interview ===== */
  #sec-movie-column {
    padding-top: 4rem;
  }
  #sec-tutorial-mov {
    margin-right: 0 !important;
    margin-bottom: 3rem;
  }
  #sec-interview-mov {
    margin-left: 0 !important;
    margin-bottom: 4rem;
  }
  #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: 1rem;
    font-weight: 500;
    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);
  }
}
@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;
  }

  .expression-dot.is-active {
    background-color: #06D0D3;
  }
}

/* =========================================
   Expression modal close button (EN sync)
   ========================================= */

.expression-modal-close {
  top: -48px;              /* 動画の外・左上 */
  right: auto;
  left: 0;
  font-size: 3rem;         /* 約1.5倍 */
  z-index: 2;
}

/* =================================================
   FINAL — sec06-mov modal (EN sync with JP)
   - Center the modal
   - Move close button to top-left OUTSIDE the video
   - Make close button larger
   - Hide "Video" title
   ================================================= */

/* 非表示時は描画しない（閉じる瞬間のチラつき対策にもなる） */
.modal:not(.is-open) {
  display: none;
}

/* 開いた時は常に中央寄せ */
.modal.is-open {
  display: flex;
  align-items: center !important;
  justify-content: center !important;
}

/* #sec06-mov モーダル本体を中央に固定＆×が外に出られるようにする */
.js-video-modal.modal.is-open .modal__content {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;

  width: min(80vw, 960px) !important;
  overflow: visible !important; /* ← ここが無いと×が外に出せないケースがあります */
}

/* 「Video」タイトルを消す（×は消さない） */
.js-video-modal .modal__title {
  display: none !important;
}

/* 閉じるボタン：左上（動画の外）＆大きく */
.js-video-modal .modal__close {
  position: absolute !important;
  top: -48px !important;
  left: 0 !important;
  right: auto !important;

  font-size: 3rem !important;   /* ← 大きさUP（約1.5倍相当） */
  line-height: 1 !important;
  padding: 8px 12px !important;

  z-index: 1000000 !important;
  background: none !important;
  border: none !important;
  cursor: pointer;
}

/* SP：×の分だけ下げてはみ出しを防ぐ */
@media (max-width: 640px) {
  .js-video-modal.modal.is-open .modal__content {
    margin-top: 48px !important;
  }
}

/* =========================================
   Expression movie thumbnail cursor
   ========================================= */

.js-open-movie {
  cursor: pointer;
}
/* =========================================
   Expression: disable tap highlight (SP UX)
   ========================================= */

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