@charset "UTF-8";

/* ====================================================
   Reset / Base
   ==================================================== */
* { box-sizing: border-box; }

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var, b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

body { line-height: 1; }

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section { display: block; }

ul { list-style: none; }

blockquote, q { quotes: none; }
blockquote:before, blockquote:after,
q:before, q:after { content: ""; content: none; }

a {
  margin: 0; padding: 0; font-size: 100%;
  vertical-align: baseline; background: transparent;
  text-decoration: none;
}

ins { background-color: #ff9; color: #000; text-decoration: none; }
mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
del { text-decoration: line-through; }

abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }

table { border-collapse: collapse; border-spacing: 0; }

hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }

input, select { vertical-align: middle; }

/* Smoothing / Scroll */
:root { --header-offset: 104px; }
html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  max-width: 100%;
}

body {
  overflow-x: hidden;
  max-width: 100%;
  position: relative;
}

/* 全セクションの幅制限 */
section {
  max-width: 100vw;
  overflow-x: hidden;
}
[id] { scroll-margin-top: calc(var(--header-offset) + 8px); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* ====================================================
   Fonts
   ==================================================== */
   @font-face{
    font-family: "Montserrat";
    font-style: normal;
    font-weight: 600;
    src:
      /* TTFファイルを使用 */
      url("../assets/font/Montserrat-SemiBold.ttf") format("truetype");
    font-display: swap;
  }
/* Typography base */
h1, h2, h3, h4, h5, h6, p, span, li, div, section, aside, a, button, input, textarea, label, pre {
  font-family:
    system-ui, -apple-system, "Segoe UI", Roboto,
    "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3",
    Meiryo, "Yu Gothic", "游ゴシック体", sans-serif;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.04em;
}

/* Images */
img { max-width: 100%; height: auto; display: block; }

/* Focus visible */
a:focus-visible,
button:focus-visible,
.commonBtn:focus-visible,
.slideTemplate__dot:focus-visible,
.taxonomyList__link:focus-visible {
  outline: 2px solid #111;
  outline-offset: 3px;
}

/* ====================================================
   Blog (classic editor / simple)
   ==================================================== */
.blogBody {
  font-size: medium;
  width: 100%;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
}
.blogBody h1 { font-size: 2em; margin: .67em 0; font-weight: bold; }
.blogBody h2 { font-size: 2.3em; margin: .83em 0; font-weight: bold; }
@media (max-width:520px){ .blogBody h2 { font-size: 1.6em; } }
.blogBody h3 { font-size: 1.17em; margin: 1em 0; font-weight: bold; }
.blogBody h4 { margin: 1.33em 0; font-weight: bold; }
.blogBody h5 { font-size: .83em; margin: 1.67em 0; font-weight: bold; }
.blogBody h6 { font-size: .67em; margin: 2.33em 0; font-weight: bold; }
.blogBody p { margin: 1em 0; line-height: 2; }
@media (max-width:520px){ .blogBody p { font-size: 14px; } }
.blogBody ul, .blogBody ol { margin: 1em 0; padding-left: 40px; }
.blogBody ul { list-style: disc; }
.blogBody ol { list-style: decimal; }
.blogBody li { line-height: 1.8; }
.blogBody a { color: #0073aa; text-decoration: underline; word-break: break-all; }
.blogBody img { max-width: 100%; height: auto; }
.blogBody blockquote { margin: 1em 40px; }
.blogBody strong, .blogBody b { font-weight: bold; }
.blogBody em, .blogBody i { font-style: italic; }
.blogBody table { border-collapse: collapse; width: 100%; }
.blogBody th, .blogBody td { padding: .5em; border: 1px solid #ddd; line-height: 1.8; }

/* Gutenberg basics in article */
.blogBody .wp-block-pullquote {
  margin: 0 0 1em; padding: 3em 0; text-align: center;
  border-top: 4px solid; border-bottom: 4px solid;
}
.blogBody .wp-block-pullquote p { font-size: 1.75em; line-height: 1.6; }
.blogBody .wp-block-quote { border-left: .25em solid; margin: 0 0 1.75em; padding-left: 1em; }
.blogBody .wp-block-image img { max-width: 100%; height: auto; }
.blogBody .wp-block-columns { display: flex; margin-bottom: 2em; flex-wrap: wrap; }
@media (max-width:520px){ .blogBody .wp-block-columns { flex-direction: column-reverse; } }

/* ====================================================
   Shared Headings
   ==================================================== */
.commonHeading { font-size: clamp(64px, 5.7vw, 96px); }
@media (max-width:960px){ .commonHeading { font-size: clamp(40px, 4vw, 64px); } }
.commonHeading__span--en{
  font-family:"Montserrat",sans-serif; font-weight:600;
  background: linear-gradient(124deg,#111 62.2%,#E1B531 89.85%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
@media (max-width:960px){ .commonHeading__span--en{ line-height:1.4; } }
.commonHeading__span--ja{ display:block; font-size:clamp(20px,2vw,28px); font-weight:500; }
@media (max-width:960px){ .commonHeading__span--ja{ font-size:clamp(14px,1.5vw,20px); } }
.commonHeading__span--white{ color:#fff; -webkit-text-fill-color:#fff; }

/* ====================================================
   Page Heading
   ==================================================== */
.pageHeading__inner{
  display:flex; justify-content:space-between; align-items:flex-end;
  width:88%; max-width:1920px; margin:0 auto; padding:16vw 0 2vw;
}
.pageHeading__inner--center{ justify-content:center; }
@media (max-width:960px){
  .pageHeading__inner{
    flex-direction:column; align-items:flex-start; gap:40px;
    padding:clamp(220px,16vh,280px) 0 6vh;
  }
  .pageHeading__inner--center{ justify-content:center; align-items:center; }
}
.pageHeading__heading{ font-size: clamp(64px, 5.7vw, 96px); }
@media (max-width:520px){ .pageHeading__heading{ font-size:clamp(40px,4vw,64px); } }
.pageHeading__heading--center{ text-align:center; }
.pageHeading__heading--en{
  font-family:"Montserrat",sans-serif; font-weight:600;
  background: linear-gradient(124deg,#111 62.2%,#E1B531 89.85%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
@media (max-width:960px){
  .pageHeading__heading--en{ display:block; line-height:1.2; margin-bottom:.5em; }
}
.pageHeading__heading--ja{ display:block; font-size:clamp(20px,2vw,28px); font-weight:400; }
@media (max-width:960px){ .pageHeading__heading--ja{ font-size:clamp(14px,1.5vw,20px); } }
.pageHeading__heading--white{ color:#fff; -webkit-text-fill-color:#fff; }

/* ====================================================
   Page Content
   ==================================================== */
.pageContent__inner{ width:88%; max-width:840px; margin:0 auto; padding:2vw 0 8vw; }

.contentHeading{ font-size:clamp(28px,2.5vw,40px); }
.contentHeading__span--en{
  font-family:"Montserrat",sans-serif; font-weight:600;
  background: linear-gradient(124deg,#111 62.2%,#E1B531 89.85%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.contentHeading__span--ja{ display:block; font-size:clamp(16px,1.2vw,20px); font-weight:400; }
.contentHeading__span--white{ color:#fff; -webkit-text-fill-color:#fff; }

/* ====================================================
   Buttons
   ==================================================== */
.commonBtn{
  display:flex; font-size:clamp(14px,1.2vw,18px); color:#fff; border-radius:100px; background:#111;
  justify-content:space-between; align-items:center; width:100%; max-width:240px; padding:.75em .75em .75em 1em;
}
@media (max-width:960px){
  .commonBtn{ font-size:clamp(12px,1vw,14px); line-height:1; max-width:180px; }
}
.commonBtn__text{ font-family:"Montserrat",sans-serif; font-weight:600; }
.commonBtn__iconContainer{ position:relative; width:32px; aspect-ratio:1/1; border-radius:50%; background:#fff; }
.commonBtn__icon{ position:absolute; top:50%; left:50%; transition:.4s; }
.commonBtn__icon--next{ transform:translate(-50%,-50%); }
.commonBtn__icon--prev{ transform:translate(-200%,-50%); }
.commonBtn:hover .commonBtn__icon--next{ transform:translate(100%,-50%); }
.commonBtn:hover .commonBtn__icon--prev{ transform:translate(-50%,-50%); }

/* ====================================================
   Slide template
   ==================================================== */
.slideTemplate__arrows{
  position:relative; display:flex; justify-content:center; gap:2vw; margin-top:4vh;
}
.slideTemplate__arrow{ display:block; width:48px; aspect-ratio:1/1; cursor:pointer; transition:.4s; }
.slideTemplate__arrow--prev{ transform:rotate(180deg); }
.slideTemplate__arrow--prev:hover{ transform:scale(1.1) rotate(180deg); }
@media (max-width:520px){ .slideTemplate__arrow--prev{ left:0; width:32px; } }
.slideTemplate__arrow--next{ transform:rotate(0); }
.slideTemplate__arrow--next:hover{ transform:scale(1.1) rotate(0); }
@media (max-width:520px){ .slideTemplate__arrow--next{ right:0; width:32px; } }
.slideTemplate__arrowIcon{ display:block; width:100%; height:100%; fill:#111; }
.slideTemplate__dots{ display:flex; justify-content:center; gap:1vw; margin-top:2vh; }
.slideTemplate__dot{ width:12px; aspect-ratio:1/1; border-radius:50%; cursor:pointer; transition:.4s; }
.slideTemplate__dot:hover{ transform:scale(1.1); }
.slideTemplate__dot--active{ background:#111; }
.slideTemplate__dot--inactive{ background:#999; }

/* ====================================================
   CTA
   ==================================================== */
   .ctaSection{ 
    width:100%; 
    display:flex; 
    justify-content:center;
    overflow: hidden;  /* 追加 */
  }
.ctaSection__inner{
  width:92%; max-width:1920px; background:#272932; border-radius:64px; padding:4vw 0;
}
@media (max-width:960px){ .ctaSection__inner{ padding:12vw 0; } }
@media (max-width:520px){ .ctaSection__inner{ padding:12vh 0 6vh; border-radius:32px; } }
.ctaSection__letterContainer{ overflow:hidden; width:100%; margin-bottom:4vw; }
.ctaSection__letterScroll{ display:flex; justify-content:flex-end; will-change:transform; }
@media (max-width:960px){ .ctaSection__letterScroll{ width:1300px; } }
@media (max-width:520px){ .ctaSection__letterScroll{ width:900px; } }
.ctaSection__text{
  max-width:600px; font-size:clamp(14px,1vw,16px); font-weight:400; color:#fff; line-height:2;
  margin:4vw auto; width:88%;
}
@media (max-width:520px){ .ctaSection__text{ margin:10vh auto; } }
.ctaSection__btns{
  width:88%; max-width:1440px; display:flex; justify-content:center; gap:2vw; margin:4vw auto 0;
}
@media (max-width:960px){ .ctaSection__btns{ flex-direction:column; gap:20px; } }
.ctaSection__btn{
  position:relative; flex:1 1 50%; width:50%; padding:64px; border-radius:64px; min-height:320px;
  background:#6C717E; transition:.4s; overflow:hidden;
}
@media (max-width:960px){ .ctaSection__btn{ width:100%; flex:1 1 auto; } }
@media (max-width:520px){ .ctaSection__btn{ padding:32px; border-radius:32px; } }
.ctaSection__btn:hover{ background:#52545A; }
.ctaSection__btnText{ display:block; color:#fff; }
.ctaSection__btnText--en{ font-family:"Montserrat",sans-serif; font-weight:600; font-size:clamp(24px,3vw,36px); }
.ctaSection__btnText--ja{ font-size:clamp(16px,1vw,20px); font-weight:400; }
.ctaSection__img{ position:absolute; bottom:0; right:15%; width:20%; }
@media (max-width:520px){ .ctaSection__img{ width:35%; } }
.ctaSection__imgContainer{ position:absolute; bottom:0; right:-10%; width:80%; }
@media (max-width:520px){ .ctaSection__imgContainer{ right:-10%; width:120%; } }

/* ====================================================
   Marquee
   ==================================================== */
.pageScroll{ width:100%; }
.pageScroll__inner{ overflow:hidden; }
.pageScroll__scrollContainer{
  display:flex; gap:2vw; width:fit-content; align-items:center; justify-content:flex-start;
  animation:scroll 50s linear infinite;
}
@media (max-width:960px){ .pageScroll__scrollContainer{ animation:scroll 100s linear infinite; gap:20px; } }
.pageScroll__imgContainer{ position:relative; overflow:hidden; border-radius:32px; }
.pageScroll__imgContainer--01{ width:20vw; aspect-ratio:2/1; min-width:500px; }
@media (max-width:960px){ .pageScroll__imgContainer--01{ min-width:300px; } }
.pageScroll__imgContainer--02{ width:10vw; aspect-ratio:1/1; min-width:250px; }
@media (max-width:960px){ .pageScroll__imgContainer--02{ min-width:150px; } }
.pageScroll__img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
@keyframes scroll{
  0%{ transform: translateX(0); }
  100%{ transform: translateX(calc(100vw - 100%)); }
}

@media (prefers-reduced-motion: reduce){
  .pageScroll__scrollContainer{ animation:none; }
  .fv__contact{ animation:none; }
}

/* ====================================================
   Header
   ==================================================== */
.header{
  position:fixed; top:40px; left:0; right:0; width:100%;
  z-index:1000; display:flex; justify-content:center;
}
.header__inner{
  display:flex; justify-content:space-between; align-items:center;
  width:88%; max-width:1920px; height:64px; padding:0 64px;
  border:#eee 1px solid; border-radius:1000px; background:#fff;
}
@media (max-width:960px){ .header__inner{ padding:0 8%; } }
.header__logo{ display:block; width:160px; }
@media (max-width:520px){ .header__logo{ width:25vw; } }
/* CLS安定化：ロゴ画像はブロック要素に */
.header__logoContainer img,
.footer__logoContainer img{ display:block; }

@media (max-width:960px){ .header__nav{ display:none; } }
.header__navLists{ display:flex; gap:24px; }
.header__navList{ position:relative; padding:2em 0; }
.header__navList:hover .header__navModal{ opacity:1; pointer-events:auto; transform:translate(-50%,0%); }
.header__navLink{
  display:block; font-size:16px; font-weight:400; font-family:"Montserrat",sans-serif;
  line-height:1; color:#111; transition:.4s;
}
.header__navLink:hover{ color:#999; }
.header__navModal{
  position:absolute; top:90%; left:50%; transform:translate(-50%,20%);
  background:rgba(17,17,17,.8); width:200px; border-radius:12px; opacity:0; pointer-events:none; transition:.4s;
}
.header__navModalLink{
  display:block; font-size:clamp(14px,1vw,16px); color:#fff; border-bottom:1px #999 solid; padding:2em 1em; text-align:center; transition:.3s;
}
.header__navModalLink:last-of-type{ border:none; }
.header__navModalLink:hover{ opacity:.7; }

/* ====================================================
   Footer
   ==================================================== */
   .footer__inner{ 
    width:88%; 
    max-width:1920px; 
    margin:0 auto; 
    padding:4vw 0;
    min-height: auto;  /* 追加 */
  }
@media (max-width:960px){ .footer__inner{ padding:12vw 0 4vw; } }
@media (max-width:520px){ .footer__inner{ padding:12vh 0 4vh; } }
.footer__content{
  display:flex; justify-content:space-between; align-items:flex-start; gap:3vw; width:100%;
}
@media (max-width:960px){ .footer__content{ flex-direction:column; } }
.footer__logo{ width:200px; }
@media (max-width:960px){ .footer__logo{ width:140px; } }
.footer__nav{ display:flex; gap:6vw; }
@media (max-width:520px){
  .footer__nav{ justify-content:space-between; width:100%; margin-top:64px; }
}
.footer__navLists{ display:flex; flex-direction:column; font-size:clamp(14px,1.2vw,16px); gap:1.5em; }
.footer__navList{ font-size:clamp(14px,1.2vw,16px); font-weight:400; color:#333; line-height:2; }
.footer__navLink{ color:#333; text-decoration:none; transition:.4s; }
.footer__navLink:hover{ color:#999; }
.footer__rights{ font-size:clamp(14px,1.2vw,16px); margin-top:2em; }
@media (max-width:520px){ .footer__rights{ margin-top:8em; } }

/* ====================================================
   Breadcrumb
   ==================================================== */
.breadcrumb{
  display:flex; flex-wrap:wrap; align-items:flex-start; font-size:12px; line-height:1.4; gap:12px;
  margin-bottom:120px; padding-bottom:2em; border-bottom:#eee 1px solid;
}
.breadcrumb span{ display:block; font-size:12px; line-height:1.4; color:#111; }

/* ====================================================
   Hamburger / Modal menu
   ==================================================== */
   .hamburgerMenu{ display:none; }
   @media (max-width:960px){
     .hamburgerMenu{
       width:48px; 
       height:48px; 
       display:flex; 
       flex-direction:column; 
       justify-content:center;
       align-items:center;
       position:relative;
       background:rgba(17,17,17,0.05);
       border-radius:50%;
     }
   }
   .hamburgerMenu__bar{ 
    width:24px; 
    height:2px; 
    background:#111; 
    transition:.3s; 
    position:absolute;
    left:50%;
    transform:translateX(-50%);
  }
  .hamburgerMenu__bar--top{ 
    top:calc(50% - 5px);
  }
  .hamburgerMenu__bar--top.toggle{ 
    top:50%;
    transform:translateX(-50%) rotate(45deg);
  }
  .hamburgerMenu__bar--bottom{ 
    bottom:calc(50% - 5px);
  }
  .hamburgerMenu__bar--bottom.toggle{ 
    bottom:50%;
    transform:translateX(-50%) rotate(-45deg);
  }

.modalMenu{
  position:fixed; inset:0; width:100%; height:100vh; background:rgba(17,17,17,.9);
  z-index:2000; transition:.4s; transform-origin:top; transform:scaleY(0);
  -webkit-clip-path: polygon(0 0,100% 0,100% 0,0 0);
  clip-path: polygon(0 0,100% 0,100% 0,0 0);
  pointer-events:none;
}
.modalMenu.toggle{
  pointer-events:auto; transform:scaleY(1);
  -webkit-clip-path: polygon(0 0,100% 0,100% 100%,0 100%);
  clip-path: polygon(0 0,100% 0,100% 100%,0 100%);
}
.modalMenu__inner{ width:100%; padding:140px 56px 0; }
.modalMenu__lists{ width:100%; }
.modalMenu__list{ width:100%; }
.modalMenu__link{
  display:block; width:100%; font-size:15px; color:#eee; padding:1em 0; text-align:right;
}

/* ====================================================
   Page Thumbnail
   ==================================================== */
.pageThumbnail{ margin-bottom:-6vw; margin-top:6vw; }
.pageThumbnail__inner{
  position:relative; width:88%; max-width:1920px; max-height:560px; aspect-ratio:1200/540;
  margin:0 auto; border-radius:32px; overflow:hidden; background:#F7F7F7;
}
@media (max-width:520px){ .pageThumbnail__inner{ aspect-ratio:1/1; } }
.pageThumbnail__thumbnail,
.pageThumbnail__img,
.pageThumbnail__canvas{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
}

/* ====================================================
   Section Headings
   ==================================================== */
.pageSectionHeading__heading--en{
  font-size:clamp(32px,3.5vw,48px);
  font-family:"Montserrat",sans-serif; font-weight:600;
  background: linear-gradient(124deg,#111 62.2%,#E1B531 89.85%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.pageSectionHeading__heading--ja{
  display:block; font-size:clamp(14px,1vw,16px); font-weight:400; margin-top:1em;
}
@media (max-width:960px){ .pageSectionHeading__heading--ja{ margin-top:0; } }
.pageSectionHeading__heading--white{ color:#fff; -webkit-text-fill-color:#fff; }

/* ====================================================
   Company Content
   ==================================================== */
.companyContent{ padding-bottom:6vh; }
.companyContent__inner{ width:88%; max-width:1920px; margin:0 auto; }
.companyContent__contents{ display:flex; flex-direction:column; gap:4vw; width:100%; }
.companyContent__content{ display:flex; justify-content:space-between; align-items:flex-start; gap:4vw; }
@media (max-width:960px){ .companyContent__content{ flex-direction:column; } }
.companyContent__heading{ flex:0 0 520px; }
@media (max-width:960px){ .companyContent__heading{ flex:1 1 auto; } }
.companyContent__info{ flex:1 1 auto; }
@media (max-width:960px){
  .companyContent__info{ width:100%; gap:4vh; margin:4vh 0 8vh; }
  .companyContent__infoList{ width:100%; }
}
.companyContent__infoList{
  display:flex; align-items:flex-start; gap:1vw; padding:4vh 0; border-bottom:1px solid #eee;
  width:100%; font-size:clamp(14px,1vw,16px); font-weight:400;
}
.companyContent__infoList:first-of-type{ border-top:1px solid #eee; }
@media (max-width:960px){ .companyContent__infoList{ padding:3vh 0; } }
.companyContent__infoHeading{ font-size:clamp(14px,1vw,16px); font-weight:500; flex:0 0 220px; }
@media (max-width:960px){ .companyContent__infoHeading{ flex:0 0 160px; } }
.companyContent__infoText{ font-size:clamp(14px,1vw,16px); font-weight:400; flex:1 1 auto; }

/* ====================================================
   Recruit / Develop sections
   ==================================================== */
.recruitContent{ padding:12vw 0 8vw; background:#52545A; }
@media (max-width:960px){ .recruitContent{ padding:12vh 0 12vh; } }
.recruitContent__headingContainer{ margin:auto; max-width:1920px; width:88%; }
.recruitContent__contents{
  display:flex; flex-wrap:wrap; gap:8vw; width:88%; max-width:1920px; margin:4vw auto;
}
@media (max-width:960px){ .recruitContent__contents{ flex-direction:column; margin:12vh auto; gap:8vh; } }
.recruitContent__content{ flex:1 1 20vw; padding-bottom:2vw; border-bottom:1px solid #ddd; }
@media (max-width:960px){ .recruitContent__content{ flex:1 1 auto; padding-bottom:8vh; } }
.recruitContent__contentHeading{ color:#fff; }
.recruitContent__contentHeading--en{
  font-size:clamp(24px,2.5vw,40px); font-family:"Montserrat",sans-serif; font-weight:600;
}
.recruitContent__contentHeading--ja{ display:block; font-size:clamp(14px,1vw,16px); font-weight:400; margin-top:.5em; }
.recruitContent__contentText{ font-size:clamp(14px,1vw,16px); font-weight:400; color:#ddd; margin-top:2em; }

.recruitPosition__inner{ width:88%; max-width:1920px; margin:0 auto; padding:8vw 0 2vw; }
@media (max-width:960px){ .recruitPosition__inner{ padding:12vh 0 12vh; } }
.recruitPosition__content{ display:flex; justify-content:space-between; align-items:flex-start; gap:4vw; }
@media (max-width:960px){ .recruitPosition__content{ flex-direction:column; gap:4vh; } }
.recruitPosition__heading{ flex:0 0 400px; }
@media (max-width:960px){ .recruitPosition__heading{ flex:1 1 auto; } }
.recruitPosition__lists{ display:flex; flex-direction:column; gap:2vh; width:100%; flex:1 1 auto; }
.recruitPosition__list{
  position:relative; width:100%; height:5.3vw; padding:2vw; background:#f2f2f2; overflow:hidden; transition:.4s;
}
@media (max-width:960px){ .recruitPosition__list{ height:64px; padding:24px; } }
.recruitPosition__list::before{
  content:""; position:absolute; top:2.7vw; right:2vw; width:24px; height:2px; background:#111; z-index:1;
}
@media (max-width:960px){ .recruitPosition__list::before{ top:32px; } }
.recruitPosition__list::after{
  content:""; position:absolute; top:2.7vw; right:2vw; width:24px; height:2px; background:#111; z-index:1;
  transform:rotate(90deg); transition:.4s;
}
@media (max-width:960px){ .recruitPosition__list::after{ top:32px; } }
.recruitPosition__list.toggle{ height:auto; }
.recruitPosition__list.toggle::after{ transform:rotate(0); }
.recruitPosition__listName{ font-size:clamp(16px,1.5vw,20px); font-weight:600; line-height:1; padding-bottom:2vw; }
.recruitPosition__listContentItem{ display:flex; gap:2vw; padding:2vh 0; border-bottom:1px #ddd solid; }
.recruitPosition__listContentHeading{ flex:0 0 240px; font-size:clamp(14px,1vw,16px); font-weight:600; }
@media (max-width:960px){ .recruitPosition__listContentHeading{ flex:0 0 150px; } }
.recruitPosition__listContentText{ flex:1 1 auto; font-size:clamp(14px,1vw,16px); font-weight:400; }

.recruitApplication__inner{
  width:88%; max-width:1920px; margin:auto; padding:8vw 0; display:flex; justify-content:space-between; align-items:flex-start; gap:4vw;
}
@media (max-width:960px){ .recruitApplication__inner{ flex-direction:column; gap:4vh; } }
.recruitApplication__heading{ flex:0 0 400px; }
@media (max-width:960px){ .recruitApplication__heading{ flex:1 1 auto; } }
.recruitApplication__info{ width:100%; flex:1 1 auto; }
.recruitApplication__infoText{ font-size:clamp(14px,1vw,16px); margin-bottom:2em; font-weight:400; }

/* ====================================================
   Contact Form
   ==================================================== */
.contactForm{ display:flex; justify-content:center; }
.contactForm__inner{ max-width:900px; width:88%; padding-bottom:120px; }
.contactForm__label{ display:flex; align-items:center; gap:1em; line-height:1; margin:32px 0 4px; }
@media (max-width:960px){ .contactForm__label{ gap:12px; } }
.contactForm__label--name{ font-size:clamp(16px,1.1vw,18px); font-weight:500; }
@media (max-width:960px){ .contactForm__label--name{ line-height:1.3; } }
.contactForm__label--label{
  font-size:clamp(10px,.88vw,13px); color:#fff; padding:.75em 1.25em; background:#EE863D; border-radius:100px; flex-shrink:0;
}
.contactForm__label--label-free{ color:#111; background:#FDDCEA; }
.contactForm__input,
.contactForm__area{
  font-size:16px; width:100%; border:1px #eee solid; border-radius:4px;
}
.contactForm__input{ padding:1.5em; }
@media (max-width:520px){ .contactForm__input{ font-size:16px; } }
.contactForm__area{ padding:1em; }
.contactForm__privacyContainer{
  font-size:clamp(13px,1.1vw,17px); padding:1em; width:100%; background:#fff; margin-top:3em;
}
.contactForm__check span{ display:block; margin:0; }
.contactForm__check input{ margin-right:8px; }
.contactForm__check .wpcf7-list-item-label{ font-size:16px; }
.contactForm__check label{ display:flex; padding:16px; max-width:300px; background:#fff; margin-top:12px; }
.contactForm__radio{ display:flex; flex-wrap:wrap; gap:12px; }
@media (max-width:960px){ .contactForm__radio{ flex-direction:column; } }
.contactForm__radio > span{
  display:block; width:48%; font-size:16px; margin:0; border:1px #eee solid; border-radius:4px;
}
@media (max-width:960px){ .contactForm__radio > span{ width:100%; } }
.contactForm__radio > span > label{ display:block; width:100%; height:100%; padding:1.5em; }
.contactForm__date, .contactForm__select{ font-size:16px; padding:1em 2em; }
.contactForm__cautionText{ font-size:14px; margin-top:.75em; }
.contactForm__privacyPolicyLink{
  display:block; font-size:clamp(13px,1.1vw,17px); width:fit-content; margin:3em auto 0;
  color:#1F97CB; border-bottom:#1F97CB 1px solid;
}
.contactForm__btn{
  display:block; width:88%; max-width:600px; font-size:clamp(13px,1.1vw,17px);
  padding:1em; margin:1em auto; border-radius:100px;
}
.contactForm__btn--return{ background:#999 !important; }
.contactForm__btn[disabled]{ color:#222; background:#777; }
.contactForm__btn:not([disabled]){ background:#EE863D; color:#fff; transition:.3s; }
.contactForm__btn:not([disabled]):hover{ cursor:pointer; box-shadow:0 0 4px 4px rgba(51,51,51,.1); opacity:.7; }
.contactForm__confirmWrapper{ padding:64px; margin:40px 0 80px; background:#fff; }
.contactForm__confirmLabel{ font-size:clamp(16px,1.1vw,18px); font-weight:600; margin-bottom:.5em; }
.contactForm__confirmTextContainer p{
  font-size:16px; font-weight:400; margin-bottom:3em; padding-bottom:1em; border-bottom:1px solid #eee;
}
.wpcf7-acceptance{ display:block; border-radius:4px; border:1px #eee solid; }
.wpcf7-acceptance .wpcf7-list-item{ margin:0; }
.wpcf7-acceptance label{ display:block; background:#fff; padding:40px; width:100%; text-align:center; }
@media (max-width:960px){ .wpcf7-acceptance label{ padding:16px; } }
.wpcf7-response-output{
  border:none !important; background:#fff; font-size:clamp(14px,4vw,18px) !important;
  line-height:1.4; padding:2em !important; border-radius:12px;
}
.wpcf7-acceptance > .wpcf7-list-item{ width:100%; }

/* ====================================================
   Develop Content
   ==================================================== */
.developContent{ padding:12vw 0 8vw; background:#52545A; }
@media (max-width:960px){ .developContent{ padding:12vh 0 12vh; } }
.developContent__headingContainer{ margin:auto; max-width:1920px; width:88%; }
.developContent__contents{
  display:flex; flex-wrap:wrap; gap:8vw; width:88%; max-width:1920px; margin:4vw auto;
}
@media (max-width:960px){
  .developContent__contents{ flex-direction:column; margin:12vh auto; gap:8vh; }
}
.developContent__content{ flex:1 1 20vw; padding-bottom:2vw; border-bottom:1px solid #ddd; }
@media (max-width:960px){ .developContent__content{ flex:1 1 auto; padding-bottom:8vh; } }
.developContent__contentHeading{ color:#fff; }
.developContent__contentHeading--en{
  font-size:clamp(24px,2.5vw,40px); font-family:"Montserrat",sans-serif; font-weight:600;
}
.developContent__contentHeading--ja{ display:block; font-size:clamp(14px,1vw,16px); font-weight:400; margin-top:.5em; }
.developContent__contentText{ font-size:clamp(14px,1vw,16px); font-weight:400; color:#ddd; margin-top:2em; }
.developContent__contentItem{
  display:block; font-size:12px; font-weight:400; padding:1.5em; border-radius:12px; border:1px #AAA solid; color:#fff; margin-top:1em; transition:.4s;
}
.developContent__contentItem:hover{ opacity:.7; }

/* ====================================================
   In-house service
   ==================================================== */
.houseContent__inner{ width:88%; max-width:1920px; margin:auto; }
@media (max-width:960px){ .houseContent__inner{ padding-bottom:10vh; } }
.houseContent__contents{ display:flex; flex-direction:column; gap:5vw; padding:12vw 0; }
@media (max-width:960px){
  .houseContent__contents{ max-width:600px; margin:auto; gap:10vh; }
}
.houseContent__content{ display:flex; gap:3vw; }
@media (max-width:960px){ .houseContent__content{ flex-direction:column; gap:2vh; } }
.houseContent__thumbnailContainer{
  flex:0 0 33%; position:relative; width:33%; max-width:720px; aspect-ratio:1/1; border-radius:64px; overflow:hidden; border:1px #eee solid;
}
@media (max-width:960px){ .houseContent__thumbnailContainer{ flex:1 1 auto; width:100%; } }
.houseContent__thumbnail{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.houseContent__contentTitle{ font-size:clamp(24px,2.5vw,36px); font-weight:600; margin-bottom:1em; }
.houseContent__contentText{ font-size:clamp(14px,1vw,16px); font-weight:400; margin-bottom:2em; }

/* ====================================================
   Company Origin
   ==================================================== */
.companyOrigin__inner{
  width:88%; max-width:1920px; margin:auto; padding:12vw 0 4vw;
  display:flex; justify-content:space-between; align-items:flex-start; gap:4vw;
}
@media (max-width:960px){
  .companyOrigin__inner{ flex-direction:column; gap:4vh; padding:12vh 0 4vh; }
}
.companyOrigin__heading{ flex:0 0 520px; }
@media (max-width:960px){ .companyOrigin__heading{ flex:1 1 auto; } }
.companyOrigin__info{ width:100%; flex:1 1 auto; }
.companyOrigin__infoText{ font-size:clamp(14px,1vw,16px); margin-bottom:2em; font-weight:400; }

/* ====================================================
   Top (page specific before CMS)
   ==================================================== */
   .fv{
    position:relative; display:flex; justify-content:center; 
    width:100%; /* 100vwから100%に変更 */
    height:100svh; min-height:100vh;
    overflow: hidden; /* オーバーフロー制御追加 */
  }
.fv__inner{
  width:88%; height:100%; display:flex; justify-content:center; align-items:center;
}
@media (max-width:520px){
  .fv__inner{ 
    justify-content:center; 
    align-items:center; 
    padding-bottom:10svh; 
    width:100%; 
  }
}
.fv__bg{ position:absolute; inset:0; width:100%; height:100%; z-index:-1; }
.fv__heading{ display:flex; flex-direction:column; align-items:center; }
@media (max-width:520px){
  .fv__heading{ text-align:left; align-items:flex-start; width:88%; margin:0 auto; }
}
.fv__headingInner{ display:flex; justify-content:center; align-items:center; gap:2vw; }
@media (max-width:520px){ .fv__headingInner{ position:relative; } }
.fv__headingSpan{ font-weight:500; letter-spacing:.04em; }
.fv__headingSpan--en{
  font-size:clamp(64px,8vw,96px); line-height:1.7;
  font-family:"Montserrat",sans-serif; font-weight:600;
  background: linear-gradient(124deg,#111 62.2%,#E1B531 89.85%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
@media (max-width:520px){
  .fv__headingSpan--en{ font-size:clamp(32px,10vw,56px); text-align:left; line-height:1.4; }
}
.fv__headingSpan--ja{ font-size:clamp(16px,1.5vw,24px); }
@media (max-width:520px){
  .fv__headingSpan--ja{ 
    position:relative; 
    bottom:auto; 
    left:auto;
    display:block;
    margin-bottom: 1em;
  }
}
.fv__contactContainer{
  --contact-w: 200px;
  position:absolute; bottom:8vh; right:6%; display:flex; justify-content:flex-end;
  width:200px; overflow:hidden; padding:12px 0; background:#121212; border-radius:100px;
  max-width: calc(100% - 12%);
}
@media (max-width:520px){
  .fv__contactContainer{ --contact-w:120px; width:120px; }
}
.fv__contact{
  font-family:"Montserrat",sans-serif; font-weight:600; color:#fff; font-size:16px; white-space:nowrap;
  animation: fvContact 12s linear infinite;
}
.fv__scroll{ position:absolute; bottom:8vh; left:6%; width:140px; }
@keyframes fvContact{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(calc(100% - var(--contact-w))); }
}

.topAbout{ width:100%; display:flex; justify-content:center; }
.topAbout__inner{ width:88%; max-width:1920px; padding-top:8vw; }
@media (max-width:520px){ .topAbout__inner{ padding-top:28vh; } }
.topAbout__content{ display:flex; gap:3vw; margin-top:12vh; }
@media (max-width:960px){ .topAbout__content{ flex-direction:column; gap:32px; } }
.topAbout__info{ flex:1 1 40%; width:40%; }
@media (max-width:960px){ .topAbout__info{ flex:1 1 auto; width:100%; } }
.topAbout__contentText{
  font-size:clamp(14px,1.2vw,18px); line-height:2.4; font-weight:400; color:#333; margin-bottom:2em;
}
.topAbout__canvasContainer{ background:#F7F7F7; border-radius:64px; overflow:hidden; flex:1 1 60%; width:60%; }
@media (max-width:960px){ .topAbout__canvasContainer{ flex:1 1 auto; width:100%; } }
.topAbout__canvas{ display:block; width:100%; aspect-ratio:1/1; }

.topService{ background:#52545A; padding:40vh 0 20vh; margin-top:-32vh; }
.topService__inner{ width:88%; max-width:1920px; margin:0 auto; }
.topService__content{ display:flex; gap:3vw; align-items:flex-start; margin-top:12vh; }
@media (max-width:960px){ .topService__content{ flex-direction:column-reverse; margin-top:4vh; } }
.topService__lists{ display:flex; flex-direction:column; flex:1 1 40%; width:40%; gap:6vw; }
@media (max-width:960px){ .topService__lists{ flex:1 1 auto; width:100%; } }
.topService__list{ padding-top:3vw; border-top:1px solid #999; }
@media (max-width:520px){ .topService__list{ padding:6vh 0 3vh; } }
.topService__imgContainer{
  flex:1 1 60%; width:60%; position:relative; overflow:hidden; border-radius:64px;
}
@media (max-width:960px){ .topService__imgContainer{ flex:1 1 auto; width:100%; } }
.topService__canvas{ width:100%; aspect-ratio:1/1; border-radius:64px; background:#f9f9f9; }
.topService__img{ position:absolute; bottom:-5%; right:-5%; width:50%; }
.topService__contentText{
  font-size:clamp(14px,1.2vw,16px); line-height:2; font-weight:400; color:#fff; margin:2em 0 4em;
}
@media (max-width:960px){ .topService__contentText{ margin-bottom:1em; } }

.topWork{ width:100%; display:flex; justify-content:center; }
.topWork__inner{ width:88%; max-width:1920px; padding-top:15vh; padding-bottom:10vw; }
.topWork__inner--2{ padding-top:0; padding-bottom:4vw; }
@media (max-width:960px){
  .topWork__inner{ padding-bottom:120px; }
  .topWork__inner--2{ padding-bottom:0; }
}
.topWork__headingContainer{ display:flex; justify-content:space-between; align-items:flex-end; }
@media (max-width:960px){
  .topWork__headingContainer{ flex-direction:column; align-items:flex-start; gap:4vh; }
}
.topWork__content{ margin-top:6vh; }

.topNews{ width:100%; display:flex; justify-content:center; }
.topNews__inner{ width:88%; max-width:1920px; padding-top:10vh; padding-bottom:15vh; }
.topNews__headingContainer{ display:flex; justify-content:space-between; align-items:flex-end; }
@media (max-width:960px){
  .topNews__headingContainer{ flex-direction:column; align-items:flex-start; gap:4vh; }
}
.topNews__content{ margin-top:6vh; }

/* ====================================================
   Company Philosophy
   ==================================================== */
.companyPhilosophy{ padding:12vw 0 4vw; background:#f9f9f9; }
@media (max-width:960px){ .companyPhilosophy{ padding:12vh 0 4vh; } }
.companyPhilosophy__inner{
  width:88%; max-width:1920px; margin:auto; display:flex; justify-content:space-between; align-items:flex-start; gap:4vw;
}
@media (max-width:960px){ .companyPhilosophy__inner{ flex-direction:column; gap:4vh; } }
.companyPhilosophy__heading{ flex:0 0 520px; }
@media (max-width:960px){ .companyPhilosophy__heading{ flex:1 1 auto; } }
.companyPhilosophy__contents{ display:flex; flex-direction:column; gap:2rem; flex:1 1 auto; width:100%; }
.companyPhilosophy__content{
  padding:2rem; background:#fff; border-radius:12px; border-left:4px solid #E1B531; box-shadow:0 2px 8px rgba(0,0,0,.05);
}
.companyPhilosophy__title{
  font-size:clamp(18px,1.5vw,24px); font-weight:600; margin-bottom:1rem; color:#111;
  font-family:"Montserrat",sans-serif;
}
.companyPhilosophy__text{ font-size:clamp(14px,1vw,16px); line-height:1.8; color:#333; font-weight:400; }
.companyPhilosophy__list{ list-style:none; padding-left:0; margin:0; }
.companyPhilosophy__list li{
  font-size:clamp(14px,1vw,16px); line-height:1.8; color:#333; margin-bottom:.8rem; padding-left:1.5rem; position:relative; font-weight:400;
}
.companyPhilosophy__list li:before{
  content:"●"; color:#E1B531; position:absolute; left:0; font-weight:bold;
}

/* ====================================================
   CMS Content (article)
   ==================================================== */
.cmsBodyContent h1{
  font-size:clamp(20px,1.94vw,32px); font-weight:600; line-height:1.6; letter-spacing:.04em; margin:3em 0 .75em;
}
.cmsBodyContent h2{
  font-size:clamp(16px,1.66vw,28px); font-weight:600; line-height:1.6; letter-spacing:.04em;
  margin:3em 0 .75em; padding-bottom:.25em; border-bottom:1px #ddd solid;
}
.cmsBodyContent h3{
  font-size:clamp(16px,1.38vw,24px); font-weight:600; line-height:1.6; letter-spacing:.04em;
  margin:3em 0 .75em; padding:.25em .5em;
}
.cmsBodyContent h4{
  font-size:clamp(16px,1.25vw,18px); font-weight:600; line-height:1.6; letter-spacing:.04em;
  margin:3em 0 .75em; padding-bottom:.25em; border-bottom:1px #ddd solid;
}
.cmsBodyContent p,
.cmsBodyContent pre,
.cmsBodyContent li,
.cmsBodyContent span,
.cmsBodyContent i{
  font-size:clamp(13px,1.11vw,18px); font-weight:400; line-height:2; letter-spacing:.02em; margin:1em 0; word-wrap:break-word; white-space:pre-wrap;
}
.cmsBodyContent p a,
.cmsBodyContent pre a,
.cmsBodyContent li a,
.cmsBodyContent span a,
.cmsBodyContent i a{
  color:#2B98CE; text-decoration:underline; font-size:inherit; font-weight:400; line-height:inherit; letter-spacing:.02em;
}
.cmsBodyContent ul, .cmsBodyContent ol{
  padding:1.6666666667vw 1.6666666667vw 1.6666666667vw 2.7777777778vw;
  border:1px #ddd solid; border-radius:4px;
}
@media (max-width:960px){
  .cmsBodyContent ul, .cmsBodyContent ol{ padding-top:4vw; padding-bottom:4vw; padding-left:12vw; padding-right:4vw; }
}
.cmsBodyContent ul li{ list-style:disc; }
.cmsBodyContent img,
.cmsBodyContent video,
.cmsBodyContent iframe{
  max-width:100%; width:100%; height:auto; margin:1.6666666667vw 0;
}
@media (max-width:960px){
  .cmsBodyContent img, .cmsBodyContent video, .cmsBodyContent iframe{ margin:4vw 0; }
}

/* ====================================================
   Cards / Lists
   ==================================================== */
.cmsCard{ display:block; flex:1 1 48%; max-width:48%; }
.cmsCard *{ transition:.4s; }
@media (max-width:1440px){ .cmsCard{ width:100%; } }
@media (max-width:960px){ .cmsCard{ width:100%; flex:1 1 100%; max-width:100%; } }
.cmsCard--slide{ width:26vw; flex:none; max-width:100%; }
@media (max-width:960px){ .cmsCard--slide{ width:100%; flex:1 1 100%; max-width:100%; } }
.cmsCard__inner{ width:100%; min-width:320px; }
@media (max-width:1440px){ .cmsCard__inner{ width:100%; } }
.cmsCard__thumbnailContainer{
  position:relative; width:100%; max-width:100%; aspect-ratio:16/9; border-radius:20px; border:1px solid #eee; overflow:hidden;
}
@media (max-width:520px){ .cmsCard__thumbnailContainer{ border-radius:12px; } }
.cmsCard__thumbnail{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cmsCard__taxonomy{
  position:absolute; z-index:2; background:#111; font-size:clamp(12px,1.2vw,14px); font-weight:500; color:#fff;
  padding:.5em 2em; border-radius:100px; bottom:2em; left:2em;
}
.cmsCard__heading{
  font-size:clamp(16px,1.5vw,20px); font-weight:500; color:#333; margin-top:1em; margin-bottom:.5em;
}
@media (max-width:520px){
  .cmsCard__heading{ margin-top:.5em; font-size:22px; margin-bottom:0; }
}
.cmsCard__date{ font-size:clamp(12px,1.2vw,16px); font-weight:400; color:#666; }
.cmsCard:hover{ opacity:.8; }
.cmsCard:hover .cmsCard__thumbnail{ transform:scale(1.1); }

.cmsCardLists{
  display:flex; flex-wrap:wrap; gap:80px 32px; align-items:flex-start; margin:12vh auto 6vh; max-width:88%;
}
@media (max-width:1440px){ .cmsCardLists{ max-width:88%; gap:40px; } }
@media (max-width:520px){ .cmsCardLists{ gap:48px; margin:0 auto 6vh; } }

.cmsSingle__inner{ width:88%; max-width:840px; margin:0 auto; padding:8vw 0 8vw; }
@media (max-width:1440px){ .cmsSingle__inner{ padding:22vh 0 12vh; } }
.cmsSingle__thumbnailContainer{
  position:relative; width:100%; max-width:100%; aspect-ratio:16/9; border-radius:64px; overflow:hidden; margin-bottom:24px;
}
.cmsSingle__thumbnail{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cmsSingle__metaData{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.cmsSingle__taxonomy{
  background:#111; font-size:clamp(12px,1.2vw,14px); font-weight:500; color:#fff; padding:.5em 2em; border-radius:100px; width:fit-content;
}
.cmsSingle__heading{ font-size:clamp(24px,2.5vw,36px); font-weight:500; color:#333; margin-bottom:1em; }
.cmsSingle__date{ font-size:clamp(14px,1.2vw,16px); font-weight:400; color:#666; }

/* ====================================================
   Taxonomy filter
   ==================================================== */
.taxonomyList__lists{ display:flex; align-items:flex-start; gap:14px; }
@media (max-width:960px){ .taxonomyList__lists{ flex-wrap:wrap; } }
.taxonomyList__link{
  display:block; color:#333; font-size:clamp(14px,1.2vw,16px); font-family:"Montserrat",sans-serif; font-weight:400;
  padding:.75em 1em; border:1px solid #333; border-radius:100px; transition:.3s;
}
.taxonomyList__link--current{ background:#333; color:#fff; }
.taxonomyList__link:hover{ opacity:.7; }

/* ====================================================
   Pagination
   ==================================================== */
.pagination{ display:flex; gap:12px; justify-content:center; margin:64px auto; }
.pagination .page-numbers{
  width:40px; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center;
  font-size:16px; border-radius:50%; border:#111 1px solid; background:#fff; color:#111;
}
.pagination .page-numbers.current{ color:#fff; background:#111; }
.pagination .page-numbers.dots,
.pagination .page-numbers.next,
.pagination .page-numbers.prev{ border:none; }

/* ====================================================
   Splide A11y fix
   ==================================================== */
.splide__slide[aria-hidden="true"] a { pointer-events: none; }
/* Splideオーバーフロー制御 */
.splide {
  max-width: 100%;
  overflow: hidden;
}

.splide__track {
  overflow: hidden;
}

.splide__list {
  max-width: 100%;
}

/* モバイル専用の追加制御 */
@media (max-width: 768px) {
  .topWork__content,
  .topNews__content {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }
  
  .cmsCard--slide {
    max-width: 85vw;
  }
  
  /* 横スクロールを防ぐ追加制御 */
  .fv__inner,
  .topAbout__inner,
  .topService__inner,
  .topWork__inner,
  .topNews__inner {
    max-width: 100%;
    overflow-x: hidden;
  }
}
/* スクロールバウンス対策 */
@media (max-width: 768px) {
  html, body {
    overscroll-behavior: none;  /* スクロールチェーンを無効化 */
  }
  
  /* 最下部の要素の余白調整 */
  .footer__inner {
    padding-bottom: env(safe-area-inset-bottom, 20px);  /* iOS対応 */
  }
}