/* ==========================================================
   あんじゅキッズクリニック LP  共通スタイル
   デザイン構造: たけつな型（縦書きキャッチ／帯見出し／ページ別アクセント色）
   実装方針: モバイルファースト・常時レスポンシブ（375〜1920px）
   ========================================================== */

/* ---------- デザイントークン ---------- */
:root{
  --c-primary:       #A7C420;   /* ロゴ実測：葉の黄緑 */
  --c-primary-dark:  #7A9018;
  --c-secondary:     #FE6860;   /* ロゴ実測：手のコーラル */
  --c-base:          #fff;
  --c-base-warm:     #FDFBF2;
  --c-text:          #4D2D1B;  /* ロゴ実測：文字のブラウン */
  --c-line:          #999;
  --c-red:           #FE6860;
  --c-yellow:        #FEB102;  /* ロゴ実測：星のイエロー */
  /* ページ別アクセント */
  --c-doctor:  #5BA8C4;
  --c-clinic:  #FEB102;
  --c-gallery: #8A6247;
  --c-shinryo: #F2994A;
  --c-kenshin: #FE6860;
  --c-tokushoku:#7FA07E;
  --font-gothic: "Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3",Meiryo,メイリオ,sans-serif;
  --font-mincho: "游明朝","Yu Mincho","YuMincho","ヒラギノ明朝 Pro W3","Hiragino Mincho Pro",serif;
  --header-h: 64px;
}

/* ---------- リセット ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{
  -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:var(--header-h);
  /* 勢いよくスクロールした際の上下バウンド（ラバーバンド）を抑止し、余白が出ないようにする */
  overscroll-behavior-y:none;
  /* 抑止に未対応の環境（iOS16未満等）でも余白が白く抜けないよう地色を敷く */
  background-color:var(--c-base);
}
body{
  font-family:var(--font-gothic); color:var(--c-text); background:var(--c-base);
  font-size:15px; line-height:1.8; min-width:320px;
  overscroll-behavior-y:none;
}
img{ max-width:100%; height:auto; vertical-align:bottom; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; }
.sr_only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

.w960{ width:94%; max-width:960px; margin:0 auto; }
.section{ padding:56px 0 40px; }

/* 縦書き */
.vrl{ writing-mode:vertical-rl; }

/* ---------- セクション見出し（ct_title＝下線バー型） ---------- */
.ct_title{
  font-size:clamp(18px,2.2vw,22px);
  font-weight:bold;
  text-align:center;
  display:table;             /* inline-block中央寄せ */
  margin:0 auto 30px;
  letter-spacing:.1em;
}
.ct_title span{
  display:block; height:2px; width:116%; margin-left:-8%; margin-top:4px;
  background:var(--c-text);
}
.accent_primary span{ background:var(--c-primary); }

/* ---------- 帯見出し（ストライプ帯型） ---------- */
.obi_title{
  background:repeating-linear-gradient(45deg,
    var(--c-primary) 0 6px, var(--c-primary-dark) 6px 12px);
  color:#fff; text-align:center; font-weight:bold;
  font-size:clamp(18px,2.2vw,22px); letter-spacing:.15em;
  padding:42px 0 78px;
}
.obi_title span{
  display:block; height:2px; width:110px; margin:6px auto 0; background:#fff;
}

/* ==========================================================
   ヘッダー
   ========================================================== */
#header{
  position:sticky; top:0; z-index:1000; background:var(--c-base);
  border-bottom:1px solid var(--c-line);
}
.header_in{
  display:flex; align-items:center; gap:12px;
  height:var(--header-h); padding:0 4%;
}
.head_logo a{ display:flex; align-items:center; gap:8px; }
.head_logo img{ width:auto; height:42px; flex-shrink:0; }
.head_logo_txt b{
  display:block; font-size:15px; font-weight:bold; color:var(--c-text);
  letter-spacing:.02em; line-height:1.2; white-space:nowrap;
}
.head_logo_txt small{
  display:block; font-size:10px; color:var(--c-secondary);
  letter-spacing:.28em; line-height:1.4;
}
.head_info{ display:none; }
.head_yoyaku{ display:none; }

/* ハンバーガー */
#menu_btn{
  margin-left:auto; width:44px; height:44px; border:none; background:none; cursor:pointer;
  display:flex; flex-direction:column; justify-content:center; gap:7px; padding:8px;
}
#menu_btn span{ display:block; height:2px; background:var(--c-text); transition:.3s; }
#menu_btn[aria-expanded="true"] span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
#menu_btn[aria-expanded="true"] span:nth-child(2){ opacity:0; }
#menu_btn[aria-expanded="true"] span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

/* グローバルナビ（SP=ドロワー） */
#gnav{
  display:none; position:absolute; top:var(--header-h); left:0; width:100%;
  background:var(--c-base); border-bottom:2px solid var(--c-primary);
  max-height:calc(100vh - var(--header-h)); overflow-y:auto;
  overscroll-behavior:contain;   /* SPドロワー内のスクロール伝播を遮断 */
}
#gnav.open{ display:block; }
#menu > li{ border-top:1px solid #eee; }
#menu > li > a{
  display:block; padding:13px 6%; font-weight:bold;
}
#menu > li > a span{ color:var(--c-primary); font-size:10px; margin-left:10px; letter-spacing:.1em; }
#menu .child{ background:var(--c-base-warm); }
#menu .child a{ display:block; padding:10px 10%; font-size:13px; }
#menu .child a::before{ content:"＞ "; color:var(--c-primary); }

/* ==========================================================
   メインスライダー＋縦書きキャッチ
   ========================================================== */
#slide_wrap{ position:relative; overflow:hidden; width:100%; height:clamp(320px, 42.4vw, 70vh); }
#slider{ position:absolute; inset:0; }
#slider .slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transition:opacity 1.5s ease;
}
#slider .slide.is-active{ opacity:1; }
#catch{
  position:absolute; inset:0; display:flex; flex-direction:row-reverse; justify-content:center; align-items:center;
  gap:clamp(8px,2vw,24px); pointer-events:none;
}
#catch p{
  font-family:var(--font-mincho); font-weight:bold;
  font-size:clamp(16px,3vw,30px); letter-spacing:.25em; color:var(--c-text);
  background:rgba(255,255,255,.6); padding:14px 4px; line-height:1;
  height:fit-content;
}
#catch .ef2{ margin-top:clamp(20px,4vw,60px); }
#catch .ef3{ margin-top:clamp(40px,8vw,120px); }
/* 文字送りアニメ（jsで.charへ分割） */
#catch .char{ opacity:0; animation:charIn .6s ease forwards; }
@keyframes charIn{ to{ opacity:1; } }

/* ==========================================================
   おしらせ
   ========================================================== */
#news_box{ position:relative; padding:12px 0 0 12px; }
#news_box::before{
  content:""; position:absolute; top:0; right:12px; bottom:12px; left:0;
  background:var(--c-base); border:1px solid var(--c-line);
}
#news_scroll{
  position:relative; max-height:360px; overflow-y:auto;
  overscroll-behavior:contain;   /* お知らせ内の勢いスクロールがページ側に伝播しないようにする */
  padding:18px 26px; margin:12px 0 0 12px;
  border:1px solid var(--c-line); background:var(--c-base);
}
#news_list li{ border-bottom:1px dotted var(--c-line); }
#news_list a{
  display:flex; flex-direction:column; padding:12px 4px; transition:background .2s;
}
#news_list a:hover{ background:var(--c-base-warm); }
#news_list time{ font-size:14px; color:var(--c-primary-dark); font-weight:bold; }
#news_list p{ font-size:14px; }
.new{
  font-style:normal; color:#fff; background:var(--c-red);
  font-size:10px; font-weight:bold; padding:1px 8px; border-radius:9px; margin-left:8px;
}

/* ==========================================================
   コンセプト
   ========================================================== */
#index_concept{ padding-bottom:56px; background:var(--c-base); }
.concept_in{ position:relative; margin-top:-50px; }
.concept_photo{ text-align:center; }
.concept_copy{
  font-family:var(--font-mincho); font-weight:bold;
  font-size:clamp(17px,2.4vw,24px); letter-spacing:.2em; line-height:2.2;
  margin:24px auto 0; height:auto;
  display:block; text-align:center;
  writing-mode:horizontal-tb;         /* SPは横書き */
}
.deco{ display:none; }
.concept_txt{ margin-top:28px; }
.concept_txt p{ margin-bottom:1em; }

/* スクロール連動フェード */
.fuwat{ opacity:0; transform:translateY(24px); transition:opacity .9s ease, transform .9s ease; }
.fuwat.fadein{ opacity:1; transform:none; }

/* ==========================================================
   診療科目
   ========================================================== */
#index_kamoku{ background:var(--c-base-warm); }
.kamoku_cols{ display:flex; flex-direction:column; gap:36px; }
.kamoku_col{ text-align:center; }
.kamoku_main{ display:block; margin-bottom:14px; transition:opacity .2s; }
.kamoku_sub{ display:flex; justify-content:center; gap:4%; }
.kamoku_sub li{ width:29%; max-width:160px; }
.kamoku_main:hover, .kamoku_sub a:hover{ opacity:.75; }
.kamoku_sub a{ display:block; transition:transform .25s, opacity .2s; }
.kamoku_sub a:hover{ transform:scale(1.06); }

/* ==========================================================
   フッター
   ========================================================== */
#footer{ border-top:2px solid var(--c-primary); margin-top:40px; }
.foot_nav{ display:none; }
.footer_in{ padding:36px 0; }
.foot_ct1{ text-align:center; margin-bottom:28px; }
.foot_logo img{ width:200px; height:auto; }
.foot_yoyaku{ margin-top:10px; font-size:14px; }
.foot_yoyaku dt{ font-weight:bold; }
.foot_yoyaku a,
.foot_yoyaku .is-disabled{ color:var(--c-primary-dark); }

/* 診療時間表 */
#time_table{
  width:100%; border-collapse:collapse; font-size:13px; background:var(--c-base);
}
#time_table th{
  background:var(--c-primary); color:#fff; padding:8px 2px; font-weight:bold;
  border-right:1px solid #fff;
}
#time_table th.l_radius{ border-radius:8px 0 0 0; }
#time_table th.r_radius{ border-radius:0 8px 0 0; border-right:none; }
#time_table td{
  text-align:center; padding:10px 2px; border:1px solid #ddd; border-top:none;
}
#time_table td.time{ font-weight:bold; text-align:center; }
#time_table td.time span{ display:block; font-weight:normal; font-size:11px; color:#666; }
.mk{ display:inline-block; font-style:normal; }
.mk_maru::before{ content:"○"; color:var(--c-primary-dark); font-weight:bold; }
.mk_sen::before{ content:"−"; color:#bbb; }
.table_note{ font-size:12px; margin-top:10px; }
.foot_kamoku{ font-size:13px; margin-top:14px; }
.foot_kamoku dt{ font-weight:bold; color:var(--c-primary-dark); margin-top:6px; }

/* アクセス */
.foot_ct3{ margin-top:28px; }
.foot_map{ margin-bottom:14px; }
.foot_map img{ width:100%; }
.koutu li{ padding-left:1.4em; position:relative; margin-bottom:8px; font-size:13px; }
.koutu li::before{ position:absolute; left:0; font-weight:bold; color:var(--c-primary-dark); }
.koutu .densya::before{ content:"🚃"; }
.koutu .kuruma::before{ content:"🚗"; }
.koutu .kuruma span{ font-size:12px; color:#666; }
.foot_addr{ margin-top:12px; font-size:13px; }
.foot_tel{ font-size:22px; font-weight:bold; }
.foot_tel a{ color:var(--c-text); }
.foot_tel a::before{ content:"☎ "; color:var(--c-primary); }

#copy{ text-align:center; font-size:11px; padding:16px 4% 70px; background:var(--c-base-warm); }

/* ==========================================================
   追従ナビ
   ========================================================== */
#tatenavi{ display:none; }
.go_top{ display:none; }

/* SP下部固定バー */
#sp_fixed_nav{
  position:fixed; left:0; bottom:0; width:100%; z-index:1000;
}
#sp_fixed_nav ul{ display:flex; }
#sp_fixed_nav li{ width:25%; border-right:1px solid #fff; }
#sp_fixed_nav li:last-child{ border-right:none; }
#sp_fixed_nav a,
#sp_fixed_nav .is-disabled{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  height:52px; background:var(--c-secondary); color:#fff; line-height:1.2;
}
#sp_fixed_nav b{ font-size:13px; }
#sp_fixed_nav span{ font-size:9px; opacity:.9; }

/* ==========================================================
   タブレット以上（768px〜）
   ========================================================== */
@media (min-width:768px){
  body{ font-size:15px; }
  :root{ --header-h:88px; }

  .head_logo img{ height:58px; }
  .head_logo_txt b{ font-size:19px; }
  .head_logo_txt small{ font-size:11px; }
  .head_info{ display:block; margin-left:auto; text-align:right; }
  .head_addr{ font-size:12px; }
  .head_tel{ font-size:20px; font-weight:bold; }
  .head_tel a::before{ content:"☎ "; color:var(--c-primary); }
  .head_yoyaku{ display:block; margin-left:16px; }
  .yoyaku_badge{
    display:flex; align-items:center; justify-content:center; text-align:center;
    width:78px; height:78px; border-radius:50%; flex-shrink:0;
    background:var(--c-secondary); color:#fff; font-weight:bold;
    /* 「インターネット」7文字が円内に収まるサイズ（円弧幅76.8px > 文字幅70px） */
    font-size:10px; line-height:1.35; letter-spacing:0; white-space:nowrap;
    transition:transform .25s;
  }
  .yoyaku_badge:hover{ transform:scale(1.08); }
  #menu_btn{ display:none; }

  /* ナビを横並び常時表示 */
  #gnav{
    display:block; position:static; border-bottom:none; border-top:1px solid var(--c-line);
    overflow:visible; max-height:none;
  }
  #menu{
    display:flex; justify-content:center; max-width:1080px; margin:0 auto;
  }
  #menu > li{ border-top:none; position:relative; }
  #menu > li:not(:last-child)::after{
    content:""; position:absolute; right:0; top:50%; transform:translateY(-50%) rotate(18deg);
    width:1px; height:34px; background:var(--c-line);
  }
  #menu > li > a{
    display:flex; flex-direction:column; align-items:center; gap:2px;
     padding:12px 18px; font-size:14px; text-align:center; line-height:1.3;
    transition:color .2s;
  }
  #menu > li > a span{ margin-left:0; }
  #menu > li:nth-child(1) > a:hover{ color:var(--c-primary-dark); }
  #menu > li:nth-child(2) > a:hover{ color:var(--c-doctor); }
  #menu > li:nth-child(3) > a:hover{ color:var(--c-clinic); }
  #menu > li:nth-child(4) > a:hover{ color:var(--c-gallery); }
  #menu > li:nth-child(5) > a:hover{ color:var(--c-shinryo); }
  #menu > li:nth-child(6) > a:hover{ color:var(--c-kenshin); }
  #menu > li:nth-child(7) > a:hover{ color:var(--c-tokushoku); }

  /* ドロップダウン */
  #menu .child{
    display:none; position:absolute; top:100%; left:50%; transform:translateX(-50%);
    min-width:180px; background:var(--c-base); border:1px solid var(--c-line); z-index:1001;
  }
  #menu li:hover .child, #menu li:focus-within .child{ display:block; }
  #menu .child a{ padding:10px 16px; white-space:nowrap; }

  /* コンセプト: 写真＋縦書きコピー横並び */
  .concept_in{ margin-top:-56px; }
  .concept_body{ display:flex; }
  .concept_photo{ width:72%; float:left; }
  .concept_copy{
    writing-mode:vertical-rl; float:right; width:auto;
    margin:30px 4% 0 0; text-align:initial; line-height:2.4;
  }
  .concept_txt{ clear:both; padding-top:30px; }
  .deco{ display:block; position:absolute; z-index:2; opacity:.9; }
  .deco_l{ left:-40px; bottom:-20px; }
  .deco_r{ right:-60px; top:-30px; }

  /* 診療科目 2カラム */
  .kamoku_cols{ flex-direction:row; gap:4%; }
  .kamoku_col{ width:48%; }

  /* お知らせ */
  #news_list a{ flex-direction:row; align-items:center; gap:26px; }
  #news_list time{ flex-shrink:0; }

  /* フッター */
  .foot_nav{ display:block; background:var(--c-base-warm); }
  .foot_nav ul{ display:flex; flex-wrap:wrap; justify-content:center; gap:0 8px; padding:10px 2%; }
  .foot_nav a{ font-size:12px; padding:2px 10px; display:block; }
  .foot_nav a:hover{ color:var(--c-primary-dark); }
  .footer_in{
    display:grid; grid-template-columns:1fr 1fr; gap:30px 40px; align-items:start;
  }
  .foot_ct1{ grid-column:1/-1; display:flex; align-items:center; justify-content:center; gap:40px; margin-bottom:0; }
  .foot_ct2{ }
  .foot_ct3{ margin-top:0; }
  #time_table{ font-size:14px; }
  #time_table td.time span{ font-size:12px; }
  #copy{ padding:16px 0; }

  /* SP固定バー非表示 → PC追従ナビ */
  #sp_fixed_nav{ display:none; }
  #tatenavi{
    display:block; position:fixed; right:0; bottom:38%; z-index:999; width:76px;
  }
  #tatenavi li{ margin-bottom:5px; }
  #tatenavi a{
    display:flex; align-items:center; justify-content:center;
    width:76px; height:60px; background:var(--c-primary); color:#fff;
    font-size:11px; font-weight:bold; border-radius:8px 0 0 8px;
    transition:background .2s;
  }
  #tatenavi a:hover{ background:var(--c-primary-dark); }
  .go_top{
    display:block; position:fixed; right:14px; bottom:20px; z-index:999;
  }
  .go_top a{
    display:flex; align-items:center; justify-content:center;
    width:56px; height:56px; border-radius:50%;
    background:var(--c-secondary); color:#fff; font-size:18px;
    transition:transform .25s;
  }
  .go_top a:hover{ transform:translateY(-4px); }
}

/* ==========================================================
   デスクトップ（1024px〜）: 微調整
   ========================================================== */
@media (min-width:1024px){
  .head_logo img{ height:64px; }
  #menu > li > a{ padding:12px 24px; }
}

/* ==========================================================
   下層ページ共通
   ========================================================== */
/* ページ別アクセント */
body.page-doctor{ --c-accent:var(--c-doctor); }
body.page-clinic{ --c-accent:var(--c-clinic); }
body.page-gallery{ --c-accent:var(--c-gallery); }
body.page-shinryo{ --c-accent:var(--c-shinryo); }
body.page-kenshin{ --c-accent:var(--c-kenshin); }
body.page-tokushoku{ --c-accent:var(--c-tokushoku); }
body.page-news{ --c-accent:var(--c-primary); }
body.page-privacy{ --c-accent:var(--c-primary); }

/* ページタイトル帯 */
.page_hero{
  background:repeating-linear-gradient(45deg,
    var(--c-accent) 0 6px, color-mix(in srgb, var(--c-accent) 80%, #000) 6px 12px);
  color:#fff; text-align:center; padding:46px 4%;
}
.page_hero h1{ font-size:clamp(20px,3vw,28px); letter-spacing:.15em; }
.page_hero h1 span{
  display:block; height:2px; width:110px; margin:8px auto 0; background:#fff;
}
.page_hero .hero_lead{ font-size:13px; margin-top:10px; opacity:.95; }

/* パンくず */
.breadcrumb{ font-size:12px; padding:12px 0; color:#777; }
.breadcrumb ol{ display:flex; flex-wrap:wrap; }
.breadcrumb li:not(:last-child)::after{ content:"＞"; margin:0 8px; color:#bbb; }
.breadcrumb a{ color:var(--c-accent); }

/* 下層セクション */
.sub_section{ padding:36px 0; }
.sub_section .ct_title span{ background:var(--c-accent); }
.sub_section h3{
  font-size:17px; font-weight:bold; margin:26px 0 12px;
  padding-left:14px; border-left:5px solid var(--c-accent);
}
.sub_section p{ margin-bottom:1em; }
.lead_answer{
  background:var(--c-base-warm); border-left:5px solid var(--c-accent);
  padding:14px 18px; margin-bottom:22px; font-weight:bold;
}

/* 医師紹介 */
.doctor_card{
  display:flex; flex-direction:column; gap:20px;
  border:1px solid #ddd; border-radius:10px; padding:24px; margin-bottom:28px;
  background:var(--c-base);
}
.doctor_card figure{ text-align:center; }
.doctor_card figure img{ width:200px; }
.doctor_card .dr_role{ color:var(--c-accent); font-weight:bold; font-size:13px; }
.doctor_card h3{ border:none; padding:0; margin:2px 0 10px; font-size:20px; }

/* ギャラリー */
.gallery_grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:16px;
}
.gallery_grid figure img{ width:100%; border-radius:8px; }
.gallery_grid figcaption{ font-size:13px; text-align:center; margin-top:6px; }

/* 汎用テーブル */
.info_table{ width:100%; border-collapse:collapse; font-size:14px; margin-bottom:1.5em; }
.info_table th, .info_table td{ border:1px solid #ddd; padding:10px 14px; text-align:left; }
.info_table th{ background:var(--c-base-warm); width:32%; font-weight:bold; }

/* FAQ（details/summary） */
.faq_list details{
  border:1px solid #ddd; border-radius:8px; margin-bottom:12px; overflow:hidden;
  background:var(--c-base);
}
.faq_list summary{
  cursor:pointer; padding:14px 18px; font-weight:bold; list-style:none;
  position:relative; padding-right:44px;
}
.faq_list summary::before{ content:"Q"; color:var(--c-accent); font-weight:bold; margin-right:10px; }
.faq_list summary::after{
  content:"＋"; position:absolute; right:16px; top:50%; transform:translateY(-50%);
  color:var(--c-accent); font-weight:bold;
}
.faq_list details[open] summary::after{ content:"−"; }
.faq_list .faq_a{ padding:0 18px 14px 18px; border-top:1px dotted #ddd; }
.faq_list .faq_a p{ margin-top:12px; }
.faq_list .faq_a p::before{ content:"A. "; color:var(--c-red); font-weight:bold; }

/* お知らせ一覧ページ */
.news_page_list li{ border-bottom:1px dotted var(--c-line); padding:16px 4px; }
.news_page_list time{ font-size:13px; color:var(--c-primary-dark); font-weight:bold; display:block; }
.news_page_list h3{ border:none; padding:0; margin:4px 0 6px; font-size:16px; }
.news_page_list p{ font-size:14px; margin:0; }

/* CTAブロック */
.cta_block{
  background:var(--c-base-warm); border-radius:10px; text-align:center;
  padding:26px 5%; margin:36px 0 0;
}
.cta_block .cta_tel{ font-size:26px; font-weight:bold; }
.cta_block .cta_tel a::before{ content:"☎ "; color:var(--c-primary); }
.cta_block .cta_note{ font-size:12px; color:#666; }

@media (min-width:768px){
  .doctor_card{ flex-direction:row; align-items:flex-start; }
  .doctor_card figure{ flex-shrink:0; }
  .gallery_grid{ grid-template-columns:repeat(3,1fr); gap:22px; }
}

/* サイトh1（たけつな型: スライダー上部の小さなSEOテキスト） */
#site_h1{
  font-size:10px; color:var(--c-primary-dark); text-align:center;
  padding:4px 2%; font-weight:bold; background:var(--c-base);
}

/* ==========================================================
   アクセシビリティ改善（WCAG コントラスト・スキップリンク・フォーカス）
   ========================================================== */
:root{
  --c-primary-deep:  #5C7412;  /* 白文字5.30:1 */
  --c-secondary-deep:#C43F38;  /* 白文字5.10:1 */
  --c-red-deep:      #C43F38;  /* 白文字5.10:1 */
  --c-yellow-deep:   #9A6A01;  /* 白文字4.73:1 */
}
/* 白文字が乗る面は深色トークンに統一 */
#sp_fixed_nav a,
#sp_fixed_nav .is-disabled{ background:var(--c-secondary-deep); }
.yoyaku_badge{ background:var(--c-secondary-deep); }
.go_top a{ background:var(--c-secondary-deep); }
#tatenavi a{ background:var(--c-primary-deep); }
#tatenavi a:hover{ background:color-mix(in srgb, var(--c-primary-deep) 80%, #000); }
.new{ background:var(--c-red-deep); }
#time_table th{ background:var(--c-primary-deep); }
/* hero帯・コンセプト帯: ストライプを暗色化して大文字テキスト3:1を確保 */
.page_hero{
  background:repeating-linear-gradient(45deg,
    color-mix(in srgb, var(--c-accent) 72%, #000) 0 6px,
    color-mix(in srgb, var(--c-accent) 58%, #000) 6px 12px);
  text-shadow:0 1px 2px rgba(0,0,0,.3);
}
.obi_title{
  background:repeating-linear-gradient(45deg,
    color-mix(in srgb, var(--c-primary) 72%, #000) 0 6px,
    color-mix(in srgb, var(--c-primary) 58%, #000) 6px 12px);
  text-shadow:0 1px 2px rgba(0,0,0,.3);
}
/* リンク色もコントラスト確保 */
.breadcrumb a{ color:var(--c-primary-deep); }
#news_list time{ color:var(--c-primary-deep); }
.foot_kamoku dt{ color:var(--c-primary-deep); }
.koutu li::before{ color:var(--c-primary-deep); }
.foot_yoyaku a,
.foot_yoyaku .is-disabled{ color:var(--c-primary-deep); }

/* スキップリンク */
.skip_link{
  position:absolute; left:8px; top:-48px; z-index:2000;
  background:var(--c-primary-deep); color:#fff; padding:10px 18px;
  border-radius:0 0 6px 6px; font-weight:bold; transition:top .2s;
}
.skip_link:focus{ top:0; }

/* キーボードフォーカス可視化 */
a:focus-visible, button:focus-visible, summary:focus-visible{
  outline:3px solid var(--c-primary-deep); outline-offset:2px;
}

/* 監修表記 */
.supervisor{
  font-size:12px; color:#666; text-align:right; margin:-14px 0 20px;
}
.supervisor::before{ content:"✔ "; color:var(--c-primary-deep); }

/* ==========================================================
   アニメーション抑制設定の尊重（prefers-reduced-motion）
   ========================================================== */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  #slider .slide{ transition:none; }
  #catch .char{ animation:none; opacity:1; }
  .fuwat{ opacity:1; transform:none; transition:none; }
  .yoyaku_badge, .go_top a, .kamoku_sub a{ transition:none; }
}

/* 遷移先が未確定の導線。リンクではないことをポインタでも示す */
.is-disabled{ cursor:default; }
