/* =============================================================
   GROW VAS — common stylesheet (Variant D / TENTIAL-ish)
   このCSSは全ページ共通。WordPress化時は theme/assets/css/style.css に配置。
   ============================================================= */

:root{
  /* GROW VAS corporate palette */
  --navy-deep:    #19466D;
  --navy:         #2D70A7;
  --blue-bright:  #40A3FF;
  --navy-soft:    #3C5F8A;
  /* Neutrals */
  --bg:           #EEF1F6;
  --bg-white:     #FFFFFF;
  --bg-soft:      #F5F7FA;
  --ink:          #111111;
  --ink-soft:     #3C3E41;
  --ink-mute:     #7A7E85;
  --ink-subtle:   #A8ACB3;
  --line:         #E2E6EF;
  --line-strong:  #D0D6E1;
  /* Layout */
  --base-width:   1600px;
  --pad-x:        40px;
  --pad-x-sm:     20px;
  /* Type */
  --font-en:      "Barlow","Inter",-apple-system,BlinkMacSystemFont,sans-serif;
  --font-jp:      "Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  --font-jp-body: "Noto Sans JP","Zen Kaku Gothic New",sans-serif;
}

/* Reset */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{
  font-family:var(--font-jp-body);
  background:var(--bg);color:var(--ink);
  font-size:14px;line-height:1.85;
  font-feature-settings:"palt";letter-spacing:0.04em;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;background:none;border:0;cursor:pointer;color:inherit}

/* Utility */
.wrap{max-width:var(--base-width);margin:0 auto;padding:0 var(--pad-x)}
.en{font-family:var(--font-en);font-weight:500;letter-spacing:0.02em}

/* =============================================================
   NAV (pill, centered, fixed)
   ============================================================= */
.nav{
  position:fixed;top:16px;left:50%;transform:translateX(-50%);
  width:calc(100% - 40px);max-width:1360px;
  display:flex;align-items:center;justify-content:space-between;
  height:56px;padding:0 12px 0 24px;
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-radius:999px;
  box-shadow:0 2px 24px rgba(25,70,109,0.08);
  z-index:100;transition:all 0.4s ease;
  color:var(--ink-soft);
}
.nav.at-top{background:transparent;box-shadow:none;color:#fff}
.nav.at-top .nav-link{color:#fff}
.nav.at-top .nav-logo{opacity:0;pointer-events:none}
.nav.at-top .hamburger{border-color:rgba(255,255,255,0.5);color:#fff}
.nav-logo{
  font-family:var(--font-en);font-weight:600;
  font-size:16px;letter-spacing:0.06em;
  color:var(--navy-deep);transition:all 0.3s;
}
.nav-logo a{color:inherit}
.nav-menu{display:flex;gap:28px;font-family:var(--font-en);font-size:13px;font-weight:500;letter-spacing:0.06em}
.nav-link{color:var(--ink-soft);padding:4px 0;position:relative;transition:color 0.3s}
.nav-link:hover{color:var(--navy)}
.nav-link.dot::after{content:"•";display:inline-block;margin-left:6px;font-size:10px;transform:translateY(-2px);color:var(--navy)}
.nav-actions{display:flex;align-items:center;gap:12px}
.nav-cta{
  display:inline-flex;align-items:center;padding:10px 22px;
  background:var(--navy-deep);color:#fff !important;border-radius:999px;
  font-family:var(--font-en);font-size:13px;font-weight:500;letter-spacing:0.08em;
  transition:background 0.3s;
}
.nav-cta:hover{background:var(--navy)}
.hamburger{
  width:40px;height:40px;border-radius:50%;
  border:1px solid var(--line-strong);
  display:inline-flex;align-items:center;justify-content:center;
  transition:all 0.3s;color:var(--ink-soft);position:relative;
}
.hamburger:hover{background:var(--ink);color:#fff !important;border-color:var(--ink)}
.ham-bars{display:inline-block;position:relative;width:16px;height:10px}
.ham-bars span{
  display:block;position:absolute;left:0;right:0;height:1.3px;background:currentColor;
  transition:transform 0.35s cubic-bezier(.4,0,.2,1),top 0.25s ease 0.1s,opacity 0.2s;
}
.ham-bars span:nth-child(1){top:2px}
.ham-bars span:nth-child(2){top:7px}
.hamburger.is-open{background:#fff;color:var(--navy-deep) !important;border-color:#fff;z-index:1001}
.hamburger.is-open .ham-bars span{top:5px;transition:top 0.25s ease,transform 0.35s cubic-bezier(.4,0,.2,1) 0.15s}
.hamburger.is-open .ham-bars span:nth-child(1){transform:rotate(45deg)}
.hamburger.is-open .ham-bars span:nth-child(2){transform:rotate(-45deg)}

/* =============================================================
   OVERLAY MENU (full screen)
   ============================================================= */
.overlay-menu{position:fixed;inset:0;z-index:200;pointer-events:none;visibility:hidden}
.overlay-menu.is-open{pointer-events:auto;visibility:visible}
.overlay-bg{
  position:absolute;inset:0;background:var(--navy-deep);
  opacity:0;transition:opacity 0.5s cubic-bezier(.4,0,.2,1);
}
.overlay-menu.is-open .overlay-bg{opacity:0.985}
.overlay-inner{
  position:relative;height:100%;
  max-width:var(--base-width);margin:0 auto;
  padding:120px var(--pad-x) 48px;
  display:flex;flex-direction:column;justify-content:space-between;
  color:#fff;
  opacity:0;transform:translateY(16px);
  transition:opacity 0.5s 0.15s ease,transform 0.5s 0.15s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;
}
.overlay-menu.is-open .overlay-inner{opacity:1;transform:translateY(0)}
.overlay-grid{
  display:grid;grid-template-columns:1fr 360px;gap:80px;
  flex:1;align-items:flex-start;
}
.overlay-nav{display:flex;flex-direction:column;gap:24px}
.ovl-link{
  display:flex;align-items:baseline;gap:24px;
  padding:18px 0;border-bottom:1px solid rgba(255,255,255,0.1);
  transition:padding-left 0.3s,border-color 0.3s;
}
.ovl-link:hover{padding-left:12px;border-color:var(--blue-bright)}
.ovl-en{font-family:var(--font-en);font-size:clamp(36px,4.5vw,56px);font-weight:500;letter-spacing:-0.01em;line-height:1}
.ovl-jp{font-size:13px;color:rgba(255,255,255,0.6);letter-spacing:0.12em}
.ovl-sub{
  margin:-8px 0 12px 24px;padding:8px 0 16px 24px;
  border-left:1px solid rgba(255,255,255,0.15);
  display:flex;flex-direction:column;gap:6px;
}
.ovl-sub a{
  font-family:var(--font-en);font-size:15px;font-weight:500;
  color:rgba(255,255,255,0.75);padding:6px 0;letter-spacing:0.04em;
  display:flex;align-items:baseline;gap:12px;transition:color 0.2s;
}
.ovl-sub a:hover{color:var(--blue-bright)}
.ovl-sub small{font-size:11px;color:rgba(255,255,255,0.45);letter-spacing:0.1em;font-weight:400}
.overlay-side{display:flex;flex-direction:column;gap:40px;padding-top:24px}
.ovl-side-block{display:flex;flex-direction:column;gap:8px}
.ovl-side-label{
  font-family:var(--font-en);font-size:11px;letter-spacing:0.18em;
  text-transform:uppercase;color:rgba(255,255,255,0.5);margin-bottom:4px;
}
.ovl-contact-cta{
  display:inline-flex;align-items:center;justify-content:space-between;
  padding:18px 24px;border:1px solid rgba(255,255,255,0.4);border-radius:999px;
  font-family:var(--font-jp);font-size:14px;
  transition:all 0.3s;width:100%;max-width:280px;
}
.ovl-contact-cta:hover{background:#fff;color:var(--navy-deep);border-color:#fff}
.ovl-side-link{
  font-family:var(--font-en);font-size:14px;letter-spacing:0.04em;
  color:rgba(255,255,255,0.8);padding:6px 0;transition:color 0.2s;
}
.ovl-side-link:hover{color:var(--blue-bright)}
.ovl-side-text{font-size:13px;line-height:1.9;color:rgba(255,255,255,0.7);letter-spacing:0.04em}
.overlay-bottom{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:32px;margin-top:32px;
  border-top:1px solid rgba(255,255,255,0.1);
  font-family:var(--font-en);font-size:12px;color:rgba(255,255,255,0.5);letter-spacing:0.08em;
}
.ovl-legal a{color:inherit;margin-left:24px;transition:color 0.2s}
.ovl-legal a:hover{color:#fff}
body.menu-open{overflow:hidden}

/* =============================================================
   FLAG LOGO (top-left)
   ============================================================= */
.flag{
  position:absolute;top:0;left:40px;z-index:110;
  width:200px;height:128px;
  background:var(--navy-deep);
  display:flex;align-items:flex-start;justify-content:center;padding-top:32px;
  clip-path:polygon(0 0,100% 0,100% 100%,50% 76%,0 100%);
}
.flag-mark{
  color:#fff;font-family:var(--font-en);font-weight:700;
  font-size:22px;letter-spacing:0.12em;line-height:1.1;text-align:center;
}

/* =============================================================
   HERO (general — used by index)
   ============================================================= */
.hero{
  position:relative;width:100%;height:100vh;min-height:680px;max-height:900px;
  overflow:hidden;color:#fff;
}
.hero-bg{position:absolute;inset:0;z-index:1}
.hero-bg .swiper-slide{position:relative}
.hero-bg .swiper-slide::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(25,70,109,0.6) 0%,rgba(45,112,167,0.4) 50%,rgba(64,163,255,0.3) 100%);
  z-index:2;
}
.hero-bg .slide-img{width:100%;height:100%;object-fit:cover;display:block}
.hero-content{
  position:absolute;inset:0;z-index:4;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 var(--pad-x) 120px;pointer-events:none;
}
.hero-content .swiper{width:100%;max-width:var(--base-width);margin:0 auto;pointer-events:auto}
.slide-grid{display:grid;grid-template-columns:1fr auto auto;gap:60px;align-items:end;width:100%}
.hero-copy-jp{font-family:var(--font-jp);font-size:16px;font-weight:500;letter-spacing:0.1em;margin-bottom:8px;color:rgba(255,255,255,0.95)}
.hero-title{font-family:var(--font-en);font-weight:600;font-size:clamp(56px,8.5vw,144px);line-height:0.95;letter-spacing:-0.02em;color:#fff}
.hero-meta{display:flex;flex-direction:column;color:rgba(255,255,255,0.92);font-size:13px;line-height:1.7;max-width:280px;padding-bottom:24px}
.hero-meta-en{font-family:var(--font-en);font-size:13px;letter-spacing:0.04em}
.hero-arrow{
  width:64px;height:64px;border:1px solid rgba(255,255,255,0.6);border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  color:#fff;transition:all 0.3s;flex:0 0 auto;margin-bottom:8px;
}
.hero-arrow:hover{background:#fff;color:var(--navy-deep);border-color:#fff}
.hero-rail{position:absolute;left:0;right:0;bottom:32px;z-index:6;padding:0 var(--pad-x);max-width:var(--base-width);margin:0 auto}
.hero-pag-bar{position:relative;height:1px;background:rgba(255,255,255,0.25);width:100%;margin-bottom:18px;overflow:hidden}
.hero-pag-bar .progress{position:absolute;left:0;top:0;height:100%;width:0;background:#fff;transition:width 4s linear}
.hero-pag-bar.run-1 .progress{width:33.333%}
.hero-pag-bar.run-2 .progress{width:66.666%}
.hero-pag-bar.run-3 .progress{width:100%}
.hero-tags{display:flex;justify-content:space-between;gap:40px;font-family:var(--font-en);font-size:13px;font-weight:500;letter-spacing:0.06em;color:rgba(255,255,255,0.7)}
.hero-tags button{flex:1;text-align:left;padding:6px 0;cursor:pointer;color:rgba(255,255,255,0.6);transition:color 0.3s;font-family:inherit;font-size:inherit;letter-spacing:inherit}
.hero-tags button.active{color:#fff;font-weight:600}
.hero-tags button:hover{color:#fff}

/* =============================================================
   PAGE HEADER (used by inner pages — short hero band)
   ============================================================= */
.page-header{
  position:relative;width:100%;
  background:var(--navy-deep);color:#fff;overflow:hidden;
  padding:160px 0 80px;
}
.page-header::before{
  content:"";position:absolute;top:-30%;right:-10%;width:55%;height:160%;
  background:radial-gradient(ellipse,rgba(64,163,255,0.18) 0%,transparent 60%);
  pointer-events:none;
}
.page-header-inner{position:relative;z-index:2;max-width:var(--base-width);margin:0 auto;padding:0 var(--pad-x)}
.page-header-eyebrow{font-family:var(--font-en);font-size:12px;letter-spacing:0.18em;text-transform:uppercase;opacity:0.75;margin-bottom:16px}
.page-header h1{font-family:var(--font-en);font-weight:500;font-size:clamp(48px,6.5vw,96px);line-height:1.05;letter-spacing:-0.02em;margin-bottom:16px}
.page-header-jp{font-family:var(--font-jp);font-size:16px;letter-spacing:0.1em;color:rgba(255,255,255,0.85)}
.breadcrumb{display:flex;gap:10px;font-family:var(--font-en);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.6);margin-top:32px}
.breadcrumb a{color:inherit;transition:color 0.2s}
.breadcrumb a:hover{color:#fff}
.breadcrumb span:not(.sep){color:#fff}
.breadcrumb .sep{opacity:0.4}

/* =============================================================
   NEWS TEASER BAR
   ============================================================= */
.news-bar{background:var(--bg);padding:32px 0}
.news-bar-inner{display:grid;grid-template-columns:120px 1fr auto;gap:32px;align-items:center;max-width:var(--base-width);margin:0 auto;padding:0 var(--pad-x)}
.news-thumb{width:120px;aspect-ratio:4/3;background:var(--ink) center/cover;background-image:url('https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=400');border-radius:4px}
.news-body{display:flex;flex-direction:column;gap:4px}
.news-date{font-family:var(--font-en);font-size:12px;color:var(--ink-mute);letter-spacing:0.04em}
.news-headline{font-size:15px;color:var(--ink);line-height:1.6}
.news-pager{font-family:var(--font-en);font-size:13px;color:var(--ink-mute);display:flex;align-items:center;gap:12px;white-space:nowrap}
.news-pager .arrow{width:32px;height:32px;border:1px solid var(--line-strong);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;transition:all 0.2s}
.news-pager .arrow:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.news-pager b{color:var(--ink);font-weight:500}

/* =============================================================
   SECTION BASE
   ============================================================= */
section{padding:140px 0 120px;position:relative}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:40px;margin-bottom:72px}
.section-title-group{display:flex;align-items:baseline;gap:24px;flex-wrap:wrap}
.section-title-en{font-family:var(--font-en);font-weight:500;font-size:clamp(40px,5vw,72px);line-height:1;letter-spacing:-0.01em;color:var(--ink)}
.section-title-jp{font-size:14px;color:var(--ink-mute);letter-spacing:0.15em;font-weight:400}
.section-link{
  font-family:var(--font-en);font-size:13px;letter-spacing:0.08em;
  display:inline-flex;align-items:center;gap:12px;padding-bottom:4px;
  border-bottom:1px solid var(--ink);color:var(--ink);transition:all 0.3s;
}
.section-link:hover{color:var(--navy);border-color:var(--navy)}

/* =============================================================
   PHILOSOPHY split
   ============================================================= */
.philosophy{background:var(--bg)}
.philo-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.philo-text h3{font-family:var(--font-jp);font-weight:500;font-size:28px;line-height:1.6;letter-spacing:0.06em;color:var(--ink);margin-bottom:32px}
.philo-text h3 strong{color:var(--navy-deep);font-weight:700}
.philo-text p{font-size:15px;color:var(--ink-soft);line-height:2;letter-spacing:0.04em;margin-bottom:16px}
.philo-text .section-link{margin-top:40px}
.philo-image{aspect-ratio:4/5;background:var(--ink) center/cover;border-radius:2px;box-shadow:0 20px 60px rgba(25,70,109,0.15)}

/* =============================================================
   BRANDS grid (cards)
   ============================================================= */
.brands{background:var(--bg-white)}
.brand-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}
.brand-card{
  position:relative;
  background-color:var(--navy-deep);
  background-size:cover;background-position:center;background-repeat:no-repeat;
  color:#fff;
  aspect-ratio:3/2;overflow:hidden;display:flex;align-items:flex-end;
  padding:48px;transition:transform 0.6s ease;
}
.brand-card:hover{transform:translateY(-4px)}
.brand-card-body{position:relative;z-index:2}
.brand-card-label{font-family:var(--font-en);font-size:12px;letter-spacing:0.18em;opacity:0.85;margin-bottom:12px}
.brand-card h3{font-family:var(--font-en);font-size:40px;font-weight:500;letter-spacing:-0.01em;margin-bottom:8px}
.brand-card p{font-size:14px;opacity:0.85;line-height:1.7}
.brand-card-arrow{position:absolute;bottom:48px;right:48px;width:56px;height:56px;border:1px solid rgba(255,255,255,0.6);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;z-index:2;transition:all 0.3s}
.brand-card:hover .brand-card-arrow{background:#fff;color:var(--navy-deep);border-color:#fff}

/* =============================================================
   STRENGTHS (3-col with marquee)
   ============================================================= */
.strengths{background:var(--bg);overflow:hidden;padding:120px 0 100px}
.marquee{font-family:var(--font-en);font-weight:500;font-size:clamp(80px,11vw,180px);color:var(--ink);opacity:0.08;line-height:1;white-space:nowrap;letter-spacing:-0.02em;animation:marquee 40s linear infinite}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.strength-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:60px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strength-item{background:var(--bg);padding:48px 32px}
.strength-item:not(:last-child){border-right:1px solid var(--line)}
.strength-num{font-family:var(--font-en);font-size:13px;color:var(--navy);letter-spacing:0.12em;margin-bottom:20px;font-weight:500}
.strength-item h3{font-family:var(--font-jp);font-size:22px;font-weight:500;letter-spacing:0.06em;line-height:1.6;margin-bottom:16px;color:var(--ink)}
.strength-item p{font-size:14px;color:var(--ink-soft);line-height:1.9}
.strength-item .link{display:inline-flex;align-items:center;gap:8px;margin-top:24px;font-family:var(--font-en);font-size:13px;letter-spacing:0.06em;color:var(--navy);border-bottom:1px solid currentColor;padding-bottom:2px}

/* =============================================================
   NEWS LIST (table-like rows)
   ============================================================= */
.news-section{background:var(--bg-white)}
.news-list{border-top:1px solid var(--line)}
.news-row{display:grid;grid-template-columns:140px 140px 1fr auto;gap:32px;align-items:center;padding:28px 8px;border-bottom:1px solid var(--line);transition:background 0.3s}
.news-row:hover{background:var(--bg-soft)}
.news-row .date{font-family:var(--font-en);font-size:13px;color:var(--ink-mute);letter-spacing:0.04em}
.news-row .tag{font-family:var(--font-en);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy-deep);border:1px solid var(--navy-deep);padding:4px 12px;text-align:center;width:fit-content;font-weight:500}
.news-row .tag.release{color:var(--navy);border-color:var(--navy)}
.news-row .tag.media{color:var(--blue-bright);border-color:var(--blue-bright)}
.news-row .title{font-size:15px;line-height:1.6;letter-spacing:0.04em}
.news-row .arrow{font-family:var(--font-en);font-size:16px;color:var(--ink-mute);transition:all 0.3s}
.news-row:hover .arrow{color:var(--navy);transform:translateX(4px)}

/* =============================================================
   SPLIT CARDS (Company / Recruit)
   ============================================================= */
.split-section{background:var(--bg);padding:120px 0}
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.split-card{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--navy-deep) center/cover;display:flex;flex-direction:column;justify-content:flex-end;padding:56px 56px 130px;color:#fff;transition:transform 0.6s ease}
.split-card::before{content:"";position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 0.8s ease}
.split-card:hover::before{transform:scale(1.04)}
.split-card-label{position:relative;z-index:2;font-family:var(--font-en);font-size:12px;letter-spacing:0.2em;opacity:0.9;margin-bottom:12px}
.split-card h3{position:relative;z-index:2;font-family:var(--font-en);font-size:56px;font-weight:500;letter-spacing:-0.01em;margin-bottom:16px;line-height:1}
.split-card p{position:relative;z-index:2;font-size:14px;opacity:0.9;line-height:1.8;max-width:75%}
.split-card .arrow-pill{position:absolute;bottom:56px;right:56px;z-index:2;display:inline-flex;align-items:center;gap:10px;padding:12px 24px;border:1px solid rgba(255,255,255,0.6);border-radius:999px;font-family:var(--font-en);font-size:12px;letter-spacing:0.1em;transition:all 0.3s}
.split-card:hover .arrow-pill{background:#fff;color:var(--navy-deep);border-color:#fff}

/* =============================================================
   CONTACT BAND (compact)
   ============================================================= */
.contact-band{background:var(--navy-deep);color:#fff;padding:64px 0;position:relative;overflow:hidden}
.contact-band::before{content:"";position:absolute;top:-30%;right:-10%;width:55%;height:160%;background:radial-gradient(ellipse,rgba(64,163,255,0.22) 0%,transparent 60%);pointer-events:none}
.contact-inner{position:relative;z-index:2;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:32px;max-width:var(--base-width);margin:0 auto;padding:0 var(--pad-x)}
.contact-eyebrow{font-family:var(--font-en);font-size:13px;letter-spacing:0.2em;opacity:0.8;white-space:nowrap}
.contact-title{font-family:var(--font-en);font-size:clamp(32px,4vw,52px);font-weight:500;letter-spacing:-0.01em;line-height:1.1}
.contact-title small{display:block;font-size:13px;font-family:var(--font-jp);font-weight:400;letter-spacing:0.12em;margin-top:8px;opacity:0.85}
.contact-cta{display:inline-flex;align-items:center;gap:12px;padding:16px 32px;background:#fff;color:var(--navy-deep);border-radius:999px;font-family:var(--font-en);font-size:14px;font-weight:600;letter-spacing:0.1em;transition:all 0.3s;white-space:nowrap}
.contact-cta:hover{background:var(--blue-bright);color:#fff}

/* =============================================================
   FOOTER
   ============================================================= */
footer{background:var(--ink);color:rgba(255,255,255,0.8);padding:56px 0 24px}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px;padding:0 var(--pad-x);max-width:var(--base-width);margin-left:auto;margin-right:auto}
.footer-logo{font-family:var(--font-en);font-size:24px;font-weight:700;letter-spacing:0.08em;margin-bottom:6px;color:#fff}
.footer-company-name{font-family:var(--font-jp);font-size:12px;color:rgba(255,255,255,0.7);letter-spacing:0.04em;margin-bottom:16px}
.footer-desc{font-size:13px;line-height:1.9;color:rgba(255,255,255,0.6);letter-spacing:0.04em;max-width:320px}
.footer-col h4{font-family:var(--font-en);font-size:12px;font-weight:600;letter-spacing:0.15em;color:#fff;margin-bottom:14px}
.footer-col a{display:block;font-size:13px;color:rgba(255,255,255,0.6);padding:5px 0;transition:color 0.3s}
.footer-col a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1);padding-top:20px;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-en);font-size:12px;color:rgba(255,255,255,0.4);letter-spacing:0.08em;max-width:var(--base-width);margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x)}
.footer-bottom-links a{color:inherit;margin-left:24px;transition:color 0.3s}
.footer-bottom-links a:hover{color:#fff}

/* =============================================================
   GENERIC BLOCKS (re-used across pages)
   ============================================================= */
.section-prose{max-width:880px;margin:0 auto;padding:0 var(--pad-x)}
.section-prose p{font-size:16px;line-height:2;color:var(--ink-soft);margin-bottom:24px}
.section-prose h2{font-family:var(--font-en);font-size:36px;font-weight:500;margin:48px 0 16px;letter-spacing:-0.01em}
.section-prose h3{font-family:var(--font-jp);font-size:22px;font-weight:600;margin:40px 0 16px;color:var(--ink)}

/* Definition table (会社概要 etc) — Grid based, 横線が綺麗に揃う */
.def-table{
  width:100%;
  display:grid;
  grid-template-columns:200px 1fr;
  border-top:1px solid var(--line);
}
.def-table dt,.def-table dd{
  padding:24px 12px;
  border-bottom:1px solid var(--line);
  margin:0;
}
.def-table dt{
  font-weight:600;color:var(--navy-deep);font-size:13px;
  letter-spacing:0.08em;font-family:var(--font-en);
  align-self:start;
}
.def-table dd{
  font-size:15px;line-height:1.9;color:var(--ink-soft);
}

/* Timeline (沿革) */
.timeline{margin-top:32px}
.timeline-row{display:grid;grid-template-columns:120px 1fr;gap:32px;padding:24px 0;border-bottom:1px solid var(--line)}
.timeline-year{font-family:var(--font-en);font-weight:600;color:var(--navy-deep);font-size:18px}
.timeline-text{font-size:15px;line-height:1.9;color:var(--ink-soft)}

/* =============================================================
   WPForms Lite 用カスタムスタイル
   WordPress化後、[wpforms id="N"] ショートコードで埋め込まれる
   フォームに、コーポレートデザインを適用する。
   ============================================================= */
.wpforms-container,
.wpforms-container.wpforms-container-full{
  max-width:none !important;margin:0 !important;
}
.wpforms-form{
  background:var(--bg-white);
  border:1px solid var(--line);border-radius:8px;
  padding:48px;
}
.wpforms-form .wpforms-field{
  padding:0 0 24px !important;
  margin:0 !important;
}
.wpforms-form .wpforms-field-label,
.wpforms-form .wpforms-field-sublabel{
  display:block !important;
  font-size:13px !important;font-weight:600 !important;
  color:var(--ink) !important;margin-bottom:8px !important;
  letter-spacing:0.04em !important;
  font-family:inherit !important;
}
.wpforms-form .wpforms-required-label{
  color:#e11d48 !important;font-size:11px !important;
  margin-left:4px !important;font-weight:500 !important;
}
.wpforms-form .wpforms-field-label-inline{
  display:inline !important;
}
.wpforms-form input[type=text],
.wpforms-form input[type=email],
.wpforms-form input[type=tel],
.wpforms-form input[type=url],
.wpforms-form input[type=number],
.wpforms-form select,
.wpforms-form textarea{
  width:100% !important;
  padding:14px 16px !important;
  border:1px solid var(--line-strong) !important;
  border-radius:6px !important;
  font-family:inherit !important;font-size:14px !important;
  color:var(--ink) !important;background:var(--bg-white) !important;
  line-height:1.5 !important;
  transition:border-color 0.2s,box-shadow 0.2s !important;
  -webkit-appearance:none;appearance:none;
  height:auto !important;
}
.wpforms-form input:focus,
.wpforms-form select:focus,
.wpforms-form textarea:focus{
  outline:none !important;
  border-color:var(--navy) !important;
  box-shadow:0 0 0 3px rgba(45,112,167,0.1) !important;
}
.wpforms-form textarea{
  min-height:160px !important;resize:vertical !important;
  line-height:1.7 !important;
}
.wpforms-form .wpforms-field-description{
  font-size:12px !important;color:var(--ink-mute) !important;
  margin-top:4px !important;
}
/* fieldset / legend のリセット (WPForms Name field 等) */
.wpforms-form fieldset{border:0 !important;padding:0 !important;margin:0 !important;min-width:0}
.wpforms-form legend.wpforms-field-label{
  display:block !important;width:100% !important;float:none !important;
  padding:0 !important;
}
/* 2-column rows in WPForms */
.wpforms-form .wpforms-field-row{
  display:grid !important;grid-template-columns:1fr 1fr !important;
  gap:16px 24px !important;
  margin:0 !important;
}
/* WPFormsデフォルトの float/width 指定を完全に上書き */
.wpforms-form .wpforms-field-row-block,
.wpforms-form .wpforms-one-half,
.wpforms-form .wpforms-first,
.wpforms-form .wpforms-field-row > div{
  width:100% !important;max-width:none !important;min-width:0 !important;
  float:none !important;clear:none !important;
  padding:0 !important;margin:0 !important;
  display:block !important;
  position:static !important;
}
.wpforms-form .wpforms-field-sublabel{
  display:block !important;font-size:11px !important;color:var(--ink-mute) !important;
  margin-top:6px !important;font-weight:400 !important;letter-spacing:0.04em !important;
}
.wpforms-form .wpforms-field-sublabel.after{margin-top:6px !important}
.wpforms-form .wpforms-field-sublabel.before{margin-bottom:6px !important;margin-top:0 !important}
/* Radio / checkbox */
.wpforms-form .wpforms-field-radio ul,
.wpforms-form .wpforms-field-checkbox ul,
.wpforms-form ul.wpforms-image-choices,
.wpforms-form ul{
  list-style:none !important;margin:0 !important;padding:0 !important;
}
.wpforms-form .wpforms-field-radio li,
.wpforms-form .wpforms-field-checkbox li{
  margin-bottom:8px !important;
}
.wpforms-form .wpforms-field-radio label,
.wpforms-form .wpforms-field-checkbox label{
  font-size:14px !important;color:var(--ink-soft) !important;
  cursor:pointer;letter-spacing:0.04em !important;
  font-weight:400 !important;
}
.wpforms-form input[type=radio],
.wpforms-form input[type=checkbox]{
  margin-right:8px !important;accent-color:var(--navy-deep);
}
/* Submit button */
.wpforms-form .wpforms-submit-container{
  text-align:center !important;margin-top:32px !important;padding:0 !important;
}
.wpforms-form button[type=submit],
.wpforms-form .wpforms-submit{
  display:inline-flex !important;align-items:center !important;gap:12px !important;
  padding:18px 48px !important;
  background:var(--navy-deep) !important;color:#fff !important;
  border:0 !important;border-radius:999px !important;
  font-family:var(--font-en) !important;font-size:14px !important;font-weight:600 !important;
  letter-spacing:0.1em !important;
  cursor:pointer;transition:background 0.3s !important;
  min-height:auto !important;line-height:1 !important;
}
.wpforms-form button[type=submit]:hover,
.wpforms-form .wpforms-submit:hover{background:var(--navy) !important}
/* GDPR / プライバシー同意 */
.wpforms-form .wpforms-field-gdpr-checkbox label,
.wpforms-form .wpforms-field-checkbox.wpforms-gdpr label{
  font-size:13px !important;color:var(--ink-soft) !important;line-height:1.7 !important;
}
.wpforms-form .wpforms-field-gdpr-checkbox a{color:var(--navy);text-decoration:underline}
/* エラーメッセージ */
.wpforms-form label.wpforms-error,
.wpforms-form .wpforms-error-container{
  color:#e11d48 !important;font-size:12px !important;margin-top:4px !important;
}
.wpforms-form input.wpforms-error,
.wpforms-form select.wpforms-error,
.wpforms-form textarea.wpforms-error{
  border-color:#e11d48 !important;
}
/* 確認画面 / 完了メッセージ */
.wpforms-confirmation-container-full{
  background:var(--bg-soft) !important;border:1px solid var(--navy-deep) !important;
  border-radius:8px !important;padding:32px !important;
  color:var(--ink-soft) !important;
}
/* Mobile */
@media (max-width:768px){
  .wpforms-form{padding:24px !important}
  .wpforms-form .wpforms-field-row{grid-template-columns:1fr !important;gap:0 !important}
}

/* =============================================================
   WP コンテンツエリア (the_content() の出力にスタイル適用)
   WordPress 編集画面で書かれた内容をデザインに馴染ませる
   ============================================================= */
.wp-content-area{font-size:15px;line-height:2;color:var(--ink-soft);letter-spacing:0.04em}
.wp-content-area p{margin-bottom:20px}
.wp-content-area h2{font-family:var(--font-jp);font-weight:700;font-size:24px;color:var(--ink);margin:48px 0 16px;padding-bottom:12px;border-bottom:2px solid var(--navy-deep);letter-spacing:0.04em}
.wp-content-area h3{font-family:var(--font-jp);font-weight:600;font-size:18px;color:var(--ink);margin:32px 0 12px;letter-spacing:0.04em}
.wp-content-area h4{font-family:var(--font-jp);font-weight:600;font-size:16px;color:var(--ink);margin:24px 0 8px}
.wp-content-area ul,.wp-content-area ol{margin:16px 0 24px 24px}
.wp-content-area li{margin-bottom:8px;line-height:1.9}
.wp-content-area a{color:var(--navy);text-decoration:underline}
.wp-content-area strong{color:var(--ink);font-weight:600}
.wp-content-area blockquote{border-left:4px solid var(--navy);padding:16px 24px;margin:24px 0;background:var(--bg);color:var(--ink-soft)}
.wp-content-area img{max-width:100%;height:auto;border-radius:4px;margin:24px 0}
.wp-content-area figure{margin:24px 0}
/* WordPress標準テーブルをデザインに馴染ませる */
.wp-content-area table,
.wp-content-area .wp-block-table table{
  width:100%;border-collapse:collapse;margin:24px 0;
  border-top:1px solid var(--line);
}
.wp-content-area table td,
.wp-content-area .wp-block-table td{
  padding:18px 12px;border-bottom:1px solid var(--line);
  font-size:15px;line-height:1.8;color:var(--ink-soft);vertical-align:top;
}
.wp-content-area table tr td:first-child,
.wp-content-area .wp-block-table tr td:first-child{
  width:200px;font-weight:600;color:var(--navy-deep);font-size:13px;
  letter-spacing:0.04em;
}
.wp-content-area .wp-block-table figcaption{font-size:12px;color:var(--ink-mute);margin-top:8px;text-align:center}
/* 旧テーマで使われていた全幅カバー画像は非表示（Heroと重複するため） */
.wp-content-area .wp-block-cover.alignfull{display:none}
@media (max-width:768px){
  .wp-content-area table tr td:first-child,
  .wp-content-area .wp-block-table tr td:first-child{width:auto;display:block;padding-bottom:4px;border-bottom:0;font-size:11px}
  .wp-content-area table tr td:last-child,
  .wp-content-area .wp-block-table tr td:last-child{display:block;padding-top:0;font-size:14px}
}

/* Notice band (採用受付停止中など) */
.notice-band{background:var(--bg-white);border:1px solid var(--line);border-left:4px solid var(--navy);padding:32px 40px;border-radius:6px;display:flex;gap:24px;align-items:center}
.notice-band-icon{flex:0 0 auto;width:48px;height:48px;border-radius:50%;background:var(--navy-deep);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px}
.notice-band-body h3{font-family:var(--font-jp);font-size:18px;font-weight:600;margin-bottom:6px;color:var(--ink)}
.notice-band-body p{font-size:14px;color:var(--ink-soft);line-height:1.8}

/* =============================================================
   RESPONSIVE — Tablet, Mobile, Small phone
   ============================================================= */
@media (max-width:1024px){
  :root{--pad-x:32px}
  .nav{height:52px;padding:0 8px 0 20px}
  .nav-menu{gap:20px;font-size:12px}
  .nav-cta{padding:8px 18px;font-size:12px}
  .hero{min-height:600px;max-height:780px}
  .hero-content{padding:0 var(--pad-x) 100px}
  .slide-grid{gap:32px}
  .hero-meta{max-width:240px}
  .hero-arrow{width:56px;height:56px}
  .flag{width:160px;height:104px;padding-top:24px;left:32px}
  .flag-mark{font-size:18px}
  .page-header{padding:140px 0 64px}
  .section-head{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:48px}
  .philo-grid{gap:48px}
  section{padding:100px 0 80px}
  .strength-grid{grid-template-columns:1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:0;background:transparent}
  .strength-item{border-right:0 !important;border-bottom:1px solid var(--line);padding:36px 0}
  .strength-item:last-child{border-bottom:0}
  .footer-top{grid-template-columns:1fr 1fr 1fr;gap:32px}
  .footer-top > div:first-child{grid-column:1 / -1;margin-bottom:8px}
  .overlay-grid{grid-template-columns:1fr 280px;gap:48px}
  .overlay-inner{padding:104px 32px 40px}
  .def-table{grid-template-columns:160px 1fr}
  .def-table dt{font-size:12px}
}

@media (max-width:768px){
  :root{--pad-x:20px}
  .nav{top:12px;width:calc(100% - 24px);height:48px;padding:0 6px 0 16px}
  .nav-menu{display:none}
  .nav-logo{font-size:14px}
  .nav-cta{padding:7px 14px;font-size:11px}
  .hamburger{width:36px;height:36px}
  .hero{min-height:560px;height:90vh;max-height:720px}
  .hero-content{padding:0 var(--pad-x) 96px;justify-content:flex-end}
  .slide-grid{grid-template-columns:1fr;gap:24px;align-items:flex-start}
  .hero-copy-jp{font-size:13px;letter-spacing:0.08em}
  .hero-title{font-size:48px}
  .hero-meta{max-width:100%;padding-bottom:0;font-size:12px}
  .hero-arrow{width:48px;height:48px;align-self:flex-start}
  .hero-rail{bottom:24px}
  .hero-tags{font-size:10px;gap:12px}
  .hero-tags button{padding:4px 0}
  .flag{width:120px;height:80px;padding-top:18px;left:20px}
  .flag-mark{font-size:14px}
  .page-header{padding:112px 0 56px}
  .breadcrumb{margin-top:24px;font-size:10px}
  .news-bar{padding:24px 0}
  .news-bar-inner{grid-template-columns:80px 1fr;gap:16px}
  .news-thumb{width:80px}
  .news-pager{display:none}
  .news-headline{font-size:13px}
  section{padding:72px 0 56px}
  .section-head{margin-bottom:36px}
  .section-title-group{gap:12px;flex-wrap:wrap}
  .section-title-en{font-size:36px}
  .section-title-jp{font-size:12px}
  .philo-grid{grid-template-columns:1fr;gap:32px}
  .philo-text h3{font-size:22px}
  .philo-image{aspect-ratio:4/3}
  .brand-grid{grid-template-columns:1fr;gap:16px}
  .brand-card{aspect-ratio:4/3;padding:32px}
  .brand-card h3{font-size:30px}
  .brand-card-arrow{bottom:32px;right:32px;width:44px;height:44px}
  .strengths{padding:80px 0 60px}
  .strength-item{padding:28px 0}
  .news-row{grid-template-columns:1fr;gap:8px;padding:20px 0}
  .news-row .arrow{display:none}
  .news-row .tag{font-size:10px;padding:3px 10px}
  .split-section{padding:72px 0}
  .split-grid{grid-template-columns:1fr;gap:16px}
  .split-card{aspect-ratio:auto;min-height:380px;padding:36px}
  .split-card h3{font-size:42px}
  .split-card p{max-width:100%;margin-bottom:24px}
  .split-card .arrow-pill{position:static;align-self:flex-start;bottom:auto;right:auto;padding:10px 18px;font-size:11px;margin-top:4px}
  .contact-band{padding:48px 0}
  .contact-inner{grid-template-columns:1fr;text-align:center;gap:18px}
  .contact-eyebrow{margin:0 auto}
  .contact-cta{margin:0 auto;padding:14px 28px;font-size:13px}
  .contact-title{font-size:28px}
  .contact-title small{font-size:12px;margin-top:6px}
  footer{padding:48px 0 20px}
  .footer-top{grid-template-columns:1fr 1fr;gap:28px;margin-bottom:32px}
  .footer-top > div:first-child{grid-column:1 / -1}
  .footer-logo{font-size:20px}
  .footer-bottom{flex-direction:column;gap:12px;align-items:flex-start;font-size:11px;padding-top:16px}
  .footer-bottom-links a{margin-left:0;margin-right:16px}
  .overlay-inner{padding:80px 20px 32px}
  .overlay-grid{grid-template-columns:1fr;gap:32px}
  .ovl-link{padding:14px 0}
  .ovl-en{font-size:34px}
  .ovl-jp{font-size:11px}
  .ovl-sub{margin:-4px 0 8px 12px;padding:6px 0 12px 16px}
  .ovl-sub a{font-size:13px}
  .overlay-side{padding-top:8px;gap:28px}
  .ovl-contact-cta{padding:14px 20px;font-size:13px}
  .overlay-bottom{flex-direction:column;align-items:flex-start;gap:12px;font-size:10px;padding-top:20px;margin-top:20px}
  .ovl-legal a{margin-left:0;margin-right:16px}
  /* mobile: stack each row */
  .def-table{grid-template-columns:1fr}
  .def-table dt{padding:16px 0 4px;border-bottom:0;font-size:11px}
  .def-table dd{padding:0 0 16px;font-size:14px}
  .timeline-row{grid-template-columns:80px 1fr;gap:16px;padding:16px 0}
  .timeline-year{font-size:14px}
  .timeline-text{font-size:13px}
  .notice-band{flex-direction:column;text-align:center;gap:12px;padding:24px}
}

@media (max-width:380px){
  .hero-title{font-size:42px}
  .section-title-en{font-size:30px}
  .brand-card{padding:24px}
  .brand-card h3{font-size:26px}
  .split-card{padding:28px;min-height:340px}
  .split-card h3{font-size:36px}
  .page-header h1{font-size:42px}
}
