@media screen and (max-width: 799px) {
	.article_detail_header .title {
		font-size: 28px;
	}
}

 /* ===================================================
  ■TOP自治体カルーセル
  =================================================== */
  section.section_concept .concept {
	margin-bottom: 0;
  }
  .section_banner_carousel {
    width: 100%;
    padding: 40px 0;
    box-sizing: border-box;
  }
  
  .section_banner_carousel .section_title span a {
	color: #fff;
	text-decoration: none;
	display: block;
  }

  .banner_carousel_track_wrap {
    position: relative;
    width: 100%;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
    mask-image:         linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
  }

  .banner_carousel_track {
    display: flex;
    gap: 16px;
    width: max-content;
    will-change: transform;
    cursor: grab;
    user-select: none;
    /* JS が transform を直接操作するので CSS animation は使わない */
  }
  .banner_carousel_track.grabbing { cursor: grabbing; }

  .banner_carousel_item {
    flex: 0 0 auto;
    width: clamp(180px, 30vw, 270px);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.10);
    transition: box-shadow 0.2s, transform 0.2s;
  }
  .banner_carousel_item:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.16);
    transform: translateY(-2px);
  }
  .banner_carousel_item a     { display:block; width:100%; line-height:0; }
  .banner_carousel_item img   {
    width:100%; height:auto; aspect-ratio:3/2;
    object-fit:cover; display:block; pointer-events:none;
  }

  .banner_carousel_btn {
    position:absolute; top:50%; transform:translateY(-50%);
    z-index:10; width:40px; height:40px; border-radius:50%;
    background:rgba(255,255,255,0.92); border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 2px 8px rgba(0,0,0,0.18);
    transition:background 0.15s, box-shadow 0.15s;
  }
  .banner_carousel_btn:hover { background:#fff; box-shadow:0 4px 16px rgba(0,0,0,0.22); }
  .banner_carousel_btn svg {
    width:18px; height:18px; stroke:#444; fill:none;
    stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round;
  }
  .banner_carousel_btn.prev { left:8px; }
  .banner_carousel_btn.next { right:8px; }

  @media (max-width:600px) {
    .banner_carousel_item { width:clamp(150px,60vw,225px); }
    .banner_carousel_track { gap:12px; }
    .banner_carousel_btn { width:32px; height:32px; }
    .banner_carousel_btn svg { width:14px; height:14px; }
  }

 /* ===================================================
  ■共創の窓
  =================================================== */
  .kyosomado .kyosomado_offer {
	margin-top: 30px;
  }
  
  @media screen and (max-width: 799px) {
	  .kyosomado .kyosomado_offer {
		margin-top: -4vw;
	  }
	  
	  .kyosomado .article_list .article {
		  display: flex;
		  flex-direction: row-reverse;
		  justify-content: space-between;
		  padding-bottom: 16px;
	  }
	  
	  .kyosomado .article_list .article .body {
		  border-bottom: none;
	  }
	  
	  .kyosomado .article_list .article .img img {
		  min-width: 135px;
		  width: 135px;
		  height: 135px;
		  object-fit: cover;
	  }
  }
  
  @media screen and (min-width: 800px) {
  .article_list .article .body , .article_list .article:not(:first-child) .body{
    border-bottom: 0;
  }
}
  
  .kyosomado .article a {
	position: relative;
	display: block; /* すでにblockなら不要 */
  }

  .kyosomado .article a[data-label]::after {
	content: attr(data-label);
	position: absolute;
	bottom: 0;
	left: 0;
	background: #f26b00;
	color: #fff;
	font-size: 12px;
	font-weight: bold;
	padding: 3px 10px;
	border-radius: 0 4px 0 0; /* 左下だけ角なし、右上だけ丸く */
	letter-spacing: 0.05em;
	line-height: 1.6;
  }
  
  @media screen and (min-width: 800px) {
	.kyosomado .article_list .article .img img {
	  height: auto;
	}	
  }