/* ==========================================================================
   デザインシステム変数(kabenashi_web_design_system.md 準拠)
   ========================================================================== */
:root{
  --brand:#FF6A00;
  --brand-deep:#E65100;
  --brand-darkest:#C73800;
  --color-primary-02:#C74700;
  --color-primary-03:#FFF4E7;
  --color-primary-04:#FFE7CE;
  --text-base:#333;
  --text-sub:#555;
  --text-faint:#777;
  --bg-page:#FFFAF3;
  --bg-section:#FFF4E7;
  --bg-section-light:#FFFBF3;
  --bg-title:#FFDAB4;
  --bg-neutral:#F5F6F8;
  --bg-hover-orange:#FFF0E6;
  --border:#CCCCCC;
  --subnav-text:#666;
  --max-width:1184px;
}
*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}
html{
  scroll-behavior:smooth;
}
body{
  font-family:'Noto Sans JP','Roboto',sans-serif;
  color:var(--text-base);
  background-color:var(--bg-page);
  line-height:1.5;
  letter-spacing:0.04em;
  font-size: 16px;
  -webkit-font-smoothing:antialiased;
  @media (max-width:768px){
    font-size: 14px;
  }
}
a {
  word-break: break-all;
}
.material-symbols-rounded{
  font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;
  vertical-align:middle;
  line-height:1;
}
.material-symbols-rounded.icon-fill{
  font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24;
}
/* ==========================================================================
   タイポグラフィ
   ========================================================================== */
.text-4xl-bold{
  font-size:36px;
  font-weight:700;
}
.text-3xl-bold{
  font-size:30px;
  font-weight:700;
}
.text-2xl-bold{
  font-size:24px;
  font-weight:700;
}
.text-xl-bold{
  font-size:20px;
  font-weight:700;
}
.text-lg-bold{
  font-size:18px;
  font-weight:700;
}
.text-base-bold{
  font-size:16px;
  font-weight:700;
}
.text-base{
  font-size:16px;
  font-weight:400;
}
.text-sm{
  font-size:14px;
  font-weight:400;
}
.text-sm-bold{
  font-size:14px;
  font-weight:700;
}
.text-xs{
  font-size:12px;
  font-weight:400;
}
.text-annotation{
  font-size:10px;
  color:var(--text-faint);
}
/* ==========================================================================
   レスポンシブ実装ユーティリティ(規定クラス)
   ========================================================================== */
.sp-only{
  display:none;
}
@media (max-width:768px){
  .sp-only{
    display:inline;
  }
}
.pc-only{
  display:inline;
}
@media (max-width:768px){
  .pc-only{
    display:none;
  }
}
/* ==========================================================================
   レイアウト(PCコンテンツ幅 1184px 固定)
   ========================================================================== */
.container{
  max-width:var(--max-width);
  margin:0 auto;
}
/* ==========================================================================
   見出し共通スタイル(左オレンジライン統一)
   ========================================================================== */
.section-title{
  display:block;
  border-left:4px solid var(--brand);
  padding-left:16px;
  color:var(--text-base);
}
.section-lead{
  color:var(--text-sub);
  margin-top:12px;
  margin-bottom:40px;
}
/* ==========================================================================
   ヘッダー(1段目:ロゴ+ボタン / 2段目:サービス種ナビ)
   ========================================================================== */
.site-header{
  background-color:#fff;
  border-bottom:1px solid var(--border);
  padding:0 24px;
  position: sticky;
  top: 0;
}
/* --- 1段目 --- */
.header-inner{
  max-width:var(--max-width);
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  height:72px;
  gap:16px;
}
.header-logo{
  display:flex;
  align-items:center;
  color:var(--text-base);
  text-decoration:none;
  white-space:nowrap;
}
.logo-line1,
.logo-line2{
  font-size:20px;
  font-weight:700;
}
/* ヘッダーCTAボタン(サイズ:S / オレンジ塗りつぶし) */
.btn-cta{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:12px 16px;
  border-radius:9999px;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  border:1px solid var(--brand-deep);
  color:#fff;
  background-color:var(--brand-deep);
  white-space:nowrap;
  transition:background-color 0.15s ease;
}
.btn-cta:hover{
  background-color:var(--brand-darkest);
  border-color:var(--brand-darkest);
}
.btn-cta .material-symbols-rounded{
  font-size:16px;
}
/* デスクトップ版CTAのみ:文字サイズ・行間・外側マージンを調整 */
.header-inner .btn-cta.desktop-cta{
  font-size:14px;
  line-height:1.25;
  margin:16px;
}
/* --- 2段目:サービス種ナビ(ホバーで開閉する2階層プルダウン) --- */
.header-subnav{
  background-color:#fff;
}
.subnav-inner{
  max-width:var(--max-width);
  margin:0 auto;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:32px;
}
.subnav-item{
  position:relative;
}
.subnav-trigger{
  cursor:default;
  color:var(--subnav-text);
  padding:16px 0;
  display:flex;
  align-items:center;
  gap:4px;
  white-space:nowrap;
  border-bottom:2px solid transparent;
  transition:color 0.15s ease,border-color 0.15s ease;
  text-decoration:none;
}
.subnav-trigger .material-symbols-rounded{
  font-size:18px;
  transition:transform 0.2s ease;
}
.subnav-item:hover .subnav-trigger,
.subnav-item:focus-within .subnav-trigger,
.subnav-trigger.is-active{
  color:var(--brand-deep);
  border-bottom-color:var(--brand);
}
.subnav-item:hover .subnav-trigger .chevron,
.subnav-item:focus-within .subnav-trigger .chevron{
  transform:rotate(180deg);
}
.subnav-dropdown{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  background-color:#fff;
  border:1px solid var(--border);
  border-radius:0;
  min-width:320px;
  padding:32px;
  box-shadow:0 8px 24px rgba(51,51,51,0.12);
  z-index:1001;
}
.subnav-dropdown.is-wide{
  min-width:380px;
}
.subnav-item:hover .subnav-dropdown,
.subnav-item:focus-within .subnav-dropdown{
  display:block;
}
.subnav-link{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 0;
  color:var(--text-base);
  text-decoration:none;
  border-bottom:1px solid var(--border);
  transition:color 0.15s ease;
}
.subnav-link:first-child{
  padding-top:0;
}
.subnav-link:last-child{
  border-bottom:none;
  padding-bottom:0;
}
.subnav-link:hover{
  color:var(--brand-deep);
}
.subnav-link-content{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  flex:1 1 auto;
  min-width:0;
}
.subnav-link-label{
  flex:0 1 auto;
}
.subnav-link > .material-symbols-rounded{
  font-size:16px;
  color:var(--text-faint);
  flex-shrink:0;
}
.subnav-link:hover > .material-symbols-rounded{
  color:var(--brand-deep);
}
/* ==========================================================================
   ヒーロー(タイトル + バッジ):斜めグラデーション(白→薄いオレンジ)
   ========================================================================== */
.hero-section{
  background:linear-gradient(120deg,#ffffff 0%,#ffffff 42%,var(--bg-section) 58%,var(--bg-section) 100%);
  border-bottom:2px solid var(--brand-deep);
  padding:40px 24px;
}
.hero-title{
  color:var(--text-base);
  margin-bottom:8px;
}
.badge-row{
  padding-top: 20px;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.info-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 16px;
  border-radius:9999px;
  background-color:#FFE7CE;
  color:var(--brand-deep);
}
.info-badge .material-symbols-rounded{
  font-size:16px;
}
/* ==========================================================================
   このサイトについて / サービス選択 / 報酬改定関連リンク
   (メインコンテンツ同士は上下80pxで統一)
   ========================================================================== */
.about-section{
  padding:64px 24px 0;
}
.services-section{
  padding:40px 24px 0;
}
.resource-section{
  padding:80px 24px;
}
@media (max-width:768px){
  .about-section{
    padding:48px 16px 0;
  }
  .services-section{
    padding:48px 16px 0;
  }
  .resource-section{
    padding:48px 16px 80px;
  }
}
.about-inner,
.services-inner,
.resource-inner{
  max-width:var(--max-width);
  margin:0 auto;
}
.about-section .section-title{
  margin-bottom:24px;
}
.about-body{
  color:var(--text-sub);
}
/* 上段:通所系サービス(1行大枠) */
.services-top{
  margin-bottom:20px;
}
/* 下段:相談支援/グループホーム/障害児通所支援(3カラム) */
.services-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
@media (max-width:992px){
  .services-grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media (max-width:768px){
  .services-grid{
    grid-template-columns:1fr;
    gap:24px;
  }
}
.category-card{
  background-color:#fff;
  border:1px solid var(--border);
  border-radius:8px;
  padding:20px;
  display:flex;
  flex-direction:column;
}
.category-link {
  text-decoration: none;
}
.category-name{
  margin-bottom:24px;
  color:var(--text-base);
  display:flex;
  align-items:center;
  gap:16px;
}
.category-icon-img{
  width:70px;
  height:54px;
  object-fit:cover;
  border-radius:0;
  flex-shrink:0;
}
.sub-services-list{
  display:flex;
  flex-direction:column;
  gap:4px;
  list-style:none;
}
/* 通所系サービス(featured)は4カラムで内部を広く使う */
.sub-services-list.is-featured{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:4px;
}
@media (max-width:992px){
  .sub-services-list.is-featured{
    grid-template-columns:repeat(2,1fr);
  }
}
@media (max-width:600px){
  .sub-services-list.is-featured{
    grid-template-columns:1fr;
  }
}
.service-link{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:12px 16px;
  background-color:var(--bg-neutral);
  border:1px solid transparent;
  border-radius:4px;
  color:var(--text-base);
  text-decoration:none;
  transition:background-color 0.15s ease,color 0.15s ease;
}
@media (max-width:768px){
  .service-link{
    padding:16px;
  }
}
.service-link:hover{
  background-color:var(--bg-hover-orange);
  color:var(--brand-deep);
}
.service-link > .material-symbols-rounded{
  font-size:18px;
  color:var(--text-faint);
  flex-shrink:0;
  transition:color 0.15s ease;
}
.service-link:hover > .material-symbols-rounded{
  color:var(--brand-deep);
}
.link-text-group{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.link-text-group span:first-child{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
/* カイポケへ(ワッペン):ホバーしても内部の色は一切変化させない */
.badge-kaipoke{
  display:inline-flex;
  align-items:center;
  gap:4px;
  background-color:#E6E6E6 !important;
  color:#333 !important;
  padding:4px 6px;
  border-radius:2px;
  flex-shrink:0;
}
.badge-kaipoke .material-symbols-rounded{
  font-size:14px;
  color:#333 !important;
}
/* ==========================================================================
   報酬改定関連リンク(枠なし/背景なし)
   ========================================================================== */
.resource-box .section-title{
  margin-bottom:16px;
}
.links-grid{
  display:flex;
  flex-direction:column;
}
.external-resource-link{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px;
  color:var(--text-base);
  text-decoration:none;
  border-bottom:1px solid var(--border);
  transition:background-color 0.15s ease;
}
.external-resource-link:hover{
  background-color:var(--bg-section-light);
  color:var(--brand-deep);
}
.external-resource-link .material-symbols-rounded{
  font-size:18px;
  color:var(--text-faint);
  flex-shrink:0;
}
.external-resource-link:hover .material-symbols-rounded{
  color:var(--brand-deep);
}
.link-label-group{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.link-label-group span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
/* ==========================================================================
   フッター
   ========================================================================== */
.site-footer{
  background-color:#FFFFFF;
  color:#666666;
  line-height:1;
  padding:20px 24px;
  text-align:center;
}
.site-footer .text-xs{
  color:#666666;
}
/* トップへ戻るボタン */
.back-to-top{
  position:fixed;
  right:24px;
  bottom:24px;
  width:48px;
  height:48px;
  border-radius:9999px;
  background-color:var(--brand-deep);
  color:#fff;
  display:none;
  align-items:center;
  justify-content:center;
  box-shadow:0 4px 12px rgba(0,0,0,0.2);
  text-decoration:none;
  z-index:900;
  transition:background-color 0.15s ease;
}
.back-to-top.is-active{
  display:flex;
}
.back-to-top:hover{
  background-color:var(--brand-darkest);
}
.back-to-top .material-symbols-rounded{
  font-size:24px;
}
/* ==========================================================================
   ハンバーガーメニュー(SP専用)
   ========================================================================== */
.mobile-nav-checkbox{
  display:none;
}
.hamburger-btn{
  display:none;
  position:relative;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  cursor:pointer;
  color:var(--text-base);
  flex-shrink:0;
}
.hamburger-btn .material-symbols-rounded{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  transition:opacity 0.2s ease,transform 0.2s ease;
}
.hamburger-btn .icon-close{
  opacity:0;
  transform:translate(-50%,-50%) rotate(-90deg);
}
.mobile-nav-panel{
  display:none;
}
/* ==========================================================================
   モバイル全体調整(SP専用)
   ========================================================================== */
@media (max-width:768px){
  /* ヘッダー:PC用の横並びナビ・CTAを隠し、ハンバーガーへ集約 */
  .site-header{
    padding:0 16px;
    position:sticky;
    top:0;
    z-index:1000;
  }
  .header-inner .btn-cta.desktop-cta{
    display:none;
  }
  .header-subnav{
    display:none;
  }
  .hamburger-btn{
    display:flex;
  }
  /* メニュー展開中はアイコンを「×」へアニメーション切り替え(色は黒のまま) */
  .mobile-nav-checkbox:checked ~ .header-inner .hamburger-btn .icon-menu{
    opacity:0;
    transform:translate(-50%,-50%) rotate(90deg);
  }
  .mobile-nav-checkbox:checked ~ .header-inner .hamburger-btn .icon-close{
    opacity:1;
    transform:translate(-50%,-50%) rotate(0deg);
  }
  /* 見出しレイアウト:横並び1行表記に戻し、ヘッダー天地を20px縮小 */
  .header-inner{
    height:auto;
    min-height:52px;
  }
  .header-logo{
    gap:4px;
    white-space:normal;
    flex-wrap:wrap;
    min-width:0;
  }
  .logo-line1,
  .logo-line2,
  .logo-sep{
    font-size:14px;
  }
  /* パネル本体:ヘッダー直下に固定し、内部で独立スクロールさせる */
  .mobile-nav-panel{
    position:fixed;
    top:52px;
    left:0;
    right:0;
    bottom:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    border-top:1px solid var(--border);
    background-color:#fff;
    z-index:999;
  }
  .mobile-nav-checkbox:checked ~ .mobile-nav-panel{
    display:block;
  }
  .mobile-nav-inner{
    padding:16px 16px 32px;
  }
  .mobile-nav-group{
    padding-top:20px;
    margin-top:20px;
    border-top:1px solid var(--border);
  }
  .mobile-nav-group:first-child{
    padding-top:0;
    margin-top:0;
    border-top:none;
  }
  .mobile-nav-group:last-of-type{
    padding-bottom:20px;
    border-bottom:1px solid var(--border);
  }
  .mobile-nav-group-title{
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--subnav-text);
    padding:0 4px 12px;
    text-decoration:none;
  }
  .mobile-nav-icon{
    width:48px;
    height:37px;
    object-fit:cover;
    flex-shrink:0;
  }
  /* 詳細リンク:PC版のボタンと同様に「押せる」ことが伝わる見た目に */
  .mobile-nav-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:16px;
    margin-bottom:8px;
    background-color:var(--bg-neutral);
    border-radius:4px;
    color:var(--text-base);
    text-decoration:none;
    transition:background-color 0.1s ease,color 0.1s ease;
  }
  .mobile-nav-link:last-child{
    margin-bottom:0;
  }
  .mobile-nav-link:active{
    background-color:var(--bg-hover-orange);
    color:var(--brand-deep);
  }
  .mobile-nav-link > .material-symbols-rounded{
    font-size:18px;
    color:var(--text-faint);
    flex-shrink:0;
    transition:color 0.1s ease;
  }
  .mobile-nav-link:active > .material-symbols-rounded{
    color:var(--brand-deep);
  }
  .mobile-cta{
    margin-top:8px;
    width:100%;
    justify-content:center;
    padding:20px 24px;
    font-size:16px;
  }
  .mobile-cta:active{
    background-color:var(--brand-darkest);
    border-color:var(--brand-darkest);
  }
  /* タイトルエリア:バッジを一回り小さく・全体をコンパクトに */
  .hero-section{
    padding:40px 16px;
  }
  .hero-title{
    font-size: 30px;
    margin-bottom:0;
  }
  .badge-row{
    padding-top: 16px;
    gap:8px;
  }
  .info-badge{
    padding:6px 12px;
    gap:6px;
    font-size:12px;
  }
  .info-badge .material-symbols-rounded{
    font-size:14px;
  }
  /* 各メイン見出し・補足テキストを一回り小さく */
  .section-title{
    font-size:20px;
  }
  .about-body{
    font-size:14px;
  }
  .section-lead{
    font-size:14px;
    margin-bottom:32px;
  }
  /* コンテンツ内ボタン類:タップ時にオレンジでフィードバック */
  .service-link:active{
    background-color:var(--bg-hover-orange);
    color:var(--brand-deep);
  }
  .service-link:active > .material-symbols-rounded{
    color:var(--brand-deep);
  }
  .external-resource-link:active{
    background-color:var(--bg-section-light);
  }
  .btn-cta:active{
    background-color:var(--brand-darkest);
    border-color:var(--brand-darkest);
  }
  /* 「詳細」ボタンのサービス名が省略されないよう折り返し表示に変更 */
  .service-link{
    flex-wrap:wrap;
  }
  .link-text-group{
    flex:1 1 auto;
    min-width:0;
  }
  .link-text-group span:first-child{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
  .badge-kaipoke{
    padding:4px 8px;
  }
  /* 報酬改定関連リンク集:テキストを省略せず全文表示・文字サイズを一回り小さく */
  .external-resource-link{
    align-items:flex-start;
  }
  .link-label-group{
    flex:1 1 auto;
    min-width:0;
  }
  .link-label-group span{
    font-size:14px;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
  .subnav-dropdown{
    min-width:240px;
    padding:20px;
  }
}
/* ==========================================================================
   ページヒーロー(パンくず / メインビジュアル)
   ========================================================================== */
.page-hero{
  background:linear-gradient(120deg,#ffffff 0%,#ffffff 42%,var(--bg-section) 58%,var(--bg-section) 100%);
  border-bottom:2px solid var(--brand-deep);
  padding:16px 24px 48px;
}
@media (max-width:768px){
  .page-hero{
    padding-left:16px;
    padding-right:16px;
    padding-bottom:32px;
  }
}
.page-hero[data-layout="novisual"]{
  padding:16px 0;
  border-bottom:none;
  background:var(--bg-page);
}
@media (max-width:768px){
  .page-hero[data-layout="novisual"]{
    padding: 16px 16px 40px;
  }
}
.page-hero-inner{
  max-width:var(--max-width);
  margin: 0 auto;
}
@media (max-width:768px){
  .page-hero-inner{
    overflow-x:auto;
    overflow-y:hidden;
  }
}
.breadcrumb{
  display:flex;
  align-items:center;
  gap:4px;
  color:var(--text-faint);
  margin:0 0 48px;
}
@media (max-width:768px){
  .breadcrumb{
    margin-bottom:32px;
  }
  .breadcrumb *{
    white-space:nowrap;
  }
}
.page-hero[data-layout="novisual"] .breadcrumb{
  margin:0;
}
.breadcrumb a{
  color:#777777;
  text-decoration:underline;
}
.breadcrumb .material-symbols-rounded{
  font-size:16px;
  color:var(--text-faint);
}
.hero-visual{
  display:flex;
  align-items:center;
  gap:24px;
}
.hero-visual-img{
  width:100px;
  height:77px;
  object-fit:cover;
  flex-shrink:0;
}
.hero-visual-text{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.hero-submessage{
  color:var(--text-base);
}
@media (max-width:768px){
  .hero-submessage{
    font-size: 14px;
  }
}

.hero-title-main{
  color:var(--text-base);
}
@media (max-width:768px){
  .hero-title-main{
    font-size: 30px;
  }
}
@media (max-width:768px){
  .hero-visual-img{
    display:none;
  }
  .mobile-nav-group-title.is-active{
    color:var(--brand-deep);
  }
}
/* ==========================================================================
   メインレイアウト(左866px / 右286px / gap80px)
   ========================================================================== */
.page-main{
  max-width:var(--max-width);
  margin:0 auto;
  padding:64px 0 80px;
  display:grid;
  grid-template-columns:866px 286px;
  column-gap:32px;
}
@media (max-width:1184px){
  .page-main{
    padding-left:24px;
    padding-right:24px;
    grid-template-columns:1fr 286px;
    column-gap:32px;
  }
}
.page-main[data-layout="entry"]{
  padding:40px 0 80px;
}
@media (max-width:1184px){
  .page-main[data-layout="entry"]{
    padding-left:24px;
    padding-right:24px;
    grid-template-columns:1fr 286px;
    column-gap:32px;
  }
}
@media (max-width:768px){
  .page-main{
    display:flex;
    flex-direction:column;
    padding:40px 16px 64px;
  }
  .page-main[data-layout="entry"]{
    display:flex;
    flex-direction:column;
    padding:0 16px 64px;
  }
}
.main-content{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:40px;
}
.entries-content {
  padding:48px 48px 40px;
  display:flex;
  flex-direction:column;
  gap:32px;
  border-radius:8px;
  border:1px solid var(--border);
  background:#fff;
}
@media (max-width:768px){
  .entries-content {
    padding:24px;
  }
}
.entries-content-head{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding-bottom:32px;
  border-bottom:1px solid var(--border);
}
.entries-content-title{
  font-size: 30px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media (max-width:768px){
  .entries-content-title{
    font-size:24px;
  }
}
.entries-content-body{
  display:flex;
  flex-direction:column;
  gap:32px;
}
.entries-content-body > h2 {
  font-size:24px;
  font-weight:700;
  background-color:var(--color-primary-04);
  padding:16px;
}
@media screen and (max-width:460px) {
  .entries-content-body > h2 {
    font-size:20px;
  }
}
.entries-content-body > h3 {
  font-size:18px;
  font-weight:700;
  padding-bottom:8px;
  border-bottom:solid 1px var(--brand-deep);
}
@media screen and (max-width:460px) {
  .entries-content-body > h3 {
    font-size:16px;
  }
}
.entries-content-body > h4 {
  font-size:18px;
  font-weight:700;
  color:var(--color-primary-02);
}
@media screen and (max-width:460px) {
  .entries-content-body > h4 {
    font-size:16px;
  }
}
.entries-content-body > h5 {
  font-weight:700;
}
.entries-content-body > blockquote {
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-orient:vertical;
  -webkit-box-direction:normal;
      -ms-flex-direction:column;
          flex-direction:column;
  gap:16px;
}
.entries-content-body > blockquote.highlight {
  padding:32px;
  background-color:var(--bg-neutral);
}
@media screen and (max-width:460px) {
  .entries-content-body > blockquote.highlight {
    padding:24px;
  }
}
.entries-content-body > blockquote > p {
  padding-left:24px;
  border-left:solid 6px var(--border);
}
.entries-content-body > blockquote cite {
  text-align:right;
  font-size:12px;
}
.entries-content-body > blockquote cite > a {
  color:var(--color-text-base);
}
.entries-content-body q {
  background-color:var(--bg-neutral);
  display:inline-block;
  width:-webkit-fit-content;
  width:-moz-fit-content;
  width:fit-content;
}
.entries-content-body strong {
  font-weight:700;
}
.entries-content-body > figure {
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-orient:vertical;
  -webkit-box-direction:normal;
      -ms-flex-direction:column;
          flex-direction:column;
  gap:16px;
}
.entries-content-body > figure > figcaption {
  text-align:right;
  font-size:12px;
}
.entries-content-body > figure > figcaption > a {
  color:var(--text-base);
}
.entries-content-body > figure.center {
  max-width:525px;
  margin-inline:auto;
}
.entries-content-body > figure.center > figcaption {
  text-align:left;
}
.entries-content-body ul:not([class]) {
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-orient:vertical;
  -webkit-box-direction:normal;
      -ms-flex-direction:column;
          flex-direction:column;
  gap:4px;
}
.entries-content-body ul:not([class]) ul:not([class]) {
  padding-top:4px;
}
.entries-content-body ul:not([class]) li {
  position:relative;
  padding-left:24px;
}
.entries-content-body ul:not([class]) li::before {
  content:"";
  width:6px;
  height:6px;
  border-radius:100%;
  background-color:var(--brand-deep);
  display:block;
  position:absolute;
  left:5px;
  top:10px;
}
.entries-content-body ol:not([class]) {
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-orient:vertical;
  -webkit-box-direction:normal;
      -ms-flex-direction:column;
          flex-direction:column;
  gap:4px;
  counter-reset:ol;
}
.entries-content-body ol:not([class]) > li::before {
  counter-increment:ol;
  content:counters(ol, "-") ".";
  color:var(--color-primary-02);
  display:inline-block;
  padding-right:8px;
}
.entries-content-body ol:not([class]) ol {
  padding-top:4px;
}
.entries-content-body ol:not([class]) ol li {
  padding-left:24px;
}
.entries-content-body ol.katakana {
  counter-reset:kana;
}
.entries-content-body ol.katakana > li:before {
  counter-increment:kana;
  content:counter(kana, katakana) ".";
  color:var(--color-primary-02);
  width:auto;
  height:auto;
  top:0;
  left:0;
  background:transparent;
}
.entries-content-body ol.katakana[data-type="brackets"] {
  counter-reset:kanaBrackets 0;
}
.entries-content-body ol.katakana[data-type="brackets"] > li {
  padding-left:36px;
  position:relative;
}
@media screen and (max-width:460px) {
  .entries-content-body ol.katakana[data-type="brackets"] > li {
    padding-left:32px;
  }
}
.entries-content-body ol.katakana[data-type="brackets"] > li:before {
  counter-increment:kanaBrackets 1;
  content:"(" counter(kanaBrackets, katakana) ")";
  position:absolute;
}
.entries-content-body table:not([class]) th {
  background-color:var(--color-primary-03);
  padding:8px;
  border:solid 1px var(--border);
  font-weight:700;
}
.entries-content-body table:not([class]) td {
  padding:8px;
  border:solid 1px var(--border);
}
.entries-content-body > a:not([class]) {
  font-weight:700;
}
.content-block{
  margin-bottom:0;
}
@media screen and (max-width:768px) {
  .content-block{
    margin-bottom:24px;
  }
  .content-block:last-of-type{
    margin-bottom:0;
  }
}
.sec-head{
  margin-bottom:32px;
}
@media screen and (max-width:768px) {
  .sec-head{
    margin-bottom: 20px;
  }
}
/* お知らせ */
.notice{
  background-color:var(--bg-section);
  border:1px solid rgba(230,81,0,0.5);
  border-radius:8px;
  padding:32px;
}
.notice-title{
  font-size:16px;
  font-weight:700;
  color:var(--text-base);
  margin-bottom:6px;
}
.notice-text{
  color:var(--text-sub);
  line-height:1.8;
}
.notice-link{
  color:var(--text-base);
  font-size:14px;
  line-height:1.5; /* 21px */
  letter-spacing:0.04em;
  text-decoration-line:underline;
}
.notice-link:hover{
  color:var(--brand-deep);
}
/* サイドバー(サービスで絞り込む + 最終更新) */
.sidebar-sticky-inner{
  position:sticky;
  top:160px;
  display:flex;
  flex-direction:column;
  gap:20px;
}
/* SP専用:メインカラム側に複製表示する「サービスで絞り込む」(notice直後・改修一覧の前に表示) */
.mobile-filter-duplicate{
  display:none;
}
@media (max-width:900px){
  .sidebar-sticky-inner{
    position:static;
    margin-top:40px;
  }
  .sidebar .sidebar-card:first-child{
    display:none;
  }
  .mobile-filter-duplicate{
    display:block;
    margin-bottom:0;
  }
}
/* 改修予定一覧 / 対象外一覧カード(1カラム構成) */
.article-list{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.article-card{
  display:flex;
  flex-direction:column;
  gap:12px;
  background-color:#fff;
  border:1px solid var(--border);
  border-radius:8px;
  padding:32px;
  text-decoration:none;
  color:inherit;
  transition:color 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease,transform 0.2s ease;
}
.article-card:hover{
  border-color:var(--brand-deep);
  box-shadow:0 12px 24px rgba(230,81,0,0.1);
}
.article-top{
  display:flex;
  align-items:center;
  gap:12px;
}
.status-badge{
  font-size:12px;
  font-weight:700;
  padding:4px 12px;
  border-radius:2px;
  border:1px solid transparent;
}
.badge-plan{
  background-color:#FFF4E7;
  color:#E65100;
  border-color:rgba(230,81,0,0.5);
}
.badge-done{
  background-color:#ECF4FF;
  color:#006CD8;
  border-color:rgba(0,108,216,0.5);
}
.badge-out{
  background-color:#E6E6E6;
  color:#666666;
}
.article-date{
  font-size:14px;
}
.article-title{
  font-size:16px;
  font-weight:700;
  color:var(--text-base);
  transition: background-color 0.15s;
}
.article-card:hover .article-title{
  color:var(--brand-deep);
}
.article-excerpt{
  font-size:14px;
  color:var(--text-sub);
  line-height:1.7;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.service-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.service-tag{
  font-size:12px;
  background-color:#F5F6F8;
  border:1px solid #CCCCCC;
  color:#666666;
  padding:4px 10px;
  border-radius:2px;
}
/* よくある質問(アコーディオン) */
.faq-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.faq-item{
  background-color:#fff;
  border:1px solid var(--border);
  border-radius:8px;
  overflow:hidden;
}
.faq-toggle{
  display:none;
}
.faq-q{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:14px;
  padding:24px 32px;
}
.faq-q-mark{
  width:24px;
  height:24px;
  border-radius:50%;
  flex-shrink:0;
  background-color:var(--brand);
  color:#fff;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
}
.faq-q-text{
  flex:1;
  font-size:16px;
  font-weight:700;
  color:var(--text-base);
  line-height:1.6;
}
.faq-icon-add,
.faq-icon-remove{
  color:var(--text-faint);
  flex-shrink:0;
}
.faq-icon-remove{
  display:none;
}
.faq-toggle:checked ~ .faq-q .faq-icon-add{
  display:none;
}
.faq-toggle:checked ~ .faq-q .faq-icon-remove{
  display:inline-block;
}
.faq-a-wrap{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows 0.3s ease;
}
.faq-toggle:checked ~ .faq-a-wrap{
  grid-template-rows:1fr;
}
.faq-a{
  overflow:hidden;
  min-height:0;
}
.faq-a-inner{
  padding:24px 32px;
  border-top:1px dashed var(--border);
}
.faq-a-text{
  font-size:14px;
  color:var(--text-sub);
  line-height:1.8;
}
@media (max-width:768px){
  .faq-q{
    padding:20px 24px;
  }
  .faq-a-inner{
    padding:20px 24px;
  }
}
/* お問い合わせエリア */
.contact-block{
  background-color:#fff;
  border:1px solid var(--border);
  border-radius:8px;
  padding:32px;
}
.contact-block-inner{
  display:grid;
  grid-template-columns:1fr 328px;
  grid-template-rows:auto auto;
  column-gap:32px;
  row-gap:20px;
}
.contact-block-heading{
  grid-column:1;
  grid-row:1;
}
.contact-block-actions{
  grid-column:1;
  grid-row:2;
}
.contact-block-img{
  grid-column:2;
  grid-row:1 / span 2;
  width:328px;
  height:200px;
  object-fit:cover;
  border-radius:0;
  border:1px solid var(--border);
}
.contact-block-title{
  font-size:20px;
  font-weight:700;
  color:var(--text-base);
  margin-bottom:12px;
}
@media (max-width: 768px) {
  .contact-block-title {
    font-size: 16px;
  }
}
.contact-block-desc{
  font-size:14px;
  color:var(--text-sub);
  line-height:1.8;
}
.contact-note{
  font-size:12px;
  color:var(--text-faint);
  margin-top:12px;
}
.btn-l{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:16px 24px;
  border-radius:9999px;
  font-size:16px;
  font-weight:700;
  color:#fff;
  background-color:var(--brand-deep);
  text-decoration:none;
  transition:background-color 0.15s ease;
}
.btn-l:hover{
  background-color:var(--brand-darkest);
}
.btn-l .material-symbols-rounded{
  font-size:18px;
}
@media (max-width:768px){
  .article-card{
    padding:24px;
  }
  .contact-block{
    padding:24px;
  }
  .contact-block-inner{
    display:flex;
    flex-direction:column;
    gap:20px;
  }
  .contact-block-img{
    width:100%;
    height:auto;
    aspect-ratio:328/200;
  }
}
/* サイドバー */
.sidebar-card{
  background-color:#fff;
  border:1px solid var(--border);
  border-radius:8px;
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.sidebar-card.is-accent{
  background-color:var(--bg-section);
  border-color:rgba(230, 81, 0, 0.50);
}
.sidebar-card.is-accent.pc-only{
  display:flex;
}
@media (max-width:768px){
  .sidebar-card.is-accent.pc-only{
    display:none;
  }
}
.sidebar-card.is-accent.sp-only{
  display:none;
}
@media (max-width:768px){
  .sidebar-card.is-accent.sp-only{
    display:flex;
    margin-bottom:24px;
  }
}
.sidebar-title{
  font-weight:700;
  color:var(--text-base);
  border-left:3px solid var(--brand);
  padding-left:10px;
}
.sidebar-card.is-accent > .sidebar-title{
  color:var(--brand-deep);
}
.sidebar-card-button{
  width:fit-content;
  padding:12px 16px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  border-radius:9999px;
  border:1px solid var(--border);
  background:#fff;
  color:#666;
  text-align:center;
  font-size:12px;
  font-weight:700;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  transition: background-color 0.15s;
}
.sidebar-card-button:hover {
  background-color: #FBF5E0;
}
.sidebar-card-button::before{
  content:"\e5c4";
  font-family:"Material Symbols Rounded";
  font-variation-settings:"FILL" 0, "wght" 500, "GRAD" 0;
  font-weight:400;
}
.filter-list,
.toc-list{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.filter-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px;
  border-radius:4px;
  cursor:pointer;
  transition:background-color 0.15s ease,color 0.15s ease;
}
.filter-item:hover{
  background-color:var(--bg-hover-orange);
}
.filter-item:hover .filter-label{
  color:var(--brand-deep);
}
.filter-checkbox{
  position:relative;
  width:18px;
  height:18px;
  flex-shrink:0;
  border:1px solid var(--border);
  border-radius:4px;
  background-color:#fff;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  transition:background-color 0.15s ease,border-color 0.15s ease;
}
.filter-checkbox::after{
  content:'';
  position:absolute;
  top:2px;
  left:5px;
  width:5px;
  height:9px;
  border:solid #fff;
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
  opacity:0;
}
.filter-checkbox:checked{
  background-color:var(--brand-deep);
  border-color:var(--brand-deep);
}
.filter-checkbox:checked::after{
  opacity:1;
}
.filter-label{
  color:var(--text-sub);
}
.toc-item{
  width:100%;
  padding:6px 10px;
  border-radius:6px;
  display:flex;
  align-items:flex-start;
  gap:6px;
  color:var(--subnav-text);
  font-size:12px;
  font-weight:700;
  line-height:1.5;
  letter-spacing:0.04em;
  text-decoration:none;
}
.toc-item:before{
  content:"\e5df";
  font-family:"Material Symbols Rounded";
  font-variation-settings:"FILL" 0, "wght" 500, "GRAD" 0;
  font-weight:400;
  font-size:12px;
}
.toc-item:hover{
  font-weight:400;
  background-color:var(--bg-hover-orange);
  color:var(--brand-deep);
}
.updated-date{
  font-size:12px;
  color:var(--brand-deep);
}
.updated-note{
  margin-top: -8px;
  color:var(--text-sub);
  line-height:1.7;
}