/* =========== 基本設定 =========== */
:root{
  --c-primary:#005c9e;
  --c-primary-2:#0b3264;
  --c-bg:#ffffff;
  --c-bg-light:#f5f5f7;
  --c-text:#222222;
  --c-text-sub:#666666;
  --c-border:#e5e7eb;
--container-wrap:100%;
  --container:1200px;
  --container-in:900px;
  --radius-lg:16px;
  --radius-md:12px;

  --shadow-sm:0 6px 18px rgba(0,0,0,.06);
}

*,
*::before,
*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
}
html,body{
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body{
  margin:0;
  font-family:"Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--c-text);
  line-height:1.7;
  background:#fafafa;
}

/* アクセシブルなフォーカス */
:focus-visible{
  outline:3px solid #78b3ff;
  outline-offset:2px;
}

/* =========== ヘッダー =========== */
.site-header{
  position:sticky; top:0; z-index:9999;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--c-border);
}
.header-inner{
  max-width:var(--container-wrap);
  /*padding: 10px 20px;*/
  margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  gap:16px;
  height: 95px;
}
a.site-logo{
  display: flex;
  align-items: center;
  width: 20%;
  font-weight:700;
  padding-left: 3vw;
  letter-spacing:.12em;
  color:var(--c-text); text-decoration:none;
}

/* モバイルメニュー */

#menu-btn-check{
    display: none;
}

nav{
    height: 100%;
}

nav>ul{
    display: flex;
    margin: 0;
    padding: 0;
    height: 100%;
}

nav>ul>li{
    list-style-type: none;
    font-size: 0.9em;
    text-align: center;
    margin-right: 1.5em;
    display: flex;
    justify-content: center;
    flex-direction: column;
}

nav>ul li a{
    text-decoration: none;
    color: #444;
}
/*
nav>ul li:nth-child(5){
    display: none;
}
*/

nav>ul li:nth-child(7),nav ul li:nth-child(8){
    margin-right: 0;
}
/*
nav>ul li:nth-child(8){
    border-left: 2px solid #fff;
}
*/

nav>ul li:nth-child(7) a{
    padding: 0 1em;
}

nav>ul li:nth-child(8) a{
    padding: 0 2em;
}



nav>ul li:nth-child(7) a,nav ul li:nth-child(8) a{
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(25, 98, 174, 1) 0%, rgba(16, 44, 136, 1) 100%);
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

nav>ul li img{
    width: 35%;
}

nav>ul li:nth-child(8) img{
    padding-top: 0.5em;
}

nav>ul li:nth-child(7) img{
    width: 28%;
}

.has-sub {
  position: relative;
      height: fit-content;
    margin-top: 28px;
    padding: 0.5em 1em;
    background: #dadae5;
}

.sub {
    margin: 0;
    padding: 0;
    list-style-type: none;
  position: absolute;
  text-align: center;
  top: 100%;
  left: 0;
  display: none;
  width: 100%;
  background: #dadae5;
}

.sub li{
    margin-top: 1em;
    padding: 0 0.3em;
}

.nav-item {
  position: relative;
  padding-right: 14px; /* 三角分の余白 */
}

.nav-item::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 6px solid currentColor;
}

/* クリック or Tabフォーカスで表示 */
.has-sub:focus-within .sub {
  display: block;
}


.slideshow{
  position: relative;
  width: 100%;
  height: 100%;
  /*max-width: 1200px;*/
  aspect-ratio: 16 / 9;      /* 好きに変えてOK */
  overflow: hidden;
}

/* 各スライド */
.slide{
  position: absolute;
  inset: 0;
  opacity: 0;
  animation: fadeSlide 21s infinite ease-in-out;
}

/* 画像 */
.slide img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 3枚分の開始タイミング */
.slide:nth-child(1){ animation-delay: 0s; }
.slide:nth-child(2){ animation-delay: 7s; }
.slide:nth-child(3){ animation-delay: 14s; }

@keyframes fadeSlide{
  0%   { opacity: 0; }
  8%   { opacity: 1; }   /* ふわっと表示 */
  25%  { opacity: 1; }   /* 表示キープ */
  33%  { opacity: 1; }   /* ふわっと消える */
  100% { opacity: 0; }
}

/* 動きを控えたい人への配慮 */
@media (prefers-reduced-motion: reduce){
  .slide{
    animation: none;
    opacity: 0;
  }
  .slide:first-child{
    opacity: 1;
  }
}


.slideshow{
  position: relative;
}

/* 画像の上に常に薄い幕をかける */
.slideshow::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.3); /* 濃さはここで調整 */
  z-index: 2;
  pointer-events: none;
}


/* =========== ヒーロー =========== */
.hero-full{
  position:relative;
  width:100%;
  height: 650px;
  min-height:88vh;
  display:flex;
  align-items:center;
  isolation:isolate;
text-align: center;
justify-content: center;
}
.hero-bg{
  position:absolute; inset:0; z-index:-2;
  background-image:linear-gradient(180deg, rgba(255,255,255,.3), rgba(255,255,255,.3)),
    url("https://www.mecc.co.jp/wp-content/themes/mecc-co/img/kv3.png");
  background-size:cover; background-position:center;
  filter:saturate(1.05) contrast(1.04) brightness(1.02);
}

.hero-inner{
  width:100%; max-width:var(--container);
  margin:0 auto; padding:84px 20px 64px;
  color:#444;
  text-align: center;
  position: absolute;
  z-index: 999;
 
}
.eyebrow{
  font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:#1a52a5; margin:0 0 8px;
  text-shadow:
    0 0 4px rgba(255,255,255,.5),
    0 0 8px rgba(255,255,255,.3);
}
.eyebrow--light{ color:#d8e8ff; }
.hero-title{
  font-size:clamp(28px, 4vw, 40px);
  line-height:1.4;
  margin:8px 0 16px;
  font-weight:700;
  text-align: center;
  text-shadow:
    0 0 4px rgba(255,255,255,.5),
    0 0 8px rgba(255,255,255,.3);
}
.hero-title span{
  display:block; font-size:clamp(13px, 1.8vw, 16px);
  font-weight:500; opacity:.9; margin-top:8px;
}
.hero-lead{
  font-size:clamp(14px, 1.8vw, 16px);
  opacity:.95; margin:30px 0 22px;
  text-align: center;
  text-shadow:
    0 0 4px rgba(255,255,255,.5),
    0 0 8px rgba(255,255,255,.3);
}

.hero-button a{
    display: block;
    width: fit-content;
    margin: 0 auto;
    padding: 0.6em 2em;
    color: #fff;
    font-weight: bold;
    text-decoration: none;
    background: linear-gradient(135deg, rgba(25, 98, 174, 1) 0%, rgba(16, 44, 136, 1) 100%);
    border-radius: 9999px;

}


/* =========== ボタン =========== */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 22px; border-radius:999px;
  text-decoration:none; font-size:14px; border:1px solid transparent;
  transition:opacity .2s ease, background-color .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--c-primary); color:#fff; }
.btn-primary:hover{ opacity:.9; }
.btn-outline{
  background:transparent; color:#fff; border-color:#cfe2ff;
}
.btn-outline:hover{ background:rgba(255,255,255,.08); }
.btn-light{
  background:#fff; color:var(--c-primary);
}
.btn-light:hover{ background:#f0f5ff; }


#news{
    background-color: var(--c-bg-light);
    padding: 100px 0;
    scroll-margin-top: 80px;
}

#news .section-news{
    display: flex;
    width: fit-content;
    margin: 0 auto;
}

#news .section-news .section-news-centered{
    text-align: center;
    padding: 0 3em;
    display: flex;
   flex-direction: column;
    justify-content: center;
}

#news .section-more{
    width: 1070px;
    margin: 0 auto;
    text-align: right;
}


.link-arrow {
  position: relative;
  display: inline-block;
  padding: 0 1.5em 6px 1.5em;
  color: #444;
  text-decoration: none;
}

.link-arrow::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
}

.link-arrow::before {
  content: "";
  position: absolute;
  right: -1px;
  bottom: 0;
  width: 8px;
  height: 1px;
  background: currentColor;
  transform: rotate(35deg);
  transform-origin: right center;
}

*/#news .section-news .section-news-centered p:last-of-type{
    margin-top: 3em;
}

#news ul li{
    list-style-type: none;
    line-height:3;
}

#news ul li a{
    text-decoration: none;
    color: #444;
}

#news ul li .news-day{
    font-weight: bold;
    padding-right: 1em;
}

#news ul li .news-type{
    font-size: 0.8em;
    padding: 0.1em 0.5em;
    color: #1f96aa;
    border: 1px solid #1f96aa;
}

/* =========== ストライプセクション =========== */
#about{
scroll-margin-top: 70px;
    position: relative;
}
.section-strip{ width:100%; padding:72px 0; position: relative; }
.section-strip--white{ background:#fff; }
.section-strip--light{ background:var(--c-bg-light); }

.video-box{
    position:absolute; inset:0; z-index:-1;
    width:100%;
    height:100%;
    overflow-y: hidden;
}
.hero-video{

    width:100%;
    
}
.hero-overlay{
  position:absolute; inset:0; z-index:-1;
  background:radial-gradient(circle at 15% 10%, rgba(0,92,158,.55), rgba(0,0,0,.45));
  height: 100%;
  
}

.section-strip--primary{
  background:linear-gradient(120deg, var(--c-primary-2), var(--c-primary));
  color:#fff;
}
.strip-inner{
  width:100%; max-width:var(--container);
  margin:0 auto; padding:0 20px;
}
.strip-inner--narrow{ max-width:900px; }

.section-head-centered{ text-align:center; margin-bottom:16px; }
.section-head-centered--light{ color:#fff; }

#about-title{
    color: #fff;
}
.section-title{
    color: #444;
  font-size:clamp(22px, 3.2vw, 32px);
  font-weight:700; margin:0 0 6px;
}
.section-title--light{ color:#fff; }

.strip-inner .section-title--light{ color:#fff; }

.section-subtitle{
  margin:6px 0 0;
  color: #fff;
  font-size:14px;
  text-align: center;
}

.section-head-centered .section-subtitle-g{
 color: #444;
}

#business{
scroll-margin-top: 70px;
}

#sustainability-section{
background-color: #f5f5f7;
}

.sustainability{
    padding: 70px 0;
}
.text-cols{
  display:grid; gap:14px; color:#eee; font-size:15px;
}
@media (min-width: 900px){
  .text-cols{ grid-template-columns:1fr 1fr; gap:22px; }
}

/* =========== 事業グリッド =========== */
.business-grid{
  display:grid; gap:24px; margin-top:24px;
}
@media (min-width: 768px){
  .business-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width: 1100px){
  .business-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); }
}
.business-card{
  background:#fff; border:1px solid var(--c-border);
  border-radius:var(--radius-lg); overflow:hidden;
  display:flex; flex-direction:column; box-shadow:var(--shadow-sm);
}
.business-media img{
  display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover;
}
.business-body{ padding:16px 18px 18px; display:flex; gap:8px; flex-direction:column; }
.business-body h3{ font-size:16px; margin:0; }
.business-tagline{ color:var(--c-primary); font-size:12px; margin:0; }
.business-link{
  margin-top:6px; color:var(--c-primary); text-decoration:none; font-size:13px;
}
.business-link:hover{ text-decoration:underline; }

/* =========== 技術ブロック =========== */
.tech-intro{
  max-width:760px; margin:0 auto 22px;
  text-align:center; font-size:14px; opacity:.95;
}
.tech-grid{
  display:grid; gap:16px;
}
@media (min-width: 768px){
  .tech-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  text-align: center;}
}
.tech-item{
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.35);
  border-radius:var(--radius-md);
  padding:18px 20px;
}
.tech-item h3{
  font-size:15px; margin:0 0 6px; color:#fff; font-weight:700;
}
.tech-item p{
  font-size:13px; margin:0; color:#eef6ff;
}

.tech-grid .tech-more{
    text-align: center;
}

.tech-grid .tech-more a{
    color: #fff;
}

/* =========== 導入事例：フルワイド交互パネル =========== */

#cases-title{    color: #fff;
  font-size:clamp(22px, 3.2vw, 32px);
  font-weight:700;
  margin:0 0 15px;
  padding-top: 8vw;
  text-align: center; }

#cases .cases-content{
    width: 85%;;
    margin: 3vw auto 0;
    padding-bottom: 5vw;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

#cases .cases-content .cases-content-in{
    width: 32.7%;
    overflow: hidden;
    position: relative;
    margin-bottom: 1vw;
}

#cases .cases-content .cases-content-in p{
    margin: 0;
    font-size: 14px;
}

#cases .cases-content .cases-content-in .cases-pin{
    position: absolute;
    width: 230px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: #fff;
    font-weight: bold;
    z-index: 99;
}

#cases .cases-content .cases-content-in .cases-pin p:last-child{
    font-size:1.3em;
}

#cases .cases-content .cases-content-in img{
    width: 100%;
    display: block;
  transition: transform 0.4s ease;
}

/*#cases .cases-content .cases-content-in:hover img,#cases .cases-content .cases-content-in:hover::after {
  transform: scale(0.95); 
}
*/
#cases .cases-content .cases-content-in::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3); /* ← 暗さ調整 */
  transition: transform 0.4s ease;
}


/* =========== サステナビリティ =========== */
.sustain-text{
  max-width:900px; margin:0 auto 22px; text-align:center; color:var(--c-text-sub);
}
.sustain-grid{
  display:grid; gap:16px;
}
@media (min-width: 900px){
  .sustain-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
.sustain-item{
  background:#fff; border:1px solid var(--c-border);
  border-radius:var(--radius-md); padding:16px 18px;
}
.sustain-item h3{ margin:0 0 6px; font-size:15px; }
.sustain-item p{ margin:0; color:var(--c-text-sub); font-size:13px; }

/* =========== 採用セクション =========== */
.recruit-full{
  background:radial-gradient(circle at 15% 10%, var(--c-primary-2), var(--c-primary));
  color:#fff; padding:80px 0;
}
.recruit-inner{
  max-width:var(--container); margin:0 auto; padding:0 20px;
  display:grid; gap:32px; align-items:center;
}
@media (min-width: 900px){
  .recruit-inner{ grid-template-columns:1.2fr 1fr; }
}
.recruit-text h2{ margin:8px 0 10px; font-size:clamp(22px, 3.2vw, 32px); }
.recruit-media img{
  display:block; width:100%; height:auto; border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm); aspect-ratio:16/11; object-fit:cover;
}

/* =========== フッター =========== */
.site-footer{
  background:#111827; color:#d1d5db; font-size:12px;
}
.footer-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:22px 20px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
@media (min-width: 900px){
  .footer-inner{ flex-direction:row; justify-content:space-between; }
}

.footer-info{
    width: 50%;
}

.footer-logo{
  display:flex;
  align-items: center;
  font-weight:700;
  font-size:18px;
  margin-bottom:6px;
  color:#fff;
  text-decoration:none;
}

.footer-logo img{
    width: 8%;
    min-width: 70px;
}

.footer-nav{ display:flex; flex-wrap:wrap; gap:12px; }
.footer-nav a{ color:#e5e7eb; text-decoration:none; }
.footer-nav a:hover{ text-decoration:underline; }
.footer-copy{
  border-top:1px solid #1f2933; text-align:center; padding:10px 0 14px;
}

/* =========== ユーティリティ =========== */
.sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}


/* =========== スクロールアニメーション（強め） =========== */
[data-animate]{
  opacity:0;
  transform:translate3d(0, 40px, 0) scale(.96);
  filter:blur(4px);
  will-change:opacity, transform, filter;
}

/* 初期オフセット方向を属性で変える */
[data-animate="fade-up"]{
  transform:translate3d(0, 40px, 0) scale(.96);
}
[data-animate="fade-right"]{
  transform:translate3d(-40px, 0, 0) scale(.96);
}
[data-animate="fade-left"]{
  transform:translate3d(40px, 0, 0) scale(.96);
}

/* 共通：表示時に最終状態へ */
[data-animate].is-inview{
  opacity:1;
  transform:translate3d(0, 0, 0) scale(1);
  filter:blur(0);
}

/* 強めのイージング＆オーバーシュート */
@keyframes fadeUpStrong {
  0%{
    opacity:0;
    transform:translate3d(0, 40px, 0) scale(.95);
    filter:blur(6px);
  }
  60%{
    opacity:1;
    transform:translate3d(0, -6px, 0) scale(1.03);
    filter:blur(0);
  }
  100%{
    opacity:1;
    transform:translate3d(0, 0, 0) scale(1);
  }
}
@keyframes fadeRightStrong {
  0%{
    opacity:0;
    transform:translate3d(-40px, 0, 0) scale(.95);
    filter:blur(6px);
  }
  60%{
    opacity:1;
    transform:translate3d(6px, 0, 0) scale(1.03);
    filter:blur(0);
  }
  100%{
    opacity:1;
    transform:translate3d(0, 0, 0) scale(1);
  }
}
@keyframes fadeLeftStrong {
  0%{
    opacity:0;
    transform:translate3d(40px, 0, 0) scale(.95);
    filter:blur(6px);
  }
  60%{
    opacity:1;
    transform:translate3d(-6px, 0, 0) scale(1.03);
    filter:blur(0);
  }
  100%{
    opacity:1;
    transform:translate3d(0, 0, 0) scale(1);
  }
}

/* アニメーションの割り当て（属性ごと） */
[data-animate="fade-up"].is-inview{
  animation:fadeUpStrong .8s cubic-bezier(.16,.84,.44,1) forwards;
}
[data-animate="fade-right"].is-inview{
  animation:fadeRightStrong .8s cubic-bezier(.16,.84,.44,1) forwards;
}
[data-animate="fade-left"].is-inview{
  animation:fadeLeftStrong .8s cubic-bezier(.16,.84,.44,1) forwards;
}

/* ヘッダー縮小時 */
.site-header.is-scrolled .header-inner{
  /*padding-block:15px;*/
}
.site-header.is-scrolled .site-logo{
    display: flex;
    align-items: center;
  font-size:16px;
  width: 20%;
}

.header-inner .site-logo img{
    width: 30%;
    min-width: 70px;
}

/* ヒーローパーララックスの補助（軽微な動きなのでそのままでOK） */
.hero-inner.parallax-active{
  will-change:transform;
}
.hero-bg.parallax-active{
  will-change:transform;
}




@media (max-width: 960px){
  /*
.site-header.is-scrolled .site-logo{
  font-size:14px;
  width: 45%;
  min-width: 300px;
}*/

.site-header .site-logo{
  font-size:14px;
  width: 45%;
  min-width: 300px;
}
.header-inner .site-logo img{
    width: 15%;
}

#menu-btn-check {
    display: none;
}

.menu-btn {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    right: 30px;
    /*
    display: flex;
    */
    display: none;
    width: 50px;
    height: 50px;
    justify-content: center;
    align-items: center;
    z-index: 99999;
    background-repeat: no-repeat;
    background-size: cover;
}

nav ul .has-sub {
    margin:0 auto;
    width: 80%;
    display: none;
}

nav ul.sub {
    margin: 0;
    padding: 0;
  display: none;
  width: 100%;
  background-color: #dadae5;
}

.nav-item::after {
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 12px solid currentColor;
    display: none;
}


.menu-btn span{
    display: block;
    width: 100%;
    height: 100%;
    background-image: url("../img/hamburger-open.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    display: none;
}

#menu-btn-check:checked~.menu-btn span {
    background-image: url("../img/hamburger-close.jpg");
}


.menu-content {
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 100%;
    z-index: 99998;
    background-color: #fff;
    transition: all 0.5s;/*アニメーション設定*/

    display: none;
}

#menu-btn-check:checked ~ .menu-content {
    left:0%;/*メニューを画面内へ*/
    display: none;
}

.menu-content ul {

    width: 70%;
    margin: 0 auto;
    padding: 90px 5px 0;
    color: #fff;
    display: block;
    background-color: #fff;
    height: auto;
    display: none;
}
.menu-content ul li a {
    display: block;
    width: 100%;
    padding: 0 3em;
    display: none;
}

.menu-content ul li.has-sub a{
    padding: 0;
    display: none;
}



nav>ul li{
    line-height: 3;
    margin-right:0;
    display: block;
}

nav>ul>li{
    line-height: 4;
}

nav>ul li:nth-child(7) a,nav ul li:nth-child(8) a{
    display: block;
    width: 12em;
    margin: 1em auto;
    padding:1em 0;
}

nav>ul li img{
    width: 8%;
}

nav>ul li:nth-child(7) img{
    padding-top: 0;
}

nav>ul li:nth-child(8) img{
    width: 9%;
}

#news {
    padding: 8vw 0;
}

#news .section-news {
    display: block;
}

#news .section-news ul{
    padding: 0;
}

#cases .cases-content {
    width: 95%;
}


}

@media (max-width: 430px){

#news ul{
    width: 90%;
    margin: 5vw auto 0;
    font-size: 0.8em;
}

#news ul li{
    border-bottom: 1px dotted #444;
    padding-top: 3vw;
}

#news ul li .news-sp{
    display: block;
    line-height: 1.2;
    padding-bottom: 0.5em;
}

#cases .cases-content {

    width: 90%;
}

#cases .cases-content .cases-content-in {
    width: 49%;;
}

#cases .cases-content .cases-content-in .cases-pin {
    width: 80%;
}

#cases .cases-content .cases-content-in .cases-pin p:last-child {
    font-size: 0.9em;
}

.video-box{
    width:100%;
    height:100%;

}
.hero-video{
    width: auto;
    height:100%;
    
}

.footer-info{
    width: 80%;
}

}

