/* =========================================================
   Google Fonts
========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600&family=Noto+Sans+JP:wght@400;700&display=swap');

/* =========================================================
   Variables / Base
========================================================= */
:root{
  --primary-color:#2563eb !important;
  --text-main:#1e293b !important;
  --text-muted:#64748b !important;
  --bg-header:#f8fafc !important;
  --border-color:#e2e8f0 !important;
  --hover-bg:#f8fafc !important;
  --accent-bg:#eff6ff !important;
}

body{
  font-family:'Inter','Noto Sans JP',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif !important;
}

/* =========================================================
   Small utilities
========================================================= */
.ffb{ background-color:#fec !important;}
.co_red{ color:#c33 !important;}
.co_br{ color:#1e90ff !important;}
.co_gr{ color:#275 !important;}

.padding-20{ padding:20px !important; }
.padding-25{ padding:25px !important; }

.imgemoji{ vertical-align:middle; }

/* =========================================================
   Category / Header / Footer small tweaks
========================================================= */
.cat-category{
  background-image: linear-gradient(109.2deg, rgba(107,52,255,1) 16.5%, rgba(51,159,247,1) 81%) !important;
}

.cat-area{
  background:#000 !important;
}

.header_search_keywords ul.search_keywords_operator li.active{
  color:#fff !important;
  background:#00721e !important;
}

#footer_nav .headline{
  background:#000 !important;
}

/* Breadcrumb last item */
#breadcrumb li.last{
  color:#1a0dab !important;
}

/* Post date */
#post_date{
  color:#000 !important;
}

/* =========================================================
   Tables (general / corp-info / kessan)
========================================================= */
.kessan table{
  display:block !important;
  overflow-x:scroll !important;
  white-space:nowrap !important;
  -webkit-overflow-scrolling:touch !important;
}

.corp-info-table th{
  background:#454545 !important;
  border:1px solid #ccc !important;
  color:#fff !important;
  padding:10px !important;
  min-width:160px !important;
}
.corp-info-table td{
  border:1px solid #ccc !important;
  padding:10px !important;
}

@media screen and (max-width:640px){
  .last td:last-child{
    border-bottom:1px solid #ccc !important;
    width:100% !important;
  }
  .corp-info-table{
    width:100% !important;
    white-space:pre-line !important;
  }
  .corp-info-table th,
  .corp-info-table td{
    border-bottom:none !important;
    display:block !important;
    width:100% !important;
  }
}

/* Post content table cell align */
.post_content td,
.post_content th{
  vertical-align:middle !important;
}

/* =========================================================
   Scroll hint icon
========================================================= */
.scroll-hint-icon{
  position:absolute !important;
  top:2% !important;
}

/* =========================================================
   Subscribe form
========================================================= */
#subscribe-email input{
  width:100% !important;
  height:45px !important;
  padding:18px 16px !important;
  font-size:14px !important;
  line-height:1 !important;
  color:#000 !important;
  background:#ebebeb !important;
  border-radius:7px !important;
  border:1px solid #777 !important;
  margin-bottom:10px !important;
}

/* =========================================================
   Post content list (custom bullets)
========================================================= */


.post_content p{ font-size:16px; }
.post_content table p{ font-size:14px; }

/* =========================================================
   Content builder headlines
========================================================= */
.cb_content .cb_headline{
  font-weight:600 !important;
  text-align:center !important;
}
#cb_0 .cb_headline{ margin-top:50px !important; }
#cb_1 .cb_headline{ margin-top:100px !important; }

/* =========================================================
   Heading styles
========================================================= */
.ttl_background3{
  font-weight:700 !important;
  background-color:#333 !important;
  color:#fff !important;
  overflow:hidden !important;
  position:relative !important;
  padding:10px 10px 10px 20px !important;
  margin-top:25px !important;
}
/* ✅ 親のcolorだけだとh2等が黒になるテーマがあるので直接指定 */
.ttl_background3 h1,
.ttl_background3 h2,
.ttl_background3 h3,
.ttl_background3 .elementor-heading-title{
  color:#fff !important;
}

.ttl_background3::after{
  content:'';
  background-color:#fff;
  opacity:0.3;
  transform:rotate(-65deg);
  position:absolute;
  bottom:-250px;
  right:-250px;
  width:300px;
  height:500px;
}

.ttl_background4{
  color:#fff;
  border-radius:10px;
  font-weight:600 !important;
  padding:16px !important;
  background-image: linear-gradient(to right, #f83600 0%, #f9d423 100%);
}

.ttl_background5{
  position:relative;
  font-weight:600 !important;
  padding:16px 1px !important;
}
.ttl_background5:after{
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  height:5px;
  content:'';
  background-image: linear-gradient(to right, #fa709a 0%, #fee140 100%);
}

.ttl_background6{
  font-size:1.6em;
  padding:.5em .7em !important;
  border:2px solid #000 !important;
  box-shadow:5px 5px #000 !important;
  color:#000 !important;
  line-height:2.2 !important;
  font-weight:600 !important;
}

.ttl_background7{
  font-size:1.5em !important;
  padding:5px !important;
  border-left:10px solid #000 !important;
  border-bottom:2px dotted #000 !important;
  margin-top:45px !important;
  line-height:1.8 !important;
  font-weight:600 !important;
}

.ttl_background8{
  font-size:18px;
  font-weight:700;
  background-color:#000;
  color:#fff;
  padding:0.5em 0.5em calc(0.5em - 6px) !important;
  position:relative;
}
.ttl_background8::after{
  content:'';
  background-color:#000;
  width:100%;
  height:3px;
  position:absolute;
  bottom:-6px;
  left:0;
}

/* Date color */
ul.meta li.date{ color:#0a007c !important; }

/* =========================================================
   Images / radius
========================================================= */
.side_widget img,
.footer_widget img,
.introduce_list_col .image,
.cb_content-carousel .image,
#post_list .article .image,
#post_list2 .article .image,
#related_post li .image,
#previous_next_post_image .image,
.styled_post_list1 .image{
  border-radius:18px;
}

.side_widget img{
  display:block !important;
  height:auto !important;
  max-width:100% !important;
  margin:0 auto !important;
}

.cb_content-carousel .image img,
.introduce_list_col .image img{
  background:#fff !important;
}

/* Separator */
.wp-block-separator{
  border:none !important;
  border-top:1px #afafaf solid !important;
}

/* Category list cards */
.cb_content-category_list ul li a{
  display:block !important;
  height:80px !important;
  background:#f7f7f7 !important;
  overflow:hidden !important;
  position:relative !important;
  border-radius:18px !important;
}
.cb_content-category_list ul li .info h3{
  margin:0 !important;
  padding:0 !important;
  font-size:140% !important;
  font-weight:700 !important;
  line-height:1.7 !important;
}
.cb_content-category_list ul li{
  margin:0 0.8% 12px 0 !important;
  padding:0 !important;
  width:32.4444% !important;
  float:left !important;
  text-align:center !important;
}

/* =========================================================
   Footer social icons
========================================================= */
#footer_social_link li:before{
font-size: 35px !important;
width: 35px !important;
height: 35px !important;
line-height: 35px !important;
}
#footer_social_link li a{
  width:50px !important;
  height:50px !important;
}

/* =========================================================
   Background patterns (visual)
========================================================= */
#cb_1.cb_content-category_list ul li a{
  background-image:
    linear-gradient(328deg, rgba(29,29,29,.05) 0%, rgba(29,29,29,.05) 25%, rgba(226,226,226,.05) 25%, rgba(226,226,226,.05) 50%, rgba(21,21,21,.05) 50%, rgba(21,21,21,.05) 75%, rgba(216,216,216,.05) 75%, rgba(216,216,216,.05) 100%),
    linear-gradient(172deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.05) 25%, rgba(108,108,108,.05) 25%, rgba(108,108,108,.05) 50%, rgba(21,21,21,.05) 50%, rgba(21,21,21,.05) 75%, rgba(236,236,236,.05) 75%, rgba(236,236,236,.05) 100%),
    linear-gradient(207deg, rgba(153,153,153,.05) 0%, rgba(153,153,153,.05) 25%, rgba(83,83,83,.05) 25%, rgba(83,83,83,.05) 50%, rgba(5,5,5,.05) 50%, rgba(5,5,5,.05) 75%, rgba(82,82,82,.05) 75%, rgba(82,82,82,.05) 100%),
    linear-gradient(297deg, rgba(26,26,26,.05) 0%, rgba(26,26,26,.05) 25%, rgba(223,223,223,.05) 25%, rgba(223,223,223,.05) 50%, rgba(232,232,232,.05) 50%, rgba(232,232,232,.05) 75%, rgba(153,153,153,.05) 75%, rgba(153,153,153,.05) 100%),
    linear-gradient(204deg, rgba(120,120,120,.05) 0%, rgba(120,120,120,.05) 25%, rgba(191,191,191,.05) 25%, rgba(191,191,191,.05) 50%, rgba(246,246,246,.05) 50%, rgba(246,246,246,.05) 75%, rgba(123,123,123,.05) 75%, rgba(123,123,123,.05) 100%),
    linear-gradient(90deg, rgb(32,234,255), rgb(37,116,255)) !important;
  background-attachment:fixed !important;
}

.cb_content-carousel{
  background-image:
    linear-gradient(324deg, transparent 0%, transparent 45%, rgba(186,186,186,.04) 45%, rgba(186,186,186,.04) 47%, transparent 47%, transparent 100%),
    linear-gradient(208deg, transparent 0%, transparent 40%, rgba(186,186,186,.04) 40%, rgba(186,186,186,.04) 80%, transparent 80%, transparent 100%),
    linear-gradient(202deg, transparent 0%, transparent 20%, rgba(186,186,186,.04) 20%, rgba(186,186,186,.04) 40%, transparent 40%, transparent 100%),
    linear-gradient(338deg, transparent 0%, transparent 10%, rgba(186,186,186,.04) 10%, rgba(186,186,186,.04) 72%, transparent 72%, transparent 100%),
    linear-gradient(90deg, #000, #000) !important;
  background-attachment:fixed !important;
}

#footer_contents{
  background-image:
    radial-gradient(circle at 84% 82%, rgba(217,217,217,.03) 0%, rgba(217,217,217,.03) 21%, transparent 21%, transparent 100%),
    radial-gradient(circle at 75% 56%, rgba(3,3,3,.03) 0%, rgba(3,3,3,.03) 30%, transparent 30%, transparent 100%),
    radial-gradient(circle at 74% 53%, rgba(153,153,153,.03) 0%, rgba(153,153,153,.03) 95%, transparent 95%, transparent 100%),
    radial-gradient(circle at 86% 43%, rgba(209,209,209,.03) 0%, rgba(209,209,209,.03) 83%, transparent 83%, transparent 100%),
    radial-gradient(circle at 64% 88%, rgba(192,192,192,.03) 0%, rgba(192,192,192,.03) 2%, transparent 2%, transparent 100%),
    radial-gradient(circle at 73% 77%, rgba(205,205,205,.03) 0%, rgba(205,205,205,.03) 18%, transparent 18%, transparent 100%),
    radial-gradient(circle at 57% 51%, rgba(161,161,161,.03) 0%, rgba(161,161,161,.03) 64%, transparent 64%, transparent 100%),
    radial-gradient(circle at 40% 84%, rgba(115,115,115,.03) 0%, rgba(115,115,115,.03) 14%, transparent 14%, transparent 100%),
    linear-gradient(90deg, #000, #000) !important;
  background-attachment:fixed !important;
}

#footer_nav{
  background-image:
    linear-gradient(112.5deg, rgb(214,214,214) 0%, rgb(214,214,214) 10%, rgb(195,195,195) 10%, rgb(195,195,195) 53%, rgb(176,176,176) 53%, rgb(176,176,176) 55%, rgb(157,157,157) 55%, rgb(157,157,157) 60%, rgb(137,137,137) 60%, rgb(137,137,137) 88%, rgb(118,118,118) 88%, rgb(118,118,118) 91%, rgb(99,99,99) 91%, rgb(99,99,99) 100%),
    linear-gradient(157.5deg, rgb(214,214,214) 0%, rgb(214,214,214) 10%, rgb(195,195,195) 10%, rgb(195,195,195) 53%, rgb(176,176,176) 53%, rgb(176,176,176) 55%, rgb(157,157,157) 55%, rgb(157,157,157) 60%, rgb(137,137,137) 60%, rgb(137,137,137) 88%, rgb(118,118,118) 88%, rgb(118,118,118) 91%, rgb(99,99,99) 91%, rgb(99,99,99) 100%),
    linear-gradient(135deg, rgb(214,214,214) 0%, rgb(214,214,214) 10%, rgb(195,195,195) 10%, rgb(195,195,195) 53%, rgb(176,176,176) 53%, rgb(176,176,176) 55%, rgb(157,157,157) 55%, rgb(157,157,157) 60%, rgb(137,137,137) 60%, rgb(137,137,137) 88%, rgb(118,118,118) 88%, rgb(118,118,118) 91%, rgb(99,99,99) 91%, rgb(99,99,99) 100%),
    linear-gradient(90deg, rgb(195,195,195), rgb(228,228,228)) !important;
  background-blend-mode:overlay, overlay, overlay, normal !important;
  background-attachment:fixed !important;
}

#main_contents{
  background-image:
    linear-gradient(22.5deg, rgba(67,67,67,.02) 0%, rgba(67,67,67,.02) 29%, rgba(47,47,47,.02) 29%, rgba(47,47,47,.02) 37%, rgba(23,23,23,.02) 37%, rgba(23,23,23,.02) 55%, rgba(182,182,182,.02) 55%, rgba(182,182,182,.02) 69%, rgba(27,27,27,.02) 69%, rgba(27,27,27,.02) 71%, rgba(250,250,250,.02) 71%, rgba(250,250,250,.02) 100%),
    linear-gradient(67.5deg, rgba(117,117,117,.02) 0%, rgba(117,117,117,.02) 14%, rgba(199,199,199,.02) 14%, rgba(199,199,199,.02) 40%, rgba(33,33,33,.02) 40%, rgba(33,33,33,.02) 48%, rgba(135,135,135,.02) 48%, rgba(135,135,135,.02) 60%, rgba(148,148,148,.02) 60%, rgba(148,148,148,.02) 95%, rgba(53,53,53,.02) 95%, rgba(53,53,53,.02) 100%),
    linear-gradient(135deg, rgba(190,190,190,.02) 0%, rgba(190,190,190,.02) 6%, rgba(251,251,251,.02) 6%, rgba(251,251,251,.02) 18%, rgba(2,2,2,.02) 18%, rgba(2,2,2,.02) 27%, rgba(253,253,253,.02) 27%, rgba(253,253,253,.02) 49%, rgba(128,128,128,.02) 49%, rgba(128,128,128,.02) 76%, rgba(150,150,150,.02) 76%, rgba(150,150,150,.02) 100%),
    linear-gradient(90deg, #fff, #fff) !important;
  background-attachment:fixed !important;
}

/* =========================================================
   Misc backgrounds
========================================================= */
#related_post ol,
.post_content table,
.tcdw_icon_menu_list_widget ol{
  background:#fff !important;
}

#post_list2 .article{
  border:1px solid #ddd !important;
  border-top:none !important;
  background:#fff !important;
}

/* =========================================================
   Blog list button
========================================================= */
.cb_content-blog_list .archive_link a{
  background-color:#171717 !important;
  color:#fff !important;
  font-weight:600 !important;
}

.news-mobile_archive_link a{ background:#003b87 !important; }

/* =========================================================
   Logo sizes (deduped)
========================================================= */
#header_logo img,
#header_logo_fix img{
  width:80% !important;
  height:auto !important;
}

#footer_logo .logo img{
  width:50% !important;
  height:auto !important;
}

/* =========================================================
   Layout / Archive headline
========================================================= */
.column_maru{
  border-radius:15px !important;
  padding:18px !important;
}

.archive_header .headline{
  min-width:200px !important;
  font-size:28px !important;
}

@media only screen and (max-width:1024px){
  #main_col,
  .inner{ padding:0 5px !important; }
}

/* =========================================================
   TOC (toc-005)
========================================================= */
.toc-005{
  margin-bottom:30px !important;
  border-radius:3px !important;
  background-color:#f2f2f2 !important;
}
.toc-005 div{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  margin:0 !important;
  padding:10px 0 !important;
  background-color:#000 !important;
  color:#fff !important;
  font-weight:600 !important;
  font-size:1.1em !important;
}
.toc-005 div::before{
  display:inline-block !important;
  width:1em !important;
  height:1em !important;
  margin-right:5px !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 4H21V6H8V4ZM3 3.5H6V6.5H3V3.5ZM3 10.5H6V13.5H3V10.5ZM3 17.5H6V20.5H3V17.5ZM8 11H21V13H8V11ZM8 18H21V20H8V18Z' fill='%23fff'%3E%3C/path%3E%3C/svg%3E") !important;
  content:'';
}
.toc-005 ol{
  list-style-type:disc !important;
  margin:0 !important;
  overflow:hidden !important;
}
.toc-005 > ol{ padding:1em 1em 1em 3em; }
.toc-005 ol ol{
  margin-top:5px !important;
  padding-left:1.1em !important;
}
.toc-005 li{
  padding:5px 0 !important;
  font-weight:600 !important;
}
.toc-005 ol ol li{
  font-weight:500 !important;
  font-size:.9em !important;
}
.toc-005 a{
  color:#333 !important;
  text-decoration:none !important;
}

/* Gutenberg figcaption */
.wp-block-image .aligncenter>figcaption,
.wp-block-image .alignleft>figcaption,
.wp-block-image .alignright>figcaption,
.wp-block-image.aligncenter>figcaption,
.wp-block-image.alignleft>figcaption,
.wp-block-image.alignright>figcaption{
  display:inline !important;
}

/* Social links block bullet reset */
.wp-block-social-links .wp-block-social-link.wp-social-link ul li:before{
  border-right:0 solid transparent !important;
  border-bottom:0 solid transparent !important;
}

/* =========================================================
   Free space layout
========================================================= */
.freespace-content-wrapper{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:flex-start !important;
  gap:20px !important;
}
.freespace-content-wrapper .text-content{
  flex:1 1 300px !important;
}
.freespace-content-wrapper .image-content{
  flex:1 1 300px !important;
  display:flex !important;
  justify-content:flex-end !important;
}
.freespace-content-wrapper .image-content img{
  max-width:100% !important;
  height:auto !important;
}
@media (max-width:768px){
  .freespace-content-wrapper .content-wrapper{
    flex-direction:column;
  }
  .freespace-content-wrapper .image-content{
    justify-content:center !important;
  }
}

/* =========================================================
   CDB Company Score – polished UI
========================================================= */
.zdb-score{
  border:1px solid #e5e7eb !important;
  border-radius:16px !important;
  padding:18px !important;
  margin:18px 0 !important;
  background:#fff !important;
  box-shadow:0 8px 24px rgba(17,24,39,.06) !important;
}
.zdb-score-header h3{
  margin:0 0 14px !important;
  font-size:20px !important;
  letter-spacing:.2px !important;
  color:#0f172a !important;
}
.zdb-score-body{ display:flex !important; gap:18px !important; flex-wrap:wrap !important; }
.zdb-score-left{ flex:1 1 360px !important; min-width:300px !important; }
.zdb-score-right{ flex:1 1 280px !important; min-width:260px !important; }

.zdb-table{ width:100% !important; border-collapse:separate !important; border-spacing:0 8px !important; }
.zdb-table th{ text-align:left !important; color:#334155 !important; font-weight:700 !important; font-size:13px !important; }
.zdb-table td{ text-align:right !important; font-weight:700 !important; color:#0f172a !important; }
.zdb-table .zdb-total td,
.zdb-table .zdb-total th{
  border-top:1px dashed #e5e7eb !important;
  padding-top:10px !important;
}
.zdb-table .zdb-grade td{ font-size:18px; }

.zdb-diagnostics{
  margin-top:18px !important;
  padding-top:18px !important;
  border-top:1px dashed #e5e7eb !important;
}
.zdb-diagnostics h4{
  margin:0 0 14px !important;
  font-size:16px !important;
  line-height:1.2 !important;
  color:#0f172a !important;
  font-weight:800 !important;
  letter-spacing:.3px !important;
}
.zdb-dx-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
}

.dx-card{
  position:relative;
  background:linear-gradient(180deg,#fff 0%,#fbfbff 100%);
  border:1px solid #eef2ff;
  border-radius:14px;
  padding:14px;
  box-shadow:0 4px 16px rgba(59,130,246,.06);
  transition:transform .15s ease, box-shadow .15s ease;
}
.dx-card:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(59,130,246,.10);
}
.dx-card.wide{ grid-column:1/-1; }

.dx-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:8px;
}
.dx-title{
  font-size:13px;
  font-weight:800;
  color:#1e293b;
  display:flex;
  align-items:center;
  gap:8px;
}
.dx-title:before{
  content:"";
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:50%;
  background:linear-gradient(135deg,#60a5fa 0%,#34d399 100%);
  box-shadow:0 0 0 3px rgba(99,102,241,.10);
}
.dx-badge{
  font-size:12px;
  font-weight:800;
  color:#0f172a;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  padding:4px 8px;
  border-radius:999px;
  line-height:1;
}

.dx-bar{
  position:relative;
  height:8px !important;
  background:#f1f5f9;
  border-radius:999px;
  overflow:hidden;
  margin:6px 0 8px;
}
.dx-bar span{
  position:absolute;
  left:0; top:0; bottom:0;
  width:0%;
  background:linear-gradient(90deg,#22c55e 0%,#10b981 50%,#06b6d4 100%);
  border-radius:999px;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.06),0 1px 6px rgba(2,132,199,.25);
}
.dx-bar.invert span{
  background:linear-gradient(90deg,#f59e0b 0%,#ef4444 60%,#dc2626 100%);
}

.dx-text{
  margin:0;
  font-size:13px;
  line-height:1.7;
  color:#1f2937;
}

.dx-card.good{ border-color:#c7f9e5; box-shadow:0 4px 16px rgba(16,185,129,.08); }
.dx-card.ok{ border-color:#dbeafe; }
.dx-card.warn{ border-color:#fde68a; }
.dx-card.bad{ border-color:#fecaca; }
.dx-card.critical{ border-color:#fca5a5; box-shadow:0 4px 16px rgba(239,68,68,.10); }

.post_content .zdb-score ul,
.post_content .zdb-score ol{
  list-style: none !important;
  padding-left: 0 !important;
  margin: 0 !important;
}

.post_content .zdb-score .dx-list li{
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
  margin: 6px 0 !important;
  padding: 0 0 0 22px !important;   /* 左に余白だけ確保 */
  position: relative !important;
}

/* 2) 共通で付けている疑似要素（丸・装飾）を無効化 */
.post_content .zdb-score .dx-list li::before,
.post_content .zdb-score .dx-list li::after,
.post_content .zdb-score .dx-list li::marker{
  content: none !important;
}

/* 3) zdb専用：シンプルで見やすいチェックマーク */
.post_content .zdb-score .dx-list li::before{
  content: "✓" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0.15em !important;
  font-weight: 900 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  opacity: .85 !important;
}

/* 4) li内リンクがあっても崩れない */
.post_content .zdb-score .dx-list a{
  text-decoration: underline;
  text-underline-offset: 3px;
}


@media (max-width:480px){
  .zdb-score{ padding:14px; border-radius:14px; }
  .dx-title{ font-size:12px; }
  .dx-text{ font-size:12.5px; }
}

/* Post title old name */
#post_title .old-name{
  font-size:0.65em;
  opacity:0.7;
  margin-left:4px;
}

/* =========================================================
   .wikitable – stylish table
========================================================= */
.table-wrap{
  overflow-x:auto !important;
  -webkit-overflow-scrolling:touch !important;
  border-radius:16px !important;
}
.wikitable{
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  background:#fff !important;
  border:1px solid rgba(15,23,42,.10) !important;
  border-radius:16px !important;
  overflow:hidden !important;
  box-shadow:0 8px 24px rgba(15,23,42,.06) !important;
  font-size:14px !important;
  line-height:1.55 !important;
}
.wikitable th{
  background:linear-gradient(180deg, rgba(15,23,42,.06), rgba(15,23,42,.03)) !important;
  color:#0f172a !important;
  font-weight:700 !important;
  letter-spacing:.02em !important;
  text-align:left !important;
  padding:12px !important;
  border-bottom:1px solid rgba(15,23,42,.10) !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
}
.wikitable td{
  padding:12px !important;
  border-bottom:1px solid rgba(15,23,42,.08) !important;
  color:#0f172a !important;
  vertical-align:middle !important;
}
.wikitable tbody tr:nth-child(even){ background:rgba(2,6,23,.02); }
.wikitable tbody tr:hover{ background:rgba(37,99,235,.06); }

.wikitable tbody tr > td[colspan]{
  background:rgba(2,132,199,.08) !important;
  color:#0f172a !important;
  font-weight:700 !important;
  border-bottom:1px solid rgba(15,23,42,.10) !important;
}

.wikitable img{
  width:56px !important;
  height:74px !important;
  object-fit:cover !important;
  border-radius:12px;
  border:1px solid rgba(15,23,42,.12) !important;
  box-shadow:0 6px 14px rgba(15,23,42,.12) !important;
  display:block !important;
}

.wikitable a{ color:inherit !important; text-decoration:none !important; }
.wikitable a:hover{ text-decoration:underline !important; text-underline-offset:3px !important; }

.wikitable b{
  display:inline-block !important;
  padding:2px 8px !important;
  border-radius:999px !important;
  background:rgba(34,197,94,.14) !important;
  border:1px solid rgba(34,197,94,.28) !important;
  font-weight:800 !important;
}

.wikitable th:nth-child(1),
.wikitable td:nth-child(1){
  width:56px !important;
  text-align:center !important;
}
.wikitable th:nth-child(2),
.wikitable td:nth-child(2){ width:84px !important; }
.wikitable th:nth-child(6),
.wikitable td:nth-child(6),
.wikitable th:nth-child(7),
.wikitable td:nth-child(7){
  white-space:nowrap !important;
}
.wikitable tbody tr:last-child td{ border-bottom:none !important; }

@media (max-width:820px){
  .wikitable{
    display:block !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
    border-radius:14px !important;
  }
  .wikitable th,
  .wikitable td{ white-space:nowrap !important; }

  .wikitable img{
    width:64px !important;
    height:86px !important;
    border-radius:14px !important;
  }

  .wikitable td:nth-child(2),
  .wikitable th:nth-child(2){
    white-space:normal !important;
    min-height:96px !important;
  }
  .wikitable td:nth-child(2) img{
    width:72px !important;
    height:96px !important;
    object-fit:cover !important;
    object-position:center !important;
    display:block !important;
    max-width:none !important;
  }
  .wikitable td:nth-child(2) a{
    display:inline-block !important;
    line-height:0 !important;
  }
  .wikitable td{ vertical-align:middle !important; }
}

/* =========================================================
   CP TABLE (旧) – cp-table-list
========================================================= */
.cp-table-list-container{
  margin:20px auto !important;
  max-width:1200px !important;
  font-family:'Inter','Noto Sans JP',sans-serif !important;
}

.cp-table-list{
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  background-color:#fff !important;
  border-radius:12px !important;
  box-shadow:0 10px 15px -3px rgba(0,0,0,.1) !important;
  table-layout:fixed !important;
  white-space:normal !important;
}

.cp-table-list th:nth-child(1){ width:15% !important; }
.cp-table-list th:nth-child(2){ width:40% !important; }
.cp-table-list th:nth-child(3){ width:15% !important; }
.cp-table-list th:nth-child(4){ width:15% !important; }
.cp-table-list th:nth-child(5){ width:15% !important; }

.cp-table-list thead th{
  background-color:var(--bg-header) !important;
  color:var(--text-muted) !important;
  font-weight:600 !important;
  text-align:left !important;
  padding:16px 20px !important;
  font-size:.85rem !important;
  border-bottom:2px solid var(--border-color) !important;
}

.cp-table-list tbody td{
  padding:18px 20px !important;
  border-bottom:1px solid var(--border-color) !important;
  font-size:.95rem !important;
  color:var(--text-main) !important;
  vertical-align:middle !important;
  word-wrap:break-word !important;
  overflow-wrap:break-word !important;
  word-break:break-all !important;
  white-space:normal !important;
}

.cp-table-list tbody tr:hover{ background-color:var(--hover-bg); }

td[data-label="金額"]{
  font-weight:700 !important;
  color:#2563eb !important;
}

.cp-glyphicon-profile-tooltip{
  background-color:var(--accent-bg);
  color:var(--primary-color);
  padding:4px 10px;
  border-radius:6px;
  font-size:.8rem;
  font-weight:600;
}

/* Mobile card view */
@media screen and (max-width:767px){
  .cp-table-list thead{ display:none !important; }

  .cp-table-list tbody tr{
    display:block !important;
    margin-bottom:25px !important;
    border:1px solid var(--border-color) !important;
    border-radius:12px !important;
    background:#fff !important;
  }

  .cp-table-list tbody td{
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-start !important;
    padding:15px !important;
    border-bottom:1px solid #f1f5f9 !important;
    width:100% !important;
    box-sizing:border-box !important;
  }

  .cp-table-list tbody td:last-child{ border-bottom:none !important; }

  .cp-table-list tbody td::before{
    content:attr(data-label);
    font-weight:600;
    font-size:.8rem;
    color:var(--text-muted);
    margin-right:20px;
  }

  td[data-label="事業名"]{ flex-direction:column !important; }
  td[data-label="事業名"]::before{ margin-bottom:8px !important; }
}

@media screen and (max-width:480px){
  .cp-table-list tbody td{ flex-direction:column !important; }
  .cp-table-list tbody td::before{ margin-bottom:5px !important; }
}

/* Expand / collapse */
.cp-table-expandable.is-collapsed tbody tr:nth-child(n+4){
  display:none !important;
}
.cp-table-expandable:not(.is-collapsed) .icon-arrow{
  transform:rotate(180deg);
}

/* Controls (deduped) */
.cp-table-controls{
  text-align:center;
  padding:30px 0 10px;
  background:linear-gradient(to top, #fff 50%, rgba(255,255,255,0));
  margin-top:-50px;
  position:relative;
  z-index:10;
}
.cp-table-expandable:not(.is-collapsed) .cp-table-controls{
  background:none;
  margin-top:0;
}

.cp-btn-expand{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 28px;
  background-color:#fff;
  border:2px solid var(--primary-color);
  color:var(--primary-color);
  border-radius:50px;
  font-weight:600;
  cursor:pointer;
  transition:all .2s ease;
  box-shadow:0 4px 6px rgba(37,99,235,.10);
  margin:10px;
}
.cp-btn-expand:hover{
  background-color:var(--primary-color);
  color:#fff;
  box-shadow:0 6px 12px rgba(37,99,235,.20);
}

.icon-arrow{ transition:transform .3s ease; }

/* Empty row */
.cp-table-expandable .cp-empty-row td{
  background:rgba(2,132,199,.04);
  border-top:1px dashed rgba(15,23,42,.18);
}
.cp-table-expandable .cp-empty-row{
  display:table-row !important;
}

/* =========================================================
   ZKD3 (NEW tables only) – data-zkd3="1"
========================================================= */
.zkd3-wrap{ margin:14px 0 22px; }

table[data-zkd3="1"].zkd3-table{
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  border-radius:16px !important;
  overflow:hidden !important;
  box-shadow:0 14px 30px rgba(15,23,42,.10) !important;
  border:1px solid rgba(15,23,42,.12) !important;
  background:linear-gradient(180deg, #fff, #f7f9fc) !important;
}

table[data-zkd3="1"].zkd3-table thead th{
  background:rgba(255,255,255,.92) !important;
  color:rgba(15,23,42,.62) !important;
  font-weight:800 !important;
  font-size:13px !important;
  padding:14px 16px !important;
  border-bottom:1px solid rgba(15,23,42,.12) !important;
}

table[data-zkd3="1"].zkd3-table tbody td{
  padding:14px 16px !important;
  border-bottom:1px solid rgba(15,23,42,.10) !important;
  vertical-align:top !important;
  line-height:1.55 !important;
  color:rgba(15,23,42,.92) !important;
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
}

table[data-zkd3="1"].zkd3-table td[data-label="金額"]{
  font-weight:900 !important;
  color:rgba(37,99,235,.95) !important;
  white-space:nowrap !important;
}

.zkd3-controls{
  display:flex;
  justify-content:flex-end;
  margin-top:10px;
}
.zkd3-btn{
  appearance:none;
  border:1px solid rgba(15,23,42,.14);
  background:rgba(2,132,199,.06);
  color:rgba(15,23,42,.88);
  border-radius:999px;
  padding:8px 12px;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.zkd3-btn:hover{ background:rgba(2,132,199,.10); }
.zkd3-btn svg{ transition:transform .18s ease; }

@media (min-width:778px){
  .zkd3-wrap[data-zkd3-state="expanded"] table[data-zkd3="1"].zkd3-table tbody tr{
    display:table-row !important;
  }
  .zkd3-wrap[data-zkd3-state="collapsed"] table[data-zkd3="1"].zkd3-table tbody tr:nth-child(n+4){
    display:none !important;
  }
  .zkd3-wrap[data-zkd3-state="expanded"] .zkd3-btn svg{
    transform:rotate(180deg);
  }
}

table[data-zkd3="1"].zkd3-table tr.zkd3-empty-row td{
  text-align:center;
  padding:18px 16px;
  font-weight:900;
  color:rgba(15,23,42,.65);
  background:rgba(2,132,199,.04);
  border-top:1px dashed rgba(15,23,42,.18);
}

@media (max-width:777px){
  table[data-zkd3="1"].zkd3-table thead{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    clip:rect(0 0 0 0) !important;
    clip-path:inset(50%) !important;
    white-space:nowrap !important;
  }

  table[data-zkd3="1"].zkd3-table,
  table[data-zkd3="1"].zkd3-table tbody,
  table[data-zkd3="1"].zkd3-table tr,
  table[data-zkd3="1"].zkd3-table td{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
  }

  table[data-zkd3="1"].zkd3-table{
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
  }

  table[data-zkd3="1"].zkd3-table tbody tr{
    background:linear-gradient(180deg,#fff,#f7f9fc) !important;
    border:1px solid rgba(15,23,42,.12) !important;
    border-radius:18px !important;
    overflow:hidden !important;
    margin:12px 0 !important;
    box-shadow:0 12px 26px rgba(15,23,42,.10) !important;
  }

  table[data-zkd3="1"].zkd3-table tbody td[data-label]{
    display:grid !important;
    grid-template-columns:110px minmax(0,1fr) !important;
    gap:10px !important;
    align-items:start !important;
  }
  table[data-zkd3="1"].zkd3-table tbody td[data-label]::before{
    content:attr(data-label) !important;
    color:rgba(15,23,42,.60) !important;
    font-size:12px !important;
    font-weight:900 !important;
    letter-spacing:.03em;
    padding-top:2px;
  }

  .zkd3-controls{ justify-content:center !important; }

  table[data-zkd3="1"].zkd3-table tbody tr[style*="display: none"]{
    display:none !important;
  }
}

/* =========================================================
   Yoast FAQ (always open, no accordion)
========================================================= */
.schema-faq.wp-block-yoast-faq-block{
  --faq-surface:#f7f8fa;
  --faq-border:rgba(0,0,0,.08);
  --faq-text:#111827;
  --faq-muted:rgba(17,24,39,.7);
  --faq-accent:#2563eb;
  --faq-shadow:0 10px 30px rgba(0,0,0,.06);

  margin:24px auto;
  max-width:980px;
  color:var(--faq-text);
  border:1px solid var(--faq-border);
  background:linear-gradient(180deg,#fff,var(--faq-surface));
  border-radius:16px;
  box-shadow:var(--faq-shadow);
  overflow:hidden;
}

.schema-faq .schema-faq-section{
  border-top:1px solid var(--faq-border);
  padding:18px;
  position:relative;
}
.schema-faq .schema-faq-section:first-child{ border-top:0; }

.schema-faq .schema-faq-question{
  display:block;
  font-weight:700;
  letter-spacing:.01em;
  line-height:1.4;
  font-size:16px;
  padding:2px 0;
  cursor:default;
}
.schema-faq .schema-faq-question strong{ font-weight:700; }

.schema-faq .schema-faq-answer{
  max-height:none !important;
  opacity:1 !important;
  overflow:visible !important;
  margin:10px 0 0 !important;
  color:var(--faq-muted);
  line-height:1.85;
  font-size:15px;
}

.schema-faq .schema-faq-answer a{
  color:var(--faq-accent);
  text-decoration:none;
  border-bottom:1px solid rgba(37,99,235,.35);
}
.schema-faq .schema-faq-answer a:hover{
  border-bottom-color:rgba(37,99,235,.75);
}
.schema-faq .schema-faq-answer strong{
  color:var(--faq-text);
  font-weight:700;
}

@media (min-width:781px){
  .schema-faq .schema-faq-section{ padding:22px; }
  .schema-faq .schema-faq-question{ font-size:17px; }
  .schema-faq .schema-faq-answer{ font-size:15.5px; }
}

@media (prefers-reduced-motion: reduce){
  .schema-faq .schema-faq-answer{ transition:none; }
}

/* =========================================================
   Accessibility helpers
========================================================= */
.screen-reader-text,
.screen-reader-text span,
.ui-helper-hidden-accessible{
  color: #fff !important;
  height:1px;
  margin:-1px;
  overflow:hidden;
  padding:0;
  position:absolute;
  top:-10000em;
  width:1px;
  clip:rect(0,0,0,0);
  border:0;
}

/* Specific class: registry pdf heading */
.cdb-regpdf-h2{ color:#fff !important; }