/*
Theme Name: NEXT Corporate Theme
Theme URI: https://www.nextsv.co.jp/
Author: MJE INC.
Description: 株式会社NEXT様 コーポレート/採用サイト用オリジナルテーマ
Version: 1.0.0
Text Domain: next-theme
*/

/* ============================================================
   0. Design Tokens
============================================================ */
:root{
  --color-main:#00469d;
  --color-main-dark:#00337a;
  --color-accent:#73cee3;
  --color-navy:#0a1f3d;
  --color-text:#2b2b2b;
  --color-text-light:#5c5c5c;
  --color-bg-gray:#f4f8fc;
  --color-bg-light-blue:#eaf3fb;
  --color-white:#fff;
  --font-en:'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-ja:'Noto Sans JP', 'Noto Sans Japanese', sans-serif;
  --container-w:1200px;
  --transition-base: all .3s ease;
}

/* ============================================================
   1. Fonts
   ※ フォントは自己ホストせず、functions.php でGoogle Fonts CDN
      （Montserrat / Noto Sans JP）を読み込んでいます。
============================================================ */

/* ============================================================
   2. Reset / Base
============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
.sp-only{display:none;}
@media (max-width:767px){ .sp-only{display:inline;} }
body{
  margin:0;
  font-family:var(--font-ja);
  font-size:18px;
  font-weight:500;
  line-height:1.8;
  color:var(--color-text);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.is-front{
  background-color:var(--color-bg-gray);
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;transition:var(--transition-base);}
ul,ol{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4,p{margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;}
input,textarea,select{font-family:inherit;}
.container{max-width:var(--container-w);margin:0 auto;padding:0 24px;}
.sp-only{display:none;}
@media (max-width:767px){
  body{font-size:15px;}
  .pc-only{display:none !important;}
  .sp-only{display:block;}
}

/* ============================================================
   3. Typography helpers
============================================================ */
.en-title{
  font-family:var(--font-en);
  font-weight:600;
  font-size:60px;
  letter-spacing:.02em;
  color:var(--color-white);
  text-transform:uppercase;
}
@media (max-width:767px){ .en-title{font-size:38px;line-height:1.4em;margin:10px 0 0 0;} }

.section-heading{
  text-align:center;
  margin-bottom:48px;
}
.section-heading .label-en{
  display:inline-block;
  font-family:var(--font-en);
  font-weight:600;
  font-size:14px;
  color:var(--color-main);
  letter-spacing:.15em;
  border-bottom:2px solid var(--color-accent);
  padding-bottom:6px;
  margin-bottom:14px;
}
.section-heading h2{
  font-size:34px;
  font-weight:500;
  line-height:1.6;
  color:var(--color-main);
}
.page-h2{
  font-size:34px;
  font-weight:500;
  color:var(--color-main);
  text-align:center;
  line-height:1.6;
}
@media (max-width:767px){
  .page-h2{font-size:20px;text-align:center;}
  .section-heading h2{font-size:22px;}
  .top-section h2{font-size:24px !important;}
  .top-news .news-head-col h2{font-size:24px;}
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:16px 36px;
  border-radius:50px;
  font-size:16px;
  font-weight:500;
  background:linear-gradient(90deg,var(--color-main),#1a6fc4);
  color:#fff;
  border:none;
  transition:var(--transition-base);
}
.btn:hover{
  background:linear-gradient(90deg,var(--color-accent),#3fa9d6);
  transform:translateY(-2px);
}
.btn-outline:hover{
  background:linear-gradient(90deg,var(--color-accent),#3fa9d6);
  color:#fff;
  border-color:transparent;
}
.btn-accent{
  background:linear-gradient(90deg,var(--color-accent),#3fa9d6);
  color:var(--color-main);
}
.btn-outline{
  background:#fff;
  color:var(--color-main);
  border:1px solid var(--color-main);
}
.btn-arrow-right{
  position:relative;
  justify-content:center;
  min-width:240px;
}
.btn-arrow-right::after{
  content:'\2192';
  position:absolute;
  right:24px;
  top:50%;
  transform:translateY(-50%);
}

/* ============================================================
   4. Fade-in animation (scroll reveal)
============================================================ */
.fade-in-up{
  opacity:0;
  transform:translateY(40px);
  transition:opacity .8s ease, transform .8s ease;
}
.fade-in-up.is-visible{
  opacity:1;
  transform:translateY(0);
}

/* ============================================================
   5. Header
============================================================ */
.site-header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:1000;
  padding:18px 0;
  transition:var(--transition-base);
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.site-header.is-scrolled,
.site-header.is-inner{
  background:#fff;
  box-shadow:0 2px 12px rgba(0,0,0,.08);
  padding:10px 0;
}
.site-header .site-logo img{height:44px;width:auto;}
.site-header .logo-img.logo-normal{display:none;}
.site-header.is-inner .logo-img.logo-white,
.site-header.is-scrolled .logo-img.logo-white{display:none;}
.site-header.is-inner .logo-img.logo-normal,
.site-header.is-scrolled .logo-img.logo-normal{display:block;}
.site-header .site-logo .logo-text{
  font-family:var(--font-en);
  font-weight:700;
  font-size:22px;
  color:#fff;
}
.site-header.is-scrolled .site-logo .logo-text,
.site-header.is-inner .site-logo .logo-text{color:var(--color-main);}

.header-nav{display:flex;align-items:center;gap:36px;}
.header-nav ul{display:flex;gap:32px;}
.header-nav a{
  font-size:15px;
  font-weight:500;
  color:#fff;
  position:relative;
}
.site-header.is-scrolled .header-nav a,
.site-header.is-inner .header-nav a{color:var(--color-text);}
.header-nav ul a::after{
  content:'';
  position:absolute;left:0;bottom:-6px;
  width:0;height:2px;background:var(--color-accent);
  transition:var(--transition-base);
}
.header-nav ul a:hover::after{width:100%;}
.header-nav .sub-menu{display:none;}
.header-nav-cta{display:none;}
.header-contact-btn{
  padding:12px 28px;
  border-radius:50px;
  background:var(--color-main);
  color:#fff !important;
  font-size:14px;
  font-weight:600;
}
.header-contact-btn:hover{background:var(--color-accent);}

.header-burger{
  display:none;
  width:44px;height:44px;position:relative;z-index:1100;
  background:none;
  border:1.5px solid rgba(255,255,255,.6);
  border-radius:10px;
}
.header-burger span{
  position:absolute;left:11px;right:11px;height:2px;
  background:#fff;transition:var(--transition-base);
}
.site-header.is-scrolled .header-burger,
.site-header.is-inner .header-burger{border-color:rgba(0,70,157,.35);}
.site-header.is-scrolled .header-burger span,
.site-header.is-inner .header-burger span{background:var(--color-main);}
.header-burger span:nth-child(1){top:14px;}
.header-burger span:nth-child(2){top:21px;}
.header-burger span:nth-child(3){top:28px;}
.header-burger.is-active{border-color:var(--color-main);}
.header-burger.is-active span{background:var(--color-main) !important;}
.header-burger.is-active span:nth-child(1){transform:rotate(45deg);top:21px;}
.header-burger.is-active span:nth-child(2){opacity:0;}
.header-burger.is-active span:nth-child(3){transform:rotate(-45deg);top:21px;}

@media (max-width:1023px){
  .header-nav{
    position:fixed;inset:0;
    z-index:999;
    background:var(--color-main);
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    padding-top:80px;
    overflow-y:auto;
    transform:translateX(100%);
    transition:transform .4s ease;
  }
  .header-nav.is-open{transform:translateX(0);}
  .header-nav ul{
    display:flex;flex-direction:column;
    text-align:left;gap:0;width:90%;margin:0 auto;
  }
  .header-nav > ul > li{border-top:1px solid rgba(255,255,255,.15);}
  .header-nav > ul > li:last-child{border-bottom:1px solid rgba(255,255,255,.15);}
  .header-nav a{
    position:relative;
    font-size:16px;font-weight:600;
    display:block;
    width:100%;padding:18px 24px;
  }
  .header-nav > ul a{color:#fff;text-align:left;}
  .header-nav-cta a{color:var(--color-text);text-align:center;}
  .header-nav ul a::after{
    content:'→';
    position:absolute;left:auto;right:24px;top:50%;
    transform:translateY(-50%);
    width:26px;height:26px;
    display:flex;align-items:center;justify-content:center;
    border:1px solid rgba(255,255,255,.5);
    border-radius:8px;
    background:none;
    font-size:13px;
  }
  .header-nav .sub-menu{
    display:flex;
    /* background: rgba(0, 0, 0, .12); */
    width:100%;
    padding-left:12px;
  }
  .header-nav .sub-menu li{border-top:1px solid rgba(255,255,255,.1);}
  .header-nav .sub-menu a{padding:16px 60px 16px 36px;font-weight:500;}
  .header-nav .sub-menu a::before{content:'・';margin-right:2px;}
  .header-nav .sub-menu a::after{
    /* width: 22px; */
    /* height: 22px; */
    font-size:11px;
    right:24px;
  }

  .header-nav .header-contact-btn{display:none;}

  .header-burger.is-active{border-color:rgba(255,255,255,.6) !important;}
  .header-burger.is-active span{background:#fff !important;}

  .header-nav-cta{
    display:flex;flex-direction:column;gap:16px;
    padding:32px 24px;
    color:var(--color-text);
  }
  .header-nav-mail,
  .header-nav-tel{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    background:#fff;color:var(--color-main);font-weight:700;font-size:15px;
    padding:16px 20px;border-radius:8px;
    text-align:center;
  }
  .header-nav-mail span{display:inline-flex;align-items:center;justify-content:center;gap:6px;}
  .header-nav-mail span .cta-icon,
  .header-nav-tel-number .cta-icon{margin-right:0;}
  .header-nav-tel-number{font-size:20px;display:flex;align-items:center;gap:6px;text-align:center;justify-content:center;}
  .header-nav-tel small{display:block;font-size:12px;font-weight:500;color:var(--color-text-light);margin:4px auto;text-align:center;}

  .header-burger{display:block;}

  .site-header.is-scrolled .header-nav > ul a,
  .site-header.is-inner .header-nav > ul a{color:#fff;}

  .header-nav ul a:hover::after{width:26px;}
  .header-nav .sub-menu a:hover::after{width:22px;}
  .header-contact-btn:hover{background:var(--color-main);}
}

/* ============================================================
   6. Hero banner (inner pages)
============================================================ */
.page-hero{
  position:relative;
  min-height:500px;
  display:flex;
  align-items:center;
  padding:140px 0 60px;
  background:linear-gradient(120deg,var(--color-main) 0%,#1a6fc4 60%,var(--color-accent) 130%);
  overflow:hidden;
}
.page-hero::before{
  content:'';
  position:absolute;inset:0;
  background-image:url('images/common/common_bg01.jpg');
  background-size:cover;
  background-position:center;
  opacity:.85;
}
.page-hero-inner{
  z-index:2;width:100%;
  display:flex;align-items:center;
}
.page-hero-text{flex:1;min-width:0;max-width:600px;position:relative;z-index:2;}
.page-hero-photo{
  position:absolute;
  top:calc(50% + 20px);right:0;
  transform:translateY(-50%);
  width:70%;
  max-width:1000px;
  height:360px;
  border-radius:8px 0 0 8px;
  overflow:hidden;
  z-index:1;
}
.page-hero-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.page-hero .breadcrumb{
  color:#fff;font-size:13px;font-weight:600;letter-spacing:.1em;/* margin-bottom: 14px; */
}
.page-hero .breadcrumb a{color:#fff;opacity:.8;}
.page-hero .hero-ja-badge{
  display:inline-block;
  /* margin-top: 20px; */
  padding:10px 20px;
  background:#fff;
  color:var(--color-main);
  font-weight:700;
  font-size:18px;
  letter-spacing:0.12em;
}
@media (max-width:900px){
  .page-hero-inner{flex-direction:column;align-items:flex-start;}
  .page-hero-text{max-width:100%;}
  .page-hero-photo{
    position:relative;top:auto;right:auto;transform:none;
    width:85%;max-width:none;margin:24px -24px 0 auto;aspect-ratio:16/9;height:auto;
    border-radius:8px 0 0 8px;
  }
}
@media (max-width:767px){
  .page-hero{padding:110px 0 40px;min-height:220px;}
  .page-hero .hero-ja-badge{font-size:14px;padding:6px 14px;margin:10px 0 0 0;}
}

/* ============================================================
   7. CONTACT CTA banner
============================================================ */
.cta-banner{
  position:relative;
  padding:80px 0 20px;
  overflow:visible;
  /* background-color: var(--color-bg-gray); */
  margin-bottom:-20px;
  z-index:1;
}
.cta-banner-inner{
  position:relative;
  max-width:1200px;
  margin:0 auto -90px;
  padding:56px 40px;
  border-radius:20px;
  background-color:var(--color-main);
  background-image:url('images/common/footer_bg01.jpg');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  color:#fff;
  text-align:center;
  overflow:hidden;
  z-index:2;
}
.cta-banner .cta-label{
  font-family:var(--font-en);
  font-size:14px;
  letter-spacing:.2em;
  opacity:.85;
  font-weight:600;
}
.cta-banner h2{font-size:26px;font-weight:500;margin:8px 0 28px;}
.cta-actions{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;}
.cta-actions a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  flex:0 1 400px;min-width:260px;max-width:400px;padding:18px 24px;border-radius:8px;
  background:#fff;color:var(--color-main);font-weight:700;font-size:22px;
}
.cta-icon{display:inline-block;width:24px;height:auto;vertical-align:middle;margin-right:4px;}
.cta-tel-number{display:flex;align-items:center;justify-content:center;white-space:nowrap;font-family:var(--font-en);font-size:34px;}
.cta-actions a.cta-mail{background:#fff;}
.cta-actions a.cta-tel{background:#fff;font-size:22px;}
@media (min-width:768px){
  .cta-tel{pointer-events:none;cursor:default;}
}
@media (min-width:768px){
  .cta-tel{pointer-events:none;cursor:default;}
}
@media (max-width:767px){
  .cta-banner-inner{max-width:90%;}
  .cta-actions{flex-direction:column;align-items:center;}
  .cta-actions a{width:100%;max-width:260px;padding:14px 20px;font-size:14px;min-width:0;flex:0 1 100px;}
  .cta-actions a small{
    display:block;font-weight:500;font-size:11px;color:var(--color-text-light);/* margin-top: 4px; */
  }
  .cta-tel-number{font-size:24px;}
  .cta-icon{width:20px;}
}

/* ============================================================
   8. Footer
============================================================ */
.site-footer{background:var(--color-navy);color:#fff;padding:150px 0 24px;}
.footer-inner{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding:0 20px;}
.footer-logo img{height:60px;margin-bottom:16px;}
.footer-address{font-size:13px;line-height:1.9;opacity:.85;}
.footer-nav{display:flex;gap:60px;flex-wrap:wrap;}
.footer-nav ul li{margin-bottom:14px;font-size:15px;}
.footer-nav ul li a{opacity:.9;display:inline-flex;align-items:center;gap:10px;}
.footer-nav ul li a:hover{opacity:1;color:var(--color-accent);}
.footer-nav ul li a:hover .nav-arrow{border-color:var(--color-accent);}
.nav-arrow{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;flex:none;
  border:1.5px solid rgba(255,255,255,.5);
  border-radius:8px;
  font-size:13px;
  transition:var(--transition-base);
}
.footer-sub-list{margin-top:10px;padding-left:12px;}
.footer-sub-list li{font-size:12.5px;opacity:.75;}
.footer-bottom{
  margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);
  font-size:12px;opacity:.6;text-align:center;
}
@media (max-width:767px){
  .footer-inner{flex-direction:column;gap:32px;}
  .footer-bottom{
    margin-top:0;padding:20px;border-top:0;
    font-size:12px;opacity:.6;text-align:left;
  }
  .footer-nav{gap:0;flex-direction:column;}
  .footer-nav ul li{margin-bottom:0;}
  .footer-nav ul li a{
    display:flex;justify-content:space-between;align-items:center;
    width:100%;padding:16px 0;border-top:1px solid rgba(255,255,255,.15);
  }
  .footer-nav > div:last-child > ul > li:last-child > a{border-bottom:1px solid rgba(255,255,255,.15);}
}

/* ============================================================
   9. TOP: Main Visual (wave background + right-aligned photo)
============================================================ */
.mv-cards-wrap{
  position:relative;
  background-image:url('images/top/top_bg01.png');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.mv-section{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  min-height:820px;
  padding:150px 0 190px;
}

/* -- right-aligned photo box (1200×720, bleeds to viewport edge) -- */
.mv-photo{
  position:absolute;
  top:50%;right:0;
  transform:translateY(-50%);
  width:1200px;max-width:62vw;
  height:720px;
  z-index:1;
  overflow:hidden;
}
.mv-slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;
  transition:opacity 1.6s ease-in-out;
}
.mv-slide.is-active{opacity:1;}
.mv-slide::after{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,30,70,.35) 0%,rgba(0,30,70,.05) 40%,rgba(0,30,70,.45) 100%);
}

/* -- text content (left side, within container gutter) -- */
.mv-inner{position:relative;z-index:2;width:100%;}
.mv-content{max-width:560px;color:#fff;}
.mv-content .mv-sub{
  font-family:var(--font-en);font-weight:700;font-size:38px;letter-spacing:.07em;margin-bottom:14px;
}
.mv-content h1{
  font-size:52px;font-weight:700;line-height:1.5;
  display:flex;flex-direction:column;align-items:flex-start;
}
.mv-title-line{
  display:inline-block;
  background:#fff;color:var(--color-main);
  padding:0px 18px;
  margin-bottom:20px;
}
.mv-title-line:last-child{margin-bottom:0;}

@media (max-width:1023px){
  .mv-photo{max-width:56vw;}
}
@media (max-width:767px){
  .mv-section{
    display:block;
    position:relative;
    min-height:calc(220px + 60vw + 40px + 90px);
    padding:0 0 90px;
  }
  .mv-inner{position:relative;z-index:2;padding-top:100px;}
  .mv-photo{
    position:absolute;
    top:220px;right:0;
    transform:none;
    width:80%;max-width:1000px;
    height:60vw;min-height:220px;
    z-index:1;
    border-radius:8px 0 0 8px;
  }
  .mv-content h1{font-size:30px;}
  .mv-title-line{padding:2px 12px;margin-bottom:4px;}
  .mv-content .mv-sub{font-size:24px;}
}

/* ============================================================
   10. TOP: Service cards (overlap MV)
============================================================ */
.top-service-cards{
  position:relative;
  margin-top:-220px;
  z-index:5;
  padding-bottom:100px;
  overflow:hidden;
}
.top-service-cards > .container{position:relative;z-index:2;}

/* -- wave layer along the bottom edge of the cards section -- */
.cards-wave-bottom{
  position:absolute;inset:0;z-index:0;
  overflow:hidden;
}
.cards-wave-bottom-tilt{
  position:absolute;left:50%;top:50%;
  width:160%;height:160%;
  transform:translate(-50%,-50%) rotate(-8deg);
  transform-origin:center;
}
.cards-wave-bottom-tilt svg{
  position:absolute;bottom:0;left:0;
  width:200%;height:55%;min-height:220px;
}
.cards-wave-b1 path{fill:rgba(255,255,255,.10);}
.cards-wave-b2 path{fill:rgba(255,255,255,.16);}
.cards-wave-b1{animation:mvWaveDrift1 26s ease-in-out infinite;opacity:.9;}
.cards-wave-b2{animation:mvWaveDrift2 36s ease-in-out infinite;opacity:.85;}
@media (prefers-reduced-motion:reduce){
  .cards-wave-b1,.cards-wave-b2{animation:none;}
}

.top-service-cards .cards-row{
  display:grid;grid-template-columns:1fr 1fr;gap:28px;
}
.service-card{
  background:#fff;border-radius:6px;
  box-shadow:0 10px 34px rgba(0,40,90,.14);
  padding:36px;
  border:2px solid var(--color-accent);
}
.service-card .label-en{
  font-family:var(--font-en);font-size:13px;color:var(--color-main);letter-spacing:.1em;font-weight:bold;margin-bottom:0;
}
.service-card h3{font-size:22px;font-weight:700;color:var(--color-text);margin:6px 0 10px;}
.service-card .title-underline{
  display:block;width:36px;height:3px;
  background:linear-gradient(90deg, var(--color-accent) 50%, var(--color-main) 50%);
  margin-bottom:16px;
}
.service-card .service-desc,
.service-card p{
  font-size:15px;
  color:var(--color-text-light);
  line-height:1.9;
}
.service-card .service-desc{margin-bottom:16px;}
.service-card .thumb{border-radius:4px;overflow:hidden;margin-bottom:20px;height:200px;}
.service-card .thumb img{width:100%;height:200px;object-fit:cover;}
.service-card .btn{display:flex;width:100%;justify-content:center;max-width:260px;margin-left:auto;}
@media (max-width:767px){
  .top-service-cards{margin-top:-60px;padding-bottom:60px;}
  .top-service-cards .cards-row{grid-template-columns:1fr;gap:20px;}
  .service-card{padding:24px;}
  .service-card .btn{margin-left:auto;margin-right:auto;}
}

/* ============================================================
   11. TOP: Content sections (about / recruit)
============================================================ */
.top-section{
  padding:100px 0;
  /* background-image: url(images/top/cont_bg01.png); */
  /* background-position: right bottom; */
  /* background-repeat: no-repeat; */
  /* background-size: 74% auto; */
}
.top-section.bg-gray{
  background-color:var(--color-bg-gray);
  background-image:url('images/top/cont_bg01.png');
  background-position:right bottom;
  background-repeat:no-repeat;
  background-size:74% auto;
}

@media (max-width:767px){
  .top-section.bg-gray{
    background-color:var(--color-bg-gray);
    background-image:url('images/top/cont_bg01.png');
    background-position:right bottom;
    background-repeat:no-repeat;
    background-size:100% auto;
  }
}
.top-section.top-recruit-section{
  position:relative;
  overflow:visible;
  background-color:var(--color-bg-gray);
}
.top-recruit-section-bg{
  position:absolute;
  bottom:20px;
  right:0;
  width:80%;
  max-width:1200px;
  z-index:0;
  pointer-events:none;
}

@media (max-width:767px){
  .top-recruit-section-bg{
    position:absolute;
    bottom:310px;
    right:0;
    width:100%;
    max-width:1200px;
    z-index:0;
    pointer-events:none;
  }
}

.top-section .flex-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-areas:"head img" "body img";
  align-items:center;
  column-gap:64px;
  row-gap:12px;
}
.top-section .flex-row.reverse{
  grid-template-areas:"img head" "img body";
}
.top-section .text-col-head{grid-area:head;}
.top-section .text-col-body{grid-area:body;}
.top-section .img-col{grid-area:img;position:relative;}
.top-section .img-col img{border-radius:4px;}

/* -- ABOUT: two-image diagonal collage -- */
.img-col-collage{position:relative;}
.collage-frame{position:relative;z-index:1;width:70%;margin-left:auto;}
.flex-row.reverse .collage-frame{margin-left:0;margin-right:auto;}
.collage-frame .img-main{width:100%;display:block;border-radius:4px;}
.collage-frame .img-sub{
  position:absolute;
  left:-120px;bottom:-32px;
  width:48%;
  box-shadow:0 12px 28px rgba(0,40,90,.22);
}
.flex-row.reverse .collage-frame .img-sub{left:auto;right:-32px;}
@media (max-width:900px){
  .img-col-collage{margin-bottom:24px;}
  .collage-frame .img-sub{left:-3px;bottom:-23px;width:38%;}
  .flex-row.reverse .collage-frame .img-sub{left:auto;right:-16px;}
}

/* -- diagonal collage variant: two similarly-sized images, top-left / bottom-right -- */
.collage-frame.collage-frame-equal{
  width:100%;margin-left:0;
  aspect-ratio:1/0.78;
}
.collage-frame-equal .img-main,
.collage-frame-equal .img-sub{
  position:absolute;
  width:64%;
  aspect-ratio:16/10;
  object-fit:cover;
  border-radius:4px;
  box-shadow:0 12px 28px rgba(0,40,90,.22);
  display:block;
}
.collage-frame-equal .img-main{top:0;left:0;}
.collage-frame-equal .img-sub{bottom:74px;right:0;left:auto;}
@media (max-width:900px){
  .collage-frame.collage-frame-equal{aspect-ratio:1/1.05;}
  .collage-frame-equal .img-main,
  .collage-frame-equal .img-sub{width:70%;}
  .collage-frame-equal .img-sub{bottom:85px;}
}
.top-section .label-en{
  font-family:var(--font-en);font-weight:600;font-size:14px;color:var(--color-main);letter-spacing:.15em;margin-bottom:10px;
}
.top-section h2{color:var(--color-text);}
.top-section .label-ja{
  display:inline-block;margin:10px 0 20px;padding:6px 4px;
  font-size:15px;font-weight:700;border-bottom:2px solid var(--color-accent);
}
.top-section p{color:var(--color-text-light);font-size:16px;line-height:2;margin-bottom:28px;}
@media (max-width:900px){
  .top-section{padding:60px 0;}
  .top-section .flex-row,
  .top-section .flex-row.reverse{
    display:grid;
    grid-template-columns:1fr;
    grid-template-areas:"head" "img" "body";
    row-gap:24px;
  }
  .top-section .collage-frame{width:100%;margin-left:auto;margin-right:auto;}
  .collage-frame .img-main{width:70%;display:block;/* border-radius: 4px; */margin:0 4px 0 auto;}
  .top-section .text-col-body .btn{display:flex;width:fit-content;margin:0 auto;}
}

/* Recruit collage (3 images) */
.recruit-collage{
  position:relative;border-radius:4px;overflow:hidden;
}
.recruit-collage-pc{display:flex;height:auto;}
.recruit-collage-pc img{flex:1;object-fit:cover;height:100%;min-width:0;}
.recruit-collage-sp{display:none;width:100%;/* aspect-ratio: 4 / 3; */object-fit:cover;}
.recruit-collage .overlay{
  position:absolute;inset:0;background:rgba(0,40,90,.35);
  display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;gap:18px;
}
.recruit-collage .overlay .en-title{font-size:44px;margin-bottom:0;margin-top:14px;font-weight:600;}
.recruit-collage .overlay .top-recruit-label-ja{color:#ffffff;font-size:25px;line-height:2;margin-bottom:20px;margin-top:-25px;font-weight:500;}
@media (max-width:767px){
  .recruit-collage-pc{display:none;}
  .recruit-collage-sp{display:block;}
  .recruit-collage .overlay{align-items:center;padding-bottom:40px;}
  .recruit-collage .overlay .en-title{font-size:32px;}
  .recruit-collage .overlay .top-recruit-label-ja{font-size:18px;}
}

/* News list on TOP */
.top-news{padding:70px 0;background:linear-gradient(120deg,var(--color-main),#1a6fc4);color:#fff;}
.top-news .news-row{
  display:grid;
  grid-template-columns:260px 1fr;
  grid-template-areas:"head list" "btn list";
  column-gap:60px;
  align-items:start;
}
.top-news .news-head-col{grid-area:head;}
.top-news .news-list-col{grid-area:list;}
.top-news .news-btn{grid-area:btn;align-self:start;margin-top:8px;}
.top-news .news-head-col .label-en{font-family:var(--font-en);font-size:14px;letter-spacing:.15em;font-weight:600;}
.top-news .news-head-col h2{font-size:24px;font-weight:500;margin:8px 0 24px;}
.top-news .news-list-col{flex:1;min-width:0;}
.top-news .news-list-item{padding:18px 44px 18px 0;border-bottom:1px solid rgba(255,255,255,.2);}
.top-news .news-list-item .cat{font-size:14px;background:rgba(255,255,255,.15);padding:3px 10px;border-radius:2px;}
.top-news .news-list-item .arrow-btn{
  position:absolute;top:50%;right:0;transform:translateY(-50%);
  width:40px;height:40px;border-radius:24%;background:#fff;color:var(--color-main);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-size:18px;font-weight:500;font-family:var(--font-ja);
  transition:var(--transition-base);
}
.top-news .news-list-item:hover .arrow-btn{background:var(--color-accent);}
.news-list-item{
  position:relative;
  display:flex;gap:14px;/* padding: 18px 44px 18px 0; */ /* border-bottom: 1px solid rgba(255, 255, 255, .2); */align-items:baseline;flex-wrap:wrap;
}
.news-list-item .date{font-size:15px;opacity:.8;font-family:var(--font-en);font-weight:600;}
.news-list-item .cat{
  font-size:14px;/* background: rgba(255, 255, 255, .15); */padding:3px 10px;border-radius:2px;
}
.news-list-item .ttl{flex:1;min-width:200px;font-size:18px;width:100%;flex-basis:100%;/* margin-top: 6px; */}
.news-archive-list .news-list-item .ttl{color:var(--color-text);}
@media (max-width:767px){
  .top-news .news-row{
    grid-template-columns:1fr;
    grid-template-areas:"head" "list" "btn";
    row-gap:28px;
  }
  .top-news .news-btn{margin-top:0;justify-self:center;}
}

/* ============================================================
   12. Inner page common blocks
============================================================ */
.page-section{padding:80px 0 0;}
.page-section.bg-gray{background:var(--color-bg-gray);padding:80px 0;}
.lead-text{
  position:relative;z-index:0;
  text-align:center;font-size:18px;line-height:2;/* color: var(--color-text-light); */
  max-width:820px;margin:0 auto;
  /* padding: 0 0 80px; */
}
.sub-text{
  position:relative;z-index:0;
  text-align:center;font-size:18px;line-height:2;/* color: var(--color-text-light); */
  max-width:820px;margin:0 auto;
}
.section-bar{
  margin:16px auto 0;
  display:block;
  width:60px;
  height:5px;
  background:linear-gradient(90deg, var(--color-accent) 50%, var(--color-main) 50%);
  margin-bottom:16px;
}
.section-bar.left{margin:16px 0 0;}

.diamond-heading{
  display:flex;align-items:center;gap:10px;font-size:30px;font-weight:500;/* color: var(--color-main); */margin-bottom:28px;
}
.diamond-heading::before{
  content:'';
  display:inline-block;
  width:22px;height:22px;
  background-image:url('images/common/ttl_img01.png');
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
}
@media (max-width:767px){
  .diamond-heading{font-size:22px;}
}

/* Greeting (company page) */
.greeting-section{position:relative;overflow:hidden;}
.greeting-section-bg{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  z-index:0;
  pointer-events:none;
}
.greeting-section .container{position:relative;z-index:1;}
.greeting-block{display:flex;flex-direction:column;gap:30px;}

.about-section{position:relative;overflow:hidden;}
.about-section-bg{
  position:absolute;
  bottom:0;
  right:0;
  width:40%;
  max-width:500px;
  z-index:0;
  pointer-events:none;
}
.about-section .container{position:relative;z-index:1;}
.about-text-deco{
  position:absolute;
  top:-60px;left:-70px;
  width:170px;
  z-index:0;
  pointer-events:none;
}
.about-photo-deco-tr{
  position:absolute;
  top:-24px;right:-24px;
  width:140px;
  z-index:0;
  pointer-events:none;
}
.about-photo-deco-bl{
  position:absolute;
  bottom:5px;left:0px;
  width:130px;
  z-index:0;
  pointer-events:none;
}
@media (max-width:767px){
  .about-photo-deco-tr{
    top:-86px;right:-110px;
    width:400px;
  }
  .about-photo-deco-bl{display:none;}
  .about-text-deco{
    top:auto;bottom:-73px;left:-70px;
    width:200px;
  }
}
.greeting-block .photo{width:100%;border-radius:4px;overflow:hidden;margin:30px 0 0;}
.greeting-block .photo img{width:100%;height:auto;display:block;}
.greeting-block .text{width:100%;padding:0 20px;}
.greeting-block .label-ja{color:var(--color-main);font-weight:700;font-size:14px;margin-bottom:10px;display:block;}
.greeting-block h2{font-size:26px;color:var(--color-main);margin-bottom:22px;line-height:1.6;}
.greeting-block p{margin-bottom:1.2em;/* color: var(--color-text-light); */}
.greeting-block .signature{text-align:right;margin:24px 0 80px;font-weight:700;}

/* Info table (company overview / recruit requirements) */
.info-table{width:100%;border-collapse:collapse;margin:0 0 80px 0;}
.info-table tr{border-bottom:1px solid #e2e8f0;}
.info-table th{
  width:200px;text-align:left;padding:20px 16px;font-size:18px;color:var(--color-main);font-weight:700;vertical-align:top;
}
.info-table td{padding:20px 16px;font-size:18px;color:var(--color-text);line-height:1.9;}
@media (max-width:767px){
  .info-table, .info-table tbody, .info-table tr, .info-table th, .info-table td{display:block;width:100%;}
  .info-table th{padding:16px 0 4px;border-bottom:none;font-size:16px;}
  .info-table td{padding:0 0 16px;font-size:15px;}
  .lead-text{font-size:16px;}
}

/* History timeline */
.history-list{margin-top:20px;}
.history-item{display:flex;gap:28px;border-bottom:1px solid #e2e8f0;padding:22px 0;align-items:baseline;}
.history-item .history-content{display:flex;align-items:baseline;flex:1;min-width:0;}
.history-item .history-text{flex:1;min-width:0;}
.history-item .year{font-family:var(--font-en);font-size:26px;color:var(--color-main);font-weight:600;width:100px;flex-shrink:0;}
.history-item .month{
  display:inline-block;background:var(--color-bg-light-blue);color:var(--color-main);
  font-size:16px;padding:3px 10px;border-radius:3px;margin-right:12px;
  min-width:44px;text-align:center;box-sizing:border-box;flex-shrink:0;
}
.history-item .month-placeholder{background:transparent;visibility:hidden;}
@media (max-width:767px){
  .history-item{flex-direction:column;gap:8px;}
}

/* Service intro cards (service top page) */
.service-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:50px;}
.service-intro-card:nth-child(2){margin-top:100px;}
@media (max-width:767px){
  .service-intro-grid{grid-template-columns:1fr;}
  .service-intro-card:nth-child(2){margin-top:0;}
}
.service-intro-card{position:relative;}
.service-intro-thumb{border-radius:4px;overflow:hidden;}
.service-intro-thumb img{aspect-ratio:582/300;object-fit:cover;width:100%;transition:transform .5s ease;}
.service-intro-card:hover .service-intro-thumb img{transform:scale(1.06);}
.service-intro-card .caption{
  display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;
  padding:18px 4px 0;
}
.service-intro-card .caption > div{min-width:0;}
.service-intro-card .caption .en{font-family:var(--font-en);font-size:13px;color:var(--color-main);}
.service-intro-card .caption .ja{font-size:20px;font-weight:700;}
@media (max-width:767px){
  .service-intro-card .caption .ja{font-size:18px;}
}
.service-intro-card .arrow-circle{
  width:40px;height:40px;border:1px solid var(--color-main);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--color-main);flex-shrink:0;
}
.service-intro-grid .service-intro-card:nth-child(2) .arrow-circle{
  /* transform: translateY(100px); */
}

/* Service detail grid (3PL / EC pages) */
.service-detail-intro{display:flex;gap:50px;align-items:center;/* margin-bottom: 70px; */}
.service-detail-intro .text{flex:1;min-width:0;position:relative;}
.service-detail-intro .photo{flex:1;min-width:0;position:relative;}
.service-detail-intro .text p{position:relative;z-index:1;/* color: var(--color-text-light); */ /* margin-bottom: 1.1em; */}
.service-detail-intro h3{
  background:#f2f2f2;color:var(--color-main);font-size:20px;font-weight:700;
  padding:8px 22px;border-radius:12px;margin:0;
}
.case-item-title{
  display:block;width:fit-content;margin:0 auto 20px;
  background:#f2f2f2;color:var(--color-main);font-size:20px;font-weight:700;
  padding:8px 22px;border-radius:12px;text-align:center;
}
@media (max-width:767px){
  .case-item-title{font-size:18px;}
  .service-detail-intro{gap:20px;}
  .service-detail-intro .text{width:100%;}
  .service-detail-intro .photo{order:-1;}
  .service-detail-intro .photo .collage-frame-equal{margin-bottom:-70px;}
}
@media (max-width:900px){
  .service-detail-intro{flex-direction:column;}
  .service-detail-intro .photo{width:100%;flex:none;}
}

.service-items-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:24px;}
.service-item-card .thumb{border-radius:4px;overflow:hidden;margin-bottom:16px;aspect-ratio:16/7;}
.service-item-card .thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.service-item-card h3{font-size:24px;font-weight:700;color:var(--color-main);margin-bottom:8px;}
.service-item-card p{font-size:16px;/* color: var(--color-text-light); */line-height:1.8;}
@media (max-width:767px){
  .service-item-card h3{font-size:20px;}
  .service-item-card p{font-size:15px;}
}
@media (max-width:767px){ .service-items-grid{grid-template-columns:1fr;} }

/* Recommend checklist */
.recommend-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 40px;margin-top:20px;}
.recommend-item{display:flex;align-items:center;gap:12px;font-size:20px;padding:6px 0;border-bottom:1px dashed var(--color-accent);}
.recommend-item .icon{
  width:26px;height:26px;
  background-image:url('images/common/recommend_bt01.png');
  background-size:contain;background-repeat:no-repeat;background-position:center;
  display:inline-block;flex-shrink:0;
}
@media (max-width:767px){ .recommend-grid{grid-template-columns:1fr;} }
@media (max-width:767px){
  .recommend-item{font-size:15px;}
}

/* Product tags grid */
.product-tags{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px;}
.product-tag{
  background:var(--color-bg-light-blue);color:var(--color-main);border-radius:6px;
  padding:24px 10px;text-align:center;font-size:20px;font-weight:700;
}
.product-tag img{width:75px;height:75px;object-fit:contain;display:block;margin:0 auto 10px;}
@media (max-width:900px){ .product-tags{grid-template-columns:repeat(2,1fr);} }
@media (max-width:480px){ .product-tags{grid-template-columns:repeat(2,1fr);} }
@media (max-width:767px){
  .product-tag{font-size:16px;}
}

/* Flow steps */
.flow-intro-text{font-size:16px;/* color: var(--color-text-light); */line-height:1.9;margin-bottom:8px;}
.flow-steps{display:flex;align-items:center;gap:16px;margin-top:44px;counter-reset:step;}
.flow-step{
  flex:1;background:#fff;border:2px solid var(--color-accent);border-radius:8px;
  padding:30px 18px 24px;text-align:center;position:relative;
}
.flow-step .num{
  position:absolute;top:-18px;left:50%;transform:translateX(-50%);
  width:44px;height:44px;border-radius:28%;background:var(--color-main);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:24px;
}
.flow-step-title{
  display:inline-block;background:#f2f2f2;color:var(--color-main);
  font-size:20px;font-weight:700;padding:8px 22px;border-radius:20px;margin:20px 0;
}
.flow-step .flow-step-icon{width:120px;height:120px;object-fit:contain;display:block;margin:0 auto 18px;}
.flow-step p{font-size:15px;/* color: var(--color-text-light); */line-height:1.7;}
.flow-arrow{
  display:flex;align-items:center;justify-content:center;
  color:var(--color-main);font-size:20px;font-weight:1000;
  height:36px;flex:0 0 auto;
}
@media (max-width:767px){
  .flow-steps{flex-direction:column;}
  .flow-arrow{display:none;}
  .flow-step{width:100%;margin:0 0 30px 0;}
}

/* ============================================================
   13. Recruit page
============================================================ */
.recruit-intro-collage{display:flex;gap:0;height:340px;border-radius:4px;overflow:hidden;margin:40px 0;}
.recruit-intro-collage-wrap{position:relative;z-index:0;}

@media (max-width:767px){
  .flow-steps{flex-direction:column;}
  .flow-arrow{display:none;}
  .flow-step{width:100%;margin:0 0 30px 0;}

}


.recruit-lead-deco-tr{
  position:absolute;
  top:-70px;right:-100px;
  width:200px;
  z-index:-1;
  pointer-events:none;
}
.recruit-lead-deco-bl{
  position:absolute;
  bottom:-70px;left:-106px;
  width:130px;
  z-index:-1;
  pointer-events:none;
}
.recruit-lead-deco-text{
  position:absolute;
  bottom:80px;right:75px;
  width:150px;
  z-index:-1;
  pointer-events:none;
}

@media (max-width:767px){

  .recruit-lead-deco-tr{
    position: absolute;
    top: -80px;
    left: -26px;
    width: 180px;
    z-index: -1;
    pointer-events: none;
  }
  .recruit-lead-deco-bl{
    display:none;
  }
  .recruit-lead-deco-text{
    position: absolute;
    bottom: 80px;
    right: 10px;
    width: 150px;
    z-index: -1;
    pointer-events: none;
  }
}

@media (max-width:767px){
  .recruit-intro-collage{height:120px;}
}
.recruit-intro-collage img{flex:1;object-fit:cover;height:100%;min-width:0;}

.job-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:30px;}
.job-card h3{text-align:center;font-size:20px;font-weight:700;margin-bottom:14px;}
.job-card .thumb{border-radius:4px;overflow:hidden;margin-bottom:14px;aspect-ratio:4/3;}
.job-card .thumb img{width:100%;height:100%;object-fit:cover;}
.job-card ul li{
  font-size:16px;/* color: var(--color-text-light); */padding:8px 0;border-bottom:1px dashed #dbe6f2;
}
@media (max-width:900px){ .job-grid{grid-template-columns:1fr;} }

.env-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:24px;}
.env-item{
  background:var(--color-bg-light-blue);border-radius:6px;padding:26px 12px;text-align:center;
}
.env-item .icon{margin-bottom:10px;}
.env-item .icon img{width:120px;height:70px;object-fit:contain;display:block;margin:0 auto;}
.env-grid .env-item:nth-child(7) .icon img{width:120px;height:70px;}
.env-item p{font-size:20px;font-weight:700;color:var(--color-main);}
@media (max-width:900px){ .env-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:767px){
  .env-item p{font-size:16px;}
}

/* ============================================================
   14. News list / single
============================================================ */
.news-archive-list .news-list-item{border-bottom:1px solid var(--color-accent);padding:20px 0;}
.news-archive-list .news-list-item .date{color:var(--color-text-light);}
.news-archive-list .news-list-item .cat{background:var(--color-bg-light-blue);color:var(--color-main);}
.news-archive-list .news-list-item .ttl{color:var(--color-text);}
.news-archive-list .news-list-item .arrow-btn{
  position:absolute;top:35%;right:0;
  width:40px;height:40px;border-radius:24%;background:var(--color-main);color:#fff;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-size:18px;font-weight:500;font-family:var(--font-ja);
  transition:var(--transition-base);
}
.news-archive-list .news-list-item:hover .arrow-btn{background:var(--color-accent);}
.pagination{display:flex;justify-content:center;gap:10px;margin-top:50px;}
.pagination a,.pagination span{
  width:36px;height:36px;border:2px solid #00469d;border-radius:6px;
  display:flex;align-items:center;justify-content:center;font-size:18px;color:#00469d;
}
.pagination .current{background:var(--color-main);color:#fff;border-color:var(--color-main);}

.single-news .meta{display:flex;gap:16px;align-items:center;color:var(--color-text-light);font-size:14px;margin-bottom:24px;}
.single-news .meta .cat{background:var(--color-bg-light-blue);color:var(--color-main);padding:3px 12px;border-radius:2px;font-size:12px;}
.single-news h1{font-size:26px;color:var(--color-main);margin-bottom:30px;line-height:1.6;}
.single-news .entry-content{font-size:16px;line-height:2;color:var(--color-text-light);}
.single-news .entry-content img{border-radius:4px;margin:20px 0;}
.single-news .entry-content h2{
  font-size:24px;font-weight:700;color:var(--color-main);
  margin:48px 0 20px;padding-bottom:12px;border-bottom:2px solid var(--color-bg-gray);
}
.single-news .entry-content h3{
  font-size:19px;font-weight:700;color:var(--color-text);
  margin:36px 0 16px;padding-left:14px;border-left:4px solid var(--color-accent);
}
.single-news .entry-content h4{font-size:16px;font-weight:700;color:var(--color-text);margin:28px 0 12px;}
.single-news .entry-content p{margin-bottom:1.6em;}
.single-news .entry-content ul,
.single-news .entry-content ol{margin:0 0 1.6em 1.4em;}
.single-news .entry-content li{margin-bottom:.5em;}
.single-news .entry-content a{color:var(--color-main);text-decoration:underline;}
.single-news .entry-content blockquote{
  margin:24px 0;padding:16px 24px;border-left:4px solid var(--color-accent);
  background:var(--color-bg-gray);color:var(--color-text-light);
}
.single-news .back-link{margin-top:50px;text-align:center;border-top:1px solid #73cee3;padding:50px 0 0;}

/* ============================================================
   15. Contact form
============================================================ */
.contact-intro{text-align:center;max-width:720px;margin:0 auto 50px;/* color: var(--color-text-light); */font-size:17px;}
.wpcf7 p{/* margin-bottom: 26px; */font-size:15px;}
.wpcf7 label{display:block;font-size:14px;font-weight:700;margin-bottom:8px;color:var(--color-text);}
.wpcf7 .req{color:#d0393e;font-size:11px;background:#fdeceb;padding:2px 8px;border-radius:3px;margin-left:8px;}
.wpcf7 .any{color:#5c728a;font-size:11px;background:#eef2f6;padding:2px 8px;border-radius:3px;margin-left:8px;}
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 textarea,
.wpcf7 select{
  width:100%;padding:14px 16px;border:1px solid #cdd8e5;border-radius:4px;font-size:15px;font-family:inherit;
}
.wpcf7 textarea{min-height:160px;resize:vertical;}
.wpcf7 input[type=submit]{
  display:block;margin:0 auto;padding:16px 60px;border:none;border-radius:50px;
  background:linear-gradient(90deg,var(--color-main),#1a6fc4);color:#fff;font-size:16px;font-weight:700;
}
.wpcf7 input[type=submit]:hover{opacity:.85;}
.wpcf7-response-output{display:none;border-radius:4px;padding:12px 16px !important;}
.wpcf7-spinner{margin:0 0 0 12px;}

.thanks-box{text-align:center;padding:60px 20px;}
.thanks-box .icon{font-size:60px;color:var(--color-main);margin-bottom:20px;}
.thanks-box h1{font-size:26px;color:var(--color-main);margin-bottom:20px;}
.thanks-box .entry-content{max-width:600px;margin:0 auto 20px;text-align:left;}
.thanks-box .entry-content p{/* color: var(--color-text-light); */line-height:1.9;margin-bottom:2.2em;font-size:17px;}
@media (max-width:767px){
  .thanks-box .entry-content p{font-size:15px;}
}
.thanks-box p{/* color: var(--color-text-light); */ /* margin-bottom: 36px; */}

/* ============================================================
   16. Privacy policy / generic content page
============================================================ */
.policy-content h2{font-size:20px;color:var(--color-main);margin:40px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--color-accent);}
.policy-content h2:first-child{margin-top:0;}
.policy-content p{/* color: var(--color-text-light); */margin-bottom:1.2em;line-height:2;}

/* ============================================================
   17. 404
============================================================ */
.error-404-block{text-align:center;padding:100px 0;}
.error-404-block .error-en{font-family:var(--font-en);font-size:52px;font-weight:300;color:var(--color-main);}
.error-404-block p{color:var(--color-text-light);margin:24px 0 40px;line-height:2;}
@media (max-width:767px){ .error-404-block .error-en{font-size:32px;} }

/* ============================================================
   18. Responsive: grids fallback
============================================================ */
@media (max-width:767px){
  .top-service-cards .cards-row,
  .service-items-grid,
  .job-grid{grid-template-columns:1fr;}
  .page-section{padding:48px 0 0;}
  .page-section.bg-gray{background:var(--color-bg-gray);padding:48px 0;}
  .news-list-item .ttl{font-size:16px;}
  .single-news h1{font-size:22px;}
}

/* ============================================================
   CF7 フォームスタイリング
============================================================ */
.contact-form-wrap {
  max-width: 820px;
  margin: 0 auto;
}
/* CF7_table テーブルレイアウト対応 */
.wpcf7 table.CF7_table {
  width: 100%;
  border-collapse: collapse;
  border: 0;
}
.wpcf7 table.CF7_table tr {
  display: table-row;
  border-bottom: 1px solid #e2e8f0;
}
.wpcf7 table.CF7_table tr:first-child {
  border-top: 1px solid #e2e8f0;
}
.wpcf7 table.CF7_table th {
  width: 200px;
  padding: 20px 16px 20px 16px;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text);
  text-align: left;
  vertical-align: top;
  line-height: 1.8;
  white-space: nowrap;
}
.wpcf7 table.CF7_table td {
  padding: 12px 16px 12px 16px;
  vertical-align: top;
}
@media (max-width:767px){
  .wpcf7 table.CF7_table,
  .wpcf7 table.CF7_table tbody,
  .wpcf7 table.CF7_table tr,
  .wpcf7 table.CF7_table th,
  .wpcf7 table.CF7_table td{display:block;width:100%;}
  .wpcf7 table.CF7_table th{white-space:normal;padding:20px 16px 4px;}
  .wpcf7 table.CF7_table td{padding:0 16px 20px;}
}
/* 必須・任意バッジ */
.wpcf7 .CF7_req {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  background: var(--color-main);
  color: #fff;
  padding: 2px 8px;
  border-radius: 2px;
  letter-spacing: 0.05em;
  margin-right: 8px;
  vertical-align: middle;
}
.wpcf7 .CF7_unreq {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  background: #999;
  color: #fff;
  padding: 2px 8px;
  border-radius: 2px;
  letter-spacing: 0.05em;
  margin-right: 8px;
  vertical-align: middle;
}
/* 送信ボタン */
.wpcf7 p.CF7_btn {
  text-align: center;
  margin-top: 36px;
}
/* プライバシーリンク */
.wpcf7 a.contact-privacy {
  color: var(--color-main);
  text-decoration: underline;
}
/* チェックボックス */
.wpcf7 table.CF7_table input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin-right: 8px;
  vertical-align: middle;
  cursor: pointer;
}
/* 各フォーム行：ラベル左・入力欄右のグリッド（div.form-row対応・旧） */
.wpcf7 .form-row {
  display: grid;
  grid-template-columns: 180px 1fr;
  align-items: start;
  gap: 0;
  border-bottom: 1px solid #e2e8f0;
  padding: 20px 0;
}
.wpcf7 .form-row:first-of-type {
  border-top: 1px solid #e2e8f0;
}
.wpcf7 .form-row label {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text);
  padding-top: 10px;
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 6px;
}
/* 必須バッジ（旧） */
.req {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  background: var(--color-main);
  color: #fff;
  padding: 2px 8px;
  border-radius: 2px;
  letter-spacing: 0.05em;
  flex-shrink: 0;
}
/* テキスト入力・テキストエリア */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
  width: 100%;
  padding: 10px 14px;
  font-size: 14px;
  font-family: var(--font-ja);
  border: 1px solid #e0e0e0;
  background: #f7f8fa;
  color: var(--color-text);
  transition: border-color var(--transition-base), background var(--transition-base);
  border-radius: 2px;
  -webkit-appearance: none;
  appearance: none;
}
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 textarea:focus {
  outline: none;
  border-color: var(--color-main);
  background: #fff;
}
.wpcf7 textarea {
  height: 180px;
  resize: vertical;
}
/* プレースホルダー */
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
  color: #bbb;
  font-size: 13px;
}
/* プライバシーポリシー同意行 */
.wpcf7 .privacy-row {
  margin: 30px 0 10px;
  font-size: 13px;
  color: var(--color-text-light);
}
.wpcf7 .privacy-row .wpcf7-list-item {
  margin: 0;
}
.wpcf7 .privacy-row input[type="checkbox"] {
  margin-right: 8px;
  width: 16px;
  height: 16px;
  vertical-align: middle;
  cursor: pointer;
}
.wpcf7 .privacy-row a {
  color: var(--color-main);
  text-decoration: underline;
}
/* 送信ボタン：スクリーンショットに合わせて角丸・アウトライン */
.wpcf7 input[type="submit"] {
  display: block;
  margin: 36px auto 0;
  padding: 16px 70px;
  background: transparent;
  color: var(--color-text);
  border: 1px solid var(--color-text);
  border-radius: 40px;
  font-size: 16px;
  font-weight: 500;
  font-family: var(--font-ja);
  cursor: pointer;
  transition: all var(--transition-base);
  letter-spacing: 0.1em;
  min-width: 260px;
}
.wpcf7 input[type="submit"]:hover {
  background: var(--color-text);
  color: #fff;
}
/* バリデーションエラー */
.wpcf7 .wpcf7-not-valid-tip {
  font-size: 12px;
  color: #e00;
  margin-top: 4px;
  display: block;
}
.wpcf7 .wpcf7-response-output {
  display: none;
  margin: 20px 0 0;
  padding: 12px 20px;
  font-size: 13px;
  border-radius: 2px;
}
.wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ok,
.wpcf7 .wpcf7-response-output.wpcf7-validation-errors,
.wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-response-output.wpcf7-spam-blocked,
.wpcf7 .wpcf7-response-output.wpcf7-aborted {
  display: block;
}
.wpcf7 .wpcf7-mail-sent-ok {
  background: #e8f5e9;
  border: 1px solid #a5d6a7;
  color: #2e7d32;
}
.wpcf7 .wpcf7-validation-errors {
  background: #fff3e0;
  border: 1px solid #ffcc80;
  color: #e65100;
}
/* いらない部分を削除 */
.wpcf7 .screen-reader-response {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
}
.wpcf7 .hidden-fields-container {
  display: none;
}
