/*
Theme Name: Astra Child (HR-LENS)
Theme URI: https://hr-lens.ai/
Description: HR-LENS 記事詳細ページ用の Astra 子テーマ
Author: 株式会社ヘイジョブ
Template: astra
Version: 1.0.0
Text Domain: astra-child
*/

/* =========================================================
   0. トークン（HeyJob Design System より）
   ========================================================= */
:root{
  --hj-orange:#FC8A10;
  --hj-orange-deep:#FC6E00;
  --hj-orange-light:#FFA94B;
  --hj-gradient:linear-gradient(90deg,#FC6E00 0%,#FFA94B 100%);
  --hj-step-1:#FFA343;
  --hj-step-3:#FD861E;
  --hj-step-4:#FC760B;
  --hj-cream:#FFF4E9;
  --hj-peach:#FFEBD8;
  --hj-ink:#333333;
  --hj-white:#FFFFFF;
  --hj-line:#D9D9D9;

  --radius-chip:5px;
  --radius-card:10px;
  --radius-pill:30px;
  --radius-pill-nav:50px;
  --shadow-card:4px 4px 13px 0 rgba(40,20,0,.12);
  --shadow-button:3px 5px 19px 0 rgba(40,20,0,.12);

  --font-jp:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-display:"Barlow",-apple-system,BlinkMacSystemFont,sans-serif;

  --hj-page:1240px;
  --hj-side:340px;
  --hj-gap:56px;
  --hj-sticky-top:96px;
}

/* =========================================================
   1. 記事詳細ページの骨格
   ========================================================= */
.hj-single{ font-family:var(--font-jp); color:var(--hj-ink); background:var(--hj-white); }
.hj-single a{ color:var(--hj-orange); text-decoration:none; transition:opacity 200ms cubic-bezier(.4,0,.2,1); }
.hj-single a:hover{ opacity:.85; }
.hj-inner{ max-width:var(--hj-page); margin:0 auto; padding:0 24px; }

/* ヘッダー帯（クリーム）※全下層ページ共通
   背景・中央揃え・上下余白を全ページで統一 */
.hj-hero,
.hj-front .hj-about-hero,
.hj-front .hj-scene-hero,
.hj-front .hj-faq-hero,
.hj-front .hj-contact-hero,
.hj-front .hj-trial-hero,
.hj-front .hj-legal-hero,
.hj-front .hj-price-hero,
.hj-front .hj-dl-hero{
  background:var(--hj-cream); text-align:center; padding:56px 0 64px !important;
}
.hj-hero .hj-inner{ padding-top:0; padding-bottom:0; }
/* パンくずは左寄せ */
.hj-breadcrumb{ display:flex; flex-wrap:wrap; justify-content:flex-start; gap:8px; font-size:13px; margin:0 0 24px; text-align:left; }
.hj-hero .hj-meta,
.hj-hero .hj-tags,
.hj-hero .hj-catbar{ justify-content:center; }
.hj-hero .hj-hero-text{ text-align:center; }
.hj-breadcrumb a{ color:var(--hj-ink); }
.hj-breadcrumb .sep{ color:var(--hj-orange); }
.hj-hero-grid{ display:flex; flex-wrap:wrap; gap:44px; align-items:flex-start; }
.hj-hero-text{ flex:1 1 520px; min-width:300px; }
.hj-hero-media{ flex:1 1 380px; min-width:280px; }
.hj-hero-media img{ width:100%; height:auto; display:block; border-radius:var(--radius-card); box-shadow:var(--shadow-card); }

.hj-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-bottom:20px; font-size:14px; }
.hj-cat{ color:var(--hj-white); background:var(--hj-gradient); border-radius:var(--radius-chip); padding:6px 14px; font-weight:700; }
.hj-meta time,.hj-meta .num{ font-family:var(--font-display); font-weight:600; }
.hj-title{ font-size:35px; font-weight:700; line-height:1.5; margin:0 0 26px; text-wrap:pretty; }
.hj-byline{ display:flex; align-items:center; gap:12px; }
.hj-byline img{ width:44px; height:44px; border-radius:50%; display:block; }
.hj-byline .name{ font-size:15px; font-weight:700; display:block; }
.hj-byline .role{ font-size:13px; }

/* 2カラム */
.hj-body{ display:flex; flex-wrap:wrap; gap:var(--hj-gap); align-items:flex-start; padding-top:56px; padding-bottom:80px; }
.hj-main{ flex:1 1 600px; min-width:320px; }
.hj-side{ flex:0 0 var(--hj-side); max-width:var(--hj-side); position:sticky; top:var(--hj-sticky-top); display:flex; flex-direction:column; gap:22px; }

/* =========================================================
   2. 本文タイポグラフィ
   ========================================================= */
.hj-content{ font-size:16px; line-height:30px; }
.hj-content p{ margin:0 0 30px; }
.hj-content strong{ font-weight:700; }
.hj-content p > strong{ background:linear-gradient(transparent 62%, var(--hj-peach) 62%); }
.hj-content .marker{ background:linear-gradient(transparent 62%, var(--hj-peach) 62%); }

.hj-content h2{
  font-size:28px; font-weight:700; line-height:1.55;
  margin:60px 0 26px; padding:0 0 16px;
  border-bottom:1px solid var(--hj-orange);
  scroll-margin-top:var(--hj-sticky-top);
}
.hj-content h3{
  font-size:22px; font-weight:700; line-height:1.6;
  margin:46px 0 20px; padding-left:16px;
  border-left:4px solid var(--hj-orange);
  scroll-margin-top:var(--hj-sticky-top);
}
.hj-content h4{ font-size:18px; font-weight:700; margin:36px 0 16px; }
.hj-content img{ border-radius:var(--radius-card); height:auto; max-width:100%; }
.hj-content figure{ margin:0 0 30px; }
.hj-content figcaption{ font-size:13px; margin-top:8px; }
.hj-content ul,.hj-content ol{ margin:0 0 30px; padding-left:1.4em; }
.hj-content li{ margin-bottom:10px; }
.hj-content blockquote{
  margin:0 0 30px; padding:20px 24px;
  background:var(--hj-cream); border-radius:var(--radius-card);
}
.hj-content table{ width:100%; border-collapse:collapse; margin:0 0 30px; font-size:15px; }
.hj-content th,.hj-content td{ border:1px solid var(--hj-peach); padding:12px 16px; }
.hj-content th{ background:var(--hj-cream); font-weight:700; text-align:left; }

/* 要点ボックス（記事冒頭・抜粋から出力） */
.hj-summary{ background:var(--hj-cream); border-radius:var(--radius-card); padding:30px 34px; margin-bottom:48px; }
.hj-summary-title{ font-size:20px; font-weight:700; color:var(--hj-orange); margin-bottom:18px; }
.hj-summary ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:14px; }
.hj-summary li{ display:flex; gap:14px; font-size:16px; line-height:30px; }
.hj-summary li::before{ content:""; flex:0 0 auto; width:8px; height:8px; border-radius:50%; background:var(--hj-orange); margin-top:11px; }

/* =========================================================
   3. サイドバー
   ========================================================= */
.hj-card{ background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:24px; }
.hj-card-title{ font-size:17px; font-weight:700; margin-bottom:18px; padding-bottom:12px; border-bottom:1px solid var(--hj-orange); }

.hj-toc nav{ display:flex; flex-direction:column; gap:2px; max-height:46vh; overflow-y:auto; }
.hj-toc a{ font-size:14px; line-height:1.7; color:var(--hj-ink); padding:9px 10px; border-radius:var(--radius-chip); }
.hj-toc a:hover{ background:var(--hj-cream); color:var(--hj-orange); opacity:1; }
.hj-toc a.lv3{ font-size:13px; padding-left:24px; }
.hj-toc a.is-active{ background:var(--hj-cream); color:var(--hj-orange); font-weight:700; }

.hj-side-cta{ background:var(--hj-cream); border-radius:var(--radius-card); padding:26px; }
.hj-side-cta h3{ font-size:18px; font-weight:700; line-height:1.6; margin:0 0 12px; }
.hj-side-cta p{ margin:0 0 20px; font-size:14px; line-height:26px; }

.hj-btn{
  display:block; width:100%; box-sizing:border-box;
  text-align:center; font-weight:700; line-height:1.5;
  border-radius:var(--radius-pill-nav);
  white-space:normal; word-break:auto-phrase;
}
.hj-btn-fill{
  background:var(--hj-gradient) !important;
  background-image:var(--hj-gradient) !important;
  color:var(--hj-white) !important;
  font-size:15px; padding:16px 20px; min-height:52px;
  box-shadow:var(--shadow-button);
  border:0;
}
.hj-btn-fill:hover,.hj-btn-fill:focus,.hj-btn-fill:visited{ color:var(--hj-white) !important; opacity:.85; }
.hj-btn-text{ margin-top:12px; color:var(--hj-orange) !important; font-size:14px; padding:8px 0; }
.hj-btn-outline{
  color:var(--hj-orange) !important; background:var(--hj-white) !important;
  box-shadow:inset 0 0 0 1.5px var(--hj-orange);
  font-size:14px; padding:12px 22px; width:auto; display:inline-block;
}

.hj-ranking{ display:flex; flex-direction:column; gap:18px; }
.hj-ranking a{ display:flex; gap:12px; color:var(--hj-ink); align-items:flex-start; font-size:14px; line-height:1.75; }
.hj-ranking .rank{ flex:0 0 auto; font-family:var(--font-display); font-size:17px; font-weight:700; color:var(--hj-orange); }

/* =========================================================
   4. 記事内CTA / FAQ / 著者 / ナビ
   ========================================================= */
.hj-cta{
  margin:56px 0 0; background:var(--hj-gradient); border-radius:var(--radius-card);
  padding:38px 40px; color:var(--hj-white);
  display:flex; flex-wrap:wrap; gap:28px; align-items:center;
}
.hj-cta h2{ font-size:22px; font-weight:700; line-height:1.6; margin:0 0 12px; border:0; padding:0; }
.hj-cta p{ margin:0; font-size:15px; line-height:28px; }
.hj-cta-body{ flex:1 1 320px; min-width:260px; }
.hj-cta-actions{ flex:0 0 auto; display:flex; flex-direction:column; gap:12px; }
.hj-cta-actions .primary{ background:var(--hj-white); color:var(--hj-orange-deep); font-size:17px; font-weight:700; border-radius:35px; padding:18px 40px; text-align:center; box-shadow:var(--shadow-button); }
.hj-cta-actions .secondary{ color:var(--hj-white); font-size:15px; font-weight:700; border-radius:35px; padding:14px 40px; text-align:center; box-shadow:inset 0 0 0 1.5px var(--hj-white); }

.hj-faq{ margin:64px 0 0; }
.hj-faq h2{ font-size:28px; font-weight:700; line-height:1.55; margin:0 0 26px; padding:0 0 16px; border-bottom:1px solid var(--hj-orange); }
.hj-faq-list{ display:flex; flex-direction:column; gap:14px; }
.hj-faq details{ background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); overflow:hidden; }
.hj-faq summary{ display:flex; align-items:flex-start; gap:16px; padding:22px 26px; cursor:pointer; list-style:none; font-size:17px; font-weight:700; line-height:1.7; }
.hj-faq summary::-webkit-details-marker{ display:none; }
.hj-faq summary::before{ content:"Q"; flex:0 0 auto; font-family:var(--font-display); font-size:20px; color:var(--hj-orange); line-height:1.5; }
.hj-faq summary::after{ content:"＋"; flex:0 0 auto; margin-left:auto; font-size:20px; color:var(--hj-orange); line-height:1.5; }
.hj-faq details[open] summary::after{ content:"−"; }
.hj-faq .answer{ padding:20px 26px 24px 62px; border-top:1px solid var(--hj-peach); font-size:16px; line-height:30px; }

.hj-author{ margin:64px 0 0; background:var(--hj-cream); border-radius:var(--radius-card); padding:34px; }
.hj-author .label{ font-size:14px; font-weight:700; color:var(--hj-orange); margin-bottom:22px; }
.hj-author-grid{ display:flex; flex-wrap:wrap; gap:26px; align-items:flex-start; }
.hj-author-grid img{ width:88px; height:88px; border-radius:50%; display:block; flex:0 0 auto; }
.hj-author-body{ flex:1 1 320px; min-width:260px; }
.hj-author-body .name{ font-size:20px; font-weight:700; margin-bottom:6px; }
.hj-author-body .role{ font-size:14px; margin-bottom:16px; }
.hj-author-body .bio{ margin:0 0 20px; font-size:15px; line-height:28px; }
.hj-author-actions{ display:flex; flex-wrap:wrap; gap:12px; }
.hj-author-actions .hj-btn{ width:auto; }
.hj-author-actions .sub{ color:var(--hj-ink); box-shadow:inset 0 0 0 1.5px var(--hj-line); font-size:14px; font-weight:700; border-radius:var(--radius-pill-nav); padding:10px 22px; }

.hj-postnav{ margin:34px 0 0; display:flex; flex-wrap:wrap; gap:16px; }
.hj-postnav a{ flex:1 1 260px; background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:20px 24px; color:var(--hj-ink); }
.hj-postnav .label{ font-family:var(--font-display); font-size:12px; font-weight:600; color:var(--hj-orange); margin-bottom:8px; }
.hj-postnav .t{ font-size:15px; font-weight:700; line-height:1.7; }
.hj-postnav .next{ text-align:right; }

/* =========================================================
   5. 関連記事
   ========================================================= */
.hj-related{ background:var(--hj-cream); padding:72px 0 80px; }
.hj-related h2{ font-size:35px; font-weight:700; line-height:1.4; margin:0 0 10px; text-align:center; }
.hj-related .lead{ margin:0 0 40px; font-size:16px; text-align:center; }
.hj-related-list{ background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:8px 32px; }
.hj-related-list a{ display:flex; flex-wrap:wrap; gap:24px; padding:26px 0; border-bottom:1px solid var(--hj-peach); color:var(--hj-ink); align-items:flex-start; }
.hj-related-list a:last-child{ border-bottom:0; }
.hj-related-list .date{ flex:0 0 104px; font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--hj-orange); padding-top:4px; }
.hj-related-list .t{ font-size:17px; font-weight:700; line-height:1.7; margin-bottom:8px; }
.hj-related-list .ex{ font-size:14px; line-height:26px; }
.hj-related-list .txt{ flex:1 1 420px; min-width:260px; }

/* =========================================================
   6. レスポンシブ
   ========================================================= */
@media (max-width:1024px){
  .hj-body{ flex-direction:column; gap:40px; }
  .hj-side{ position:static; flex:1 1 100%; max-width:none; width:100%; }
  /* 目次だけ本文の上に出す */
  .hj-toc-mobile{ display:block; margin-bottom:36px; }
  .hj-toc-mobile summary{ cursor:pointer; font-size:17px; font-weight:700; list-style:none; }
  .hj-toc-mobile summary::-webkit-details-marker{ display:none; }
  .hj-side .hj-toc{ display:none; }
}
@media (min-width:1025px){
  .hj-toc-mobile{ display:none; }
}
@media (max-width:767px){
  .hj-inner{ padding:0 16px; }
  .hj-hero .hj-inner{ padding-bottom:36px; }
  .hj-hero-grid{ flex-direction:column-reverse; gap:24px; }
  .hj-title{ font-size:25px; line-height:1.55; }
  .hj-content{ font-size:15.5px; line-height:1.95; }
  .hj-content h2{ font-size:21px; margin:44px 0 20px; padding-bottom:12px; }
  .hj-content h3{ font-size:18px; margin:32px 0 16px; padding-left:12px; }
  .hj-summary{ padding:24px 20px; }
  .hj-cta{ padding:28px 22px; }
  .hj-cta-actions{ width:100%; }
  .hj-cta-actions a{ display:block; }
  .hj-faq h2,.hj-related h2{ font-size:25px; }
  .hj-related-list{ padding:0 20px; }
  .hj-related-list a{ gap:8px; }
  .hj-related-list .date{ flex:1 1 100%; }
  .hj-author{ padding:24px 20px; }
}

/* =========================================================
   7. 記事一覧（archive / home）
   ========================================================= */
.hj-archive-title{ font-size:35px; font-weight:700; line-height:1.4; margin:0 0 14px; }
.hj-archive-lead{ margin:0 auto; font-size:16px; line-height:30px; max-width:760px; text-align:center; }

.hj-catbar{ display:flex; flex-wrap:wrap; gap:10px; padding-top:32px; padding-bottom:8px; }
.hj-catpill{
  font-size:14px; font-weight:700; color:var(--hj-orange);
  background:var(--hj-white); border-radius:var(--radius-pill-nav);
  padding:9px 20px; box-shadow:inset 0 0 0 1.5px var(--hj-orange);
}
.hj-catpill:hover{ opacity:.85; }
.hj-catpill.is-active{ background:var(--hj-gradient); color:var(--hj-white) !important; box-shadow:none; }

.hj-archive-body{ padding-top:32px; padding-bottom:80px; }
.hj-archive-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:32px; }

.hj-post-card{
  display:flex; flex-direction:column;
  background:var(--hj-white); border-radius:var(--radius-card);
  box-shadow:var(--shadow-card); overflow:hidden;
  transition:opacity var(--duration-base) var(--ease-standard);
}
.hj-post-card:hover{ opacity:.85; }
.hj-post-thumb{ display:block; aspect-ratio:16/9; overflow:hidden; background:var(--hj-cream); }
.hj-post-thumb img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:0; }
.hj-post-thumb-empty{ display:block; width:100%; height:100%; background:var(--hj-cream); }
.hj-post-body{ padding:22px 24px 26px; display:flex; flex-direction:column; gap:12px; }
.hj-post-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; font-size:13px; }
.hj-post-meta time{ font-family:var(--font-display); font-weight:600; color:var(--hj-orange); }
.hj-post-cat{
  color:var(--hj-white); background:var(--hj-gradient);
  border-radius:var(--radius-chip); padding:4px 12px; font-size:13px; font-weight:700;
}
.hj-post-title{ margin:0; font-size:18px; font-weight:700; line-height:1.7; }
.hj-post-title a{ color:var(--hj-ink); }
.hj-post-excerpt{ margin:0; font-size:14px; line-height:26px; }

.hj-pagination{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:56px; }
.hj-pagination .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:44px; height:44px; padding:0 14px;
  font-family:var(--font-display); font-weight:600; font-size:15px;
  color:var(--hj-orange); background:var(--hj-white);
  border-radius:var(--radius-pill-nav); box-shadow:inset 0 0 0 1.5px var(--hj-orange);
}
.hj-pagination .page-numbers.current{ background:var(--hj-gradient); color:var(--hj-white); box-shadow:none; }
.hj-pagination .page-numbers.dots{ box-shadow:none; }
.hj-pagination .prev,.hj-pagination .next{ font-family:var(--font-jp); font-weight:700; font-size:14px; }

.hj-empty{ font-size:16px; line-height:30px; }

.hj-archive-cta{ background:var(--hj-cream); padding:64px 0 72px; text-align:center; }
.hj-archive-cta h2{ font-size:28px; font-weight:700; line-height:1.6; margin:0 0 14px; color:var(--hj-orange); }
.hj-archive-cta p{ margin:0 auto 32px; font-size:16px; line-height:30px; max-width:640px; }
.hj-archive-cta-actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:16px; }
.hj-archive-cta-actions .hj-btn{ width:auto; min-width:260px; }

@media (max-width:767px){
  .hj-archive-title{ font-size:25px; }
  .hj-archive-grid{ grid-template-columns:1fr; gap:24px; }
  .hj-archive-cta h2{ font-size:21px; }
  .hj-archive-cta-actions .hj-btn{ width:100%; min-width:0; }
}

/* =========================================================
   9. 共通ヘッダー / フッター
   ========================================================= */
.hj-body-root{ font-family:var(--font-jp); color:var(--hj-ink); background:var(--hj-white); margin:0; }
.hj-body-root a{ color:var(--hj-orange); text-decoration:none; transition:opacity var(--duration-base) var(--ease-standard); }
.hj-body-root a:hover{ opacity:1; filter:brightness(.94); }
.hj-btn:hover,.hj-more:hover{ opacity:1 !important; filter:brightness(.94); }

/* モーション：スムーススクロールと表示アニメーション */
html{ scroll-behavior:smooth; scroll-padding-top:110px; }
.hj-reveal{
  opacity:0; transform:translateY(18px);
  transition:opacity 620ms var(--ease-standard), transform 620ms var(--ease-standard);
  will-change:opacity, transform;
}
.hj-reveal.is-in{ opacity:1; transform:none; }
.hj-acc-panel{ overflow:hidden; }
.hj-card, .hj-feature-card, .hj-feature-detail, .hj-plan, .hj-scene-card, .hj-case-card, .hj-postnav a{
  transition:transform 240ms var(--ease-standard), box-shadow 240ms var(--ease-standard);
}
.hj-feature-card:hover, .hj-feature-detail:hover, .hj-scene-card:hover, .hj-case-card:hover, .hj-postnav a:hover{
  transform:translateY(-4px); box-shadow:6px 8px 20px 0 rgba(40,20,0,.16);
}
.hj-btn, .hj-nav-list a, .hj-footer-col a{ transition:opacity 160ms var(--ease-standard), color 160ms var(--ease-standard), background 160ms var(--ease-standard); }
.hj-motion-off .hj-reveal{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .hj-reveal{ opacity:1; transform:none; transition:none; }
}

.hj-skip{ position:absolute; left:-9999px; }
.hj-skip:focus{ left:12px; top:12px; z-index:1000; background:var(--hj-white); padding:10px 16px; border-radius:var(--radius-chip); }

.hj-header{ position:sticky; top:-25px; z-index:100; background:transparent; padding:25px 25px 12px; }
.hj-header-inner{
  max-width:1390px; margin:0 auto; padding:0 30px 0 40px;
  height:74px; display:flex; align-items:center; gap:28px;
  background:#FFFFFF; border-radius:15px;
  box-shadow:4px 4px 11px 0 rgba(40,20,0,0.16) !important;
}
.hj-logo{ flex:0 0 auto; display:flex; align-items:center; }
.hj-logo img{ height:32px; width:auto; display:block; }

.hj-nav{ flex:1 1 auto; min-width:0; display:flex; justify-content:center; }
.hj-nav-list{ display:flex; align-items:center; gap:24px; list-style:none; margin:0; padding:0; }
.hj-nav-list a{ font-size:16px; font-weight:700; color:#333333 !important; padding-bottom:8px; border-bottom:0.75px solid transparent; white-space:nowrap; }
.hj-nav-list a:hover{ color:#333333 !important; opacity:.7; }
.hj-drawer-list a{ color:#333333 !important; }
.hj-nav-list .current-menu-item > a,
.hj-nav-list .current_page_item > a{ color:var(--hj-orange) !important; border-bottom-color:var(--hj-orange); }

.hj-header-actions{ flex:0 0 auto; display:flex; align-items:center; gap:15px; }
.hj-btn-nav{
  position:relative; display:inline-flex !important; align-items:center; justify-content:center;
  width:auto !important; min-height:56px; min-width:0;
  font-size:16px !important; font-weight:700; line-height:1;
  padding:0 50px 0 28px !important;
  white-space:nowrap; border-radius:var(--radius-pill-nav) !important;
  box-shadow:none !important;
}
.hj-btn-nav::after{
  content:""; position:absolute; right:28px; top:50%;
  width:8px; height:8px; margin-top:-4px;
  border-right:1.5px solid currentColor; border-top:1.5px solid currentColor;
  transform:rotate(45deg);
}
.hj-btn-nav.hj-btn-outline{ box-shadow:inset 0 0 0 1.5px var(--hj-orange) !important; }
.hj-chev{ position:absolute; right:22px; display:flex; align-items:center; }
.hj-chev svg{ width:7px; height:14px; display:block; }

.hj-menu-checkbox,.hj-burger{ display:none; }

/* 1200〜1560px：ナビ項目とボタンを段階的に詰めてはみ出しを防ぐ */
@media (max-width:1560px){
  .hj-header-inner{ gap:20px; padding:0 24px 0 28px; }
  .hj-nav-list{ gap:18px; }
  .hj-nav-list a{ font-size:15px; }
  .hj-header-actions{ gap:12px; }
  .hj-header-actions .hj-btn-nav{
    min-width:0; min-height:50px;
    font-size:15px !important; padding:0 46px 0 24px !important;
  }
  .hj-header-actions .hj-btn-nav .hj-chev{ right:18px; }
}
@media (max-width:1360px){
  .hj-header-inner{ gap:12px; padding:0 14px 0 18px; }
  .hj-nav-list{ gap:12px; }
  .hj-nav-list a{ font-size:13px; }
  .hj-logo img{ height:30px; }
  .hj-header-actions .hj-btn-nav{
    min-height:46px; font-size:14px !important; padding:0 34px 0 16px !important;
  }
  .hj-header-actions .hj-btn-nav .hj-chev{ right:12px; }
  /* 幅が足りない場合は資料DLボタンを畳み、お問い合わせのみ表示 */
  .hj-header-actions .hj-btn-outline{ display:none !important; }
}

.hj-footer{ background:var(--hj-white); border-top:1px solid var(--hj-peach); }
.hj-footer-inner{ max-width:var(--hj-page); margin:0 auto; padding:64px 24px 48px; display:flex; flex-wrap:wrap; gap:48px; }
.hj-footer-brand{ flex:1 1 280px; }
.hj-footer-brand img{ height:24px; width:auto; display:block; margin-bottom:24px; }
.hj-footer-brand address{ font-style:normal; font-size:13px; line-height:25px; color:var(--hj-ink); }
.hj-footer-brand address a{ color:var(--hj-ink); }
.hj-footer-cols{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; margin-left:auto; flex:1 1 620px; }
.hj-footer-col{ min-width:0; }
.hj-footer-heading{ font-size:18px; font-weight:700; color:var(--hj-orange); padding-bottom:12px; border-bottom:1px solid var(--hj-orange); margin-bottom:20px; }
.hj-footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:18px; }
.hj-footer-col li{ display:flex; align-items:flex-start; gap:10px; }
.hj-footer-col li::before{ content:""; flex:0 0 auto; width:6px; height:6px; background:var(--hj-orange); margin-top:9px; }
.hj-footer-col a{ font-size:14px; line-height:22px; color:#333333 !important; }
.hj-footer-col a:hover{ color:#333333 !important; opacity:.7; }
.hj-copyright{
  height:50px; display:flex; align-items:center; justify-content:center;
  background:var(--hj-gradient); color:var(--hj-white);
  font-family:var(--font-jp); font-size:12px; font-weight:400;
}

@media (max-width:1200px){
  .hj-header{ padding:16px 16px 8px; top:-16px; }
  .hj-header-inner{ gap:20px; padding:0 20px; }
  .hj-nav,.hj-header-actions{ display:none; }
  .hj-burger{
    display:flex; flex-direction:column; justify-content:space-between;
    width:32px; height:20px; margin-left:auto; cursor:pointer;
  }
  .hj-burger span{ display:block; height:2px; background:var(--hj-orange); transition:transform var(--duration-base) var(--ease-standard); }
  .hj-drawer{
    position:absolute; left:16px; right:16px; top:100px;
    background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-sp-header);
    padding:24px; display:none;
  }
  .hj-menu-checkbox:checked ~ .hj-drawer{ display:block; }
  .hj-drawer-list{ list-style:none; margin:0 0 24px; padding:0; display:flex; flex-direction:column; }
  .hj-drawer-list a{ display:block; font-size:16px; font-weight:700; color:var(--hj-ink); padding:14px 4px; border-bottom:1px solid var(--hj-peach); }
  .hj-drawer-actions{ display:flex; flex-direction:column; gap:12px; }
}
@media (min-width:1201px){
  .hj-drawer{ display:none; }
}
@media (max-width:767px){
  .hj-header{ padding:12px 12px 6px; top:-12px; }
  .hj-header-inner{ height:60px; padding:0 16px; border-radius:var(--radius-card); }
  .hj-logo img{ height:26px; }
  .hj-drawer{ top:78px; }
  .hj-footer-inner{ padding:48px 16px 32px; gap:32px; }
  .hj-footer-cols{ grid-template-columns:1fr; gap:32px; margin-left:0; }
}

/* =========================================================
   11. トップページ（front-page）
   共通ルール：
   - セクション上下パディング 88px（SP 56px）
   - 見出し 35px / SP 25px、下マージン 48px（SP 32px）
   - 本文 16px/30、カード内本文 15px/28、いずれも #333333
   - オレンジは見出し・ラベル・数値のみ。本文には使わない
   ========================================================= */
.hj-front{ font-family:var(--font-jp); color:#333333; }
.hj-front .hj-inner{ max-width:var(--hj-page); margin:0 auto; padding:0 24px; }
.hj-front section{ padding:88px 0; }
.hj-front p{ color:#333333; }
.hj-front h2,.hj-front h3{ color:#333333; }

.hj-sec-title{ font-size:35px; font-weight:700; line-height:1.4; text-align:center; margin:0 0 48px; }
.hj-sec-title-on-orange{ color:var(--hj-white) !important; }
.hj-center-action{ display:flex; justify-content:center; margin-top:48px; }

/* ファーストビュー */
.hj-hero-mv{ position:relative; padding:72px 0 120px !important; background:var(--hj-white); }
.hj-hero-mv::before{
  content:""; position:absolute; left:0; right:0; top:-120px; bottom:0;
  background:url(assets/mv-background.png) center top / cover no-repeat;
  pointer-events:none;
}
.hj-hero-mv-inner{
  position:relative; max-width:1440px; margin:0 auto; padding:0 40px;
  display:flex; flex-wrap:wrap; gap:48px; align-items:center;
}
.hj-hero-art{ flex:1 1 44%; min-width:280px; }
.hj-hero-art img{ width:100%; height:auto; display:block; }
.hj-hero-shot{ flex:1 1 42%; min-width:280px; }
.hj-hero-shot-label{ font-size:16px; font-weight:700; color:var(--hj-orange); margin:0 0 20px; text-align:center; }
.hj-hero-shot img{ width:100%; max-width:540px; height:auto; display:block; margin:0 auto; border-radius:var(--radius-media); }

/* 課題 */
.hj-issue{ background:var(--hj-cream); padding:72px 0 !important; }
.hj-issue .hj-inner{ text-align:center; }
.hj-issue-bubbles{ display:flex; flex-wrap:wrap; justify-content:center; gap:28px; margin:48px 0 0; }
.hj-issue-bubble{
  position:relative; margin:0; background:var(--hj-white);
  border-radius:30px; padding:26px 38px;
  font-size:20px; font-weight:700; line-height:34px; color:#333333;
  box-shadow:6px 5px 14px 0 rgba(40,20,0,0.07);
}
.hj-issue-bubble.is-accent{ color:var(--hj-orange); }
.hj-issue-bubble::after{
  content:""; position:absolute; left:50%; bottom:-13px; transform:translateX(-50%);
  border-left:12px solid transparent; border-right:12px solid transparent;
  border-top:14px solid var(--hj-white);
}

/* AI面接とは（定義ブロック） */
.hj-define{ background:var(--hj-white); }
.hj-define-grid{
  display:flex; flex-wrap:wrap; gap:48px; align-items:center; margin-top:40px;
}
.hj-define-text{ flex:1 1 400px; min-width:280px; }
.hj-define-body{ margin:0 0 24px; font-size:16px; line-height:32px; text-wrap:pretty; }
.hj-define-body:last-child{ margin-bottom:0; }
.hj-define-media{ flex:0 1 460px; min-width:280px; margin:0; }
.hj-define-media img{ width:100%; height:auto; display:block; border-radius:var(--radius-media); box-shadow:var(--shadow-card); }
.hj-define-media figcaption{
  margin-top:14px; font-size:14px; line-height:24px; color:#666666; text-align:center;
}

/* 従来の一次面接との比較 */
.hj-compare{ background:var(--hj-cream); }
.hj-compare .hj-inner{ text-align:center; }
.hj-compare-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.hj-compare-table{
  width:100%; min-width:720px; margin:0 auto; border-collapse:separate; border-spacing:0;
  background:var(--hj-white); border-radius:var(--radius-card); overflow:hidden;
  box-shadow:var(--shadow-card); text-align:left; font-size:15px; line-height:26px;
}
.hj-compare-table th,
.hj-compare-table td{ padding:18px 22px; vertical-align:top; border-bottom:1px solid #F0E4D6; }
.hj-compare-table tbody tr:last-child th,
.hj-compare-table tbody tr:last-child td{ border-bottom:0; }
.hj-compare-table thead th{
  background:var(--hj-cream); font-size:16px; font-weight:700; color:#333333; white-space:nowrap;
}
.hj-compare-table thead th.is-hl{
  background:linear-gradient(90deg,#FC6E00 0%,#FFA94B 100%); color:var(--hj-white);
}
.hj-compare-table tbody th{ width:200px; font-weight:700; white-space:nowrap; }
.hj-compare-table td.is-hl{ background:#FFF9F3; font-weight:700; color:var(--hj-orange); }
.hj-compare-note{ margin:20px 0 0; font-size:14px; line-height:26px; text-align:left; }

/* 設計思想 */
.hj-design{ background:var(--hj-white); }
.hj-design .hj-inner{ text-align:center; }
.hj-design-lead{ margin:0 auto 48px; max-width:860px; font-size:16px; line-height:32px; text-wrap:pretty; }
.hj-design-steps{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; text-align:left;
}
.hj-design-step{
  position:relative; min-width:0; background:var(--hj-cream); border-radius:var(--radius-card);
  padding:28px 24px; display:flex; flex-direction:column; gap:12px;
}
.hj-design-num{
  font-family:var(--font-display); font-size:32px; font-weight:700;
  line-height:1; color:var(--hj-orange);
}
.hj-design-step h3{ margin:0; font-size:20px; font-weight:700; line-height:30px; color:var(--hj-orange) !important; }
.hj-design-step p{ margin:0; font-size:15px; line-height:28px; text-wrap:pretty; }

@media (max-width:1024px){
  .hj-design-steps{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px){
  .hj-design-steps{ grid-template-columns:1fr; }
  .hj-design-lead{ font-size:15px; line-height:30px; margin-bottom:32px; text-align:left; }
  .hj-design-step{ padding:24px 20px; }
}

/* 比較表のリード */
.hj-compare-lead{ margin:0 auto 40px; max-width:860px; font-size:16px; line-height:32px; text-wrap:pretty; }

/* 関連ページ（内部リンク） */
.hj-related{ background:var(--hj-cream); }
.hj-related .hj-inner{ text-align:center; }
.hj-related-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px;
}
.hj-related-card{
  display:flex; flex-direction:column; gap:10px; text-align:left;
  background:var(--hj-white); border-radius:var(--radius-card);
  box-shadow:var(--shadow-card); padding:26px 28px;
  text-decoration:none; transition:opacity 200ms cubic-bezier(.4,0,.2,1);
}
.hj-related-card:hover{ opacity:.85; }
.hj-related-title{ font-size:18px; font-weight:700; color:var(--hj-orange); }
.hj-related-desc{ font-size:15px; line-height:26px; color:#333333; }

@media (max-width:767px){
  .hj-related-card{ padding:20px 20px; }
}

/* 料金ページ */
.hj-price-hero h1{ font-size:35px; font-weight:700; line-height:1.4; margin:0 0 20px; }
.hj-price-lead{ font-size:16px; line-height:32px; margin:0; }
.hj-price-detail{ background:var(--hj-white); }
.hj-price-detail .hj-inner{ text-align:center; }
.hj-price-list{ max-width:860px; margin:0 auto; text-align:left; display:flex; flex-direction:column; gap:24px; }
.hj-price-item{
  background:var(--hj-white); border-radius:var(--radius-card);
  box-shadow:var(--shadow-card); padding:24px 28px;
}
.hj-price-item dt{ font-size:18px; font-weight:700; color:var(--hj-orange); margin:0 0 8px; }
.hj-price-item dd{ margin:0; font-size:16px; line-height:30px; text-wrap:pretty; }
.hj-price-note{ max-width:860px; margin:32px auto 0; font-size:14px; line-height:26px; text-align:left; }

@media (max-width:1024px){
  .hj-price-hero h1{ font-size:30px; }
}
@media (max-width:767px){
  .hj-price-hero h1{ font-size:25px; }
  .hj-price-lead{ font-size:15px; line-height:30px; }
  .hj-price-item{ padding:20px 20px; }
  .hj-price-item dd{ font-size:15px; line-height:28px; }
}

/* 解決 */
.hj-solutions{ background:var(--hj-gradient); }
.hj-solution-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,330px)); gap:32px; justify-content:center; }
.hj-solution-card{ background:var(--hj-white); border-radius:8px; box-shadow:var(--shadow-card); overflow:hidden; display:flex; flex-direction:column; }
.hj-solution-card img{ width:100%; aspect-ratio:5/3; object-fit:cover; display:block; }
.hj-solution-body{ padding:28px 24px 32px; }
.hj-solution-body h3{ font-size:18px; font-weight:700; line-height:30px; color:#333333 !important; margin:0 0 16px; }
.hj-solution-body p{ margin:0; font-size:14px; line-height:26px; }

/* 特徴 */
.hj-points{ background:var(--hj-white); }
.hj-point-list{ display:flex; flex-direction:column; gap:72px; }
.hj-point-row{ display:flex; flex-wrap:wrap; gap:48px; align-items:center; }
.hj-point-row.is-reverse{ flex-direction:row-reverse; }
/* 元画像が476px幅のため列幅を実寸に固定し、拡大表示させない（ぼやけ防止）*/
.hj-point-media{ flex:0 1 476px; min-width:280px; }
.hj-point-media img{ width:100%; height:auto; display:block; border-radius:var(--radius-card); }
.hj-point-text{ flex:1 1 380px; min-width:280px; }
.hj-point-label{ font-family:var(--font-display); font-size:16px; font-weight:700; color:var(--hj-orange); letter-spacing:.06em; margin:0 0 16px; }
.hj-point-text h3{ font-size:24px; font-weight:700; line-height:38px; margin:0 0 16px; color:var(--hj-orange) !important; }
.hj-point-text p{ margin:0; font-size:16px; line-height:30px; }

/* 機能一覧 */
.hj-features{ position:relative; background:var(--hj-cream); overflow:hidden; }
.hj-features::before{
  content:""; position:absolute; inset:0; opacity:.5;
  background:url(assets/lineart-orange.png) center / cover no-repeat;
}
.hj-features .hj-inner{ position:relative; }
.hj-features-lead{ margin:0 0 8px; font-size:16px; line-height:30px; text-align:center; }
.hj-features-more{ display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin-top:40px; }
.hj-feature-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
.hj-feature-card{
  background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card);
  padding:24px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px;
}
.hj-feature-icon.material-symbols-outlined{
  font-family:'Material Symbols Outlined'; font-weight:400; font-style:normal;
  line-height:1; letter-spacing:normal; text-transform:none; white-space:nowrap;
  display:block; color:var(--hj-orange);
  font-variation-settings:'FILL' 0,'wght' 300,'GRAD' 0,'opsz' 48;
  -webkit-font-feature-settings:'liga'; font-feature-settings:'liga';
  -webkit-font-smoothing:antialiased;
}
.hj-feature-card .hj-feature-icon{ font-size:44px; }
.hj-feature-card h4{ font-size:17px; font-weight:700; line-height:28px; color:var(--hj-orange) !important; margin:0; }
.hj-feature-card p{ margin:0; font-size:15px; line-height:26px; flex:1 1 auto; }
.hj-feature-foot{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:4px; }
.hj-more{ font-family:var(--font-display); font-size:13px; font-weight:700; color:var(--hj-white) !important; background:var(--hj-gradient); border-radius:var(--radius-pill-nav); padding:10px 30px; letter-spacing:.04em; box-shadow:var(--shadow-button); }
.hj-modal-toggle{ position:absolute; opacity:0; width:0; height:0; }
.hj-more{ cursor:pointer; }
.hj-modal{ display:none; }
.hj-modal-toggle:checked ~ .hj-modal{
  display:flex; position:fixed; inset:0; z-index:200;
  align-items:center; justify-content:center; padding:24px;
}
.hj-modal-backdrop{ position:absolute; inset:0; background:rgba(40,40,40,.85); cursor:pointer; }
.hj-modal-box{
  position:relative; background:var(--hj-white); border-radius:16px;
  max-width:1000px; width:100%; max-height:86vh; overflow-y:auto;
  padding:64px 56px 56px; text-align:center;
}
.hj-modal-box img{ width:120px; height:120px; display:block; margin:0 auto 28px; }
.hj-modal-box h3{ font-size:22px; font-weight:700; color:var(--hj-orange) !important; margin:0 0 16px; }
.hj-modal-box p{ margin:0; font-size:16px; line-height:30px; text-align:center; }
.hj-modal-close{
  position:absolute; top:22px; right:22px; width:40px; height:40px;
  border-radius:50%; background:var(--hj-orange-light); color:var(--hj-white);
  display:flex; align-items:center; justify-content:center;
  font-size:20px; line-height:1; cursor:pointer;
}
.hj-soon{ font-size:13px; line-height:22px; font-weight:700; color:var(--hj-orange); background:var(--hj-cream); border-radius:var(--radius-pill-nav); padding:6px 16px; }

/* 料金 */
.hj-pricing{ background:var(--hj-white); }
.hj-plan-row{ display:flex; flex-wrap:wrap; justify-content:center; gap:16px; align-items:stretch; }
.hj-plan{
  flex:0 1 215px; min-width:200px; background:var(--hj-white); color:#333333;
  border-radius:var(--radius-card); box-shadow:4px 4px 14px 0 rgba(40,20,0,.16);
  padding:0 0 28px; text-align:center; display:flex; flex-direction:column;
  overflow:hidden;
}
.hj-plan-head{ background:var(--hj-cream); padding:20px 16px; }
.hj-plan-name{ font-size:19px; font-weight:700; color:var(--hj-orange); margin-bottom:4px; }
.hj-plan-audience{ font-size:13px; margin:0; color:#333333; }
.hj-plan-body{ padding:24px 18px 0; display:flex; flex-direction:column; gap:6px; }
.hj-plan-label{ font-size:12px; color:#333333; }
.hj-plan-price{ font-size:14px; padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--hj-peach); }
.hj-plan-price .num{ font-family:var(--font-display); font-size:30px; font-weight:700; color:var(--hj-orange); margin-right:2px; }
.hj-plan-quota{ font-size:14px; }
.hj-plan-quota .num{ font-family:var(--font-display); font-size:24px; font-weight:700; color:var(--hj-orange); margin-right:2px; }
.hj-plan.is-highlight{ background:var(--hj-gradient); color:var(--hj-white); box-shadow:4px 6px 22px 0 rgba(40,20,0,.22); }
.hj-plan.is-highlight .hj-plan-head{ background:rgba(255,255,255,.18); }
.hj-plan.is-highlight .hj-plan-name,
.hj-plan.is-highlight .hj-plan-audience,
.hj-plan.is-highlight .hj-plan-label,
.hj-plan.is-highlight .hj-plan-price .num,
.hj-plan.is-highlight .hj-plan-quota .num{ color:var(--hj-white); }
.hj-plan.is-highlight .hj-plan-price{ border-bottom-color:rgba(255,255,255,.4); }
.hj-plan-note{ margin:40px auto 0; max-width:860px; font-size:14px; line-height:26px; text-align:center; }

/* 導入までの流れ */
.hj-flow{ background:var(--hj-cream); }
.hj-flow .hj-sec-title{ margin-bottom:16px; }
.hj-flow-lead{ text-align:center; font-size:16px; line-height:30px; margin:0 0 48px; }
.hj-flow-lead strong{ font-weight:700; color:var(--hj-orange); }
.hj-steps{ display:flex; flex-wrap:wrap; align-items:stretch; }
.hj-step{ flex:1 1 220px; min-width:200px; }
.hj-step + .hj-step{ margin-left:-30px; }
.hj-step-num{ font-family:var(--font-display); font-size:20px; font-weight:700; letter-spacing:.04em; margin:0 0 6px 48px; }
.hj-step-body{
  color:var(--hj-white); text-align:center; padding:40px 28px 40px 52px;
  min-height:190px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:10px;
  clip-path:polygon(0 0, calc(100% - 34px) 0, 100% 50%, calc(100% - 34px) 100%, 0 100%, 34px 50%);
}
.hj-step-label{ font-size:19px; font-weight:700; line-height:30px; }
.hj-step-note{ font-size:12px; line-height:20px; }
.hj-step-1 .hj-step-num{ color:#FC6E00; }
.hj-step-1 .hj-step-body{ background:#FC6E00; }
.hj-step-2 .hj-step-num{ color:#FD861E; }
.hj-step-2 .hj-step-body{ background:#FD861E; }
.hj-step-3 .hj-step-num{ color:#FE9633; }
.hj-step-3 .hj-step-body{ background:#FE9633; }
.hj-step-4 .hj-step-num{ color:#FFA94B; }
.hj-step-4 .hj-step-body{ background:#FFA94B; }

/* FAQ */
.hj-front-faq{ background:var(--hj-white); }
.hj-qa-list{ display:flex; flex-direction:column; gap:20px; }
.hj-qa{ border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-card); }
.hj-qa-q{ background:var(--hj-gradient); padding:26px 32px; display:flex; gap:18px; align-items:center; }
.hj-qa-q > span{ flex:0 0 auto; font-family:var(--font-display); font-weight:700; font-size:24px; line-height:1; color:var(--hj-white); }
.hj-qa-q h3{ margin:0; font-size:18px; font-weight:700; line-height:30px; color:var(--hj-white) !important; }
.hj-qa-a{ background:var(--hj-white); padding:28px 32px; display:flex; gap:18px; align-items:flex-start; }
.hj-qa-a > span{ flex:0 0 auto; font-family:var(--font-display); font-weight:700; font-size:24px; line-height:30px; color:var(--hj-orange); }
.hj-qa-a p{ margin:0; font-size:16px; line-height:30px; }

/* 末尾CTA */
.hj-cta-band{ position:relative; background:var(--hj-cream); overflow:hidden; text-align:center; padding:90px 0 100px; }
.hj-cta-band::before{
  content:""; position:absolute; inset:0; opacity:.5;
  background:url(assets/lineart-orange.png) center bottom / 100% auto no-repeat;
}
.hj-cta-band .hj-inner{ position:relative; }
.hj-cta-band h2{ font-size:35px; font-weight:700; line-height:1.4; color:var(--hj-orange) !important; margin:0 0 40px; }
.hj-cta-band-actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:20px; }
.hj-cta-band-actions .hj-btn-nav{ min-width:260px; }

/* 新着情報 */
.hj-news{ background:var(--hj-white); }
.hj-news .hj-inner{ max-width:1054px; }
.hj-news-list{ display:flex; flex-direction:column; }
.hj-news-list a{ display:flex; flex-wrap:wrap; gap:24px; padding:24px 4px; border-bottom:1px solid var(--hj-peach); color:#333333 !important; align-items:flex-start; }
.hj-news-list .date{ flex:0 0 110px; font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--hj-orange); padding-top:4px; }
.hj-news-list .t{ flex:1 1 420px; min-width:240px; font-size:16px; font-weight:700; line-height:28px; }

/* タブレット（1024px以下） */
@media (max-width:1024px){
  .hj-front section{ padding:72px 0; }
  .hj-front .hj-inner{ padding:0 24px; }
  .hj-sec-title{ font-size:30px; margin-bottom:40px; }

  .hj-hero-mv{ padding:56px 0 88px !important; }
  .hj-hero-mv-inner{ padding:0 24px; gap:36px; }
  .hj-hero-art,.hj-hero-shot{ flex:1 1 100%; }
  .hj-hero-art img{ max-width:560px; margin:0 auto; }

  .hj-issue-bubbles{ gap:20px; }
  .hj-define-grid{ gap:36px; }
  .hj-define-text,.hj-define-media{ flex:1 1 100%; min-width:0; }
  .hj-define-media img{ max-width:560px; margin:0 auto; }  .hj-issue-bubble{ font-size:18px; line-height:30px; padding:22px 28px; }

  .hj-solution-grid{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px; }
  .hj-feature-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }

  .hj-point-row{ gap:32px; }
  .hj-point-media,.hj-point-text{ flex:1 1 100%; min-width:0; }
  .hj-point-row,.hj-point-row.is-reverse{ flex-direction:column; }
  .hj-point-media img{ max-width:476px; margin:0 auto; }
  .hj-point-text h3{ font-size:22px; line-height:34px; }

  .hj-plan-row{ gap:14px; }
  .hj-plan{ flex:0 1 calc(33.333% - 14px); }

  .hj-steps{ flex-wrap:wrap; }
  .hj-step{ flex:1 1 calc(50% + 15px); }
  .hj-step:nth-child(3){ margin-left:0; margin-top:24px; }
  .hj-step:nth-child(4){ margin-top:24px; }

  .hj-qa{ }
  .hj-qa-q{ padding:22px 24px; }
  .hj-qa-a{ padding:24px; }
  .hj-qa-q h3{ font-size:17px; line-height:28px; }

  .hj-modal-box{ padding:56px 32px 40px; }
  .hj-modal-box p{ text-align:left; }
}

@media (max-width:767px){
  .hj-front section{ padding:56px 0; }
  .hj-front .hj-inner{ padding:0 16px; }
  .hj-sec-title{ font-size:25px; margin-bottom:32px; }
  .hj-center-action{ margin-top:32px; }
  .hj-hero-mv{ padding:40px 0 64px !important; }
  .hj-issue{ padding:48px 0 !important; }
  .hj-issue-bubbles{ flex-direction:column; align-items:center; gap:24px; margin-top:32px; }
  .hj-issue-bubble{ width:100%; font-size:17px; line-height:28px; padding:20px 22px; }
  .hj-hero-mv-inner{ padding:0 16px; gap:32px; }
  .hj-hero-art,.hj-hero-shot{ flex:1 1 100%; }
  .hj-solution-grid{ grid-template-columns:1fr; }
  .hj-solution-body{ padding:24px 20px; }
  .hj-point-list{ gap:48px; }
  .hj-point-row,.hj-point-row.is-reverse{ flex-direction:column !important; gap:24px; }
  .hj-point-media,.hj-point-text{ flex:1 1 100%; min-width:0; }
  .hj-point-text h3{ font-size:20px; line-height:32px; }
  .hj-steps{ flex-direction:column; }
  .hj-step{ flex:1 1 100%; }
  .hj-step + .hj-step{ margin-left:0; margin-top:-18px; }
  .hj-step-num{ margin-left:24px; }
  .hj-step-body{
    padding:32px 24px 44px; min-height:0;
    clip-path:polygon(0 0, 50% 0, 50% 0, 100% 0, 100% calc(100% - 24px), 50% 100%, 0 calc(100% - 24px));
  }
  .hj-flow-lead{ margin-bottom:32px; }
  .hj-qa-q{ padding:20px; gap:12px; }
  .hj-qa-a{ padding:22px 20px; gap:12px; }
  .hj-qa-q h3{ font-size:16px; line-height:26px; }
  .hj-cta-band{ padding:56px 0 64px; }
  .hj-cta-band h2{ font-size:25px; margin-bottom:32px; }
  .hj-cta-band-actions .hj-btn{ width:100% !important; }
  .hj-feature-grid{ grid-template-columns:1fr; }
  .hj-plan-row{ gap:16px; }
  .hj-plan{ flex:1 1 100%; max-width:none; min-width:0; width:100%; margin:0; }
  .hj-step{ flex:1 1 100%; }
  .hj-step:nth-child(3),.hj-step:nth-child(4){ margin-top:-18px; }
  .hj-news-list .date{ flex:1 1 100%; }
  .hj-modal-box{ padding:56px 20px 32px; }
  .hj-modal-box img{ width:88px; height:88px; margin-bottom:20px; }
  .hj-modal-box h3{ font-size:19px; }
  .hj-modal-box p{ font-size:15px; line-height:28px; text-align:left; }
}

/* =========================================================
   12. Astra 既定の打ち消し
   ========================================================= */
.single-post .ast-container{ max-width:none; padding:0; }
.single-post .site-content > .ast-container,
.blog .site-content > .ast-container,
.archive .site-content > .ast-container{ display:block; }
.blog .ast-container,
.archive .ast-container{ max-width:none; padding:0; }
.blog .site-main,
.archive .site-main,
.single-post .site-main{ padding:0; }
.blog .ast-archive-description,
.archive .ast-archive-description,
.blog .ast-pagination,
.archive .ast-pagination{ display:none; }
.home .ast-container,
.page .ast-container{ max-width:none; padding:0; }
.home .site-main,
.page .site-main{ padding:0; }
.home .entry-header,
.home .entry-title{ display:none; }
.single-post .entry-header,
.single-post .ast-single-post-order,
.single-post .post-navigation,
.single-post .ast-author-details{ display:none; }

/* =========================================================
   13. ニュース（一覧 / 詳細）
   ========================================================= */
.hj-body.is-single-col{ display:block; }
.hj-body.is-single-col .hj-main{ max-width:860px; margin:0 auto; }

.hj-newslist{ display:flex; flex-direction:column; background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:8px 32px; }
.hj-newsrow{ display:flex; flex-wrap:wrap; gap:28px; align-items:flex-start; padding:26px 0; border-bottom:1px solid var(--hj-peach); color:#333333 !important; }
.hj-newsrow:last-child{ border-bottom:0; }
.hj-newsrow:hover{ opacity:1; filter:brightness(.94); }
.hj-newsrow-date{ flex:0 0 110px; font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--hj-orange); padding-top:4px; }
.hj-newsrow-title{ flex:1 1 420px; min-width:240px; font-size:17px; font-weight:700; line-height:30px; }

@media (max-width:767px){
  .hj-newslist{ padding:0 20px; }
  .hj-newsrow{ gap:8px; padding:22px 0; }
  .hj-newsrow-date{ flex:1 1 100%; padding-top:0; }
  .hj-newsrow-title{ flex:1 1 100%; min-width:0; font-size:16px; line-height:28px; }
}

/* =========================================================
   14. 会社紹介（aboutusjp）
   ========================================================= */
.hj-about .hj-eyebrow{ font-family:var(--font-display); font-size:14px; font-weight:700; letter-spacing:.12em; color:var(--hj-orange); text-align:center; margin:0 0 16px; }
.hj-about .hj-eyebrow-on-orange{ color:var(--hj-white); }
.hj-about-body{ max-width:860px; margin:0 auto 48px; font-size:16px; line-height:32px; text-align:center; }

.hj-about-hero{ background:var(--hj-cream); text-align:center; }
.hj-about-hero h1{ font-size:35px; font-weight:700; line-height:1.4; margin:0 0 20px; }
.hj-about-lead{ font-size:16px; line-height:32px; margin:0 0 40px; }
.hj-about-hero .hj-about-lead:last-child{ margin-bottom:0; }
.hj-about-hero-actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:20px; }

.hj-about-company{ background:var(--hj-white); }
.hj-timeline{ display:flex; flex-wrap:wrap; justify-content:center; gap:16px; }
.hj-timeline-item{
  flex:0 1 300px; min-width:240px; background:var(--hj-white);
  border-radius:var(--radius-card); box-shadow:4px 4px 14px 0 rgba(40,20,0,.16);
  padding:28px 24px; text-align:center;
}
.hj-timeline-year{ font-family:var(--font-display); font-size:20px; font-weight:700; color:var(--hj-orange); margin-bottom:8px; }
.hj-timeline-text{ font-size:15px; line-height:28px; font-weight:700; }

.hj-about-mvv{ background:var(--hj-gradient); }
.hj-mvv-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:28px; }
.hj-mvv-card{ background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:36px 32px; }
.hj-mvv-en{ font-family:var(--font-display); font-size:14px; font-weight:700; letter-spacing:.12em; color:var(--hj-orange); margin-bottom:6px; }
.hj-mvv-label{ font-size:13px; margin-bottom:16px; }
.hj-mvv-card h3{ font-size:22px; font-weight:700; line-height:34px; margin:0 0 16px; color:#333333 !important; }
.hj-mvv-card p{ margin:0; font-size:15px; line-height:28px; }

.hj-about-service{ background:var(--hj-cream); }
.hj-service-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; margin-bottom:48px; }
.hj-service-card{ background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:32px 28px; }
.hj-service-num{
  font-family:var(--font-display); font-size:15px; font-weight:700; color:var(--hj-white);
  background:var(--hj-gradient); border-radius:50%; width:40px; height:40px;
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
}
.hj-service-card h3{ font-size:18px; font-weight:700; line-height:30px; margin:0 0 12px; color:#333333 !important; }
.hj-service-card p{ margin:0; font-size:15px; line-height:28px; }
.hj-service-shot{ width:100%; max-width:900px; height:auto; display:block; margin:0 auto; border-radius:var(--radius-media); box-shadow:var(--shadow-card); }

.hj-about-founder{ background:var(--hj-white); }
.hj-founder-grid{ display:flex; flex-wrap:wrap; gap:56px; align-items:flex-start; }
.hj-founder-profile{ flex:0 1 280px; min-width:240px; text-align:center; }
.hj-founder-profile img{ width:200px; height:200px; object-fit:cover; border-radius:50%; display:block; margin:0 auto 20px; }
.hj-founder-role{ font-size:13px; color:var(--hj-orange); font-weight:700; margin-bottom:6px; }
.hj-founder-name{ font-size:22px; font-weight:700; margin-bottom:14px; }
.hj-founder-bio{ margin:0; font-size:14px; line-height:26px; }
.hj-founder-message{ flex:1 1 480px; min-width:280px; }
.hj-founder-lead{ font-size:22px; font-weight:700; line-height:38px; color:var(--hj-orange); margin:0 0 28px; }
.hj-founder-message p{ margin:0 0 24px; font-size:16px; line-height:32px; }
.hj-founder-sign{ text-align:right; font-weight:700; }

.hj-about-outline{ background:var(--hj-cream); }
.hj-outline{ max-width:860px; margin:0 auto; background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:8px 40px; }
.hj-outline-row{ display:flex; flex-wrap:wrap; gap:24px; padding:24px 0; border-bottom:1px solid var(--hj-peach); }
.hj-outline-row:last-child{ border-bottom:0; }
.hj-outline dt{ flex:0 0 160px; font-size:15px; font-weight:700; color:var(--hj-orange); }
.hj-outline dd{ flex:1 1 400px; min-width:220px; margin:0; font-size:15px; line-height:28px; }

@media (max-width:1024px){
  .hj-about-hero h1{ font-size:30px; }
  .hj-founder-grid{ gap:40px; }
}
@media (max-width:767px){
  .hj-about-hero h1{ font-size:25px; }
  .hj-about-lead{ font-size:15px; line-height:30px; }
  .hj-about-hero-actions .hj-btn,.hj-about-hero-actions{ width:100%; }
  .hj-about-hero-actions .hj-btn{ width:100% !important; }
  .hj-about-body{ font-size:15px; line-height:30px; text-align:left; margin-bottom:32px; }
  .hj-timeline-item{ flex:1 1 100%; }
  .hj-mvv-card{ padding:28px 20px; }
  .hj-mvv-card h3{ font-size:19px; line-height:30px; }
  .hj-founder-grid{ flex-direction:column; gap:32px; }
  .hj-founder-profile{ flex:1 1 100%; }
  .hj-founder-lead{ font-size:18px; line-height:32px; }
  .hj-founder-message p{ font-size:15px; line-height:30px; }
  .hj-outline{ padding:0 20px; }
  .hj-outline-row{ gap:6px; padding:20px 0; }
  .hj-outline dt{ flex:1 1 100%; }
  .hj-outline dd{ flex:1 1 100%; min-width:0; }
}

/* =========================================================
   15. 活用シーン（scene）
   ========================================================= */
.hj-scene-hero{ background:var(--hj-cream); text-align:center; }
.hj-scene-hero h1{ font-size:35px; font-weight:700; line-height:1.4; margin:0 0 20px; }
.hj-scene-lead{ font-size:16px; line-height:32px; margin:0 0 40px; }
.hj-scene-tabs{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.hj-scene-tab{
  font-size:15px; font-weight:700; color:var(--hj-orange) !important;
  background:var(--hj-white); border-radius:var(--radius-pill-nav);
  padding:12px 28px; box-shadow:inset 0 0 0 1.5px var(--hj-orange);
}
.hj-scene-tab:hover{ background:var(--hj-gradient); color:var(--hj-white) !important; box-shadow:none; opacity:1; filter:none; }

.hj-scene-group{ background:var(--hj-white); scroll-margin-top:96px; }
.hj-scene-group.is-alt{ background:var(--hj-cream); }
.hj-scene-list{ display:flex; flex-direction:column; gap:64px; }
.hj-scene-row{ display:flex; flex-wrap:wrap; gap:48px; align-items:center; }
.hj-scene-row.is-reverse{ flex-direction:row-reverse; }
/* 元画像の実寸に合わせて列幅を固定（拡大によるぼやけ防止）*/
.hj-scene-media{ flex:0 1 405px; min-width:280px; }
.hj-scene-media img{ width:100%; height:auto; display:block; border-radius:var(--radius-card); }
.hj-scene-text{ flex:1 1 380px; min-width:280px; }
.hj-scene-cat{
  display:inline-flex; align-items:center; height:36px; padding:0 18px;
  border-radius:var(--radius-chip); background:var(--hj-gradient);
  color:var(--hj-white); font-size:15px; font-weight:700; margin-bottom:18px;
}
.hj-scene-text h3{ font-size:24px; font-weight:700; line-height:38px; margin:0 0 16px; color:var(--hj-orange) !important; }
.hj-scene-text p{ margin:0; font-size:16px; line-height:30px; }

@media (max-width:1024px){
  .hj-scene-hero h1{ font-size:30px; }
  .hj-scene-row,.hj-scene-row.is-reverse{ flex-direction:column; gap:28px; }
  .hj-scene-media,.hj-scene-text{ flex:1 1 100%; min-width:0; }
  .hj-scene-media img{ max-width:405px; margin:0 auto; }
  .hj-scene-text h3{ font-size:22px; line-height:34px; }
}
@media (max-width:767px){
  .hj-scene-hero h1{ font-size:25px; }
  .hj-scene-lead{ font-size:15px; line-height:30px; }
  .hj-scene-tabs{ gap:10px; }
  .hj-scene-tab{ font-size:14px; padding:10px 20px; }
  .hj-scene-list{ gap:48px; }
  .hj-scene-text h3{ font-size:19px; line-height:32px; }
  .hj-scene-text p{ font-size:15px; line-height:28px; }
}

/* =========================================================
   16. よくある質問（faq）
   ========================================================= */
.hj-faq-hero{ background:var(--hj-cream); text-align:center; }
.hj-faq-hero h1{ font-size:35px; font-weight:700; line-height:1.4; margin:0 0 20px; }
.hj-faq-lead{ font-size:16px; line-height:32px; margin:0 0 40px; }
.hj-faq-nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; max-width:900px; margin:0 auto; }
.hj-faq-nav a{
  font-size:14px; font-weight:700; color:var(--hj-orange) !important;
  background:var(--hj-white); border-radius:var(--radius-pill-nav);
  padding:10px 22px; box-shadow:inset 0 0 0 1.5px var(--hj-orange);
}
.hj-faq-nav a:hover{ background:var(--hj-gradient); color:var(--hj-white) !important; box-shadow:none; opacity:1; filter:none; }

.hj-faq-body{ background:var(--hj-white); }
.hj-faq-body .hj-inner{ max-width:1054px; }
.hj-faq-group{ scroll-margin-top:96px; }
.hj-faq-group + .hj-faq-group{ margin-top:64px; }
.hj-faq-group-title{ font-size:24px; font-weight:700; line-height:1.5; margin:0 0 24px; padding:0 0 14px; border-bottom:1px solid var(--hj-orange); }
.hj-faq-items{ display:flex; flex-direction:column; gap:16px; }

.hj-faq-item{ border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-card); background:var(--hj-white); }
.hj-faq-item > summary{
  list-style:none; cursor:pointer; background:var(--hj-gradient);
  padding:22px 56px 22px 28px; display:flex; gap:16px; align-items:center; position:relative;
}
.hj-faq-item > summary::-webkit-details-marker{ display:none; }
.hj-faq-item > summary::after{
  content:""; position:absolute; right:26px; top:50%; margin-top:-5px;
  width:10px; height:10px; border-right:2px solid var(--hj-white); border-bottom:2px solid var(--hj-white);
  transform:rotate(45deg); transition:transform var(--duration-base) var(--ease-standard);
}
.hj-faq-item[open] > summary::after{ transform:rotate(-135deg); margin-top:0; }
.hj-faq-item > summary .mark{ flex:0 0 auto; font-family:var(--font-display); font-weight:700; font-size:22px; line-height:1; color:var(--hj-white); }
.hj-faq-item > summary .text{ font-size:17px; font-weight:700; line-height:28px; color:var(--hj-white); }
.hj-faq-answer{ display:flex; gap:16px; padding:26px 28px 30px; }
.hj-faq-answer .mark{ flex:0 0 auto; font-family:var(--font-display); font-weight:700; font-size:22px; line-height:30px; color:var(--hj-orange); }
.hj-faq-answer .text{ font-size:16px; line-height:30px; }
.hj-faq-answer .text ul{ margin:12px 0; padding-left:1.4em; }
.hj-faq-answer .text li{ margin-bottom:8px; }

@media (max-width:1024px){
  .hj-faq-hero h1{ font-size:30px; }
}
@media (max-width:767px){
  .hj-faq-hero h1{ font-size:25px; }
  .hj-faq-lead{ font-size:15px; line-height:30px; }
  .hj-faq-nav a{ font-size:13px; padding:9px 16px; }
  .hj-faq-group + .hj-faq-group{ margin-top:48px; }
  .hj-faq-group-title{ font-size:19px; }
  .hj-faq-item > summary{ padding:18px 44px 18px 18px; gap:10px; }
  .hj-faq-item > summary .text{ font-size:15px; line-height:26px; }
  .hj-faq-answer{ padding:20px 18px 24px; gap:10px; }
  .hj-faq-answer .text{ font-size:15px; line-height:28px; }
}

/* =========================================================
   17. お問い合わせ（contact）
   ========================================================= */
.hj-contact-hero{ background:var(--hj-cream); text-align:center; }
.hj-contact-hero h1{ font-size:35px; font-weight:700; line-height:1.4; margin:0 0 20px; }
.hj-contact-lead{ font-size:16px; line-height:32px; margin:0; }

.hj-contact-body{ background:var(--hj-white); }
.hj-contact-body .hj-inner{ max-width:860px; }
.hj-contact-form{ max-width:860px; margin:0 auto; }
.hj-contact-note{ margin-top:32px; text-align:center; font-size:14px; line-height:26px; }
.hj-contact-note p{ margin:0 0 6px; }
.hj-contact-privacy{ margin-top:14px !important; font-size:13px; }

.hj-contact-links{ background:var(--hj-cream); }
.hj-contact-linkgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; }
.hj-contact-link{
  background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card);
  padding:28px 26px; display:flex; flex-direction:column; gap:10px; color:#333333 !important;
}
.hj-contact-link .t{ font-size:18px; font-weight:700; color:var(--hj-orange); }
.hj-contact-link .d{ font-size:14px; line-height:26px; }

@media (max-width:1024px){
  .hj-contact-hero h1{ font-size:30px; }
}
@media (max-width:767px){
  .hj-contact-hero h1{ font-size:25px; }
  .hj-contact-lead{ font-size:15px; line-height:30px; }
}

/* =========================================================
   18. 資料ダウンロード（dl）
   ========================================================= */
.hj-dl-hero{ position:relative; background:var(--hj-cream); overflow:hidden; }
.hj-dl-hero::before{
  content:""; position:absolute; inset:0; opacity:.45;
  background:url(assets/lineart-orange.png) center bottom / 100% auto no-repeat;
}
.hj-dl-hero .hj-inner{ position:relative; }
.hj-dl-hero .hj-breadcrumb{ text-align:center; }
.hj-dl-hero-grid{ display:flex; flex-wrap:wrap; gap:56px; align-items:flex-start; }
.hj-dl-hero-text{ flex:1 1 420px; min-width:280px; }
.hj-dl .hj-eyebrow{ font-family:var(--font-display); font-size:14px; font-weight:700; letter-spacing:.12em; color:var(--hj-orange); margin:0 0 14px; }
.hj-dl-hero-text h1{ font-size:35px; font-weight:700; line-height:1.4; margin:0 0 20px; }
.hj-dl-lead{ font-size:16px; line-height:32px; margin:0 0 28px; }
.hj-dl-points{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.hj-dl-points li{ display:flex; gap:12px; font-size:15px; line-height:28px; }
.hj-dl-points li::before{ content:""; flex:0 0 auto; width:8px; height:8px; border-radius:50%; background:var(--hj-orange); margin-top:10px; }

.hj-dl-preview{ display:flex; gap:16px; margin:0 0 28px; }
.hj-dl-preview img{
  flex:1 1 0; min-width:0; width:100%; height:auto; display:block;
  border-radius:8px; box-shadow:var(--shadow-card); background:var(--hj-white);
}
.hj-dl-hero-form{ flex:1 1 420px; min-width:280px; }
.hj-dl-form-card{ background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:36px 36px 28px; }
.hj-dl-form-title{ font-size:18px; font-weight:700; margin:0 0 24px; padding:0 0 14px; border-bottom:1px solid var(--hj-orange); }
.hj-dl-privacy{ margin:20px 0 0; font-size:13px; line-height:24px; }

.hj-dl-contents{ background:var(--hj-white); }
.hj-dl-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:24px; }
.hj-dl-card{ background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:32px 28px; }
.hj-dl-num{
  font-family:var(--font-display); font-size:15px; font-weight:700; color:var(--hj-white);
  background:var(--hj-gradient); border-radius:50%; width:40px; height:40px;
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
}
.hj-dl-card h3{ font-size:18px; font-weight:700; line-height:30px; margin:0 0 12px; color:#333333 !important; }
.hj-dl-card p{ margin:0; font-size:15px; line-height:28px; }

@media (max-width:1024px){
  .hj-dl-hero-text h1{ font-size:30px; }
  .hj-dl-hero-grid{ gap:40px; }
}
@media (max-width:767px){
  .hj-dl-hero-text h1{ font-size:25px; }
  .hj-dl-lead{ font-size:15px; line-height:30px; }
  .hj-dl-form-card{ padding:24px 20px 20px; }
  .hj-dl-preview{ gap:12px; margin-bottom:20px; }
}

/* 有料プランのお申込み */
.hj-front .hj-order-hero{ background:var(--hj-cream); text-align:center; padding:56px 0 64px !important; }
.hj-order-hero .hj-breadcrumb{ justify-content:center; }
.hj-order-hero h1{ font-size:35px; font-weight:700; line-height:1.4; margin:0 0 20px; }
.hj-order-lead{ max-width:720px; margin:0 auto 32px; font-size:16px; line-height:32px; }
.hj-order-points{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:28px; font-size:15px; font-weight:700; }

.hj-order-form-section{ background:var(--hj-white); padding:0 0 88px !important; }
.hj-order-form-card{ max-width:600px; margin:0 auto; background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:44px 40px; }
.hj-order-form-title{ font-size:18px; font-weight:700; margin:0 0 24px; padding:0 0 14px; border-bottom:1px solid var(--hj-orange); text-align:center; }

@media (max-width:767px){
  .hj-order-hero h1{ font-size:25px; }
  .hj-order-lead{ font-size:15px; line-height:30px; }
  .hj-order-points{ gap:16px; flex-direction:column; }
  .hj-order-form-card{ padding:28px 20px 24px; }
}

/* =========================================================
   19. 会社概要（outline）
   ========================================================= */

.hj-outline-page .hj-about-outline{ background:var(--hj-white); }
.hj-outline-page .hj-about-history{ background:var(--hj-white); padding-top:0; }
.hj-history dt{ flex:0 0 120px; }
.hj-members{ background:var(--hj-cream); }
.hj-member-list{ display:flex; flex-direction:column; gap:32px; }
.hj-member{
  display:flex; flex-wrap:wrap; gap:40px; align-items:flex-start;
  background:var(--hj-white); border-radius:var(--radius-card);
  box-shadow:var(--shadow-card); padding:40px;
}
.hj-member-profile{ flex:0 1 220px; min-width:200px; text-align:center; }
.hj-member-profile img{ width:160px; height:160px; object-fit:cover; border-radius:50%; display:block; margin:0 auto 18px; }
.hj-member-role{ font-size:13px; font-weight:700; color:var(--hj-orange); margin-bottom:6px; }
.hj-member-name{ font-size:22px; font-weight:700; }
.hj-member-body{ flex:1 1 460px; min-width:280px; }
.hj-member-body p{ margin:0 0 20px; font-size:15px; line-height:30px; }
.hj-member-body p:last-child{ margin-bottom:0; }

@media (max-width:1024px){
  .hj-member{ padding:32px; gap:32px; }
}
@media (max-width:767px){
  .hj-member{ flex-direction:column; padding:24px 20px; gap:24px; }
  .hj-member-profile{ flex:1 1 100%; }
  .hj-member-profile img{ width:120px; height:120px; }
  .hj-member-name{ font-size:19px; }
  .hj-member-body{ flex:1 1 100%; min-width:0; }
  .hj-member-body p{ font-size:15px; line-height:28px; }
}

/* =========================================================
   20. 規約系ページ（汎用 page.php）
   ========================================================= */
.hj-legal-hero{ background:var(--hj-cream); text-align:center; }
.hj-legal-hero h1{ font-size:35px; font-weight:700; line-height:1.4; margin:0; }
.hj-legal-updated{ margin:16px 0 0; font-size:14px; }
.hj-legal-updated time{ font-family:var(--font-display); font-weight:600; }

.hj-legal-body{ background:var(--hj-white); }
.hj-legal-body .hj-inner{ max-width:900px; }
.hj-legal-content{ font-size:16px; line-height:32px; color:#333333; }
.hj-legal-content > *:first-child{ margin-top:0; }
.hj-legal-content p{ margin:0 0 24px; }
.hj-legal-content h2{
  font-size:22px; font-weight:700; line-height:1.6;
  margin:56px 0 20px; padding:0 0 12px;
  border-bottom:1px solid var(--hj-orange);
}
.hj-legal-content h3{
  font-size:18px; font-weight:700; line-height:1.7;
  margin:36px 0 16px; padding-left:14px;
  border-left:4px solid var(--hj-orange);
}
.hj-legal-content h4{ font-size:16px; font-weight:700; margin:28px 0 12px; }
.hj-legal-content ul,.hj-legal-content ol{ margin:0 0 24px; padding-left:1.5em; }
.hj-legal-content li{ margin-bottom:10px; }
.hj-legal-content a{ color:var(--hj-orange); text-decoration:underline; }
.hj-legal-content table{ width:100%; border-collapse:collapse; margin:0 0 24px; font-size:15px; }
.hj-legal-content th,.hj-legal-content td{ border:1px solid var(--hj-peach); padding:14px 16px; text-align:left; }
.hj-legal-content th{ background:var(--hj-cream); font-weight:700; }
.hj-legal-content blockquote{ margin:0 0 24px; padding:20px 24px; background:var(--hj-cream); border-radius:var(--radius-card); }
.hj-legal-content hr{ border:0; border-top:1px solid var(--hj-peach); margin:40px 0; }

@media (max-width:1024px){
  .hj-legal-hero h1{ font-size:30px; }
}
@media (max-width:767px){
  .hj-legal-hero h1{ font-size:25px; }
  .hj-legal-content{ font-size:15px; line-height:30px; }
  .hj-legal-content h2{ font-size:19px; margin:40px 0 16px; }
  .hj-legal-content h3{ font-size:17px; margin:28px 0 12px; }
  .hj-legal-content table{ font-size:14px; }
  .hj-legal-content th,.hj-legal-content td{ padding:10px 12px; }
}

/* 汎用ページ内に埋め込まれたフォーム（HubSpot等）の幅を整える */
.hj-legal-content form,
.hj-legal-content .hs-form-frame,
.hj-legal-content .hbspt-form{ width:100%; max-width:640px; margin:32px auto 0; text-align:left; }
.hj-legal-content input[type=text],
.hj-legal-content input[type=email],
.hj-legal-content input[type=tel],
.hj-legal-content input[type=url],
.hj-legal-content input[type=number],
.hj-legal-content select,
.hj-legal-content textarea{ width:100% !important; box-sizing:border-box; }
.hj-legal-content .elementor-widget-container{ max-width:100%; }

/* =========================================================
   21. 体験版のお申込（trial）
   ========================================================= */
.hj-trial-hero{ background:var(--hj-cream); text-align:center; }
.hj-trial-hero h1{ font-size:35px; font-weight:700; line-height:1.4; margin:0 0 20px; }
.hj-trial-lead{ font-size:16px; line-height:32px; margin:0; }

.hj-trial-body{ background:var(--hj-white); }
.hj-trial-grid{ display:flex; flex-wrap:wrap; gap:56px; align-items:flex-start; }
.hj-trial-points{ flex:1 1 380px; min-width:280px; }
.hj-trial-point{ display:flex; gap:18px; align-items:flex-start; margin-bottom:32px; }
.hj-trial-num{
  flex:0 0 auto; font-family:var(--font-display); font-size:15px; font-weight:700;
  color:var(--hj-white); background:var(--hj-gradient); border-radius:50%;
  width:40px; height:40px; display:flex; align-items:center; justify-content:center;
}
.hj-trial-point h2{ font-size:18px; font-weight:700; line-height:30px; margin:0 0 8px; }
.hj-trial-point p{ margin:0; font-size:15px; line-height:28px; }
.hj-trial-note{ margin:0; padding:20px 24px; background:var(--hj-cream); border-radius:var(--radius-card); font-size:14px; line-height:26px; }

.hj-trial-form-card{ flex:1 1 440px; min-width:280px; background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:36px 36px 28px; }
.hj-trial-form-title{ font-size:18px; font-weight:700; margin:0 0 24px; padding:0 0 14px; border-bottom:1px solid var(--hj-orange); }
.hj-trial-privacy{ margin:20px 0 0; font-size:13px; line-height:24px; }

@media (max-width:1024px){
  .hj-trial-hero h1{ font-size:30px; }
  .hj-trial-grid{ gap:40px; }
}
@media (max-width:767px){
  .hj-trial-hero h1{ font-size:25px; }
  .hj-trial-lead{ font-size:15px; line-height:30px; }
  .hj-trial-form-card{ padding:24px 20px 20px; }
  .hj-trial-point{ gap:14px; margin-bottom:24px; }
}

/* =========================================================
   22. デモ予約（demo）
   ========================================================= */
.hj-demo-points{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; margin-bottom:48px; }
.hj-demo-point{ background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:32px 28px; }
.hj-demo-point .hj-trial-num{ margin-bottom:18px; }
.hj-demo-point h2{ font-size:18px; font-weight:700; line-height:30px; margin:0 0 12px; }
.hj-demo-point p{ margin:0; font-size:15px; line-height:28px; }
.hj-demo-calendar{ background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:24px; overflow:hidden; }
.hj-demo-calendar .meetings-iframe-container{ width:100%; }
.hj-demo-calendar iframe{ width:100% !important; min-height:720px; border:0; display:block; }
.hj-demo-note{ margin:24px 0 0; text-align:center; font-size:14px; line-height:26px; }

@media (max-width:767px){
  .hj-demo-points{ grid-template-columns:1fr; margin-bottom:32px; }
  .hj-demo-calendar{ padding:12px; }
  .hj-demo-calendar iframe{ min-height:900px; }
}

/* =========================================================
   23. ブログ一覧（2カラム）
   ========================================================= */
.hj-archive-2col{ display:flex; flex-wrap:wrap; gap:48px; align-items:flex-start; }
.hj-archive-side{ flex:0 0 300px; max-width:300px; display:flex; flex-direction:column; gap:24px; position:sticky; top:96px; }
.hj-archive-main{ flex:1 1 560px; min-width:300px; }

.hj-side-block{ background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:24px; }
.hj-side-title{ font-size:16px; font-weight:700; margin:0 0 16px; padding:0 0 12px; border-bottom:1px solid var(--hj-orange); }

.hj-search{ display:flex; gap:8px; }
.hj-search input[type=search]{
  flex:1 1 auto; min-width:0; box-sizing:border-box;
  font-family:var(--font-jp); font-size:14px; color:#333333;
  border:1px solid #D9D9D9; border-radius:8px; padding:11px 12px;
}
.hj-search input[type=search]:focus{ outline:1.5px solid var(--hj-orange); outline-offset:-1.5px; border-color:var(--hj-orange); }
.hj-search button{
  flex:0 0 auto; border:0; cursor:pointer; border-radius:8px;
  font-family:var(--font-jp); font-size:14px; font-weight:700;
  color:var(--hj-white); background:var(--hj-gradient); padding:0 16px;
}

.hj-side-cats{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.hj-side-cats a{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  font-size:14px; line-height:1.7; color:#333333 !important;
  padding:10px 12px; border-radius:6px;
}
.hj-side-cats a:hover{ background:var(--hj-cream); color:var(--hj-orange) !important; opacity:1; filter:none; }
.hj-side-cats a.is-active{ background:var(--hj-cream); color:var(--hj-orange) !important; font-weight:700; }
.hj-side-cats .count{ font-family:var(--font-display); font-size:12px; font-weight:600; color:var(--hj-orange); }

.hj-side-ranking{ display:flex; flex-direction:column; gap:16px; }
.hj-side-ranking a{ display:flex; gap:12px; align-items:flex-start; color:#333333 !important; }
.hj-side-ranking .rank{ flex:0 0 auto; font-family:var(--font-display); font-size:17px; font-weight:700; color:var(--hj-orange); }
.hj-side-ranking .t{ font-size:14px; line-height:1.75; }

.hj-side-dl{ background:var(--hj-cream); border-radius:var(--radius-card); padding:26px 24px; }
.hj-side-dl-title{ font-size:17px; font-weight:700; line-height:1.6; margin:0 0 12px; }
.hj-side-dl p{ margin:0 0 20px; font-size:14px; line-height:26px; }
.hj-side-dl .hj-btn-nav{ width:100% !important; min-width:0; }

.hj-archive-list{ display:flex; flex-direction:column; }
.hj-post-row{ display:flex; flex-wrap:wrap; gap:24px; padding:28px 0; border-bottom:1px solid var(--hj-peach); align-items:flex-start; }
.hj-post-row:first-child{ padding-top:0; }
.hj-post-row-thumb{ flex:0 0 220px; max-width:220px; aspect-ratio:16/10; border-radius:8px; overflow:hidden; background:var(--hj-cream); display:block; }
.hj-post-row-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.hj-post-row-body{ flex:1 1 320px; min-width:240px; }
.hj-post-row-title{ margin:10px 0 10px; font-size:20px; font-weight:700; line-height:1.6; }
.hj-post-row-title a{ color:#333333 !important; }
.hj-post-row-title a:hover{ color:var(--hj-orange) !important; opacity:1; filter:none; }
.hj-post-row-excerpt{ margin:0; font-size:14px; line-height:26px; }

@media (max-width:1024px){
  .hj-archive-2col{ flex-direction:column; gap:40px; }
  .hj-archive-side{ position:static; flex:1 1 100%; max-width:none; width:100%;
    display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
  .hj-archive-main{ flex:1 1 100%; }
}
@media (max-width:767px){
  .hj-archive-side{ grid-template-columns:1fr; }
  .hj-post-row{ gap:16px; padding:22px 0; }
  .hj-post-row-thumb{ flex:0 0 110px; max-width:110px; }
  .hj-post-row-body{ flex:1 1 200px; min-width:180px; }
  .hj-post-row-title{ font-size:16px; line-height:1.6; margin:8px 0 8px; }
  .hj-post-row-excerpt{ display:none; }
}

/* =========================================================
   24. 動画セクション
   ========================================================= */
.hj-videos{ background:var(--hj-cream); }
.hj-video-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:32px; }
.hj-video-frame{
  position:relative; width:100%; aspect-ratio:16/9;
  border-radius:var(--radius-media); overflow:hidden;
  box-shadow:var(--shadow-card); background:#000;
  -webkit-mask-image:-webkit-radial-gradient(#fff, #000); /* Safariで角丸が効かない対策 */
  isolation:isolate;
  transform:translateZ(0);      /* iframeを親の角丸で確実にクリップする */
  will-change:transform;
  clip-path:inset(0 round var(--radius-media));
}
.hj-video-frame iframe{
  position:absolute; inset:0; width:100%; height:100%;
  border:0; display:block; border-radius:var(--radius-media);
}
.hj-video-title{ margin-top:16px; font-size:16px; font-weight:700; text-align:center; }

@media (max-width:767px){
  .hj-video-grid{ grid-template-columns:1fr; gap:28px; }
  .hj-video-title{ font-size:15px; margin-top:12px; }
}

/* =========================================================
   機能一覧ページ（/feature/）
   ========================================================= */
.hj-feature-nav-sec{ background:var(--hj-white); padding-bottom:0; }
.hj-feature-nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.hj-feature-nav a{
  display:inline-flex; align-items:center; gap:10px;
  font-size:15px; font-weight:700; color:var(--hj-orange) !important;
  background:var(--hj-white); border-radius:var(--radius-pill-nav);
  padding:12px 24px; box-shadow:inset 0 0 0 1.5px var(--hj-orange);
  transition:opacity .16s cubic-bezier(.4,0,.2,1);
}
.hj-feature-nav a:hover{ opacity:.85; }
.hj-feature-nav a span{
  font-family:var(--font-display); font-size:13px; color:var(--hj-white) !important;
  background:var(--hj-gradient); border-radius:var(--radius-pill-nav); padding:2px 10px;
}
.hj-feature-sec.is-alt{ background:var(--hj-cream); }
.hj-feature-detail-list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(360px,1fr)); gap:24px; margin-top:40px; }
.hj-feature-detail{
  background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card);
  padding:32px 28px; display:flex; flex-direction:column; gap:12px;
}
.hj-feature-detail .hj-feature-icon{ font-size:52px; margin:0 auto; }
.hj-feature-detail-head{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; text-align:center; }
.hj-feature-detail h3{ font-size:20px; font-weight:700; line-height:32px; color:var(--hj-orange) !important; margin:0; }
.hj-feature-detail-lead{ margin:0; font-size:15px; font-weight:700; line-height:26px; text-align:center; }
.hj-feature-detail-body{ margin:0; font-size:15px; line-height:28px; }
.hj-feature-price{ background:var(--hj-white); }

@media (max-width:767px){
  .hj-feature-detail-list{ grid-template-columns:1fr; gap:16px; margin-top:28px; }
  .hj-feature-detail{ padding:24px 20px; }
  .hj-feature-detail h3{ font-size:18px; line-height:28px; }
  .hj-feature-detail .hj-feature-icon,
  .hj-feature-card .hj-feature-icon{ font-size:40px; }
  .hj-feature-nav a{ font-size:14px; padding:10px 18px; }
}

/* =========================================================
   ガイド階層（/guide/）
   ========================================================= */
.hj-guide-sec{ background:var(--hj-white); }
.hj-guide-lead{ font-size:16px; line-height:32px; margin:0 auto 20px; max-width:720px; text-align:center; text-wrap:pretty; }
.hj-guide-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; justify-content:center; }
.hj-guide-index .hj-guide-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; max-width:880px; margin:0 auto; }
.hj-guide-index .hj-guide-grid.is-3col{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; max-width:none; }
.hj-guide-index .hj-guide-sec{ padding:64px 0 72px; }
.hj-guide-index .hj-about-hero{ padding-bottom:52px; }
.hj-guide-index .hj-about-lead{ margin-bottom:0; }
.hj-guide-index .hj-guide-sec .hj-sec-title{ margin-bottom:28px; }
.hj-guide-index .hj-related-pages{ padding:64px 0 72px; }
.hj-guide-card{
  background:var(--hj-white); border-radius:var(--radius-card); box-shadow:var(--shadow-card);
  padding:28px 26px 30px; display:flex; flex-direction:column; gap:12px; color:var(--hj-ink) !important;
  overflow:hidden;
}
.hj-guide-index .hj-guide-card{ padding:0; gap:0; }
.hj-guide-card-img{ display:block; aspect-ratio:16/9; background:var(--hj-cream); overflow:hidden; }
.hj-guide-card-img img{ display:block; width:100%; height:100%; object-fit:cover; }
.hj-guide-card-body{ display:flex; flex-direction:column; gap:12px; padding:26px 26px 28px; flex:1; }
.hj-guide-card .t{ font-size:19px; font-weight:700; line-height:1.6; color:var(--hj-orange); }
.hj-guide-card .d{ font-size:14px; line-height:26px; }
.hj-guide-card .m{
  margin-top:auto; align-self:flex-start;
  font-family:var(--font-display); font-size:13px; font-weight:700; color:var(--hj-white);
  background:var(--hj-gradient); border-radius:var(--radius-pill-nav); padding:9px 26px;
}
.hj-guide-index-body{ margin-top:48px; }
.hj-define-more{ font-size:15px; line-height:28px; margin:20px 0 0; }
.hj-define-more a{ font-weight:700; }
.hj-cta .hj-cta-heading{ font-size:26px; font-weight:700; line-height:1.5; margin:0 0 14px; }
@media (max-width:767px){ .hj-cta .hj-cta-heading{ font-size:21px; } }
.hj-guide-more{ margin:64px 0 0; }
.hj-guide-more h2{ font-size:28px; font-weight:700; line-height:1.55; margin:0 0 26px; padding:0 0 16px; border-bottom:1px solid var(--hj-orange); }
.hj-guide-links{ display:flex; flex-direction:column; gap:2px; }
.hj-guide-links a{ font-size:14px; line-height:1.7; color:var(--hj-ink); padding:9px 10px; border-radius:var(--radius-chip); }
.hj-guide-links a:hover{ background:var(--hj-cream); color:var(--hj-orange); opacity:1; }
.hj-guide .hj-title{ margin-bottom:16px; }

@media (max-width:1024px){
  .hj-guide-index .hj-guide-grid,
  .hj-guide-index .hj-guide-grid.is-3col{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px){
  .hj-guide-grid{ grid-template-columns:1fr; gap:16px; }
  .hj-guide-index .hj-guide-grid{ grid-template-columns:1fr; }
  .hj-guide-index .hj-guide-grid.is-3col{ grid-template-columns:1fr; }
  .hj-guide-index .hj-guide-sec,
  .hj-guide-index .hj-related-pages{ padding:44px 0 48px; }
  .hj-guide-card{ padding:22px 20px 24px; }
  .hj-guide-card-body{ padding:22px 20px 24px; }
  .hj-guide-more h2{ font-size:25px; }
}

/* 料金ページ：プラン比較表 */
.hj-price-compare{ background:var(--hj-cream); }
.hj-price-compare .hj-sec-title{ margin-bottom:16px; }
.hj-price-compare-lead{ text-align:center; font-size:16px; line-height:30px; margin:0 auto 40px; max-width:720px; text-wrap:pretty; }
.hj-price-table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.hj-price-table{ width:100%; min-width:760px; border-collapse:collapse; background:var(--hj-white); border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-card); }
.hj-price-table th,
.hj-price-table td{ padding:16px 14px; font-size:14px; line-height:24px; text-align:center; border-bottom:1px solid #F0E4D6; }
.hj-price-table thead th{ background:var(--hj-gradient); color:var(--hj-white); font-weight:700; font-size:13px; line-height:20px; border-bottom:none; }
.hj-price-table tbody th{ font-weight:700; text-align:left; }
.hj-price-table tbody tr:last-child th,
.hj-price-table tbody tr:last-child td{ border-bottom:none; }
.hj-price-table tbody tr.is-highlight{ background:var(--hj-cream); }
.hj-price-table .hj-price-unit{ font-family:var(--font-display); font-weight:700; font-size:17px; color:var(--hj-orange); }
.hj-price-table td:last-child{ text-align:left; }
.hj-price-compare .hj-price-note{ margin-top:20px; }
.hj-price-compare .hj-center-action{ margin-top:36px; }

@media (max-width:767px){
  .hj-price-compare-lead{ font-size:15px; line-height:28px; margin-bottom:28px; text-align:left; }
  .hj-price-table th,.hj-price-table td{ padding:13px 11px; font-size:13px; line-height:22px; }
}
