/*
Theme Name: Initial State
Theme URI: https://initialstate.jp
Author: Initial State Inc.
Description: Corporate theme for Initial State Inc.
Version: 1.0.0
Text Domain: initial-state
*/

/* ==========================================================================
   1. Custom Properties
   ========================================================================== */
:root {
  --navy:#060e29;--navy-65:rgba(6,14,41,0.65);--navy-40:rgba(6,14,41,0.4);--navy-08:rgba(6,14,41,0.06);
  --white:#ffffff;--off-white:#fafaf8;--gray-bg:#f4f4f2;--gray-light:#e8e8e6;--gray-mid:#999;
  --yellow:#f5bc1a;--orange:#f29219;--red-orange:#ed6b1a;
  --font-en:'Outfit',sans-serif;--font-ja:'Noto Sans JP',sans-serif;
  --section-pad:120px;--side-pad:56px;
}

/* ==========================================================================
   2. Reset & Base
   ========================================================================== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth;overflow-x:hidden}
body{font-family:var(--font-ja);color:var(--navy);background:var(--white);-webkit-font-smoothing:antialiased}

/* ==========================================================================
   3. Utility / Shared Classes
   ========================================================================== */
.section-label{font-family:var(--font-en);font-size:12px;font-weight:400;letter-spacing:0.2em;text-transform:uppercase;color:var(--gray-mid);display:flex;align-items:center;gap:14px;margin-bottom:24px}
.section-label::before{content:'';display:block;width:28px;height:1px;background:var(--orange);flex-shrink:0}
.section-title{font-size:clamp(22px,2.8vw,32px);font-weight:700;line-height:1.6;letter-spacing:0.04em;margin-bottom:16px}
.section-lead{font-size:14px;font-weight:300;line-height:2.1;color:var(--navy-65);max-width:800px}
.section-link{font-family:var(--font-en);font-size:13px;font-weight:400;letter-spacing:0.08em;color:var(--navy);text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:color 0.3s,gap 0.3s}
.section-link:hover{color:var(--orange);gap:14px}
.fade-in{opacity:1;transform:translateY(0)}
.js-loaded .fade-in{opacity:0;transform:translateY(28px);transition:opacity 0.8s ease,transform 0.8s ease}
.js-loaded .fade-in.visible{opacity:1;transform:translateY(0)}

/* ==========================================================================
   4. Navigation
   ========================================================================== */
.nav{position:fixed;top:0;left:0;width:100%;z-index:1000;padding:28px var(--side-pad);display:flex;justify-content:space-between;align-items:center;transition:background 0.4s,padding 0.3s,box-shadow 0.4s}
.nav.scrolled{background:rgba(255,255,255,0.96);backdrop-filter:blur(16px);padding:18px var(--side-pad);box-shadow:0 1px 0 var(--navy-08)}
.nav-logo{display:flex;align-items:center;text-decoration:none;color:var(--navy)}
.nav-logo-img{height:48px;width:auto}
.nav-links{display:flex;gap:40px;align-items:center}
.nav-links a{font-family:var(--font-en);font-size:12px;font-weight:400;letter-spacing:0.14em;text-decoration:none;color:var(--navy);text-transform:uppercase;position:relative;transition:color 0.3s}
.nav-links a:not(.nav-cta)::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--orange);transition:width 0.3s}
.nav-links a:not(.nav-cta):hover::after{width:100%}
.nav-cta{padding:10px 28px;border:1px solid var(--navy);transition:background 0.3s,color 0.3s}
.nav-cta:hover{background:var(--navy);color:var(--white)!important}
.nav-hamburger{display:none;flex-direction:column;gap:6px;cursor:pointer;padding:8px}
.nav-hamburger span{display:block;width:24px;height:1px;background:var(--navy)}

/* Mobile Nav Overlay */
.mobile-nav{position:fixed;top:0;left:0;width:100%;height:100vh;background:rgba(255,255,255,0.98);backdrop-filter:blur(20px);z-index:1001;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;opacity:0;pointer-events:none;transition:opacity 0.4s ease}
.mobile-nav.open{opacity:1;pointer-events:all}
.mobile-nav a{font-family:var(--font-en);font-size:18px;font-weight:400;letter-spacing:0.16em;text-decoration:none;color:var(--navy);text-transform:uppercase;transition:color 0.3s}
.mobile-nav a:hover{color:var(--orange)}
.mobile-nav .mobile-nav-cta{margin-top:16px;padding:14px 36px;border:1px solid var(--navy);font-size:14px;transition:background 0.3s,color 0.3s}
.mobile-nav .mobile-nav-cta:hover{background:var(--navy);color:var(--white)}
.mobile-nav-close{position:absolute;top:24px;right:var(--side-pad);width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.mobile-nav-close::before,.mobile-nav-close::after{content:'';position:absolute;width:24px;height:1.5px;background:var(--navy)}
.mobile-nav-close::before{transform:rotate(45deg)}
.mobile-nav-close::after{transform:rotate(-45deg)}
/* hamburger hidden when mobile-nav is open (mobile-nav z-index is higher) */

/* ==========================================================================
   5. Shape Dividers
   ========================================================================== */
.shape-divider{position:relative;height:120px;overflow:hidden;background:var(--white)}
.shape-divider.on-gray{background:var(--off-white)}
.shape-divider.on-white{background:var(--white)}
.sd-stripe{position:absolute;width:120%;height:100%;left:-10%}
.sd-a .sd-stripe-1{background:var(--yellow);opacity:0.3;clip-path:polygon(0 60%,100% 20%,100% 35%,0 75%)}
.sd-a .sd-stripe-2{background:var(--orange);opacity:0.25;clip-path:polygon(0 45%,100% 40%,100% 55%,0 90%)}
.sd-a .sd-stripe-3{background:var(--red-orange);opacity:0.2;clip-path:polygon(0 70%,100% 55%,100% 68%,0 100%)}
.sd-b .sd-stripe-1{background:var(--navy);opacity:0.12;clip-path:polygon(0 30%,100% 60%,100% 78%,0 48%)}
.sd-b .sd-stripe-2{background:var(--orange);opacity:0.2;clip-path:polygon(0 55%,100% 25%,100% 40%,0 70%)}
.sd-b .sd-stripe-3{background:var(--yellow);opacity:0.18;clip-path:polygon(0 65%,100% 45%,100% 52%,0 72%)}
.sd-c .sd-stripe-1{background:linear-gradient(90deg,var(--yellow),var(--orange));opacity:0.25;clip-path:polygon(0 40%,100% 55%,100% 70%,0 55%)}
.sd-c .sd-stripe-2{background:var(--navy);opacity:0.1;clip-path:polygon(0 60%,100% 30%,100% 48%,0 78%)}
.sd-c .sd-stripe-3{background:var(--red-orange);opacity:0.18;clip-path:polygon(0 20%,100% 65%,100% 75%,0 30%)}

/* ==========================================================================
   6. Page Hero (Subpages)
   ========================================================================== */
.page-hero{position:relative;padding:180px var(--side-pad) 120px;background:var(--off-white);overflow:hidden}
.page-hero-accent{position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,var(--yellow),var(--orange),var(--red-orange));z-index:2}
.page-hero-geo{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:hidden}
.ph-geo-1{position:absolute;top:-10%;right:-5%;width:45%;height:60%;background:linear-gradient(160deg,rgba(245,188,26,0.12),rgba(242,146,25,0.06));transform:skewY(-8deg);opacity:0;animation:geoIn 1.2s ease 0.2s forwards}
.ph-geo-2{position:absolute;top:0;right:0;width:0;height:0;border-top:280px solid rgba(242,146,25,0.1);border-left:360px solid transparent;opacity:0;animation:geoIn 1s ease 0.3s forwards}
.ph-geo-3{position:absolute;bottom:10%;left:-2%;width:0;height:0;border-bottom:200px solid rgba(245,188,26,0.07);border-right:260px solid transparent;opacity:0;animation:geoIn 1.2s ease 0.5s forwards}
.ph-geo-4{position:absolute;top:15%;right:20%;width:200px;height:200px;border-radius:50%;border:1.5px solid rgba(242,146,25,0.12);opacity:0;animation:geoIn 1.4s ease 0.4s forwards}
.ph-geo-5{position:absolute;top:30%;right:35%;width:10px;height:10px;background:var(--yellow);opacity:0;animation:geoIn 0.6s ease 0.8s forwards}
.ph-geo-6{position:absolute;bottom:25%;right:15%;width:8px;height:8px;background:var(--orange);opacity:0;animation:geoIn 0.6s ease 1s forwards}
.ph-geo-7{position:absolute;top:50%;left:40%;width:160px;height:1.5px;background:linear-gradient(90deg,rgba(242,146,25,0.2),transparent);transform:rotate(-15deg);opacity:0;animation:geoIn 1s ease 0.6s forwards}

.breadcrumb{position:relative;z-index:1;font-size:12px;color:var(--gray-mid);margin-bottom:48px;opacity:0;transform:translateY(10px);animation:fadeUp 0.6s ease 0.2s forwards}
.breadcrumb a{color:var(--gray-mid);text-decoration:none;transition:color 0.3s}
.breadcrumb a:hover{color:var(--orange)}
.breadcrumb span{margin:0 8px}
.page-hero-content{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;max-width:1200px}
.page-hero-left{opacity:0;transform:translateY(20px);animation:fadeUp 0.8s ease 0.3s forwards}
.page-hero-title{font-size:clamp(28px,3.6vw,44px);font-weight:900;letter-spacing:0.06em;line-height:1.4;margin-bottom:20px}
.page-hero-subtitle{font-size:clamp(15px,1.6vw,18px);font-weight:500;line-height:1.8;color:var(--navy-65)}
.page-hero-right{opacity:0;transform:translateY(20px);animation:fadeUp 0.8s ease 0.6s forwards}
.page-hero-desc{font-size:14px;font-weight:300;line-height:2.4;color:var(--navy-65)}

/* Simple page hero (contact, blog) */
.page-hero--simple .page-hero-content{display:block;max-width:640px;opacity:0;transform:translateY(20px);animation:fadeUp 0.8s ease 0.3s forwards}
.page-hero--simple .page-hero-title{margin-bottom:20px}
.page-hero--simple .page-hero-desc{font-size:14px;font-weight:300;line-height:2.2;color:var(--navy-65)}
.page-hero--simple{padding:180px var(--side-pad) 80px}

/* ==========================================================================
   7. Top Page - Hero
   ========================================================================== */
.hero{position:relative;width:100%;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:var(--off-white)}
.hero-geo{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:hidden}
.geo-block-1{position:absolute;top:-10%;right:-5%;width:55%;height:70%;background:linear-gradient(160deg,rgba(245,188,26,0.18) 0%,rgba(242,146,25,0.12) 40%,rgba(237,107,26,0.06) 100%);transform:skewY(-8deg);animation:geoIn 1.4s ease 0.2s forwards;opacity:0}
.geo-block-2{position:absolute;bottom:-15%;right:-8%;width:50%;height:55%;background:linear-gradient(145deg,rgba(6,14,41,0.06) 0%,rgba(6,14,41,0.03) 100%);transform:skewY(6deg) skewX(-4deg);animation:geoIn 1.2s ease 0.4s forwards;opacity:0}
.geo-tri-1{position:absolute;top:0;right:0;width:0;height:0;border-top:380px solid rgba(242,146,25,0.14);border-left:480px solid transparent;animation:geoIn 1s ease 0.3s forwards;opacity:0}
.geo-tri-2{position:absolute;bottom:10%;left:-2%;width:0;height:0;border-bottom:260px solid rgba(245,188,26,0.1);border-right:340px solid transparent;animation:geoIn 1.2s ease 0.6s forwards;opacity:0}
.geo-circle-1{position:absolute;top:8%;right:25%;width:280px;height:280px;border-radius:50%;border:2px solid rgba(242,146,25,0.15);animation:geoIn 1.4s ease 0.5s forwards;opacity:0}
.geo-circle-2{position:absolute;bottom:25%;right:15%;width:80px;height:80px;border-radius:50%;background:rgba(245,188,26,0.1);animation:geoIn 1s ease 0.8s forwards;opacity:0}
.geo-para{position:absolute;top:35%;right:10%;width:240px;height:160px;background:rgba(237,107,26,0.06);transform:skewX(-15deg);animation:geoIn 1s ease 0.7s forwards;opacity:0}
.geo-line-1{position:absolute;top:20%;left:10%;width:300px;height:1.5px;background:linear-gradient(90deg,rgba(242,146,25,0.25),rgba(242,146,25,0));transform:rotate(-20deg);animation:geoIn 1s ease 0.6s forwards;opacity:0}
.geo-line-2{position:absolute;bottom:30%;right:20%;width:200px;height:1.5px;background:linear-gradient(90deg,rgba(245,188,26,0),rgba(245,188,26,0.2));transform:rotate(15deg);animation:geoIn 1s ease 0.9s forwards;opacity:0}
.geo-line-3{position:absolute;top:55%;left:30%;width:180px;height:1px;background:linear-gradient(90deg,rgba(237,107,26,0.15),rgba(237,107,26,0));transform:rotate(-10deg);animation:geoIn 1s ease 1s forwards;opacity:0}
.geo-dot{position:absolute;opacity:0}
.geo-dot-1{width:12px;height:12px;background:var(--yellow);top:14%;left:38%;animation:geoIn 0.6s ease 1s forwards}
.geo-dot-2{width:10px;height:10px;background:var(--orange);top:30%;right:18%;animation:geoIn 0.6s ease 1.1s forwards}
.geo-dot-3{width:14px;height:14px;background:var(--red-orange);bottom:20%;left:48%;animation:geoIn 0.6s ease 1.2s forwards}
.geo-dot-4{width:8px;height:8px;background:var(--yellow);bottom:40%;right:32%;animation:geoIn 0.6s ease 1.3s forwards}
.geo-dot-5{width:10px;height:10px;background:var(--orange);top:60%;left:15%;animation:geoIn 0.6s ease 1.4s forwards}
.geo-sq-1{position:absolute;top:45%;right:38%;width:24px;height:24px;border:1.5px solid rgba(242,146,25,0.3);transform:rotate(15deg);animation:geoIn 0.8s ease 1s forwards;opacity:0}
.geo-sq-2{position:absolute;bottom:15%;left:25%;width:18px;height:18px;border:1.5px solid rgba(237,107,26,0.25);transform:rotate(-10deg);animation:geoIn 0.8s ease 1.2s forwards;opacity:0}
.hero-accent-line{position:absolute;top:0;left:0;width:3px;height:0;background:linear-gradient(180deg,var(--yellow),var(--orange),var(--red-orange));z-index:3;animation:accentLineIn 1.2s ease 0.2s forwards}
.hero-content{position:relative;z-index:2;padding:0 var(--side-pad);padding-top:140px;width:100%;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.hero-eyebrow{font-family:var(--font-en);font-size:11px;font-weight:400;letter-spacing:0.22em;text-transform:uppercase;color:var(--gray-mid);margin-bottom:44px;display:flex;align-items:center;gap:14px;opacity:0;transform:translateY(12px);animation:fadeUp 0.7s ease 0.4s forwards}
.hero-eyebrow::before{content:'';display:block;width:28px;height:1px;background:var(--orange);flex-shrink:0}
.hero-h1{font-size:clamp(28px,3.4vw,44px);font-weight:900;line-height:1.4;letter-spacing:0.06em;margin-bottom:32px;white-space:nowrap;opacity:0;transform:translateY(20px);animation:fadeUp 0.9s ease 0.6s forwards}
.hero-h1 .accent{color:var(--orange)}
.hero-sub-short{font-size:15px;font-weight:400;line-height:2;color:var(--navy);opacity:0;transform:translateY(16px);animation:fadeUp 0.8s ease 0.85s forwards}
.hero-right{opacity:0;transform:translateY(24px);animation:fadeUp 1s ease 1s forwards}
.hero-right-text{font-size:14px;font-weight:300;line-height:2.4;color:var(--navy-65)}
.hero-right-text p{margin-bottom:20px}
.hero-right-text p:last-child{margin-bottom:0}
.scroll-ind{position:absolute;bottom:40px;left:var(--side-pad);display:flex;align-items:center;gap:12px;z-index:2;opacity:0;animation:fadeUp 0.7s ease 1.4s forwards}
.scroll-line{width:1px;height:48px;background:var(--gray-light);position:relative;overflow:hidden}
.scroll-line::after{content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--orange);animation:scrollMove 2.4s ease infinite}
.scroll-txt{font-family:var(--font-en);font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--gray-mid);writing-mode:vertical-rl}

/* ==========================================================================
   8. Top Page - Services
   ========================================================================== */
.services{padding:var(--section-pad) var(--side-pad);background:var(--white)}
.services-header{margin-bottom:56px}
.services-main{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:56px}
.svc-card{border:1px solid var(--gray-light);padding:44px 36px;position:relative;transition:border-color 0.3s,box-shadow 0.3s}
.svc-card:hover{border-color:var(--orange);box-shadow:0 8px 32px rgba(6,14,41,0.06)}
.svc-card-num{font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:0.16em;color:var(--orange);margin-bottom:16px}
.svc-card-icon{width:48px;height:48px;margin-bottom:20px;display:flex;align-items:center;justify-content:center;background:rgba(242,146,25,0.08);border-radius:12px}
.svc-card-icon svg{width:22px;height:22px}
.svc-card-name{font-size:13px;font-weight:500;letter-spacing:0.08em;color:var(--navy-65);margin-bottom:12px}
.svc-card-catch{font-size:18px;font-weight:700;line-height:1.6;margin-bottom:16px}
.svc-card-desc{font-size:13px;font-weight:300;line-height:2;color:var(--navy-65);margin-bottom:24px}
.svc-card-features{list-style:none;margin-bottom:28px}
.svc-card-features li{font-size:12px;font-weight:400;line-height:1.8;color:var(--navy-65);padding-left:14px;position:relative;margin-bottom:4px}
.svc-card-features li::before{content:'';position:absolute;left:0;top:9px;width:6px;height:1px;background:var(--orange)}
.svc-card-link{font-family:var(--font-en);font-size:13px;font-weight:400;letter-spacing:0.08em;color:var(--navy);text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:color 0.3s,gap 0.3s}
.svc-card-link:hover{color:var(--orange);gap:14px}
.sub-services{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding-top:40px;border-top:1px solid var(--gray-light)}
.sub-card{padding:32px 24px;background:var(--off-white);transition:background 0.3s}
.sub-card:hover{background:var(--gray-bg)}
.sub-card-icon{width:40px;height:40px;margin-bottom:16px;display:flex;align-items:center;justify-content:center;background:rgba(242,146,25,0.08);border-radius:10px}
.sub-card-icon svg{width:18px;height:18px}
.sub-card-num{font-family:var(--font-en);font-size:10px;font-weight:600;letter-spacing:0.14em;color:var(--orange);margin-bottom:10px}
.sub-card-title{font-size:14px;font-weight:700;line-height:1.5;margin-bottom:8px}
.sub-card-desc{font-size:12px;font-weight:300;line-height:1.9;color:var(--navy-65);margin-bottom:8px}
.sub-card-tag{font-size:11px;color:var(--gray-mid)}

/* ==========================================================================
   9. Top Page - Cases
   ========================================================================== */
.cases{padding:var(--section-pad) var(--side-pad);background:var(--off-white)}
.cases-header{margin-bottom:48px}
.cases-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-bottom:40px}
.case-card{background:var(--white);padding:36px 28px;border:1px solid var(--gray-light);transition:border-color 0.3s,box-shadow 0.3s;text-decoration:none;color:var(--navy);display:block}
.case-card:hover{border-color:var(--orange);box-shadow:0 6px 24px rgba(6,14,41,0.05)}
.case-cat{font-size:11px;font-weight:500;letter-spacing:0.08em;color:var(--orange);margin-bottom:14px}
.case-company{font-size:13px;font-weight:400;color:var(--navy-65);margin-bottom:14px}
.case-profile{font-size:12px;font-weight:300;color:var(--gray-mid);margin-bottom:8px}
.case-title{font-size:15px;font-weight:700;line-height:1.6;margin-bottom:12px}
.case-text{font-size:12px;font-weight:300;line-height:2;color:var(--navy-65);margin-bottom:20px}
.case-result{padding-top:16px;border-top:1px solid var(--gray-light)}
.case-result-label{font-family:var(--font-en);font-size:10px;font-weight:600;letter-spacing:0.16em;color:var(--gray-mid);margin-bottom:6px}
.case-result-value{font-size:14px;font-weight:700;line-height:1.5}
.case-card-link{display:flex;align-items:center;gap:6px;font-family:var(--font-en);font-size:12px;font-weight:400;letter-spacing:0.08em;color:var(--navy);margin-top:16px;transition:color 0.3s}
.case-card:hover .case-card-link{color:var(--orange)}
.cases-link-wrap{text-align:right}

/* Case thumbnail / color block */
.case-thumb{width:100%;aspect-ratio:3/2;object-fit:cover;margin-bottom:20px}
.case-color-block{width:100%;aspect-ratio:3/2;margin-bottom:20px}
.case-color-block--program{background:linear-gradient(135deg,rgba(242,146,25,0.15),rgba(237,107,26,0.1))}
.case-color-block--bpo{background:linear-gradient(135deg,rgba(6,14,41,0.1),rgba(6,14,41,0.06))}

/* Case archive filter tabs */
.case-filter{display:flex;gap:12px;margin-bottom:48px;flex-wrap:wrap}
.case-filter a,.case-filter button{font-family:var(--font-ja);font-size:13px;font-weight:500;padding:8px 20px;border:1px solid var(--gray-light);text-decoration:none;color:var(--navy-65);background:var(--white);cursor:pointer;transition:all 0.3s}
.case-filter a:hover,.case-filter a.active,.case-filter button:hover,.case-filter button.active{border-color:var(--orange);color:var(--orange);background:rgba(242,146,25,0.06)}

/* ==========================================================================
   10. Top Page - Company
   ========================================================================== */
.company{padding:var(--section-pad) var(--side-pad);background:var(--white)}
.company-inner{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.company-msg-heading{font-size:clamp(22px,2.6vw,30px);font-weight:700;line-height:1.7;margin-bottom:24px;margin-top:8px}
.company-msg-body{font-size:14px;font-weight:300;line-height:2.2;color:var(--navy-65);margin-bottom:32px}
.company-msg-body p{margin-bottom:14px}
.company-photo{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:30% top;margin-bottom:20px}
.company-photo-wrap{position:relative}
.company-photo-accent{position:absolute;bottom:-10px;right:-10px;width:40%;height:40%;border:2px solid var(--orange);z-index:-1}
.company-profile-name{font-size:15px;font-weight:700;margin-bottom:4px}
.company-profile-title{font-size:12px;font-weight:400;color:var(--gray-mid);letter-spacing:0.04em}

/* ==========================================================================
   11. Top Page - News
   ========================================================================== */
.news{padding:var(--section-pad) var(--side-pad);background:var(--off-white)}
.news-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px}
.news-list{list-style:none}
.news-item{display:flex;align-items:baseline;gap:24px;padding:22px 0;border-bottom:1px solid var(--gray-light)}
.news-item:first-child{border-top:1px solid var(--gray-light)}
.news-date{font-family:var(--font-en);font-size:13px;font-weight:400;letter-spacing:0.06em;color:var(--gray-mid);flex-shrink:0;min-width:100px}
.news-cat{font-size:11px;font-weight:500;letter-spacing:0.06em;color:var(--orange);background:rgba(242,146,25,0.08);padding:3px 12px;flex-shrink:0}
.news-title-text{font-size:14px;font-weight:400;line-height:1.6}
.news-title-text a{color:var(--navy);text-decoration:none;transition:color 0.3s}
.news-title-text a:hover{color:var(--orange)}

/* ==========================================================================
   12. CTA Section
   ========================================================================== */
.cta-section{padding:100px var(--side-pad);background:var(--navy);text-align:center;position:relative;overflow:hidden}
.cta-section::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:60px;background:linear-gradient(180deg,var(--yellow),var(--orange))}
.cta-eyebrow{font-family:var(--font-en);font-size:12px;font-weight:400;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,0.4);margin-bottom:28px;margin-top:32px}
.cta-title{font-size:clamp(18px,2.4vw,26px);font-weight:700;color:var(--white);line-height:1.7;margin-bottom:20px}
.cta-text{font-size:14px;font-weight:300;line-height:2;color:rgba(255,255,255,0.55);max-width:560px;margin:0 auto 44px}
.cta-btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-ja);font-size:14px;font-weight:500;color:var(--navy);background:var(--white);padding:18px 44px;text-decoration:none;letter-spacing:0.06em;transition:background 0.4s,color 0.4s,gap 0.3s}
.cta-btn:hover{background:var(--orange);color:var(--white);gap:16px}

/* ==========================================================================
   13. Footer
   ========================================================================== */
.footer{padding:56px var(--side-pad) 40px;background:var(--navy);border-top:1px solid rgba(255,255,255,0.06);display:flex;justify-content:space-between;align-items:flex-end}
.footer-logo{display:flex;align-items:center;text-decoration:none;margin-bottom:20px}
.footer-logo-img{height:40px;width:auto}
.footer-address{font-size:12px;font-weight:300;color:rgba(255,255,255,0.35);line-height:1.8}
.footer-cert{font-size:10px;font-weight:300;color:rgba(255,255,255,0.25);margin-top:12px;letter-spacing:0.02em}
.footer-links{display:flex;gap:24px;margin-bottom:16px}
.footer-links a{font-size:12px;font-weight:300;color:rgba(255,255,255,0.4);text-decoration:none;transition:color 0.3s}
.footer-links a:hover{color:rgba(255,255,255,0.7)}
.footer-copy{font-family:var(--font-en);font-size:11px;font-weight:400;letter-spacing:0.1em;color:rgba(255,255,255,0.25)}

/* ==========================================================================
   14. Service Pages - Target
   ========================================================================== */
.target{padding:var(--section-pad) var(--side-pad);background:var(--white)}
.target.bg-gray{background:var(--off-white)}
.target-header{margin-bottom:48px}
.target-qualifier{display:inline-block;font-size:14px;font-weight:700;line-height:1.6;padding:12px 24px;background:rgba(242,146,25,0.08);border-left:3px solid var(--orange);margin-bottom:12px}
.target-qualifier-note{font-size:12px;color:var(--gray-mid);margin-bottom:48px}
.target-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.target-card{background:var(--off-white);padding:36px 28px;text-align:center;transition:background 0.3s,box-shadow 0.3s}
.target.bg-gray .target-card{background:var(--white);border:1px solid var(--gray-light)}
.target.bg-gray .target-card:hover{border-color:var(--orange);box-shadow:0 6px 24px rgba(6,14,41,0.04)}
.target-card:hover{background:var(--gray-bg);box-shadow:0 6px 24px rgba(6,14,41,0.04)}
.target-icon{width:56px;height:56px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(242,146,25,0.08)}
.target-icon svg{width:24px;height:24px}
.target-card-text{font-size:13px;font-weight:400;line-height:1.9}

/* ==========================================================================
   15. Service Pages - Compare Table
   ========================================================================== */
.compare{padding:var(--section-pad) var(--side-pad);background:var(--off-white)}
.compare.bg-white{background:var(--white)}
.compare-header{margin-bottom:48px}
.compare-title{font-size:clamp(22px,2.8vw,32px);font-weight:700;line-height:1.6;margin-bottom:16px}
.compare-lead{font-size:14px;font-weight:300;line-height:2.1;color:var(--navy-65);max-width:800px}
.compare-table{display:grid;grid-template-columns:160px 1fr 1fr;gap:0;margin-bottom:32px}
.ct-header{padding:20px 24px;font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase}
.ct-header-label{background:var(--gray-bg);color:var(--gray-mid)}
.ct-header-old{background:var(--gray-bg);color:var(--navy-65);text-align:center}
.ct-header-new{background:var(--navy);color:var(--yellow);text-align:center}
.ct-row-label{padding:20px 24px;font-size:13px;font-weight:500;border-bottom:1px solid var(--gray-light);background:var(--white);display:flex;align-items:center;gap:10px}
.ct-row-label-icon{width:6px;height:6px;background:var(--orange);flex-shrink:0}
.ct-cell{padding:20px 24px;font-size:13px;font-weight:300;line-height:1.8;border-bottom:1px solid var(--gray-light);text-align:center;display:flex;align-items:center;justify-content:center}
.ct-cell-old{background:var(--white);color:var(--navy-65)}
.ct-cell-new{background:rgba(6,14,41,0.03);color:var(--navy);font-weight:500}
.compare-note{font-size:12px;color:var(--gray-mid)}
/* Mobile compare cards (hidden on desktop) */
.compare-mobile{display:none}
.cm-card{margin-bottom:20px;padding:28px 24px}
.cm-before{background:var(--gray-bg);border-radius:4px}
.cm-after{background:var(--navy);border-radius:4px}
.cm-label{font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:0.16em;margin-bottom:20px}
.cm-before .cm-label{color:var(--gray-mid)}
.cm-after .cm-label{color:var(--yellow)}
.cm-row{padding:12px 0;border-bottom:1px solid}
.cm-row:last-child{border-bottom:none}
.cm-before .cm-row{border-color:var(--gray-light)}
.cm-after .cm-row{border-color:rgba(255,255,255,0.1)}
.cm-row-title{font-size:11px;font-weight:500;letter-spacing:0.06em;margin-bottom:4px}
.cm-before .cm-row-title{color:var(--navy-40)}
.cm-after .cm-row-title{color:rgba(255,255,255,0.4)}
.cm-row-value{font-size:14px;font-weight:400;line-height:1.6}
.cm-after .cm-row-value{color:var(--white)}

/* ==========================================================================
   16. Service Pages - Features
   ========================================================================== */
.features{padding:var(--section-pad) var(--side-pad);background:var(--white)}
.features-header{margin-bottom:48px}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feature-card{background:var(--off-white);padding:36px 28px;transition:background 0.3s}
.feature-card:hover{background:var(--gray-bg)}
.feature-icon{width:48px;height:48px;margin-bottom:20px;display:flex;align-items:center;justify-content:center;background:rgba(242,146,25,0.08);border-radius:12px}
.feature-icon svg{width:22px;height:22px}
.feature-card-title{font-size:15px;font-weight:700;line-height:1.5;margin-bottom:10px}
.feature-card-desc{font-size:12px;font-weight:300;line-height:1.9;color:var(--navy-65)}

/* ==========================================================================
   17. Service Pages - Flow
   ========================================================================== */
.flow{padding:var(--section-pad) var(--side-pad);background:var(--off-white)}
.flow.bg-white{background:var(--white)}
.flow-header{margin-bottom:56px}
/* 2-step flow (program) */
.flow-steps--2{display:grid;grid-template-columns:1fr 48px 1fr;gap:0;align-items:stretch;margin-bottom:36px}
/* 3-step flow (BPO) */
.flow-steps--3{display:grid;grid-template-columns:1fr 48px 1fr 48px 1fr;gap:0;align-items:stretch;margin-bottom:36px}
.flow-step{padding:44px 32px;text-align:center}
.flow-step-1{background:var(--white);border:1px solid var(--gray-light);border-radius:4px 0 0 4px}
.flow-step-2{background:var(--navy);border-radius:0 4px 4px 0}
.flow-step-mid{background:var(--off-white);border-top:1px solid var(--gray-light);border-bottom:1px solid var(--gray-light)}
.flow-step-last{background:var(--navy);border-radius:0 4px 4px 0}
.flow-arrow{display:flex;align-items:center;justify-content:center;background:var(--off-white)}
.flow.bg-white .flow-arrow{background:var(--white)}
.flow-arrow-dot{width:36px;height:36px;border-radius:50%;background:var(--orange);display:flex;align-items:center;justify-content:center}
.flow-arrow-dot svg{width:16px;height:16px}
.flow-step-icon{width:52px;height:52px;margin:0 auto 16px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.flow-step-1 .flow-step-icon,.flow-step-mid .flow-step-icon{background:rgba(242,146,25,0.1)}
.flow-step-2 .flow-step-icon,.flow-step-last .flow-step-icon{background:rgba(255,255,255,0.1)}
.flow-step-icon svg{width:24px;height:24px}
.flow-step-num{font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:0.16em;margin-bottom:12px}
.flow-step-1 .flow-step-num,.flow-step-mid .flow-step-num{color:var(--orange)}
.flow-step-2 .flow-step-num,.flow-step-last .flow-step-num{color:var(--yellow)}
.flow-step-title{font-size:17px;font-weight:700;line-height:1.5;margin-bottom:12px}
.flow-step-2 .flow-step-title,.flow-step-last .flow-step-title{color:var(--white)}
.flow-step-desc{font-size:12px;font-weight:300;line-height:1.9}
.flow-step-1 .flow-step-desc,.flow-step-mid .flow-step-desc{color:var(--navy-65)}
.flow-step-2 .flow-step-desc,.flow-step-last .flow-step-desc{color:rgba(255,255,255,0.6)}
.flow-step-output{margin-top:20px;padding-top:16px;border-top:1px solid}
.flow-step-1 .flow-step-output,.flow-step-mid .flow-step-output{border-color:var(--gray-light)}
.flow-step-2 .flow-step-output,.flow-step-last .flow-step-output{border-color:rgba(255,255,255,0.1)}
.flow-output-label{font-family:var(--font-en);font-size:10px;font-weight:600;letter-spacing:0.14em;margin-bottom:4px}
.flow-step-1 .flow-output-label,.flow-step-mid .flow-output-label{color:var(--gray-mid)}
.flow-step-2 .flow-output-label,.flow-step-last .flow-output-label{color:rgba(255,255,255,0.4)}
.flow-output-value{font-size:13px;font-weight:500}
.flow-step-2 .flow-output-value,.flow-step-last .flow-output-value{color:var(--white)}
.flow-notes{max-width:640px}
.flow-note{font-size:13px;font-weight:300;line-height:2;color:var(--navy-65)}
.flow-note-small{font-size:12px;color:var(--gray-mid);margin-top:8px}

/* ==========================================================================
   18. Company Page
   ========================================================================== */
.mv{padding:var(--section-pad) var(--side-pad);background:var(--white)}
.mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:48px}
.mv-card{padding:48px 40px;position:relative}
.mv-card-mission{background:var(--navy);color:var(--white)}
.mv-card-vision{background:var(--off-white);border:1px solid var(--gray-light)}
.mv-card-label{font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;margin-bottom:20px}
.mv-card-mission .mv-card-label{color:var(--yellow)}
.mv-card-vision .mv-card-label{color:var(--orange)}
.mv-card-text{font-size:clamp(18px,2.2vw,24px);font-weight:700;line-height:1.7}
.mv-card-mission .mv-card-text{color:var(--white)}

.rep{padding:var(--section-pad) var(--side-pad);background:var(--off-white)}
.rep-inner{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.rep-photo{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:30% top}
.rep-photo-wrap{position:relative}
.rep-photo-accent{position:absolute;bottom:-10px;right:-10px;width:40%;height:40%;border:2px solid var(--orange);z-index:-1}
.rep-name{font-size:20px;font-weight:700;margin-top:20px;margin-bottom:4px}
.rep-title{font-size:12px;color:var(--gray-mid);margin-bottom:32px}
.rep-heading{font-size:clamp(20px,2.4vw,28px);font-weight:700;line-height:1.7;margin-bottom:24px}
.rep-body{font-size:14px;font-weight:300;line-height:2.4;color:var(--navy-65)}
.rep-body p{margin-bottom:16px}

.info{padding:var(--section-pad) var(--side-pad);background:var(--white)}
.info-table{max-width:800px;margin-top:48px}
.info-row{display:grid;grid-template-columns:180px 1fr;border-bottom:1px solid var(--gray-light)}
.info-row:first-child{border-top:1px solid var(--gray-light)}
.info-label{padding:20px 24px;font-size:13px;font-weight:500;background:var(--off-white)}
.info-value{padding:20px 24px;font-size:13px;font-weight:300;line-height:1.8;color:var(--navy-65)}

.access{padding:var(--section-pad) var(--side-pad);background:var(--off-white)}
.access-inner{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:48px;align-items:start}
.access-address{font-size:14px;font-weight:400;line-height:2;margin-bottom:16px}
.access-station{font-size:13px;font-weight:300;color:var(--navy-65);line-height:1.8}
.access-map{width:100%;aspect-ratio:4/3;border:0}

/* ==========================================================================
   19. Case Detail Page
   ========================================================================== */
.detail-hero{position:relative;padding:160px var(--side-pad) 80px;background:var(--off-white);overflow:hidden}
.detail-hero-accent{position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,var(--yellow),var(--orange),var(--red-orange));z-index:2}
.detail-hero-geo{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:hidden}
.dh-geo-1{position:absolute;top:-10%;right:-5%;width:40%;height:55%;background:linear-gradient(160deg,rgba(245,188,26,0.1),rgba(242,146,25,0.05));transform:skewY(-8deg);opacity:0;animation:geoIn 1.2s ease 0.2s forwards}
.dh-geo-2{position:absolute;top:0;right:0;width:0;height:0;border-top:220px solid rgba(242,146,25,0.08);border-left:280px solid transparent;opacity:0;animation:geoIn 1s ease 0.3s forwards}
.dh-geo-3{position:absolute;top:20%;right:25%;width:160px;height:160px;border-radius:50%;border:1.5px solid rgba(242,146,25,0.1);opacity:0;animation:geoIn 1.4s ease 0.4s forwards}
.dh-geo-4{position:absolute;top:35%;right:40%;width:8px;height:8px;background:var(--yellow);opacity:0;animation:geoIn 0.6s ease 0.8s forwards}
.detail-hero-content{position:relative;z-index:1;max-width:900px;opacity:0;transform:translateY(20px);animation:fadeUp 0.8s ease 0.3s forwards}
.detail-cat{font-size:12px;font-weight:500;letter-spacing:0.08em;color:var(--orange);margin-bottom:16px}
.detail-company{font-size:14px;font-weight:400;color:var(--navy-65);margin-bottom:8px}
.detail-title{font-size:clamp(22px,3vw,36px);font-weight:900;line-height:1.5;letter-spacing:0.04em;margin-bottom:32px}
.result-banner{background:var(--navy);padding:32px var(--side-pad);display:flex;align-items:center;gap:40px}
.result-banner-label{font-family:var(--font-en);font-size:11px;font-weight:600;letter-spacing:0.18em;color:var(--yellow);flex-shrink:0}
.result-banner-value{font-size:18px;font-weight:700;color:var(--white);line-height:1.5}
.detail-section{padding:100px var(--side-pad)}
.detail-section.bg-white{background:var(--white)}
.detail-section.bg-gray{background:var(--off-white)}
.detail-section-inner{max-width:800px}
.detail-section-title{font-size:clamp(18px,2.2vw,24px);font-weight:700;line-height:1.6;margin-bottom:24px}
.detail-section-body{font-size:14px;font-weight:300;line-height:2.4;color:var(--navy-65)}
.detail-section-body p{margin-bottom:16px}
.support-list{list-style:none;margin-top:8px}
.support-list li{font-size:14px;font-weight:400;line-height:1.8;color:var(--navy);padding:12px 0;border-bottom:1px solid var(--gray-light);padding-left:20px;position:relative}
.support-list li:first-child{border-top:1px solid var(--gray-light)}
.support-list li::before{content:'';position:absolute;left:0;top:20px;width:8px;height:1px;background:var(--orange)}
.outcome-highlight{background:var(--navy);padding:40px;margin-top:32px}
.outcome-highlight-label{font-family:var(--font-en);font-size:10px;font-weight:600;letter-spacing:0.16em;color:var(--yellow);margin-bottom:12px}
.outcome-highlight-text{font-size:14px;font-weight:300;line-height:2.2;color:rgba(255,255,255,0.8)}
.related{padding:100px var(--side-pad);background:var(--off-white)}
.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:40px}
.related-card{background:var(--white);border:1px solid var(--gray-light);text-decoration:none;color:var(--navy);display:block;transition:border-color 0.3s,box-shadow 0.3s}
.related-card:hover{border-color:var(--orange);box-shadow:0 6px 24px rgba(6,14,41,0.05)}
.related-card-body{padding:32px 28px}
.related-cat{font-size:11px;font-weight:500;letter-spacing:0.08em;color:var(--orange);margin-bottom:10px}
.related-company{font-size:12px;color:var(--navy-65);margin-bottom:8px}
.related-title{font-size:15px;font-weight:700;line-height:1.6;margin-bottom:12px}
.related-result{padding:16px 28px;border-top:1px solid var(--gray-light);background:var(--off-white)}
.related-result-label{font-family:var(--font-en);font-size:10px;font-weight:600;letter-spacing:0.14em;color:var(--gray-mid);margin-bottom:4px}
.related-result-value{font-size:13px;font-weight:700}
.related-card-link{display:flex;align-items:center;gap:6px;font-family:var(--font-en);font-size:12px;font-weight:400;letter-spacing:0.08em;color:var(--navy);padding:14px 28px;border-top:1px solid var(--gray-light);transition:color 0.3s}
.related-card:hover .related-card-link{color:var(--orange)}
.back-link-wrap{text-align:center;padding:48px var(--side-pad) 0}
.back-link{font-family:var(--font-en);font-size:13px;font-weight:400;letter-spacing:0.08em;color:var(--navy);text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:color 0.3s,gap 0.3s}
.back-link:hover{color:var(--orange);gap:12px}

/* ==========================================================================
   20. Blog Page
   ========================================================================== */
.news-section{padding:var(--section-pad) var(--side-pad);background:var(--white)}
.news-section .news-list{max-width:900px}
.news-section .news-item{border-bottom:1px solid var(--gray-light)}
.news-section .news-item:first-child{border-top:1px solid var(--gray-light)}
.news-link{display:flex;align-items:baseline;gap:24px;padding:28px 0;text-decoration:none;color:var(--navy);transition:opacity 0.3s}
.news-link:hover{opacity:0.7}
.news-badge{font-size:11px;font-weight:500;letter-spacing:0.06em;color:var(--orange);background:rgba(242,146,25,0.08);padding:3px 12px;flex-shrink:0}
.news-title{font-size:14px;font-weight:400;line-height:1.6}
.news-external{font-size:11px;color:var(--gray-mid);margin-left:4px}
.pagination{display:flex;gap:8px;margin-top:56px}
.page-num{font-family:var(--font-en);font-size:13px;font-weight:400;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gray-light);text-decoration:none;color:var(--navy);transition:all 0.3s}
.page-num:hover{border-color:var(--orange);color:var(--orange)}
.page-num.active,.page-numbers.current{background:var(--navy);color:var(--white);border-color:var(--navy)}

/* ==========================================================================
   21. Contact Page - Form
   ========================================================================== */
.contact-section{padding:var(--section-pad) var(--side-pad);background:var(--white)}
.contact-inner{max-width:720px;margin:0 auto}
.form-note{font-size:13px;font-weight:300;color:var(--navy-65);margin-bottom:48px;line-height:1.8}
.form-group{margin-bottom:36px}
.form-label{display:block;font-size:13px;font-weight:500;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.form-required{font-size:10px;font-weight:600;color:var(--white);background:var(--orange);padding:2px 8px;letter-spacing:0.06em}
.form-optional{font-size:10px;font-weight:600;color:var(--gray-mid);background:var(--gray-light);padding:2px 8px;letter-spacing:0.06em}
.form-input,.form-select,.form-textarea,
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="tel"],.wpcf7 select,.wpcf7 textarea{
  width:100%;font-family:var(--font-ja);font-size:14px;font-weight:300;
  color:var(--navy);background:var(--off-white);
  border:1px solid var(--gray-light);padding:14px 16px;
  transition:border-color 0.3s,box-shadow 0.3s;
  outline:none;appearance:none;-webkit-appearance:none;
}
.form-input:focus,.form-select:focus,.form-textarea:focus,
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus{
  border-color:var(--orange);box-shadow:0 0 0 3px rgba(242,146,25,0.08);
}
.form-input::placeholder,.form-textarea::placeholder,
.wpcf7 input::placeholder,.wpcf7 textarea::placeholder{color:var(--gray-mid);font-weight:300}
.form-select,.wpcf7 select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.form-textarea,.wpcf7 textarea{min-height:180px;resize:vertical;line-height:1.8}
.form-submit,.wpcf7 input[type="submit"]{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-ja);font-size:14px;font-weight:500;
  color:var(--white);background:var(--navy);
  padding:18px 48px;border:none;cursor:pointer;
  letter-spacing:0.06em;transition:background 0.4s,gap 0.3s;
}
.form-submit:hover,.wpcf7 input[type="submit"]:hover{background:var(--orange);gap:16px}
.privacy-note{margin-top:24px;font-size:12px;font-weight:300;color:var(--gray-mid);line-height:1.8}
.privacy-note a{color:var(--navy);text-decoration:underline;transition:color 0.3s}
.privacy-note a:hover{color:var(--orange)}

/* ==========================================================================
   22. Privacy Page
   ========================================================================== */
.privacy{padding:80px var(--side-pad) 120px;background:var(--white)}
.privacy-inner{max-width:800px}
.privacy h2{font-size:18px;font-weight:700;line-height:1.6;margin:56px 0 20px;padding-bottom:12px;border-bottom:1px solid var(--gray-light)}
.privacy h3{font-size:15px;font-weight:700;line-height:1.6;margin:32px 0 12px}
.privacy p{font-size:14px;font-weight:300;line-height:2.2;color:var(--navy-65);margin-bottom:16px}
.privacy ul{list-style:none;margin:12px 0 16px}
.privacy ul li{font-size:14px;font-weight:300;line-height:2;color:var(--navy-65);padding-left:16px;position:relative;margin-bottom:4px}
.privacy ul li::before{content:'';position:absolute;left:0;top:12px;width:6px;height:1px;background:var(--orange)}
.privacy table{width:100%;border-collapse:collapse;margin:16px 0 24px;font-size:13px}
.privacy table th,.privacy table td{padding:14px 16px;border:1px solid var(--gray-light);text-align:left;line-height:1.8}
.privacy table th{background:var(--off-white);font-weight:500;font-size:12px}
.privacy table td{font-weight:300;color:var(--navy-65)}
.privacy .sign{margin-top:32px;font-size:14px;font-weight:400;line-height:2}
.privacy .contact-block{margin-top:24px;padding:24px;background:var(--off-white);border-left:3px solid var(--orange);font-size:13px;font-weight:300;line-height:2;color:var(--navy-65)}

/* ==========================================================================
   23. Blog Single Page
   ========================================================================== */
.post-hero{padding:160px var(--side-pad) 60px}
.post-hero-content{position:relative;z-index:1;max-width:800px;opacity:0;transform:translateY(20px);animation:fadeUp 0.8s ease 0.3s forwards}
.post-meta{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.post-date{font-family:var(--font-en);font-size:13px;font-weight:400;letter-spacing:0.06em;color:var(--gray-mid)}
.post-cat-badge{font-size:11px;font-weight:500;letter-spacing:0.06em;color:var(--orange);background:rgba(242,146,25,0.08);padding:3px 12px}
.post-title{font-size:clamp(22px,3vw,32px);font-weight:900;line-height:1.6;letter-spacing:0.04em}

.article{padding:100px var(--side-pad);background:var(--white)}
.article-inner{max-width:800px}
.article-body h2{font-size:20px;font-weight:700;line-height:1.7;margin:48px 0 20px;padding-bottom:12px;border-bottom:1px solid var(--gray-light)}
.article-body h3{font-size:16px;font-weight:700;line-height:1.7;margin:36px 0 14px;padding-left:14px;border-left:3px solid var(--orange)}
.article-body p{font-size:14px;font-weight:300;line-height:2.4;color:var(--navy-65);margin-bottom:20px}
.article-body ul,.article-body ol{margin:16px 0 24px 0;padding-left:0;list-style:none}
.article-body ul li{font-size:14px;font-weight:300;line-height:2.2;color:var(--navy-65);padding-left:18px;position:relative;margin-bottom:4px}
.article-body ul li::before{content:'';position:absolute;left:0;top:13px;width:8px;height:1px;background:var(--orange)}
.article-body blockquote{margin:24px 0;padding:24px 28px;background:var(--off-white);border-left:3px solid var(--orange);font-size:14px;font-weight:300;line-height:2.2;color:var(--navy-65)}
.article-body img{width:100%;height:auto;margin:28px 0}
.article-body a{color:var(--orange);text-decoration:underline;transition:opacity 0.3s}
.article-body a:hover{opacity:0.7}

/* ==========================================================================
   24. Recruit Page
   ========================================================================== */
.message{padding:var(--section-pad) var(--side-pad);background:var(--white)}
.message-inner{max-width:800px}
.message-title{font-size:clamp(22px,2.8vw,32px);font-weight:700;line-height:1.7;margin-bottom:28px}
.message-body{font-size:14px;font-weight:300;line-height:2.4;color:var(--navy-65)}
.message-body p{margin-bottom:20px}

.values{padding:var(--section-pad) var(--side-pad);background:var(--off-white)}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px}
.value-card{background:var(--white);padding:40px 32px;border:1px solid var(--gray-light);transition:border-color 0.3s}
.value-card:hover{border-color:var(--orange)}
.value-num{font-family:var(--font-en);font-size:36px;font-weight:700;color:rgba(242,146,25,0.15);line-height:1;margin-bottom:16px}
.value-title{font-size:17px;font-weight:700;line-height:1.5;margin-bottom:12px}
.value-desc{font-size:13px;font-weight:300;line-height:2;color:var(--navy-65)}

.positions{padding:var(--section-pad) var(--side-pad);background:var(--white)}
.positions-header{margin-bottom:56px}
.positions-list{display:flex;flex-direction:column;gap:0}
.pos-card{border-bottom:1px solid var(--gray-light);padding:48px 0;display:grid;grid-template-columns:280px 1fr auto;gap:40px;align-items:start}
.pos-card:first-child{border-top:1px solid var(--gray-light)}
.pos-type{font-size:11px;font-weight:500;letter-spacing:0.08em;color:var(--orange);margin-bottom:8px}
.pos-title{font-size:20px;font-weight:700;line-height:1.5;margin-bottom:8px}
.pos-subtitle{font-size:12px;font-weight:400;color:var(--gray-mid)}
.pos-mission{font-size:13px;font-weight:300;line-height:2;color:var(--navy-65);margin-bottom:20px}
.pos-tags{display:flex;flex-wrap:wrap;gap:8px}
.pos-tag{font-size:11px;font-weight:400;color:var(--navy-65);background:var(--off-white);padding:4px 12px;border:1px solid var(--gray-light)}
.pos-action{padding-top:4px}
.pos-link{font-family:var(--font-en);font-size:13px;font-weight:400;letter-spacing:0.08em;color:var(--navy);text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:color 0.3s,gap 0.3s;white-space:nowrap}
.pos-link:hover{color:var(--orange);gap:12px}

.pos-detail{display:none;padding:40px var(--side-pad);background:var(--off-white);border-bottom:1px solid var(--gray-light)}
.pos-detail.open{display:block}
.pos-detail-inner{max-width:800px}
.pos-detail-section{margin-bottom:32px}
.pos-detail-label{font-size:13px;font-weight:500;margin-bottom:12px;display:flex;align-items:center;gap:10px}
.pos-detail-label::before{content:'';width:6px;height:6px;background:var(--orange);flex-shrink:0}
.pos-detail-body{font-size:13px;font-weight:300;line-height:2;color:var(--navy-65)}
.pos-detail-list{list-style:none}
.pos-detail-list li{font-size:13px;font-weight:300;line-height:2;color:var(--navy-65);padding-left:16px;position:relative}
.pos-detail-list li::before{content:'';position:absolute;left:0;top:12px;width:6px;height:1px;background:var(--orange)}
.pos-detail-table{margin-top:24px}
.pos-detail-row{display:grid;grid-template-columns:140px 1fr;border-bottom:1px solid var(--gray-light)}
.pos-detail-row:first-child{border-top:1px solid var(--gray-light)}
.pos-detail-th{padding:14px 16px;font-size:12px;font-weight:500;background:var(--white)}
.pos-detail-td{padding:14px 16px;font-size:13px;font-weight:300;line-height:1.8;color:var(--navy-65)}
.pos-apply-btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-ja);font-size:14px;font-weight:500;color:var(--white);background:var(--navy);padding:16px 40px;text-decoration:none;letter-spacing:0.06em;transition:background 0.4s,gap 0.3s;margin-top:24px}
.pos-apply-btn:hover{background:var(--orange);gap:16px}

/* ==========================================================================
   24. 404 Page
   ========================================================================== */
.error-404{padding:200px var(--side-pad) 120px;text-align:center;background:var(--off-white)}
.error-404-num{font-family:var(--font-en);font-size:clamp(80px,12vw,140px);font-weight:700;color:var(--gray-light);line-height:1;margin-bottom:24px}
.error-404-title{font-size:clamp(18px,2.4vw,26px);font-weight:700;margin-bottom:16px}
.error-404-text{font-size:14px;font-weight:300;color:var(--navy-65);margin-bottom:40px}
.error-404-btn{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--navy);background:var(--white);border:1px solid var(--navy);padding:16px 40px;text-decoration:none;transition:background 0.3s,color 0.3s}
.error-404-btn:hover{background:var(--navy);color:var(--white)}

/* ==========================================================================
   24. Keyframes
   ========================================================================== */
@keyframes geoIn{to{opacity:1}}
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes accentLineIn{to{height:100%}}
@keyframes scrollMove{0%{top:-100%}50%{top:100%}50.01%{top:-100%}100%{top:100%}}

/* ==========================================================================
   25. Responsive
   ========================================================================== */
@media(max-width:1080px){
  :root{--side-pad:28px;--section-pad:80px}
  .nav-links{display:none}.nav-hamburger{display:flex}
  /* Top hero */
  .hero-geo .geo-tri-1,.hero-geo .geo-block-1{display:none}
  .hero-content{grid-template-columns:1fr;padding-top:160px;gap:40px;padding-bottom:40px}
  .scroll-ind{display:none}
  /* Page hero */
  .page-hero-content{grid-template-columns:1fr;gap:40px}
  .page-hero-geo{opacity:0.6}
  /* Sections */
  .services-main{grid-template-columns:1fr}
  .sub-services{grid-template-columns:1fr}
  .cases-grid{grid-template-columns:1fr}
  .company-inner{grid-template-columns:1fr;gap:40px}
  .company-photo{max-width:360px;aspect-ratio:4/5}
  .news-item{flex-wrap:wrap;gap:8px 16px}
  .news-link{flex-wrap:wrap;gap:8px 16px}
  /* Service pages */
  .target-grid{grid-template-columns:1fr 1fr}
  .compare-table{display:none}
  .compare-mobile{display:block}
  .features-grid{grid-template-columns:1fr}
  .flow-steps--2,.flow-steps--3{grid-template-columns:1fr;max-width:100%}
  .flow-arrow{height:40px;width:100%}
  .flow-arrow-dot{transform:rotate(90deg)}
  .flow-step-1{border-radius:4px 4px 0 0}
  .flow-step-2,.flow-step-last{border-radius:0 0 4px 4px}
  /* Company page */
  .mv-grid{grid-template-columns:1fr}
  .rep-inner{grid-template-columns:1fr;gap:40px}
  .rep-photo{max-width:360px}
  .info-row{grid-template-columns:140px 1fr}
  .access-inner{grid-template-columns:1fr;gap:32px}
  /* Case detail */
  .related-grid{grid-template-columns:1fr}
  .result-banner{flex-direction:column;gap:12px;align-items:flex-start}
  .detail-hero-geo{opacity:0.5}
  /* Recruit page */
  .values-grid{grid-template-columns:1fr}
  .pos-card{grid-template-columns:1fr;gap:16px}
  .pos-action{padding-top:0}
  .pos-detail-row{grid-template-columns:120px 1fr}
  /* Footer */
  .footer{flex-direction:column;align-items:flex-start;gap:24px}
}

@media(max-width:768px){
  .shape-divider{height:80px}
  .section-title{font-size:22px}
  .section-lead{font-size:13px}
}

@media(max-width:640px){
  .target-grid{grid-template-columns:1fr}
}

@media(max-width:480px){
  :root{--side-pad:20px;--section-pad:64px}
  .shape-divider{height:60px}
  .hero-h1,.page-hero-title{font-size:26px;white-space:normal}
  .hero-geo{opacity:0.6}
  .page-hero,.page-hero--simple{padding:140px var(--side-pad) 60px}
  .detail-hero,.post-hero{padding:140px var(--side-pad) 48px}
  .detail-title{font-size:22px}
  .post-title{font-size:22px}
  .article-body h2{font-size:18px}
  .svc-card,.case-card,.feature-card,.target-card,.flow-step,.value-card{padding:28px 20px}
  .pos-detail-row{grid-template-columns:1fr}
  .pos-detail-th{padding:10px 16px 2px;font-size:11px}
  .pos-detail-td{padding:2px 16px 10px}
  .pos-apply-btn{padding:16px 32px;font-size:13px}
  .mv-card{padding:32px 24px}
  .info-row{grid-template-columns:1fr}
  .info-label{padding:14px 20px 4px;font-size:12px}
  .info-value{padding:4px 20px 14px}
  .outcome-highlight{padding:28px 24px}
  .cta-title{font-size:18px}
  .cta-btn{padding:16px 32px;font-size:13px}
  .form-submit,.wpcf7 input[type="submit"]{width:100%;justify-content:center}
  .news-link{flex-direction:column;gap:8px}
  .privacy table{font-size:12px}
  .privacy table th,.privacy table td{padding:10px 12px}
  .footer{padding:40px var(--side-pad) 32px}
}
