/* ===== site.css ===== */
/* R-18: 固定ヘッダー高（システム描画ページの潜り込み防止／skinが上余白に加算） */
:root{ --fixed-header-h: 72px; }
@media (max-width:879px){ :root{ --fixed-header-h: 64px; } }

/* ============================================================
   株式会社ブライト｜統合スタイルシート
   [1] 共通ベース（全ページ共通・グローバル）
   [2] 各ページ固有CSS（.page-XX にスコープ）
   ============================================================ */

/* ===== [1] 共通ベース ===== */
/* =====================================================================
   株式会社ブライト｜下層ページ共通スタイル
   （業務案内ページ work.html の枠組みを抽出・共有）
   ===================================================================== */
:root{
  --blue:#0B5BD7;
  --blue-deep:#073B8C;
  --blue-tint:#F1F6FD;
  --gray-band:#F4F6F9;
  --ink:#101826;
  --text:#2A3441;
  --muted:#5B6877;
  --line:#DEE5EE;
  --ghost:#EEF2F8;
  --white:#FFFFFF;
  --font-head:"Zen Kaku Gothic New",sans-serif;
  --font-body:"Zen Kaku Gothic New",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:84px;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}
body{
  font-family:var(--font-body);
  color:var(--text);
  background:var(--white);
  font-size:0.9375rem;
  line-height:2.1;
  font-weight:500;
  letter-spacing:0.05em;
  overflow-wrap:break-word;
  overflow-x:clip;
  padding-bottom:84px;
}
@media (min-width:880px){
  body{font-size:1rem;padding-bottom:0;}
}
span.line-chunk{
  display:inline-block;
  overflow-wrap:anywhere;
  word-break:normal;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--blue);}
a:focus-visible,button:focus-visible{
  outline:3px solid var(--blue);
  outline-offset:3px;
  border-radius:2px;
}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:300;
  background:var(--blue);color:#fff;padding:12px 20px;text-decoration:none;
}
.skip-link:focus{left:0;}

/* ===== primitives ===== */
.container{
  width:100%;
  max-width:1040px;
  margin-inline:auto;
  padding-inline:clamp(22px, 6vw, 48px);
}
.container--narrow{max-width:760px;}
.sec{
  position:relative;
  padding-block:clamp(64px, 10vw, 120px);
}
.sec--band{
  background:var(--blue-tint);
}
.sec--band > .ghost{color:#E2EBF8;}

/* ghost watermark */
.ghost{
  position:absolute;
  z-index:0;
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(3.5rem, 12vw, 9rem);
  letter-spacing:0.06em;
  line-height:1;
  color:var(--ghost);
  white-space:nowrap;
  pointer-events:none;
  user-select:none;
}
.ghost--tr{top:clamp(20px,3vw,44px);right:-0.1em;}
.ghost--tl{top:clamp(20px,3vw,44px);left:-0.05em;}
.sec > .container{position:relative;z-index:1;}

/* centered section heading */
.c-head{
  text-align:center;
  margin-bottom:clamp(36px, 6vw, 64px);
}
.c-head .en{
  display:block;
  font-family:var(--font-head);
  font-weight:700;
  font-size:0.9375rem;
  letter-spacing:0.42em;
  text-indent:0.42em;
  color:var(--blue);
  margin-bottom:14px;
}
.c-head h2{
  font-family:var(--font-head);
  font-weight:700;
  font-size:clamp(2rem, 4.6vw, 2.5rem);
  letter-spacing:0.04em;
  text-indent:0.04em;
  color:var(--ink);
  line-height:1.7;
}
.c-head .sub{
  margin-top:16px;
  color:var(--muted);
  font-size:1rem;
  letter-spacing:0.08em;
  text-wrap:pretty;
}

/* bar heading */
.bar-head{
  display:flex;align-items:stretch;gap:16px;
  font-family:var(--font-head);
  font-weight:700;
  font-size:clamp(1.875rem, 3.9vw, 2.125rem);
  letter-spacing:0.2em;
  color:var(--ink);
  margin-bottom:clamp(24px, 4vw, 36px);
}
.bar-head::before{
  content:"";
  width:5px;height:auto;background:var(--blue);flex:none;
}
.bar-head__text{line-height:1.6;}

.lead{
  max-width:40em;
  text-wrap:pretty;
}
.lead strong{color:var(--ink);font-weight:700;}
.lead-center{text-align:center;margin-inline:auto;}
@media (max-width:599px){.lead-center{text-align:left;}}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
  min-height:58px;
  padding:14px 40px;
  font-family:var(--font-head);
  font-weight:700;
  font-size:0.9375rem;
  letter-spacing:0.18em;
  text-indent:0.18em;
  text-decoration:none;
  border-radius:0;
  transition:background-color .25s ease,color .25s ease;
}
.btn--primary{background:var(--blue);color:#fff;border:1px solid var(--blue);}
.btn--primary:hover{background:var(--blue-deep);border-color:var(--blue-deep);}
.btn--ghost{background:#fff;color:var(--ink);border:1px solid var(--ink);}
.btn--ghost:hover{background:var(--ink);color:#fff;}

/* photo placeholder */
.ph{
  position:relative;
  background:
    repeating-linear-gradient(-45deg, rgba(11,91,215,0.045) 0 1px, transparent 1px 11px),
    linear-gradient(165deg,#E9F0F9,#F7FAFD);
  border:1px solid var(--line);
  display:grid;place-items:center;
  overflow:hidden;
}
.ph > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ph span{
  position:relative;
  color:#8493A5;
  font-size:0.75rem;
  letter-spacing:0.14em;
  font-weight:500;
  text-align:center;
  padding:1em;
  line-height:1.8;
}

/* reveal */
@media (prefers-reduced-motion: no-preference){
  html.js .reveal{
    opacity:0;
    transform:translateY(24px);
    transition:opacity .9s ease, transform 1.1s cubic-bezier(.16,1,.3,1);
  }
  html.js .reveal.is-in{opacity:1;transform:none;}
}

/* 見出しの文字ステップ表示（motion-safe＋JS時のみJSがクラス付与） */
.ch{display:inline-block;}
html.js .chars .ch{
  opacity:0;
  transform:translateY(0.65em);
  transition:opacity .55s ease, transform .9s cubic-bezier(.16,1,.3,1);
  transition-delay:calc(var(--ci) * 30ms);
}
html.js .chars.chars-in .ch{opacity:1;transform:none;}

/* ============ header ============ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:transparent;
  pointer-events:none;
}
.site-header .brand,
.site-header .gnav,
.site-header .menu-btn{pointer-events:auto;}
.site-header .gnav,
.site-header .menu-btn{transition:background-color .3s ease,box-shadow .3s ease;}
.site-header.is-scrolled .gnav{
  background:var(--ink);
  box-shadow:0 10px 28px rgba(16,24,38,0.22);
}
.site-header.is-scrolled .gnav > ul > li > a,
.site-header.is-scrolled .gnav .navbtn{color:#fff;}
.site-header.is-scrolled .gnav > ul > li > a:hover,
.site-header.is-scrolled .gnav .navbtn:hover{color:color-mix(in oklab, var(--blue) 40%, #fff);}
.site-header.is-scrolled .gnav .nav-cta a{color:color-mix(in oklab, var(--blue) 40%, #fff);}
.site-header.is-scrolled .menu-btn{
  background:var(--ink);
  border-color:var(--ink);
  box-shadow:0 10px 28px rgba(16,24,38,0.22);
}
.site-header.is-scrolled .menu-btn .bar{background:#fff;}
.site-header.is-scrolled .brand{box-shadow:0 10px 28px rgba(16,24,38,0.14);}
.header-inner{
  display:flex;align-items:flex-start;justify-content:space-between;
}
.brand{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:clamp(84px, 11vw, 112px);
  aspect-ratio:1;
  background:#fff;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:var(--ink);
  text-decoration:none;
  flex:none;
}
.brand .mark{width:clamp(32px, 4.5vw, 44px);height:auto;}
.brand .en{
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(0.8125rem, 1.5vw, 1rem);
  letter-spacing:0.1em;
  text-indent:0.1em;
  line-height:1;
  color:var(--blue);
  white-space:nowrap;
}
.brand .ja{
  font-size:0.5rem;letter-spacing:0;text-indent:0;line-height:1;
  color:var(--muted);white-space:nowrap;
}
.gnav{display:none;}
@media (min-width:960px){
  .gnav{display:block;background:#fff;}
  .gnav > ul{display:flex;align-items:center;gap:2px;list-style:none;padding:6px 18px;}
  .gnav > ul > li{position:relative;}
  .gnav a,.gnav .navbtn{
    display:inline-flex;align-items:center;gap:7px;
    min-height:44px;padding:8px 14px;text-decoration:none;color:var(--ink);
    font-family:var(--font-head);font-weight:700;font-size:0.8125rem;letter-spacing:0.14em;
    background:none;border:none;cursor:pointer;
  }
  .gnav a:hover,.gnav .navbtn:hover{color:var(--blue);}
  .gnav .nav-cta a{color:var(--blue);}
  .gnav a[aria-current="page"]{color:var(--blue);position:relative;}
  .gnav a[aria-current="page"]::after{
    content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;background:var(--blue);
  }
  .navbtn .caret{
    width:7px;height:7px;flex:none;
    border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
    transform:rotate(45deg) translateY(-2px);
  }
  .subnav{
    position:absolute;top:100%;right:0;min-width:230px;background:#fff;
    border:1px solid var(--line);box-shadow:0 14px 36px rgba(16,24,38,0.10);
    list-style:none;padding:8px;display:none;
  }
  li.has-sub:hover .subnav,
  li.has-sub:focus-within .subnav,
  li.has-sub[data-open="true"] .subnav{display:block;}
  .subnav a{display:flex;width:100%;min-height:48px;font-weight:500;letter-spacing:0.08em;}
  .subnav a:hover{background:var(--blue-tint);color:var(--blue);}
}
.menu-btn{
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:56px;height:56px;
  background:#fff;border:1px solid var(--line);border-top:none;border-right:none;cursor:pointer;
}
.menu-btn .bar{width:22px;height:2px;background:var(--ink);transition:transform .25s ease,opacity .25s ease;}
.menu-btn[aria-expanded="true"] .bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-btn[aria-expanded="true"] .bar:nth-child(2){opacity:0;}
.menu-btn[aria-expanded="true"] .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media (min-width:960px){.menu-btn{display:none;}}

.mnav{
  display:none;position:fixed;inset:0;z-index:90;background:#fff;overflow-y:auto;padding-top:72px;
}
.mnav.is-open{display:block;}
.mnav ul{list-style:none;padding-bottom:40px;}
.mnav a{
  display:flex;align-items:center;min-height:54px;padding:8px clamp(24px,7vw,40px);
  text-decoration:none;color:var(--ink);font-family:var(--font-head);font-weight:700;
  letter-spacing:0.12em;border-bottom:1px solid var(--line);
}
.mnav a[aria-current="page"]{color:var(--blue);}
.mnav .mnav-group{
  padding:16px clamp(24px,7vw,40px) 6px;color:#717b86;font-size:0.6875rem;
  font-family:var(--font-head);font-weight:700;letter-spacing:0.3em;
  border-bottom:1px solid var(--line);background:#fff;
}
.mnav .sub a{padding-left:calc(clamp(24px,7vw,40px) + 1.2em);font-weight:500;background:#fff;}
.mnav .mnav-cta{padding:24px clamp(24px,7vw,40px);border-bottom:none;display:block;}
.mnav .mnav-cta .btn{width:100%;color:#fff;}

/* ============ page hero（1枚もの・画像内テキスト） ============ */
.page-hero{position:relative;}
.hero-banner{
  position:relative;
  width:100%;
  aspect-ratio:16/13;
  overflow:hidden;
  background:var(--blue-deep);
}
@media (min-width:600px){.hero-banner{aspect-ratio:16/8;}}
@media (min-width:980px){.hero-banner{aspect-ratio:24/8;}}
.hero-banner img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.hero-banner::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(6,26,58,0.82) 0%, rgba(6,26,58,0.62) 42%, rgba(6,26,58,0.22) 100%);
}
.hero-overlay{
  position:absolute;inset:0;z-index:2;
  display:flex;align-items:center;
}
.hero-overlay-inner{
  width:100%;max-width:1040px;margin-inline:auto;
  padding-inline:clamp(22px, 6vw, 48px);
  padding-top:64px;
  color:#fff;
}
.hero-kicker{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--font-head);font-weight:700;
  margin-bottom:clamp(14px, 2vw, 20px);
}
.hero-kicker .ja{
  font-size:0.875rem;letter-spacing:0.3em;text-indent:0.3em;
}
.hero-kicker .en{
  font-size:0.8125rem;letter-spacing:0.34em;text-indent:0.34em;
  color:#9FC6F4;padding-left:12px;border-left:1px solid rgba(255,255,255,0.4);
}
.hero-overlay h1{
  font-family:var(--font-head);font-weight:900;
  font-size:clamp(1.875rem, 6vw, 3.5rem);
  line-height:1.3;letter-spacing:0.04em;
  text-wrap:pretty;
}
.hero-overlay .cap{
  margin-top:clamp(14px, 2.4vw, 22px);
  max-width:30em;
  font-size:clamp(0.875rem, 2vw, 1.0625rem);
  font-weight:500;line-height:1.95;letter-spacing:0.08em;
  color:rgba(255,255,255,0.92);text-wrap:pretty;
}
/* タブレット以下：ヘッド画像内テキストをセンター寄せ */
@media (max-width:979px){
  .hero-banner::after{
    background:linear-gradient(180deg,
      rgba(6,26,58,0.72) 0%, rgba(6,26,58,0.60) 45%, rgba(6,26,58,0.82) 100%);
  }
  .hero-overlay{justify-content:center;}
  .hero-overlay-inner{text-align:center;}
  .hero-kicker{justify-content:center;}
  .hero-overlay .cap{margin-left:auto;margin-right:auto;}
}
/* breadcrumb（画像の下） */
.crumb-bar{border-bottom:1px solid var(--line);background:#fff;}
.crumb{
  max-width:1040px;margin-inline:auto;
  padding:12px clamp(22px, 6vw, 48px);
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  font-size:0.75rem;letter-spacing:0.1em;color:var(--muted);
  font-family:var(--font-head);font-weight:700;
}
.crumb a{color:var(--muted);text-decoration:none;min-height:24px;display:inline-flex;align-items:center;}
.crumb a:hover{color:var(--blue);text-decoration:underline;}
.crumb .sep{color:var(--line);}
.crumb .here{color:var(--ink);}

/* ============ intro（シンプルなリード） ============ */
.intro-block{text-align:center;}
.intro-block .en{
  display:block;font-family:var(--font-head);font-weight:700;
  font-size:0.9375rem;letter-spacing:0.42em;text-indent:0.42em;color:var(--blue);margin-bottom:14px;
}
.intro-block h2{
  font-family:var(--font-head);font-weight:700;
  font-size:clamp(2rem, 4.6vw, 2.5rem);
  letter-spacing:0.04em;line-height:1.8;color:var(--ink);
  margin-bottom:clamp(20px, 3vw, 28px);text-wrap:pretty;
}
.intro-block .lead{font-size:1rem;line-height:2.1;}
.intro-block .lead + .lead{margin-top:1.1em;}

/* ============ contact（中央寄せ・シンプル） ============ */
.contact{text-align:center;}
.contact .lead{margin-inline:auto;margin-bottom:clamp(28px, 4vw, 38px);text-align:center;}
.contact-actions{
  display:flex;flex-direction:column;align-items:center;gap:22px;
}
.contact-actions .btn{min-width:min(340px,100%);}
.contact-tel{
  color:var(--ink);text-decoration:none;
  display:inline-flex;flex-direction:column;gap:2px;align-items:center;min-height:44px;justify-content:center;
}
.contact-tel .tel-num{
  font-family:var(--font-head);font-weight:900;
  font-size:clamp(1.5rem, 4vw, 1.75rem);letter-spacing:0.1em;color:var(--ink);
}
.contact-tel .tel-num::before{
  content:"TEL";font-size:0.5em;font-weight:700;color:var(--blue);letter-spacing:0.2em;margin-right:0.8em;
}
.contact-tel .tel-note{font-size:0.75rem;color:var(--muted);letter-spacing:0.1em;}

/* ============ footer ============ */
.site-footer{
  border-top:1px solid var(--line);
  padding-block:clamp(48px, 8vw, 72px) clamp(28px, 5vw, 40px);
  font-size:0.875rem;
}
.footer-grid{display:grid;gap:clamp(36px, 6vw, 64px);padding-bottom:clamp(36px, 6vw, 56px);}
@media (min-width:880px){.footer-grid{grid-template-columns:1.2fr 1fr;}}
.footer-brand .mark{width:60px;height:auto;margin-bottom:18px;}
.footer-brand .name{
  font-family:var(--font-head);font-weight:700;letter-spacing:0.2em;color:var(--ink);
}
.footer-brand address{
  font-style:normal;margin-top:14px;line-height:2.2;color:var(--muted);
  font-size:0.8125rem;letter-spacing:0.06em;
}
.footer-nav{display:grid;gap:4px 28px;grid-template-columns:repeat(2,1fr);list-style:none;}
.footer-nav a{
  display:inline-flex;align-items:center;min-height:40px;color:var(--text);text-decoration:none;
  letter-spacing:0.1em;font-size:0.8125rem;
}
.footer-nav a:hover{color:var(--blue);text-decoration:underline;}
.footer-nav .group{
  grid-column:1 / -1;color:#8594a6;font-size:0.6875rem;letter-spacing:0.3em;
  font-family:var(--font-head);font-weight:700;margin-top:12px;
}
.copyright{
  border-top:1px solid var(--line);padding-top:22px;
  font-size:0.6875rem;letter-spacing:0.18em;color:var(--muted);text-align:center;
}

/* ============ fixed CTA ============ */
.fixed-cta{
  position:fixed;z-index:80;
  right:clamp(12px, 3vw, 20px);bottom:clamp(12px, 3vw, 20px);
  display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;
  background:var(--blue);color:#fff;text-decoration:none;
  padding:12px 20px;min-height:54px;width:auto;
  box-shadow:0 10px 28px rgba(7,59,140,0.34);transition:background-color .25s ease;
}
.fixed-cta:hover{background:var(--blue-deep);}
.fixed-cta .s{
  font-size:0.6875rem;letter-spacing:0.18em;text-indent:0.18em;opacity:0.92;white-space:nowrap;
}
.fixed-cta .b{
  font-family:var(--font-head);font-weight:700;font-size:1.0625rem;
  letter-spacing:0.06em;text-indent:0.06em;white-space:nowrap;
}
.fixed-cta .b .line-chunk:first-child{margin-right:-0.1em;}
@media (min-width:880px){
  .fixed-cta{
    flex-direction:column;gap:8px;
    right:clamp(16px, 2vw, 28px);bottom:clamp(16px, 2vw, 28px);
    aspect-ratio:1;min-width:118px;padding:16px;
  }
  .fixed-cta .b{font-size:0.875rem;line-height:1.7;text-align:center;white-space:normal;}
}


/* ===== [2] index ===== */
.page-index{--blue:#0B5BD7;
  --blue-deep:#073B8C;
  --blue-tint:#F1F6FD;
  --gray-band:#F4F6F9;
  --ink:#101826;
  --text:#2A3441;
  --muted:#5B6877;
  --line:#DEE5EE;
  --ghost:#EEF2F8;
  --white:#FFFFFF;
  --font-head:"Zen Kaku Gothic New",sans-serif;
  --font-body:"Zen Kaku Gothic New",sans-serif;}
.page-index *{margin:0;padding:0;box-sizing:border-box;}
.page-index{font-family:var(--font-body);
  color:var(--text);
  background:var(--white);
  font-size:0.9375rem;
  line-height:2.1;
  font-weight:500;
  letter-spacing:0.05em;
  overflow-wrap:break-word;
  overflow-x:clip;
  padding-bottom:84px;}
@media (min-width:880px){
.page-index{font-size:1rem;padding-bottom:0;}
}
.page-index span.line-chunk{display:inline-block;
  overflow-wrap:anywhere;
  word-break:normal;}
.page-index img{max-width:100%;height:auto;display:block;}
.page-index a{color:var(--blue);}
.page-index a:focus-visible, .page-index button:focus-visible{outline:3px solid var(--blue);
  outline-offset:3px;
  border-radius:2px;}
.page-index .skip-link{position:absolute;left:-9999px;top:0;z-index:300;
  background:var(--blue);color:#fff;padding:12px 20px;text-decoration:none;}
.page-index .skip-link:focus{left:0;}
.page-index .container{width:100%;
  max-width:1040px;
  margin-inline:auto;
  padding-inline:clamp(22px, 6vw, 48px);}
.page-index .sec[data-screen-label="受注・協力会社"], .page-index .sec.sec--band{padding-block:clamp(56px, 9vw, 112px);}
.page-index .sec{position:relative;
  padding-block:clamp(88px, 14vw, 170px);}
.page-index .sec--band{background:var(--blue-tint);}
.page-index .sec--band > .ghost{color:#E2EBF8;}
.page-index .sec--reasons{background:var(--blue-tint);}
.page-index .sec--reasons .ghost, .page-index .sec--reasons .pillars-ghost{color:#E2EBF8;}
.page-index .ghost{position:absolute;
  z-index:0;
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(4.5rem, 16vw, 13rem);
  letter-spacing:0.06em;
  line-height:1;
  color:var(--ghost);
  white-space:nowrap;
  pointer-events:none;
  user-select:none;}
.page-index .ghost--tr{top:clamp(24px,4vw,56px);right:-0.15em;}
@media (min-width:880px){
.page-index .sec--band > .ghost--tr{right:auto;
    left:-0.15em;}
}
.page-index .ghost--bl{bottom:clamp(24px,4vw,56px);left:-0.15em;}
@media (min-width:880px){
.page-index .sec[data-screen-label="受注・協力会社"] > .ghost--bl{left:auto;
    right:-0.15em;}
}
.page-index .sec > .container{position:relative;z-index:1;}
.page-index .c-head{text-align:center;
  margin-bottom:clamp(48px, 8vw, 88px);}
.page-index .c-head .en{display:block;
  font-family:var(--font-head);
  font-weight:700;
  font-size:0.75rem;
  letter-spacing:0.42em;
  text-indent:0.42em;
  color:var(--blue);
  margin-bottom:16px;}
.page-index .c-head h2{font-family:var(--font-head);
  font-weight:700;
  font-size:clamp(1.375rem, 3.6vw, 1.875rem);
  letter-spacing:0.3em;
  text-indent:0.3em;
  color:var(--ink);
  line-height:1.8;}
.page-index .bar-head{display:flex;align-items:center;gap:16px;
  font-family:var(--font-head);
  font-weight:700;
  font-size:clamp(1.25rem, 2.9vw, 1.5rem);
  letter-spacing:0.22em;
  color:var(--ink);
  margin-bottom:clamp(32px, 5vw, 48px);}
.page-index .bar-head::before{content:"";
  width:2px;height:1.4em;background:var(--blue);flex:none;}
.page-index .lead{max-width:36em;
  text-wrap:pretty;}
.page-index .lead strong{color:var(--ink);font-weight:700;}
.page-index .lead-center{text-align:center;
  margin-inline:auto;}
@media (max-width:599px){
.page-index .lead-center{text-align:left;}
}
.page-index .btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;
  min-height:58px;
  padding:14px 40px;
  font-family:var(--font-head);
  font-weight:700;
  font-size:0.9375rem;
  letter-spacing:0.18em;
  text-indent:0.18em;
  text-decoration:none;
  border-radius:0;
  transition:background-color .25s ease,color .25s ease;}
.page-index .btn--primary{background:var(--blue);color:#fff;border:1px solid var(--blue);}
.page-index .btn--primary:hover{background:var(--blue-deep);border-color:var(--blue-deep);}
.page-index .btn--ghost{background:#fff;color:var(--ink);border:1px solid var(--ink);}
.page-index .btn--ghost:hover{background:var(--ink);color:#fff;}
.page-index .textlink{display:inline-flex;align-items:center;gap:12px;
  min-height:44px;
  font-family:var(--font-head);
  font-weight:700;
  font-size:0.9375rem;
  letter-spacing:0.14em;
  color:var(--blue);
  text-decoration:none;}
.page-index .textlink .arr{width:36px;height:12px;position:relative;flex:none;}
.page-index .textlink .arr::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;
  transition:transform .25s ease;transform-origin:left center;}
.page-index .textlink .arr::after{content:"";position:absolute;right:0;bottom:0;width:11px;height:1px;background:currentColor;
  transform:rotate(-36deg);transform-origin:right bottom;
  transition:transform .25s ease;}
.page-index .textlink:hover{color:var(--blue-deep);}
@media (prefers-reduced-motion: no-preference){
.page-index .textlink:hover .arr::before{transform:scaleX(1.2);}
.page-index .textlink:hover .arr::after{transform:translateX(7.2px) rotate(-36deg);}
}
.page-index .ph{position:relative;
  background:
    repeating-linear-gradient(-45deg, rgba(11,91,215,0.045) 0 1px, transparent 1px 11px),
    linear-gradient(165deg,#E9F0F9,#F7FAFD);
  border:1px solid var(--line);
  display:grid;place-items:center;
  overflow:hidden;}
.page-index .ph > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.page-index .ph span{color:#8493A5;
  font-size:0.75rem;
  letter-spacing:0.14em;
  font-weight:500;
  text-align:center;
  padding:1em;
  line-height:1.8;}
@media (prefers-reduced-motion: no-preference){
html.js .page-index .reveal{opacity:0;
    transform:translateY(26px);
    transition:opacity .9s ease, transform 1.1s cubic-bezier(.16,1,.3,1);}
html.js .page-index .reveal.is-in{opacity:1;transform:none;}
}
.page-index .ch{display:inline-block;}
html.js .page-index .chars .ch{opacity:0;
  transform:translateY(0.65em);
  transition:opacity .55s ease, transform .9s cubic-bezier(.16,1,.3,1);
  transition-delay:calc(var(--ci) * 30ms);}
html.js .page-index .chars.chars-in .ch{opacity:1;transform:none;}
.page-index .fv-stroke{position:absolute;
  height:auto;
  z-index:1;
  pointer-events:none;
  overflow:visible;}
.page-index .fv-stroke--bottom{left:-2%;
  bottom:-16%;
  width:80%;
  max-width:920px;}
.page-index .fv-stroke--upper{right:-16%;
  top:-18%;
  width:70%;
  max-width:800px;}
@media (prefers-reduced-motion: no-preference){
html.js .page-index .fv-stroke--upper path{animation-delay:.9s;}
}
.page-index .fv-stroke path{stroke-dasharray:100;}
@media (prefers-reduced-motion: no-preference){
html.js .page-index .fv-stroke path{animation:fvDraw 1.5s cubic-bezier(.55,0,.18,1) .4s backwards;}
}
@keyframes fvDraw{from{stroke-dashoffset:100;}}
.page-index .scroll-cue{position:absolute;
  right:clamp(20px, 3.5vw, 44px);
  top:-110px;
  z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:10px;}
.page-index .scroll-cue .t{font-family:var(--font-head);font-weight:700;
  font-size:0.6875rem;letter-spacing:0.3em;
  color:var(--ink);
  writing-mode:vertical-rl;
  white-space:nowrap;
  height:auto;}
.page-index .scroll-cue .l{width:2px;height:62px;background:color-mix(in oklab, var(--ink) 28%, #fff);
  position:relative;overflow:hidden;}
.page-index .scroll-cue .l::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:var(--blue);}
@media (prefers-reduced-motion: no-preference){
html.js .page-index .scroll-cue .l::after{animation:cueDrop 2.4s cubic-bezier(.7,0,.3,1) infinite;}
}
@keyframes cueDrop{from{top:-100%;}to{top:100%;}}
.page-index .site-header{position:fixed;top:0;left:0;right:0;z-index:100;
  background:transparent;
  pointer-events:none;}
.page-index .site-header .brand, .page-index .site-header .gnav, .page-index .site-header .menu-btn{pointer-events:auto;}
.page-index .site-header .gnav, .page-index .site-header .menu-btn{transition:background-color .3s ease,box-shadow .3s ease;}
.page-index .site-header.is-scrolled .gnav{background:var(--ink);
  box-shadow:0 10px 28px rgba(16,24,38,0.22);}
.page-index .site-header.is-scrolled .gnav > ul > li > a, .page-index .site-header.is-scrolled .gnav .navbtn{color:#fff;}
.page-index .site-header.is-scrolled .gnav > ul > li > a:hover, .page-index .site-header.is-scrolled .gnav .navbtn:hover{color:color-mix(in oklab, var(--blue) 40%, #fff);}
.page-index .site-header.is-scrolled .gnav .nav-cta a{color:color-mix(in oklab, var(--blue) 40%, #fff);}
.page-index .site-header.is-scrolled .menu-btn{background:var(--ink);
  border-color:var(--ink);
  box-shadow:0 10px 28px rgba(16,24,38,0.22);}
.page-index .site-header.is-scrolled .menu-btn .bar{background:#fff;}
.page-index .site-header.is-scrolled .brand{box-shadow:0 10px 28px rgba(16,24,38,0.14);}
.page-index .header-inner{display:flex;align-items:flex-start;justify-content:space-between;}
.page-index .brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:clamp(84px, 11vw, 112px);
  aspect-ratio:1;
  background:#fff;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:var(--ink);
  text-decoration:none;
  flex:none;}
.page-index .brand .mark{width:clamp(32px, 4.5vw, 44px);
  height:auto;}
.page-index .brand .en{font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(0.8125rem, 1.5vw, 1rem);
  letter-spacing:0.1em;
  text-indent:0.1em;
  line-height:1;
  color:var(--blue);}
.page-index .brand .ja{font-size:0.5rem;
  letter-spacing:0;
  text-indent:0;
  line-height:1;
  color:var(--muted);
  white-space:nowrap;}
.page-index .brand .en{white-space:nowrap;}
.page-index .gnav{display:none;}
@media (min-width:960px){
.page-index .gnav{display:block;background:#fff;}
.page-index .gnav > ul{display:flex;align-items:center;gap:2px;
    list-style:none;
    padding:6px 18px;}
.page-index .gnav > ul > li{position:relative;}
.page-index .gnav a, .page-index .gnav .navbtn{display:inline-flex;align-items:center;gap:7px;
    min-height:44px;
    padding:8px 14px;
    text-decoration:none;
    color:var(--ink);
    font-family:var(--font-head);
    font-weight:700;
    font-size:0.8125rem;
    letter-spacing:0.14em;
    background:none;border:none;cursor:pointer;}
.page-index .gnav a:hover, .page-index .gnav .navbtn:hover{color:var(--blue);}
.page-index .gnav .nav-cta a{color:var(--blue);}
.page-index .navbtn .caret{width:7px;height:7px;flex:none;
    border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
    transform:rotate(45deg) translateY(-2px);}
.page-index .subnav{position:absolute;top:100%;right:0;
    min-width:230px;
    background:#fff;
    border:1px solid var(--line);
    box-shadow:0 14px 36px rgba(16,24,38,0.10);
    list-style:none;
    padding:8px;
    display:none;}
.page-index li.has-sub:hover .subnav, .page-index li.has-sub:focus-within .subnav, .page-index li.has-sub[data-open="true"] .subnav{display:block;}
.page-index .subnav a{display:flex;width:100%;
    min-height:48px;
    font-weight:500;
    letter-spacing:0.08em;}
.page-index .subnav a:hover{background:var(--blue-tint);color:var(--blue);}
}
.page-index .menu-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:56px;height:56px;
  background:#fff;border:1px solid var(--line);border-top:none;border-right:none;
  cursor:pointer;}
.page-index .menu-btn .bar{width:22px;height:2px;background:var(--ink);
  transition:transform .25s ease,opacity .25s ease;}
.page-index .menu-btn[aria-expanded="true"] .bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
.page-index .menu-btn[aria-expanded="true"] .bar:nth-child(2){opacity:0;}
.page-index .menu-btn[aria-expanded="true"] .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media (min-width:960px){
.page-index .menu-btn{display:none;}
}
.page-index .mnav{display:none;
  position:fixed;inset:0;z-index:90;
  background:#fff;
  overflow-y:auto;
  padding-top:72px;}
.page-index .mnav.is-open{display:block;}
.page-index .mnav ul{list-style:none;padding-bottom:40px;}
.page-index .mnav a{display:flex;align-items:center;
  min-height:54px;
  padding:8px clamp(24px,7vw,40px);
  text-decoration:none;
  color:var(--ink);
  font-family:var(--font-head);
  font-weight:700;
  letter-spacing:0.12em;
  border-bottom:1px solid var(--line);}
.page-index .mnav .mnav-group{padding:16px clamp(24px,7vw,40px) 6px;
  color:#717b86;
  font-size:0.6875rem;
  font-family:var(--font-head);
  font-weight:700;
  letter-spacing:0.3em;
  border-bottom:1px solid var(--line);
  background:#fff;}
.page-index .mnav .sub a{padding-left:calc(clamp(24px,7vw,40px) + 1.2em);
  font-weight:500;
  background:#fff;}
.page-index .mnav .mnav-cta{padding:24px clamp(24px,7vw,40px);border-bottom:none;display:block;}
.page-index .mnav .mnav-cta .btn{width:100%;color:#fff;}
.page-index .hero{position:relative;}
.page-index .hero-band{position:relative;z-index:2;}
.page-index .hero .ph{width:100%;
  aspect-ratio:4/3;
  border:none;
  overflow:visible;}
.page-index .hero .ph .hero-img{position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  opacity:0;
  transition:opacity 1.6s ease;}
.page-index .hero .ph .hero-img.is-active{opacity:1;}
@media (prefers-reduced-motion: reduce){
.page-index .hero .ph .hero-img{transition:none;}
}
@media (min-width:720px){
.page-index .hero .ph{aspect-ratio:21/9;}
}
.page-index .hero-title{position:relative;
  z-index:2;
  margin-top:calc(-1 * clamp(84px, 15vw, 200px));
  padding-inline:clamp(22px, 6vw, 64px);}
.page-index .hero-title h1{font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(1.875rem, 6.2vw, 3.625rem);
  line-height:1;
  color:var(--ink);
  display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
.page-index .hero-title h1 .box{background:#fff;
  padding:0.32em 0.5em 0.32em 0.45em;
  letter-spacing:0.08em;
  display:inline-block;}
.page-index .hero-title h1 .box.indent{margin-left:clamp(18px, 4vw, 56px);}
.page-index .hero-title h1 .shine{color:var(--blue);}
@media (prefers-reduced-motion: no-preference){
html.js .page-index .hero-title h1 .shine{background-image:linear-gradient(115deg,
      var(--blue) 0%, var(--blue) 38%,
      #7FB0F0 46%, #EAF3FF 50%, #7FB0F0 54%,
      var(--blue) 62%, var(--blue) 100%);
    background-size:300% 100%;
    background-position:115% 0;
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    animation:shineSweep 4.2s ease-in-out 1.6s infinite;}
}
@keyframes shineSweep{
  0%{background-position:115% 0;}
  38%{background-position:-15% 0;}
  100%{background-position:-15% 0;}
}
.page-index .hero-en{margin-top:18px;
  padding-left:0.45em;
  font-family:var(--font-head);
  font-weight:700;
  font-size:0.8125rem;
  letter-spacing:0.5em;
  color:#fff;
  
  -webkit-text-stroke:1.4px var(--blue-deep);
  paint-order:stroke fill;
  text-shadow:0 1px 8px rgba(7,59,140,0.35);}
@media (max-width:879px){
.page-index .hero-en{color:var(--blue);
    -webkit-text-stroke:0;
    text-shadow:none;}
}
@media (max-width:600px){
.page-index .hero-en{text-align:right;
    padding-left:0;
    margin-right:-0.5em;}
}
.page-index .hero-band{background:var(--blue);
  margin-top:clamp(28px, 5vw, 48px);
  padding-block:clamp(18px, 3vw, 26px);}
.page-index .hero-foot{list-style:none;
  
  max-width:1040px;
  margin-inline:auto;
  padding-inline:clamp(22px, 6vw, 48px);
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  grid-auto-rows:1fr; 
  gap:10px;
  justify-content:center;}
.page-index .hero-foot li{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:#fff;
  padding:7px 12px;
  min-height:44px;
  font-size:0.75rem;
  font-weight:500;
  color:var(--ink);
  letter-spacing:0.04em;}
.page-index .hero-foot li::before{content:"";width:6px;height:6px;background:var(--blue);flex:none;}
@media (prefers-reduced-motion: no-preference){
html.js .page-index .hero-foot li{animation:heroChip .55s cubic-bezier(.2,.7,.3,1) backwards;}
html.js .page-index .hero-foot li:nth-child(1){animation-delay:.45s;}
html.js .page-index .hero-foot li:nth-child(2){animation-delay:.62s;}
html.js .page-index .hero-foot li:nth-child(3){animation-delay:.79s;}
html.js .page-index .hero-foot li:nth-child(4){animation-delay:.96s;}
}
@keyframes heroChip{
  from{opacity:0;transform:translateY(16px);}
}
@media (min-width:720px){
.page-index .hero-foot{grid-template-columns:repeat(4, 1fr);
    gap:12px;}
.page-index .hero-foot li{font-size:0.8125rem;
    padding:8px 14px;
    letter-spacing:0.06em;}
}
.page-index .intro-grid{display:grid;
  gap:clamp(40px, 7vw, 72px);
  align-items:center;}
.page-index .intro-collage{position:relative;
  padding-bottom:clamp(48px, 9vw, 84px);}
@media (min-width:880px){
.page-index .intro-collage{--bleed: calc(max((100vw - 1040px) / 2, 0px) + clamp(22px, 6vw, 48px));
    width: calc(100% + var(--bleed));
    margin-left: calc(-1 * var(--bleed));}
}
.page-index .intro-collage .ph--a{width:88%;
  aspect-ratio:7/8;}
.page-index .intro-collage .ph--b{position:absolute;
  right:0;
  bottom:0;
  width:46%;
  aspect-ratio:4/3;
  box-shadow:0 22px 52px rgba(16,24,38,0.14);}
@media (max-width:879px){
.page-index .intro-collage{width:100vw;
    margin-left:calc(50% - 50vw);}
.page-index .intro-collage .ph--a{width:92%;aspect-ratio:4/3;}
.page-index .intro-collage .ph--b{width:52%;}
}
.page-index .intro-copy{position:relative;}
.page-index .intro-catch{position:relative;z-index:3;
  display:flex;flex-direction:column;align-items:flex-start;
  gap:clamp(8px, 1.4vw, 14px);
  margin-bottom:calc(clamp(18px, 3.5vw, 36px) * -1);}
.page-index .intro-catch .w{display:inline-flex;align-items:baseline;gap:0.35em;
  background:#fff;
  box-shadow:0 10px 30px rgba(16,24,38,0.08);
  padding:0.14em 0.55em 0.2em 0.45em;
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(1.875rem, 5.4vw, 3.375rem);
  line-height:1.25;
  letter-spacing:0.08em;
  color:var(--ink);}
.page-index .intro-catch .w .x{color:var(--blue);font-size:0.5em;font-weight:700;}
.page-index .intro-catch .w .hl{color:var(--blue);}
.page-index .intro-catch .w:nth-of-type(2){margin-left:clamp(22px, 5vw, 64px);}
.page-index .intro-catch .w:nth-of-type(3){margin-left:clamp(44px, 10vw, 128px);}
@media (max-width:879px){
.page-index .intro-catch{flex-direction:row;
    flex-wrap:nowrap;
    align-items:stretch;
    justify-content:flex-start;
    gap:clamp(5px, 1.4vw, 10px);
    padding-left:clamp(22px, 6vw, 48px);
    padding-right:clamp(22px, 6vw, 48px);}
.page-index .intro-catch .w{font-size:clamp(1.125rem, 4.9vw, 2rem);
    padding:0.12em 0.36em 0.18em 0.32em;
    letter-spacing:0.04em;
    white-space:nowrap;}
.page-index .intro-catch .w:nth-of-type(2), .page-index .intro-catch .w:nth-of-type(3){margin-left:0;}
}
@media (min-width:880px){
.page-index .intro-grid{grid-template-columns:1fr 1.1fr;}
.page-index .intro-catch{position:absolute;
    top:calc(clamp(20px, 2.5vw, 36px) * -1);
    right:calc(clamp(20px, 3vw, 44px) * -1);
    margin-bottom:0;}
}
.page-index .intro-copy h2{font-family:var(--font-head);
  font-weight:700;
  font-size:clamp(1.375rem, 3vw, 1.5rem);
  letter-spacing:0.06em;
  line-height:1.9;
  color:var(--ink);
  margin-bottom:clamp(20px, 3vw, 28px);}
.page-index .intro-copy .intro-body .lead{font-size:1rem;
  line-height:2.05;}
.page-index .intro-copy .lead + .lead{margin-top:1.2em;}
.page-index .intro-copy .quote{font-size:1rem;
  color:var(--ink);
  margin-block:1.8em 1.4em;
  line-height:2.05;
  text-wrap:pretty;}
.page-index .intro-copy .quote::before{content:"";
  display:block;
  width:34px;height:2px;
  background:var(--blue);
  margin-bottom:1.6em;}
.page-index .intro-copy .quote .qnote{display:block;margin-top:1em;}
.page-index .intro-copy .quote .qnote .dash{margin-right:0.4em;}
.page-index .pillars{position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  max-width:880px;
  margin-inline:auto;}
.page-index .pillars-ghost{position:absolute;
  z-index:0;
  top:-0.15em;
  right:-0.05em;
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(3rem, 11vw, 7.5rem);
  letter-spacing:0.04em;
  line-height:1.05;
  color:var(--ghost);
  text-align:right;
  pointer-events:none;
  user-select:none;}
.page-index .pillars-circles{position:relative;
  z-index:1;
  list-style:none;
  width:100%;
  max-width:560px;
  aspect-ratio:100 / 91;
  container-type:inline-size;}
.page-index .pillars-circles .pc{position:absolute;aspect-ratio:1;}
.page-index .pc--1{width:52%;left:24%;top:0;z-index:1;}
.page-index .pc--2{width:52%;left:2%;top:41%;z-index:3;}
.page-index .pc--3{width:52%;left:46%;top:43%;z-index:2;}
.page-index .pc a{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:max(6px, 1.6cqw);
  width:100%;height:100%;
  border-radius:50%;
  text-decoration:none;
  text-align:center;
  padding:9%;
  transition:transform .3s ease;}
.page-index .pc a:hover{transform:translateY(-5px);}
@media (prefers-reduced-motion: reduce){
.page-index .pc a{transition:none;}
.page-index .pc a:hover{transform:none;}
}
.page-index .pc--1 a{background:var(--blue);color:#fff;}
.page-index .pc--2 a{background:var(--blue-deep);color:#fff;}
.page-index .pc--3 a{background:color-mix(in oklab, var(--blue) 18%, #fff);color:var(--blue-deep);}
.page-index .pc-t{width:100%;
  font-family:var(--font-head);
  font-weight:700;
  font-size:calc(max(0.8125rem, 3.3cqw) + 2px);
  letter-spacing:0.06em;
  line-height:1.7;}
.page-index .pc-d{width:100%;
  font-size:calc(max(0.6875rem, 2.5cqw) + 2px);
  letter-spacing:0.06em;
  line-height:1.8;
  opacity:.92;}
.page-index .pillars-head{position:relative;
  z-index:1;
  order:-1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  margin-bottom:clamp(40px, 9vw, 56px);}
.page-index .pillars-head .en{font-family:var(--font-head);
  font-weight:700;
  font-size:calc(0.6875rem + 2px);
  letter-spacing:0.42em;
  text-indent:0.42em;
  color:var(--blue);}
.page-index .pillars-head h2{font-family:var(--font-head);
  font-weight:700;
  font-size:calc(clamp(1.375rem, 4.5vw, 2.125rem) + 2px);
  letter-spacing:0.28em;
  text-indent:0.28em;
  line-height:2;
  text-align:center;
  color:var(--ink);}
.page-index .pillars-head h2 .vline{display:inline-block;}
@media (min-width:760px){
.page-index .pillars{display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:clamp(28px, 5vw, 72px);}
.page-index .pillars-head{order:0;
    flex-direction:row;
    align-items:flex-start;
    gap:clamp(10px, 1.6vw, 18px);
    margin-bottom:0;
    padding-top:clamp(8px, 2vw, 24px);}
.page-index .pillars-head .en{writing-mode:vertical-rl;
    text-indent:0;}
.page-index .pillars-head h2{writing-mode:vertical-rl;
    text-indent:0;
    text-align:start;
    line-height:1.9;}
.page-index .pillars-head h2 .vline{display:block;}
}
@media (max-width:560px){
.page-index .pillars-circles{position:static;
    max-width:none;
    aspect-ratio:auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:clamp(14px, 4vw, 22px);}
.page-index .pillars-circles .pc{position:static;
    width:min(74%, 260px);}
.page-index .pc a{padding:14%;}
.page-index .pc-t{font-size:1.0625rem;}
.page-index .pc-d{font-size:0.875rem;}
}
.page-index .reason{position:relative;
  display:grid;
  gap:clamp(36px, 6vw, 64px);
  align-items:center;}
.page-index .reason > .ghost{top:-0.35em;right:-0.1em;}
.page-index .reason--flip > .ghost{right:auto;left:-0.1em;}
.page-index #reason1 > .ghost{top:clamp(8px, 2vw, 32px);}
@media (min-width:880px){
.page-index .reason > .ghost{right:calc(-1 * (max((100vw - 1040px) / 2, 0px) + clamp(22px, 6vw, 48px)));}
.page-index .reason--flip > .ghost{right:auto;left:calc(-1 * (max((100vw - 1040px) / 2, 0px) + clamp(22px, 6vw, 48px)));}
}
.page-index .reason-copy, .page-index .reason-visual{position:relative;z-index:1;}
.page-index .reason + .reason{margin-top:clamp(96px, 14vw, 170px);}
@media (min-width:880px){
.page-index .reason{grid-template-columns:1fr 1.05fr;}
.page-index .reason--flip .reason-copy{order:2;}
.page-index .reason--flip .reason-visual{order:1;}
}
.page-index .reason-num{position:relative;
  width:fit-content;
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(4rem, 9vw, 6.25rem);
  line-height:1;
  color:var(--blue);
  margin-bottom:clamp(14px, 2vw, 20px);
  padding:0.08em 0.12em;}
.page-index .rnum-digit{position:relative;z-index:1;}
.page-index .rnum-wave{position:absolute;
  z-index:0;
  width:2.7em;
  height:auto;
  left:-0.95em;
  top:50%;
  transform:translateY(-46%);
  overflow:visible;
  pointer-events:none;}
.page-index .rnum-wave path{stroke-dasharray:100;}
@media (prefers-reduced-motion: no-preference){
html.js .page-index .reveal .reason-num .rnum-digit{color:var(--blue-tint);transition:color .9s ease .65s;}
html.js .page-index .reveal.is-in .reason-num .rnum-digit{color:var(--blue);}
html.js .page-index .reveal .rnum-wave path{stroke-dashoffset:100;}
html.js .page-index .reveal.is-in .rnum-wave path{stroke-dashoffset:0;animation:fvDraw 1.3s cubic-bezier(.55,0,.18,1) .1s backwards;}
}
.page-index .reason-copy h3{font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(1.5rem, 6.8vw, 3.125rem);
  letter-spacing:0.05em;
  line-height:1.55;
  color:var(--ink);
  margin-bottom:clamp(20px, 3vw, 30px);
  text-wrap:pretty;}
.page-index .reason-copy h3 .hl{color:var(--blue);}
.page-index .reason-copy h3 .line-chunk{overflow-wrap:normal;word-break:keep-all;}
.page-index .reason-copy h3 .hang{margin-left:-0.5em;}
@media (min-width:880px){
.page-index .reason-copy h3{font-size:42px!important;}
.page-index .reason-copy h3 .line-chunk{white-space:nowrap;}
}
.page-index .reason-copy .lead + .lead{margin-top:1.1em;}
.page-index .reason-copy .more{margin-top:clamp(22px, 3vw, 30px);}
.page-index .reason-visual{position:relative;
  padding-bottom:clamp(40px, 7vw, 64px);}
.page-index .reason-visual .ph--main{width:86%;
  aspect-ratio:4/3;
  margin-left:auto;}
.page-index .reason-visual .ph--sub{position:absolute;
  left:0;bottom:0;
  width:42%;
  aspect-ratio:1;
  box-shadow:0 22px 52px rgba(16,24,38,0.14);}
.page-index .reason--flip .reason-visual .ph--main{margin-left:0;}
.page-index .reason--flip .reason-visual .ph--sub{left:auto;right:0;}
@media (max-width:879px){
.page-index .reason-visual{width:100vw;
    margin-left:calc(50% - 50vw);}
.page-index .reason-visual .ph--main{width:92%;}
.page-index .reason-visual .ph--sub{width:48%;}
}
@media (min-width:880px){
.page-index .reason-visual{--bleed: calc(max((100vw - 1040px) / 2, 0px) + clamp(22px, 6vw, 48px));}
.page-index .reason:not(.reason--flip) .reason-visual{width:calc(100% + var(--bleed));
    margin-right:calc(-1 * var(--bleed));}
.page-index .reason--flip .reason-visual{width:calc(100% + var(--bleed));
    margin-left:calc(-1 * var(--bleed));}
}
.page-index .checks{list-style:none;
  display:grid;gap:0;
  margin-block:clamp(20px, 3vw, 28px);
  border-top:1px solid var(--line);}
.page-index .checks li{display:flex;align-items:baseline;gap:14px;
  padding:13px 4px;
  border-bottom:1px solid var(--line);
  font-weight:500;
  color:var(--ink);
  letter-spacing:0.06em;}
.page-index .checks li .n{font-family:var(--font-head);
  font-weight:900;
  font-size:0.75rem;
  letter-spacing:0.12em;
  color:var(--blue);
  flex:none;}
.page-index .sec--nums{background:var(--blue-deep);
  padding-block:clamp(56px, 8vw, 88px);}
.page-index .sec--nums .c-head{margin-bottom:clamp(36px, 5vw, 56px);}
.page-index .sec--nums .c-head .en{color:#8FC1F2;}
.page-index .sec--nums .c-head h2{color:#fff;
  font-weight:900;
  font-size:calc(clamp(1.5rem, 4vw, 2.125rem) + 4px);
  letter-spacing:0.18em;
  text-indent:0.18em;}
.page-index .num-grid{display:grid;gap:clamp(28px, 5vw, 0px);
  list-style:none;}
@media (min-width:720px){
.page-index .num-grid{grid-template-columns:repeat(3,1fr);}
.page-index .num-grid li + li{border-left:1px solid rgba(255,255,255,0.22);}
}
.page-index .num-cell{text-align:center;
  padding:clamp(4px,1vw,12px) clamp(12px,2vw,24px);}
.page-index .num-cell .label{display:block;
  font-family:var(--font-head);
  font-weight:700;
  font-size:1.0625rem;
  letter-spacing:0.24em;
  text-indent:0.24em;
  color:#A9CBF4;
  margin-bottom:14px;}
.page-index .num-cell .value{display:block;
  white-space:nowrap;
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(3.5rem, 13vw, 3.875rem);
  line-height:1.1;
  color:#fff;
  letter-spacing:0.02em;
  font-variant-numeric:tabular-nums;}
.page-index .num-cell .value .count{font-variant-numeric:tabular-nums;}
.page-index .num-cell .value small{font-size:0.38em;
  font-weight:700;
  letter-spacing:0.1em;
  margin-left:4px;
  color:#A9CBF4;}
.page-index .num-cell .note{display:block;
  font-size:0.75rem;
  color:rgba(255,255,255,0.62);
  margin-top:12px;
  letter-spacing:0.08em;}
.page-index .biz-grid{display:grid;gap:clamp(28px, 5vw, 48px);
  align-items:center;}
.page-index .biz-grid > .reveal:first-child{width:100vw;
  margin-left:calc(50% - 50vw);}
@media (min-width:880px){
.page-index .biz-grid{grid-template-columns:45vw 1fr;
    column-gap:clamp(36px, 5vw, 64px);
    width:100vw;
    max-width:none;
    margin-left:calc(50% - 50vw);
    padding-inline:0;}
.page-index .biz-grid > .reveal:first-child{width:auto;
    margin-left:0;}
.page-index .biz-grid > .reveal:last-child{padding-right:max(clamp(22px, 6vw, 48px), calc(50vw - 520px));}
}
.page-index .biz-grid .ph{aspect-ratio:16/10;}
@media (max-width:879px){
.page-index .sec:has(.biz-grid){padding-top:0;}
}
.page-index .biz-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(26px, 4vw, 36px);}
@media (max-width:600px){
.page-index .sec--nums .c-head h2{letter-spacing:0.06em;
    text-indent:0.06em;
    white-space:nowrap;
    font-size:calc(clamp(1.25rem, 5.2vw, 1.5rem) + 4px);}
.page-index .bar-head{align-items:flex-start;}
.page-index .bar-head::before{align-self:stretch;height:auto;}
.page-index .bar-head__text .line-chunk:first-child{display:block;}
.page-index .bar-head--inline .bar-head__text .line-chunk:first-child{display:inline-block;}
.page-index .btn-row{text-align:center;}
.page-index .btn-row .btn{display:inline-block;width:min(360px,100%);}
.page-index .biz-links{flex-direction:column;align-items:center;}
.page-index .biz-links .btn{width:min(360px,100%);}
.page-index .contact-actions{align-items:center;}
}
.page-index .contact-grid{display:grid;gap:clamp(36px, 6vw, 72px);
  align-items:center;}
@media (min-width:880px){
.page-index .contact-grid{grid-template-columns:1fr 1.05fr;}
}
.page-index .contact-copy .lead{margin-bottom:clamp(26px, 4vw, 36px);}
.page-index .contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:20px;}
.page-index .contact-actions .btn{min-width:min(320px,100%);}
.page-index .contact-tel{color:var(--ink);text-decoration:none;
  display:inline-flex;flex-direction:column;gap:2px;
  min-height:44px;justify-content:center;}
.page-index .contact-tel .tel-num{font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(1.5rem, 4vw, 1.75rem);
  letter-spacing:0.1em;
  color:var(--ink);}
.page-index .contact-tel .tel-num::before{content:"TEL";
  font-size:0.5em;
  font-weight:700;
  color:var(--blue);
  letter-spacing:0.2em;
  margin-right:0.8em;}
.page-index .contact-tel .tel-note{font-size:0.75rem;color:var(--muted);letter-spacing:0.1em;}
.page-index .contact-visual{position:relative;
  padding-bottom:clamp(40px, 7vw, 64px);}
.page-index .contact-visual .ph--a{width:86%;
  aspect-ratio:4/3;
  margin-left:auto;}
.page-index .contact-visual .ph--b{position:absolute;
  left:0;bottom:0;
  width:42%;
  aspect-ratio:1;
  box-shadow:0 22px 52px rgba(16,24,38,0.14);}
@media (max-width:879px){
.page-index .contact-visual{width:100vw;
    margin-left:calc(50% - 50vw);}
.page-index .contact-visual .ph--a{width:92%;}
.page-index .contact-visual .ph--b{width:48%;}
}
@media (min-width:880px){
.page-index .contact-visual{--bleed: calc(max((100vw - 1040px) / 2, 0px) + clamp(22px, 6vw, 48px));}
.page-index .contact-visual{width:calc(100% + var(--bleed));
    margin-right:calc(-1 * var(--bleed));}
}
.page-index .site-footer{border-top:1px solid var(--line);
  padding-block:clamp(48px, 8vw, 72px) clamp(28px, 5vw, 40px);
  font-size:0.875rem;}
.page-index .footer-grid{display:grid;gap:clamp(36px, 6vw, 64px);
  padding-bottom:clamp(36px, 6vw, 56px);}
@media (min-width:880px){
.page-index .footer-grid{grid-template-columns:1.2fr 1fr;}
}
.page-index .footer-brand .mark{width:60px;
  height:auto;
  margin-bottom:18px;}
.page-index .footer-brand .name{font-family:var(--font-head);
  font-weight:700;
  letter-spacing:0.2em;
  color:var(--ink);}
.page-index .footer-brand address{font-style:normal;
  margin-top:14px;
  line-height:2.2;
  color:var(--muted);
  font-size:0.8125rem;
  letter-spacing:0.06em;}
.page-index .footer-nav{display:grid;gap:4px 28px;grid-template-columns:repeat(2,1fr);list-style:none;}
.page-index .footer-nav a{display:inline-flex;align-items:center;
  min-height:40px;
  color:var(--text);text-decoration:none;
  letter-spacing:0.1em;
  font-size:0.8125rem;}
.page-index .footer-nav a:hover{color:var(--blue);text-decoration:underline;}
.page-index .footer-nav .group{grid-column:1 / -1;
  color:#8594a6;
  font-size:0.6875rem;
  letter-spacing:0.3em;
  font-family:var(--font-head);
  font-weight:700;
  margin-top:12px;}
.page-index .copyright{border-top:1px solid var(--line);
  padding-top:22px;
  font-size:0.6875rem;
  letter-spacing:0.18em;
  color:var(--muted);
  text-align:center;}
.page-index .fixed-cta{position:fixed;
  z-index:80;
  right:clamp(12px, 3vw, 20px);
  bottom:clamp(12px, 3vw, 20px);
  display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;
  background:var(--blue);
  color:#fff;
  text-decoration:none;
  padding:12px 20px;
  min-height:54px;
  width:auto;
  box-shadow:0 10px 28px rgba(7,59,140,0.34);
  transition:background-color .25s ease;}
.page-index .fixed-cta:hover{background:var(--blue-deep);}
.page-index .fixed-cta .s{font-size:0.6875rem;
  letter-spacing:0.18em;
  text-indent:0.18em;
  opacity:0.92;
  white-space:nowrap;}
.page-index .fixed-cta .b{font-family:var(--font-head);
  font-weight:700;
  font-size:1.0625rem;
  letter-spacing:0.06em;
  text-indent:0.06em;
  white-space:nowrap;}
.page-index .fixed-cta .b .line-chunk:first-child{margin-right:-0.1em;}
@media (min-width:880px){
.page-index .fixed-cta{flex-direction:column;
    gap:8px;
    right:clamp(16px, 2vw, 28px);
    bottom:clamp(16px, 2vw, 28px);
    aspect-ratio:1;
    min-width:118px;
    padding:16px;}
.page-index .fixed-cta .b{font-size:0.875rem;line-height:1.7;text-align:center;white-space:normal;}
}
.page-index [class*="design-parts-52"] .container, .page-index [class*="parts131415_blog"] .container-lg{position:relative;z-index:2;}
.page-index [class*="design-parts-52"]{background:#F1F6FD !important;
  margin-top:0;}
.page-index [class*="design-parts-52"] .content{max-width:1040px;
  margin-inline:auto;
  padding-block:14px;}
.page-index [class*="design-parts-52"] .banner-area{display:inline-flex;align-items:center;justify-content:center;
  background:#0B5BD7 !important;
  color:#fff !important;
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-weight:700;
  font-size:0.8125rem;
  letter-spacing:0.26em;
  text-indent:0.26em;
  padding:7px 20px;
  margin:0 0 10px;
  line-height:1.4;}
.page-index [class*="design-parts-52"] ul{list-style:none;margin:0;padding:0;}
.page-index [class*="design-parts-52"] li a{display:flex;align-items:center;
  min-height:44px;
  padding:8px 0;
  text-decoration:none;
  color:#101826 !important;}
.page-index [class*="design-parts-52"] .parts-52-textarea{display:flex;flex-direction:column;gap:2px;}
.page-index [class*="design-parts-52"] .date{font-family:"Zen Kaku Gothic New",sans-serif;
  font-weight:700;
  font-size:0.8125rem;
  letter-spacing:0.1em;
  color:#0B5BD7 !important;
  flex:none;}
.page-index [class*="design-parts-52"] .parts-52-textarea span + span{font-size:0.9375rem;
  line-height:1.9;
  letter-spacing:0.05em;}
.page-index [class*="design-parts-52"] li a:hover span + span{color:#0B5BD7;
  text-decoration:underline;}
.page-index [class*="design-parts-52"] li a:focus-visible{outline:3px solid #0B5BD7;outline-offset:3px;}
@media (min-width:992px){
.page-index [class*="design-parts-52"] .content{display:flex;align-items:center;gap:30px;
    padding-block:0;}
.page-index [class*="design-parts-52"] .banner-area{margin:0;flex:none;min-width:112px;align-self:center;}
.page-index [class*="design-parts-52"] ul{flex:1;}
.page-index [class*="design-parts-52"] li{display:flex;align-items:center;min-height:60px;}
.page-index [class*="design-parts-52"] li a{width:100%;padding:0;min-height:60px;}
.page-index [class*="design-parts-52"] .parts-52-textarea{flex-direction:row;align-items:center;gap:26px;}
}
.page-index [class*="parts131415_blog"]{background-image:none !important;
  background-color:#FFFFFF !important;
  padding:clamp(34px, 6vw, 68px) clamp(22px, 6vw, 48px) !important;
  padding-bottom:clamp(51px, 9vw, 102px) !important;}
.page-index [class*="parts131415_blog"] .container-lg{max-width:1040px;margin-inline:auto;padding:0;}
.page-index [class*="parts131415_blog"] [class*="title_wrap"]{text-align:center;
  padding-top:clamp(17px, 3vw, 34px) !important;
  padding-bottom:clamp(17px, 3vw, 34px) !important;
  margin-bottom:clamp(8px, 1.5vw, 16px);}
.page-index [class*="parts131415_blog"] [class*="title_wrap"] h2{color:#101826 !important;
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-weight:700;
  font-size:clamp(1.375rem, 3.6vw, 1.875rem);
  letter-spacing:0.3em;
  text-indent:0.3em;
  line-height:1.4;
  margin:0 0 8px;}
.page-index [class*="parts131415_blog"] [class*="title_wrap"] p{color:#0B5BD7 !important;
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-weight:700;
  font-size:0.75rem;
  letter-spacing:0.42em;
  text-indent:0.42em;
  margin:0;}
.page-index [class*="parts131415_blog"] .row{display:grid !important;
  grid-template-columns:1fr;
  gap:24px;
  margin:0;padding:0;}
.page-index [class*="parts131415_blog"] .col{width:auto;padding:0;}
.page-index [class*="parts131415_blog"] .card{background:#fff;
  border:1px solid #DEE5EE !important;
  border-radius:0 !important;
  height:100%;}
.page-index [class*="parts131415_blog"] .card-body{padding:clamp(20px, 3vw, 26px);
  display:flex;flex-direction:column;gap:12px;}
.page-index [class*="parts131415_blog"] .card-title{color:#0B5BD7 !important;
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-weight:700;
  font-size:0.75rem;
  letter-spacing:0.26em;
  text-indent:0.26em;
  text-align:center;
  margin:0;}
.page-index [class*="parts131415_blog"] .card-body a{display:flex;flex-direction:column;gap:14px;
  text-decoration:none;
  color:#101826 !important;}
.page-index [class*="parts131415_blog"] .card-text{margin:0;
  font-weight:700;
  font-size:1rem;
  line-height:1.9;
  letter-spacing:0.05em;
  color:#101826;}
.page-index [class*="parts131415_blog"] [class*="thumbnail"]{padding:20px 0 10px !important;
  margin-top:0 !important;}
.page-index [class*="parts131415_blog"] [class*="thumbnail"] img{width:100%;
  height:auto;
  aspect-ratio:16/9;
  object-fit:cover;
  display:block;}
.page-index [class*="parts131415_blog"] .card-body a:hover .card-text{color:#0B5BD7;}
.page-index [class*="parts131415_blog"] .card-body a:focus-visible{outline:3px solid #0B5BD7;outline-offset:3px;}
@media (min-width:576px){
.page-index [class*="parts131415_blog"] .row{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:992px){
.page-index [class*="parts131415_blog"] .row{grid-template-columns:repeat(3,1fr);}
}


/* ===== [2] work ===== */
.page-work{--blue:#0B5BD7;
  --blue-deep:#073B8C;
  --blue-tint:#F1F6FD;
  --gray-band:#F4F6F9;
  --ink:#101826;
  --text:#2A3441;
  --muted:#5B6877;
  --line:#DEE5EE;
  --ghost:#EEF2F8;
  --white:#FFFFFF;
  --font-head:"Zen Kaku Gothic New",sans-serif;
  --font-body:"Zen Kaku Gothic New",sans-serif;}
.page-work *{margin:0;padding:0;box-sizing:border-box;}
.page-work{font-family:var(--font-body);
  color:var(--text);
  background:var(--white);
  font-size:0.9375rem;
  line-height:2.1;
  font-weight:500;
  letter-spacing:0.05em;
  overflow-wrap:break-word;
  overflow-x:clip;
  padding-bottom:84px;}
  
  .page-work.work-new{padding-bottom:0;}

@media (min-width:880px){
.page-work{font-size:1rem;padding-bottom:0;}
}
.page-work span.line-chunk{display:inline-block;
  overflow-wrap:anywhere;
  word-break:normal;}
.page-work img{max-width:100%;height:auto;display:block;}
.page-work a{color:var(--blue);}
.page-work a:focus-visible, .page-work button:focus-visible{outline:3px solid var(--blue);
  outline-offset:3px;
  border-radius:2px;}
.page-work .skip-link{position:absolute;left:-9999px;top:0;z-index:300;
  background:var(--blue);color:#fff;padding:12px 20px;text-decoration:none;}
.page-work .skip-link:focus{left:0;}
.page-work .container{width:100%;
  max-width:1040px;
  margin-inline:auto;
  padding-inline:clamp(22px, 6vw, 48px);}
.page-work .container--narrow{max-width:760px;}
.page-work .sec{position:relative;
  padding-block:clamp(64px, 10vw, 120px);}
.page-work .sec--band{background:var(--blue-tint);}
.page-work .sec--band > .ghost{color:#E2EBF8;}
.page-work .ghost{position:absolute;
  z-index:0;
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(3.5rem, 12vw, 9rem);
  letter-spacing:0.06em;
  line-height:1;
  color:var(--ghost);
  white-space:nowrap;
  pointer-events:none;
  user-select:none;}
.page-work .ghost--tr{top:clamp(20px,3vw,44px);right:-0.1em;}
.page-work .ghost--tl{top:clamp(20px,3vw,44px);left:-0.05em;}
.page-work .sec > .container{position:relative;z-index:1;}
.page-work .c-head{text-align:center;
  margin-bottom:clamp(36px, 6vw, 64px);}
.page-work .c-head .en{display:block;
  font-family:var(--font-head);
  font-weight:700;
  font-size:0.9375rem;
  letter-spacing:0.42em;
  text-indent:0.42em;
  color:var(--blue);
  margin-bottom:14px;}
.page-work .c-head h2{font-family:var(--font-head);
  font-weight:700;
  font-size:clamp(2rem, 4.6vw, 2.5rem);
  letter-spacing:0.04em;
  text-indent:0.04em;
  color:var(--ink);
  line-height:1.7;}
.page-work .c-head .sub{margin-top:16px;
  color:var(--muted);
  font-size:1rem;
  letter-spacing:0.08em;
  text-wrap:pretty;}
.page-work .bar-head{display:flex;align-items:stretch;gap:16px;
  font-family:var(--font-head);
  font-weight:700;
  font-size:clamp(1.875rem, 3.9vw, 2.125rem);
  letter-spacing:0.2em;
  color:var(--ink);
  margin-bottom:clamp(24px, 4vw, 36px);}
.page-work .bar-head::before{content:"";
  width:5px;height:auto;background:var(--blue);flex:none;}
.page-work .bar-head__text{line-height:1.6;}
.page-work .lead{max-width:40em;
  text-wrap:pretty;}
.page-work .lead strong{color:var(--ink);font-weight:700;}
.page-work .lead-center{text-align:center;margin-inline:auto;}
@media (max-width:599px){
.page-work .lead-center{text-align:left;}
}
.page-work .btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;
  min-height:58px;
  padding:14px 40px;
  font-family:var(--font-head);
  font-weight:700;
  font-size:0.9375rem;
  letter-spacing:0.18em;
  text-indent:0.18em;
  text-decoration:none;
  border-radius:0;
  transition:background-color .25s ease,color .25s ease;}
.page-work .btn--primary{background:var(--blue);color:#fff;border:1px solid var(--blue);}
.page-work .btn--primary:hover{background:var(--blue-deep);border-color:var(--blue-deep);}
.page-work .btn--ghost{background:#fff;color:var(--ink);border:1px solid var(--ink);}
.page-work .btn--ghost:hover{background:var(--ink);color:#fff;}
.page-work .ph{position:relative;
  background:
    repeating-linear-gradient(-45deg, rgba(11,91,215,0.045) 0 1px, transparent 1px 11px),
    linear-gradient(165deg,#E9F0F9,#F7FAFD);
  border:1px solid var(--line);
  display:grid;place-items:center;
  overflow:hidden;}
.page-work .ph > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.page-work .ph span{position:relative;
  color:#8493A5;
  font-size:0.75rem;
  letter-spacing:0.14em;
  font-weight:500;
  text-align:center;
  padding:1em;
  line-height:1.8;}
@media (prefers-reduced-motion: no-preference){
html.js .page-work .reveal{opacity:0;
    transform:translateY(24px);
    transition:opacity .9s ease, transform 1.1s cubic-bezier(.16,1,.3,1);}
html.js .page-work .reveal.is-in{opacity:1;transform:none;}
}
.page-work .ch{display:inline-block;}
html.js .page-work .chars .ch{opacity:0;
  transform:translateY(0.65em);
  transition:opacity .55s ease, transform .9s cubic-bezier(.16,1,.3,1);
  transition-delay:calc(var(--ci) * 30ms);}
html.js .page-work .chars.chars-in .ch{opacity:1;transform:none;}
.page-work .site-header{position:fixed;top:0;left:0;right:0;z-index:100;
  background:transparent;
  pointer-events:none;}
.page-work .site-header .brand, .page-work .site-header .gnav, .page-work .site-header .menu-btn{pointer-events:auto;}
.page-work .site-header .gnav, .page-work .site-header .menu-btn{transition:background-color .3s ease,box-shadow .3s ease;}
.page-work .site-header.is-scrolled .gnav{background:var(--ink);
  box-shadow:0 10px 28px rgba(16,24,38,0.22);}
.page-work .site-header.is-scrolled .gnav > ul > li > a, .page-work .site-header.is-scrolled .gnav .navbtn{color:#fff;}
.page-work .site-header.is-scrolled .gnav > ul > li > a:hover, .page-work .site-header.is-scrolled .gnav .navbtn:hover{color:color-mix(in oklab, var(--blue) 40%, #fff);}
.page-work .site-header.is-scrolled .gnav .nav-cta a{color:color-mix(in oklab, var(--blue) 40%, #fff);}
.page-work .site-header.is-scrolled .menu-btn{background:var(--ink);
  border-color:var(--ink);
  box-shadow:0 10px 28px rgba(16,24,38,0.22);}
.page-work .site-header.is-scrolled .menu-btn .bar{background:#fff;}
.page-work .site-header.is-scrolled .brand{box-shadow:0 10px 28px rgba(16,24,38,0.14);}
.page-work .header-inner{display:flex;align-items:flex-start;justify-content:space-between;}
.page-work .brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:clamp(84px, 11vw, 112px);
  aspect-ratio:1;
  background:#fff;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:var(--ink);
  text-decoration:none;
  flex:none;}
.page-work .brand .mark{width:clamp(32px, 4.5vw, 44px);height:auto;}
.page-work .brand .en{font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(0.8125rem, 1.5vw, 1rem);
  letter-spacing:0.1em;
  text-indent:0.1em;
  line-height:1;
  color:var(--blue);
  white-space:nowrap;}
.page-work .brand .ja{font-size:0.5rem;letter-spacing:0;text-indent:0;line-height:1;
  color:var(--muted);white-space:nowrap;}
.page-work .gnav{display:none;}
@media (min-width:960px){
.page-work .gnav{display:block;background:#fff;}
.page-work .gnav > ul{display:flex;align-items:center;gap:2px;list-style:none;padding:6px 18px;}
.page-work .gnav > ul > li{position:relative;}
.page-work .gnav a, .page-work .gnav .navbtn{display:inline-flex;align-items:center;gap:7px;
    min-height:44px;padding:8px 14px;text-decoration:none;color:var(--ink);
    font-family:var(--font-head);font-weight:700;font-size:0.8125rem;letter-spacing:0.14em;
    background:none;border:none;cursor:pointer;}
.page-work .gnav a:hover, .page-work .gnav .navbtn:hover{color:var(--blue);}
.page-work .gnav .nav-cta a{color:var(--blue);}
.page-work .gnav a[aria-current="page"]{color:var(--blue);position:relative;}
.page-work .gnav a[aria-current="page"]::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;background:var(--blue);}
.page-work .navbtn .caret{width:7px;height:7px;flex:none;
    border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
    transform:rotate(45deg) translateY(-2px);}
.page-work .subnav{position:absolute;top:100%;right:0;min-width:230px;background:#fff;
    border:1px solid var(--line);box-shadow:0 14px 36px rgba(16,24,38,0.10);
    list-style:none;padding:8px;display:none;}
.page-work li.has-sub:hover .subnav, .page-work li.has-sub:focus-within .subnav, .page-work li.has-sub[data-open="true"] .subnav{display:block;}
.page-work .subnav a{display:flex;width:100%;min-height:48px;font-weight:500;letter-spacing:0.08em;}
.page-work .subnav a:hover{background:var(--blue-tint);color:var(--blue);}
}
.page-work .menu-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:56px;height:56px;
  background:#fff;border:1px solid var(--line);border-top:none;border-right:none;cursor:pointer;}
.page-work .menu-btn .bar{width:22px;height:2px;background:var(--ink);transition:transform .25s ease,opacity .25s ease;}
.page-work .menu-btn[aria-expanded="true"] .bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
.page-work .menu-btn[aria-expanded="true"] .bar:nth-child(2){opacity:0;}
.page-work .menu-btn[aria-expanded="true"] .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media (min-width:960px){
.page-work .menu-btn{display:none;}
}
.page-work .mnav{display:none;position:fixed;inset:0;z-index:90;background:#fff;overflow-y:auto;padding-top:72px;}
.page-work .mnav.is-open{display:block;}
.page-work .mnav ul{list-style:none;padding-bottom:40px;}
.page-work .mnav a{display:flex;align-items:center;min-height:54px;padding:8px clamp(24px,7vw,40px);
  text-decoration:none;color:var(--ink);font-family:var(--font-head);font-weight:700;
  letter-spacing:0.12em;border-bottom:1px solid var(--line);}
.page-work .mnav a[aria-current="page"]{color:var(--blue);}
.page-work .mnav .mnav-group{padding:16px clamp(24px,7vw,40px) 6px;color:#717b86;font-size:0.6875rem;
  font-family:var(--font-head);font-weight:700;letter-spacing:0.3em;
  border-bottom:1px solid var(--line);background:#fff;}
.page-work .mnav .sub a{padding-left:calc(clamp(24px,7vw,40px) + 1.2em);font-weight:500;background:#fff;}
.page-work .mnav .mnav-cta{padding:24px clamp(24px,7vw,40px);border-bottom:none;display:block;}
.page-work .mnav .mnav-cta .btn{width:100%;color:#fff;}
.page-work .page-hero{position:relative;}
.page-work .hero-banner{position:relative;
  width:100%;
  aspect-ratio:16/13;
  overflow:hidden;
  background:var(--blue-deep);}
@media (min-width:600px){
.page-work .hero-banner{aspect-ratio:16/8;}
}
@media (min-width:980px){
.page-work .hero-banner{aspect-ratio:24/8;}
}
.page-work .hero-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.page-work .hero-banner::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(6,26,58,0.82) 0%, rgba(6,26,58,0.62) 42%, rgba(6,26,58,0.22) 100%);}
.page-work .hero-overlay{position:absolute;inset:0;z-index:2;
  display:flex;align-items:center;}
.page-work .hero-overlay-inner{width:100%;max-width:1040px;margin-inline:auto;
  padding-inline:clamp(22px, 6vw, 48px);
  padding-top:64px;
  color:#fff;}
.page-work .hero-kicker{display:inline-flex;align-items:center;gap:12px;
  font-family:var(--font-head);font-weight:700;
  margin-bottom:clamp(14px, 2vw, 20px);}
.page-work .hero-kicker .ja{font-size:0.875rem;letter-spacing:0.3em;text-indent:0.3em;}
.page-work .hero-kicker .en{font-size:0.8125rem;letter-spacing:0.34em;text-indent:0.34em;
  color:#9FC6F4;padding-left:12px;border-left:1px solid rgba(255,255,255,0.4);}
.page-work .hero-overlay h1{font-family:var(--font-head);font-weight:900;
  font-size:clamp(1.875rem, 6vw, 3.5rem);
  line-height:1.3;letter-spacing:0.04em;
  text-wrap:pretty;}
.page-work .hero-overlay .cap{margin-top:clamp(14px, 2.4vw, 22px);
  max-width:30em;
  font-size:clamp(0.875rem, 2vw, 1.0625rem);
  font-weight:500;line-height:1.95;letter-spacing:0.08em;
  color:rgba(255,255,255,0.92);text-wrap:pretty;}
@media (max-width:979px){
.page-work .hero-banner::after{background:linear-gradient(180deg,
      rgba(6,26,58,0.72) 0%, rgba(6,26,58,0.60) 45%, rgba(6,26,58,0.82) 100%);}
.page-work .hero-overlay{justify-content:center;}
.page-work .hero-overlay-inner{text-align:center;}
.page-work .hero-kicker{justify-content:center;}
.page-work .hero-overlay .cap{margin-left:auto;margin-right:auto;}
}
.page-work .crumb-bar{border-bottom:1px solid var(--line);background:#fff;}
.page-work .crumb{max-width:1040px;margin-inline:auto;
  padding:12px clamp(22px, 6vw, 48px);
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  font-size:0.75rem;letter-spacing:0.1em;color:var(--muted);
  font-family:var(--font-head);font-weight:700;}
.page-work .crumb a{color:var(--muted);text-decoration:none;min-height:24px;display:inline-flex;align-items:center;}
.page-work .crumb a:hover{color:var(--blue);text-decoration:underline;}
.page-work .crumb .sep{color:var(--line);}
.page-work .crumb .here{color:var(--ink);}
.page-work .intro-block{text-align:center;}
.page-work .intro-block .en{display:block;font-family:var(--font-head);font-weight:700;
  font-size:0.9375rem;letter-spacing:0.42em;text-indent:0.42em;color:var(--blue);margin-bottom:14px;}
.page-work .intro-block h2{font-family:var(--font-head);font-weight:700;
  font-size:clamp(2rem, 4.6vw, 2.5rem);
  letter-spacing:0.04em;line-height:1.8;color:var(--ink);
  margin-bottom:clamp(20px, 3vw, 28px);text-wrap:pretty;}
.page-work .intro-block .lead{font-size:1rem;line-height:2.1;}
.page-work .intro-block .lead + .lead{margin-top:1.1em;}
.page-work .works-main{list-style:none;
  display:grid;gap:clamp(18px, 3vw, 24px);}
@media (min-width:760px){
.page-work .works-main{grid-template-columns:repeat(3,1fr);}
}
.page-work .wcard{position:relative;
  background:#fff;border:1px solid var(--line);
  display:flex;flex-direction:column;
  height:100%;overflow:hidden;}
.page-work .wcard-photo{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;
  background:var(--ghost);}
.page-work .wcard-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.page-work .wcard-body{padding:clamp(26px, 3vw, 34px) clamp(24px, 3vw, 32px) clamp(30px, 3.6vw, 38px);
  display:flex;flex-direction:column;gap:12px;flex:1;}
.page-work .wcard h3{font-family:var(--font-head);font-weight:700;
  font-size:clamp(1.1875rem, 2.4vw, 1.375rem);
  letter-spacing:0.04em;line-height:1.7;color:var(--ink);}
.page-work .wcard h3 .en{display:block;font-size:0.8125rem;letter-spacing:0.32em;text-indent:0.32em;
  color:var(--blue);margin-bottom:8px;font-weight:700;}
.page-work .wcard p{font-size:0.9375rem;line-height:2;color:var(--text);text-wrap:pretty;}
.page-work .feat-grid{list-style:none;display:grid;gap:clamp(18px, 3vw, 24px);}
@media (min-width:720px){
.page-work .feat-grid{grid-template-columns:repeat(3,1fr);}
}
.page-work .feat{background:#fff;border:1px solid var(--line);
  display:flex;flex-direction:column;height:100%;overflow:hidden;}
.page-work .feat-photo{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--ghost);}
.page-work .feat-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.page-work .feat-body{padding:clamp(26px, 3vw, 34px) clamp(24px, 3vw, 32px) clamp(30px, 3.6vw, 38px);
  display:flex;flex-direction:column;gap:12px;flex:1;}
.page-work .feat h3{font-family:var(--font-head);font-weight:700;
  font-size:clamp(1.1875rem, 2.3vw, 1.3125rem);
  letter-spacing:0.04em;line-height:1.7;color:var(--ink);}
.page-work .feat p{font-size:0.9375rem;line-height:1.95;color:var(--text);text-wrap:pretty;}
.page-work .others{display:grid;gap:clamp(24px, 4vw, 40px);align-items:start;}
@media (min-width:880px){
.page-work .others{grid-template-columns:0.8fr 1.2fr;align-items:stretch;}
.page-work .others-list{height:100%;grid-auto-rows:1fr;}
}
.page-work .others-list{list-style:none;display:grid;grid-template-columns:1fr;}
.page-work .others-list li:first-child{border-top:1px solid var(--line);}
@media (min-width:560px){
.page-work .others-list{grid-template-columns:1fr 1fr;column-gap:clamp(20px,3vw,40px);}
.page-work .others-list li:nth-child(2){border-top:1px solid var(--line);}
}
.page-work .others-list li{display:flex;align-items:center;gap:13px;min-height:52px;padding:8px 4px;
  border-bottom:1px solid var(--line);
  font-weight:500;color:var(--ink);letter-spacing:0.04em;font-size:1.0625rem;}
.page-work .others-list li::before{content:"";width:7px;height:7px;background:var(--blue);flex:none;}
.page-work .others-note{margin-top:clamp(20px, 2.6vw, 28px);
  border-left:2px solid var(--blue);background:#fff;
  padding:clamp(16px, 2.2vw, 22px) clamp(18px, 2.6vw, 26px);
  font-weight:500;line-height:1.9;color:var(--text);text-wrap:pretty;}
.page-work .others-note strong{color:var(--ink);font-weight:700;}
.page-work .dan{display:grid;gap:clamp(32px, 5vw, 60px);align-items:center;}
@media (min-width:880px){
.page-work .dan{grid-template-columns:0.95fr 1.05fr;}
.page-work .dan-visual{margin-right:calc(-1 * (max((100vw - 1040px) / 2, 0px) + clamp(22px, 6vw, 48px)));}
}
.page-work .dan-copy .num{font-family:var(--font-head);font-weight:700;
  font-size:0.9375rem;letter-spacing:0.42em;text-indent:0.42em;color:var(--blue);margin-bottom:14px;}
.page-work .dan-copy h2{font-family:var(--font-head);font-weight:900;
  font-size:clamp(2.25rem, 5.6vw, 3rem);
  letter-spacing:0.04em;line-height:1.5;color:var(--ink);
  margin-bottom:clamp(18px, 2.6vw, 24px);text-wrap:pretty;}
.page-work .dan-copy h2 .hl{color:var(--blue);}
.page-work .dan-copy .lead + .lead{margin-top:1.1em;}
.page-work .dan-points{list-style:none;display:grid;gap:0;margin-top:clamp(24px, 3.4vw, 32px);border-top:1px solid var(--line);}
.page-work .dan-points li{display:flex;align-items:flex-start;gap:16px;padding:16px 4px;border-bottom:1px solid var(--line);}
.page-work .dan-points .n{font-family:var(--font-head);font-weight:900;font-size:0.75rem;letter-spacing:0.1em;
  color:var(--blue);flex:none;padding-top:0.3em;min-width:3.6em;}
.page-work .dan-points .t{display:block;font-family:var(--font-head);font-weight:700;font-size:1.25rem;letter-spacing:0.05em;
  color:var(--ink);line-height:1.7;margin-bottom:2px;}
.page-work .dan-points .d{font-size:0.9375rem;color:var(--text);line-height:1.9;}
.page-work .dan-visual .ph{width:100%;aspect-ratio:4/3;}
@media (min-width:880px){
.page-work .dan-visual .ph{aspect-ratio:16/10;}
}
.page-work .contact{text-align:center;}
.page-work .contact .lead{margin-inline:auto;margin-bottom:clamp(28px, 4vw, 38px);text-align:center;}
.page-work .contact-actions{display:flex;flex-direction:column;align-items:center;gap:22px;}
.page-work .contact-actions .btn{min-width:min(340px,100%);}
.page-work .contact-tel{color:var(--ink);text-decoration:none;
  display:inline-flex;flex-direction:column;gap:2px;align-items:center;min-height:44px;justify-content:center;}
.page-work .contact-tel .tel-num{font-family:var(--font-head);font-weight:900;
  font-size:clamp(1.5rem, 4vw, 1.75rem);letter-spacing:0.1em;color:var(--ink);}
.page-work .contact-tel .tel-num::before{content:"TEL";font-size:0.5em;font-weight:700;color:var(--blue);letter-spacing:0.2em;margin-right:0.8em;}
.page-work .contact-tel .tel-note{font-size:0.75rem;color:var(--muted);letter-spacing:0.1em;}
.page-work .site-footer{border-top:1px solid var(--line);
  padding-block:clamp(48px, 8vw, 72px) clamp(28px, 5vw, 40px);
  font-size:0.875rem;}
.page-work .footer-grid{display:grid;gap:clamp(36px, 6vw, 64px);padding-bottom:clamp(36px, 6vw, 56px);}
@media (min-width:880px){
.page-work .footer-grid{grid-template-columns:1.2fr 1fr;}
}
.page-work .footer-brand .mark{width:60px;height:auto;margin-bottom:18px;}
.page-work .footer-brand .name{font-family:var(--font-head);font-weight:700;letter-spacing:0.2em;color:var(--ink);}
.page-work .footer-brand address{font-style:normal;margin-top:14px;line-height:2.2;color:var(--muted);
  font-size:0.8125rem;letter-spacing:0.06em;}
.page-work .footer-nav{display:grid;gap:4px 28px;grid-template-columns:repeat(2,1fr);list-style:none;}
.page-work .footer-nav a{display:inline-flex;align-items:center;min-height:40px;color:var(--text);text-decoration:none;
  letter-spacing:0.1em;font-size:0.8125rem;}
.page-work .footer-nav a:hover{color:var(--blue);text-decoration:underline;}
.page-work .footer-nav .group{grid-column:1 / -1;color:#8594a6;font-size:0.6875rem;letter-spacing:0.3em;
  font-family:var(--font-head);font-weight:700;margin-top:12px;}
.page-work .copyright{border-top:1px solid var(--line);padding-top:22px;
  font-size:0.6875rem;letter-spacing:0.18em;color:var(--muted);text-align:center;}
.page-work .fixed-cta{position:fixed;z-index:80;
  right:clamp(12px, 3vw, 20px);bottom:clamp(12px, 3vw, 20px);
  display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;
  background:var(--blue);color:#fff;text-decoration:none;
  padding:12px 20px;min-height:54px;width:auto;
  box-shadow:0 10px 28px rgba(7,59,140,0.34);transition:background-color .25s ease;}
.page-work .fixed-cta:hover{background:var(--blue-deep);}
.page-work .fixed-cta .s{font-size:0.6875rem;letter-spacing:0.18em;text-indent:0.18em;opacity:0.92;white-space:nowrap;}
.page-work .fixed-cta .b{font-family:var(--font-head);font-weight:700;font-size:1.0625rem;
  letter-spacing:0.06em;text-indent:0.06em;white-space:nowrap;}
.page-work .fixed-cta .b .line-chunk:first-child{margin-right:-0.1em;}
@media (min-width:880px){
.page-work .fixed-cta{flex-direction:column;gap:8px;
    right:clamp(16px, 2vw, 28px);bottom:clamp(16px, 2vw, 28px);
    aspect-ratio:1;min-width:118px;padding:16px;}
.page-work .fixed-cta .b{font-size:0.875rem;line-height:1.7;text-align:center;white-space:normal;}
}


/* ===== [2] workstyle ===== */
.page-workstyle .field{display:grid;gap:clamp(28px, 4vw, 48px);align-items:center;}
.page-workstyle .field-copy .lead + .lead{margin-top:1.1em;}
.page-workstyle .field-visual .ph{width:100%;aspect-ratio:4/3;}
@media (min-width:880px){
.page-workstyle .field{grid-template-columns:0.95fr 1.05fr;}
.page-workstyle .field-visual{margin-right:calc(-1 * (max((100vw - 1040px) / 2, 0px) + clamp(22px, 6vw, 48px)));}
.page-workstyle .field-visual .ph{aspect-ratio:16/10;}
}
.page-workstyle .timeline{list-style:none;
  max-width:760px;margin-inline:auto;
  border-left:2px solid var(--line);}
.page-workstyle .timeline li{position:relative;
  padding:6px 0 26px clamp(24px, 4vw, 36px);}
.page-workstyle .timeline li:last-child{padding-bottom:0;}
.page-workstyle .timeline li::before{content:"";position:absolute;left:0;top:13px;
  width:13px;height:13px;background:#fff;border:3px solid var(--blue);
  border-radius:50%;transform:translateX(calc(-50% - 1px));}
.page-workstyle .timeline .time{display:block;font-family:var(--font-head);font-weight:900;
  font-size:1rem;letter-spacing:0.08em;color:var(--blue);line-height:1.6;
  
  -webkit-text-stroke:0.4px currentColor;}
.page-workstyle .timeline li:first-child .time{-webkit-text-stroke:0;}
.page-workstyle .timeline .what{display:block;font-size:0.9375rem;color:var(--text);line-height:1.9;}
.page-workstyle .timeline-note{max-width:760px;margin:clamp(20px,2.6vw,28px) auto 0;
  font-size:0.8125rem;color:var(--muted);letter-spacing:0.06em;text-align:center;}
.page-workstyle .steps{list-style:none;display:grid;gap:clamp(18px, 3vw, 24px);}
@media (min-width:760px){
.page-workstyle .steps{grid-template-columns:repeat(3,1fr);}
}
.page-workstyle .step{position:relative;background:#fff;border:1px solid var(--line);
  padding:clamp(30px, 3.6vw, 40px) clamp(24px, 3vw, 32px) clamp(32px, 4vw, 42px);
  display:flex;flex-direction:column;gap:13px;height:100%;}
.page-workstyle .step-photo{margin-top:calc(-1 * clamp(30px, 3.6vw, 40px));
  margin-inline:calc(-1 * clamp(24px, 3vw, 32px));
  margin-bottom:4px;}
.page-workstyle .step-photo .ph{width:100%;aspect-ratio:16/10;border:0;border-bottom:1px solid var(--line);}
.page-workstyle .step .term{font-family:var(--font-head);font-weight:700;font-size:0.8125rem;
  letter-spacing:0.18em;color:var(--muted);}
.page-workstyle .step h3{font-family:var(--font-head);font-weight:700;
  font-size:clamp(1.1875rem, 2.4vw, 1.375rem);
  letter-spacing:0.06em;line-height:1.6;color:var(--ink);}
.page-workstyle .step p{font-size:0.9375rem;line-height:2;color:var(--text);text-wrap:pretty;}
.page-workstyle .prep{display:grid;gap:clamp(24px, 4vw, 40px);align-items:start;}
.page-workstyle .prep .lead{margin-bottom:clamp(24px, 4vw, 36px);}
@media (min-width:880px){
.page-workstyle .prep{grid-template-columns:0.85fr 1.15fr;}
}
.page-workstyle .prep-list{list-style:none;display:grid;gap:0;border-top:1px solid var(--line);}
.page-workstyle .prep-list li{display:flex;align-items:flex-start;gap:16px;padding:18px 4px;
  border-bottom:1px solid var(--line);}
.page-workstyle .prep-list .ck{width:26px;height:26px;flex:none;display:grid;place-items:center;
  background:var(--blue);color:#fff;margin-top:0.2em;}
.page-workstyle .prep-list .ck svg{width:15px;height:15px;}
.page-workstyle .prep-list .pt{font-family:var(--font-head);font-weight:700;font-size:1.0625rem;
  letter-spacing:0.04em;color:var(--ink);line-height:1.7;display:block;margin-bottom:2px;}
.page-workstyle .prep-list .pd{font-size:0.875rem;color:var(--text);line-height:1.8;}
.page-workstyle .prep-note{border-left:2px solid var(--blue);background:#fff;
  padding:clamp(16px, 2.2vw, 22px) clamp(18px, 2.6vw, 26px);
  font-weight:500;line-height:1.9;color:var(--text);text-wrap:pretty;}
.page-workstyle .prep-note strong{color:var(--ink);font-weight:700;}


/* ===== [2] career ===== */
.page-career .howto{display:grid;gap:clamp(28px, 4vw, 48px);align-items:center;}
@media (min-width:880px){
.page-career .howto{grid-template-columns:1fr 1fr;}
}
.page-career .howto-copy .lead + .lead{margin-top:1.1em;}
.page-career .howto-copy .num{font-family:var(--font-head);font-weight:700;
  font-size:0.9375rem;letter-spacing:0.42em;text-indent:0.42em;color:var(--blue);margin-bottom:14px;}
.page-career .howto-copy h2{font-family:var(--font-head);font-weight:900;
  font-size:clamp(2rem, 5vw, 2.75rem);
  letter-spacing:0.04em;line-height:1.5;color:var(--ink);
  margin-bottom:clamp(18px, 2.6vw, 24px);text-wrap:pretty;}
.page-career .howto-copy h2 .hl{color:var(--blue);}
.page-career .eval{list-style:none;background:#fff;border:1px solid var(--line);
  padding:clamp(22px,3vw,30px) clamp(22px,3vw,32px);display:grid;gap:0;}
.page-career .eval-cap{font-family:var(--font-head);font-weight:700;font-size:0.8125rem;
  letter-spacing:0.18em;color:var(--muted);margin-bottom:6px;}
.page-career .eval li{display:flex;align-items:flex-start;gap:14px;padding:15px 0;border-bottom:1px solid var(--line);}
.page-career .eval li:last-child{border-bottom:none;padding-bottom:0;}
.page-career .eval li::before{content:"";width:7px;height:7px;background:var(--blue);flex:none;margin-top:0.85em;}
.page-career .eval .et{font-family:var(--font-head);font-weight:700;font-size:1.0625rem;
  letter-spacing:0.04em;color:var(--ink);line-height:1.7;display:block;}
.page-career .eval .ed{font-size:0.875rem;color:var(--text);line-height:1.8;}
.page-career .cmap{list-style:none;display:grid;gap:clamp(16px,2.4vw,20px);counter-reset:cm;}
@media (min-width:760px){
.page-career .cmap{grid-template-columns:repeat(4,1fr);}
}
.page-career .cmap li{position:relative;background:#fff;border:1px solid var(--line);
  padding:clamp(26px,3vw,32px) clamp(20px,2.6vw,26px) clamp(28px,3.4vw,34px);
  display:flex;flex-direction:column;gap:12px;}
.page-career .cmap .stage{font-family:var(--font-head);font-weight:700;font-size:0.8125rem;
  letter-spacing:0.16em;color:var(--blue);}
.page-career .cmap .state{font-family:var(--font-head);font-weight:700;font-size:1.0625rem;
  letter-spacing:0.04em;line-height:1.6;color:var(--ink);}
.page-career .cmap .yen{margin-top:auto;}
.page-career .cmap .yen .lab{display:block;font-size:0.6875rem;letter-spacing:0.14em;color:var(--muted);margin-bottom:2px;}
.page-career .cmap .yen .val{font-family:var(--font-head);font-weight:900;
  font-size:clamp(1.5rem, 3vw, 1.875rem);letter-spacing:0.02em;color:var(--ink);line-height:1.2;}
.page-career .cmap .yen .val .u{font-size:0.6em;font-weight:700;margin-left:0.2em;}
.page-career .cmap li.is-top{border-color:var(--blue);box-shadow:0 14px 36px rgba(11,91,215,0.12);}
.page-career .cmap li.is-top .state, .page-career .cmap li.is-top .yen .val{color:var(--blue);}
.page-career .cmap li.is-top::after{content:"MAX";position:absolute;top:-10px;right:16px;
  background:var(--blue);color:#fff;font-family:var(--font-head);font-weight:700;
  font-size:0.625rem;letter-spacing:0.2em;text-indent:0.2em;padding:5px 10px;}
.page-career .cmap-note{margin-top:clamp(20px,2.6vw,28px);font-size:0.8125rem;color:var(--muted);
  letter-spacing:0.06em;text-align:center;text-wrap:pretty;}
.page-career .bonus{display:grid;gap:clamp(24px,4vw,40px);align-items:start;}
@media (min-width:880px){
.page-career .bonus{grid-template-columns:0.85fr 1.15fr;}
}
.page-career .bonus-body .lead + .lead{margin-top:1.1em;}
.page-career .bonus-body .honest{margin-top:clamp(18px,2.4vw,24px);
  border-left:2px solid var(--blue);background:#fff;
  padding:clamp(16px,2.2vw,22px) clamp(18px,2.6vw,26px);
  font-weight:500;line-height:1.9;color:var(--text);text-wrap:pretty;}
.page-career .bonus-body .honest strong{color:var(--ink);font-weight:700;}
.page-career .link-inline{display:inline-flex;align-items:center;gap:12px;margin-top:clamp(18px,2.4vw,24px);
  font-family:var(--font-head);font-weight:700;font-size:0.9375rem;letter-spacing:0.06em;
  color:var(--blue);text-decoration:none;min-height:44px;}
.page-career .link-inline .arr{width:36px;height:12px;position:relative;flex:none;}
.page-career .link-inline .arr::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;
  transition:transform .25s ease;transform-origin:left center;}
.page-career .link-inline .arr::after{content:"";position:absolute;right:0;bottom:0;width:11px;height:1px;background:currentColor;
  transform:rotate(-36deg);transform-origin:right bottom;
  transition:transform .25s ease;}
.page-career .link-inline:hover{color:var(--blue-deep);}
@media (prefers-reduced-motion: no-preference){
.page-career .link-inline:hover .arr::before{transform:scaleX(1.2);}
.page-career .link-inline:hover .arr::after{transform:translateX(7.2px) rotate(-36deg);}
}


/* ===== [2] interview ===== */
.page-interview .iv-section{padding-block:clamp(56px, 9vw, 104px);background:var(--white);}
.page-interview .iv-list{width:100%;max-width:1040px;margin-inline:auto;
  padding-inline:clamp(22px, 6vw, 48px);
  display:grid;gap:clamp(56px, 9vw, 104px);}
.page-interview .iv-item{display:grid;gap:clamp(28px, 4.4vw, 52px);align-items:center;}
@media (min-width:860px){
.page-interview .iv-item{grid-template-columns:0.82fr 1.18fr;}
.page-interview .iv-item:nth-child(even) .iv-photo{order:2;}
}
.page-interview .iv-photo .ph{width:100%;aspect-ratio:4/5;}
@media (max-width:859px){
.page-interview .iv-photo .ph{aspect-ratio:4/3;}
}
.page-interview .iv-eyebrow{font-family:var(--font-head);font-weight:700;font-size:0.8125rem;
  letter-spacing:0.34em;text-indent:0.34em;color:var(--blue);margin-bottom:14px;}
.page-interview .iv-name{font-family:var(--font-head);font-weight:900;
  font-size:clamp(1.5rem, 3.4vw, 2rem);letter-spacing:0.04em;line-height:1.5;
  color:var(--ink);margin-bottom:clamp(20px, 3vw, 28px);
  padding-bottom:clamp(16px, 2.2vw, 22px);border-bottom:2px solid var(--blue);text-wrap:pretty;}
.page-interview .iv-name .yr{font-size:0.7em;font-weight:700;color:var(--muted);margin-left:0.5em;letter-spacing:0.04em;}
.page-interview .iv-qa{list-style:none;display:grid;gap:clamp(18px, 2.6vw, 24px);}
.page-interview .iv-qa dt{display:flex;gap:11px;
  font-family:var(--font-head);font-weight:700;font-size:1.0625rem;
  letter-spacing:0.04em;line-height:1.7;color:var(--ink);margin-bottom:7px;text-wrap:pretty;}
.page-interview .iv-qa dt::before{content:"Q";flex:none;
  font-family:var(--font-head);font-weight:900;font-size:0.9375rem;
  color:#fff;background:var(--blue);width:1.7em;height:1.7em;
  display:grid;place-items:center;line-height:1;}
.page-interview .iv-qa dd{margin:0;padding-left:calc(1.7em + 11px);min-height:1.9em;font-size:0.9375rem;line-height:1.9;color:var(--text);}


/* ===== [2] recruit ===== */
.page-recruit .offer{list-style:none;display:grid;gap:clamp(14px,2.4vw,20px);margin-top:clamp(28px,4vw,40px);}
@media (min-width:680px){
.page-recruit .offer{grid-template-columns:repeat(3,1fr);}
.page-recruit .offer{margin-inline:calc(-1 * max((min(100vw, 1040px) - 760px) / 2, 0px));}
}
.page-recruit .offer li{background:#fff;border:1px solid var(--line);
  padding:clamp(30px,3.6vw,40px) clamp(22px,2.8vw,30px);
  display:flex;flex-direction:column;gap:14px;text-align:center;align-items:center;}
.page-recruit .offer .ic{width:58px;height:58px;color:var(--blue);display:grid;place-items:center;}
.page-recruit .offer .ic svg{width:54px;height:54px;}
.page-recruit .offer .ot{font-family:var(--font-head);font-weight:700;font-size:clamp(1.25rem,2.4vw,1.4375rem);
  letter-spacing:0.04em;color:var(--ink);line-height:1.6;}
.page-recruit .offer .od{font-size:1rem;color:var(--text);line-height:1.9;}
.page-recruit .job{background:#fff;border:1px solid var(--line);
  padding:clamp(28px,3.6vw,44px) clamp(22px,3.4vw,44px);}
.page-recruit .job + .job{margin-top:clamp(20px,3vw,28px);}
.page-recruit .job-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px;
  padding-bottom:clamp(18px,2.4vw,24px);margin-bottom:clamp(8px,1.4vw,14px);
  border-bottom:2px solid var(--ink);}
.page-recruit .job-head h3{font-family:var(--font-head);font-weight:900;
  font-size:clamp(1.375rem, 3vw, 1.75rem);letter-spacing:0.06em;color:var(--ink);line-height:1.5;}
.page-recruit .tag{font-family:var(--font-head);font-weight:700;font-size:0.75rem;
  letter-spacing:0.12em;color:#fff;background:var(--blue);padding:6px 12px;flex:none;}
.page-recruit .tag--soft{background:var(--blue-tint);color:var(--blue);}
.page-recruit .spec{display:grid;gap:0;}
.page-recruit .spec div{display:grid;grid-template-columns:1fr;gap:2px 0;
  padding:16px 2px;border-bottom:1px solid var(--line);}
@media (min-width:600px){
.page-recruit .spec div{grid-template-columns:8.5em 1fr;gap:0 clamp(16px,3vw,32px);align-items:baseline;}
}
.page-recruit .spec div:last-child{border-bottom:none;}
.page-recruit .spec dt{font-family:var(--font-head);font-weight:700;font-size:0.9375rem;
  letter-spacing:0.08em;color:var(--blue);line-height:1.8;}
.page-recruit .spec dd{font-size:0.9375rem;color:var(--text);line-height:1.9;text-wrap:pretty;}
.page-recruit .spec dd strong{color:var(--ink);font-weight:700;}
.page-recruit .spec dd .em{font-family:var(--font-head);font-weight:900;color:var(--ink);
  font-size:1.0625em;letter-spacing:0.02em;}
.page-recruit .job-simple{font-size:0.9375rem;line-height:2;color:var(--text);}
.page-recruit .job-simple li{margin-left:1.2em;}
.page-recruit .partner{background:#fff;border-color:#CFE0F7;}
.page-recruit .partner .job-head{border-bottom-color:var(--blue);}
.page-recruit .partner-note{margin-top:clamp(16px,2.2vw,22px);font-size:0.8125rem;color:var(--muted);
  letter-spacing:0.06em;line-height:1.9;text-wrap:pretty;}
.page-recruit .flow{list-style:none;display:grid;gap:clamp(14px,2.4vw,18px);max-width:760px;margin-inline:auto;}
@media (min-width:680px){
.page-recruit .flow{grid-template-columns:repeat(3,1fr);align-items:stretch;}
}
.page-recruit .flow li{position:relative;background:#fff;border:1px solid var(--line);
  padding:clamp(24px,3vw,32px) clamp(18px,2.4vw,24px);
  text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center;}
.page-recruit .flow .fn{font-family:var(--font-head);font-weight:900;font-size:1rem;
  letter-spacing:0.18em;color:var(--blue);}
.page-recruit .flow .ft{font-family:var(--font-head);font-weight:700;font-size:1.5rem;
  letter-spacing:0.06em;color:var(--ink);line-height:1.6;}
.page-recruit .flow li:not(:last-child)::after{content:"";position:absolute;z-index:1;
  left:50%;bottom:-13px;width:11px;height:11px;
  border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);
  transform:translateX(-50%) rotate(45deg);background:#fff;}
@media (min-width:680px){
.page-recruit .flow li:not(:last-child)::after{left:auto;right:-11px;bottom:50%;transform:translateY(50%) rotate(-45deg);}
}


/* ===== [2] information ===== */
.page-information .greet{display:grid;gap:clamp(32px,5vw,56px);align-items:start;}
@media (min-width:880px){
.page-information .greet{grid-template-columns:1.15fr 0.85fr;}
}
.page-information .greet-body h3{font-family:var(--font-head);font-weight:900;
  font-size:clamp(1.5rem, 3.6vw, 2.125rem);
  letter-spacing:0.04em;line-height:1.6;color:var(--ink);
  margin-bottom:clamp(22px,3vw,30px);text-wrap:pretty;}
.page-information .greet-body p{margin-bottom:1.4em;text-wrap:pretty;}
.page-information .greet-body p:last-of-type{margin-bottom:0;}
.page-information .greet-body strong{color:var(--ink);font-weight:700;}
.page-information .greet-sign{margin-top:clamp(26px,3.4vw,36px);padding-top:clamp(20px,2.6vw,26px);
  border-top:1px solid var(--line);
  font-family:var(--font-head);font-weight:700;letter-spacing:0.08em;color:var(--ink);
  line-height:1.9;}
.page-information .greet-sign .role{display:block;font-size:0.8125rem;color:var(--muted);font-weight:700;margin-bottom:4px;}
.page-information .greet-sign .nm{font-size:1.25rem;}
.page-information .greet-sign .nm .note{font-size:0.625em;color:var(--muted);font-weight:500;margin-left:0.6em;letter-spacing:0.04em;}
.page-information .greet-visual{position:sticky;top:96px;}
.page-information .greet-visual .ph{width:100%;aspect-ratio:3/4;}
@media (max-width:879px){
.page-information .greet-visual{position:static;}
.page-information .greet-visual .ph{aspect-ratio:4/3;}
}
.page-information .ghost--2line{line-height:0.92;text-align:left;}
.page-information .info-table{border-top:2px solid var(--ink);}
.page-information .info-table div{display:grid;grid-template-columns:1fr;gap:2px 0;
  padding:16px 4px;border-bottom:1px solid var(--line);}
@media (min-width:600px){
.page-information .info-table div{grid-template-columns:10em 1fr;gap:0 clamp(20px,4vw,40px);align-items:baseline;}
}
.page-information .info-table dt{font-family:var(--font-head);font-weight:700;font-size:0.9375rem;
  letter-spacing:0.1em;color:var(--blue);line-height:1.8;}
.page-information .info-table dd{font-size:0.9375rem;color:var(--text);line-height:1.95;text-wrap:pretty;}
.page-information .info-table dd .tbc{font-size:0.8125rem;color:var(--muted);background:var(--ghost);
  padding:1px 8px;margin-left:6px;letter-spacing:0.04em;white-space:nowrap;}


/* ===== [2] blog ===== */
.page-blog .parts222_section{padding-block:clamp(56px, 9vw, 104px);
  background:var(--white);}
.page-blog .parts222_section > h2{width:100%;max-width:1200px;margin:0 auto clamp(32px,5vw,48px);
  padding-inline:clamp(22px, 6vw, 48px);
  font-family:var(--font-head);font-weight:700;
  font-size:clamp(1.875rem, 4vw, 2.375rem);letter-spacing:0.1em;
  color:var(--ink);text-align:center;}
.page-blog .parts222_wrap{width:100%;max-width:1200px;margin-inline:auto;
  padding-inline:clamp(22px, 6vw, 48px);
  display:grid;grid-template-columns:1fr;gap:clamp(40px,5vw,56px);}
@media (min-width:960px){
.page-blog .parts222_wrap{grid-template-columns:minmax(0,1fr) 300px;align-items:start;}
}
.page-blog .parts222_post_list{list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,28px);}
@media (min-width:600px){
.page-blog .parts222_post_list{grid-template-columns:repeat(2,1fr);}
}
.page-blog .parts222_post_wrap{display:flex;flex-direction:column;height:100%;
  background:var(--white);border:1px solid var(--line);text-decoration:none;color:inherit;
  transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease, border-color .3s ease;}
.page-blog .parts222_post_wrap:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(16,24,38,0.12);border-color:#CFE0F7;}
.page-blog .parts222_post_img{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden;background:var(--ghost);}
.page-blog .parts222_post_img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.page-blog .parts222_post_wrap:hover .parts222_post_img img{transform:scale(1.05);}
.page-blog .parts222_post_status{display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  padding:clamp(16px,2vw,20px) clamp(16px,2.2vw,22px) 0;}
.page-blog .parts222_post_date{font-family:var(--font-head);font-weight:700;font-size:0.8125rem;
  letter-spacing:0.08em;color:var(--blue);}
.page-blog .parts222_post_category{font-family:var(--font-head);font-weight:700;font-size:0.6875rem;
  letter-spacing:0.08em;color:var(--blue);background:var(--blue-tint);padding:4px 10px;line-height:1.6;}
.page-blog .parts222_post_title-excerpt{padding:8px clamp(16px,2.2vw,22px) clamp(18px,2.4vw,24px);flex:1;}
.page-blog .parts222_post_title{font-family:var(--font-head);font-weight:700;
  font-size:clamp(1rem,1.9vw,1.125rem);letter-spacing:0.04em;
  line-height:1.7;color:var(--ink);text-wrap:pretty;}
.page-blog .parts222_pagenation{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;
  margin-top:clamp(36px,5vw,52px);list-style:none;padding:0;}
.page-blog .parts222_pagenation a, .page-blog .parts222_pagenation span{display:inline-flex;align-items:center;justify-content:center;
  min-width:46px;height:46px;padding:0 12px;
  font-family:var(--font-head);font-weight:700;font-size:0.9375rem;letter-spacing:0.04em;
  color:var(--ink);background:var(--white);border:1px solid var(--line);text-decoration:none;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;}
.page-blog .parts222_pagenation a:hover{border-color:var(--blue);color:var(--blue);}
.page-blog .parts222_pagenation .pagination_num.current{background:var(--blue);border-color:var(--blue);color:#fff;}
.page-blog .parts222_pagenation .pagination_prev, .page-blog .parts222_pagenation .pagination_next{font-size:0.75rem;letter-spacing:0.06em;}
.page-blog .parts222_sidebar{display:flex;flex-direction:column;gap:clamp(28px,3.6vw,36px);}
.page-blog .parts222_sidebar_wrap > h3{font-family:var(--font-head);font-weight:700;font-size:1.0625rem;letter-spacing:0.12em;
  padding-bottom:12px;margin-bottom:6px;border-bottom:2px solid currentColor;}
.page-blog .parts222_sidebar_wrap ul{list-style:none;margin:0;padding:0;}
.page-blog .parts222_sidebar_wrap li{border-bottom:1px solid var(--line);}
.page-blog .parts222_sidebar_wrap li a{display:flex;flex-direction:column;gap:4px;padding:14px 2px;text-decoration:none;color:inherit;
  transition:opacity .2s ease;}
.page-blog .parts222_sidebar_wrap li a:hover{opacity:0.62;}
.page-blog .parts222_sidebar_date{font-family:var(--font-head);font-weight:700;font-size:0.75rem;letter-spacing:0.08em;opacity:0.7;}
.page-blog .parts222_sidebar_post_title{font-size:0.875rem;line-height:1.7;text-wrap:pretty;}
.page-blog .parts222_sidebar_wrap.category_post_count li a{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;}
.page-blog .parts222_sidebar_post_category{font-size:0.9375rem;font-weight:500;letter-spacing:0.04em;}
.page-blog .parts222_sidebar_post_category_count{font-family:var(--font-head);font-weight:700;font-size:0.75rem;
  min-width:30px;height:24px;padding:0 8px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid currentColor;line-height:1;flex:none;}


/* ===== [2] instance ===== */
.page-instance .parts228_section{padding-block:clamp(56px, 9vw, 104px);
  background:var(--white);}
.page-instance .parts228_wrap{width:100%;max-width:1040px;margin-inline:auto;
  padding-inline:clamp(22px, 6vw, 48px);}
.page-instance .parts228_main{width:100%;}
.page-instance .parts228_post_list{list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:1fr;gap:clamp(22px, 3.4vw, 32px);}
@media (min-width:560px){
.page-instance .parts228_post_list{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:880px){
.page-instance .parts228_post_list{grid-template-columns:repeat(3,1fr);}
}
.page-instance .parts228_post_wrap{position:relative;background:var(--white);border:1px solid var(--line);
  display:flex;flex-direction:column;height:100%;
  transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease, border-color .3s ease;}
.page-instance .parts228_post_wrap:hover{transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(16,24,38,0.12);
  border-color:#CFE0F7;}
.page-instance .parts228_post_img{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--ghost);}
.page-instance .parts228_post_img a{display:block;width:100%;height:100%;}
.page-instance .parts228_post_img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.page-instance .parts228_post_wrap:hover .parts228_post_img img{transform:scale(1.05);}
.page-instance .parts228_post_status{display:flex;align-items:center;
  padding:clamp(18px,2.2vw,22px) clamp(18px,2.4vw,24px) 0;}
.page-instance .parts228_post_date{font-family:var(--font-head);font-weight:700;font-size:0.8125rem;
  letter-spacing:0.1em;color:var(--blue);}
.page-instance .parts228_post_title-excerpt{padding:8px clamp(18px,2.4vw,24px) clamp(20px,2.6vw,26px);
  display:flex;flex-direction:column;gap:12px;flex:1;}
.page-instance .parts228_post_title{font-family:var(--font-head);font-weight:700;
  font-size:clamp(1.0625rem,2vw,1.1875rem);letter-spacing:0.04em;
  line-height:1.7;color:var(--ink);text-wrap:pretty;}
.page-instance .parts-blog-ex-tag_wrap{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;}
.page-instance .parts-blog-ex_tag{font-family:var(--font-head);font-weight:700;font-size:0.6875rem;
  letter-spacing:0.08em;color:var(--blue);background:var(--blue-tint);
  padding:5px 11px;line-height:1.6;}
.page-instance .parts228_post_excerpt{font-size:0.875rem;line-height:1.9;color:var(--text);text-wrap:pretty;}
.page-instance .parts228_pagenation{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;
  margin-top:clamp(40px,6vw,64px);list-style:none;padding:0;}
.page-instance .parts228_pagenation a, .page-instance .parts228_pagenation span{display:inline-flex;align-items:center;justify-content:center;
  min-width:46px;height:46px;padding:0 12px;
  font-family:var(--font-head);font-weight:700;font-size:0.9375rem;letter-spacing:0.04em;
  color:var(--ink);background:var(--white);border:1px solid var(--line);text-decoration:none;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;}
.page-instance .parts228_pagenation a:hover{border-color:var(--blue);color:var(--blue);}
.page-instance .parts228_pagenation .pagination_num.current{background:var(--blue);border-color:var(--blue);color:#fff;}
.page-instance .parts228_pagenation .pagination_prev, .page-instance .parts228_pagenation .pagination_next{font-size:0.8125rem;letter-spacing:0.08em;}


/* ===== [2] inquiry ===== */
.page-inquiry .parts210_section_content{padding-block:clamp(48px,7vw,80px) 0;}
.page-inquiry .parts210_content_wrap{width:100%;max-width:760px;margin-inline:auto;
  padding-inline:clamp(22px, 6vw, 48px);}
.page-inquiry .parts210_content{font-size:1rem;line-height:2.1;color:var(--text);text-align:center;text-wrap:pretty;}
.page-inquiry .parts210_content strong{color:var(--ink);font-weight:700;}
.page-inquiry .contact_section{padding-block:clamp(36px,5vw,56px) clamp(64px,10vw,120px);}
.page-inquiry .parts213_section_form{width:100%;max-width:760px;margin-inline:auto;
  padding-inline:clamp(22px, 6vw, 48px);}
.page-inquiry .parts213_form_wrap{width:100%;}
.page-inquiry .parts213_form_wrap form{display:block;}
.page-inquiry .parts213_form_wrap dl{display:block;margin:0 0 clamp(24px,3.4vw,32px);}
.page-inquiry .parts213_form_wrap dt{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;
  font-family:var(--font-head);font-weight:700;font-size:1rem;letter-spacing:0.06em;
  color:var(--ink);line-height:1.7;margin-bottom:10px;}
.page-inquiry .parts213_form_wrap dd{margin:0;}
.page-inquiry .required{font-family:var(--font-head);font-weight:700;font-size:0.6875rem;letter-spacing:0.08em;
  color:#C0392B;border:1px solid currentColor;padding:2px 8px;line-height:1.5;flex:none;}
.page-inquiry .attention{display:block;width:100%;font-size:0.8125rem;font-weight:500;line-height:1.8;
  color:#C0392B;letter-spacing:0.02em;margin-top:4px;}
.page-inquiry .parts213_form_wrap dt.form_text_dt > span:first-child{display:contents;}
.page-inquiry .parts213_form_wrap dt.form_text_dt .attention{order:1;}
.page-inquiry .parts213_form_wrap input[type="text"], .page-inquiry .parts213_form_wrap input[type="email"], .page-inquiry .parts213_form_wrap input[type="tel"], .page-inquiry .parts213_form_wrap textarea{width:100%;font-family:var(--font-body);font-size:1rem;color:var(--ink);
  background:var(--white);border:1px solid var(--line);border-radius:0;
  padding:13px 14px;line-height:1.7;letter-spacing:0.02em;}
.page-inquiry .parts213_form_wrap textarea{min-height:180px;resize:vertical;}
.page-inquiry .parts213_form_wrap input:focus, .page-inquiry .parts213_form_wrap textarea:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue);}
.page-inquiry .parts213_form_wrap input::placeholder, .page-inquiry .parts213_form_wrap textarea::placeholder{color:#A7B2C0;}
.page-inquiry .parts213_form_wrap dd .checkbox-list{display:flex;flex-direction:column;gap:12px;}
.page-inquiry .parts213_form_wrap label{display:flex;align-items:flex-start;gap:10px;font-size:0.9375rem;line-height:1.7;color:var(--text);cursor:pointer;}
.page-inquiry .parts213_form_wrap label input[type="checkbox"]{width:20px;height:20px;flex:none;margin-top:0.15em;accent-color:var(--blue);}
.page-inquiry .error{display:block;font-size:0.8125rem;color:#C0392B;margin-top:6px;line-height:1.6;}
.page-inquiry .contact_submit{margin-top:clamp(28px,4vw,40px);text-align:center;}
.page-inquiry .contact_submit input[type="submit"]{font-family:var(--font-head);font-weight:700;font-size:1rem;letter-spacing:0.14em;text-indent:0.14em;
  color:#fff;background:var(--blue);border:1px solid var(--blue);border-radius:0;
  min-height:58px;padding:14px 56px;cursor:pointer;
  transition:background-color .25s ease,border-color .25s ease;}
.page-inquiry .contact_submit input[type="submit"]:hover{background:var(--blue-deep);border-color:var(--blue-deep);}


/* ===== [2] entry ===== */
.page-entry .parts210_section_content{padding-block:clamp(48px,7vw,80px) 0;}
.page-entry .parts210_content_wrap{width:100%;max-width:760px;margin-inline:auto;padding-inline:clamp(22px, 6vw, 48px);}
.page-entry .parts210_content{font-size:1rem;line-height:2.1;color:var(--text);text-align:center;text-wrap:pretty;}
.page-entry .parts210_content strong{color:var(--ink);font-weight:700;}
.page-entry .contact_section{padding-block:clamp(36px,5vw,56px) clamp(64px,10vw,120px);}
.page-entry .parts219_section_form{width:100%;max-width:760px;margin-inline:auto;padding-inline:clamp(22px, 6vw, 48px);}
.page-entry .parts219_form_wrap{width:100%;}
.page-entry .parts219_form_wrap form{display:block;}
.page-entry .parts219_form_wrap dl{display:block;margin:0 0 clamp(24px,3.4vw,32px);}
.page-entry .parts219_form_wrap dt{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;
  font-family:var(--font-head);font-weight:700;font-size:1rem;letter-spacing:0.06em;
  color:var(--ink);line-height:1.7;margin-bottom:10px;}
.page-entry .parts219_form_wrap dd{margin:0;}
.page-entry .required{font-family:var(--font-head);font-weight:700;font-size:0.6875rem;letter-spacing:0.08em;
  color:#C0392B;border:1px solid currentColor;padding:2px 8px;line-height:1.5;flex:none;}
.page-entry .attention{display:block;width:100%;font-size:0.8125rem;font-weight:500;line-height:1.8;
  color:#C0392B;letter-spacing:0.02em;margin-top:4px;}
.page-entry .parts219_form_wrap dt.form_text_dt > span:first-child{display:contents;}
.page-entry .parts219_form_wrap dt.form_text_dt .attention{order:1;}
.page-entry .parts219_form_wrap input[type="text"], .page-entry .parts219_form_wrap input[type="email"], .page-entry .parts219_form_wrap input[type="tel"], .page-entry .parts219_form_wrap textarea{width:100%;font-family:var(--font-body);font-size:1rem;color:var(--ink);
  background:var(--white);border:1px solid var(--line);border-radius:0;
  padding:13px 14px;line-height:1.7;letter-spacing:0.02em;}
.page-entry .parts219_form_wrap textarea{min-height:160px;resize:vertical;}
.page-entry .parts219_form_wrap input:focus, .page-entry .parts219_form_wrap textarea:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue);}
.page-entry .parts219_form_wrap input::placeholder, .page-entry .parts219_form_wrap textarea::placeholder{color:#A7B2C0;}
.page-entry .parts219_form_wrap dl.form_address dd{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
.page-entry .parts219_form_wrap dl.form_address .zip-prefix{font-family:var(--font-head);font-weight:700;color:var(--muted);flex:none;}
.page-entry .parts219_form_wrap input.zip{width:160px;max-width:100%;}
.page-entry .parts219_form_wrap dl.form_address input[name="address"]{flex:1 1 100%;}
.page-entry .parts219_form_wrap input[type="file"]{width:100%;font-family:var(--font-body);font-size:0.9375rem;color:var(--ink);
  background:var(--white);border:1px dashed var(--line);border-radius:0;padding:14px;line-height:1.6;cursor:pointer;}
.page-entry .parts219_form_wrap input[type="file"]::file-selector-button{font-family:var(--font-head);font-weight:700;font-size:0.8125rem;letter-spacing:0.06em;
  color:var(--blue);background:var(--blue-tint);border:1px solid #CFE0F7;border-radius:0;
  padding:9px 16px;margin-right:14px;cursor:pointer;}
.page-entry .parts219_form_wrap input[type="file"]:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue);}
.page-entry .error{display:block;font-size:0.8125rem;color:#C0392B;margin-top:6px;line-height:1.6;}
.page-entry .contact_submit{margin-top:clamp(28px,4vw,40px);text-align:center;}
.page-entry .contact_submit input[type="submit"]{font-family:var(--font-head);font-weight:700;font-size:1rem;letter-spacing:0.14em;text-indent:0.14em;
  color:#fff;background:var(--blue);border:1px solid var(--blue);border-radius:0;
  min-height:58px;padding:14px 56px;cursor:pointer;transition:background-color .25s ease,border-color .25s ease;}
.page-entry .contact_submit input[type="submit"]:hover{background:var(--blue-deep);border-color:var(--blue-deep);}



/* ===== cuezilla-skin.css ===== */
/* ============================================================
   CueZilla 動的パーツ スキンキット v1.0
   ------------------------------------------------------------
   目的: ブログ/施工実績(blog-ex)/お問い合わせ/パンくず/ページヘッダー等の
         CueZilla 既定パーツを、サイトのトンマナ（ダーク/ライト・ブランド色・
         フォント・角丸）に "自動で寄せる" 汎用CSS。案件ごとの調整を最小化する。

   思想:
     (1) 色は CueZilla テーマ変数(--main-color 等)から自動連動
         → サイトのテーマ設定がそのまま skin にも効く（色は一元管理）
     (2) フォント/角丸/グリッド幅はトークンで指定（テーマ変数に無いため）
     (3) partsNNN は採番が可変だが接尾辞は共通(_post_wrap 等)
         → 属性セレクタ [class*="_xxx"] で番号非依存に当てる

   使い方:
     1. §0 のトークンを案件に合わせて調整（ダーク/ライトはプリセットをコピー）
     2. CueZilla テーマカラー(--main-color 等)をブランド値に設定
     3. 本ファイルをサイト全体CSS(AddCssInfo)へ貼る（サイト固有のフリーコーディングCSSの後ろ）
   ============================================================ */


/* ============================================================
   §0  トークン ─ ここだけ案件ごとに調整
   ============================================================ */
:root{
  /* --- 色: CueZilla テーマ変数から自動取得（無い場合のフォールバック付き） --- */
  --dyn-bg:        var(--background-color, #ffffff);   /* ページ/セクション背景 */
  --dyn-surface:   var(--temporary-color, #f4f4f2);    /* カード/パネル/入力欄の面 */
  --dyn-text:      var(--text-color, #222222);         /* 本文 */
  --dyn-heading:   var(--text-color, #111111);         /* 見出し */
  --dyn-muted:     var(--sub-color, #8a8a8a);          /* 補助/日付 */
  --dyn-border:    var(--sub-color, #dddddd);          /* 罫線/枠 */
  --dyn-accent:    var(--main-color, #1e3a5f);         /* アクセント（ボタン/チップ/見出しバー） */
  --dyn-accent-2:  var(--link-color, var(--main-color, #1e3a5f)); /* リンク/ホバー */
  --dyn-on-accent: #ffffff;                             /* アクセント面の上の文字 */

  /* --- フォント（site.css の :root に定義があればそれを使用） --- */
  --dyn-font-display: var(--font-display, "Noto Serif JP","Yu Mincho",serif);
  --dyn-font-body:    var(--font-body, "Noto Sans JP","Yu Gothic",sans-serif);
  --dyn-font-numeric: var(--font-numeric, "EB Garamond","Noto Serif JP",serif);

  /* --- 角丸（チップ/ボタン/カード）。角なしにするなら 0 --- */
  --dyn-radius: 6px;
  /* --- 一覧カードの最小幅 / 段組ギャップ --- */
  --dyn-card-min: 300px;
  --dyn-gap: 32px;
}

/* === テーマ プリセット（使う方を §0 の後にコピペして上書き） =========
   【ダーク】
   :root{
     --dyn-bg:#0A0A0A; --dyn-surface:#111110; --dyn-text:#F4F1EC; --dyn-heading:#FAF7F1;
     --dyn-muted:#8C857A; --dyn-border:#3A352D; --dyn-accent:#8E3A22; --dyn-accent-2:#B0533A;
     --dyn-on-accent:#FAF7F1; --dyn-radius:0;
   }
   【ライト】
   :root{
     --dyn-bg:#ffffff; --dyn-surface:#f7f7f5; --dyn-text:#222222; --dyn-heading:#111111;
     --dyn-muted:#8a8a8a; --dyn-border:#e3e3e3; --dyn-accent:#1e3a5f; --dyn-accent-2:#1e3a5f;
     --dyn-on-accent:#ffffff; --dyn-radius:6px;
   }
   ※ CueZilla テーマ変数(--main-color 等)を設定する場合は §0 が自動連動するのでプリセット不要。
   ============================================================ */


/* ============================================================
   §1  パンくず（CueZilla parts###_breadcrumb / p-breadcrumb）
   実markup: div.parts###_breadcrumb.p-breadcrumb.c-breadcrumb
             > ul.p-breadcrumb__inner(BreadcrumbList) > li.p-breadcrumb__item(ListItem)
   CueZilla共通CSSにパンくず装飾は無い → skin側で横並び・区切り・配色を付与
   ============================================================ */
[class*="_breadcrumb"], .p-breadcrumb{ background:var(--dyn-bg) !important; }
.p-breadcrumb__inner{
  list-style:none; margin:0 auto; padding:14px 24px;
  max-width:1200px; display:flex; flex-wrap:wrap; align-items:center;
}
.p-breadcrumb__item{
  display:inline-flex; align-items:center;
  color:var(--dyn-muted) !important; font-family:var(--dyn-font-body);
  font-size:.78rem; letter-spacing:.04em;
}
.p-breadcrumb__item a{ color:var(--dyn-muted) !important; text-decoration:none; }
.p-breadcrumb__item a:hover{ color:var(--dyn-accent-2) !important; text-decoration:underline; }
.p-breadcrumb__item:last-child{ color:var(--dyn-text) !important; }   /* 現在地 */
/* 区切り（2件目以降の前に "›"） */
.p-breadcrumb__item + .p-breadcrumb__item::before{
  content:"\203A"; margin:0 .6em; color:var(--dyn-border) !important; font-size:.95em;
}
.p-breadcrumb meta{ display:none; }   /* schema.org の <meta itemprop="position"> は非表示 */


/* ============================================================
   §2  ページヘッダー（[class*="_article_header"]）画像上のタイトル
   ============================================================ */
[class*="_article_header"] .ja, [class*="_article_header"] h1, [class*="_article_header"] h2{
  color:var(--dyn-heading) !important; font-family:var(--dyn-font-display) !important;
  text-shadow:0 2px 14px rgba(0,0,0,.5) !important;
}
[class*="_article_header"] .en{ color:var(--dyn-muted) !important; font-family:var(--dyn-font-numeric) !important; letter-spacing:.1em; text-shadow:0 1px 10px rgba(0,0,0,.5) !important; }


/* ============================================================
   §3  ページネーション（.pagination_* / [class*="_pagenation"]）
   ============================================================ */
.pagination_num, .pagination_prev, .pagination_next,
[class*="_pagenation"] a, [class*="_pagenation"] span{
  font-family:var(--dyn-font-numeric); color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
  min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none;
}
.pagination_num.current, [class*="_pagenation"] .current, [class*="_pagenation"] .active{
  background:var(--dyn-accent) !important; border-color:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
}
.pagination_num:hover, .pagination_prev:hover, .pagination_next:hover{ border-color:var(--dyn-accent-2) !important; color:var(--dyn-accent-2) !important; }
.pe-none{ opacity:.3; pointer-events:none; }


/* ============================================================
   §4  ブログ / 施工実績(blog-ex) 一覧（番号非依存）
   ============================================================ */
/* 一覧セクションの地 */
[class*="_post_list"], [class*="_post_wrap"]{ } /* 下で個別指定 */
/* カード並び（最小幅を確保して細くなりすぎない） */
[class*="_post_list"]{ display:grid !important; grid-template-columns:repeat(auto-fill, minmax(var(--dyn-card-min), 1fr)) !important; gap:var(--dyn-gap) !important; }
/* カード */
[class*="_post_wrap"]{
  display:block !important; width:auto !important; max-width:none !important; text-decoration:none;
  background:var(--dyn-surface) !important; border:1px solid var(--dyn-border) !important;
  border-radius:var(--dyn-radius); overflow:hidden;
  transition:transform .3s ease, border-color .3s ease;
}
[class*="_post_wrap"]:hover{ transform:translateY(-4px); border-color:var(--dyn-accent-2) !important; }
[class*="_post_img"]{ width:100%; display:block; border-radius:0; }
/* カード内のテキストに左右余白 */
[class*="_post_status"]{ border:none !important; background:transparent !important; margin:14px 16px 0 !important; padding:0 !important; display:flex !important; gap:10px; align-items:center; }
[class*="_post_title-excerpt"]{ padding:10px 16px 16px !important; }
[class*="_post_title"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_post_excerpt"]{ color:var(--dyn-muted) !important; }
[class*="_post_date"]{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
/* カテゴリ/ステータスは1チップに */
[class*="_post_category"], [class*="_post_status"] > span:last-child{ border:1px solid var(--dyn-accent); border-radius:var(--dyn-radius); padding:2px 8px; color:var(--dyn-accent-2) !important; }
.parts-blog-ex-tag_wrap{ display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 14px; }
.parts-blog-ex_tag{ font-size:.72rem; color:var(--dyn-muted) !important; background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:2px 8px; }


/* ============================================================
   §5  サイドバー / 最近の投稿 / カテゴリ記事数
   ============================================================ */
[class*="_sidebar"], .recent_posts_wrap{ color:var(--dyn-text); }
[class*="_sidebar_post_title"], .recent_post_title,.parts222_sidebar_post_category.f_meiryo{font-family: var(--bx-font) !important; color:var(--dyn-heading) !important; }
[class*="_sidebar_date"], .recent_post_date{ font-family:var(--bx-font) !important; color:var(--dyn-muted) !important; }
/* カテゴリ右の記事数を視認できるチップに */
[class*="_sidebar_post_category_count"]{ background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:0 8px !important; }


/* ============================================================
   §6  詳細ページ（本文 / 署名 / SNS / 詳細内スライダー）
   ============================================================ */
.parts-blog-ex_text{ font-family:var(--dyn-font-body); color:var(--dyn-text) !important; line-height:1.9; }
.parts-blog-ex_text h2, .parts-blog-ex_text h3{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
.signature_wrap{ font-family:var(--dyn-font-display); color:var(--dyn-muted) !important; border-top:1px solid var(--dyn-border); padding-top:16px; }
.slick-prev, .slick-next{ color:var(--dyn-accent-2) !important; }
/* ※詳細本文の親ラッパーが固定class薄め。崩れる場合は実ページで本文コンテナを確認し追補 */


/* ============================================================
   §7  お問い合わせフォーム
   ============================================================ */
.contact_section, [class*="_section_form"], [class*="_section_content"], [class*="_content_wrap"], [class*="_content"]{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
[class*="_form_wrap"]{ max-width:720px; margin:0 auto; }
[class*="_form_wrap"] label, [class*="_form_wrap"] dt, [class*="_form_wrap"] .ja, [class*="_form_wrap"] .en{ color:var(--dyn-text) !important; }
/* 入力欄を十分な大きさに（チェック/ラジオは除外） */
[class*="_form_wrap"] dd input:not([type="checkbox"]):not([type="radio"]),
[class*="_form_wrap"] dd select{ width:100% !important; max-width:none !important; padding:14px 16px !important; font-size:16px !important; min-height:54px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
[class*="_form_wrap"] textarea, .form_textarea textarea{ width:100% !important; padding:14px 16px !important; font-size:16px !important; min-height:220px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
/* チェックボックス/ラジオはサイズ統一 */
[class*="_form_wrap"] input[type="checkbox"], [class*="_form_wrap"] input[type="radio"]{ width:18px !important; height:18px !important; min-height:0 !important; padding:0 !important; margin:0 8px 0 0 !important; vertical-align:-3px; accent-color:var(--dyn-accent); flex:none !important; }
/* 必須バッジ: 文字を中央・折り返さない・角丸はトークン */
.required{ display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; white-space:nowrap !important; padding:6px 12px !important; border-radius:var(--dyn-radius) !important; background:#fff!important; color:var(--dyn-on-accent) !important; }
.error{ color:var(--dyn-accent-2) !important; }
/* 「お問い合わせ内容」を囲む大きな箱(枠線)を撤去 */
.form_textarea, .form_text_dt{ border:none !important; background:transparent !important; }
/* 送信ボタン */
.contact_submit, .contact_submit button, .contact_submit input{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; border:none !important; border-radius:var(--dyn-radius) !important; }
/* プライバシー同意 */
.privacypolicy{ background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:16px; color:var(--dyn-muted) !important; }
.privacypolicy-link{ color:var(--dyn-accent-2) !important; }
/* 電話/メール等の content バー（角丸はトークン） */
[class*="_content"] [class*="btn"], [class*="_content"] a[class*="round"]{ border-radius:var(--dyn-radius) !important; }


/* ============================================================
   §8  トップ用 お知らせ/ブログ teaser（notice-news / blog teaser）
   ============================================================ */
.parts040506_notice-news{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
.parts040506_notice-news *{ color:var(--dyn-text) !important; }
.parts040506_notice-news .title, .parts040506_notice-news .title a{ color:var(--dyn-heading) !important; }
.parts040506_notice-news [class*="date"], .parts040506_notice-news .f_yugothic{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
.parts040506_notice-news .more{ white-space:nowrap !important; color:var(--dyn-accent-2) !important; }
.parts040506_notice-news a{ color:var(--dyn-accent-2) !important; }
/* サムネ型ブログ teaser */
[class*="_blog_title_wrap"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_blog_thumbnail"]{ border-radius:var(--dyn-radius); }
/* teaser内が Bootstrap .card（既定で白）の場合のダーク/トーン化 */
[class*="_blog"] .card{ background:var(--dyn-surface) !important; border-color:var(--dyn-border) !important; border-radius:var(--dyn-radius) !important; }
[class*="_blog"] .card-title, [class*="_blog"] .card-text{ color:var(--dyn-text) !important; }
[class*="_blog"] .card-title{ font-family:var(--dyn-font-display) !important; }


/* ============================================================
   §9  Bootstrap汎用クラスの地ならし（パーツ内に限定）
       text-dark / bg-light 等がパーツ内でトーンを乱すのを抑える
   ============================================================ */
[class*="parts"] .text-dark{ color:var(--dyn-text) !important; }
[class*="parts"] .bg-light{ background:var(--dyn-surface) !important; }
.card-header.bg-light{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }


/* ============================================================
   §10  プライバシーポリシー（templates/privacy-policy.html のフリーコーディング設置版）
   ※CueZilla既定パーツ(item_title/item_description)へ転記する場合は §5 等で別途適用される
   ============================================================ */
.privacy{ max-width:880px; margin:0 auto; padding:64px 24px; color:var(--dyn-text); font-family:var(--dyn-font-body); line-height:1.9; }
.privacy__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,4vw,2.6rem); }
.privacy__subtitle{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:1.2rem; margin-top:8px; }
.privacy__lead{ color:var(--dyn-muted); margin:24px 0 40px; }
.privacy-item{ margin-bottom:32px; }
.privacy-item__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); border-left:3px solid var(--dyn-accent); padding-left:12px; margin-bottom:12px; }
.privacy-item__body{ color:var(--dyn-text); }
/* 原文の (1)(2)… 表記を維持（auto ol の "1." ではなく括弧付き番号で表示） */
.privacy-item__list{ list-style:none; counter-reset:pp; margin:8px 0; padding:0; }
.privacy-item__list li{ counter-increment:pp; padding-left:2.2em; text-indent:-2.2em; margin:4px 0; color:var(--dyn-text); }
.privacy-item__list li::before{ content:"(" counter(pp) ") "; }


/* ============================================================
   §11  下層ヘッダーパーツ（templates/subpage-header.html）
   サイトヘッダーとパンくずの間。フリーコーディングで別パーツ化
   ============================================================ */
/* padding-top に固定ヘッダー高さ(--fixed-header-h)を加算＝固定ヘッダーへのめり込み防止。
   固定ヘッダーが無いサイトは既定0で無影響。固定ヘッダー採用サイトは案件CSSで :root{ --fixed-header-h:88px } 等を設定（R-18）。 */
.subpage-header{ position:relative; padding:calc(72px + var(--fixed-header-h, 0px)) 24px 72px; background:var(--dyn-surface); text-align:center; overflow:hidden; }
.subpage-header__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.45; z-index:0; }
.subpage-header__inner{ position:relative; z-index:1; }
.subpage-header__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,3rem); line-height:1.3; text-shadow:0 2px 14px rgba(0,0,0,.5); }
.subpage-header__en{ font-family:var(--dyn-font-numeric); color:var(--dyn-muted); letter-spacing:.12em; margin-top:8px; }


/* ============================================================
   §12  システム定型ページ：送信完了(thanks) / 404
   templates/thanks.html, templates/404.html 用。トークンスキン準拠
   ============================================================ */
.thanks, .notfound{ max-width:760px; margin:0 auto; padding:calc(80px + var(--fixed-header-h, 0px)) 24px 96px; text-align:center; }
/* CueZilla 既定404（section.not-found）はレイアウトを変えず、固定ヘッダー分の上余白だけ確保（R-18） */
.not-found{ padding-top: calc(var(--fixed-header-h, 0px) + 24px); }
.thanks__title, .notfound__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,2.6rem); line-height:1.3; margin-bottom:28px; }
.thanks__lead, .notfound__lead{ color:var(--dyn-text); line-height:2; margin-bottom:40px; }
.thanks__action, .notfound__action{ margin-top:8px; }


/* ===== dynamic-overrides.css ===== */
/* dynamic-overrides.css … 受領 add-css/ を結合（parts●●● 装飾の正＝R-21／追補=結合最後） */

/* ---- トップページ動的セクション_add.css ---- */
/* === add.css 貼り付け ここから === */
/* 株式会社ブライト トップページ 動的セクション用
   対象：新着情報（design-parts-52系）／記事カード・施工実績（parts131415_blog系）
   方針：白ベース×青（#0B5BD7）のサイトトンマナに焼き込み色を上書き。
   セレクタは固有IDに依存せず [class*="..."] で適用。 */

/* ページ背面を流れるリボン装飾より動的セクションの中身を上に保つ */
[class*="design-parts-52"] .container,
[class*="parts131415_blog"] .container-lg{
  position:relative;z-index:2;
}

/* ==================================================
   1. 新着情報（NEWS帯）＝ design-parts-52系
   ================================================== */
/* 帯背景（焼き込み #dddddd を上書き） */
[class*="design-parts-52"]{
  background:#F1F6FD !important;
}
[class*="design-parts-52"] .content{
  max-width:1040px;
  margin-inline:auto;
  padding-block:14px;
}
/* NEWSラベル（焼き込み #bf172e を上書き） */
[class*="design-parts-52"] .banner-area{
  display:inline-flex;align-items:center;justify-content:center;
  background:#0B5BD7 !important;
  color:#ffffff !important;
  font-family:"Zen Kaku Gothic New","M PLUS 1",sans-serif;
  font-weight:700;
  font-size:0.8125rem;
  letter-spacing:0.26em;
  text-indent:0.26em;
  padding:7px 20px;
  margin:0 0 10px;
  line-height:1.4;
}
[class*="design-parts-52"] ul{
  list-style:none;margin:0;padding:0;
}
[class*="design-parts-52"] li a{
  display:flex;align-items:center;
  min-height:44px;
  padding:8px 0;
  text-decoration:none;
  color:#101826 !important;
}
[class*="design-parts-52"] .parts-52-textarea{
  display:flex;flex-direction:column;gap:2px;
}
[class*="design-parts-52"] .date{
  font-family:"Zen Kaku Gothic New","M PLUS 1",sans-serif;
  font-weight:700;
  font-size:0.8125rem;
  letter-spacing:0.1em;
  color:#0B5BD7 !important;
  flex:none;
}
[class*="design-parts-52"] .parts-52-textarea span + span{
  font-size:0.9375rem;
  line-height:1.9;
  letter-spacing:0.05em;
}
[class*="design-parts-52"] li a:hover span + span{
  color:#0B5BD7;
  text-decoration:underline;
}
[class*="design-parts-52"] li a:focus-visible{
  outline:3px solid #0B5BD7;outline-offset:3px;
}
/* PC（992px以上）：NEWSラベル左・記事1行（日付→タイトル）・min-height 60px */
@media (min-width:992px){
  [class*="design-parts-52"] .content{
    display:flex;align-items:center;gap:30px;
    padding-block:0;
  }
  [class*="design-parts-52"] .banner-area{
    margin:0;flex:none;min-width:112px;align-self:center;
  }
  [class*="design-parts-52"] ul{flex:1;}
  [class*="design-parts-52"] li{display:flex;align-items:center;min-height:60px;}
  [class*="design-parts-52"] li a{width:100%;padding:0;min-height:60px;}
  [class*="design-parts-52"] .parts-52-textarea{
    flex-direction:row;align-items:center;gap:26px;
  }
}

/* ==================================================
   2. 記事カード（施工実績）＝ parts131415_blog系
   ================================================== */
/* セクション背景（焼き込み bg-img 背景画像を上書き） */
[class*="parts131415_blog"]{
  background-image:none !important;
  background-color:#FFFFFF !important;
  padding:clamp(88px, 14vw, 170px) clamp(22px, 6vw, 48px) !important;
}
[class*="parts131415_blog"] .container-lg{
  max-width:1040px;margin-inline:auto;padding:0;
}
[class*="parts131415_blog"] [class*="title_wrap"]{
  text-align:center;
  margin-bottom:clamp(40px, 7vw, 72px);
}
/* 見出し（焼き込み #ffffff を上書き） */
[class*="parts131415_blog"] [class*="title_wrap"] h2{
  color:#101826 !important;
  font-family:"Zen Kaku Gothic New","M PLUS 1",sans-serif;
  font-weight:700;
  font-size:clamp(1.375rem, 3.6vw, 1.875rem);
  letter-spacing:0.3em;
  text-indent:0.3em;
  line-height:1.8;
  margin:0 0 12px;
}
[class*="parts131415_blog"] [class*="title_wrap"] p{
  color:#0B5BD7 !important;
  font-family:"Zen Kaku Gothic New","M PLUS 1",sans-serif;
  font-weight:700;
  font-size:0.75rem;
  letter-spacing:0.42em;
  text-indent:0.42em;
  margin:0;
}
/* グリッド（PC3列／タブ2列／SP1列） */
[class*="parts131415_blog"] .row{
  display:grid !important;
  grid-template-columns:1fr;
  gap:24px;
  margin:0;padding:0;
}
[class*="parts131415_blog"] .col{width:auto;padding:0;}
[class*="parts131415_blog"] .card{
  background:#fff;
  border:1px solid #DEE5EE !important;
  border-radius:0 !important;
  height:100%;
}
[class*="parts131415_blog"] .card-body{
  padding:clamp(20px, 3vw, 26px);
  display:flex;flex-direction:column;gap:12px;
}
[class*="parts131415_blog"] .card-title{
  color:#0B5BD7 !important;
  font-family:"Zen Kaku Gothic New","M PLUS 1",sans-serif!important;
  font-weight:700;
  font-size:0.75rem;
  letter-spacing:0.26em;
  text-indent:0.26em;
  text-align:center;
  margin:0;
}
[class*="parts131415_blog"] .card-body a{
  display:flex;flex-direction:column;gap:14px;
  text-decoration:none;
  color:#101826 !important;
}
[class*="parts131415_blog"] .card-text{
  margin:0;
  font-weight:700;
  font-size:1rem;
  line-height:1.9;
  letter-spacing:0.05em;
  color:#101826;
}
/* サムネイル高さ：SP 205px／タブ 215px／PC 240px */
[class*="parts131415_blog"] [class*="thumbnail"] img{
  width:100%;
  height:205px;
  object-fit:cover;
  display:block;
}
[class*="parts131415_blog"] .card-body a:hover .card-text{color:#0B5BD7;}
[class*="parts131415_blog"] .card-body a:focus-visible{
  outline:3px solid #0B5BD7;outline-offset:3px;
}
@media (min-width:576px){
  [class*="parts131415_blog"] .row{grid-template-columns:repeat(2,1fr);}
  [class*="parts131415_blog"] [class*="thumbnail"] img{height:215px;}
}
@media (min-width:992px){
  [class*="parts131415_blog"] .row{grid-template-columns:repeat(3,1fr);}
  [class*="parts131415_blog"] [class*="thumbnail"] img{height:240px;}
}
/* === add.css 貼り付け ここまで === */


/* ---- 社員インタビュー_add.css ---- */
/* === add.css 貼り付け ここから ===
   社員インタビューページ（写真左右交互のジグザグ＋Q&A）｜株式会社ブライト
   人物ごとのQ&Aを持つ独自レイアウト。外部CSS非依存・自己完結。
   theme_default.css に勝つよう必要箇所に !important。
   ※標準の parts228 ギャラリーではないため、CMS運用時は
     「1人=1投稿（写真＋各設問のカスタム項目）」を出力するテンプレートが別途必要。
     1人=1ブロック（.iv-item）。左右の交互配置は .iv-item:nth-child(even) で自動切替。
*/
.iv-section{
  --bx-blue:#0B5BD7;
  --bx-blue-tint:#F1F6FD;
  --bx-ink:#101826;
  --bx-text:#2A3441;
  --bx-muted:#5B6877;
  --bx-line:#DEE5EE;
  --bx-white:#FFFFFF;
  --bx-font:"Zen Kaku Gothic New",sans-serif;
}

.iv-section{padding-block:clamp(56px, 9vw, 104px) !important;background:var(--bx-white) !important;}
.iv-list{
  width:100% !important;max-width:1040px !important;margin-inline:auto !important;
  padding-inline:clamp(22px, 6vw, 48px) !important;
  display:grid !important;gap:clamp(56px, 9vw, 104px) !important;
}
.iv-item{display:grid !important;gap:clamp(28px, 4.4vw, 52px) !important;align-items:center !important;}
@media (min-width:860px){
  .iv-item{grid-template-columns:0.82fr 1.18fr !important;}
  /* 偶数番（2人目など）は写真を右へ＝配置反転 */
  .iv-item:nth-child(even) .iv-photo{order:2 !important;}
}
.iv-photo .ph{width:100% !important;aspect-ratio:4/5 !important;}
@media (max-width:859px){.iv-photo .ph{aspect-ratio:4/3 !important;}}

.iv-eyebrow{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:0.8125rem !important;
  letter-spacing:0.34em !important;text-indent:0.34em !important;color:var(--bx-blue) !important;margin-bottom:14px !important;
}
.iv-name{
  font-family:var(--bx-font) !important;font-weight:900 !important;
  font-size:clamp(1.5rem, 3.4vw, 2rem) !important;letter-spacing:0.04em !important;line-height:1.5 !important;
  color:var(--bx-ink) !important;margin-bottom:clamp(20px, 3vw, 28px) !important;
  padding-bottom:clamp(16px, 2.2vw, 22px) !important;border-bottom:2px solid var(--bx-blue) !important;text-wrap:pretty;
}
.iv-name .yr{font-size:0.7em !important;font-weight:700 !important;color:var(--bx-muted) !important;margin-left:0.5em !important;letter-spacing:0.04em !important;}

.iv-qa{list-style:none !important;display:grid !important;gap:clamp(18px, 2.6vw, 24px) !important;margin:0 !important;padding:0 !important;}
.iv-qa dt{
  display:flex !important;gap:11px !important;
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:1.0625rem !important;
  letter-spacing:0.04em !important;line-height:1.7 !important;color:var(--bx-ink) !important;margin-bottom:7px !important;text-wrap:pretty;
}
.iv-qa dt::before{
  content:"Q" !important;flex:none !important;
  font-family:var(--bx-font) !important;font-weight:900 !important;font-size:0.9375rem !important;
  color:#fff !important;background:var(--bx-blue) !important;width:1.7em !important;height:1.7em !important;
  display:grid !important;place-items:center !important;line-height:1 !important;
}
.iv-qa dd{margin:0 !important;padding-left:calc(1.7em + 11px) !important;min-height:1.9em !important;font-size:0.9375rem !important;line-height:1.9 !important;color:var(--bx-text) !important;}
/* === add.css 貼り付け ここまで === */


/* ---- ブログ_add.css ---- */
/* === add.css 貼り付け ここから ===
   ブログページ（parts222系）｜株式会社ブライト
   動的ブロック（一覧〜ページネーション＋サイドバー）の見た目のみを上書き。
   外部CSS非依存・自己完結。theme_default.css に勝つよう必要箇所に !important。
   ※サイドバーは色をハードコードせず、レイアウト・余白・罫線・帯・カウント枠など
     構造的スタイルのみ当てる（色はテーマ任せ）。
*/
.parts222_section{
  --bx-blue:#0B5BD7;
  --bx-blue-tint:#F1F6FD;
  --bx-ink:#101826;
  --bx-line:#DEE5EE;
  --bx-ghost:#EEF2F8;
  --bx-white:#FFFFFF;
  --bx-font:"Zen Kaku Gothic New",sans-serif;
}

.parts222_section{
  padding-block:clamp(56px, 9vw, 104px) !important;
  background:var(--bx-white) !important;
}
.parts222_section > h2{
  width:100% !important;max-width:1200px !important;
  margin:0 auto clamp(32px,5vw,48px) !important;
  padding-inline:clamp(22px, 6vw, 48px) !important;
  font-family:var(--bx-font) !important;font-weight:700 !important;
  font-size:clamp(1.875rem, 4vw, 2.375rem) !important;letter-spacing:0.1em !important;
  color:var(--bx-ink) !important;text-align:center !important;
}

/* 本文2カラム：PCは左=記事一覧（可変）＋右=サイドバー（固定幅）／タブレット以下は縦積み1カラム */
.parts222_wrap{
  width:100% !important;max-width:1200px !important;margin-inline:auto !important;
  padding-inline:clamp(22px, 6vw, 48px) !important;
  display:grid !important;grid-template-columns:1fr !important;gap:clamp(40px,5vw,56px) !important;
}
@media (min-width:960px){
  .parts222_wrap{grid-template-columns:minmax(0,1fr) 300px !important;align-items:start !important;}
}

/* 記事一覧グリッド：PC2列／タブレット2列／スマホ1列 */
.parts222_post_list{
  list-style:none !important;margin:0 !important;padding:0 !important;
  display:grid !important;grid-template-columns:1fr !important;gap:clamp(20px,3vw,28px) !important;
}
@media (min-width:600px){.parts222_post_list{grid-template-columns:repeat(2,1fr) !important;}}

.parts222_post_wrap{
  display:flex !important;flex-direction:column !important;height:100% !important;
  background:var(--bx-white) !important;border:1px solid var(--bx-line) !important;
  text-decoration:none !important;color:inherit !important;
  transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease, border-color .3s ease !important;
}
.parts222_post_wrap:hover{
  transform:translateY(-4px) !important;box-shadow:0 18px 40px rgba(16,24,38,0.12) !important;
  border-color:#CFE0F7 !important;
}
.parts222_post_img{
  position:relative !important;width:100% !important;aspect-ratio:16/10 !important;
  overflow:hidden !important;background:var(--bx-ghost) !important;
}
.parts222_post_img img{
  width:100% !important;height:100% !important;object-fit:cover !important;
  display:block !important;transition:transform .5s ease !important;
}
.parts222_post_wrap:hover .parts222_post_img img{transform:scale(1.05) !important;}
.parts222_post_status{
  display:flex !important;flex-wrap:wrap !important;align-items:center !important;gap:10px !important;
  padding:clamp(16px,2vw,20px) clamp(16px,2.2vw,22px) 0 !important;padding-left: 0px !important;
}
.parts222_post_date{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:0.8125rem !important;
  letter-spacing:0.08em !important;color:var(--bx-blue) !important;
}
.parts222_post_category{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:0.6875rem !important;
  letter-spacing:0.08em !important;color:var(--bx-blue) !important;background:var(--bx-blue-tint) !important;
  padding:4px 10px !important;line-height:1.6 !important;
}
.parts222_post_title-excerpt{
  padding:8px clamp(16px,2.2vw,22px) clamp(18px,2.4vw,24px) !important;flex:1 !important;
}
.parts222_post_title{
  font-family:var(--bx-font) !important;font-weight:700 !important;
  font-size:clamp(1rem,1.9vw,1.125rem) !important;letter-spacing:0.04em !important;
  line-height:1.7 !important;color:var(--bx-ink) !important;text-wrap:pretty;
}

/* ページネーション（数字はPC幅のみ表示＝実構造の d-none d-xl-block を踏襲） */
.parts222_pagenation{
  display:flex !important;flex-wrap:wrap !important;justify-content:center !important;
  align-items:center !important;gap:8px !important;
  margin-top:clamp(36px,5vw,52px) !important;list-style:none !important;padding:0 !important;
}
.parts222_pagenation a,
.parts222_pagenation span{
  display:inline-flex !important;align-items:center !important;justify-content:center !important;
  min-width:46px !important;height:46px !important;padding:0 12px !important;
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:0.9375rem !important;
  letter-spacing:0.04em !important;color:var(--bx-ink) !important;background:var(--bx-white) !important;
  border:1px solid var(--bx-line) !important;text-decoration:none !important;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease !important;
}
.parts222_pagenation a:hover{border-color:var(--bx-blue) !important;color:var(--bx-blue) !important;}
.parts222_pagenation .pagination_num.current{
  background:var(--bx-blue) !important;border-color:var(--bx-blue) !important;color:#fff !important;
}
.parts222_pagenation .pagination_prev,
.parts222_pagenation .pagination_next{font-size:0.75rem !important;letter-spacing:0.06em !important;}

/* ===== サイドバー（構造のみ・色はテーマ任せ＝固定色をハードコードしない） ===== */
.parts222_sidebar{
  display:flex !important;flex-direction:column !important;gap:clamp(28px,3.6vw,36px) !important;
}
.parts222_sidebar_wrap > h3{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:1.0625rem !important;
  letter-spacing:0.12em !important;padding-bottom:12px !important;margin-bottom:6px !important;
  border-bottom:2px solid currentColor !important;
}
.parts222_sidebar_wrap ul{list-style:none !important;margin:0 !important;padding:0 !important;}
.parts222_sidebar_wrap li{border-bottom:1px solid var(--bx-line) !important;}
.parts222_sidebar_wrap li a{
  display:flex !important;flex-direction:column !important;gap:4px !important;
  padding:14px 2px !important;text-decoration:none !important;color:inherit !important;
  transition:opacity .2s ease !important;
}
.parts222_sidebar_wrap li a:hover{opacity:0.62 !important;}
.parts222_sidebar_date{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:0.75rem !important;
  letter-spacing:0.08em !important;opacity:0.7 !important;
}
.parts222_sidebar_post_title{font-size:0.875rem !important;line-height:1.7 !important;text-wrap:pretty;}
/* カテゴリブロック：カテゴリ名と件数を横並び */
.parts222_sidebar_wrap.category_post_count li a{
  flex-direction:row !important;align-items:center !important;justify-content:space-between !important;gap:12px !important;
}
.parts222_sidebar_post_category{font-size:0.9375rem !important;font-weight:500 !important;letter-spacing:0.04em !important;}
.parts222_sidebar_post_category_count{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:0.75rem !important;
  min-width:30px !important;height:24px !important;padding:0 8px !important;
  display:inline-flex !important;align-items:center !important;justify-content:center !important;
  border:1px solid currentColor !important;line-height:1 !important;flex:none !important;
}
/* === add.css 貼り付け ここまで === */


/* ---- 施工実績_add.css ---- */
/* === add.css 貼り付け ここから ===
   施工実績ページ（parts228系）｜株式会社ブライト
   動的ブロック（一覧〜ページネーション）の見た目のみを上書き。
   外部CSS非依存・自己完結。theme_default.css に勝つよう必要箇所に !important。
   ※静的部分（ヘッダー/下層ヘッダー/フッター/導入文）は全ページ共通スタイルで管理。
*/
.parts228_section{
  --bx-blue:#0B5BD7;
  --bx-blue-tint:#F1F6FD;
  --bx-ink:#101826;
  --bx-text:#2A3441;
  --bx-line:#DEE5EE;
  --bx-ghost:#EEF2F8;
  --bx-white:#FFFFFF;
  --bx-font:"Zen Kaku Gothic New",sans-serif;
}

.parts228_section{
  padding-block:clamp(56px, 9vw, 104px) !important;
  background:var(--bx-white) !important;
}
.parts228_wrap{
  width:100% !important;max-width:1040px !important;margin-inline:auto !important;
  padding-inline:clamp(22px, 6vw, 48px) !important;
}
.parts228_main{width:100% !important;}

/* 一覧グリッド：PC3列／タブレット2列／スマホ1列 */
.parts228_post_list{
  list-style:none !important;margin:0 !important;padding:0 !important;
  display:grid !important;grid-template-columns:1fr !important;
  gap:clamp(22px, 3.4vw, 32px) !important;
}
@media (min-width:560px){
  .parts228_post_list{grid-template-columns:repeat(2,1fr) !important;}
}
@media (min-width:880px){
  .parts228_post_list{grid-template-columns:repeat(3,1fr) !important;}
}

/* 繰り返し1単位 */
.parts228_post_wrap{
  position:relative !important;background:var(--bx-white) !important;
  border:1px solid var(--bx-line) !important;
  display:flex !important;flex-direction:column !important;height:100% !important;
  transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease, border-color .3s ease !important;
}
.parts228_post_wrap:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 18px 40px rgba(16,24,38,0.12) !important;
  border-color:#CFE0F7 !important;
}
.parts228_post_img{
  position:relative !important;width:100% !important;aspect-ratio:4/3 !important;
  overflow:hidden !important;background:var(--bx-ghost) !important;
}
.parts228_post_img a{display:block !important;width:100% !important;height:100% !important;}
.parts228_post_img img{
  width:100% !important;height:100% !important;object-fit:cover !important;
  display:block !important;transition:transform .5s ease !important;
}
.parts228_post_wrap:hover .parts228_post_img img{transform:scale(1.05) !important;}

.parts228_post_status{
  display:flex !important;align-items:center !important;
  padding:clamp(18px,2.2vw,22px) clamp(18px,2.4vw,24px) 0 !important;
}
.parts228_post_date{
  font-family:var(--bx-font) !important;font-weight:700 !important;
  font-size:0.8125rem !important;letter-spacing:0.1em !important;color:var(--bx-blue) !important;
}
.parts228_post_title-excerpt{
  padding:8px clamp(18px,2.4vw,24px) clamp(20px,2.6vw,26px) !important;
  display:flex !important;flex-direction:column !important;gap:12px !important;flex:1 !important;
}
.parts228_post_title{
  font-family:var(--bx-font) !important;font-weight:700 !important;
  font-size:clamp(1.0625rem,2vw,1.1875rem) !important;letter-spacing:0.04em !important;
  line-height:1.7 !important;color:var(--bx-ink) !important;text-wrap:pretty;
}
.parts-blog-ex-tag_wrap{
  display:flex !important;flex-wrap:wrap !important;gap:8px !important;margin-top:auto !important;
}
.parts-blog-ex_tag{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:0.6875rem !important;
  letter-spacing:0.08em !important;color:var(--bx-blue) !important;
  background:var(--bx-blue-tint) !important;padding:5px 11px !important;line-height:1.6 !important;
}
.parts228_post_excerpt{
  font-size:0.875rem !important;line-height:1.9 !important;color:var(--bx-text) !important;text-wrap:pretty;
}

/* ページネーション */
.parts228_pagenation{
  display:flex !important;flex-wrap:wrap !important;justify-content:center !important;
  align-items:center !important;gap:8px !important;
  margin-top:clamp(40px,6vw,64px) !important;list-style:none !important;padding:0 !important;
}
.parts228_pagenation a,
.parts228_pagenation span{
  display:inline-flex !important;align-items:center !important;justify-content:center !important;
  min-width:46px !important;height:46px !important;padding:0 12px !important;
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:0.9375rem !important;
  letter-spacing:0.04em !important;color:var(--bx-ink) !important;background:var(--bx-white) !important;
  border:1px solid var(--bx-line) !important;text-decoration:none !important;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease !important;
}
.parts228_pagenation a:hover{border-color:var(--bx-blue) !important;color:var(--bx-blue) !important;}
.parts228_pagenation .pagination_num.current{
  background:var(--bx-blue) !important;border-color:var(--bx-blue) !important;color:#fff !important;
}
.parts228_pagenation .pagination_prev,
.parts228_pagenation .pagination_next{font-size:0.8125rem !important;letter-spacing:0.08em !important;}
/* === add.css 貼り付け ここまで === */


/* ---- お問い合わせ_add.css ---- */
/* === add.css 貼り付け ここから ===
   お問い合わせページ（parts210導入文＋parts213フォーム）｜株式会社ブライト
   動的ブロックの見た目のみを上書き。外部CSS非依存・自己完結。
   theme_default.css に勝つよう必要箇所に !important。
   ※フォームは装飾枠（囲みカード・背景塗り・角丸・影・上部アクセント線・グラデーション）を足さない。
     .contact_section／内側 parts213 実在クラスを上書きする形で当てる（構造は作り直さない）。
*/
.parts210_section_content,
.contact_section{
  --bx-blue:#0B5BD7;
  --bx-blue-deep:#073B8C;
  --bx-ink:#101826;
  --bx-text:#2A3441;
  --bx-line:#DEE5EE;
  --bx-white:#FFFFFF;
  --bx-red:#C0392B;
  --bx-font:"Zen Kaku Gothic New",sans-serif;
}

/* 導入文（parts210系） */
.parts210_section_content{padding-block:clamp(48px,7vw,80px) 0 !important;}
.parts210_content_wrap{
  width:100% !important;max-width:760px !important;margin-inline:auto !important;
  padding-inline:clamp(22px, 6vw, 48px) !important;
}
.parts210_content{
  font-size:1rem !important;line-height:2.1 !important;color:var(--bx-text) !important;
  text-align:center !important;text-wrap:pretty;
}
.parts210_content strong{color:var(--bx-ink) !important;font-weight:700 !important;}

/* フォーム本体（parts213系・contact_section）＝装飾枠なし・フラット */
.contact_section{
  padding-block:clamp(36px,5vw,56px) clamp(64px,10vw,120px) !important;
  background:transparent !important;border:0 !important;box-shadow:none !important;
}
.parts213_section_form{
  width:100% !important;max-width:760px !important;margin-inline:auto !important;
  padding-inline:clamp(22px, 6vw, 48px) !important;
  background:transparent !important;border:0 !important;box-shadow:none !important;border-radius:0 !important;
}
.parts213_form_wrap{width:100% !important;background:transparent !important;border:0 !important;}

/* 各項目：ラベル（dt）→ 入力（dd）を縦に並べるだけ。区切り罫線は足さない */
.parts213_form_wrap dl{display:block !important;margin:0 0 clamp(24px,3.4vw,32px) !important;border:0 !important;}
.parts213_form_wrap dt{
  display:flex !important;flex-wrap:wrap !important;align-items:baseline !important;gap:10px !important;
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:1rem !important;
  letter-spacing:0.06em !important;color:var(--bx-ink) !important;line-height:1.7 !important;
  margin-bottom:10px !important;
}
.parts213_form_wrap dd{margin:0 !important;}
.required{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:0.6875rem !important;
  letter-spacing:0.08em !important;color:var(--bx-red) !important;border:1px solid currentColor !important;
  padding:2px 8px !important;line-height:1.5 !important;flex:none !important;
}
.attention{
  display:block !important;width:100% !important;font-size:0.8125rem !important;font-weight:500 !important;
  line-height:1.8 !important;color:var(--bx-red) !important;letter-spacing:0.02em !important;margin-top:4px !important;
}
/* テキストエリア見出し：「お問い合わせ内容」の直後に必須を置き、注記はその下へ回す
   （実在クラス構造は維持し、CSSのみで並びを制御） */
.parts213_form_wrap dt.form_text_dt > span:first-child{display:contents !important;}
.parts213_form_wrap dt.form_text_dt .attention{order:1 !important;}

/* 入力欄：フラット（角丸・影なし） */
.parts213_form_wrap input[type="text"],
.parts213_form_wrap input[type="email"],
.parts213_form_wrap input[type="tel"],
.parts213_form_wrap textarea{
  width:100% !important;font-family:var(--bx-font) !important;font-size:1rem !important;color:var(--bx-ink) !important;
  background:var(--bx-white) !important;border:1px solid var(--bx-line) !important;border-radius:0 !important;
  padding:13px 14px !important;line-height:1.7 !important;letter-spacing:0.02em !important;box-shadow:none !important;
}
.parts213_form_wrap textarea{min-height:180px !important;resize:vertical !important;}
.parts213_form_wrap input:focus,
.parts213_form_wrap textarea:focus{
  outline:2px solid var(--bx-blue) !important;outline-offset:1px !important;border-color:var(--bx-blue) !important;
}

/* チェックボックス群 */
.parts213_form_wrap .checkbox-list{display:flex !important;flex-direction:column !important;gap:12px !important;}
.parts213_form_wrap label{
  display:flex !important;align-items:flex-start !important;gap:10px !important;
  font-size:0.9375rem !important;line-height:1.7 !important;color:var(--bx-text) !important;cursor:pointer !important;
}
.parts213_form_wrap label input[type="checkbox"]{
  width:20px !important;height:20px !important;flex:none !important;margin-top:0.15em !important;accent-color:var(--bx-blue) !important;
}
.error{display:block !important;font-size:0.8125rem !important;color:var(--bx-red) !important;margin-top:6px !important;line-height:1.6 !important;}

/* 送信ボタン：テーマのトーンに沿った控えめな見た目 */
.contact_submit{margin-top:clamp(28px,4vw,40px) !important;text-align:center !important;}
.contact_submit input[type="submit"]{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:1rem !important;
  letter-spacing:0.14em !important;text-indent:0.14em !important;
  color:#fff !important;background:var(--bx-blue) !important;border:1px solid var(--bx-blue) !important;
  border-radius:0 !important;min-height:58px !important;padding:14px 56px !important;cursor:pointer !important;
  transition:background-color .25s ease,border-color .25s ease !important;
}
.contact_submit input[type="submit"]:hover{background:var(--bx-blue-deep) !important;border-color:var(--bx-blue-deep) !important;}
/* === add.css 貼り付け ここまで === */


/* ---- 応募フォーム_add.css ---- */
/* === add.css 貼り付け ここから ===
   応募フォームページ（求人応募・parts219系／添付欄あり）｜株式会社ブライト
   動的ブロック（parts210導入文＋parts219応募フォーム）の見た目のみを上書き。
   外部CSS非依存・自己完結。theme_default.css に勝つよう必要箇所に !important。
   ※フォームは装飾枠（囲みカード・背景塗り・角丸・影・上部アクセント線・グラデーション）を足さない。
     .contact_section／内側 parts219 実在クラスを上書きする形で当てる（構造は作り直さない）。
   ※ファイル添付（履歴書 name="attach" / 職務経歴書 name="attach2"）あり。
     ファイル名を半角英数字に制限するJSはページ側に実装。
*/
.parts210_section_content,
.contact_section{
  --bx-blue:#0B5BD7;
  --bx-blue-deep:#073B8C;
  --bx-blue-tint:#F1F6FD;
  --bx-ink:#101826;
  --bx-text:#2A3441;
  --bx-muted:#5B6877;
  --bx-line:#DEE5EE;
  --bx-white:#FFFFFF;
  --bx-red:#C0392B;
  --bx-font:"Zen Kaku Gothic New",sans-serif;
}

/* 導入文（parts210系） */
.parts210_section_content{padding-block:clamp(48px,7vw,80px) 0 !important;}
.parts210_content_wrap{
  width:100% !important;max-width:760px !important;margin-inline:auto !important;
  padding-inline:clamp(22px, 6vw, 48px) !important;
}
.parts210_content{
  font-size:1rem !important;line-height:2.1 !important;color:var(--bx-text) !important;
  text-align:center !important;text-wrap:pretty;
}
.parts210_content strong{color:var(--bx-ink) !important;font-weight:700 !important;}

/* フォーム本体（parts219系・contact_section）＝装飾枠なし・フラット */
.contact_section{
  padding-block:clamp(36px,5vw,56px) clamp(64px,10vw,120px) !important;
  background:transparent !important;border:0 !important;box-shadow:none !important;
}
.parts219_section_form{
  width:100% !important;max-width:760px !important;margin-inline:auto !important;
  padding-inline:clamp(22px, 6vw, 48px) !important;
  background:transparent !important;border:0 !important;box-shadow:none !important;border-radius:0 !important;
}
.parts219_form_wrap{width:100% !important;background:transparent !important;border:0 !important;}

/* 各項目：ラベル（dt）→ 入力（dd）を縦に並べるだけ。区切り罫線は足さない */
.parts219_form_wrap dl{display:block !important;margin:0 0 clamp(24px,3.4vw,32px) !important;border:0 !important;}
.parts219_form_wrap dt{
  display:flex !important;flex-wrap:wrap !important;align-items:baseline !important;gap:10px !important;
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:1rem !important;
  letter-spacing:0.06em !important;color:var(--bx-ink) !important;line-height:1.7 !important;margin-bottom:10px !important;
}
.parts219_form_wrap dd{margin:0 !important;}
.required{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:0.6875rem !important;
  letter-spacing:0.08em !important;color:var(--bx-red) !important;border:1px solid currentColor !important;
  padding:2px 8px !important;line-height:1.5 !important;flex:none !important;
}
.attention{
  display:block !important;width:100% !important;font-size:0.8125rem !important;font-weight:500 !important;
  line-height:1.8 !important;color:var(--bx-red) !important;letter-spacing:0.02em !important;margin-top:4px !important;
}
/* 添付・自由記述見出し：ラベル直後に必須/任意、注記はその下へ回す */
.parts219_form_wrap dt.form_text_dt > span:first-child{display:contents !important;}
.parts219_form_wrap dt.form_text_dt .attention{order:1 !important;}

/* 入力欄：フラット（角丸・影なし） */
.parts219_form_wrap input[type="text"],
.parts219_form_wrap input[type="email"],
.parts219_form_wrap input[type="tel"],
.parts219_form_wrap textarea{
  width:100% !important;font-family:var(--bx-font) !important;font-size:1rem !important;color:var(--bx-ink) !important;
  background:var(--bx-white) !important;border:1px solid var(--bx-line) !important;border-radius:0 !important;
  padding:13px 14px !important;line-height:1.7 !important;letter-spacing:0.02em !important;box-shadow:none !important;
}
.parts219_form_wrap textarea{min-height:160px !important;resize:vertical !important;}
.parts219_form_wrap input:focus,
.parts219_form_wrap textarea:focus{
  outline:2px solid var(--bx-blue) !important;outline-offset:1px !important;border-color:var(--bx-blue) !important;
}

/* 住所行：〒＋郵便番号＋住所 */
.parts219_form_wrap dl.form_address dd{display:flex !important;flex-wrap:wrap !important;align-items:center !important;gap:10px !important;}
.parts219_form_wrap dl.form_address .zip-prefix{font-family:var(--bx-font) !important;font-weight:700 !important;color:var(--bx-muted) !important;flex:none !important;}
.parts219_form_wrap input.zip{width:160px !important;max-width:100% !important;}
.parts219_form_wrap dl.form_address input[name="address"]{flex:1 1 100% !important;}

/* ファイル添付欄 */
.parts219_form_wrap input[type="file"]{
  width:100% !important;font-family:var(--bx-font) !important;font-size:0.9375rem !important;color:var(--bx-ink) !important;
  background:var(--bx-white) !important;border:1px dashed var(--bx-line) !important;border-radius:0 !important;
  padding:14px !important;line-height:1.6 !important;cursor:pointer !important;
}
.parts219_form_wrap input[type="file"]::file-selector-button{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:0.8125rem !important;letter-spacing:0.06em !important;
  color:var(--bx-blue) !important;background:var(--bx-blue-tint) !important;border:1px solid #CFE0F7 !important;
  border-radius:0 !important;padding:9px 16px !important;margin-right:14px !important;cursor:pointer !important;
}
.parts219_form_wrap input[type="file"]:focus{outline:2px solid var(--bx-blue) !important;outline-offset:1px !important;border-color:var(--bx-blue) !important;}
.error{display:block !important;font-size:0.8125rem !important;color:var(--bx-red) !important;margin-top:6px !important;line-height:1.6 !important;}

/* 送信ボタン */
.contact_submit{margin-top:clamp(28px,4vw,40px) !important;text-align:center !important;}
.contact_submit input[type="submit"]{
  font-family:var(--bx-font) !important;font-weight:700 !important;font-size:1rem !important;
  letter-spacing:0.14em !important;text-indent:0.14em !important;
  color:#fff !important;background:var(--bx-blue) !important;border:1px solid var(--bx-blue) !important;
  border-radius:0 !important;min-height:58px !important;padding:14px 56px !important;cursor:pointer !important;
  transition:background-color .25s ease,border-color .25s ease !important;
}
.contact_submit input[type="submit"]:hover{background:var(--bx-blue-deep) !important;border-color:var(--bx-blue-deep) !important;}
/* === add.css 貼り付け ここまで === */
/*BLOG page*/
.parts222_sidebar{
        max-width: 100% !important;
}
.parts222_sidebar h3{
        background-color: #ffffff!important;
    color: #000000!important;
}
.category_post_count ul li {
    border-left: none!important;
    border-right: none!important;
}
[class*="_post_category"]{
        border: none!important;
    color: #000000 !important;
}
.site-header .gnav ul{
        margin-bottom: 0!important;
}
.btn:hover {
    color: #ffffff!important;
}
.parts131415_blog_title_wrap{
        padding-bottom: 1px !important;
    padding-top: 1px !important;
}
.parts131415_blog_thumbnail{
    padding: 0px !important;
}
.parts228_post_status{
        display: block !important;
    align-items: center !important;
    padding: 5px !important;
}
@media screen and (max-width: 640px){
}
ol, ul {
    padding-left: 0rem!important;
}
html, body {
  overflow-x: hidden!important;
  max-width: 100%!important;
}
 .recent_post_title{
    color: #ffffff !important;
    background: var(--ink) !important;
 }
@media screen and (max-width: 991px){
    .form_text_dt .required{
        top: 5px!important;
        left: 140px!important;
    }
}
.design-parts-52_pjMsg3aESW .container .content h4.banner-area{
    font-size: 0.8125rem !important;
    height: 60%!important;
}
.parts131415_blog_dFT8dbIZZq{
        padding-top: 80px !important;
    padding-bottom: 100px !important;
}

.parts213_section_form .contact_submit input:hover {
    opacity: 1!important;
}
.parts213_section_form dt{
        max-width: fit-content!important;
}
.required{
        border-radius: 0 !important;
}
.parts222_post_status{
        justify-content: flex-start!important;
}
@media screen and (min-width: 521px) {
    .parts213_section_form .contact_submit {
        width: 325px!important;
    }
}
    .parts222_post_wrap a:hover img {
        opacity: 1!important;
    }
.parts222_sidebar_wrap > h3{
        padding-left: 0px!important;
}
.parts222_sidebar_post_category_count{
        background: #fff !important;
            border: 1px solid #000 !important;
}
.sec--band ul.eval.reveal.is-in{
    padding-left: 2rem !important;
}
.parts228_post_title-excerpt{
        padding-left: 0px !important;
}
.parts-blog-ex-tag_wrap{
        gap: 0!important;
        padding-left: 0px!important;
}
.parts228_post_wrap:nth-child(-n+2){
        margin-bottom: 0px!important;
}
.parts-blog-ex_tag{
        border: none!important;
}
.parts228_post_status{
        max-height: 200px!important;
}
.parts228_post_title-excerpt{
        gap: 1px !important;
}
@media (min-width: 960px) {
    .gnav a[aria-current="page"] {
        color: var(--blue);
        position: relative;
    }
}
.parts131415_blog_dFT8dbIZZq .card{
        background: #fff !important;
}
.mark, mark{
        background-color: #fcf8e300!important;
}

@media screen and (max-width: 991px){
    .page-index .hero-foot{
        padding-left: 40px !important;
}

}
.lead{
     font-size: 1rem!important;
}
@media screen and (max-width: 520px){
    .lead {
    font-size: 1rem!important;
}
    .page-index .hero-foot{
        padding-left: 20px !important;
}
}
.site-footer .ghost{
    position:relative!important;
    text-align:right!important;
}
@media screen and (max-width: 520px){
    .design-parts-52_pjMsg3aESW .container .content h4.banner-area{
        padding:7px!important;
        width:30%!important;
        margin-left:30px!important;
    }
    .design-parts-52_pjMsg3aESW .container .content{
        align-items:flex-start!important;
    }
    .page-index .contact-actions{
            align-items: center!important;
    }
}
.fixed-cta:hover{
        color: #ffffff!important;
}
html, body{
    font-family:"Zen Kaku Gothic New",sans-serif!important;
}
.parts131415_blog_dFT8dbIZZq .card a:hover .card-text{
    color: #0B5BD7!important;
}
.footer-brand .mark {
    display: inline-block!important;
        margin-bottom: 30px;
}
.f-logo-text{
    font-size: 300% !important;
    color: #0c5bd8 !important;
    letter-spacing: 0.1em!important;
    font-weight: 900 !important;
}
p.crumb{
        margin-bottom: 0!important;
}
[class*="_post_wrap"]{
        border-radius: 0!important;
}
[class*="_form_wrap"] dd input:not([type="checkbox"]):not([type="radio"]), [class*="_form_wrap"] dd select{
        background: #ffffff !important;
    border: 1px solid #dee5ee !important;
}
@media screen and (max-width: 991px){
    .parts131415_blog_dFT8dbIZZq{
            padding-top: 0px !important;
    padding-bottom: 50px !important;
    }
    .page-index{
       padding-bottom: 50px !important;  
    }
 /*   .parts222_pagenation a, .parts222_pagenation span{
    min-width: 30px !important;
    padding: 0 6px !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    }*/
    .parts131415_blog_dFT8dbIZZq .container{
                padding: 0 !important;
    }
}
 #main.page-index{
    padding-bottom: 0px!important;
}
 .parts222_pagenation span{
     border: none !important;
 }
 .parts222_post_wrap{
         max-height: 400px!important;
 }
 .parts222_pagenation a, .parts222_pagenation span,.parts222_sidebar_post_category_count{
         border-radius: 0!important;
 }
 .parts231_breadcrumb.p-breadcrumb{
         display: none !important;
 }
 .parts222_pagenation a, .parts222_pagenation span{
         min-width: 38px !important;
 }
 .parts219_form_wrap dt{
         max-width: fit-content!important;
 }

 .dd-input input{
        padding-top: 5px !important;
 }
  .parts219_form_wrap dd.dd-inputf input:first-child{
       max-width: 200px!important;
 }
 
 .parts213_section_form .contact_submit input[name='store'][disabled] {
    opacity: 1!important;
}
.parts213_section_form .contact_submit,.contact_submit{
        background: #ffffff !important;
}

 .contact_submit input[type="submit"].mx-2{
           background: #000000 !important;
           border: #000000 !important;
    }
    .contact_submit input[type="submit"].mx-2:hover{
            background: #666 !important;
            border: #666 !important;
    }
     .parts219_section_form .contact_submit input[name='store'][disabled],.parts219_section_form .contact_submit input:hover{
            opacity: 1!important;
    }
@media screen and (max-width: 520px) {
    .parts219_section_form .contact_submit {
        flex-direction: column-reverse;
        width: 100%;
    }
    .parts219_section_form .contact_submit input[name="back"] {
        margin: 0!important;
        margin-top: 20px!important;
    }
}