@charset "UTF-8";
/*
Theme Name: Ncorporation
Theme URI: https://ncorporation.example.com/
Author: alank / kinoshita tsubasa
Author URI: https://ncorporation.example.com/
Description: 株式会社Ncorporation 有料職業紹介・退職代行サービス公式テーマ。お知らせ投稿・コンタクトフォーム(入力→確認→完了)・チャットボット搭載。
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: ncorporation
*/

/* ==========================================================
   株式会社Ncorporation  有料職業紹介 / 退職代行
   2026 リニューアル版 スタイルシート
   ========================================================== */

/* ---------- Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Zen+Maru+Gothic:wght@400;500;700&display=swap');

/* ---------- Design Tokens ---------- */
:root{
  --color-primary:#2B5A94;        /* 信頼感のあるネイビーブルー */
  --color-primary-dark:#0f3774;
  --color-primary-light:#e8f1fb;
  --color-accent:#ffaa00;         /* あたたかみのあるオレンジ */
  --color-accent-light:#ffe5a8;
  --color-yellow:#ffd84d;
  --color-green:#00c656;
  --color-text:#2a2a2a;
  --color-text-sub:#6b6b6b;
  --color-bg:#ffffff;
  --color-bg-soft:#f7f9fc;
  --color-bg-cream:#fff9ec;
  --color-border:#e4e8ef;
  --color-shadow:0 8px 24px rgba(43,90,148,.08);
  --color-shadow-strong:0 12px 32px rgba(43,90,148,.15);

  --radius-sm:8px;
  --radius-md:14px;
  --radius-lg:24px;
  --radius-pill:999px;

  --container:1180px;
  --header-h:72px;

  --font-jp:"Zen Maru Gothic","Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --font-sans:"Noto Sans JP","Zen Maru Gothic","Hiragino Sans","Yu Gothic",sans-serif;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,
abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,
dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,
article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,
time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;}
a{text-decoration:none;color:inherit;}
ul,ol{list-style:none;}
img{max-width:100%;height:auto;display:block;}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,textarea,select{font:inherit;color:inherit;}

html{font-size:62.5%;scroll-behavior:smooth;}
body{
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-jp);
  font-size:1.6rem;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
  overflow-x:hidden;
}

/* ---------- Utility ---------- */
.container{width:min(92%,var(--container));margin:0 auto;}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.rel{position:relative;}
.ab{position:absolute;}

/* ========== Header ========== */
.site-header{
  position:sticky;
  top:0;
  left:0;
  width:100%;
  height:var(--header-h);
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--color-border);
  z-index:1000;
}
.site-header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:100%;
  width:min(94%,1280px);
  margin:0 auto;
}
.site-logo{display:flex;align-items:center;gap:10px;}
.site-logo img{width:44px;height:44px;border-radius:10px;}
.site-logo__text{font-weight:700;font-size:1.5rem;letter-spacing:.5px;color:var(--color-primary);line-height:1.2;}
.site-logo__text small{display:block;font-size:1rem;color:var(--color-text-sub);font-weight:500;}

.site-nav{display:flex;align-items:center;gap:28px;}
.site-nav a{font-size:1.4rem;font-weight:500;color:var(--color-text);transition:color .2s;position:relative;}
.site-nav a:hover{color:var(--color-primary);}
.site-nav a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--color-primary);transition:width .25s;}
.site-nav a:hover::after{width:100%;}
.site-nav .cta{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 20px;
  background:var(--color-accent);
  color:#fff;
  border-radius:var(--radius-pill);
  font-weight:700;
  transition:transform .2s,box-shadow .2s;
}
.site-nav .cta::after{display:none;}
.site-nav .cta:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(255,170,0,.35);color:#fff;}

.hamburger{display:none;width:44px;height:44px;border-radius:10px;position:relative;}
.hamburger span{position:absolute;left:10px;right:10px;height:2px;background:var(--color-primary);border-radius:2px;transition:.3s;}
.hamburger span:nth-child(1){top:14px;}
.hamburger span:nth-child(2){top:21px;}
.hamburger span:nth-child(3){top:28px;}
.hamburger.is-open span:nth-child(1){top:21px;transform:rotate(45deg);}
.hamburger.is-open span:nth-child(2){opacity:0;}
.hamburger.is-open span:nth-child(3){top:21px;transform:rotate(-45deg);}

@media (max-width:900px){
  .site-nav{
    position:fixed;top:var(--header-h);left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:#fff;
    padding:16px 6%;
    border-bottom:1px solid var(--color-border);
    transform:translateY(-120%);
    transition:transform .3s ease;
    box-shadow:0 10px 25px rgba(0,0,0,.06);
  }
  .site-nav.is-open{transform:translateY(0);}
  .site-nav a{padding:14px 4px;border-bottom:1px solid var(--color-border);font-size:1.5rem;}
  .site-nav a::after{display:none;}
  .site-nav .cta{margin-top:12px;justify-content:center;}
  .hamburger{display:block;}
}

/* ========== Hero ========== */
.hero{
  position:relative;
  min-height:min(82vh,720px);
  background:linear-gradient(135deg,#eaf3ff 0%,#f7f9fc 100%);
  overflow:hidden;
}
.hero__inner{
  position:relative;
  width:min(94%,1280px);
  margin:0 auto;
  padding:64px 0 80px;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:40px;
  align-items:center;
}
.hero__copy h1{
  font-size:clamp(2.8rem,5vw,5rem);
  line-height:1.25;
  color:var(--color-primary);
  font-weight:700;
  letter-spacing:1px;
}
.hero__copy h1 .accent{color:var(--color-accent);}
.hero__copy .lead{
  margin-top:20px;
  font-size:1.6rem;
  color:var(--color-text-sub);
  line-height:1.9;
}
.hero__copy .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;}
.hero__copy .chips span{
  background:#fff;border:1px solid var(--color-border);
  padding:6px 14px;border-radius:var(--radius-pill);
  font-size:1.3rem;color:var(--color-primary);font-weight:700;
}
.hero__ctas{margin-top:32px;display:flex;flex-wrap:wrap;gap:12px;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 28px;border-radius:var(--radius-pill);
  font-weight:700;font-size:1.5rem;letter-spacing:1px;
  transition:transform .2s,box-shadow .2s,background .2s,color .2s,border-color .2s;
  border:2px solid transparent;
}
.btn--primary{background:var(--color-primary);color:#fff;}
.btn--primary:hover{background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 10px 20px rgba(15,55,116,.25);}
.btn--accent{background:var(--color-accent);color:#fff;}
.btn--accent:hover{background:#e89500;transform:translateY(-2px);box-shadow:0 10px 20px rgba(255,170,0,.3);}
.btn--line{background:var(--color-green);color:#fff;}
.btn--line:hover{background:#00a84a;transform:translateY(-2px);box-shadow:0 10px 20px rgba(0,198,86,.28);}
.btn--outline{background:#fff;color:var(--color-primary);border-color:var(--color-primary);}
.btn--outline:hover{background:var(--color-primary);color:#fff;}

.hero__visual{position:relative;}
.hero__visual img{width:100%;border-radius:var(--radius-lg) 80px var(--radius-lg) var(--radius-lg);box-shadow:var(--color-shadow-strong);}
.hero__visual::after{
  content:"";position:absolute;right:-20px;bottom:-24px;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,var(--color-yellow) 0%,transparent 70%);
  z-index:-1;filter:blur(4px);
}
.hero__visual::before{
  content:"";position:absolute;left:-30px;top:-30px;width:150px;height:150px;border-radius:50%;
  background:radial-gradient(circle,#8ed0ff 0%,transparent 70%);
  z-index:-1;filter:blur(6px);
}

@media (max-width:900px){
  .hero__inner{grid-template-columns:1fr;padding:40px 0 56px;}
  .hero__visual{order:-1;max-width:480px;margin:0 auto;}
}

/* ========== Hero ショートカット（LINE / 退職代行 / 企業様） ========== */
.hero-shortcuts{
  position:relative;
  margin-top:-40px;
  z-index:5;
  width:min(94%,1280px);
  margin-left:auto;margin-right:auto;
}
.hero-shortcuts__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.shortcut{
  display:flex;align-items:center;gap:14px;
  background:#fff;
  padding:18px 22px;
  border-radius:var(--radius-md);
  box-shadow:var(--color-shadow);
  transition:transform .25s,box-shadow .25s;
  border:1px solid var(--color-border);
}
.shortcut:hover{transform:translateY(-3px);box-shadow:var(--color-shadow-strong);}
.shortcut__icon{
  flex:0 0 56px;width:56px;height:56px;
  display:flex;align-items:center;justify-content:center;
  border-radius:14px;
  background:var(--color-primary-light);
  font-size:2.6rem;
}
.shortcut--line .shortcut__icon{background:#e8faee;}
.shortcut--taishoku .shortcut__icon{background:#eaf3ff;}
.shortcut--kigyou .shortcut__icon{background:#fff4cf;}
.shortcut__text{flex:1;}
.shortcut__text h3{font-size:1.6rem;font-weight:700;color:var(--color-text);}
.shortcut__text p{font-size:1.2rem;color:var(--color-text-sub);margin-top:2px;}

@media (max-width:900px){
  .hero-shortcuts{margin-top:24px;}
  .hero-shortcuts__grid{grid-template-columns:1fr;}
}

/* ========== Section ========== */
.section{padding:80px 0;position:relative;}
.section--soft{background:var(--color-bg-soft);}
.section--cream{background:var(--color-bg-cream);}
.section--accent{background:linear-gradient(135deg,#fff4cf 0%,#fff9ec 100%);}

.section-head{text-align:center;margin-bottom:48px;}
.section-head .en{
  display:block;
  font-size:1.3rem;letter-spacing:4px;
  color:var(--color-accent);font-weight:700;text-transform:uppercase;
  margin-bottom:8px;
}
.section-head h2{
  font-size:clamp(2.4rem,3.5vw,3.4rem);
  color:var(--color-primary);
  font-weight:700;
  letter-spacing:1.5px;
  line-height:1.4;
}
.section-head .sub{margin-top:16px;color:var(--color-text-sub);font-size:1.5rem;}

/* ========== About block ========== */
.about-block{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:48px;
  box-shadow:var(--color-shadow);
  position:relative;
  overflow:hidden;
}
.about-block::before{
  content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;
  border-radius:50%;background:var(--color-accent-light);opacity:.3;
}
.about-block p{line-height:2;color:var(--color-text);font-size:1.55rem;position:relative;}
.about-block .btn{margin-top:24px;}

@media (max-width:700px){
  .about-block{padding:28px 22px;}
}

/* ========== Choice（3カード） ========== */
.choice-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.choice-card{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:32px 24px;
  text-align:center;
  box-shadow:var(--color-shadow);
  transition:transform .25s,box-shadow .25s;
  border-top:4px solid var(--color-accent);
}
.choice-card:hover{transform:translateY(-6px);box-shadow:var(--color-shadow-strong);}
.choice-card img{width:96px;height:96px;margin:0 auto 16px;object-fit:contain;}
.choice-card h3{font-size:1.8rem;color:var(--color-primary);margin-bottom:12px;line-height:1.5;}
.choice-card p{font-size:1.4rem;color:var(--color-text-sub);line-height:1.8;}

@media (max-width:900px){
  .choice-grid{grid-template-columns:1fr;gap:16px;}
}

/* ========== Choice 2列（選ばれる理由ページ） ========== */
.choice-list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}
.choice-list li{
  display:flex;gap:16px;align-items:flex-start;
  background:#fff;border-radius:var(--radius-md);
  padding:24px;box-shadow:var(--color-shadow);
  border:1px solid var(--color-border);
  transition:transform .25s;
}
.choice-list li:hover{transform:translateY(-3px);}
.choice-list li img{flex:0 0 72px;width:72px;height:72px;object-fit:contain;}
.choice-list li h3{font-size:1.6rem;color:var(--color-primary);margin-bottom:8px;border-bottom:3px solid var(--color-accent-light);padding-bottom:6px;}
.choice-list li p{font-size:1.35rem;color:var(--color-text-sub);line-height:1.8;}

@media (max-width:700px){
  .choice-list{grid-template-columns:1fr;}
  .choice-list li img{flex:0 0 56px;width:56px;height:56px;}
}

/* ========== Topics（お知らせ） ========== */
.topics-list{display:flex;flex-direction:column;gap:14px;max-width:900px;margin:0 auto;}
.topic{
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  background:#fff;border-radius:var(--radius-md);padding:20px 28px;
  box-shadow:var(--color-shadow);transition:background .2s;
  border:1px solid var(--color-border);
}
.topic:hover{background:#fafbfd;}
.topic .date{font-size:1.3rem;color:var(--color-text-sub);font-variant-numeric:tabular-nums;}
.topic .tag{font-size:1.2rem;font-weight:700;color:#fff;padding:3px 14px;border-radius:var(--radius-pill);}
.topic .tag--job{background:var(--color-accent);}
.topic .tag--news{background:var(--color-primary);}
.topic .title{flex:1;font-size:1.5rem;color:var(--color-text);font-weight:700;min-width:200px;}

/* ========== Works（紹介実績） ========== */
.works-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;}
.work-card{
  background:#fff;border-radius:var(--radius-md);
  padding:24px 28px;box-shadow:var(--color-shadow);
  border:1px solid var(--color-border);
  transition:transform .25s,box-shadow .25s;
}
.work-card:hover{transform:translateY(-3px);box-shadow:var(--color-shadow-strong);}
.work-card h3{
  font-size:1.8rem;color:var(--color-primary);font-weight:700;
  padding-bottom:12px;margin-bottom:14px;border-bottom:2px dashed var(--color-border);
}
.work-card h3::before{content:"●";color:var(--color-accent);margin-right:8px;font-size:1.4rem;}
.work-card ul{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;}
.work-card ul li{font-size:1.35rem;color:var(--color-text-sub);padding-left:16px;position:relative;}
.work-card ul li::before{content:"";position:absolute;left:0;top:.9em;width:8px;height:8px;border-radius:50%;background:var(--color-accent-light);}

@media (max-width:500px){
  .work-card ul{grid-template-columns:1fr;}
}

/* ========== Contact Form ========== */
.contact-wrap{
  max-width:760px;margin:0 auto;
  background:#fff;border-radius:var(--radius-lg);
  padding:48px;box-shadow:var(--color-shadow);
  border:1px solid var(--color-border);
}
.form-group{margin-bottom:24px;}
.form-group label.field-label{
  display:block;font-weight:700;font-size:1.5rem;margin-bottom:10px;color:var(--color-text);
}
.required{
  display:inline-block;color:#fff;background:#f34e4e;
  padding:2px 8px;border-radius:4px;font-size:1.1rem;margin-left:8px;font-weight:700;
}
.checkbox-group{display:flex;flex-wrap:wrap;gap:16px;}
.checkbox-group label{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border:1.5px solid var(--color-border);
  border-radius:var(--radius-pill);cursor:pointer;
  font-size:1.4rem;transition:.2s;background:#fff;
}
.checkbox-group label:hover{border-color:var(--color-primary);}
.checkbox-group input[type="checkbox"]{accent-color:var(--color-primary);width:16px;height:16px;}
.checkbox-group label:has(input:checked){background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);font-weight:700;}

input[type="text"],input[type="email"],input[type="tel"],textarea{
  width:100%;padding:14px 16px;
  border:1.5px solid var(--color-border);border-radius:var(--radius-sm);
  font-size:1.5rem;transition:border-color .2s,box-shadow .2s;
  background:#fff;
}
input[type="text"]:focus,input[type="email"]:focus,input[type="tel"]:focus,textarea:focus{
  outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);
}
textarea{height:140px;resize:vertical;}

.notice{text-align:center;color:var(--color-primary);font-weight:700;margin:16px 0;font-size:1.4rem;}
.submit-area{text-align:center;margin-top:16px;}
.submit-button{
  background:#c3cad6;color:#fff;border:none;border-radius:var(--radius-pill);
  padding:16px 56px;font-size:1.6rem;font-weight:700;
  cursor:not-allowed;transition:.3s;letter-spacing:1px;
}
.submit-button.enabled{background:var(--color-accent);cursor:pointer;box-shadow:0 8px 18px rgba(255,170,0,.3);}
.submit-button.enabled:hover{background:#e89500;transform:translateY(-1px);}

@media (max-width:700px){
  .contact-wrap{padding:28px 20px;}
}

/* ========== FAQ ========== */
.faq-wrap{max-width:900px;margin:0 auto;}
.faq-item{
  background:#fff;border-radius:var(--radius-md);margin-bottom:12px;
  box-shadow:var(--color-shadow);overflow:hidden;border:1px solid var(--color-border);
}
.faq-question{
  width:100%;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;
  text-align:left;font-size:1.5rem;font-weight:700;color:var(--color-text);
  transition:background .2s;
}
.faq-question:hover{background:var(--color-bg-soft);}
.faq-question span:first-child{color:var(--color-primary);}
.faq-question .icon{
  flex:0 0 28px;width:28px;height:28px;border-radius:50%;
  background:var(--color-primary-light);position:relative;transition:.3s;
}
.faq-question .icon::before,.faq-question .icon::after{
  content:"";position:absolute;top:50%;left:50%;background:var(--color-primary);
  transition:transform .3s;
}
.faq-question .icon::before{width:12px;height:2px;transform:translate(-50%,-50%);}
.faq-question .icon::after{width:2px;height:12px;transform:translate(-50%,-50%);}
.faq-item.active .icon{background:var(--color-primary);}
.faq-item.active .icon::before{background:#fff;}
.faq-item.active .icon::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0;}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease;background:#fafbfd;}
.faq-answer p{padding:18px 24px;line-height:1.9;color:var(--color-text-sub);font-size:1.4rem;}
.faq-item.active .faq-answer{max-height:400px;}

/* ========== 下層ヘッダー ========== */
.page-hero{
  position:relative;
  height:220px;
  background:linear-gradient(rgba(15,55,116,.72),rgba(15,55,116,.72)),url('../img/top-left-img.jpg') center/cover;
  display:flex;align-items:center;justify-content:center;
  color:#fff;text-align:center;
}
.page-hero h1{font-size:clamp(2.4rem,4vw,3.4rem);letter-spacing:2px;font-weight:700;}
.page-hero .en{display:block;font-size:1.2rem;letter-spacing:4px;color:var(--color-yellow);margin-bottom:8px;}

.breadcrumb{
  width:min(94%,1280px);margin:16px auto;
  font-size:1.3rem;color:var(--color-text-sub);
}
.breadcrumb a{color:var(--color-primary);}
.breadcrumb a:hover{text-decoration:underline;}
.breadcrumb span+span::before{content:"›";margin:0 8px;color:var(--color-text-sub);}

/* ========== お悩み（case） ========== */
.case-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.case-card{
  background:#fff;border-radius:var(--radius-md);padding:28px 24px;
  text-align:center;box-shadow:var(--color-shadow);border:1px solid var(--color-border);
  transition:transform .25s;
}
.case-card:hover{transform:translateY(-4px);}
.case-card .case-no{font-size:1.2rem;color:var(--color-text-sub);letter-spacing:2px;}
.case-card .case-no span{color:var(--color-accent);font-size:2.2rem;font-weight:700;margin-left:4px;}
.case-card .case-worry{margin:12px auto;color:var(--color-text-sub);font-size:1.4rem;}
.case-card .case-ans{font-size:1.65rem;color:var(--color-primary);font-weight:700;padding:14px 0;line-height:1.5;border-top:2px dashed var(--color-border);}
.case-card img{width:140px;height:auto;margin:8px auto 0;}

@media (max-width:900px){.case-grid{grid-template-columns:1fr;}}

/* ========== 退職代行：3ステップ対応 ========== */
.taishoku-cases{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.taishoku-card{
  background:#fff;padding:28px;border-radius:var(--radius-md);
  box-shadow:var(--color-shadow);border-top:4px solid var(--color-primary);
}
.taishoku-card .case-label{font-size:1.3rem;color:var(--color-text-sub);letter-spacing:2px;font-weight:700;}
.taishoku-card .case-label span{color:var(--color-accent);font-size:2rem;margin-left:4px;}
.taishoku-card h3{font-size:1.7rem;color:var(--color-primary);margin:10px 0 12px;padding-top:10px;border-top:2px dashed var(--color-border);}
.taishoku-card p{font-size:1.4rem;color:var(--color-text-sub);line-height:1.9;}

@media (max-width:900px){.taishoku-cases{grid-template-columns:1fr;}}

/* ========== 強みリスト（6項目） ========== */
.tsuyomi-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
}
.tsuyomi-card{
  background:#fff;padding:24px;border-radius:var(--radius-md);
  box-shadow:var(--color-shadow);border:1px solid var(--color-border);
  display:flex;align-items:center;gap:14px;
  transition:transform .25s;
}
.tsuyomi-card:hover{transform:translateY(-3px);}
.tsuyomi-card img{flex:0 0 56px;width:56px;height:56px;object-fit:contain;}
.tsuyomi-card h4{font-size:1.5rem;color:var(--color-primary);line-height:1.5;}

@media (max-width:900px){.tsuyomi-grid{grid-template-columns:1fr;}}

/* ========== Flow（ご利用までの流れ） ========== */
.flow{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
  position:relative;
  margin-top:20px;
}
.flow::before{
  content:"";position:absolute;top:80px;left:10%;right:10%;height:3px;
  background:repeating-linear-gradient(to right,var(--color-accent),var(--color-accent) 8px,transparent 8px,transparent 16px);
  z-index:0;
}
.flow-step{
  background:#fff;border-radius:var(--radius-md);padding:20px;
  box-shadow:var(--color-shadow);text-align:center;
  position:relative;z-index:1;border:1px solid var(--color-border);
}
.flow-step .step-no{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:50%;
  background:var(--color-primary);color:#fff;font-weight:700;font-size:1.6rem;
  margin-bottom:12px;
}
.flow-step h4{font-size:1.6rem;color:var(--color-primary);margin-bottom:10px;}
.flow-step img{width:100%;max-width:160px;margin:10px auto;border-radius:var(--radius-sm);}
.flow-step p{font-size:1.3rem;color:var(--color-text-sub);line-height:1.8;text-align:left;}

@media (max-width:900px){
  .flow{grid-template-columns:1fr;}
  .flow::before{display:none;}
}

/* ========== 料金 ========== */
.price-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:900px;margin:0 auto;}
.price-card{
  background:#fff;border-radius:var(--radius-lg);padding:36px 32px;
  box-shadow:var(--color-shadow);border:1px solid var(--color-border);
  text-align:center;position:relative;
}
.price-card--basic{border-top:6px solid var(--color-primary);}
.price-card--option{border-top:6px solid var(--color-accent);}
.price-card h3{font-size:2.2rem;color:var(--color-primary);margin-bottom:4px;letter-spacing:1px;}
.price-card h3 span{color:var(--color-accent);}
.price-card .price{font-size:2.8rem;color:var(--color-text);font-weight:700;margin:12px 0 20px;}
.price-card .price small{font-size:1.3rem;color:var(--color-text-sub);margin-left:6px;}
.price-card ul{text-align:left;}
.price-card ul li{font-size:1.4rem;padding:8px 0 8px 24px;position:relative;color:var(--color-text-sub);border-bottom:1px dashed var(--color-border);}
.price-card ul li::before{content:"✓";position:absolute;left:0;top:8px;color:var(--color-green);font-weight:700;}
.price-note{text-align:center;margin:24px auto 0;font-size:1.4rem;color:var(--color-text-sub);}

@media (max-width:700px){.price-grid{grid-template-columns:1fr;}}

/* ========== お客様の声 ========== */
.ranking-list{display:flex;flex-direction:column;gap:10px;max-width:800px;margin:0 auto;}
.ranking-list li{
  display:flex;align-items:center;gap:20px;
  padding:18px 28px;border-radius:var(--radius-md);
  box-shadow:var(--color-shadow);
  font-weight:700;
}
.ranking-list li:nth-child(1){background:linear-gradient(120deg,#ffcb46,#ffe396);}
.ranking-list li:nth-child(2){background:linear-gradient(120deg,#ffd78a,#ffecb8);}
.ranking-list li:nth-child(3){background:linear-gradient(120deg,#ffe4b3,#fff5de);}
.ranking-list li:nth-child(4){background:linear-gradient(120deg,#fff3de,#fffbf0);}
.ranking-list li:nth-child(5){background:linear-gradient(120deg,#ffffff,#fff9f0);}
.ranking-list .rank{
  flex:0 0 64px;width:64px;height:64px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#fff;color:var(--color-primary);font-size:1.7rem;font-weight:900;
  box-shadow:0 4px 10px rgba(0,0,0,.1);
}
.ranking-list li:nth-child(1) .rank{background:#fff8df;color:#d99a00;}
.ranking-list .text{font-size:1.5rem;color:var(--color-text);}

/* ========== Footer ========== */
.site-footer{background:#0f1a33;color:#cfd8e6;padding:64px 0 28px;position:relative;}
.site-footer__inner{
  width:min(94%,1280px);margin:0 auto;
  display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;
}
.site-footer__brand img{width:64px;border-radius:12px;background:#fff;padding:4px;}
.site-footer__brand h3{margin-top:14px;color:#fff;font-size:1.8rem;}
.site-footer__brand p{margin-top:8px;font-size:1.3rem;line-height:1.8;}
.site-footer__contact h4{
  display:inline-block;background:var(--color-accent);color:#fff;
  padding:4px 18px;border-radius:var(--radius-pill);font-size:1.3rem;
}
.site-footer__contact .tel{
  display:block;margin:14px 0 6px;
  color:#fff;font-size:2.6rem;font-weight:700;letter-spacing:1px;
}
.site-footer__contact .tel span{font-size:1.3rem;margin-right:6px;color:var(--color-accent);}
.site-footer__contact .hours{font-size:1.3rem;color:#b8c3d4;}
.site-footer__contact .notes{font-size:1.1rem;margin-top:8px;color:#8a95a7;}

.site-footer__nav h4{font-size:1.4rem;color:var(--color-accent);margin-bottom:14px;letter-spacing:1px;}
.site-footer__nav ul li{margin:8px 0;}
.site-footer__nav a{font-size:1.35rem;color:#cfd8e6;transition:color .2s;}
.site-footer__nav a:hover{color:#fff;}
.site-footer__permit{font-size:1.2rem;color:#8a95a7;margin-top:12px;padding-top:12px;border-top:1px dashed rgba(255,255,255,.1);}

.site-footer__copy{
  text-align:center;margin-top:48px;
  font-size:1.2rem;color:#6d7a8f;
  padding-top:24px;border-top:1px solid rgba(255,255,255,.08);
}

@media (max-width:900px){
  .site-footer__inner{grid-template-columns:1fr;gap:28px;}
}

/* ========== Chatbot ========== */
.chatbot-fab{
  position:fixed;right:24px;bottom:24px;
  width:72px;height:72px;border-radius:50%;
  background:linear-gradient(135deg,#eaf3ff 0%,#ffffff 100%);
  box-shadow:0 12px 28px rgba(43,90,148,.35);
  z-index:9998;display:flex;align-items:center;justify-content:center;
  transition:transform .25s,box-shadow .25s;
  padding:0;overflow:visible;
  border:3px solid #fff;
}
.chatbot-fab::before{
  content:"";position:absolute;inset:-6px;border-radius:50%;
  background:radial-gradient(circle,rgba(43,90,148,.25) 0%,transparent 70%);
  z-index:-1;animation:ncPulse 2.4s ease-out infinite;
}
@keyframes ncPulse{
  0%{transform:scale(.9);opacity:.7;}
  100%{transform:scale(1.5);opacity:0;}
}
.chatbot-fab:hover{transform:scale(1.08);box-shadow:0 14px 32px rgba(43,90,148,.5);}
.chatbot-fab.is-open{background:linear-gradient(135deg,#e3e8f0,#f7f9fc);}
.chatbot-fab.is-open::before{display:none;}
.chatbot-fab__icon{width:80%;height:80%;display:block;}
.chatbot-fab .badge{
  position:absolute;top:-4px;right:-4px;
  min-width:22px;height:22px;padding:0 6px;border-radius:22px;
  background:var(--color-accent);color:#fff;font-size:1.2rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;border:2px solid #fff;
  box-shadow:0 4px 10px rgba(255,170,0,.4);
}

.chatbot-panel{
  position:fixed;right:24px;bottom:104px;
  width:min(360px,92vw);height:min(540px,75vh);
  background:#fff;border-radius:20px;
  box-shadow:0 20px 50px rgba(0,0,0,.25);
  z-index:9999;display:flex;flex-direction:column;
  opacity:0;transform:translateY(20px) scale(.96);pointer-events:none;
  transition:opacity .25s,transform .25s;
  overflow:hidden;border:1px solid var(--color-border);
}
.chatbot-panel.is-open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
.chatbot-header{
  background:linear-gradient(135deg,var(--color-primary),#4a7bbf);
  color:#fff;padding:16px 20px;display:flex;align-items:center;gap:12px;
}
.chatbot-header__avatar{
  width:40px;height:40px;border-radius:50%;background:#fff;color:var(--color-primary);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.8rem;
  flex-shrink:0;
}
.chatbot-header__info h4{font-size:1.5rem;font-weight:700;}
.chatbot-header__info p{font-size:1.1rem;opacity:.85;display:flex;align-items:center;gap:6px;}
.chatbot-header__info p::before{content:"";width:8px;height:8px;border-radius:50%;background:#7bf0a0;box-shadow:0 0 6px #7bf0a0;}
.chatbot-close{margin-left:auto;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.8rem;transition:background .2s;}
.chatbot-close:hover{background:rgba(255,255,255,.28);}

.chatbot-body{
  flex:1;padding:20px 16px;overflow-y:auto;background:#f5f8fc;
  display:flex;flex-direction:column;gap:10px;
}
.chat-msg{display:flex;gap:8px;max-width:88%;animation:fadeInUp .3s ease;}
@keyframes fadeInUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.chat-msg__bubble{
  padding:12px 14px;border-radius:16px;
  font-size:1.35rem;line-height:1.7;
  box-shadow:0 2px 6px rgba(0,0,0,.06);
  word-break:break-word;
}
.chat-msg--bot .chat-msg__bubble{background:#fff;color:var(--color-text);border-bottom-left-radius:4px;}
.chat-msg--user{margin-left:auto;flex-direction:row-reverse;}
.chat-msg--user .chat-msg__bubble{background:var(--color-primary);color:#fff;border-bottom-right-radius:4px;}

.chat-options{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0;padding-left:4px;}
.chat-option{
  background:#fff;border:1.5px solid var(--color-primary);color:var(--color-primary);
  padding:8px 14px;border-radius:var(--radius-pill);font-size:1.3rem;font-weight:700;
  transition:.2s;
}
.chat-option:hover{background:var(--color-primary);color:#fff;}

.chatbot-footer{
  padding:10px 12px;background:#fff;border-top:1px solid var(--color-border);
  display:flex;gap:8px;align-items:center;
}
.chatbot-input{
  flex:1;padding:10px 14px;border:1.5px solid var(--color-border);
  border-radius:var(--radius-pill);font-size:1.35rem;
}
.chatbot-input:focus{outline:none;border-color:var(--color-primary);}
.chatbot-send{
  width:40px;height:40px;border-radius:50%;
  background:var(--color-accent);color:#fff;font-size:1.8rem;
  display:flex;align-items:center;justify-content:center;
  transition:.2s;
}
.chatbot-send:hover{background:#e89500;transform:scale(1.05);}

@media (max-width:600px){
  .chatbot-panel{right:12px;left:12px;width:auto;bottom:88px;}
  .chatbot-fab{right:16px;bottom:16px;width:60px;height:60px;}
}

/* ========== 装飾（セクションタイトル周辺の小さな色玉） ========== */
.decor-dots{position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(400px,80%);height:20px;pointer-events:none;}
.decor-dots span{position:absolute;border-radius:50%;filter:blur(2px);}
.decor-dots span:nth-child(1){width:16px;height:16px;background:radial-gradient(#4a7bbf,#8ed0ff);top:0;left:18%;}
.decor-dots span:nth-child(2){width:12px;height:12px;background:radial-gradient(#ffaa00,#ffe396);top:6px;left:34%;}
.decor-dots span:nth-child(3){width:10px;height:10px;background:radial-gradient(#00c656,#7bf0a0);top:2px;right:34%;}
.decor-dots span:nth-child(4){width:16px;height:16px;background:radial-gradient(#4a7bbf,#8ed0ff);top:0;right:18%;}

/* ========== フォーム 確認・完了画面 ========== */
.form-error{
  background:#fdecea;border:1px solid #f5c6c0;border-radius:var(--radius-sm);
  padding:14px 18px;margin-bottom:20px;color:#b83228;font-size:1.4rem;
}
.form-error ul{margin:0;padding:0;list-style:none;}
.form-error li{line-height:1.8;}
.form-hint{text-align:center;margin-top:12px;font-size:1.2rem;color:var(--color-text-sub);}

.confirm-lead{
  text-align:center;margin-bottom:24px;padding:14px;border-radius:var(--radius-sm);
  background:var(--color-primary-light);color:var(--color-primary);font-weight:700;font-size:1.4rem;
}
.confirm-list{
  display:grid;grid-template-columns:180px 1fr;gap:0;border-top:1px solid var(--color-border);
  margin-bottom:24px;
}
.confirm-list dt{
  padding:14px 16px;background:#fafbfd;color:var(--color-primary);
  font-size:1.35rem;font-weight:700;border-bottom:1px solid var(--color-border);
}
.confirm-list dd{
  padding:14px 16px;font-size:1.45rem;color:var(--color-text);
  border-bottom:1px solid var(--color-border);word-break:break-word;
}
.confirm-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}

.form-complete{text-align:center;padding:20px 10px;}
.form-complete .complete-icon{width:96px;margin:0 auto 16px;animation:ncPop .5s ease;}
@keyframes ncPop{0%{transform:scale(0);opacity:0;}60%{transform:scale(1.1);opacity:1;}100%{transform:scale(1);}}
.form-complete h3{font-size:2.2rem;color:var(--color-primary);margin-bottom:14px;}
.form-complete p{color:var(--color-text-sub);line-height:2;font-size:1.45rem;}
.form-complete .back-to-top{margin-top:28px;}

@media (max-width:600px){
  .confirm-list{grid-template-columns:1fr;}
  .confirm-list dt{padding:10px 14px 4px;border-bottom:none;}
  .confirm-list dd{padding:4px 14px 12px;border-bottom:1px solid var(--color-border);}
}

/* ========== その他 ========== */
hr{border:none;border-top:1px dashed var(--color-border);margin:24px 0;}

/* ========== レスポンシブ 全体調整 ========== */
@media (max-width:900px){
  .section{padding:56px 0;}
  .section-head{margin-bottom:32px;}
  .hero__copy h1{line-height:1.35;}
  .hero__copy .lead{font-size:1.45rem;}
  .hero__visual img{border-radius:var(--radius-lg) 50px var(--radius-lg) var(--radius-lg);}
}
@media (max-width:600px){
  body{font-size:1.45rem;}
  .section{padding:48px 0;}
  .section-head h2{font-size:2.2rem;line-height:1.5;}
  .hero__inner{padding:32px 0 48px;}
  .hero__copy h1{font-size:3rem;}
  .hero__ctas{justify-content:center;}
  .hero__ctas .btn{flex:1;min-width:140px;padding:14px 18px;font-size:1.35rem;}
  .page-hero{height:160px;}
  .btn{padding:12px 22px;font-size:1.35rem;}
  .topic{padding:16px 18px;gap:12px;}
  .topic .title{min-width:auto;font-size:1.35rem;width:100%;}
  .contact-wrap{padding:24px 18px;}
  .about-block{padding:24px 20px;}
  .decor-dots{display:none;}
  .site-logo__text{font-size:1.3rem;}
  .site-logo__text small{font-size:.9rem;}
  .site-logo img{width:36px;height:36px;}
  :root{--header-h:60px;}
  .checkbox-group{flex-direction:column;gap:8px;}
  .ranking-list li{padding:14px 18px;gap:14px;}
  .ranking-list .rank{flex:0 0 48px;width:48px;height:48px;font-size:1.4rem;}
}
@media (max-width:400px){
  .hero__copy h1{font-size:2.6rem;}
  .section-head h2{font-size:2rem;}
}

/* ========== Flow（退職代行ページ ご利用までの流れ） ========== */
.flow-list{
  list-style:none;padding:0;margin:0 auto;max-width:900px;
  display:grid;grid-template-columns:1fr;gap:16px;
  counter-reset:flow;
}
.flow-list li{
  background:#fff;border-radius:16px;padding:24px 28px 24px 96px;
  position:relative;box-shadow:0 4px 16px rgba(15,55,116,.06);
  border-left:6px solid var(--color-accent);
}
.flow-list li::before{
  counter-increment:flow;content:counter(flow);
  position:absolute;left:24px;top:24px;
  width:48px;height:48px;border-radius:50%;
  background:var(--color-primary);color:#fff;font-weight:700;
  display:flex;align-items:center;justify-content:center;font-size:1.8rem;
}
.flow-list .flow-step{
  display:inline-block;font-size:1.2rem;letter-spacing:2px;
  color:var(--color-accent);font-weight:700;margin-bottom:4px;
}
.flow-list li h3{font-size:1.8rem;color:var(--color-primary);margin-bottom:8px;}
.flow-list li p{font-size:1.45rem;color:var(--color-text-sub);line-height:1.8;}
@media (max-width:600px){
  .flow-list li{padding:68px 20px 20px;}
  .flow-list li::before{left:20px;top:18px;width:40px;height:40px;font-size:1.5rem;}
}

/* ========== Price（退職代行 料金） ========== */
.price-card--accent{border-top:6px solid var(--color-accent) !important;background:linear-gradient(180deg,#fffdf4,#ffffff);}
.price-amount{font-size:1.8rem;color:var(--color-text);font-weight:700;margin:12px 0 20px;}
.price-amount span{font-size:3.4rem;color:var(--color-accent);margin-right:2px;}
.price-amount small{font-size:1.2rem;color:var(--color-text-sub);margin-left:6px;font-weight:400;}

/* ========== News カテゴリータグ ========== */
.topic-tag{
  display:inline-block;padding:3px 12px;border-radius:999px;
  font-size:1.15rem;font-weight:600;letter-spacing:1px;line-height:1.6;
  background:#eaf1fb;color:var(--color-primary);
}
.topic-tag--job{background:#fff3e6;color:#d97306;}
.topic-tag--info{background:#eaf1fb;color:var(--color-primary);}
.topic time{flex:0 0 auto;font-size:1.3rem;color:var(--color-text-sub);font-weight:600;letter-spacing:1px;}
.topic .topic-title{font-size:1.45rem;color:var(--color-text);flex:1;}

/* ========== Single 投稿記事 ========== */
.post-article{background:#fff;border-radius:16px;padding:40px 36px;box-shadow:0 4px 16px rgba(15,55,116,.06);}
.post-meta{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
.post-meta time{font-size:1.3rem;color:var(--color-text-sub);font-weight:600;letter-spacing:1px;}
.post-title{font-size:2.6rem;color:var(--color-primary);line-height:1.5;margin-bottom:24px;padding-bottom:16px;border-bottom:3px solid var(--color-accent-light);}
.post-thumb{margin:24px 0 32px;text-align:center;}
.post-thumb img{max-width:100%;height:auto;border-radius:12px;}
.post-content{font-size:1.55rem;line-height:2;color:var(--color-text);}
.post-content p{margin:0 0 1.2em;}
.post-content h2{font-size:2rem;color:var(--color-primary);margin:32px 0 16px;padding-left:14px;border-left:6px solid var(--color-accent);}
.post-content h3{font-size:1.7rem;color:var(--color-primary);margin:28px 0 12px;}
.post-content ul,.post-content ol{padding-left:1.8em;margin:0 0 1.2em;}
.post-content li{margin-bottom:.4em;}
.post-content a{color:var(--color-accent);text-decoration:underline;}
.post-content img{max-width:100%;height:auto;border-radius:8px;margin:16px 0;}
.post-content blockquote{border-left:4px solid var(--color-accent-light);padding:8px 20px;margin:16px 0;color:var(--color-text-sub);background:#f7faff;border-radius:4px;}
@media (max-width:600px){
  .post-article{padding:28px 20px;}
  .post-title{font-size:2rem;}
  .post-content{font-size:1.45rem;}
}

/* ========== Pagination ========== */
.pagination .page-numbers{
  display:inline-block;padding:8px 14px;margin:0 4px;border-radius:8px;
  background:#fff;color:var(--color-primary);font-weight:600;
  border:1px solid var(--color-border);text-decoration:none;
}
.pagination .page-numbers.current{background:var(--color-primary);color:#fff;border-color:var(--color-primary);}
.pagination .page-numbers:hover{background:var(--color-accent-light);}

/* ========== Contact Form（独自実装） ========== */
.ncorp-form-wrap{
  background:#fff;border-radius:16px;padding:36px 32px;
  box-shadow:0 4px 16px rgba(15,55,116,.06);max-width:760px;margin:0 auto;
}
.ncorp-form-wrap .form-group{margin-bottom:22px;}
.ncorp-form-wrap .field-label{
  display:block;margin-bottom:8px;font-weight:700;color:var(--color-primary);font-size:1.45rem;
}
.ncorp-form-wrap .required{
  display:inline-block;background:var(--color-accent);color:#fff;font-size:1.05rem;
  padding:2px 8px;border-radius:4px;margin-left:8px;letter-spacing:1px;font-weight:600;vertical-align:middle;
}
.ncorp-form-wrap input[type="text"],
.ncorp-form-wrap input[type="email"],
.ncorp-form-wrap input[type="tel"],
.ncorp-form-wrap textarea{
  width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;
  font-size:1.5rem;font-family:inherit;background:#f8fbff;transition:border-color .2s, background .2s;
  box-sizing:border-box;
}
.ncorp-form-wrap input[type="text"]:focus,
.ncorp-form-wrap input[type="email"]:focus,
.ncorp-form-wrap input[type="tel"]:focus,
.ncorp-form-wrap textarea:focus{
  outline:none;border-color:var(--color-accent);background:#fff;box-shadow:0 0 0 3px rgba(255,162,0,.15);
}
.ncorp-form-wrap textarea{min-height:140px;resize:vertical;}
.ncorp-form-wrap .checkbox-group{
  display:flex;flex-wrap:wrap;gap:8px 18px;
}
.ncorp-form-wrap .checkbox-group label{
  display:inline-flex;align-items:center;gap:6px;font-size:1.4rem;cursor:pointer;color:var(--color-text);font-weight:500;
}
.ncorp-form-wrap input[type="checkbox"]{accent-color:var(--color-accent);transform:scale(1.15);}

/* エラー表示 */
.ncorp-form-wrap .form-error{
  background:#fff5f5;border:1px solid #fbb;color:#d93025;padding:14px 18px;border-radius:8px;margin-bottom:20px;font-size:1.35rem;
}
.ncorp-form-wrap .form-error ul{margin:0;padding-left:0;list-style:none;}
.ncorp-form-wrap .form-error li{margin:4px 0;}

/* form hint */
.ncorp-form-wrap .form-hint{
  font-size:1.2rem;color:var(--color-text-sub);margin-top:14px;text-align:center;
}

@media (max-width:600px){
  .ncorp-form-wrap{padding:24px 18px;}
}

/* ========== Top Page Contact CTA（トップページのお問い合わせセクション） ========== */
.contact-cta{max-width:1040px;margin:0 auto;}
.contact-cta__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:40px;
}
.contact-cta__card{
  background:#fff;border-radius:16px;padding:32px 24px;text-align:center;
  box-shadow:0 6px 20px rgba(15,55,116,.07);
  border-top:5px solid var(--color-primary);
  transition:transform .25s ease, box-shadow .25s ease;
}
.contact-cta__card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(15,55,116,.12);}
.contact-cta__card--line{border-top-color:#06c755;}
.contact-cta__card--form{border-top-color:var(--color-accent);}
.contact-cta__icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:72px;height:72px;border-radius:50%;background:#f6f8fb;
  color:var(--color-primary);margin-bottom:16px;
}
.contact-cta__card--line .contact-cta__icon{background:#e6f9ec;color:#06c755;}
.contact-cta__card--form .contact-cta__icon{background:#fff4e0;color:var(--color-accent);}
.contact-cta__card h3{font-size:1.7rem;color:var(--color-primary);margin-bottom:12px;}
.contact-cta__card p{font-size:1.35rem;color:var(--color-text-sub);line-height:1.7;margin:6px 0;}
.contact-cta__card .lead-num{font-size:2.4rem;font-weight:700;letter-spacing:1px;margin:8px 0 4px;}
.contact-cta__card .lead-num a{color:var(--color-primary);}
.contact-cta__card .lead-sub{font-size:1.2rem;color:#888;}
.contact-cta__card .btn{margin-top:12px;}
@media (max-width:900px){
  .contact-cta__grid{grid-template-columns:1fr;gap:14px;}
}

/* 大きい中心CTAボタン */
.contact-cta__big{text-align:center;margin-top:36px;}
.contact-cta__big-btn{
  position:relative;display:inline-flex;align-items:center;gap:16px;
  padding:22px 64px;border-radius:999px;
  background:linear-gradient(135deg,#ffb84d 0%,var(--color-accent) 50%,#ff7a3d 100%);
  background-size:200% 100%;
  color:#fff;font-size:2rem;font-weight:700;letter-spacing:3px;text-decoration:none;
  box-shadow:0 14px 36px rgba(255,140,40,.32), inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .25s ease, box-shadow .25s ease, background-position .4s ease;
}
.contact-cta__big-btn:hover{
  transform:translateY(-4px) scale(1.02);
  box-shadow:0 22px 48px rgba(255,140,40,.44), inset 0 1px 0 rgba(255,255,255,.5);
  background-position:100% 0;
  color:#fff;text-decoration:none;
}
.contact-cta__big-arrow{font-size:1.8rem;transition:transform .25s ease;}
.contact-cta__big-btn:hover .contact-cta__big-arrow{transform:translateX(6px);}
.contact-cta__big-note{font-size:1.3rem;color:var(--color-text-sub);margin-top:18px;}
@media (max-width:600px){
  .contact-cta__big-btn{font-size:1.5rem;padding:18px 38px;letter-spacing:1px;}
  .contact-cta__big-label{font-size:1.5rem;}
}

/* ========== Contact ページ専用：問い合わせ導入ボックス ========== */
.contact-intro{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:920px;margin:0 auto 32px;
}
.contact-intro__col{
  background:#fff;border-radius:14px;padding:20px 18px;box-shadow:0 4px 16px rgba(15,55,116,.06);
  text-align:center;border-top:5px solid var(--color-accent);
}
.contact-intro__col h3{font-size:1.55rem;color:var(--color-primary);margin-bottom:10px;}
.contact-intro__col p{font-size:1.35rem;color:var(--color-text-sub);line-height:1.7;margin:4px 0;}
.contact-intro__col .tel-num{font-size:2.2rem;font-weight:700;letter-spacing:1px;margin:6px 0 0;}
.contact-intro__col .tel-num a{color:var(--color-primary);}
.contact-intro__col .tel-sub{font-size:1.2rem;color:#888;}
.contact-intro__col .btn{margin-top:8px;}
@media (max-width:780px){
  .contact-intro{grid-template-columns:1fr;}
}

.contact-policy-note{
  max-width:760px;margin:24px auto 0;font-size:1.3rem;color:var(--color-text-sub);
  text-align:center;background:#f6f8fb;border-radius:10px;padding:16px 20px;
}
.contact-policy-note a{color:var(--color-primary);text-decoration:underline;}

/* ========== 同意チェック ========== */
.ncorp-form-wrap .agreement-group{
  background:#f6f8fb;border:1px solid #e6e9ef;border-radius:10px;padding:16px 18px;
  margin:8px 0 24px;
}
.ncorp-form-wrap .agreement-group p{
  font-size:1.35rem;line-height:1.7;color:var(--color-text);margin:0 0 8px;
}
.ncorp-form-wrap .agreement-group a{
  color:var(--color-primary);text-decoration:underline;font-weight:700;
}
.ncorp-form-wrap .agreement-checkbox{
  display:flex;align-items:center;gap:10px;cursor:pointer;font-size:1.4rem;color:var(--color-text);font-weight:600;
}
.ncorp-form-wrap .agreement-checkbox input[type="checkbox"]{flex:0 0 auto;}

/* ========== ボタン ========== */
.ncorp-form-wrap .form-actions{
  display:flex;flex-direction:column;align-items:center;gap:14px;margin:32px 0 0;text-align:center;
}

/* メインの大ボタン（送信／確認） */
.ncorp-form-wrap .ncorp-submit-btn{
  -webkit-appearance:none;appearance:none;
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:18px 56px;
  background:linear-gradient(135deg, #ffb84d 0%, var(--color-accent) 50%, #ff7a3d 100%);
  background-size:200% 100%;
  color:#fff;border:none;border-radius:999px;
  font-size:1.65rem;font-weight:700;letter-spacing:2px;cursor:pointer;
  box-shadow:0 10px 24px rgba(255,140,40,.32), inset 0 1px 0 rgba(255,255,255,.35);
  transition:transform .25s ease, box-shadow .25s ease, background-position .4s ease, filter .2s ease;
  min-width:260px;
  text-shadow:0 1px 1px rgba(0,0,0,.08);
}
.ncorp-form-wrap .ncorp-submit-btn .arrow{font-size:1.5rem;transition:transform .25s ease;display:inline-block;}
.ncorp-form-wrap .ncorp-submit-btn:hover{
  transform:translateY(-3px) scale(1.02);
  box-shadow:0 16px 36px rgba(255,140,40,.42), inset 0 1px 0 rgba(255,255,255,.4);
  background-position:100% 0;filter:brightness(1.04);
}
.ncorp-form-wrap .ncorp-submit-btn:hover .arrow{transform:translateX(4px);}
.ncorp-form-wrap .ncorp-submit-btn:active{transform:translateY(-1px) scale(1);}
.ncorp-form-wrap .ncorp-submit-btn:disabled{
  background:linear-gradient(135deg,#d4d8e0,#c5cbd6);color:#fff;cursor:not-allowed;
  box-shadow:none;transform:none;filter:none;
}
.ncorp-form-wrap .ncorp-submit-btn:disabled .arrow{display:none;}
.ncorp-form-wrap .ncorp-submit-btn:disabled::after{content:" 🔒";font-size:1.3rem;}

/* 戻るボタン（小・アウトライン） */
.ncorp-form-wrap .ncorp-back-btn{
  -webkit-appearance:none;appearance:none;
  background:transparent;color:var(--color-text-sub);
  border:1px solid #cdd2da;border-radius:999px;
  padding:8px 26px;font-size:1.2rem;font-weight:500;letter-spacing:1px;
  cursor:pointer;transition:background .2s, color .2s, border-color .2s;
}
.ncorp-form-wrap .ncorp-back-btn:hover{
  background:#f6f8fb;color:var(--color-primary);border-color:var(--color-primary);
}

/* ========== 確認画面 ========== */
.ncorp-form-wrap .form-confirm .confirm-lead{
  background:#fff8e6;border:1px solid #f0d97c;border-radius:8px;padding:12px 16px;font-size:1.35rem;color:#7a4f00;margin-bottom:20px;
}
.ncorp-form-wrap .confirm-list{
  display:grid;grid-template-columns:160px 1fr;gap:0;background:#fff;border:1px solid #eef0f4;border-radius:10px;overflow:hidden;
}
.ncorp-form-wrap .confirm-list dt{
  background:#f6f8fb;color:var(--color-primary);font-weight:700;padding:14px 16px;font-size:1.35rem;
  border-bottom:1px solid #eef0f4;
}
.ncorp-form-wrap .confirm-list dd{
  margin:0;padding:14px 16px;font-size:1.45rem;color:var(--color-text);
  border-bottom:1px solid #eef0f4;word-break:break-word;
}
.ncorp-form-wrap .confirm-list dt:last-of-type,
.ncorp-form-wrap .confirm-list dd:last-of-type{border-bottom:none;}
@media (max-width:600px){
  .ncorp-form-wrap .confirm-list{grid-template-columns:1fr;}
  .ncorp-form-wrap .confirm-list dt{padding:10px 14px 4px;border-bottom:none;font-size:1.25rem;}
  .ncorp-form-wrap .confirm-list dd{padding:0 14px 12px;font-size:1.4rem;}
}

/* ========== 完了画面 ========== */
.ncorp-form-wrap .form-complete{text-align:center;padding:24px 0;}
.ncorp-form-wrap .form-complete .complete-icon{
  width:72px;height:72px;margin:0 auto 16px;animation:ncPop .5s ease;
}
.ncorp-form-wrap .form-complete h3{font-size:2rem;color:var(--color-primary);margin-bottom:12px;}
.ncorp-form-wrap .form-complete p{font-size:1.45rem;line-height:1.9;color:var(--color-text-sub);}
.ncorp-form-wrap .form-complete .back-to-top{margin-top:24px;}
@keyframes ncPop{
  0%{transform:scale(.3);opacity:0;}
  60%{transform:scale(1.1);opacity:1;}
  100%{transform:scale(1);opacity:1;}
}

/* 法務ページ共通 */
.legal-doc{max-width:820px;margin:0 auto;font-size:1.5rem;line-height:2;color:var(--color-text);}
.legal-doc .lead{
  background:#f6f8fb;border-left:4px solid var(--color-accent);
  padding:18px 22px;border-radius:8px;margin-bottom:32px;font-size:1.45rem;
}
.legal-doc h2{
  font-size:1.9rem;color:var(--color-primary);margin:40px 0 14px;
  padding:8px 0 8px 16px;border-left:6px solid var(--color-accent);
}
.legal-doc h2:first-of-type{margin-top:24px;}
.legal-doc p{margin:0 0 1em;}
.legal-doc ol,.legal-doc ul{padding-left:1.8em;margin:0 0 1.2em;}
.legal-doc li{margin-bottom:6px;}
.legal-doc strong{color:var(--color-primary);}
.legal-contact-box{
  background:#fff;border:1px solid var(--color-border);border-radius:12px;
  padding:20px 24px;margin:24px 0;
}
.legal-contact-box a{color:var(--color-primary);text-decoration:underline;}
.legal-date{font-size:1.25rem;color:var(--color-text-sub);text-align:right;margin-top:32px;}
@media (max-width:600px){
  .legal-doc{font-size:1.4rem;}
  .legal-doc h2{font-size:1.65rem;}
}

/* ========== 印刷向け ========== */
@media print{
  .chatbot-fab,.chatbot-panel,.hamburger,.hero-shortcuts{display:none !important;}
  .site-header{position:static;}
}
