/* ─────────────────────────
   BASE
───────────────────────── */
:root{
  --red:#F6480A; --green:#01A492;
  --text:#18182E; --mid:#52527A;
  --off:#F5F5F0;
  --sec-r:32px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
.sp-br{display:none;}
.sp-space{display:none;}
body{
  background:#fff;
  color:var(--text);
  font-family:source-han-sans-japanese,sans-serif;
  overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}

/* ─────────────────────────
   LOADING OVERLAY (imagesLoaded)
───────────────────────── */
.js .loading::before{content:'';position:fixed;inset:0;z-index:99999;background:#fff;}
.js .loading::after{content:'';position:fixed;z-index:100000;top:50%;left:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:var(--red);opacity:.4;animation:loaderPulse .7s linear infinite alternate forwards;}
@keyframes loaderPulse{to{opacity:1;transform:scale3d(.5,.5,1);}}

/* ─────────────────────────
   HEADER
───────────────────────── */
.r-header{
  position:fixed;
  top:14px; left:14px; right:14px;
  z-index:500;
  display:flex;
  align-items:stretch;
  gap:10px;
  background:transparent;
  height:58px;
}
.h-logo-block{
  flex:1; display:flex; align-items:stretch;
  background:#fff;
  border-radius:12px;
  box-shadow:0 4px 24px rgba(0,0,0,.14),0 1px 4px rgba(0,0,0,.07);
  overflow:hidden;
  min-width:0;
}
.h-logo-box{
  display:flex; align-items:center; gap:12px;
  padding:0 22px;
  flex-shrink:0;
  background:#fff;
  border-radius:12px;
  box-shadow:0 4px 24px rgba(0,0,0,.14),0 1px 4px rgba(0,0,0,.07);
  overflow:hidden;
}
.h-logo-box img{height:24px;}
.h-logo-tag{
  font-family:'Montserrat',sans-serif;
  font-size:9px; font-weight:700;
  letter-spacing:.28em; text-transform:uppercase;
  color:var(--red);
  border:1px solid var(--red);
  padding:2px 8px; border-radius:2px;
  white-space:nowrap;
}
.h-center{
  flex:1; display:flex; align-items:center;
  justify-content:flex-end; gap:0;
  padding:0 24px; overflow:hidden;
}
.h-nav{display:flex; align-items:center;}
.h-nav a{
  display:flex; align-items:center;
  height:58px; padding:0 11px;
  font-family:source-han-sans-japanese,sans-serif;
  font-size:12px; font-weight:500;
  color:#333; white-space:nowrap;
  transition:color .2s;
}
.h-nav a:hover{color:var(--red);}
.h-sep{width:1px; height:18px; background:rgba(0,0,0,.1); margin:0 12px; flex-shrink:0;}
.h-sns{display:flex; align-items:center; gap:12px;}
.h-sns a{display:flex; align-items:center; transition:opacity .2s;}
.h-sns a:hover{opacity:.6;}
/* Instagram icon（CSS data URI で SVG をインライン回避） */
.h-sns-ig{
  display:block;
  width:17px; height:17px;
  background-repeat:no-repeat;
  background-size:contain;
  background-position:center;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23666'%3E%3Cpath d='M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z'/%3E%3C/svg%3E");
  transition:opacity .2s;
}
.h-sns-ig:hover{opacity:.6;}

/* CTA ボタン（SVG アイコンを CSS data URI で管理） */
.h-entry-block{
  display:flex; align-items:stretch;
  flex-shrink:0;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 4px 28px rgba(0,0,0,.18),0 1px 6px rgba(0,0,0,.12);
}
.h-cta-btn{
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:4px; min-width:112px;
  background:var(--green); color:#fff;
  font-family:source-han-sans-japanese,sans-serif;
  font-size:12px; font-weight:700;
  letter-spacing:.04em;
  border-left:1px solid rgba(255,255,255,.22);
  transition:background .2s, color .2s;
  padding:0 8px;
  text-decoration:none;
}
.h-cta-btn:first-child{border-left:none;}
/* 募集要項: 黄色 */
.h-cta-btn.h-cta-req{background:#FFE102; color:#fff;}
.h-cta-btn.h-cta-req:hover{background:#fff; color:#FFE102;}
/* エントリー: グリーン */
.h-cta-btn.h-cta-entry{background:var(--green); color:#fff;}
.h-cta-btn.h-cta-entry:hover{background:#fff; color:var(--green);}
.h-cta-icon{
  display:block;
  width:18px; height:18px;
  background-repeat:no-repeat;
  background-size:contain;
  background-position:center;
  font-style:normal;
}
/* 募集要項アイコン（クリップボード）: 白 */
.h-cta-req .h-cta-icon{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2'/%3E%3Cpath d='M9 5a2 2 0 002 2h2a2 2 0 002-2'/%3E%3Cpath d='M9 5a2 2 0 012-2h2a2 2 0 012 2'/%3E%3C/svg%3E");
}
/* 募集要項アイコン ホバー時: 白背景のため黄色 */
.h-cta-btn.h-cta-req:hover .h-cta-icon,
.h-menu-cta-btn.h-cta-req:hover .h-cta-icon{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFE102' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2'/%3E%3Cpath d='M9 5a2 2 0 002 2h2a2 2 0 002-2'/%3E%3Cpath d='M9 5a2 2 0 012-2h2a2 2 0 012 2'/%3E%3C/svg%3E");
}
/* エントリーアイコン（人物）: グリーン背景のため白 */
.h-cta-entry .h-cta-icon{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}
/* エントリーアイコン ホバー時: 白背景のためグリーン */
.h-cta-btn.h-cta-entry:hover .h-cta-icon,
.h-menu-cta-btn.h-cta-entry:hover .h-cta-icon{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2301A492' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}

/* ─────────────────────────
   HAMBURGER (SP)
───────────────────────── */
.h-menu-btn{
  display:none;
  width:58px; height:58px;
  background:#fff; border:none; cursor:pointer;
  border-radius:12px;
  box-shadow:0 4px 24px rgba(0,0,0,.14),0 1px 4px rgba(0,0,0,.07);
  position:relative; flex-shrink:0;
  padding:0;
}
.h-menu-btn-bar{
  position:absolute;
  left:50%; top:50%;
  width:24px; height:2px;
  background:var(--text);
  transform:translate(-50%,-50%);
  transition:transform .3s ease, opacity .2s ease;
  border-radius:2px;
}
.h-menu-btn-bar:nth-child(1){transform:translate(-50%,calc(-50% - 8px));}
.h-menu-btn-bar:nth-child(3){transform:translate(-50%,calc(-50% + 8px));}
.h-menu-btn.is-open .h-menu-btn-bar:nth-child(1){transform:translate(-50%,-50%) rotate(45deg);}
.h-menu-btn.is-open .h-menu-btn-bar:nth-child(2){opacity:0;}
.h-menu-btn.is-open .h-menu-btn-bar:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg);}

/* ─────────────────────────
   MOBILE MENU DRAWER
───────────────────────── */
.h-menu{
  position:fixed;
  inset:0;
  z-index:400;
  background:rgba(255,255,255,.98);
  backdrop-filter:blur(8px);
  visibility:hidden;
  opacity:0;
  transition:opacity .35s ease, visibility 0s linear .35s;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.h-menu.is-open{
  visibility:visible;
  opacity:1;
  transition:opacity .35s ease, visibility 0s linear 0s;
}
.h-menu-inner{
  max-width:520px; margin:0 auto;
  padding:100px 32px 60px;
  display:flex; flex-direction:column;
  gap:32px;
}
.h-menu-nav{
  display:flex; flex-direction:column;
  border-top:1px solid rgba(0,0,0,.08);
}
.h-menu-nav a{
  display:flex; align-items:center;
  gap:20px;
  padding:22px 8px;
  border-bottom:1px solid rgba(0,0,0,.08);
  text-decoration:none;
  color:var(--text);
  transition:opacity .2s, transform .3s ease;
  opacity:0;
  transform:translateY(10px);
}
.h-menu.is-open .h-menu-nav a{opacity:1; transform:translateY(0);}
.h-menu.is-open .h-menu-nav a:nth-child(1){transition:opacity .4s .15s ease, transform .4s .15s ease;}
.h-menu.is-open .h-menu-nav a:nth-child(2){transition:opacity .4s .22s ease, transform .4s .22s ease;}
.h-menu.is-open .h-menu-nav a:nth-child(3){transition:opacity .4s .29s ease, transform .4s .29s ease;}
.h-menu.is-open .h-menu-nav a:nth-child(4){transition:opacity .4s .36s ease, transform .4s .36s ease;}
.h-menu.is-open .h-menu-nav a:nth-child(5){transition:opacity .4s .43s ease, transform .4s .43s ease;}
.h-menu.is-open .h-menu-nav a:nth-child(6){transition:opacity .4s .50s ease, transform .4s .50s ease;}
.h-menu-num{
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:700;
  letter-spacing:.15em;
  color:var(--red);
  flex-shrink:0; width:28px;
}
.h-menu-label{display:flex; flex-direction:column; gap:2px;}
.h-menu-en{
  font-family:'Montserrat',sans-serif;
  font-size:16px; font-weight:700;
  letter-spacing:.06em;
  color:var(--text);
}
.h-menu-ja{
  font-size:11px; font-weight:500;
  letter-spacing:.1em;
  color:var(--mid);
}
.h-menu-cta{
  display:flex; flex-direction:column; gap:10px;
}
.h-menu-cta-btn{
  display:flex; align-items:center; justify-content:center;
  gap:10px;
  padding:16px 20px;
  border-radius:10px;
  background:var(--text); color:#fff;
  font-family:source-han-sans-japanese,sans-serif;
  font-size:14px; font-weight:700;
  letter-spacing:.06em;
  text-decoration:none;
  transition:background .2s, color .2s, opacity .2s;
}
.h-menu-cta-btn:hover{opacity:.85;}
/* SP募集要項: 黄色 */
.h-menu-cta-btn.h-cta-req{background:#FFE102; color:#fff;}
.h-menu-cta-btn.h-cta-req:hover{background:#fff; color:#FFE102; opacity:1;}
/* SPエントリー: グリーン */
.h-menu-cta-btn--primary{background:var(--green);}
.h-menu-cta-btn--primary:hover{background:#fff; color:var(--green); opacity:1;}
.h-menu-cta-btn .h-cta-icon{width:18px; height:18px;}
.h-menu-sns{
  display:flex; justify-content:center;
  padding-top:8px;
}
.h-menu-sns .h-sns-ig{width:24px; height:24px;}

/* ─────────────────────────
   FV
───────────────────────── */
#fv-wrap{position:relative; z-index:0; background:#000; overflow:clip;}
#fv{
  position:sticky; top:0;
  width:100%; height:100vh;
  overflow:hidden;
}
#fv-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; z-index:0;
}
.fv-overlay{
  position:absolute; inset:0;
  background:linear-gradient(160deg,rgba(0,0,0,.08) 0%,rgba(0,0,0,.18) 100%);
  z-index:1;
}
#fv-catch{
  position:absolute; inset:0; z-index:3;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  text-align:center; padding:0 40px;
  will-change:opacity,transform;
}
.fv-headline{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:clamp(44px,8.5vw,120px);
  font-weight:900; color:#fff;
  line-height:1.3; letter-spacing:.04em;
  text-shadow:0 4px 48px rgba(0,0,0,.4);
  animation:fadeUp 1s .3s both;
}
.fv-headline em{font-style:normal; color:var(--red);}
#fv-scroll-hint{
  position:absolute; bottom:36px; left:50%;
  transform:translateX(-50%);
  z-index:3; display:flex;
  flex-direction:column; align-items:center; gap:8px;
  animation:fadeIn .8s 1.4s both;
  transition:opacity .4s;
}
#fv-scroll-hint span{
  font-family:'Montserrat',sans-serif;
  font-size:8px; letter-spacing:.45em;
  color:rgba(255,255,255,.38); text-transform:uppercase;
}
.scb{
  width:1px; height:48px;
  background:rgba(255,255,255,.18);
  position:relative; overflow:hidden;
}
.scb::after{
  content:''; position:absolute;
  top:-100%; left:0; width:1px; height:100%;
  background:var(--red);
  animation:scrollBar 2.4s ease-in-out 1.8s infinite;
}
#fv-slide{
  position:relative;
  width:100%;
  z-index:4;
  margin-top:-140px;
  background:linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,.6) 18%);
  backdrop-filter:blur(1px);
  display:flex; flex-direction:column;
}
#fv-message{
  width:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  padding:180px 0 300px;
}
.fv-msg-wrap{
  position:relative;
  width:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:clamp(20px,4vh,40px) 0;
}
.fv-msg-inner{max-width:720px; width:100%; padding:0 48px; text-align:center; position:relative;}
.msg-label{
  display:block;
  font-family:'Montserrat',sans-serif;
  font-size:16px; font-weight:700;
  letter-spacing:.55em; text-transform:uppercase;
  color:#fff; margin-bottom:68px;
  position:relative; z-index:1;
  opacity:0; transform:translateY(14px);
  transition:opacity .7s .15s,transform .7s .15s;
}
.msg-label::before{
  content:'RECRUIT';
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%, -50%);
  font-family:'Montserrat',sans-serif;
  font-size:clamp(96px,14vw,192px);
  font-weight:700; letter-spacing:-.01em; line-height:1;
  color:rgba(255,255,255,.07);
  white-space:nowrap; pointer-events:none; z-index:-1;
}
#fv-message.visible .msg-label{opacity:1; transform:translateY(0);}
.msg-headline{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:clamp(17px,2.4vw,27px); font-weight:700;
  color:rgba(255,255,255,.95); line-height:1.8;
  letter-spacing:.04em; margin-top:20px; margin-bottom:36px;
  position:relative; z-index:1;
  opacity:0; transform:translateY(18px);
  transition:opacity .7s .28s,transform .7s .28s;
}
#fv-message.visible .msg-headline{opacity:1; transform:translateY(0);}
.msg-headline strong{color:#fff;}
.msg-divider{
  width:40px; height:1px; background:transparent;
  margin:0 auto 36px;
  opacity:0; transition:opacity .6s .4s;
}
#fv-message.visible .msg-divider{opacity:1;}
.msg-body{
  display:flex; flex-direction:column; gap:22px;
  opacity:0; transform:translateY(16px);
  transition:opacity .8s .45s,transform .8s .45s;
}
#fv-message.visible .msg-body{opacity:1; transform:translateY(0);}
.msg-body p{
  font-size:clamp(14px,1.5vw,17px);
  line-height:2.2; color:rgba(255,255,255,.75);
  letter-spacing:.07em;
}
.msg-body p.accent{color:rgba(255,255,255,.95); font-weight:700; font-size:clamp(15px,1.6vw,18px);}
.msg-body p.close{color:#fff; font-weight:700; font-size:clamp(17px,2.4vw,27px); margin-top:8px;}
.fv-msg-ticker{
  width:100%;
  overflow:hidden;
  pointer-events:none;
}
.fv-msg-ticker-track{
  display:flex; gap:80px;
  width:max-content;
  animation:fvTickerRight 90s linear infinite;
}
.fv-msg-ticker-track span{
  font-family:'Montserrat',sans-serif;
  font-size:clamp(84px,12vw,164px); font-weight:800;
  color:#fff; text-transform:uppercase;
  letter-spacing:.06em; white-space:nowrap;
}
@keyframes fvTickerRight{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* ─────────────────────────
   セクション共通（角丸ブロック）
───────────────────────── */
.r-sec{
  position:relative;
  border-radius:var(--sec-r) var(--sec-r) 0 0;
  margin-top:calc(-1 * var(--sec-r));
  overflow:hidden;
}
#message{position:relative; z-index:1; border-radius:0;}
#interview{z-index:2; border-radius:0;}
#culture{z-index:3;}
#sns{z-index:4;}
#entry{z-index:5;}
footer.r-sec{z-index:6;}
.culture-float-anchor{
  position:relative;
  height:0;
  z-index:2;
  overflow:visible;
}
.sec-en{
  font-family:'Montserrat',sans-serif;
  font-size:clamp(48px,7vw,96px);
  font-weight:700; letter-spacing:-.01em;
  line-height:1; margin-bottom:4px;
}
.sec-ja{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:16px; font-weight:500;
  letter-spacing:.2em; opacity:.65;
}
.sec-inner{max-width:1280px; margin:0 auto; padding:0 60px;}

/* ─────────────────────────
   02 MESSAGE
───────────────────────── */
#message{
  padding:0;
  margin:0;
  background:none;
}
.msg-head{
  background:#fff;
  padding:64px 60px 48px;
  margin-bottom:0;
}
.msg-head .sec-en{color:var(--red);}
.msg-head .sec-ja{color:var(--mid);}
.msg-wrap{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:80px;
  max-width:1200px;
  margin:0 auto;
  padding:60px 60px 0;
  position:relative;
}
.msg-photo-wrap{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  border-radius:4px;
}
.msg-photo-wrap img{
  width:100%; height:100%;
  object-fit:cover; object-position:top;
}
.msg-photo-num{
  position:absolute; bottom:16px; right:16px;
  font-family:'Montserrat',sans-serif;
  font-size:80px; font-weight:900;
  color:rgba(255,255,255,.12); line-height:1;
  pointer-events:none;
}
.msg-text-wrap{color:#fff;}
.msg-quote{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:clamp(20px,2.8vw,34px);
  font-weight:700; line-height:1.65;
  letter-spacing:.04em; margin-bottom:44px;
}
.msg-hr{
  width:40px; height:2px;
  background:rgba(255,255,255,.5);
  margin-bottom:24px;
}
.msg-role{
  font-size:12px; font-weight:600; letter-spacing:.12em; margin-bottom:10px;
  color:rgba(255,255,255,.95);
  display:inline-block;
  padding-bottom:5px;
  border-bottom:1px solid rgba(255,255,255,.4);
}
.msg-name{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:28px; font-weight:700;
  letter-spacing:.06em; margin-bottom:8px;
}
.msg-year{
  font-size:11px; font-family:'Montserrat',sans-serif; letter-spacing:.12em;
  color:var(--red);
  display:inline-block;
  background:#fff;
  padding:4px 12px;
}
.msg-btn-wrap{margin-top:48px;}
.btn-outline{
  display:inline-flex; align-items:center; gap:10px;
  padding:13px 32px;
  border:1px solid rgba(255,255,255,.4);
  border-radius:100px;
  color:#fff;
  font-family:source-han-sans-japanese,sans-serif;
  font-size:13px; font-weight:700; letter-spacing:.06em;
  transition:all .25s;
}
.btn-outline:hover{background:rgba(255,255,255,.15);}
.btn-outline-arrow{font-size:16px; transition:transform .2s;}
.btn-outline:hover .btn-outline-arrow{transform:translateX(4px);}
#message .btn-outline{
  background:#fff; color:var(--red);
  border-color:#fff;
  box-shadow:0 4px 20px rgba(0,0,0,.12);
}
#message .btn-outline:hover{background:rgba(255,255,255,.88); transform:translateY(-2px);}

/* ─────────────────────────
   03 INTERVIEW
───────────────────────── */
#interview{
  background:#fff;
  padding:80px 0 80px;
}
.iv-head{
  padding:0 60px; margin-bottom:52px;
  text-align:center;
}
.iv-head .sec-en{color:var(--text);}
.iv-head .sec-ja{color:var(--mid);}
.iv-slider-wrap{overflow:hidden; position:relative; background:#fff; padding:20px 0;}
.iv-track{
  display:flex; gap:20px;
  background:#fff;
  will-change:transform;
}
.iv-card{
  flex-shrink:0;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 3px 10px rgba(0,0,0,.15), 0 1px 3px rgba(0,0,0,.1);
  transition:box-shadow .3s, opacity .3s;
  display:flex; flex-direction:column;
}
.iv-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.22), 0 2px 6px rgba(0,0,0,.12);}
.iv-card-img{
  width:100%; aspect-ratio:3/4;
  object-fit:cover; object-position:top;
  display:block; flex-shrink:0;
}
.iv-card-img-placeholder{
  aspect-ratio:3/4; flex-shrink:0;
  display:flex; align-items:stretch;
}
.iv-card-body{
  padding:20px 18px 20px;
  display:flex; flex-direction:column;
  flex:1;
}
.iv-badge{
  display:inline-block;
  padding:3px 10px;
  border-radius:100px;
  font-size:10px; font-weight:700; letter-spacing:.08em;
  margin-bottom:10px;
}
.iv-badge.sales{background:rgba(246,72,10,.1); color:var(--red);}
.iv-badge.business{background:rgba(246,72,10,.1); color:var(--red);}
.iv-badge.staff{background:rgba(24,24,46,.07); color:var(--mid);}
.iv-card-name-en{
  font-size:11px; color:#999; letter-spacing:.06em;
  margin:-6px 0 10px;
}
.iv-card-name{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:17px; font-weight:700;
  margin-bottom:8px; color:var(--text);
}
.iv-card-quote{
  font-size:12px; line-height:1.8;
  color:var(--mid); margin-bottom:8px;
  flex:1;
}
.iv-card-role{
  font-size:10px; font-weight:500;
  color:var(--mid); opacity:.65;
  font-family:'Montserrat',sans-serif; letter-spacing:.08em;
  margin-bottom:14px;
}
.iv-card-btn{
  display:flex; align-items:center; gap:6px;
  padding:9px 0;
  border-top:1px solid rgba(0,0,0,.06);
  color:var(--red);
  font-size:12px; font-weight:700; letter-spacing:.04em;
  transition:gap .2s, opacity .2s;
  margin-top:auto;
}
.iv-card-btn:hover{gap:10px; opacity:.8;}
.iv-controls{
  display:flex; align-items:center;
  justify-content:center; gap:20px;
  margin-top:8px;
}
.iv-arrow{
  width:40px; height:40px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:50%;
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all .2s;
  flex-shrink:0;
}
.iv-arrow:hover{background:var(--red); border-color:var(--red);}
.iv-arrow:hover svg{stroke:#fff;}
.iv-arrow svg{width:14px; height:14px; display:block; transition:stroke .2s;}
.iv-dots{display:flex; gap:6px; align-items:center;}
.iv-dot{
  width:6px; height:6px; border-radius:50%;
  background:rgba(0,0,0,.2);
  cursor:pointer; transition:all .25s;
}
.iv-dot.active{background:var(--red); width:18px; border-radius:3px;}
.iv-more{
  display:flex; justify-content:center;
  margin-top:44px;
}
.btn-fill{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 40px;
  background:var(--red); color:#fff;
  border-radius:100px;
  font-family:source-han-sans-japanese,sans-serif;
  font-size:13px; font-weight:700; letter-spacing:.06em;
  transition:all .25s;
  box-shadow:0 6px 24px rgba(246,72,10,.3);
}
.btn-fill:hover{background:var(--red); box-shadow:0 8px 28px rgba(246,72,10,.35);}
.btn-fill-arrow{font-size:15px; transition:transform .2s;}
.btn-fill:hover .btn-fill-arrow{transform:translateX(4px);}

/* ─────────────────────────
   04 CULTURE
───────────────────────── */
#culture{
  background:var(--green);
  padding:0;
  color:#fff;
  border-radius:0;
  clip-path:polygon(0 5vw, 100% 0, 100% calc(100% - 5vw), 0 100%);
  min-height:85vh;
  display:flex;
  align-items:center;
}
.co-culture-abs{
  position:absolute;
  top:-110px; left:48px;
  width:320px;
  border-radius:10px;
  overflow:hidden;
  z-index:10;
}
.co-culture-abs img{width:100%; display:block; object-fit:cover;}
.co-wrap{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
  gap:60px;
  max-width:1200px;
  margin:0 auto;
  padding:0 60px;
  position:relative; z-index:3;
}
.co-left{
  padding:calc(5vw + 72px) 0 calc(5vw + 64px);
  display:flex; flex-direction:column;
  gap:32px;
}
.co-head{margin-bottom:20px;}
.co-head .sec-en{color:#fff;}
.co-head .sec-ja{color:#fff;}
.co-nav{
  display:flex; flex-direction:column;
  gap:0; margin-bottom:0;
  border-top:1px solid rgba(255,255,255,.25);
}
.co-nav-item{
  display:flex; align-items:center;
  padding:60px 16px;
  margin:0 -16px;
  border-bottom:1px solid rgba(255,255,255,.25);
  color:rgba(255,255,255,.95);
  cursor:pointer;
  transition:background .25s, color .25s, opacity .25s;
  gap:20px;
  border-radius:6px;
}
.co-nav-item:hover{
  background:#fff;
  opacity:1;
  color:var(--green);
}
.co-nav-num{
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:600; letter-spacing:.12em;
  color:rgba(255,255,255,.55);
  flex-shrink:0; width:26px;
  transition:color .25s;
}
.co-nav-item:hover .co-nav-num{color:var(--green);}
.co-nav-label{
  flex:1;
  display:flex; align-items:baseline;
  gap:14px;
}
.co-nav-en{
  font-family:'Montserrat',sans-serif;
  font-size:clamp(20px,2.6vw,30px); font-weight:300; letter-spacing:.02em;
}
.co-nav-ja{
  font-size:12px; font-weight:400; letter-spacing:.06em;
  color:rgba(255,255,255,.65);
  transition:color .25s;
}
.co-nav-item:hover .co-nav-ja{color:var(--green);}
.co-nav-circle{
  width:38px; height:38px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:15px; color:#fff;
  flex-shrink:0;
  transition:background .25s, border-color .25s, color .25s;
}
.co-nav-item:hover .co-nav-circle{
  background:var(--green);
  border-color:var(--green);
  color:#fff;
}
.co-right{
  display:flex;
  margin-top:-10%;
  margin-right:calc((min(100vw,1200px) - 100vw) / 2 - 60px);
  gap:12px;
  overflow:hidden;
  position:relative; z-index:3;
  height:83vh;
}
.co-scroll-col{flex:1; overflow:hidden;}
.co-scroll-inner{
  display:flex; flex-direction:column;
  gap:12px;
}
.co-scroll-inner img{
  width:100%; aspect-ratio:8/9;
  object-fit:cover;
  display:block; flex-shrink:0;
}
.co-scroll-up .co-scroll-inner{
  animation:colScrollUp 32s linear infinite;
}
.co-scroll-down .co-scroll-inner{
  animation:colScrollDown 32s linear infinite;
}
@keyframes colScrollUp{
  from{transform:translateY(0);}
  to{transform:translateY(-50%);}
}
@keyframes colScrollDown{
  from{transform:translateY(-50%);}
  to{transform:translateY(0);}
}
@keyframes colScrollLeft{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@keyframes colScrollRight{
  from{transform:translateX(-50%);}
  to{transform:translateX(0);}
}

/* ─────────────────────────
   06 SNS
───────────────────────── */
#sns{
  background:#fff;
  padding:80px 0 60px;
  position:relative;
}
.sns-vert{
  position:absolute;
  left:28px; top:42%;
  transform:translateY(-50%) rotate(-90deg);
  font-family:'Montserrat',sans-serif;
  font-size:10px; font-weight:700; letter-spacing:.3em;
  text-transform:uppercase; color:#ccc;
  white-space:nowrap; user-select:none;
}
.sns-intro-wrap{
  text-align:center;
  max-width:1200px; margin:0 auto; padding:0 80px;
  margin-bottom:24px;
}
.sns-intro{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:clamp(13px,1.3vw,15px);
  color:#777; letter-spacing:.06em; line-height:2;
}
.sns-bar{
  background:#000;
  width:fit-content;
  margin:0 auto 36px;
  display:flex;
  flex-direction:column;
}
.sns-bar-inner{
  padding:5px 5px 0;
  display:flex; align-items:flex-end;
}
.sns-bar-text{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:clamp(18px,3vw,48px);
  font-weight:900;
  font-style:italic;
  color:#fff;
  letter-spacing:.05em;
  white-space:nowrap;
  display:block;
  line-height:1;
}
.sns-bar-accent{
  height:5px;
  margin-top:-1px;
  background:linear-gradient(90deg,#833ab4 0%,#c13584 33%,#fd1d1d 60%,#fcb045 100%);
}
.sns-subdesc-wrap{
  max-width:1200px; margin:0 auto; padding:0 80px;
  margin-bottom:52px;
}
.sns-subdesc{
  border:1.5px solid rgba(253,100,0,.55);
  padding:16px 24px;
  display:inline-block;
  width:100%;
  box-sizing:border-box;
  text-align:center;
}
.sns-subdesc p{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:clamp(12px,1.1vw,14px); line-height:1.9;
  font-weight:600; letter-spacing:.04em;
  background:linear-gradient(90deg,#833ab4,#fd1d1d,#fcb045);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.sns-top-wrap{
  max-width:1200px; margin:0 auto; padding:0 80px 30px;
  position:relative; z-index:2;
}
.sns-top{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:64px;
  align-items:stretch;
  position:relative;
}
.sns-phone-col{
  display:flex; justify-content:center; align-items:flex-start;
}
.sns-phone-img{
  width:260px;
  border-radius:32px;
  box-shadow:0 24px 72px rgba(24,24,46,.16);
  display:block;
}
.sns-accounts-col{
  display:flex; flex-direction:column;
  gap:15.5px;
  position:relative;
}
.sns-card{
  display:flex; flex-direction:row; align-items:center;
  gap:16px;
  background:#f6f6f6;
  border-radius:14px;
  padding:20px 24px;
}
.sns-card-top{
  display:flex; align-items:center; gap:14px; flex:1;
}
.sns-icon{
  width:48px; height:48px;
  background:var(--text);
  border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  text-decoration:none; flex-shrink:0;
  transition:background .25s, transform .25s;
}
.sns-icon:hover{background:var(--red); transform:translateY(-2px);}
.sns-icon svg{width:24px; height:24px; fill:#fff;}
.sns-card-info{flex:1;}
.sns-platform{
  font-family:'Montserrat',sans-serif;
  font-size:9px; font-weight:700; letter-spacing:.2em;
  color:#aaa; display:block; margin-bottom:3px; text-transform:uppercase;
}
.sns-handle{
  font-family:'Montserrat',sans-serif;
  font-size:15px; font-weight:700; letter-spacing:.04em;
  color:var(--text);
}
.sns-follow{
  display:inline-flex; align-items:center;
  padding:9px 22px;
  border:1.5px solid var(--text);
  border-radius:100px;
  font-family:'Montserrat',sans-serif;
  font-size:10px; font-weight:700; letter-spacing:.15em;
  color:var(--text); text-decoration:none; text-transform:uppercase;
  transition:all .2s; white-space:nowrap; flex-shrink:0;
}
.sns-follow:hover{background:var(--text); color:#fff;}
.sns-deco{
  position:absolute;
  pointer-events:none; z-index:1; display:block;
}
.sns-deco-topright{right:0; top:220px; width:210px; z-index:0;}
.sns-catch{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:clamp(20px,2.3vw,30px);
  font-weight:900;
  line-height:1.5;
  color:var(--text);
  letter-spacing:.04em;
}
.sns-card-deco{
  display:block;
  width:100%;
  max-width:600px;
  margin:0 auto;
  pointer-events:none;
  flex-shrink:0;
}
.sns-gallery{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0;
  margin-top:-80px;
  line-height:0;
  position:relative;
  z-index:1;
}
.sns-gallery img{
  width:100%; aspect-ratio:3/2;
  object-fit:cover; display:block;
}

/* ─────────────────────────
   05 ENTRY（共通エントリーエリア）
───────────────────────── */
#entry{
  background:#111;
  padding:0;
}
.entry-bg{
  position:relative;
  display:flex; flex-direction:column;
  min-height:72vh;
  overflow:hidden;
  padding-bottom:calc(var(--sec-r) + 24px);
}
.entry-bg-img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  filter:brightness(.48);
}
.entry-content{
  position:relative; z-index:1;
  flex:1;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  text-align:center; color:#fff;
  padding:265px 40px 60px;
}
.entry-title{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:clamp(36px,6vw,80px);
  font-weight:900;
  line-height:1.1;
  letter-spacing:.02em; margin-bottom:20px;
}
.entry-sub{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:clamp(14px,1.5vw,18px);
  font-weight:700;
  line-height:1.9; color:rgba(255,255,255,.85);
  letter-spacing:.06em;
}
.entry-btns{
  position:relative; z-index:10;
  display:flex; width:70%; margin:0 auto;
}
.entry-btn{
  flex:1; display:flex; align-items:center;
  padding:28px 48px;
  background:var(--green);
  color:#fff;
  border-left:1px solid rgba(255,255,255,.3);
  font-family:source-han-sans-japanese,sans-serif;
  font-size:clamp(15px,1.6vw,19px);
  font-weight:700; letter-spacing:.06em;
  transition:background .25s, color .25s;
}
.entry-btn:first-child{border-left:none;}
.entry-btn:hover{background:#fff; color:var(--green);}
.entry-btn-dash{
  margin-right:16px;
  opacity:.4;
  font-family:'Montserrat',sans-serif;
  font-size:18px; font-weight:300;
}

/* ─────────────────────────
   FOOTER
───────────────────────── */
footer.r-sec{
  background-color:#fff;
  color:var(--text);
}
.ft2-body{
  display:grid;
  grid-template-columns:1fr auto;
  gap:80px;
  max-width:1200px; margin:0 auto;
  padding:64px 80px 48px;
}
.ft2-logo{ margin-bottom:20px; }
.ft2-logo img{
  height:44px; width:auto;
  filter:none;
}
.ft2-address{
  font-style:normal;
  font-size:14px; color:var(--text);
  line-height:1.7; letter-spacing:.05em;
  margin-bottom:28px;
}
.ft2-external{
  display:flex; flex-direction:column; gap:10px;
}
.ft2-ext-btn{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  width:240px; padding:10px 40px 10px 20px;
  background:var(--red);
  border:1px solid var(--red);
  border-radius:9999px;
  font-size:14px; color:#fff;
  letter-spacing:.06em; white-space:nowrap;
  text-decoration:none;
  transition:background .3s ease, color .3s ease;
}
.ft2-ext-btn:hover{background:#fff; color:var(--red);}
.ft2-ext-btn:hover .ft2-ext-icon{border-color:var(--red); color:var(--red);}
.ft2-ext-btn--entry{background:var(--green); border-color:var(--green);}
.ft2-ext-btn--entry:hover{background:#fff; color:var(--green);}
.ft2-ext-btn--entry:hover .ft2-ext-icon{border-color:var(--green); color:var(--green);}
.ft2-ext-icon{
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; justify-content:center;
  width:28px; height:28px;
  border:1px solid rgba(255,255,255,.7);
  border-radius:9999px;
  font-size:13px; color:#fff;
  transition:border-color .3s ease, color .3s ease;
}
.ft2-nav{
  display:flex; gap:60px;
  list-style:none;
  padding-top:4px;
}
.ft2-nav-col{
  display:flex; flex-direction:column; gap:18px;
  list-style:none; padding:0; margin:0;
}
.ft2-nav-link{
  font-size:15px; font-weight:400;
  color:var(--text); letter-spacing:.05em;
  white-space:nowrap; text-decoration:none;
  transition:opacity .3s ease;
}
.ft2-nav-link:hover{opacity:.7;}
.ft2-bottom{
  max-width:1200px; margin:0 auto;
  padding:20px 80px 40px;
  border-top:1px solid rgba(0,0,0,.1);
  display:flex; align-items:center; justify-content:space-between;
}
.ft2-privacy-wrap{
  display:flex; align-items:center; gap:24px;
}
.ft2-privacy{
  display:inline-flex; align-items:center; gap:5px;
  font-size:13px; color:var(--text);
  border-bottom:1px solid rgba(0,0,0,.3);
  padding-bottom:2px;
  letter-spacing:.05em; text-decoration:none;
  transition:opacity .3s ease; white-space:nowrap;
}
.ft2-privacy:hover{opacity:.7;}
.ft2-copyright{
  font-family:'Montserrat',sans-serif;
  font-size:12px; color:rgba(0,0,0,.45);
  letter-spacing:.07em; white-space:nowrap;
}

/* ─────────────────────────
   CV BUTTON
───────────────────────── */
.cv-btn{
  position:fixed;
  bottom:28px; right:24px;
  z-index:400;
  width:230px; height:230px;
  opacity:0; transform:translateY(16px);
  pointer-events:none;
  transition:opacity .5s, transform .5s;
}
.cv-btn.show{opacity:1; transform:translateY(0); pointer-events:auto;}
.cv-btn.is-hide{opacity:0; pointer-events:none; transform:translateY(16px);}
.cv-btn-bar{display:none;}
.cv-btn-ring{
  position:absolute; inset:0;
  width:100%; height:100%;
  animation:cvRingRotate 10s linear infinite;
  pointer-events:none;
}
@keyframes cvRingRotate{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}
.cv-btn-link{
  position:absolute;
  inset:32px;
  background:var(--green);
  border-radius:50%;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:5px;
  color:#fff;
  text-decoration:none;
  transition:background .25s, color .25s;
}
.cv-btn-link:hover{background:#fff; color:var(--green);}
.cv-btn-link:hover .cv-btn-sub,
.cv-btn-link:hover .cv-btn-arrow{color:var(--green); text-shadow:none;}
.cv-btn-light{font-weight:400;}
.cv-btn-sub{
  font-family:source-han-sans-japanese,sans-serif;
  font-size:19px; font-weight:900; line-height:1.6;
  text-align:center;
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.3);
}
.cv-btn-arrow{
  font-style:normal;
  font-size:32px;
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.3);
  line-height:1;
}

/* ─────────────────────────
   REVEAL（スクロール出現）
───────────────────────── */
.rv{opacity:1; transform:translateY(0); transition:opacity .9s,transform .9s cubic-bezier(.16,1,.3,1);}
.rv.on{opacity:1; transform:translateY(0);}
.rv-l{opacity:1; transform:translateX(0); transition:opacity .9s,transform .9s cubic-bezier(.16,1,.3,1);}
.rv-l.on{opacity:1; transform:translateX(0);}
.rv-r{opacity:1; transform:translateX(0); transition:opacity .9s,transform .9s cubic-bezier(.16,1,.3,1);}
.rv-r.on{opacity:1; transform:translateX(0);}

/* ─────────────────────────
   ANIMATIONS
───────────────────────── */
@keyframes fadeUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes scrollBar{0%{top:-100%;}50%{top:0;}100%{top:100%;}}

/* ─────────────────────────
   下層ページ共通
───────────────────────── */
.page-hero{
  padding:160px 60px 80px;
  max-width:1200px;
  margin:0 auto;
}
.page-hero-en{
  font-family:'Montserrat',sans-serif;
  font-size:clamp(48px,7vw,96px);
  font-weight:700; letter-spacing:-.01em;
  line-height:1; margin-bottom:4px;
  color:var(--red);
}
.page-hero-ja{
  font-size:16px; font-weight:500;
  letter-spacing:.2em; opacity:.65;
  margin-bottom:32px;
}
.page-content{
  max-width:1200px;
  margin:0 auto;
  padding:60px 60px 100px;
}

/* ─────────────────────────
   RESPONSIVE
───────────────────────── */
@media(max-width:1024px){
  .sec-inner,.msg-wrap,.co-wrap,.ft-nav,.ft-top,.ft-tel,.ft-bot{padding-left:32px;padding-right:32px;}
  .iv-head,.msg-head{padding-left:32px;padding-right:32px;}
  .h-nav a{padding:0 8px;}
  .h-cta-btn{min-width:88px;}
  .h-logo-tag{display:none;}
  .co-right{height:calc((100vw - 124px) * 0.84375);}
  .sns-bar{max-width:none;}
  .sns-bar-inner{padding:24px 48px 26px;}
  .sns-intro-wrap,.sns-subdesc-wrap,.sns-top-wrap{padding-left:48px; padding-right:48px;}
  .sns-deco-topright{width:170px;}
  .sns-top{gap:40px;}
}
@media(max-width:768px){
  .h-center{display:none;}
  .h-logo-block{display:none;}
  .h-entry-block{display:none;}
  .h-menu-btn{display:block;}
  .h-logo-tag{display:inline-block;}
  .h-logo-box img{height:22px;}
  .h-logo-box{padding:0 16px; flex:1;}
  .h-cta-btn{min-width:80px; font-size:10px;}
  /* SP: ヘッダー高さ+上下同余白でFVを下げる (top:14 + height:58 + gap:14 = 86px) */
  #fv-wrap,.ct-mv,.req-mv,.ent-mv,.wf-mv,.itv-mv,.itv-dtl-mv,.co-mv,.msg-mv{margin-top:86px;}
  /* FV: 100vh → 横幅ベース 16:9 / スティッキー解除 */
  #fv{height:56.25vw; position:relative;}
  #fv-slide{margin-top:0;}
  #fv-message{padding:80px 0 50px; background:#fff;}
  #fv-scroll-hint{display:none;}
  /* fv-message SP: 白背景・黒テキストに反転 */
  .msg-label{color:var(--text);}
  .msg-label::before{color:rgba(0,0,0,.05);}
  .msg-headline{color:var(--text);}
  .msg-headline strong{color:var(--text);}
  .msg-body p{color:var(--mid);}
  .msg-body p.accent{color:var(--text);}
  .msg-body p.close{color:var(--text);}
  /* CV Button: SP下部固定バー化 */
  .cv-btn{
    width:100%; height:auto;
    left:0; right:0; bottom:0; top:auto;
    margin:0; padding:0;
    display:block;
  }
  .cv-btn-ring,.cv-btn-link{display:none;}
  .cv-btn-bar{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
    box-shadow:0 -4px 20px rgba(0,0,0,.15);
  }
  .cv-btn-bar-item{
    display:flex; align-items:center; justify-content:center;
    padding:16px 8px;
    background:var(--green); color:#fff;
    font-family:source-han-sans-japanese,sans-serif;
    font-size:14px; font-weight:700;
    letter-spacing:.06em;
    text-decoration:none;
    transition:opacity .2s;
  }
  .cv-btn-bar-item:active{opacity:.85;}
  .cv-btn-bar-item--newgrad{border-left:1px solid rgba(255,255,255,.3);}
  .fv-headline{font-size:clamp(36px,10vw,60px);}
  .fv-msg-inner{padding:0 24px;}
  .msg-headline{font-size:16px;}
  .msg-wrap{grid-template-columns:1fr; gap:40px; padding:40px 32px 0;}
  .msg-head{padding:48px 32px 36px;}
  .msg-photo-wrap{aspect-ratio:4/3;}
  .msg-quote{font-size:clamp(18px,4vw,24px);}
  .iv-track{padding:0 0 32px;}
  .iv-head{padding:0 24px; margin-bottom:36px;}
  .iv-more{margin-top:32px;}
  .co-wrap{grid-template-columns:1fr; gap:24px; padding:0;}
  .co-culture-abs{left:24px; width:200px; top:-80px;}
  .co-left{padding:calc(13vw + 16px) 32px 65px;}
  .co-right{
    flex-direction:column;
    height:auto;
    margin-right:0;
    gap:10px;
    overflow:hidden;
  }
  .co-scroll-col{flex:none; width:100%; overflow:hidden;}
  .co-scroll-inner{flex-direction:row; width:max-content;}
  .co-scroll-inner img{width:40vw; height:auto; aspect-ratio:4/5;}
  .co-scroll-up .co-scroll-inner{animation:colScrollLeft 20s linear infinite;}
  .co-scroll-down .co-scroll-inner{animation:colScrollRight 20s linear infinite;}
  /* SP: セクションの重なりを解除 */
  .r-sec{margin-top:0;}
  /* Entry CTA: 画像を上部に16:9で配置、テキストは画像上にオーバーレイ */
  .entry-bg{min-height:0; padding-bottom:0; background:#111; position:relative;}
  .entry-bg-img{
    position:relative; inset:auto;
    width:100%; height:56.25vw;
    filter:brightness(.55); object-fit:cover;
  }
  .entry-content{
    position:absolute; top:8vw; left:0; right:0;
    height:56.25vw;
    flex:none;
    padding:24px;
    justify-content:center;
  }
  .entry-title{font-size:clamp(24px,7vw,30px); margin-bottom:10px;}
  .entry-sub{font-size:12px; line-height:1.9;}
  .entry-btns{flex-direction:column; width:100%; margin-top:0;}
  .entry-btn{border-left:none; border-top:1px solid rgba(255,255,255,.15); padding:14px 24px; font-size:13px;}
  .entry-btn:first-child{border-top:none;}
  .ft-nav{grid-template-columns:repeat(2,1fr); padding:36px 32px;}
  .ft-tel{flex-direction:column; gap:8px;}
  .ft-tel-num{font-size:24px;}
  .ft-top,.ft-tel,.ft-bot{padding-left:24px;padding-right:24px;}
  /* Footer (ft2) SP: 縦積み */
  .ft2-body{grid-template-columns:1fr; gap:40px; padding:48px 24px 32px;}
  .ft2-nav{flex-direction:column; gap:24px;}
  .ft2-nav-col{gap:14px;}
  .ft2-ext-btn{width:100%;}
  .ft2-bottom{flex-direction:column; align-items:flex-start; gap:12px; padding:20px 24px 32px;}
  #sns{padding:60px 0 40px;}
  .sp-br{display:block;}
  .sp-space{display:inline;}
  .sns-bar{max-width:none; width:100%;}
  .sns-bar-inner{padding:22px 24px 24px; justify-content:center;}
  .sns-intro-wrap,.sns-subdesc-wrap,.sns-top-wrap{padding-left:24px; padding-right:24px;}
  .sns-top{grid-template-columns:1fr 1fr; gap:16px; align-items:start;}
  .sns-phone-col{justify-content:flex-start;}
  .sns-phone-img{width:100%; border-radius:16px;}
  .sns-accounts-col{gap:12px;}
  .sns-catch{font-size:clamp(13px,3.8vw,18px);}
  .sns-card{flex-direction:column; align-items:flex-start; padding:12px 14px; gap:10px;}
  .sns-card-top{gap:10px;}
  .sns-icon{width:36px; height:36px; border-radius:9px;}
  .sns-icon svg{width:18px; height:18px;}
  .sns-handle{font-size:12px;}
  .sns-follow{width:100%; justify-content:center; font-size:9px; padding:8px 12px;}
  .sns-deco-topright{width:140px;}
  .sns-vert{display:none;}
  .sns-gallery{grid-template-columns:repeat(2,1fr); margin-top:-50px;}
  .sns-gallery img:nth-child(n+5){display:none;}
  .page-hero{padding:140px 32px 60px;}
  .page-content{padding:40px 32px 80px;}
}
@media(max-width:480px){
  :root{--sec-r:20px;}
  .fv-headline{font-size:clamp(30px,7vw,46px);}
  .h-entry-block{display:none;}
  .r-header{top:10px;left:10px;right:10px;}
  /* SP: ヘッダー高さ+上下同余白 (top:10 + height:58 + gap:10 = 78px) */
  #fv-wrap,.ct-mv,.req-mv,.ent-mv,.wf-mv,.itv-mv,.itv-dtl-mv,.co-mv,.msg-mv{margin-top:78px;}
  .ft-nav{grid-template-columns:1fr;}
  .co-culture-abs{width:140px; top:-56px; left:24px;}
  .sns-deco-topright{display:none;}
  .entry-btn{padding:22px 32px; font-size:14px;}
  .entry-btn-dash{margin-right:10px;}
  .page-hero{padding:130px 24px 48px;}
  .page-content{padding:32px 24px 60px;}
  /* ── SPフォントサイズ調整（中途半端な改行防止）── */
  .sec-en{font-size:clamp(30px,8vw,40px);}
  .msg-label::before{font-size:clamp(52px,14vw,72px);}
  .fv-msg-ticker-track span{font-size:clamp(46px,12vw,68px);}
  .entry-title{font-size:clamp(26px,8vw,34px);}
  .page-hero-en{font-size:clamp(30px,8vw,40px);}
}
