﻿/*!
Template:rishun
Theme Name: rishun_child
Theme URI: https://rishuntrading.co.jp
Description: Identity Science Co., Ltd. child theme based on Rishun.
Author: RishunTrading Limited.
Author URI: https://rishuntrading.co.jp
Version: 1.0.0
Requires at least: 1.0
Tested up to: 1.0.0
Requires PHP: 5.6.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Yuji+Mai&display=swap');
:root{
  --mb-bar-color:#111111;
  --site-red:#c8102e;
  --noto-sans:"Noto Sans JP", sans-serif;
  --noto-serif:"Noto Serif JP", serif;
  --yuji-mai:"Yuji Mai", serif;
  --bk-body-color:#f7f7f7;
}

body, p { font-size: 16px; font-family:var(--noto-sans);}
body a { color: #333;  font-family:var(--noto-sans);}
body a:hover { color: #333; }
.nodata { color: #ff0000; }
img { width: 100%; height: auto; }
.entry-body img { display: unset; width: auto; height: auto; max-width: 100%; }
@media print { #mobile-menu { display: none !important; } }

/*=====================================================*/
/* COMMON                                              */
/*=====================================================*/

.about-grid > *,
.access-grid > *,
.rc-msg-grid > *,
.work-grid > *,
.domain-body > *,
.ct-layout > * {
  min-width: 0;
  overflow: hidden;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: 'Noto Sans JP', sans-serif; background: #fff; color: #111; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
a { text-decoration: none; color: inherit; }
button { cursor: pointer; font-family: inherit; border: none; background: none; padding: 0; }
img { display: block; max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid #c8102e; outline-offset: 3px; }
::selection { background: rgba(200,16,46,.15); }

:root {
  --red: #c8102e;
  --red-d: #a00d22;
  --dark: #111;
  --mid: #4a4a4a;
  --sub: #888;
  --line: #e0e0e0;
  --bg: #f5f5f5;
  --serif: 'Noto Sans JP', sans-serif;
  --corp: 'Noto Sans JP', sans-serif;
  --en: 'Montserrat', sans-serif;
  --ease: cubic-bezier(.16,1,.3,1);
  --hh: 60px;
  --sp: clamp(24px, 5vw, 72px);
}
@media (min-width: 769px) { :root { --hh: 66px; } }

[data-r] { opacity: 0; transform: translateY(28px); transition: opacity .85s var(--ease), transform .85s var(--ease); }
[data-r].on { opacity: 1; transform: none; }
[data-r][data-d="1"] { transition-delay: .12s; }
[data-r][data-d="2"] { transition-delay: .24s; }
[data-r][data-d="3"] { transition-delay: .36s; }
[data-r][data-d="4"] { transition-delay: .48s; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.skip { position: fixed; top: -120px; left: 50%; transform: translateX(-50%); z-index: 9999; background: var(--red); color: #fff; padding: 12px 28px; font-family: var(--en); font-size: 12px; letter-spacing: 2px; font-weight: 700; transition: top .2s; border-radius: 0 0 4px 4px; }
.skip:focus { top: 0; }

#hd {
  position: fixed; inset: 0 0 auto 0; z-index: 800;
  height: var(--hh);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 20px;
  background: rgba(255,255,255,0);
  backdrop-filter: blur(0px); -webkit-backdrop-filter: blur(0px);
  border-bottom: 1px solid transparent;
  transition: background .4s, border-color .4s, box-shadow .4s, backdrop-filter .4s;
}
@media (min-width: 769px) { #hd { padding: 0 clamp(20px, 3.5vw, 44px); } }

.logo { display: flex; align-items: center; gap: 12px; }
.logo-sq { width: 36px; height: 36px; background: var(--red); display: grid; place-items: center; flex-shrink: 0; transition: background .2s; }
.logo:hover .logo-sq { background: var(--red-d); }
.logo-sq span { font-family: var(--en); font-size: 13px; font-weight: 700; color: #fff; letter-spacing: .5px; }
.logo-en { font-family: var(--en); font-size: 12px; font-weight: 700; letter-spacing: 2.5px; color: var(--red); display: block; line-height: 1; transition: color .4s; }
.logo-ja { font-size: 12px; color: #777; display: block; margin-top: 3px; letter-spacing: .5px; transition: color .4s; }
#hd:not(.sh) .logo-en { color: rgba(255,255,255,.9); }
#hd:not(.sh) .logo-ja { color: rgba(255,255,255,.6); }

.hd-nav { display: none; align-items: center; height: var(--hh); }
.hd-nav a { height: 100%; display: flex; align-items: center; padding: 0 14px; font-family: var(--en); font-size: 12px; font-weight: 500; letter-spacing: 1.8px; color: #555; position: relative; transition: color .4s; white-space: nowrap; }
.hd-nav a::after { display: none; }
.hd-nav a:hover, .hd-nav a.act { color: #111; }
#hd:not(.sh) .hd-nav a { color: rgba(255,255,255,.8); }
#hd:not(.sh) .hd-nav a:hover { color: #fff; }
@media (min-width: 769px) { .hd-nav { display: flex; } }

/* ドロップダウン（デスクトップ） */
.hd-has-sub { position: relative; height: 100%; display: flex; align-items: center; }
.hd-nav-btn { height: 100%; display: flex; align-items: center; padding: 0 14px; font-family: var(--en); font-size: 12px; font-weight: 500; letter-spacing: 1.8px; color: #555; background: none; border: none; cursor: pointer; white-space: nowrap; transition: color .4s; }
.hd-nav-btn:hover, .hd-nav-btn.act { color: #111; }
#hd:not(.sh) .hd-nav-btn { color: rgba(255,255,255,.8); }
#hd:not(.sh) .hd-nav-btn:hover { color: #fff; }
.hd-sub-arr { font-size: 10px; display: inline-block; transition: transform .2s; }
.hd-sub-arr-btn { height: 100%; display: flex; align-items: center; padding: 0 8px 0 2px; background: none; border: none; cursor: pointer; color: inherit; transition: color .4s; }
#hd:not(.sh) .hd-sub-arr-btn { color: rgba(255,255,255,.8); }
#hd:not(.sh) .hd-sub-arr-btn:hover { color: #fff; }
.hd-has-sub.open .hd-sub-arr { transform: rotate(180deg); }
.hd-subnav { display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); background: #fff; border-top: 2px solid var(--red); min-width: 140px; box-shadow: 0 8px 24px rgba(0,0,0,.12); z-index: 200; }
.hd-has-sub.open .hd-subnav { display: block; }
.hd-subnav-a { display: block; padding: 14px 20px; font-family: var(--en); font-size: 12px; font-weight: 600; letter-spacing: 1.5px; color: var(--dark); white-space: nowrap; border-bottom: 1px solid var(--line); transition: color .2s, background .2s; text-decoration: none; }
#hd .hd-has-sub .hd-subnav .hd-subnav-a { display: block; height: auto; color: var(--dark); }
#hd .hd-has-sub .hd-subnav .hd-subnav-a:hover { color: var(--red); background: var(--bg); }
.hd-subnav-a:hover { color: var(--red); background: var(--bg); }
.hd-subnav-a:last-child { border-bottom: none; }

/* ドロワーサブメニュー（モバイル） */
.dr-sub-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 18px 0; font-family: var(--en); font-size: 14px; font-weight: 600; letter-spacing: 2.5px; color: var(--dark); border: none; border-bottom: 1px solid var(--line); background: none; cursor: pointer; text-align: left; }
.dr-sub-row { display: flex; align-items: center; border-bottom: 1px solid var(--line); }
.dr-sub-link { flex: 1; display: flex; align-items: center; justify-content: space-between; padding: 18px 0; font-family: var(--en); font-size: 14px; font-weight: 600; letter-spacing: 2.5px; color: var(--dark); text-decoration: none; }
.dr-sub-link:hover { color: var(--red); }
.dr-sub-arr-btn { background: none; border: none; cursor: pointer; padding: 18px 0 18px 16px; color: var(--dark); }
.dr-sub-arr { font-size: 10px; transition: transform .2s; }
.dr-has-sub.open .dr-sub-arr { transform: rotate(180deg); }
.dr-subnav { display: none; padding-left: 16px; }
.dr-has-sub.open .dr-subnav { display: block; }
.dr-subnav-a { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; font-family: var(--en); font-size: 13px; font-weight: 600; letter-spacing: 2px; color: var(--sub); border-bottom: 1px solid var(--line); transition: color .2s; text-decoration: none; }
.dr-subnav-a:hover { color: var(--red); }

.hbg { display: flex; flex-direction: column; justify-content: center; gap: 6px; width: 44px; height: 44px; padding: 8px; }
.hbg span { display: block; width: 100%; height: 1.5px; background: #fff; transition: transform .35s var(--ease), opacity .25s, background .3s; transform-origin: center; }
.hbg.open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.hbg.open span:nth-child(2) { opacity: 0; }
.hbg.open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
@media (min-width: 769px) { .hbg { display: none; } }

#drawer { position: fixed; inset: 0; z-index: 700; display: flex; flex-direction: column; background: #fff; transform: translateX(100%); transition: transform .45s var(--ease); }
#drawer.open { transform: none; }
.dr-body { display: flex; flex-direction: column; padding: calc(var(--hh) + 24px) 36px 36px; overflow-y: auto; gap: 0; }
.dr-body a { display: flex; align-items: center; justify-content: space-between; padding: 18px 0; font-family: var(--en); font-size: 14px; font-weight: 600; letter-spacing: 2.5px; color: var(--dark); border-bottom: 1px solid var(--line); transition: color .2s; }
.dr-body a:hover { color: var(--red); }
.dr-cta { margin-top: 28px; background: var(--red) !important; color: #fff !important; justify-content: center !important; border-bottom: none !important; padding: 20px 0 !important; letter-spacing: 3px !important; }

.pg-hero {
  position: relative;
  height: clamp(300px, 42vw, 500px);
  padding-top: var(--hh);
  background-color: #0a0a12;
  background-size: cover; background-position: center;
  display: flex; align-items: flex-end;
  overflow: hidden;
}
.pg-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.22) 55%, rgba(0,0,0,.6) 100%); }
.pg-hero::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: var(--red); }
.pg-hero-in { position: relative; z-index: 1; padding: 0 max(20px,5vw) 56px; width: 100%; }
.pg-en { font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 6px; color: var(--red); display: block; margin-bottom: 14px; }
.pg-title { font-family: var(--serif); font-size: clamp(28px,5.5vw,60px); font-weight: 200; color: #fff; letter-spacing: .1em; line-height: 1.3; }
.pg-title-rule { width: 36px; height: 2px; background: var(--red); margin-top: 22px; }

.local-nav { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: var(--hh); z-index: 100; }
.local-nav-inner { max-width: 1240px; margin: 0 auto; padding: 0 max(20px,5vw); display: flex; overflow-x: auto; -webkit-overflow-scrolling: touch; gap: 0; }
.local-nav a { display: flex; align-items: center; height: 54px; padding: 0 20px; font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; color: var(--sub); white-space: nowrap; border-bottom: 2px solid transparent; transition: color .2s, border-color .2s; }
.local-nav a:hover, .local-nav a.act { color: var(--red); border-bottom-color: var(--red); }

/*.wrap { max-width: 1240px; margin: 0 auto; padding: 0 max(20px,5vw); }*/
.sec { padding: 64px 0; }
.sec-sm { padding: 48px 0; }
.sec-bg { background: var(--bg); border-top: 1px solid var(--line); }
.sec-dark { background: #0f0f0f; }
.lbl { font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 5px; color: var(--red); display: block; margin-bottom: 14px; }
.lbl-wh { color: rgba(255,255,255,.55); }
.ttl {
  font-family: var(--noto-sans);
  font-size: clamp(24px,3.8vw,32px);
  font-weight: 700;
  letter-spacing: .07em;
  color: var(--dark);
  line-height: 1.3;
  margin-bottom: 16px;
  text-align:justify;
}
.ttl-wh { color: #fff; }
.rule { width: 36px; height: 2px; background: var(--red); margin-bottom: 28px; }
.lead { font-size: 16px; line-height: 2.2; color: var(--mid); max-width: 640px; }
.lead-wh { color: rgba(255,255,255,.9); }
.more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--en);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--red);
  padding-bottom: 3px;
  transition: gap .25s;
  position:relative;
}
.more::before {
  content:'';
  width:100%;
  height:1px;
  background:var(--red);
  position:absolute;
  bottom:0;
  left:0;
  transform:scale(0, 1);
  transform-origin:right center;
  transition:transform 0.3s;
}
.more:hover {
  gap: 16px;
}
.more:hover::before {
  transform:scale(1,1);
  transform-origin:left center;
}
@media (min-width: 769px) { .sec { padding: 96px 0; } .sec-sm { padding: 64px 0; } }

.btn-r { display: inline-flex; align-items: center; gap: 10px; background: var(--red); color: #fff; padding: 15px 36px; font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; border: 2px solid var(--red); transition: background .2s, color .2s; }
.btn-r:hover { background: transparent; color: var(--red); }
.btn-r .arr, .btn-wh .arr, .btn-bk .arr { transition: transform .22s; }
.btn-r:hover .arr { transform: translateX(4px); }
.btn-wh { display: inline-flex; align-items: center; gap: 10px; background: #fff; color: #111; padding: 15px 36px; font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; border: 2px solid #fff; transition: background .2s, color .2s; }
.btn-wh:hover { background: transparent; color: #fff; }
.btn-wh:hover .arr { transform: translateX(4px); }
.btn-bk { display: inline-flex; align-items: center; gap: 10px; border: 1.5px solid var(--line); color: var(--mid); padding: 14px 32px; font-family: var(--en); font-size: 14px; font-weight: 600; letter-spacing: 2px; transition: border-color .2s, color .2s; }
.btn-bk:hover { border-color: var(--red); color: var(--red); }
.btn-bk:hover .arr { transform: translateX(4px); }

.pp-wrap { position: fixed; inset: 0; z-index: 9000; background: rgba(0,0,0,.65); display: none; align-items: center; justify-content: center; padding: 24px; }
.pp-wrap.on { display: flex; }
.pp-box { background: #fff; max-width: 700px; width: 100%; max-height: 82vh; display: flex; flex-direction: column; }
.pp-hd { display: flex; align-items: center; justify-content: space-between; padding: clamp(16px,3vw,28px) clamp(20px,3vw,36px); border-bottom: 1px solid var(--line); flex-shrink: 0; }
.pp-hd h2 { font-family: var(--serif); font-size: 22px; font-weight: 300; }
.pp-cls { font-size: 26px; color: var(--sub); line-height: 1; transition: color .2s; }
.pp-cls:hover { color: var(--dark); }
.pp-bd { padding: clamp(20px,3vw,32px) clamp(20px,3vw,36px); overflow-y: auto; font-size: 14px; color: var(--mid); line-height: 2.1; }
.pp-bd h3 { font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; color: var(--dark); margin: 22px 0 8px; }
.pp-bd h3:first-child { margin-top: 0; }

#ptop { position: fixed; right: 16px; bottom: 16px; z-index: 600; width: 44px; height: 44px; background: var(--red); color: #fff; display: flex; align-items: center; justify-content: center; opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity .3s, transform .3s, background .2s; box-shadow: 0 4px 20px rgba(0,0,0,.2); }
#ptop.on { opacity: 1; transform: none; pointer-events: auto; }
#ptop:hover { background: var(--red-d); }
#ptop svg { width: 16px; height: 16px; fill: #fff; }
@media (min-width: 768px) { #ptop { right: 24px; bottom: 24px; width: 48px; height: 48px; } }

footer { background: #111; padding: 48px 0 28px; }
.ft { max-width: 1240px; margin: 0 auto; padding: 0 max(20px,5vw); }
.ft-top { display: grid; grid-template-columns: 1fr; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 32px; }
.ft-logo { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.ft-sq { width: 32px; height: 32px; background: var(--red); display: grid; place-items: center; flex-shrink: 0; }
.ft-sq span { font-family: var(--en); font-size: 12px; font-weight: 700; color: #fff; }
.ft-brand-en { font-family: var(--en); font-size: 12px; font-weight: 700; letter-spacing: 2px; color: #fff; display: block; }
.ft-brand-ja { font-size: 12px; color: rgba(255,255,255,.3); display: block; margin-top: 3px; }
.ft-brand > p { font-size: 13px; color: rgba(255,255,255,.35); line-height: 2; margin-top: 4px; }
.ft-col h5 { font-family: var(--en); font-size: 12px; font-weight: 700; letter-spacing: 4px; color: #fff; margin-bottom: 20px; }
.ft-col ul { list-style: none; display: flex; flex-direction: column; gap: 13px; }
.ft-col li a, .ft-col li button { font-size: 13px; color: rgba(255,255,255,.4); letter-spacing: .5px; transition: color .2s; background: none; border: none; padding: 0; cursor: pointer; font-family: inherit; text-align: left; }
.ft-col li a:hover, .ft-col li button:hover { color: #fff; }
.ft-bot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; }
.ft-copy { font-family: var(--en); font-size: 12px; color: rgba(255,255,255,.2); letter-spacing: 1px; }
.ft-pp { font-family: var(--en); font-size: 12px; color: rgba(255,255,255,.25); letter-spacing: 1px; transition: color .2s; }
.ft-pp:hover { color: rgba(255,255,255,.55); }
@media (min-width: 768px) { footer { padding: 64px 0 36px; } .ft-top { grid-template-columns: 1fr 1fr; gap: 40px; } }
@media (min-width: 992px) { .ft-top { grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: 48px; } }

.admin-bar #hd { top: 32px; }
@media (max-width: 768px) { .admin-bar #hd { top: 46px; } }

.news-layout { display: grid; grid-template-columns: 1fr; gap: 48px; align-items: start; }
.news-list { display: flex; flex-direction: column; gap: 0; }
.ni { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; gap: 8px; padding: 24px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: inherit; position: relative; transition: padding-left .25s var(--ease); }
.ni::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: var(--red); transition: width .25s var(--ease); }
.ni:hover::before { width: 3px; }
.ni:hover { padding-left: 14px; }
.ni:hover .ni-ttl { color: var(--red); }
.ni-date { grid-row: 1; grid-column: 1; font-family: var(--en); font-size: 14px; letter-spacing: 1px; color: var(--sub); }
.ni-cat { grid-row: 1; grid-column: 2; font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; border: 1px solid var(--red); color: var(--red); padding: 3px 12px; white-space: nowrap; }
.ni-ttl { grid-row: 2; grid-column: 1 / span 2; font-size: 15px; color: var(--dark); line-height: 1.65; transition: color .2s; }
.ni-arr { display: none; color: var(--sub); font-size: 16px; transition: transform .2s, color .2s; }
@media (min-width: 901px) {
  .news-layout { grid-template-columns: 1fr 300px; gap: 72px; }
  .ni { grid-template-columns: 130px auto 1fr 28px; grid-template-rows: auto; gap: 20px; align-items: center; }
  .ni-date { grid-row: auto; grid-column: auto; }
  .ni-cat { grid-row: auto; grid-column: auto; }
  .ni-ttl { grid-row: auto; grid-column: auto; }
  .ni-arr { display: block; }
  .ni:hover .ni-arr { transform: translateX(5px); color: var(--red); }
}

.sidebar { position: static; }
.sb-block { margin-bottom: 40px; }
.sb-block h4 { font-family: var(--en); font-size: 16px; font-weight: 700; letter-spacing: 3px; color: var(--dark); margin-bottom: 18px; padding-bottom: 10px; border-bottom: 2px solid var(--red); }
.sb-item { display: flex; flex-direction: column; gap: 5px; padding: 14px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: inherit; transition: color .2s; }
.sb-item:last-child { border-bottom: none; }
.sb-item:hover .sb-ttl { color: var(--red); }
.sb-date { font-family: var(--en); font-size: 14px; letter-spacing: 1px; color: var(--sub); }
.sb-ttl { font-size: 14px; color: var(--dark); line-height: 1.6; transition: color .2s; }
.sb-banner { background: var(--red); padding: 20px 10px; text-align: center; }
.sb-banner h4 { color: #fff; font-family: var(--serif); font-size: 18px; font-weight: 500; margin-bottom: 10px; }
.sb-banner p { color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.8; margin-bottom: 18px; }
.sb-banner a { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: 2px; transition: gap .2s; }
.sb-banner a:hover { gap: 14px; }
@media (min-width: 992px) { .sidebar { position: sticky; top: calc(var(--hh) + 24px); } }

.article-wrap { display: grid; grid-template-columns: 1fr; gap: 48px; align-items: start; }
.back-link { display: inline-flex; align-items: center; gap: 8px; font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; color: var(--sub); margin-bottom: 40px; transition: color .2s; }
.back-link:hover { color: var(--red); }
.art-header { margin-bottom: 40px; padding-bottom: 36px; border-bottom: 1px solid var(--line); }
.art-cat { font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; border: 1px solid var(--red); color: var(--red); padding: 3px 12px; display: inline-block; margin-bottom: 14px; }
.art-date { font-family: var(--en); font-size: 14px; letter-spacing: 2px; color: var(--sub); margin-bottom: 18px; display: block; }
.art-ttl { font-family: var(--serif); font-size: clamp(22px,3.8vw,40px); font-weight: 300; color: var(--dark); line-height: 1.45; letter-spacing: .05em; }
.art-body { font-size: 15px; color: var(--mid); line-height: 2.3; }
.art-body p { margin-bottom: 1.8em; }
.art-body h3 { font-family: var(--serif); font-size: clamp(18px,2.2vw,24px); font-weight: 400; color: var(--dark); margin: 2.5em 0 1em; padding-left: 18px; border-left: 3px solid var(--red); }
.art-nav { display: flex; justify-content: space-between; gap: 20px; margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--line); flex-wrap: wrap; }
.art-nav a { font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; color: var(--red); display: inline-flex; align-items: center; gap: 8px; transition: gap .2s; }
.art-nav a:hover { gap: 14px; }
@media (min-width: 992px) {
  .article-wrap { grid-template-columns: 1fr 280px; gap: 72px; }
}

.sv-partner { border-left: 3px solid var(--red); background: var(--bg); padding: 20px 24px; margin-bottom: 28px; }
.sv-partner-label {
  font-family: var(--en);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--red);
  display: block;
  margin-bottom: 8px;
}
.sv-partner-name {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 700;
  color: var(--dark);
  letter-spacing: .04em;
  margin-bottom: 12px;
  font-style: italic;
}
.sv-partner-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 5px; }
.sv-partner-list li { font-size: 16px; color: var(--mid); line-height: 1.75; padding-left: 18px; position: relative; }
.sv-partner-list li::before { content: '—'; position: absolute; left: 0; color: var(--red); font-size: 14px; }

@keyframes sl { 0% { background-position: 0 100%; } 100% { background-position: 0 -100%; } }

.req-tbl{width:100%;border-collapse:collapse;table-layout:fixed}
.req-tbl tr{border-bottom:1px solid var(--line)}
.req-tbl tr{display:block;padding:14px 0}
.req-tbl th{display:block;width:auto;padding:0 0 6px 0;font-family:var(--en);font-size: 16px;letter-spacing:2.5px;font-weight:700;color:var(--red);white-space:normal}
.req-tbl td{display:block;padding:0;font-size:16px;color:var(--mid);line-height:1.9}

.flow{display:flex;flex-direction:column;gap:0;align-items:flex-start}
.flow-step{flex-direction:row;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);width:100%;display:flex;position:relative;z-index:1}
.flow-step:last-child{border-bottom:none}
.flow-circle{width:60px;height:60px;border-radius:50%;background:#fff;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.flow-step:first-child .flow-circle{border-color:var(--red);box-shadow:0 0 0 4px rgba(200,16,46,.08)}
.flow-n{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:2px;color:var(--red);margin-bottom:6px}
.flow-label{font-size:14px;color:var(--dark);font-weight:500;text-align:center;line-height:1.4}
.flow-note{font-size: 14px;color:var(--sub);text-align:center;margin-top:5px;line-height:1.6}
@media(min-width:681px){
  .flow{flex-direction:row;align-items:stretch;position:relative}
  .flow::before{content:'';position:absolute;top:44px;left:44px;right:44px;height:1px;background:var(--line)}
  .flow-step{flex-direction:column;align-items:center;flex:1;gap:0;padding:0 8px;border-bottom:none;width:auto}
  .flow-circle{width:88px;height:88px;font-size:32px;flex-shrink:0;margin-bottom:18px}
}

.page-cta{
  background:
    linear-gradient(100deg,rgba(0,5,18,.93) 40%,rgba(0,20,50,.65) 100%),
    url('./img/bg-office.jpg') center/cover no-repeat;
  padding:80px max(20px, 5vw);text-align:center;position:relative;
}
.page-cta::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--red)}

.access-map-link{position:absolute;bottom:14px;right:14px;z-index:1;background:rgba(255,255,255,.95);color:var(--dark);font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:2px;padding:8px 14px;transition:background .2s}
.access-map-link:hover{background:#fff}
.ac-bl h4{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:4px;color:var(--red);margin-bottom:10px}
.ac-bl p{font-size:15px;color:var(--mid);line-height:1.95}

/*=====================================================*/
/* FRONT PAGE (.home)                                  */
/*=====================================================*/

@keyframes hf { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

.home .lbl { font-size: 14px; letter-spacing: 5px; }
.home .ttl { font-size: 24px; margin-bottom: 18px; font-weight:700;}
.home .lead { font-size: 15px; max-width: 560px; }
.home .inner {
  margin: 0 auto;
  padding:0 20px;
}
@media(min-width:576px){
  .home .inner {
    max-width:540px;
  }
}
@media(min-width:768px){
  .home .inner {
    max-width:720px;
  }
}
@media(min-width:992px){
  .home .inner {
    max-width:960px;
  }
}
@media(min-width:1200px){
  .home .inner {
    max-width:1140px;
  }
}
@media(min-width:1400px){
  .home .inner {
    max-width:1320px;
  }
}
.home .sec-pad {
  padding-top: 80px;
  padding-bottom: 80px;
}
.home #hero { position: relative; height: 100svh; min-height: 680px; display: flex; flex-direction: column; justify-content: center; padding-top: var(--hh); overflow: hidden; }
.home .hero-video-wrap { position: absolute; inset: 0; background: #04080f; }
.home #hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.home .hero-fallback { position: absolute; inset: 0; background: url('./img/bg-philosophy.jpg') center/cover no-repeat; opacity: .45; }
.home .hero-veil { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,.22) 0%, rgba(0,0,0,.04) 35%, rgba(0,0,0,.45) 65%, rgba(0,0,0,.82) 100%), linear-gradient(90deg, rgba(0,0,0,.30) 0%, transparent 55%); }
.home .hero-rule { position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: var(--red); z-index: 2; }
.home .hero-scroll { display: none; position: absolute; right: 40px; bottom: 48px; z-index: 5; flex-direction: column; align-items: center; gap: 14px; }
.home .hero-scroll p { writing-mode: vertical-rl; font-family: var(--en); font-size: 14px; letter-spacing: 4px; color: rgba(255,255,255,.4); font-weight: 600; }
.home .scroll-line { width: 1px; height: 72px; background: linear-gradient(to bottom, rgba(255,255,255,.5), transparent); background-size: 100% 200%; animation: sl 2s ease-in-out infinite; }
.home .hero-copy { position: relative; z-index: 3; padding: 0 max(20px, 5vw) 80px; max-width: min(900px, 100%); }
.home .hero-ey { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; animation: hf .8s .1s var(--ease) both; }
.home .hero-ey-rule { width: 32px; height: 1px; background: var(--red); flex-shrink: 0; }
.home .hero-ey span { font-family: var(--en); font-size: 14px; font-weight: 600; letter-spacing: 4px; color: rgba(255,255,255,.6); }
.home .hero-h1 { font-family: var(--serif); font-size: clamp(28px, 9vw, 44px); font-weight: 200; line-height: 1.55; letter-spacing: .1em; color: #fff; margin-bottom: 24px; animation: hf .9s .25s var(--ease) both; }
.home .hero-h1 strong { font-weight: 400; border-bottom: 1px solid rgba(255,255,255,.38); padding-bottom: 2px; }
.home .hero-sub { font-size: clamp(18px, 2.2vw, 28px); font-weight: 300; letter-spacing: .08em; color: rgba(255,255,255,.75); margin-bottom: 40px; animation: hf .9s .4s var(--ease) both; }
.home .hero-btns { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; animation: hf .9s .55s var(--ease) both; }
@media (min-width: 769px) { .home .hero-h1 { font-size: clamp(36px, 5.5vw, 72px); } .home .hero-btns { flex-direction: row; flex-wrap: wrap; } .home .hero-scroll { display: flex; } }

.home .btn-w { display: inline-flex; align-items: center; gap: 10px; background: #fff; color: #111; padding: 14px 32px; font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; transition: background .22s, color .22s; }
.home .btn-w:hover { background: var(--red); color: #fff; }
.home .btn-o { display: inline-flex; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.45); color: rgba(255,255,255,.8); padding: 14px 32px; font-family: var(--en); font-size: 14px; font-weight: 500; letter-spacing: 2px; transition: border-color .22s, color .22s, background .22s; }
.home .btn-o:hover { border-color: #fff; color: #fff; background: rgba(255,255,255,.08); }
.home .btn-red { display: inline-flex; align-items: center; gap: 10px; background: var(--red); color: #fff; padding: 14px 32px; font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; border: 2px solid var(--red); transition: background .2s, color .2s; }
.home .btn-red:hover { background: transparent; color: var(--red); }
.home .arr { transition: transform .22s; }
.home .btn-w:hover .arr, .home .btn-o:hover .arr, .home .btn-red:hover .arr { transform: translateX(4px); }

.home #about { border-top: 3px solid var(--red); }
.home .about-grid { display: grid; grid-template-columns: 1fr; overflow: hidden; }
.home .about-panel { background: linear-gradient(135deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.18) 100%), url('./img/bg-about.jpg') center/cover no-repeat; display: flex; flex-direction: column; justify-content: flex-end; padding: 44px; position: relative; min-height: 340px; }
.home .about-panel::after { content: ''; position: absolute; top: 0; bottom: 0; right: 0; width: 4px; background: var(--red); }
.home .about-panel-kicker { font-family: var(--en); font-size: 14px; letter-spacing: 4px; color: rgba(255,255,255,.5); margin-bottom: 10px; display: block; }
.home .about-panel-cap { font-family: var(--serif); font-size: 18px; font-weight: 300; color: rgba(255,255,255,.9); line-height: 1.75; letter-spacing: .05em; }
.home .about-vline { writing-mode: vertical-rl; font-family: var(--en); font-size: 14px; letter-spacing: 5px; color: rgba(255,255,255,.15); position: absolute; right: 22px; top: 44px; }
.home .about-body {
  width:100%;
  padding: 80px 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #fff;
  min-width: 0;
  overflow: hidden;
}
@media(min-width:768px){
  .home .about-body {
    max-width:740px;
    margin-left:auto;
    margin-right:auto;
  }
}
.home .about-stats { display: flex; gap: 28px; margin: 32px 0 40px; padding: 28px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.home .stat-n { font-family: var(--corp); font-size: 44px; font-weight: 300; color: var(--red); line-height: 1; }
.home .stat-n sup { font-size: 20px; vertical-align: super; }
.home .stat-u { font-family: var(--en); font-size: 14px; letter-spacing: 3px; color: var(--sub); margin-top: 6px; }
.home .about-tbl { width: 100%; border-collapse: collapse; margin-top:40px;}
.home .about-tbl tr { border-bottom: 1px solid var(--line); }
.home .about-tbl th {
  display:block;
  width:100%;
  padding:0.5em 0.5em 0.1em 0.5em;
  font-family: var(--en);
  color: var(--red);
}
.home .about-tbl td {
  display:block;
  width:100%;
  padding:0.1em 0.5em 0.5em 0.5em;
}
@media(min-width:768px){
  .home .about-tbl th {
    display:table-cell;
    text-align: left;
    padding: 12px 0;
    font-family: var(--en);
    letter-spacing: 2.5px;
    font-weight: 700;
    color: var(--red);
    width: auto;
    min-width:95px;
    vertical-align: top;
  }
  .home .about-tbl td {
    display:table-cell;
    padding: 12px 0;
    color: var(--mid);
    line-height: 1.8;
    width:auto;
  }
}
@media (min-width: 992px) { .home .about-grid { grid-template-columns: 1fr 1fr; min-height: 620px; } .home .about-body { padding: 80px max(20px, 5vw); } .home .about-stats { gap: 48px; } .home .stat-n { font-size: 52px; } }

.home #biz { background: var(--bg); border-top: 1px solid var(--line); }
.home .biz-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; flex-wrap: wrap; margin-bottom: 48px; }
.home .biz-head-r { max-width: 380px; }
.home .biz-head-r .lead { margin-bottom: 18px; }
.home .biz-cards { display: grid; grid-template-columns: 1fr; border: 1px solid var(--line); }
.home .biz-card { background: #fff; display: flex; flex-direction: column; border-bottom: 1px solid var(--line); position: relative; overflow: hidden; transition: box-shadow .35s; text-decoration: none; color: inherit; }
.home .biz-card:last-child { border-bottom: none; }
.home .biz-card:hover { box-shadow: 0 12px 48px rgba(0,0,0,.13); z-index: 1; }
.home .biz-card:hover img{
  transform:scale(1.1);
}
.home .biz-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 3px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s var(--ease);
  z-index:2;
}
.home .biz-card:hover::before { transform: scaleX(1); }
.home .biz-thumb { aspect-ratio: 3/2; background-size: cover; background-position: center; position: relative; transition: filter .5s; overflow: hidden; }
.home .biz-thumb>img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:all 0.3s;
}
.home .biz-card:hover .biz-thumb { filter: brightness(1.12); }
.home .biz-thumb-ov { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.08), rgba(0,0,0,.5)); display: flex; align-items: flex-end; padding: 16px; }
.home .biz-thumb-lbl { font-family: var(--en); font-size: 14px; letter-spacing: 3px; color: rgba(255,255,255,.75); font-weight: 700; }
.home .biz-body { padding: 24px 24px 32px; flex: 1; }
.home .biz-idx { font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 4px; color: var(--red); display: block; margin-bottom: 10px; }
.home .biz-name { font-family: var(--serif); font-size: 20px; font-weight: 700; letter-spacing: .05em; color: var(--dark); margin-bottom: 4px; }
.home .biz-en { font-family: var(--en); font-size: 15px; letter-spacing: 2px; color: var(--sub); margin-bottom: 12px; font-weight: 500; }
.home .biz-desc {
  font-size: 15px;
  color: var(--mid);
  line-height: 1.95;
  text-align:justify;
}
@media (min-width: 768px) {
  .home .biz-cards { grid-template-columns: repeat(3, 1fr); }
  .home .biz-card { border-right: 1px solid var(--line); border-bottom: none; }
  .home .biz-card:last-child { border-right: none; }
  .home .biz-idx{
    font-size:12px;
  }
}
@media (min-width: 992px) {
  .home .biz-idx{
    font-size:14px;
  }
}
.home #sv { background: #fff; }
.home .sv-row { display: grid; grid-template-columns: 1fr; min-height: auto; border-bottom: 1px solid var(--line); }
.home .sv-panel { background-size: cover; background-position: center; position: relative; min-height: 280px; }
.home .sv-panel-ov { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,.55), rgba(0,0,0,.18)); }
.home .sv-panel::after { content: ''; position: absolute; top: 0; bottom: 0; right: 0; width: 4px; background: var(--red); }
.home .sv-row.rev .sv-panel::after { right: auto; left: 0; }
.home .sv-row.rev .sv-panel { order: -1; }
.home .sv-corner { position: absolute; width: 22px; height: 22px; border-color: rgba(255,255,255,.38); border-style: solid; pointer-events: none; }
.home .sv-corner.tl { top: 24px; left: 24px; border-width: 1.5px 0 0 1.5px; }
.home .sv-corner.br { bottom: 24px; right: 24px; border-width: 0 1.5px 1.5px 0; }
.home .sv-body { padding: 60px max(20px, 5vw); display: flex; flex-direction: column; justify-content: center; background: #fff; }
.home .sv-idx { font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 5px; color: var(--red); display: block; margin-bottom: 14px; }
.home .sv-ttl { font-family: var(--serif); font-size: clamp(32px, 4vw, 54px); font-weight: 200; letter-spacing: .08em; color: var(--dark); margin-bottom: 6px; line-height: 1.15; }
.home .sv-en-sub { font-family: var(--en); font-size: 14px; letter-spacing: 3.5px; color: var(--sub); margin-bottom: 26px; }
.home .sv-txt { font-size: 15px; line-height: 2.2; color: var(--mid); margin-bottom: 28px; }
.home .tags { display: flex; flex-wrap: wrap; gap: 8px; }
.home .tag { font-size: 14px; letter-spacing: .5px; border: 1px solid var(--line); color: var(--mid); padding: 6px 14px; transition: border-color .2s, color .2s; }
.home .tag:hover { border-color: var(--red); color: var(--red); }
@media (min-width: 992px) { .home .sv-row { grid-template-columns: 1fr 1fr; min-height: 540px; } .home .sv-row.rev .sv-panel { order: 0; } .home .sv-body { padding: 72px max(20px, 5vw); } }

.home #news { background: var(--bg); border-top: 1px solid var(--line); }
.home .news-layout { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: start; }
.home .news-aside { position: static; }
.home .news-aside .lead { font-size: 15px; margin: 16px 0 28px; }
.home .tabs {
  display: flex;
  width:100%;
  flex-flow:row wrap;
}
.home .tab {
  padding: 10px 16px;
  font-family: var(--en);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: var(--sub);
  cursor: pointer;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  background: none;
  transition: color .2s, border-color .2s;
  white-space: nowrap;
  flex-shrink: 0;
  border-bottom: 1px solid var(--line);
}
.home .tab.on { color: var(--red); border-bottom-color: var(--red); }
.home .tab:hover { color: var(--dark); }
.home .news-list { display: flex; flex-direction: column; }
.home .ni { display: grid; grid-template-columns: 104px 1fr; gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--line); position: relative; transition: padding-left .25s var(--ease); cursor: pointer; }
.home .ni::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: var(--red); transition: width .25s var(--ease); }
.home .ni:hover::before { width: 3px; }
.home .ni:hover { padding-left: 14px; }
.home .ni:hover .ni-ttl { color: var(--red); }
.home .ni-date { font-family: var(--en); font-size: 14px; letter-spacing: 1px; color: var(--sub); padding-top: 2px; }
.home .ni-cat { display: inline-block; font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; border: 1px solid var(--red); color: var(--red); padding: 2px 10px; margin-bottom: 8px; }
.home .ni-ttl { font-size: 14.5px; line-height: 1.75; color: var(--dark); transition: color .2s; }
@media (min-width: 992px) {
  .home .news-layout {
    grid-template-columns: minmax(260px, 320px) 1fr;
    gap: 40px;
  }
  .home .news-aside {
    position: sticky;
    top: calc(var(--hh) + 24px);
  }
}
@media (min-width: 1200px) {
  .home .news-layout {
    grid-template-columns: minmax(320px, 400px) 1fr;
  }
}
.home #access {
  background: #fff;
  border-top: 1px solid var(--line);
}
.home .access-grid {
  display:flex;
  width:100%;
  flex-flow:row wrap;
}
.home .access-panel {
  width:100%;
  position: relative;
  min-height: 320px;
  overflow: hidden;
  background: #e8e8e8;
  order:2;
}
.home .access-panel iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.home .access-body {
  width:100%;
  padding: 80px max(20px, 5vw);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 28px;
  background: #fff;
  min-width: 0;
  overflow: hidden;
  order:1;
}
@media (min-width: 992px) {
  .home .access-grid { grid-template-columns: 1fr 1fr; min-height: 500px; }
  .home .access-body { padding: 80px max(20px, 5vw); }
}
.home #recruit { position: relative; min-height: 540px; display: flex; align-items: center; background: linear-gradient(100deg, rgba(0,5,18,.93) 45%, rgba(0,15,40,.65) 100%), url('./img/bg-recruit-hero.jpg') center/cover no-repeat; }
.home .recruit-red { position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--red); }
.home .recruit-in { max-width: 1240px; margin: 0 auto; padding: 64px max(20px, 5vw); width: 100%; display: grid; grid-template-columns: 1fr; gap: 40px; align-items: center; }
.home .rc-lbl { color: var(--red); }
.home .rc-ttl { color: #fff; }
.home .rc-rule { background: var(--red); }
.home .rc-lead { color: rgba(255,255,255,.55); max-width: 460px; margin-bottom: 36px; }
.home .roles { display: flex; flex-direction: column; gap: 1px; background: rgba(255,255,255,.08); }
.home .role { background: rgba(255,255,255,.04); padding: 20px 28px; display: flex; align-items: center; justify-content: space-between; border-left: 3px solid transparent; transition: background .25s, border-color .25s; }
.home .role:hover { background: rgba(255,255,255,.09); border-color: var(--red); }
.home .role-ja { font-family: var(--serif); font-size: 19px; font-weight: 300; color: #fff; }
.home .role-en { font-family: var(--en); font-size: 14px; letter-spacing: 3px; color: rgba(255,255,255,.35); }
@media (min-width: 992px) {
  .home .recruit-in { padding: 96px max(20px, 5vw); grid-template-columns: 1fr 1fr; gap: 80px; }
}

.home #contact {
  background: var(--bg);
  border-top: 1px solid var(--line);
  padding:0;
}
.home .ct-grid { display: grid; grid-template-columns: 1fr; gap: 48px; align-items: start; }
.home .ct-cards { display: flex; flex-direction: column; gap: 14px; }
.home .ct-card { display: flex; gap: 16px; align-items: flex-start; padding: 20px; background: #fff; border-left: 3px solid var(--red); box-shadow: 0 2px 12px rgba(0,0,0,.05); transition: box-shadow .25s; }
.home .ct-card:hover { box-shadow: 0 4px 24px rgba(0,0,0,.09); }
.home .ct-ico { font-size: 20px; min-width: 24px; text-align: center; margin-top: 2px; }
.home .ct-bd strong { font-family: var(--en); font-size: 16px; font-weight: 700; letter-spacing: 3px; color: var(--red); display: block; margin-bottom: 5px; }
.home .ct-bd span { font-size: 16px; color: var(--mid); line-height: 1.8; }
.home .ct-form { background: #fff; padding: 32px 24px; box-shadow: 0 4px 36px rgba(0,0,0,.07); border: 2px solid var(--red); }
.home .ct-form .wpcf7 p { margin-bottom: 24px; }
.home .ct-form .wpcf7 label { display: block; font-family: 'Noto Sans JP', sans-serif; font-size: 14px; font-weight: 700; letter-spacing: .05em; color: var(--dark); margin-bottom: 10px; }
.home .ct-form .wpcf7-form-control-wrap { display: block; }
.home .ct-form .wpcf7 input[type="text"],
.home .ct-form .wpcf7 input[type="email"],
.home .ct-form .wpcf7 input[type="tel"],
.home .ct-form .wpcf7 select { width: 100%; border: none; border-bottom: 1.5px solid var(--line); padding: 10px 0; font-family: 'Noto Sans JP', sans-serif; font-size: 15px; color: var(--dark); background: transparent; outline: none; transition: border-color .25s; --webkit-appearance: none; border-radius: 0; }
.home .ct-form .wpcf7 input[type="text"]:focus,
.home .ct-form .wpcf7 input[type="email"]:focus,
.home .ct-form .wpcf7 input[type="tel"]:focus,
.home .ct-form .wpcf7 select:focus { border-color: var(--red); }
.home .ct-form .wpcf7 input::placeholder { color: #ccc; }
.home .ct-form .wpcf7 textarea { width: 100%; border: 1.5px solid var(--line); padding: 12px; font-family: 'Noto Sans JP', sans-serif; font-size: 15px; color: var(--dark); background: transparent; outline: none; transition: border-color .25s; resize: vertical; min-height: 120px; border-radius: 0; }
.home .ct-form .wpcf7 textarea:focus { border-color: var(--red); }
.home .ct-form .wpcf7 input[type="submit"] { width: 100%; padding: 18px; background: var(--red); color: #fff; font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 4px; transition: background .2s; border: none; cursor: pointer; border-radius: 0; }
.home .ct-form .wpcf7 input[type="submit"]:hover { background: var(--red-d); }
.home .ct-form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 18px; font-size: 14px; border-radius: 0; }
.home .ct-form .wpcf7-mail-sent-ok { border: 1.5px solid var(--red) !important; color: var(--dark); background: rgba(200,16,46,.03); }
.home .ct-form .wpcf7-validation-errors,
.home .ct-form .wpcf7-mail-sent-ng,
.home .ct-form .wpcf7-spam-blocked { border: 1.5px solid var(--red) !important; color: var(--red); }
@media (min-width: 992px) {
  .home .ct-grid { grid-template-columns: 1fr 1fr; gap: 80px; } .home .ct-form { padding: 48px 44px; }
  .home .access-panel{
    width:50%;
    order:1;
  }
  .home .access-body{
    width:50%;
    order:2;
  }
  .tpaccess-sec{
    padding:0;
  }
}

.home .modal-wrap { position: fixed; inset: 0; z-index: 9000; background: rgba(0,0,0,.92); display: none; align-items: center; justify-content: center; padding: 24px; }
.home .modal-wrap.on { display: flex; }
.home .modal-box { position: relative; width: min(960px, 92vw); }
.home .modal-close { position: absolute; top: -46px; right: 0; color: #fff; font-size: 30px; font-family: var(--en); font-weight: 200; line-height: 1; opacity: .7; transition: opacity .2s; }
.home .modal-close:hover { opacity: 1; }
.home .modal-box video { width: 100%; display: block; background: #000; }

.home .pp-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid var(--line); flex-shrink: 0; }
.home .pp-head h2 { font-family: var(--serif); font-size: 22px; font-weight: 300; }
.home .pp-close { font-size: 24px; color: var(--sub); line-height: 1; transition: color .2s; }
.home .pp-close:hover { color: var(--dark); }
.home .pp-content { padding: 20px; overflow-y: auto; font-size: 14px; color: var(--mid); line-height: 2.1; }
.home .pp-content h3 { font-family: var(--en); font-size: 14px; font-weight: 700; letter-spacing: 2px; color: var(--dark); margin: 22px 0 8px; }
.home .pp-content h3:first-child { margin-top: 0; }
@media (min-width: 768px) { .home .pp-head { padding: clamp(18px,3vw,28px) clamp(20px,3vw,36px); } .home .pp-content { padding: clamp(20px,3vw,32px) clamp(20px,3vw,36px); } }

/*=====================================================*/
/* COMPANY (.pg-company)                               */
/*=====================================================*/
.pg-company .pg-hero{background-image:url('./img/hero-company.jpg')}
.pg-company .president-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:start}
.pg-company .president-photo{background:url('./img/president.jpg') center top/cover no-repeat;aspect-ratio:3/4;max-width:280px;position:relative}
.pg-company .president-photo::after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:var(--red)}
.pg-company .president-caption{margin-top:20px}
.pg-company .president-caption .pos{font-family:var(--en);font-size: 14px;letter-spacing:3px;color:var(--sub);display:block;margin-bottom:8px;font-weight:700}
.pg-company .president-caption .name{font-family:var(--serif);font-size:22px;font-weight:300;color:var(--dark);letter-spacing:.06em}
.pg-company .president-body p{
  font-size:16px;
  color:var(--mid);
  line-height:2;
  margin-bottom:1.6em;
  text-align:justify;
  letter-spacing:0.2em;
}
.pg-company .president-body p:last-of-type{
  margin-bottom:0;
}
.pg-company .president-sig{margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}
.pg-company .president-sig .pos{font-family:var(--en);font-size: 14px;letter-spacing:3px;color:var(--sub);display:block;margin-bottom:8px;font-weight:700}
.pg-company .president-sig .name{font-family:var(--serif);font-size:26px;font-weight:300;color:var(--dark);letter-spacing:.06em}
.pg-company .values-grid{
  display:grid;grid-template-columns:1fr;
  gap:1px;
  border:1px solid var(--line);
  background:var(--line)
}
.pg-company .value-card{background:#fff;padding:52px 40px;position:relative;overflow:hidden;transition:box-shadow .3s}
.pg-company .value-card:hover{box-shadow:0 8px 40px rgba(0,0,0,.1);z-index:1}
.pg-company .value-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.pg-company .value-card:hover::before{transform:scaleX(1)}
.pg-company .value-num{font-family:var(--corp);font-size:80px;font-weight:300;color:rgba(200,16,46,.08);line-height:1;margin-bottom:20px;letter-spacing:-.02em}
.pg-company .value-en{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:4px;color:var(--red);display:block;margin-bottom:10px}
.pg-company .value-ja{font-family:var(--serif);font-size:24px;font-weight:500;color:var(--dark);margin-bottom:18px;letter-spacing:.05em}
.pg-company .value-desc{font-size:16px;color:var(--mid);line-height:2}
.pg-company .overview-tbl{width:100%;border-collapse:collapse;table-layout:fixed}
.pg-company .overview-tbl tr{display:block;padding:12px 0;border-bottom:1px solid var(--line)}
.pg-company .overview-tbl th{display:block;width:auto;padding:0 0 4px 0;font-family:var(--en);font-size: 14px;letter-spacing:2.5px;font-weight:700;color:var(--red);white-space:normal;border-bottom:none}
.pg-company .overview-tbl td{display:block;padding:0;font-size:15px;color:var(--mid);line-height:1.85}
.pg-company .history-wrap{background:linear-gradient(160deg,rgba(10,5,20,.95) 0%,rgba(5,10,25,.95) 100%),url('./img/hero-business.jpg') center/cover no-repeat;padding:96px 0}
.pg-company .history-list{display:flex;flex-direction:column;gap:0;margin-top:56px;position:relative}
.pg-company .history-list::before{content:'';position:absolute;left:72px;top:0;bottom:0;width:1px;background:rgba(255,255,255,.08)}
.pg-company .history-item{display:grid;grid-template-columns:72px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.pg-company .history-item:last-child{border-bottom:none}
.pg-company .history-year{font-family:var(--corp);font-size:32px;font-weight:300;color:var(--red);line-height:1.2;padding-top:2px}
.pg-company .history-body h4{
  font-family:var(--en);
  font-size: 16px;
  font-weight:700;
  letter-spacing:2px;
  color:rgba(255,255,255,.75);
  margin-bottom:6px
}
.pg-company .history-body p{
  font-size:16px;
  color:rgba(255,255,255,.8);
  line-height:1.9
}
.pg-company .access-grid{display:grid;grid-template-columns:1fr;gap:0;min-height:auto}
.pg-company .access-map-panel{position:relative;min-height:320px;overflow:hidden;background:#e8e8e8}
.pg-company .access-map-panel iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.pg-company .access-info{padding:48px max(20px, 5vw);display:flex;flex-direction:column;justify-content:center;gap:28px;background:#fff}
@media(min-width:576px){
  .pg-company .overview-tbl tr{display:table-row;padding:0;border-bottom:1px solid var(--line)}
  .pg-company .overview-tbl th{display:table-cell;width:170px;padding:16px 24px 16px 0;white-space:nowrap;border-bottom:none}
  .pg-company .overview-tbl td{display:table-cell;padding:16px 0}
}
@media(min-width:992px){
  .pg-company .president-grid{grid-template-columns:320px 1fr;gap:72px}
  .pg-company .president-photo{max-width:none}
  .pg-company .values-grid{grid-template-columns:repeat(3,1fr)}
  .pg-company .access-grid{grid-template-columns:1fr 1fr;min-height:480px}
  .pg-company .access-map-panel{min-height:auto}
  .pg-company .access-info{padding:72px max(20px, 5vw)}
  .pg-company .history-list::before{left:88px}
  .pg-company .history-item{grid-template-columns:88px 1fr;gap:40px}
}

/*=====================================================*/
/* BUSINESS (.pg-business)                             */
/*=====================================================*/
.pg-business .pg-hero{background-image:url('./img/hero-business.jpg')}
.pg-business .rc-types{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
}
.pg-business .rc-type{
  display:block;
  margin-bottom:20px;
  box-shadow:0 0 10px rgba(0,0,0,0.1);
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
  overflow:hidden;
  border-top:3px solid var(--red);
  transition: all 0.3s;
}
.pg-business .rc-type:last-of-type{
  margin-bottom:0;
}
.pg-business .rc-type:last-child{border-bottom:none}
.pg-business .rc-type:hover{
  filter:brightness(1.1);
  box-shadow:0 0 10px rgba(0,0,0,0.3);
}
.pg-business .rc-type-bg{
    width:100%;
    overflow:hidden;
}
.pg-business .rc-type-bg>img{
  width:100%;
  aspect-ratio:5/3;
  object-fit:cover;
  object-position:center center;
  transition:transform .7s var(--ease)
}
.pg-business .rc-type:hover img{
  transform:scale(1.1);
}
.pg-business .rc-type-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.15) 60%,rgba(0,0,0,.05) 100%)}
.pg-business .rc-type-body{
  position:relative;
  z-index:1;
  padding:36px 20px 40px 20px;
  background:#fff;
}
.pg-business .rc-type-en{
  font-family:var(--en);
  font-size:14px;
  font-weight:700;
  letter-spacing:0.1em;
  color:var(--red);
  display:block;
  margin-bottom:12px;
  text-shadow:
    1px 0 5px rgba(255, 255, 255, 0.5),
    -1px 0 5px rgba(255, 255, 255, 0.5),
    0 1px 5px rgba(255, 255, 255, 0.5),
    0 -1px 5px rgba(255, 255, 255, 0.5),
    1px 1px 5px rgba(255, 255, 255, 0.5),
    -1px 1px 5px rgba(255, 255, 255, 0.5),
    1px -1px 5px rgba(255, 255, 255, 0.5),
    -1px -1px 5px rgba(255, 255, 255, 0.5);  
}
.pg-business .rc-type-ja{
  font-family:var(--noto-sans);
  font-size:clamp(20px,3vw,24px);
  font-weight:700;
  color:var(--dark);
  letter-spacing:.06em;
  margin-bottom:14px
}
.pg-business .rc-type-desc{font-size:15px;color:rgba(255,255,255,.9);line-height:1.85;margin-bottom:24px}
.pg-business .rc-type-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--en);
  font-size:16px;
  font-weight:700;
  letter-spacing:2.5px;color:rgba(255,255,255,.9);border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:3px;transition:gap .25s,color .2s,border-color .2s}
.pg-business .rc-type:hover .rc-type-link{gap:16px;color:#fff;border-color:rgba(255,255,255,.7)}
#pharma .domain-kv{background-image:url('./img/biz-pharma-kv.jpg')}
#agro   .domain-kv{background-image:url('./img/biz-agro-kv.jpg')}
#elec   .domain-kv{background-image:url('./img/biz-elec-kv.jpg')}
#pharma .domain-img-panel{background-image:url('./img/biz-pharma-detail.jpg')}
#agro   .domain-img-panel{background-image:url('./img/biz-agro-detail.jpg')}
#elec   .domain-img-panel{background-image:url('./img/biz-elec-detail.jpg')}
.pg-business .domain{margin-bottom:0;border-bottom:1px solid var(--line)}
.pg-business .domain-kv{min-height:clamp(280px,38vw,460px);display:flex;align-items:flex-end;background-size:cover;background-position:center;position:relative;overflow:hidden;scroll-margin-top:calc(var(--hh) + 54px)}
.pg-business .domain-kv::before{content:'';position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,0,0,.68) 0%,rgba(0,0,0,.2) 55%,rgba(0,0,0,.6) 100%)}
.pg-business .domain-kv::after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:var(--red)}
.pg-business .domain-kv-bg-num{position:absolute;right:max(20px, 5vw);bottom:0;font-family:var(--corp);font-size:clamp(120px,18vw,200px);font-weight:300;color:rgba(255,255,255,.04);line-height:1;pointer-events:none}
.pg-business .domain-kv-in{position:relative;z-index:1;padding:0 max(20px, 5vw) 52px;width:100%}
.pg-business .domain-kv-en{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:6px;color:var(--red);display:block;margin-bottom:14px}
.pg-business .domain-kv-ttl{font-family:var(--serif);font-size:clamp(36px,6vw,72px);font-weight:200;color:#fff;letter-spacing:.1em;line-height:1.2;margin-bottom:10px}
.pg-business .domain-kv-sub{font-family:var(--serif);font-style:italic;font-size:clamp(13px,1.8vw,18px);font-weight:300;color:rgba(255,255,255,.5);letter-spacing:.06em}
.pg-business .domain-body.rev .domain-txt{order:0}
.pg-business .domain-txt{padding:48px max(20px, 5vw);display:flex;flex-direction:column;justify-content:center}
.pg-business .domain-img-panel{background-size:cover;background-position:center;min-height:260px;position:relative}
.pg-business .domain-img-panel::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.1)}
.pg-business .domain-img-panel::after{content:'';position:absolute;top:0;bottom:0;right:0;width:4px;background:var(--red)}
.pg-business .domain-txt p{font-size:15px;color:var(--mid);line-height:2.3;margin-bottom:1.4em}
.pg-business .strengths{display:flex;flex-direction:column;gap:14px;margin-top:36px;margin-bottom:36px}
.pg-business .strength{display:flex;gap:16px;align-items:flex-start;padding:20px 22px;background:var(--bg);border-left:3px solid var(--red)}
.pg-business .strength-icon{font-size:22px;flex-shrink:0;margin-top:2px}
.pg-business .strength-body h4{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:2px;color:var(--red);margin-bottom:6px}
.pg-business .strength-body p{font-size: 14px;color:var(--mid);line-height:1.9}
.pg-business .product-sec{background:var(--bg);border-top:1px solid var(--line);padding:64px 0}
.pg-business .products{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.pg-business .product{background:#fff;padding:30px 26px;transition:box-shadow .3s}
.pg-business .product:hover{box-shadow:0 6px 28px rgba(0,0,0,.09);z-index:1}
.pg-business .product-cat{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:3px;color:var(--red);display:block;margin-bottom:10px}
.pg-business .product-name{font-family:var(--serif);font-size:18px;font-weight:300;color:var(--dark);margin-bottom:10px;letter-spacing:.04em}
.pg-business .product-desc{font-size: 14px;color:var(--mid);line-height:1.9}
.pg-business .overview-nums{
  display:grid;
  grid-template-columns:1fr;
  gap:1px;
  background:url('./img/worldmap.jpg') center center / cover no-repeat;
  position:relative;
  overflow:hidden;
  border-radius:10px;
}
.pg-business .overview-nums::before{
  content:'';
  width:100%;
  height:100%;
  background:rgba(255,255,255,.4);
  position:absolute;
  top:0;
  left:0;
  z-index:1;
  filter:blur(1.5px);
}
.pg-business .ov-num{
  background:rgba(255,255,255,.04);
  text-align:center;
  margin-bottom:60px;
  position:relative;
  z-index:5;
}
.pg-business .ov-n{
  max-width:280px;
  font-family:var(--corp);
  font-size:clamp(48px,6vw,72px);
  font-weight:700;
  color:var(--red);
  line-height:1;
  text-shadow:
    1px 0 5px rgba(255, 255, 255, 0.5),
    -1px 0 5px rgba(255, 255, 255, 0.5),
    0 1px 5px rgba(255, 255, 255, 0.5),
    0 -1px 5px rgba(255, 255, 255, 0.5),
    1px 1px 5px rgba(255, 255, 255, 0.5),
    -1px 1px 5px rgba(255, 255, 255, 0.5),
    1px -1px 5px rgba(255, 255, 255, 0.5),
    -1px -1px 5px rgba(255, 255, 255, 0.5);
  margin-left:auto;
  margin-right:auto;
  border-radius:20px;
  overflow:hidden;
}
.pg-business .ov-n img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.pg-business .ov-n sup{font-size:.45em;vertical-align:super}
.pg-business .ov-lbl{
  font-family:var(--en);
  font-size: 16px;
  letter-spacing:3px;
  margin-top:10px;font-weight:700;
}
.pg-business .ov-desc{
  font-size: 16px;
  margin-top:8px;
  line-height:1.8;
}
.pg-business .sv-partner{margin-top:28px}
.br_biz_tb{
  display:none;
}
@media(min-width:576px){ .pg-business .products{grid-template-columns:1fr 1fr} .pg-business .overview-nums{grid-template-columns:1fr 1fr} }
@media(min-width:768px){
  .br_biz_tb{
    display:block;
  }
  .pg-business .ov-n{
    max-width:300px;
  }
  .pg-business .overview-nums{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:992px){ 
  .pg-business .domain-body{grid-template-columns:1fr 1fr}
  .pg-business .domain-body.rev .domain-txt{order:-1}
  .pg-business .domain-txt{padding:72px max(20px, 5vw)}
  .pg-business .domain-img-panel{min-height:400px}
  .pg-business .products{grid-template-columns:repeat(3,1fr)}
  .pg-business .rc-types{
    grid-template-columns:1fr 1fr 1fr;
    gap:10px;
  }
  .pg-business .rc-type{
    border-right:1px solid rgba(255,255,255,.12);
    border-bottom:none;
    margin:0;
  }
  .pg-business .rc-type:last-child{border-right:none}
  .pg-business .ov-num{
    padding-top:20px;
    padding-bottom:80px;
    margin-bottom:0;
  }
  .pg-business .ov-n{
    max-width:380px;
  }
}
@media(min-width:1200px){ 
  .pg-business .ov-n{
    max-width:450px;
  }
  .pg-business .ov-num{
    padding-bottom:100px;
  }
  .pg-business .ov-num:nth-of-type(2) .ov-n{
    margin-right:40px;
  }
  .pg-business .ov-num:nth-of-type(3) .ov-n{
    margin-left:40px;
  }
}
/*=====================================================*/
/* BUSINESS SUB PAGES (.pg-pharma / .pg-agro / .pg-elec) */
/*=====================================================*/
.pg-pharma .pg-hero{background-image:url('./img/biz-pharma-kv.jpg')}
.pg-agro   .pg-hero{background-image:url('./img/biz-agro-kv.jpg')}
.pg-elec   .pg-hero{background-image:url('./img/biz-elec-kv.jpg')}
.pg-pharma .domain-img-panel{background-image:url('./img/biz-pharma-detail.jpg')}
.pg-agro   .domain-img-panel{background-image:url('./img/biz-agro-detail.jpg')}
.pg-elec   .domain-img-panel{background-image:url('./img/biz-elec-detail.jpg')}

.pg-pharma .domain-body,
.pg-agro   .domain-body,
.pg-elec   .domain-body{display:grid;grid-template-columns:1fr;gap:0;background:#fff}
.pg-pharma .domain-txt,
.pg-agro   .domain-txt,
.pg-elec   .domain-txt{padding:48px max(20px,5vw);display:flex;flex-direction:column;justify-content:center}
.pg-pharma .domain-txt p,
.pg-agro   .domain-txt p,
.pg-elec   .domain-txt p{font-size:15px;color:var(--mid);line-height:2.3;margin-bottom:1.4em}
.pg-pharma .domain-img-panel,
.pg-agro   .domain-img-panel,
.pg-elec   .domain-img-panel{background-size:cover;background-position:center;min-height:260px;position:relative}
.pg-pharma .domain-img-panel::before,
.pg-agro   .domain-img-panel::before,
.pg-elec   .domain-img-panel::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.1)}
@media(min-width:992px){
  .pg-pharma .domain-body,
  .pg-agro   .domain-body,
  .pg-elec   .domain-body{grid-template-columns:1fr 1fr}
  .pg-pharma .domain-txt,
  .pg-agro   .domain-txt,
  .pg-elec   .domain-txt{padding:72px max(20px,5vw)}
  .pg-pharma .domain-img-panel,
  .pg-agro   .domain-img-panel,
  .pg-elec   .domain-img-panel{min-height:400px}
}
.pg-pharma .product-sec,
.pg-agro   .product-sec,
.pg-elec   .product-sec{background:var(--bg);border-top:1px solid var(--line);padding:64px 0}
.pg-pharma .products,
.pg-agro   .products,
.pg-elec   .products{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.pg-pharma .product,
.pg-agro   .product,
.pg-elec   .product{background:#fff;padding:30px 26px;transition:box-shadow .3s}
.pg-pharma .product:hover,
.pg-agro   .product:hover,
.pg-elec   .product:hover{box-shadow:0 6px 28px rgba(0,0,0,.09);z-index:1}
.pg-pharma .product-cat,
.pg-agro   .product-cat,
.pg-elec   .product-cat{font-family:var(--en);font-size:14px;font-weight:700;letter-spacing:3px;color:var(--red);display:block;margin-bottom:10px}
.pg-pharma .product-name,
.pg-agro   .product-name,
.pg-elec   .product-name{font-size:18px;font-weight:500;color:var(--dark);margin-bottom:10px}
.pg-pharma .product-desc,
.pg-agro   .product-desc,
.pg-elec   .product-desc{font-size:14px;color:var(--mid);line-height:1.9}
@media(min-width:576px){
  .pg-pharma .products,
  .pg-agro   .products,
  .pg-elec   .products{grid-template-columns:1fr 1fr}
}
@media(min-width:992px){
  .pg-pharma .products,
  .pg-agro   .products,
  .pg-elec   .products{grid-template-columns:repeat(3,1fr)}
}
/*=====================================================*/
/* org pharmaceutical page                             */
/*=====================================================*/
.pham-sec{
  padding-bottom:0;
}
.domain-body{
  width:100%;
}
.domain-txt{
  padding-left:20px;
  padding-right:20px;
  padding-bottom:40px;
}
.domain-txt p{
  line-height:2;
  letter-spacing:0.2em;
  text-align:justify;
  color: var(--mid);
}
.domain-txt .sv-partner{
  margin-top:30px
}
.domain-img-panel{
  width:100%;
  margin-bottom:40px;
}
.domain-img-panel img{
  width:100%;
  aspect-ratio:5/3;
  object-fit:cover;
  object-position:center center;
}
.product-sec{
  padding:80px 0;
  background: var(--bg);
}
.products{
    display: grid;
    grid-template-columns: 1fr;
    gap: 1px;
    background: var(--line);
    border: 1px solid var(--line);
}
.products .product{
  background: #fff;
  padding: 30px 26px;
  transition: box-shadow .3s;
}
.products .product:hover{
  box-shadow:0 6px 28px rgba(0,0,0,.09);
  z-index:1
}
.product-cat{
  font-family: var(--en);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--red);
  display: block;
  margin-bottom: 10px;
}
.product-name{
  font-size: 18px;
    font-weight: 500;
    color: var(--dark);
    margin-bottom: 10px;
}
.product-desc{
  font-size: 16px;
  color: var(--mid);
  line-height: 1.9;
}
.product-sec .viewmore-btn>a{
  width:300px;
  font-size:16px;
}
.h3partner{
  font-size:24px;
  font-weight:700;
  margin-bottom:30px;
}
@media(min-width:768px){
  .domain-txt{
    max-width:740px;
    margin-left:auto;
    margin-right:auto;
  }
  .products{
    grid-template-columns:1fr 1fr;
  }
  .products .product{
    min-height:190px;
  }
}
@media(min-width:992px){
  .domain-body{
    display:flex;
    flex-flow:row wrap;
    margin-bottom:40px;
  }
  .domain-txt{
    max-width:unset;
    width:50%;
    padding-left:calc((100vw - 920px) / 2);
  }
  .domain-img-panel{
    width:50%;
    margin-bottom:0;
  }
  .domain-img-panel img{
    width:100%;
    height:660px;
    aspect-ratio:unset;
  }
  .products{
    grid-template-columns:1fr 1fr 1fr;
  }
  .products .product{
    min-height:190px;
  }
}
@media(min-width:1200px){
  .domain-txt{
    padding-left:calc((100vw - 1100px) / 2);
    width:60%;
  }
  .domain-img-panel{
    width:40%;
  }
  .domain-img-panel img{
    height:520px;
  }
  .products .product{
    min-height:180px;
  }
}
@media(min-width:1400px){
  .domain-txt{
    padding-left:calc((100vw - 1280px) / 2);
  }
  .domain-img-panel img{
    height:500px;
  }
}
/*=====================================================*/
/* RECRUIT (.pg-recruit)                               */
/*=====================================================*/
.pg-recruit .pg-hero{background-image:url('./img/bg-recruit-hero.jpg')}
.pg-recruit .pg-title em{font-style:normal;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:2px}
.pg-recruit .rc-kv-scroll{position:absolute;right:max(20px, 5vw);bottom:48px;z-index:3;display:flex;flex-direction:column;align-items:center;gap:12px}
.pg-recruit .rc-kv-scroll p{writing-mode:vertical-rl;font-family:var(--en);font-size: 14px;letter-spacing:4px;color:rgba(255,255,255,.35);font-weight:600}
.pg-recruit .scroll-line{width:1px;height:64px;background:linear-gradient(to bottom,rgba(255,255,255,.45),transparent);animation:sl 1.8s ease-in-out infinite}
.pg-recruit .rc-type:nth-child(1) .rc-type-bg{background-image:url('./img/recruit-newgrad.jpg')}
.pg-recruit .rc-type:nth-child(2) .rc-type-bg{background-image:url('./img/recruit-career.jpg')}
.pg-recruit .rc-type:nth-child(3) .rc-type-bg{background-image:url('./img/recruit-internship.jpg')}
.pg-recruit .voice-card:nth-child(1) .voice-img{background-image:url('./img/voice-sales.jpg')}
.pg-recruit .voice-card:nth-child(2) .voice-img{background-image:url('./img/voice-technical.jpg')}
.pg-recruit .voice-card:nth-child(3) .voice-img{background-image:url('./img/voice-admin.jpg')}
.pg-recruit .rc-pos-card{display:block;text-decoration:none;background:var(--bg);border-top:3px solid var(--red);padding:40px 36px;transition:box-shadow .3s}
.pg-recruit .rc-pos-card:hover{box-shadow:0 8px 40px rgba(0,0,0,.1)}
.pg-recruit .rc-pos-card-en{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:4px;color:var(--red);display:block;margin-bottom:12px}
.pg-recruit .rc-pos-card-ttl{font-family:var(--serif);font-size:28px;font-weight:300;color:var(--dark);margin-bottom:16px;letter-spacing:.05em}
.pg-recruit .rc-pos-card-desc{font-size:14px;color:var(--mid);line-height:1.9;margin-bottom:24px}
.pg-recruit .rc-pos-card-more{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:2px;color:var(--red);border-bottom:1.5px solid var(--red);padding-bottom:3px}
.pg-recruit .rc-types{display:grid;grid-template-columns:1fr;gap:0;border-top:3px solid var(--red)}
.pg-recruit .rc-type{position:relative;overflow:hidden;min-height:280px;display:flex;flex-direction:column;justify-content:flex-end;border-right:none;border-bottom:1px solid rgba(255,255,255,.12);transition:filter .4s;cursor:pointer}
.pg-recruit .rc-type:last-child{border-bottom:none}
.pg-recruit .rc-type:hover{filter:brightness(1.12)}
.pg-recruit .rc-type-bg{position:absolute;inset:0;background-size:cover;background-position:center top;transition:transform .7s var(--ease)}
.pg-recruit .rc-type:hover .rc-type-bg{transform:scale(1.05)}
.pg-recruit .rc-type-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.15) 60%,rgba(0,0,0,.05) 100%)}
.pg-recruit .rc-type-body{position:relative;z-index:1;padding:36px 36px 40px}
.pg-recruit .rc-type-en{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:5px;color:var(--red);display:block;margin-bottom:12px}
.pg-recruit .rc-type-ja{font-family:var(--serif);font-size:clamp(22px,3vw,32px);font-weight:200;color:#fff;letter-spacing:.06em;margin-bottom:14px}
.pg-recruit .rc-type-desc{font-size: 14px;color:rgba(255,255,255,.6);line-height:1.85;margin-bottom:24px}
.pg-recruit .rc-type-link{display:inline-flex;align-items:center;gap:10px;font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:2.5px;color:rgba(255,255,255,.75);border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:3px;transition:gap .25s,color .2s,border-color .2s}
.pg-recruit .rc-type:hover .rc-type-link{gap:16px;color:#fff;border-color:rgba(255,255,255,.7)}
.pg-recruit .rc-msg-grid{display:grid;grid-template-columns:1fr;gap:0}
.pg-recruit .rc-msg-panel{background:linear-gradient(135deg,rgba(0,0,0,.6),rgba(0,0,0,.2)),url('./img/recruit-internship.jpg') center/cover no-repeat;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;padding:56px max(20px, 5vw);position:relative}
.pg-recruit .rc-msg-panel::after{content:'';position:absolute;top:0;bottom:0;right:0;width:4px;background:var(--red)}
.pg-recruit .rc-msg-quote{font-family:var(--corp);font-size:clamp(28px,4vw,48px);font-weight:300;color:#fff;line-height:1.5;letter-spacing:.07em;margin-bottom:8px}
.pg-recruit .rc-msg-attr{font-family:var(--en);font-size: 14px;letter-spacing:3px;color:rgba(255,255,255,.5);margin-top:16px;font-weight:600}
.pg-recruit .rc-msg-body{padding:64px max(20px, 5vw);display:flex;flex-direction:column;justify-content:center;background:#fff}
.pg-recruit .rc-msg-body p{font-size:15px;color:var(--mid);line-height:2.3;margin-bottom:1.6em}
.pg-recruit .rc-msg-body p:last-child{margin-bottom:0}
.pg-recruit .rc-nums{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.pg-recruit .rc-num-card{background:#fff;padding:48px 32px;text-align:center;transition:box-shadow .3s}
.pg-recruit .rc-num-card:hover{box-shadow:0 8px 36px rgba(0,0,0,.1);z-index:1}
.pg-recruit .rc-num-n{font-family:var(--corp);font-size:clamp(48px,6vw,72px);font-weight:300;color:var(--red);line-height:1;letter-spacing:-.01em}
.pg-recruit .rc-num-n sup,.pg-recruit .rc-num-n span{font-size:.45em;vertical-align:super}
.pg-recruit .rc-num-label{font-family:var(--en);font-size: 14px;letter-spacing:3px;color:var(--sub);margin-top:10px;font-weight:600}
.pg-recruit .rc-num-desc{font-size: 14px;color:var(--mid);line-height:1.85;margin-top:12px}
.pg-recruit .voice-grid{display:grid;grid-template-columns:1fr;gap:28px}
.pg-recruit .voice-card{background:#fff;border:1px solid var(--line);overflow:hidden;transition:box-shadow .3s}
.pg-recruit .voice-card:hover{box-shadow:0 8px 36px rgba(0,0,0,.1)}
.pg-recruit .voice-img{aspect-ratio:3/2;background-size:cover;background-position:center top;position:relative}
.pg-recruit .voice-img-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55) 0%,transparent 55%)}
.pg-recruit .voice-dept{position:absolute;bottom:16px;left:20px;font-family:var(--en);font-size: 14px;letter-spacing:3px;color:rgba(255,255,255,.85);font-weight:700}
.pg-recruit .voice-year{position:absolute;bottom:16px;right:20px;font-family:var(--en);font-size: 14px;letter-spacing:1px;color:rgba(255,255,255,.55)}
.pg-recruit .voice-body{padding:28px 28px 36px}
.pg-recruit .voice-name{font-family:var(--serif);font-size:20px;font-weight:300;color:var(--dark);margin-bottom:4px;letter-spacing:.04em}
.pg-recruit .voice-role{font-family:var(--en);font-size: 14px;letter-spacing:2px;color:var(--sub);margin-bottom:20px;font-weight:600}
.pg-recruit .voice-q::before{content:'"';font-family:var(--corp);font-size:44px;color:var(--red);line-height:.8;display:block;margin-bottom:8px}
.pg-recruit .voice-q{font-size:14px;color:var(--mid);line-height:2;font-style:italic}
.pg-recruit .welfare-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.pg-recruit .welfare-item{background:#fff;padding:36px 32px;display:flex;gap:18px;align-items:flex-start;transition:background .25s}
.pg-recruit .welfare-item:hover{background:#fafafa}
.pg-recruit .welfare-icon{font-size:28px;flex-shrink:0;margin-top:2px}
.pg-recruit .welfare-body h4{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:2px;color:var(--red);margin-bottom:8px}
.pg-recruit .welfare-body p{font-size: 14px;color:var(--mid);line-height:1.9}
.pg-recruit .jobs{display:flex;flex-direction:column;gap:0}
.pg-recruit .job{border-bottom:1px solid var(--line)}
.pg-recruit .job-hd{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0;cursor:pointer;user-select:none}
.pg-recruit .job-hd:hover .job-name{color:var(--red)}
.pg-recruit .job-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.pg-recruit .job-badge{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:2px;border:1px solid var(--red);color:var(--red);padding:4px 12px;flex-shrink:0}
.pg-recruit .job-name{font-family:var(--serif);font-size:clamp(18px,2.8vw,28px);font-weight:300;color:var(--dark);letter-spacing:.05em;transition:color .2s}
.pg-recruit .job-btn{width:36px;height:36px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,border-color .2s}
.pg-recruit .job.open .job-btn{background:var(--red);border-color:var(--red)}
.pg-recruit .job-btn-icon{width:14px;height:14px;position:relative;transition:transform .35s var(--ease)}
.pg-recruit .job.open .job-btn-icon{transform:rotate(45deg)}
.pg-recruit .job-btn-icon::before,.pg-recruit .job-btn-icon::after{content:'';position:absolute;background:#111;transition:background .2s}
.pg-recruit .job.open .job-btn-icon::before,.pg-recruit .job.open .job-btn-icon::after{background:#fff}
.pg-recruit .job-btn-icon::before{width:1.5px;height:100%;left:50%;transform:translateX(-50%)}
.pg-recruit .job-btn-icon::after{height:1.5px;width:100%;top:50%;transform:translateY(-50%)}
.pg-recruit .job-detail{display:none;padding:0 0 40px}
.pg-recruit .job.open .job-detail{display:block}
.pg-recruit .job-tbl{width:100%;border-collapse:collapse}
.pg-recruit .job-tbl tr{border-bottom:1px solid var(--line)}
.pg-recruit .job-tbl th{text-align:left;padding:15px 24px 15px 0;font-family:var(--en);font-size: 14px;letter-spacing:2.5px;font-weight:700;color:var(--red);width:140px;vertical-align:top}
.pg-recruit .job-tbl td{padding:15px 0;font-size:14px;color:var(--mid);line-height:1.85}
.pg-recruit .job-apply{margin-top:32px;display:flex;gap:16px;flex-wrap:wrap}
.pg-recruit .flow-circle{width:56px;height:56px;font-size:20px;transition:border-color .3s}
.pg-recruit .flow-step:first-child .flow-circle{box-shadow:none}
.pg-recruit .flow-label{font-size: 14px;line-height:normal}
.pg-recruit .flow-note{font-size: 14px;margin-top:4px}
.pg-recruit .rc-cta{background:linear-gradient(100deg,rgba(0,5,18,.93) 40%,rgba(0,20,50,.65) 100%),url('./img/bg-office.jpg') center/cover no-repeat;padding:88px max(20px, 5vw);display:flex;flex-direction:column;align-items:center;text-align:center;position:relative}
.pg-recruit .rc-cta::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--red)}
@media(min-width:768px){
  .pg-recruit .rc-types{grid-template-columns:repeat(3,1fr)}
  .pg-recruit .rc-type{min-height:320px;border-right:1px solid rgba(255,255,255,.12);border-bottom:none}
  .pg-recruit .rc-type:last-child{border-right:none}
  .pg-recruit .rc-nums{grid-template-columns:1fr 1fr}
  .pg-recruit .voice-grid{grid-template-columns:1fr 1fr}
  .pg-recruit .welfare-grid{grid-template-columns:1fr 1fr}
  .pg-recruit .flow::before{top:40px;left:40px;right:40px}
  .pg-recruit .flow-step{padding:0}
  .pg-recruit .flow-circle{width:80px;height:80px;font-size:28px;margin-bottom:16px}
}
@media(min-width:992px){
  .pg-recruit .rc-type{min-height:380px}
  .pg-recruit .rc-msg-grid{grid-template-columns:1fr 1fr;min-height:500px}
  .pg-recruit .rc-msg-panel{min-height:auto}
  .pg-recruit .rc-nums{grid-template-columns:repeat(4,1fr)}
  .pg-recruit .voice-grid{grid-template-columns:repeat(3,1fr)}
  .pg-recruit .welfare-grid{grid-template-columns:repeat(3,1fr)}
}

/*=====================================================*/
/* RECRUIT NEW (.pg-recruit-new)                       */
/*=====================================================*/
.pg-recruit-new .pg-hero{background-image:url('./img/recruit-newgrad.jpg')}
.pg-recruit-new .schedule-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.pg-recruit-new .schedule-card{background:#fff;padding:36px 28px;position:relative;overflow:hidden;transition:box-shadow .3s}
.pg-recruit-new .schedule-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.1);z-index:1}
.pg-recruit-new .schedule-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.pg-recruit-new .schedule-card:hover::before{transform:scaleX(1)}
.pg-recruit-new .sc-month{font-family:var(--corp);font-size:48px;font-weight:300;color:rgba(200,16,46,.12);line-height:1;margin-bottom:16px}
.pg-recruit-new .sc-label{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:3px;color:var(--red);display:block;margin-bottom:8px}
.pg-recruit-new .sc-title{font-size:15px;font-weight:700;color:var(--dark);margin-bottom:8px}
.pg-recruit-new .sc-desc{font-size: 14px;color:var(--mid);line-height:1.9}
.pg-recruit-new .work-grid{display:grid;grid-template-columns:1fr;gap:0;overflow:hidden}
.pg-recruit-new .work-panel{background:linear-gradient(135deg,rgba(0,0,0,.62),rgba(0,0,0,.22)),url('./img/recruit-new-work.jpg') center/cover no-repeat;padding:64px max(20px, 5vw);display:flex;flex-direction:column;justify-content:flex-end;position:relative;min-height:300px}
.pg-recruit-new .work-panel::after{content:'';position:absolute;top:0;bottom:0;right:0;width:4px;background:var(--red)}
.pg-recruit-new .work-panel-quote{font-family:var(--serif);font-size:clamp(20px,3vw,32px);font-weight:200;color:#fff;line-height:1.65;letter-spacing:.07em}
.pg-recruit-new .work-body{padding:48px max(20px, 5vw);display:flex;flex-direction:column;justify-content:center;background:#fff;overflow:hidden}
.pg-recruit-new .work-body p{font-size:15px;color:var(--mid);line-height:2.3;margin-bottom:1.5em}
.pg-recruit-new .persona-grid{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--line);background:var(--line)}
.pg-recruit-new .persona-card{background:#fff;padding:44px 36px;transition:box-shadow .3s;position:relative;overflow:hidden}
.pg-recruit-new .persona-card:hover{box-shadow:0 8px 36px rgba(0,0,0,.1);z-index:1}
.pg-recruit-new .persona-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.pg-recruit-new .persona-card:hover::before{transform:scaleX(1)}
.pg-recruit-new .persona-icon{font-size:40px;margin-bottom:24px}
.pg-recruit-new .persona-title{font-family:var(--serif);font-size:20px;font-weight:300;color:var(--dark);margin-bottom:14px;letter-spacing:.04em}
.pg-recruit-new .persona-desc{font-size:14px;color:var(--mid);line-height:2.1}
.pg-recruit-new .req-tbl thead{display:none}
.pg-recruit-new .flow-circle{transition:border-color .3s,box-shadow .3s}
@media(min-width:768px){ .pg-recruit-new .schedule-grid{grid-template-columns:1fr 1fr} .pg-recruit-new .persona-grid{grid-template-columns:1fr 1fr} }
@media(min-width:992px){
  .pg-recruit-new .schedule-grid{grid-template-columns:repeat(4,1fr)}
  .pg-recruit-new .work-grid{grid-template-columns:1fr 1fr;min-height:480px}
  .pg-recruit-new .work-panel{min-height:auto}
  .pg-recruit-new .persona-grid{grid-template-columns:repeat(3,1fr)}
  .pg-recruit-new .req-tbl tr{display:table-row;padding:0}
  .pg-recruit-new .req-tbl th{display:table-cell;width:160px;padding:16px 24px 16px 0;white-space:nowrap}
  .pg-recruit-new .req-tbl td{display:table-cell;padding:16px 0}
}

/*=====================================================*/
/* RECRUIT CAREER (.pg-recruit-career)                 */
/*=====================================================*/
.pg-recruit-career .pg-hero{background-image:url('./img/recruit-career.jpg');background-position:center 30%}
.pg-recruit-career .req-tag{display:inline-block;font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:1.5px;padding:3px 10px;border-radius:2px;margin-right:4px;margin-bottom:4px}
.pg-recruit-career .req-tag.must{background:rgba(200,16,46,.1);color:var(--red);border:1px solid rgba(200,16,46,.3)}
.pg-recruit-career .req-tag.pref{background:var(--bg);color:var(--mid);border:1px solid var(--line)}
.pg-recruit-career .culture-grid{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--line);background:var(--line)}
.pg-recruit-career .culture-card{background:#fff;padding:40px 32px;transition:box-shadow .3s;overflow:hidden;position:relative}
.pg-recruit-career .culture-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.1);z-index:1}
.pg-recruit-career .culture-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.pg-recruit-career .culture-card:hover::before{transform:scaleX(1)}
.pg-recruit-career .culture-icon{font-size:36px;margin-bottom:20px}
.pg-recruit-career .culture-title{font-family:var(--serif);font-size:19px;font-weight:300;color:var(--dark);margin-bottom:12px;letter-spacing:.04em}
.pg-recruit-career .culture-desc{font-size:14px;color:var(--mid);line-height:2}
@media(min-width:768px){ .pg-recruit-career .culture-grid{grid-template-columns:1fr 1fr} }
@media(min-width:992px){
  .pg-recruit-career .culture-grid{grid-template-columns:repeat(3,1fr)}
  .pg-recruit-career .req-tbl tr{display:table-row;padding:0}
  .pg-recruit-career .req-tbl th{display:table-cell;width:160px;padding:16px 24px 16px 0;white-space:nowrap}
  .pg-recruit-career .req-tbl td{display:table-cell;padding:16px 0}
}

/*=====================================================*/
/* CONTACT (.pg-contact)                               */
/*=====================================================*/
.pg-contact .pg-hero{background-image:url('./img/hero-contact.jpg')}
.pg-contact .ct-layout{display:grid;grid-template-columns:1fr;gap:48px;align-items:start}
.pg-contact .ct-cards{display:flex;flex-direction:column;gap:14px;}
.pg-contact .ct-card{display:flex;gap:18px;align-items:flex-start;padding:22px 24px;background:var(--bg);border-left:3px solid var(--red);transition:box-shadow .25s}
.pg-contact .ct-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.07)}
.pg-contact .ct-ico{font-size:22px;min-width:28px;text-align:center;margin-top:2px}
.pg-contact .ct-bd strong{font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:3px;color:var(--red);display:block;margin-bottom:6px}
.pg-contact .ct-bd span{font-size:14px;color:var(--mid);line-height:1.85}
.pg-contact .ct-map{aspect-ratio:4/3;background:rgba(0,15,35,.35),url('./img/bg-access-map.jpg') center/cover no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;position:relative}
.pg-contact .ct-map-lbl{font-family:var(--en);font-size: 14px;letter-spacing:4px;color:rgba(255,255,255,.6);font-weight:700}
.pg-contact .ct-map-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:2px;color:#fff;border-bottom:1.5px solid rgba(255,255,255,.6);padding-bottom:3px;transition:gap .2s}
.pg-contact .ct-map-link:hover{gap:14px}
.pg-contact .ct-form-card{background:#fff;padding:36px 24px;box-shadow:0 4px 40px rgba(0,0,0,.07);border:2px solid var(--red)}
.pg-contact .ct-form-card .wpcf7 p{margin-bottom:26px}
.pg-contact .ct-form-card .wpcf7 label{display:block;font-family:'Noto Sans JP',sans-serif;font-size: 14px;font-weight:700;letter-spacing:.05em;color:var(--dark);margin-bottom:10px}
.pg-contact .ct-form-card .wpcf7-form-control-wrap{display:block}
.pg-contact .ct-form-card .wpcf7 input[type="text"],
.pg-contact .ct-form-card .wpcf7 input[type="email"],
.pg-contact .ct-form-card .wpcf7 input[type="tel"],
.pg-contact .ct-form-card .wpcf7 select{width:100%;border:none;border-bottom:1.5px solid var(--line);padding:11px 0;font-family:'Noto Sans JP',sans-serif;font-size:15px;color:var(--dark);background:transparent;outline:none;transition:border-color .25s;--webkit-appearance:none;border-radius:0}
.pg-contact .ct-form-card .wpcf7 input[type="text"]:focus,
.pg-contact .ct-form-card .wpcf7 input[type="email"]:focus,
.pg-contact .ct-form-card .wpcf7 input[type="tel"]:focus,
.pg-contact .ct-form-card .wpcf7 select:focus{border-color:var(--red)}
.pg-contact .ct-form-card .wpcf7 input::placeholder{color:#ccc}
.pg-contact .ct-form-card .wpcf7 select option{background:#fff}
.pg-contact .ct-form-card .wpcf7 textarea{width:100%;border:1.5px solid var(--line);padding:14px;font-family:'Noto Sans JP',sans-serif;font-size:15px;color:var(--dark);background:transparent;outline:none;transition:border-color .25s;resize:vertical;min-height:130px;border-radius:0}
.pg-contact .ct-form-card .wpcf7 textarea:focus{border-color:var(--red)}
.pg-contact .ct-form-card .wpcf7 textarea::placeholder{color:#ccc}
.pg-contact .ct-form-card .wpcf7-not-valid-tip{display:block;font-size: 14px;color:var(--red);margin-top:6px;font-family:var(--en);letter-spacing:1px}
.pg-contact .ct-form-card .wpcf7-form-control.wpcf7-not-valid{border-color:var(--red) !important}
.pg-contact .ct-form-card .pp-accept{font-size: 14px;color:var(--mid);text-align:center;margin-bottom:8px}
.pg-contact .ct-form-card .pp-accept a{color:var(--red);text-decoration:underline}
.pg-contact .ct-form-card .wpcf7-acceptance{display:flex;justify-content:center;margin-bottom:20px}
.pg-contact .ct-form-card .wpcf7-acceptance .wpcf7-list-item{display:flex;align-items:center;gap:8px;font-size: 14px;color:var(--dark)}
.pg-contact .ct-form-card .wpcf7-acceptance input[type="checkbox"]{width:16px;height:16px;accent-color:var(--red);cursor:pointer;flex-shrink:0}
.pg-contact .ct-form-card .wpcf7 input[type="submit"]{width:100%;padding:18px;background:var(--red);color:#fff;font-family:var(--en);font-size: 14px;font-weight:700;letter-spacing:4px;transition:background .2s,opacity .2s;border:none;cursor:pointer;border-radius:0}
.pg-contact .ct-form-card .wpcf7 input[type="submit"]:hover:not(:disabled){background:var(--red-d)}
.pg-contact .ct-form-card .wpcf7 input[type="submit"]:disabled{background:var(--mid);opacity:.5;cursor:not-allowed}
.pg-contact .ct-form-card .wpcf7-response-output{margin:16px 0 0;padding:12px 18px;font-size: 14px;border-radius:0}
.pg-contact .ct-form-card .wpcf7-mail-sent-ok{border:1.5px solid var(--red) !important;color:var(--dark);background:rgba(200,16,46,.03)}
.pg-contact .ct-form-card .wpcf7-validation-errors,
.pg-contact .ct-form-card .wpcf7-mail-sent-ng,
.pg-contact .ct-form-card .wpcf7-spam-blocked{border:1.5px solid var(--red) !important;color:var(--red)}
.pg-contact .faq{display:flex;flex-direction:column;gap:0}
.pg-contact .faq-item{border-bottom:1px solid var(--line)}
.pg-contact .faq-q{display:flex;align-items:flex-start;gap:16px;padding:24px 0;cursor:pointer;user-select:none}
.pg-contact .faq-q:hover .faq-q-txt{color:var(--red)}
.pg-contact .faq-q-lbl{font-family:var(--corp);font-size:26px;font-weight:300;color:var(--red);flex-shrink:0;line-height:1.2;margin-top:1px}
.pg-contact .faq-q-txt{font-size:16px;color:var(--dark);line-height:1.65;flex:1;transition:color .2s;font-weight:500}
.pg-contact .faq-q-ico{width:32px;height:32px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;transition:background .2s,border-color .2s}
.pg-contact .faq-item.open .faq-q-ico{background:var(--red);border-color:var(--red)}
.pg-contact .faq-q-ico::before,.pg-contact .faq-q-ico::after{content:'';position:absolute;background:#555;transition:transform .3s,background .2s}
.pg-contact .faq-item.open .faq-q-ico::before,.pg-contact .faq-item.open .faq-q-ico::after{background:#fff}
.pg-contact .faq-q-ico{position:relative}
.pg-contact .faq-q-ico::before{width:1.5px;height:14px;left:50%;transform:translateX(-50%)}
.pg-contact .faq-q-ico::after{height:1.5px;width:14px;top:50%;transform:translateY(-50%)}
.pg-contact .faq-item.open .faq-q-ico::before{transform:translateX(-50%) rotate(90deg)}
.pg-contact .faq-a{display:none;padding:0 0 28px 42px;font-size:15px;color:var(--mid);line-height:2.1}
.pg-contact .faq-item.open .faq-a{display:block}
@media(min-width:992px){
   .pg-contact .ct-layout{grid-template-columns:1fr 1fr;gap:80px}
   .pg-contact .ct-form-card{padding:40px 30px}
}

/*=====================================================*/
/* PRIVACY POLICY (.pg-privacy-policy)                 */
/*=====================================================*/
.pg-privacy-policy .pg-hero{background-image:url('./img/hero-privacy.jpg')}
.pg-privacy-policy .pp-sec{background:#fff;border-top:3px solid var(--red)}
.pg-privacy-policy .pp-body{margin:0 auto}
.pg-privacy-policy .pp-lead{font-size:16px;line-height:2.2;color:var(--mid);border-left:3px solid var(--red);padding:20px 24px;background:var(--bg);margin-bottom:56px}
.pg-privacy-policy .pp-block{border-bottom:1px solid var(--line);padding:40px 0}
.pg-privacy-policy .pp-block:last-child{border-bottom:none}
.pg-privacy-policy .pp-h2{display:flex;align-items:baseline;gap:20px;margin-bottom:20px}
.pg-privacy-policy .pp-num{font-family:var(--corp);font-size:clamp(36px,5vw,52px);font-weight:300;font-style:italic;color:var(--red);line-height:1;flex-shrink:0;letter-spacing:-.02em}
.pg-privacy-policy .pp-ttl{font-family:var(--serif);font-size:clamp(16px,2vw,24px);font-weight:400;color:var(--dark);letter-spacing:.06em;padding-left:20px;border-left:1px solid var(--line);line-height:1.5}
.pg-privacy-policy .pp-block p{font-size:16px;line-height:2;color:var(--mid);letter-spacing: 0.2em;}
.pg-privacy-policy .pp-list{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-direction:column;gap:10px}
.pg-privacy-policy .pp-list li{font-size:14px;color:var(--mid);line-height:1.8;padding-left:20px;position:relative}
.pg-privacy-policy .pp-list li::before{content:'—';position:absolute;left:0;color:var(--red);font-size: 14px}
.pg-privacy-policy .pp-contact a{color:var(--red);text-decoration:underline}

/*==========================================================*/
/* mobile header                                            */
/*==========================================================*/
.site-header-wrap{
  display:block;
  width:100%;
  position:fixed;
  top:0;
  left:0;
  height: var(--ptnB-sp-header-height);
  z-index: 1950;
  background: var(--header-bk-color);
}
.scrolled .site-header-wrap{
  background: rgba(255,255,255,0.8);
  backdrop-filter: blur(2px);
}
.ptnB .site-header-inner{
  justify-content:flex-start;
}
.site-header-logo{
  height:100%;
}
.grid-ctl{
  display:grid;
  width:100%;
  height:100%;
  grid-template-columns: 50px 1fr;
  grid-template-rows: 30px 30px;
}
.grid-ctl .pict{
  display:block;
  width:100%;
  height:100%;
  grid-column:1/2;
  grid-row:1/3;
  padding-right:5px;
}
.grid-ctl .pict>img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
}
.site_ttl_en{
  width:100%;
  height:100%;
  grid-column: 2/3;
  grid-row: 1/2;
  font-size:13px;
  color:#555;
  display:flex;
  align-items:flex-end;
  padding-bottom:2px;
  letter-spacing:0.1em;
}
.site_ttl_jp{
  width:100%;
  height:100%;
  grid-column: 2/3;
  grid-row: 2/3;
  font-size:13px;
  color:#555;
  font-weight:400;
  padding-top:2px;
  letter-spacing:0;
}
/*==========================================================*/
/* mobile menu                                              */
/*==========================================================*/
.no-scroll{
  overflow:hidden;
  width:100vw;
  height:100vh;
}
.mobile-navi-btn.right{
    width:59px;
    height:59px;
    top:0;
    right:0;
    background:transparent;
}
.scrolled .mobile-navi-btn.right{
    box-shadow:none;
}
.mobile-navi-btn span{
    position: absolute;
    background:var(--mb-bar-color);
    height:2px;
    width:30px;
    left:50%;
    -webkit-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
    transition: all .3s;
}
.mobile-navi-btn span:nth-child(1){
    top:34%;
}
.mobile-navi-btn span:nth-child(2){
    top:50%;
}
.mobile-navi-btn span:nth-child(3){
    top:66%;
}
.mobile-navi-btn.mobile-navi-open{
    box-shadow:none;
}
/* mobile btn */
.mobile-navi-btn.mobile-navi-open span:nth-child(1){
    transform-origin: top center;
    top:50%;
    left:15px;
    transform: rotate(135deg) translate(0, -50%);
}
.mobile-navi-btn.mobile-navi-open span:nth-child(2){
    opacity: 0;
}
.mobile-navi-btn.mobile-navi-open span:nth-child(3){
    transform-origin: top center;
    left:15px;
    top:50%;
    transform: rotate(45deg) translate(0, -50%);
}
/* mobile menu */
.site-mobile-nav{
  height:100%;
  overflow-y:auto;
}
.mobile-menu-slide{
  left:auto;
  right:-100%;
  transition: right 0.3s ease-in;
}
.mobile-menu-slide.mobile-menu-open{
  left:auto;
  right:0;
}
.site-mobile-menu>li>a, .site-mobile-menu>li>button.menu-trigger{
  letter-spacing:0.2em;
  font-family:var(--noto-sans);
}
.site-mobile-menu ul.sub-menu>li>a{
  letter-spacing:0.2em;
  font-family:var(--noto-sans);
}
.hd-cta {
  height: 34px;
  border-radius: 17px;
  background: var(--red);
  color: #fff;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 2px;
  font-size: 12px;
  transition: background .2s;
  margin-left: 8px;
}
.hd-cta::after { display: none; }
.hd-cta:hover { background: var(--red-d); }
.hd-cta .menu-link{
  width:100%;
  height:50px;
  border-radius:0;
  display:flex;
  justify-content:center;
  align-items:center;
  color:#fff;
  padding:0;
  margin:0;
}
.site-mobile-menu>li.md-cta{
  margin:0;
  padding:0;
  border:0;
  margin-top:20px;
}
.site-mobile-menu>li.md-cta .menu-link{
  padding:0;
  width:100%;
  height:50px;
  display:flex;
  justify-content:center;
  align-items:center;
  background:var(--site-red);
  color:#fff;
  font-weight:400;
}
/*==========================================================*/
/* footer                                                   */
/*==========================================================*/
.footerwidget{
  display:block;  
}
.site-footer{
  padding-bottom:100px;
}
.ft-sec{
  width:100%;
}
.ft-wrap{
  width:100%;
}
.ft-logo-wrap{
  width:100%;
}
.ft-logo-wrap .grid-ctl{
  margin-bottom:20px;
  transition:all 0.5s;
  height:auto;
}
.ft-logo-wrap .grid-ctl:hover{
  filter:brightness(1.1);
}
.ft-logo-wrap .site_ttl_en, .ft-logo-wrap .site_ttl_jp{
  color:#ddd;
}
.ft-logo-txt{
  margin-bottom:40px;
}
.ft-logo-txt p{
  color:#ddd;
  font-size:14px;
}
.nav-ft-menu{
  width:100%;
}
.ul-ft-menu{
  margin-bottom:40px;
  list-style:none;
}
.footerwidget ul>li a{
  color:var(--footer-font-color);
  font-weight:400;
  position:relative;
}
.footerwidget ul>li a::before{
    content:'';
    width:100%;
    height:1px;
    background:var(--footer-font-color);
    transform:scale(0, 1);
    transform-origin:right center;
    transition:transform 0.5s;
    position:absolute;
    bottom:0;
    left:0;
}
.footerwidget ul>li a:hover::before{
    transform:scale(1, 1);
    transform-origin:left center;
}
.copyright{
  font-weight:400;
}
@media(min-width:768px){
  .ft-wrap{
    width:100%;
    display:flex;
    flex-flow:row wrap;
  }
  .ft-logo-wrap{
    width:50%;
  }
  .nav-ft-menu{
    width:50%;
    display:flex;
    flex-flow:row wrap;
  }
  .ul-ft-menu{
    width:50%;
    margin-bottom:20px;
  }
}
@media(min-width:992px){
  .ft-wrap{
    width:100%;
    display:flex;
    flex-flow:row wrap;
    justify-content:space-between;
  }
  .ft-logo-wrap{
    width:38%;
  }
  .nav-ft-menu{
    width:60%;
    display:flex;
    flex-flow:row wrap;
    justify-content:space-between;
  }
  .ul-ft-menu{
    width:30%;
    margin:0;
    padding:0; 
  }
  .ft-logo-wrap .site_ttl_en, .ft-logo-wrap .site_ttl_jp{
    font-size:16px;
  }
}
/*==========================================================*/
/* pc menu                                                  */
/*==========================================================*/
.site-header-logo{
  line-height:1.2;
}
@media(min-width:992px){
  .site-header-wrap{
      height: var(--ptnB-pc-header-height);
  }
  .ptnB .container.site-header-container{
    grid-template-columns:290px 1fr 1fr;
  }
  .site-header-menu>li>a{
    font-size:15px;
    letter-spacing:0.1em;
    font-weight:400;
    height:var(--ptnB-pc-header-height);
    display:flex;
    align-items:center;
    padding-left:8px;
    padding-right:8px;
  }
  .site-header-menu>li>a:hover{
    opacity:0.6;
  }
  .site-header-menu>li>a:before{
    content:none;
  }
  .site-header-menu ul.sub-menu>li a:hover {
    background:var(--site-red);
  }
  .site-header-menu>li.pc-cta{
    padding-left:20px;
  }
  .site-header-menu>li.pc-cta a{
    width:160px;
    height:45px;
    display:flex;
    justify-content:center;
    align-items:center;
    background:var(--site-red);
    color:#fff;
    border-radius:23px;
    position:relative;
    padding-left:20px;
  }
  .site-header-menu>li.pc-cta a:after{
    content:'\f0e0';
    display:inline-block;
    font-size:18px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-family: "Font Awesome 7 Free";
    font-feature-settings: normal;
    font-style: normal;
    font-synthesis: none;
    font-variant: normal;
    font-weight: 900;
    line-height: 1;
    text-align: center;
    text-rendering: auto;
    position:absolute;
    top:50%;
    left:1em;
    translate:0 -50%;
  }
}
/*==========================================================*/
/* hero slider                                              */
/*==========================================================*/
.intro-layers{
    width:100vw;
    height:100vh;
    position:fixed;
    top:0;
    left:0;
    z-index:3000;
}
.intro-layers .wrap{
    width:100%;
    height:100%;
    background:var(--bk-body-color);
    display:flex;
    justify-content:center;
    align-items:center;
}
.logo_title{
    width:340px;
    opacity:0;
}
.dl-logo{
    height:100%;
    margin:0;
    display:flex;
}
.dl-logo>dt{
    width:60px;
    height:100%;
    margin:0;
}
.dl-logo>dd{
    display:flex;
    align-items:center;
    width:calc(100% - 60px);
    height:100%;
    margin:0;
}
.dl-logo>dd .desc{
    color:#111;
    line-height:1;
}
.dl-logo>dd .desc strong{
    display:block;
    font-size:30px;
    margin-bottom:4px;
}
.dl-logo>dd .desc small{
    display:block;
    font-size:10px;
    letter-spacing: 0;
}
.intro-layers .dl-logo{
    align-items:center;
}
.intro-layers .dl-logo>dd{
    padding-left:10px;
}
.intro-layers .dl-logo>dd .desc strong{
    font-weight:500;
    font-size:16px;
    color: var(--logo-gradient2);
    letter-spacing:0.2em;
}
.intro-layers .dl-logo>dd .desc small{
    font-size:14px;
    color: var(--logo-gradient2);
}
@media(min-width:768px){
    .logo_title{
        width:auto;
        opacity:0;
    }
    .dl-logo>dt{
      width:75px;
    }
    .dl-logo>dd{
      width:calc(100% - 60px);
    }
    .intro-layers .dl-logo>dd .desc strong{
        font-size:20px;
    }
    .intro-layers .dl-logo>dd .desc small{
        font-size:20px;
    }
    .intro-layers .dl-logo>dd{
        width:fit-content;
    }
}
/*==========================================================*/
/* top slide      											*/
/*==========================================================*/
.tpslide-sec{
    position:relative;
    padding:0;
}
.tpslide-sec.page-section{
    padding:0;
}
.slider-wrapper{
    width:100%;
    position:relative;
    height:calc(100vh - var(--ptnB-sp-header-height));
}
.slider-wrapper:before{
    content:'';
    width:100%;
    height:100%;
    background:rgba(0,0,0,0.2);
    position:absolute;
    top:0;
    left:0;
    z-index:1;
}
.slider-wrapper .slide{
    width:100%;
    position:absolute;
    top:0;
    left:0;
    opacity:0;
    overflow:hidden;
}
.slider-wrapper .slide img{
    width:100%;
    height:calc(100vh - var(--ptnB-sp-header-height));
    object-fit:cover;
}
.catchcopy{
    width:100%;
    height:100%;
    position:absolute;
    top:20px;
    left:0;
    padding-left:20px;
    display:flex;
    align-items:center;
    z-index:2;
    opacity:0;
}
.catchcopy h2{
    color:#fff;
    font-size:34px;
    font-weight:500;
    letter-spacing:0;
    line-height:1.4;
    margin-bottom:20px;
    font-family:var(--yuji-mai);
    letter-spacing:0.1em;
}
.catchcopy h2 span{
  margin-right:0.5em;
  display:inline-block;
  will-change:transform, opacity;
}
.catchcopy p{
    color:rgba(255, 255, 255, .75);;
    font-size:20px;
    font-weight:500;
    letter-spacing:0.2em;
}
.catchcopy p.catch_company{
  font-size:14px;
  padding-left:50px;
  position:relative;
  letter-spacing: 0.2em;
  margin-bottom:20px;
}
.catchcopy p.catch_company:before{
  content:'';
  width:30px;
  height:2px;
  background:var(--site-red);
  opacity:0.9;
  position:absolute;
  left:0;
  top:50%;
  translate:0 -50%;
}
/* scroll arrow */
.scroll-arrow {
    display: flex;
    writing-mode: vertical-rl;
    position: absolute;
    left: 50%;
    bottom: 1%;
    transform:translateX(-50%);
    z-index:15;
}
.scroll-arrow a{
    letter-spacing: 5px;
    font-size: 12px;
    position: relative;
    padding-top: 10px;
    text-decoration: none;
    transition:all 0.3s;
    color:#fff;
}
.scroll-arrow a:hover{
    color:#fff;
    opacity:0.8;
}
.scroll-arrow a:before{
    content: '';
    width: 1px;
    height: 5px;
    background: #fff;
    position: absolute;
    top: 0;
    left: 0;
    animation: extend-anime 2s ease-out infinite;
    z-index: 2;
}
.scroll-arrow a:after{
    content: '';
    width: 1px;
    height: 10px;
    background: #fff;
    transform: rotate(-45deg);
    position: absolute;
    top: -3px;
    left: -4px;
    animation: move-anime 2s ease-out infinite;
}
@keyframes extend-anime{
    0% {
        height:5px;
    }
    100%{
        height:100%;
    }
}
@keyframes move-anime{
    0% {
        top:-3px;
    }
    100%{
        top:calc(100% - 10px);
    }
}
.br_tpnews{
  display:none;
}
@media(min-width:768px){
    .catchcopy{
        padding-left:calc((100vw - 700px) / 2);
    }
    .catchcopy p.catch_company{
      font-size:16px;
    }
    .catchcopy h2{
        font-size:70px;
        letter-spacing: 0;
    }
    .catchcopy p{
        font-size:32px;
    }
    .scroll-arrow a{
        letter-spacing: 10px;
        font-size:14px;
    }
    .br_tpcompany{
      display:none;
    }
    .home .news-aside .lead{
      line-height:1.4;
    }
    .home .ttl{
      font-size:32px;
    }
}
@media(min-width:992px){
    .catchcopy{
        padding-left:calc((100vw - 940px) / 2);
    }
    .catchcopy p.catch_company{
      font-size:20px;
    }
    .catchcopy h2{
        font-size:80px;
    }
    .catchcopy p{
        font-size:38px;
    }
    .slider-wrapper{
        height:100vh;
        max-height:800px;
    }
    .slider-wrapper .slide img{
        height:100vh;
        max-height:800px;
    }
    .br_catchcopy{
      display:none;
    }
    .br_tpcompany{
      display:block;
    }
    .br_tpnews{
      display:none;
    }
}
@media(min-width:1200px){
    .catchcopy{
        padding-left:calc((100vw - 1120px) / 2);
    }
    .catchcopy h2{
        letter-spacing:0.1em;
    }
    .catchcopy p{
        letter-spacing:0.1em;
    }
}
@media(min-width:1400px){
    .catchcopy{
        padding-left:calc((100vw - 1300px) / 2);
    }
}
/*==========================================================*/
/* top page                                                 */
/*==========================================================*/
.hero-sec{
  padding:0;
}
.tpcompany-sec{
  padding:0;
}
.biz-sec{
  padding:0;
}
.tpnews-sec{
  padding:0;
}
.tpaccess-sec{
  padding-top:0;
}
.tprecruit-sec{
  padding:0;
}
.ct-bd{
  font-size:16px;
}
.telnolink{
  font-size:16px;
  position:relative;
  font-weight:700;
}
.telnolink::before{
    content:'';
    width:100%;
    height:1px;
    background:#111;
    transform:scale(0, 1);
    transform-origin:right center;
    transition:transform 0.5s;
    position:absolute;
    bottom:0;
    left:0;
}
.telnolink:hover::before{
    transform:scale(1, 1);
    transform-origin:left center;
}
.faxnolink{
  pointer-events:none;
  font-size:16px;
}
.viewmore-btn{
  margin-top:40px;
}
.viewmore-btn>a{
  width:280px;
  height:50px;
  display:flex;
  justify-content:center;
  align-items:center;
  border-radius:25px;
  background:var(--site-red);
  color:#fff;
  transition:all 0.5s;
  margin-left:auto;
  margin-right:auto;
  position:relative;
}
.viewmore-btn>a i{
  position:absolute;
  top:50%;
  right:30px;
  translate:0 -50%;
}
.viewmore-btn>a:hover{
  color:#fff;
  filter:brightness(1.1);
}
@media(min-width:768px){
  .telnolink{
    pointer-events:none;
    font-weight:400;
  }
  .br_tpbiz{
    display:none;
  }
}
@media(min-width:992px){
  .br_tpbiz{
    display:block;
  }
}
@media(min-width:1200px){
  .br_tpbiz{
    display:none;
  }
}
/*==========================================================*/
/* page header                                              */
/*==========================================================*/
.page-header-ttl{
  padding-left:20px;
  padding-bottom:0.8em;
}
.page-header-ttl:before{
  content:'';
  width:36px;
  height:2px;
  position:absolute;
  bottom:0;
  left:20px;
  background:var(--site-red);
}
.page-header-ttl .en{
  color:var(--site-red);
  font-family:var(--en);
  letter-spacing: 5px;
  margin-bottom:0.5em;
  margin-left:0;
  font-size:14px;
  font-weight:700;
}
.page-header-ttl .jp{
  margin-left:0;
  font-size:24px;
  font-weight:700;
}
@media(min-width:768px){
  .page-header-ttl{
    padding-left:calc(((100% - 720px) / 2 + 20px ) );
  }
  .page-header-ttl:before{
    left:calc(((100% - 720px) / 2 + 20px ) );
  }
  .page-header-ttl .en{
    font-size:16px;
  }
  .page-header-ttl .jp{
    font-size:32px;
  }
}
@media(min-width:992px){
  .page-header-ttl{
    padding-left:calc(((100% - 960px) / 2 + 20px ) );
  }
  .page-header-ttl:before{
    left:calc(((100% - 960px) / 2 + 20px ) );
  }
}
@media(min-width:1200px){
  .page-header-ttl{
    padding-left:calc(((100% - 1140px) / 2 + 20px ) );
  }
  .page-header-ttl:before{
    left:calc(((100% - 1140px) / 2 + 20px ) );
  }
}
@media(min-width:1400px){
  .page-header-ttl{
    padding-left:calc(((100% - 1320px) / 2 + 20px ) );
  }
  .page-header-ttl:before{
    left:calc(((100% - 1320px) / 2 + 20px ) );
  }
}
/*==========================================================*/
/* before footer                                            */
/*==========================================================*/
.site-beforefooter{
  background:rgb(0, 0, 0, 0.8);
  position:relative;
}
.site-beforefooter:before{
  content:'';
  width:100%;
  height:100%;
  background:url('./img/beforeft_bk.jpg') center center / cover no-repeat;
  position:absolute;
  top:0;
  left:0;
  z-index:-1;
}
.before-ft-sec{
  padding:80px 0;
}
.before-ft-wrap{
  width:100%;
}
.before-ft-sec .lbl{
  text-align:center;
}
.before-ft-sec .ttl{
  text-align:center;
  font-size: 24px;
  letter-spacing: .07em;
  margin-bottom: 18px;
  font-weight:700;
  font-family: var(--noto-sans);
}
.before-ft-sec .rule{
  margin-left:auto;
  margin-right:auto;
}
.before-ft-wrap p{
  color:#aaa;
  margin-bottom:30px;
  text-align:justify;
}
.btn-wh2 {
  display:flex;
  width:250px;
  height:55px;
  background: #fff;
  color: #111;
  font-family: var(--en);
  letter-spacing: 2px;
  border: 2px solid #fff;
  transition: all 0.3s;
  justify-content:center;
  align-items:center;
  margin-left:auto;
  margin-right:auto;
  position:relative;
  padding-left:20px;
}
.btn-wh2 i{
  font-size:20px;
  position:absolute;
  top:50%;
  left:40px;
  translate:0 -50%;
}
.btn-wh2:hover{
  border-color:#fff;
  background:#111;
  color:#fff;
}
@media(min-width:768px){
  .before-ft-wrap p{
    text-align:center;
  }
  .before-ft-sec .ttl{
    font-size: 32px;
  }
}
/*==========================================================*/
/* business sec                                             */
/*==========================================================*/
.business-sec{
  padding:80px 0;
}
.our-domains-sec{
  padding:80px 0;
}
.overview-body{
  margin-bottom:40px;
}
.overview-body .lead{
  max-width:unset;
}
.dl-sv-partner{
  margin-bottom:10px;
}
.dl-sv-partner dd{
  margin:0;
}
.dl-sv-partner dd a{
  position:relative;
}
.dl-sv-partner dd a:hover{
  color:var(--red);
}
.dl-sv-partner dd a::before{
  content:'';
  width:100%;
  height:1px;
  position:absolute;
  left:0;
  bottom:0;
  transform:scale(0,1);
  transform-origin:right center;
  transition:transform 0.3s;
  background:var(--red);
}
.dl-sv-partner dd a:hover::before{
  transform:scale(1,1);
  transform-origin:left center;
}
@media(min-width:992px){
  .dl-sv-partner{
    display:flex;
    flex-flow:row nowrap;
    width:100%;
  }
  .dl-sv-partner dt{
    width:150px;
  }
  .dl-sv-partner dd{
    width:calc(100% - 150px);
    margin:0;
  }
}
/*==========================================================*/
/* archive                                                  */
/*==========================================================*/
.ul-categorylist{
  border-bottom:2px solid #ddd;
}
.ul-categorylist>li>a{
  border:none;
  position:relative;
  height: 50px;
}
.ul-categorylist>li>a::before{
  content:'';
  width:100%;
  height:3px;
  background:var(--pagination-color);
  position:absolute;
  bottom:-1.5px;
  left:0;
  transform:scale(0, 1);
  transform-origin:right center;
  transition: transform 0.3s;
  z-index:5;
}
.ul-categorylist>li>a:hover{
  background:transparent;
  color:var(--pagination-color);
}
.ul-categorylist>li>a:hover::before{
  transform:scale(1,1);
  transform-origin:left center;
}
.ul-categorylist>li>a.current{
  background:transparent;
  color:var(--pagination-color);
  border:none;
}
.ul-categorylist>li>a.current::before{
  content:'';
  width:100%;
  height:3px;
  background:var(--pagination-color);
  position:absolute;
  bottom:-1.5px;
  left:0;
  transform:scale(1, 1);
  z-index:5;
}
.ul-informationlist{
  list-style:none;
  padding-left:0;
}
.archive-main-sec{
  margin-bottom:80px;
}
.cat_link{
  display:flex;
  flex-flow:row wrap;
  justify-content:space-between;
  margin-bottom:10px;
  transition:all 0.3s;
}
.cat_link:hover{
  color:var(--pagination-color);
}
@media(min-width:992px){
  .archive-sideSection{
    padding-top:20px;
  }
}
/*==========================================================*/
/* single                                                   */
/*==========================================================*/
.new_breadcrumb{
  background: var(--bg);
  border-bottom: 1px solid var(--line);
  min-height:150px;
  display:flex;
  align-items:center;
  border-bottom: 3px solid var(--red);
}
.single-post-siteContent{
  padding-top:40px;
  padding-bottom:80px;
}
.art-ttl{
  font-size: clamp(22px, 3.8vw, 28px);
  font-weight:500;
}
.single-post-siteContent .entry{
  padding-bottom:80px;
}
.bar-btn{
  margin-bottom:20px;
}
.bar-btn a:hover{
  color:var(--pagination-color);
}
.be_pc_contact{
  display:none;
}
.sb-banner .sb-bannerlink{
  position:relative;
  display:table;
  margin-left:auto;
  margin-right:auto;
  padding-left:10px;
  padding-right:30px;
  font-size:16px;
  font-weight:400;
}
.sb-banner .sb-bannerlink::before{
  content:'';
  width:100%;
  height:1px;
  background:#fff;
  transform:scale(0,1);
  transform-origin:right center;
  transition:transform 0.3s;
  position:absolute;
  left:0;
  bottom:0;
}
.sb-banner .sb-bannerlink:hover{
  color:#fff;
}
.sb-banner .sb-bannerlink:hover::before{
  transform:scale(1,1);
  transform-origin:left center;
}
.sp-banner-arrow{
  position:absolute;
  top:50%;
  right:10px;
  translate:0 -50%;
  transition:right 0.3s;
}
.sb-banner .sb-bannerlink:hover .sp-banner-arrow{
  right:0;
}
@media(min-width:992px){
  .single-post-siteContent .entry{
    padding-bottom:0;
  }
  .be_pc_contact{
    display:block;
  }
}
/*==========================================================*/
/* recruit                                                  */
/*==========================================================*/
/* pghead */
.page-header.recruit-pgheader{
  height:300px;
}
.pghead-recruit-catch{
  position:absolute;
  top:50%;
  left:0;
  translate:0 -50%;
  z-index:1;
  padding-left:20px;
}
.pghead-recruit-catch .page-header-ttl{
  position:relative;
  padding-left:0;
  top:unset;
  transform:unset;
  margin-bottom:20px;
}
.pghead-recruit-catch .page-header-ttl:before{
  left:0;
}
.pghead-recruit-catch p{
  color:#fff;
  letter-spacing:0.2em;
  font-weight:200;
  font-size:24px;
}
.pghead-recruit-catch p span{
  display:table;
  background: linear-gradient(transparent calc(100% - 1px), rgba(255,255,255,0.5) 1px);
}
@media(min-width:768px){
  .pghead-recruit-catch{
    padding-left:calc(((100% - 720px) / 2 + 20px ) );
  }
  .pghead-recruit-catch p{
    font-size:32px;
  }
  .pghead-recruit-catch p span{
    display:inline;
  }
}
@media(min-width:992px){
  .page-header.recruit-pgheader{
    height:350px;
  }
  .pghead-recruit-catch{
    padding-left:calc(((100% - 960px) / 2 + 20px ) );
  }
  .pghead-recruit-catch p{
    font-size:46px;
  }
}
@media(min-width:1200px){
  .pghead-recruit-catch{
    padding-left:calc(((100% - 1140px) / 2 + 20px ) );
  }
}
@media(min-width:1400px){
  .pghead-recruit-catch{
    padding-left:calc(((100% - 1320px) / 2 + 20px ) );
  }
}
.recruit-sec{
  padding-top:0;
}
.dl-rec{
  width:100%;
  display:flex;
  flex-flow:row wrap;
  margin:0;
}
.dl-rec>dt{
  width:100%;
  margin:0;
  background:rgba(0,0,0,0.6);
  border-top:solid 4px var(--red);
  border-right:solid 4px var(--red);
}
.dl-rec>dt>img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  opacity:0.7;
}
.dl-rec>dd{
  width:100%;
  margin:0;
  padding:40px 20px 40px 20px;
}
.h3org{
  font-size:20px;
  font-weight:500;
  margin-bottom:20px;
  text-indent:-1em;
  margin-left:2em;
  line-height:1.4;
}
.dl-rec>dd p{
  line-height:2;
  letter-spacing:0.2em;
  text-align:justify;
}
@media(min-width:768px){
  .dl-rec>dt{
      border-right:solid 12px var(--red);
  }
  .dl-rec>dt>img{
    aspect-ratio:6/3;
  }
  .dl-rec>dd{
    max-width:740px;
    margin-left:auto;
    margin-right:auto;
  }
  .h3org{
    font-size:24px;
  }
  .br_h3org{
    display:none;
  }
}
@media(min-width:992px){
  .br_h3org{
    display:block;
  }
  .dl-rec>dt{
    width:45%;
    border-right:solid 4px var(--red);
  }
  .dl-rec>dd{
    width:55%;
    max-width:unset;
    padding-right:calc((100vw - 920px) / 2);
    padding-left:40px;
  }
  .dl-rec>dt>img{
    aspect-ratio:unset;
    height:100%;
    max-height:610px;
  }
}
@media(min-width:1200px){
  .dl-rec>dd{
    padding-right:calc((100vw - 1100px) / 2)
  }
  .dl-rec>dt>img{
    max-height:540px;
  }
}
@media(min-width:1400px){
  .dl-rec>dd{
    padding-right:calc((100vw - 1280px) / 2)
  }
  .br_h3org{
    display:none;
  }
  .dl-rec>dt>img{
    max-height:510px;
  }
}
/*==========================================================*/
/* NEW GRADUATES                                            */
/*==========================================================*/
.new-graduates-sec{
  border-top: 1px solid var(--line);
  background: var(--bg);
  padding:80px 0;
}
.entry-btn{
  margin-top:40px;
}
.req-tbl td{
    text-align:justify;
}
@media(min-width:768px){
  .req-tbl tr{
    display:table-row;
    width:100%;
    padding:0;
  }
  .req-tbl th{
    width:30%;
    display:table-cell;
    padding:1em;
  }
  .req-tbl td{
    width:70%;
    display:table-cell;
    padding:1em;
  }
}
@media(min-width:992px){
  .req-tbl th{
    width:45%;
    display:table-cell;
    padding:1em;
  }
  .req-tbl td{
    width:55%;
    display:table-cell;
    padding:1em;
  }
}
/*==========================================================*/
/* CAREER HIRE                                              */
/*==========================================================*/
.career-sec{
  padding:80px 0;
  background: #fff;
  border-top: 1px solid var(--line);  
}
/*==========================================================*/
/* company                                                  */
/*==========================================================*/
.president-sec{
  background: #fff;
  padding-bottom:80px;
}
.president-pict{
  width:100%;
  max-width:280px;
  margin-left:auto;
  margin-right:auto;
}
.president-pict>div{
  position:relative;
}
.president-pict>.wrap::before{
  content:'';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--red);
}
.president-pict img{
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
}
.philosophy-sec{
  padding:80px 0;
  background:var(--bg);
}
.philosophy-wrap{
  width:100%;
}
.h3phi{
  font-size:24px;
  font-weight:700;
  font-family:var(--noto-serif);
  letter-spacing:0.2em;
  text-align:justify;
  margin-bottom:20px;
  line-height:1.4;
  color:var(--dark);
}
.phiosophy-desc{
  width:100%;
}
.phiosophy-desc .desc p{
  font-size: 16px;
  color: var(--mid);
  line-height: 2;
  margin-bottom: 1em;
  text-align: justify;
  letter-spacing: 0.2em;
}
.phiosophy-desc .desc p:last-of-type{
  margin:0;
}
.overview-sec{
  background: var(--bg);
  border-top: 1px solid var(--line);
  padding:80px 0;
}
.pg-company .overview-tbl th{
  font-size:16px;
}
.pg-company .overview-tbl td{
  font-size:16px;
}
.histroy-sec{
  padding:80px 0;
  background: linear-gradient(160deg, rgba(10, 5, 20, .95) 0%, rgba(5, 10, 25, .95) 100%), url(./img/hero-business.jpg) center / cover no-repeat;
}
.access-sec{
  padding:0;
}
@media(min-width:768px){
  .h3phi{
    font-size:30px;
    margin-bottom:40px;
  }
  .h3phi br{
    display:none;
  }
}
/*==========================================================*/
/* contact                                                  */
/*==========================================================*/
.page-contact .before-ft-sec{
  display:none;
}
.contact-sec{
  padding-bottom:80px;
}
.faq-sec{
  padding:80px 0;
  background: var(--bg);
}
.lead{
  font-weight:400;
  border-top: 1px solid var(--line);
}
.contact-sec .ct-grid{
  display: grid; grid-template-columns: 1fr; gap: 48px; align-items: start;
}
@media(min-width:992px){
  .contact-sec .ct-grid{
    grid-template-columns: 40% calc(60% - 20px);
    gap:20px;
  }
  .pg-contact .ct-form-card form p:last-of-type{
    margin-bottom:0;
  }
}
/*==========================================================*/
/* privacy policy                                           */
/*==========================================================*/
.privacyplicy-sec{
  padding-top:40px;
  padding-bottom:80px;
}
.privacyplicy-wrap{
  width:100%;
  padding:0 10px;
}
.pg-business .overview-nums{
  padding-top:180px;
}
/*==========================================================*/
/* biz summry add                                           */
/*==========================================================*/
.overview-ttl{
  width:100%;
  height:180px;
  width:100%;
  position:absolute;
  top:0;
  left:0;
  display:flex;
  justify-content:center;
  align-items:center;
  z-index:5;
}
.overview-ttl h2{
  font-size:24px;
  text-align:center;
  font-weight:700;
  margin-bottom:10px;
}
.overview-ttl p{
  text-align:center;
}
.overview-nums>.ov-num.arrow-mark::before{
  content: "\f0d8";
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
  font-size:40px;
  position: absolute;
  top:-50px;
  left:50%;
  translate:-50% 0;
  color:#2C3F57;
}
.overview-nums>.ov-num.arrow-mark::after{
  content: "\f0d7";
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
  font-size:40px;
  position: absolute;
  bottom:-50px;
  left:50%;
  translate:-50% 0;
  color:#2C3F57;
}
@media(min-width:768px){
  .overview-ttl h2{
    font-size:32px;
  }
  .overview-ttl p{
    font-size:18px;
  }
  .overview-nums>.ov-num.arrow-mark::before{
    content: "\f0d9";
    font-family: "Font Awesome 7 Free";
    font-weight: 900;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
    font-size:40px;
    position: absolute;
    top:50%;
    left:0;
    translate:0 -50%;
  }
  .overview-nums>.ov-num.arrow-mark::after{
    content: "\f0da";
    font-family: "Font Awesome 7 Free";
    font-weight: 900;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
    font-size:40px;
    position: absolute;
    top:50%;
    bottom:auto;
    right:0;
    left:auto;
    translate:0 -50%;
  }
}
@media(min-width:992px){
  .overview-ttl{
    height:200px;
  }
  .overview-nums>.ov-num.arrow-mark::before{
    font-size:60px;
  }
  .overview-nums>.ov-num.arrow-mark::after{
    font-size:60px;
  }
}