@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&&family=Maven+Pro:wght@400;500;700&family=Hind:wght@700&display=swap");
@import url("https://fonts.googleapis.com/css?family=Material+Icons|Material+Icons+Outlined|Material+Icons+Two+Tone|Material+Icons+Round|Material+Icons+Sharp");
@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0");

.material-symbols-outlined {
  font-variation-settings:
    'FILL' 0,
    'wght' 400,
    'GRAD' 0,
    'opsz' 24;
}

/* ===== 全体補正 ===== */
.bg-g { margin-bottom: 0 !important; }
@media (max-width: 768px) {
  .bg-g { margin-bottom: -15px !important; }
}

/* ===== h2・h3 アクセントカラー ===== */
#__main_contents h2::after { background-color: #016D0C; }
#__main_contents h3 { border-color: #016D0C; }

/* ===== ヒーロー ===== */
.mainimg {
  position: relative;
  margin: 0 calc(50% - 50vw);
  width: 100vw;
  padding: 24px 0 6px;
  background: #F8F3DC url("/intro/kids/torikumi/summer2026/images/hero_bg.png") repeat-x center top;
  background-size: auto 350px;
  overflow: hidden;
}
.kids__container {
  max-width: 1000px;
  margin: 0 auto;
  box-sizing: border-box;
}

.kids_hero {
  position: relative;
  min-height: 350px;
  animation: heroFadeUp 0.65s ease-out both;
}

.kids_hero__title_wrap {
  position: absolute;
  left: 50%;
  top: 0;
  z-index: 5;
  width: min(92%, 900px);
  overflow: hidden;
  transform: translateX(-50%);
  filter: drop-shadow(0 6px 10px rgba(0,0,0,0.12));
  animation: heroTitleIn 0.7s 0.08s ease-out both;
}

.kids_hero__title {
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  display: block;
}

.kids_hero__title_shine {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  -webkit-mask-image: url("/intro/kids/torikumi/summer2026/images/hero_title.png");
  mask-image: url("/intro/kids/torikumi/summer2026/images/hero_title.png");
  -webkit-mask-size: 100% auto;
  mask-size: 100% auto;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: left top;
  mask-position: left top;
}

.kids_hero__title_shine::before {
  content: "";
  position: absolute;
  top: -30%;
  left: -70%;
  width: 42%;
  height: 160%;
  background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.82) 48%, rgba(255,255,255,0) 100%);
  transform: skewX(-24deg);
  animation: heroTitleShine 4.8s 1.4s ease-in-out infinite;
}

.kids_hero__date {
  position: absolute;
  left: 50%;
  bottom: 25px;
  z-index: 3;
  width: min(84%, 760px);
  height: auto;
  display: block;
  transform: translateX(-50%);
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.10));
  animation: heroDateIn 0.65s 0.55s ease-out both;
}

.kids_hero__people {
  position: absolute;
  z-index: 7;
  bottom: 0;
  height: 250px;
  width: auto;
  display: block;
  filter: drop-shadow(0 5px 8px rgba(0,0,0,0.10));
  animation: heroPeopleDrop 0.72s 0.36s ease-out both;
}
.kids_hero__people--left {
  left: -88px;
}
.kids_hero__people--right {
  right: -88px;
}

.kids_hero__mieti {
  position: absolute;
  top: 120px;
  left: calc(50% - 50vw);
  z-index: 6;
  width: 76px;
  display: block;
  opacity: 1;
  pointer-events: none;
}
.kids_hero__mieti--01 {
  animation: heroMietiMoveRight 48s 1s linear infinite both; }
.kids_hero__mieti--02 {
  animation: heroMietiMoveLeft 48s 25s linear infinite both; } .kids_hero__mieti_img {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 5px 8px rgba(0,0,0,0.12));
  animation: heroMietiFloat 4.8s ease-in-out infinite alternate-reverse; }
.kids_hero__mieti--02 .kids_hero__mieti_img {
  animation-name: heroMietiFloatFlipped;
  animation-delay: -2.4s;
}

.kids_hero img:not(.kids_hero__title):not(.kids_hero__date):not(.kids_hero__people):not(.kids_hero__mieti_img) {
  width: 100%;
  height: auto;
  display: block;
  vertical-align: bottom;
  border-radius: 4px;
}

@keyframes heroFadeUp {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes heroTitleIn {
  from {
    opacity: 0;
    transform: translate(-50%, 10px);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

@keyframes heroTitleShine {
  0%, 42% {
    left: -70%;
  }
  72%, 100% {
    left: 130%;
  }
}

@keyframes heroPeopleDrop {
  0% {
    opacity: 0;
    transform: translateY(-8px);
  }
  68% {
    opacity: 1;
    transform: translateY(4px);
  }
  84% {
    transform: translateY(-2px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes heroDateIn {
  from {
    opacity: 0;
    transform: translate(-50%, 8px);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

@keyframes heroMietiMoveRight {
  0% {
    transform: translateX(-240px);
  }
  60% {
    transform: translateX(calc(100vw + 240px));
  }
  100% {
    transform: translateX(calc(100vw + 240px));
  }
}

@keyframes heroMietiMoveLeft {
  0% {
    transform: translateX(calc(100vw + 240px));
  }
  60% {
    transform: translateX(-240px);
  }
  100% {
    transform: translateX(-240px);
  }
}

@keyframes heroMietiFloat {
  0% {
    transform: rotate(-2.5deg) translateY(-5%);
  }
  100% {
    transform: rotate(2.5deg) translateY(5%);
  }
}

@keyframes heroMietiFloatFlipped {
  0% {
    transform: scaleX(-1) rotate(-2.5deg) translateY(-5%);
  }
  100% {
    transform: scaleX(-1) rotate(2.5deg) translateY(5%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .kids_hero {
    animation: none;
  }
  .kids_hero__title_wrap,
  .kids_hero__date,
  .kids_hero__people,
  .kids_hero__mieti,
  .kids_hero__mieti_img,
  .kids_hero__title_shine::before {
    animation: none;
  }
  .card_image {
    transition: none;
  }
  .kids_program_jizen li:hover .card_image,
  .kids_program_madoguchi li:hover .card_image {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kids_hero {
    animation: none;
  }
  .kids_hero__title_wrap,
  .kids_hero__date,
  .kids_hero__people,
  .kids_hero__mieti,
  .kids_hero__mieti_img,
  .kids_hero__title_shine::before {
    animation: none;
  }
  .card_image {
    transition: none;
  }
  .kids_program_jizen li:hover .card_image,
  .kids_program_madoguchi li:hover .card_image {
    transform: none;
  }
}

/* ===== コンテンツ背景（ベージュ・全幅） ===== */
/* ラッパー禁止のCMSルールに従い、疑似要素で全幅ベージュを実現。
   ヒーロー（.mainimg）と更新日（#__rdo_update）は
   自身の背景でベージュを上書き。 */
#__main_contents {
  position: relative;
  isolation: isolate;
}
#__main_contents::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(50% - 50vw);
  width: 100vw;
  background: #F7F3DC;
  z-index: -1;
}
/* 更新日エリアはベージュ対象外 → 全幅白で上書き */
#__rdo_update {
  position: relative;
  margin: 0 calc(50% - 50vw);
  width: 100vw;
  padding-left: calc(50vw - 500px);
  background: #fff;
  box-sizing: border-box;
}

/* ===== 概要・開催情報 ===== */
.kids_about { padding: 20px 0 10px; }

.kids_about h2 { border-bottom-color: #E4DF6A; }
.kids_about h2::after { background-color: #255E17; }
.kids_about dl {
 margin: 0 0 40px 0;
}
.kids_about dt {
	float: left;
	clear: both;
    width: 70px;
    text-align: center;
  color: #FFF;
  background: #016D0C;
  font-size: 0.9em;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  margin:1px 10px 0 0;
  padding: 1px 0 2px 0;
  border-radius:3px;

}
.kids_about dd {
    padding:0 0 0 4.5em;
    display: block;
    width: auto;
    margin: 0 0 0.8em 0.5em;
}
.kids_event_info {
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 0;
  background: #006E0C;
  border-radius: 8px;
  margin: 0 0 40px 0;
  overflow: hidden;
}
.kids_event_info dt {
  float: none;
  clear: none;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  margin: 0;
  padding: 16px 12px;
  color: #fff;
  background: #006E0C;
  border-radius: 0;
  border-left: none;
  border-right: 1px solid #E4DF6A;
  border-bottom: 1px solid rgba(255,255,255,0.35);
  font-size: 0.94em;
  font-weight: 700;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kids_event_info dt:nth-last-of-type(1) {
  border-bottom: none;
}
.kids_event_info dd {
  margin: 0;
  padding: 15px 18px;
  display: block;
  width: auto;
  background: #FFFEF4;
  border-right: 2px solid #E4DF6A;
  border-bottom: 1px solid #E4DF6A;
  line-height: 1.7;
}
.kids_event_info dd:first-of-type {
  border-top: 2px solid #E4DF6A;
  border-top-right-radius: 8px;
}
.kids_event_info dd:last-child {
  border-bottom: 2px solid #E4DF6A;
  border-bottom-right-radius: 8px;
}
.kids_event_info dd strong {
  font-size: 1.08em;
  line-height: 1.7;
}
.kids_event_info .card_date__weekday {
  color: #fff;
  background: #383838;
  vertical-align: 0.08em;
}
.kids_event_info .kidsLst {
  margin-top: 0;
}
.kidsLst {
  list-style: none;
  padding: 0;
  margin: 0;
}
.kidsLst li {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Crect width='18' height='18' rx='4' fill='%23006E0C'/%3E%3Cpath d='M13 9L7 13V5z' fill='%23FFF'/%3E%3C/svg%3E") no-repeat left calc(0.2em + 1px) / 18px 18px;
	padding:0 0 0 22px;
	margin-bottom: 5px;
}
.kidsLst li a img{
    vertical-align:middle;
	padding:0 0 2px 3px;
}
.kids_about_link {
  margin-bottom: 40px;
}

/* 注意事項ボックス */
.kids_caution {
  background: #FFF;
  color: #000;
  border: 1px solid #DCE7C5;
  border-radius: 8px;
  padding: 22px 24px 18px;
  margin: 28px 0 10px 0;
}
.kids_caution h3 {
  color: #016D0C;
  border: none;
  border-left: 5px solid #016D0C;
  margin: 0 0 14px 0;
  padding: 2px 0 3px 12px;
  font-size: 1.2em;
}
.kids_caution ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
  border-top: 1px solid #E5EED6;
}
.kids_caution li {
  margin: 0;
  padding: 11px 0;
  border-bottom: 1px solid #E5EED6;
  line-height: 1.65;
}
.kids_caution li:last-child {
  border-bottom: none;
}

/* ===== ナビゲーション ===== */
.kids_navigation {
  margin: 20px calc(50% - 50vw) 0;
  width: 100vw;
  background: #016D0C;
}
.kids_navigation ul {
  display: flex;
  list-style: none;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0;
}
.kids_navigation li {
  flex: 1;
  border-right: 1px solid rgba(255,255,255,0.16);
}
.kids_navigation li:last-child { border-right: none; }
.kids_navigation li a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 58px;
  padding: 16px 10px;
  color: #fff;
  font-size: 1em;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.25s;
  box-sizing: border-box;
}
.kids_navigation li a::after {
  content: none;
}
.kids_navigation li a:hover {
  background: rgba(255,255,255,0.12);
  text-decoration: none;
  color: #fff;
}
.kids_navigation .material-symbols-outlined {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.2em;
  height: 1.2em;
  font-size: 1.2em;
  line-height: 1;
  vertical-align: middle;
  transition: transform 0.25s;
}
.kids_navigation__text {
  position: relative;
  top: -1px;
}
.kids_navigation li a:hover .material-symbols-outlined {
  transform: translateY(3px);
}


/* ===== プログラムセクション共通 ===== */
.kids_contents {
  padding: 30px 0 20px;
}
.kids_contents h2 { border-bottom-color: #E4DF6A; }
.kids_contents h2::after { background-color: #006E0C; }
.kids_contents > p,
.kids_contents > .kidsLst {
  font-size: 1em;
  line-height: 1.7;
}
.kids_contents > p {
  margin: 0 0 0.8em;
}

.kids_list {
  list-style: none;
  padding: 0;
  margin: 0.5em 0 1.2em;
}

/* ===== 年齢ラベル ===== */
.c01, .c02, .c03, .c04, .c05, .c06, .c07, .c08, .c09{
  display: inline-block;
  font-size: 0.72em;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  border-radius: 3px;
  padding: 1px 8px 2px 8px;
  margin: 2px 0 2px 0;
  color: #fff;
}
.c01 { background: #1a73e8; } /* 全年齢 */
.c02 { background: #BA0000; } /* 未就学 */
.c03 { background: #318700; } /* 小学校低学年 */
.c04 { background: #005D9A; } /* 小学校中学年 */
.c05 { background: #00009B; } /* 小学校高学年 */
.c06 { background: #6a1b9a; } /* 中学生 */
.c07 { background: #6a1b9a; } /* 高校生 */
.c08 { background: #318700; } /* 小学生 */
.c09 { background: #BA0000; } /* 未就学（保護者同伴） */

/* ===== プログラムカードグリッド ===== */
.kids_program_jizen,
.kids_program_madoguchi {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  align-items: stretch;
  list-style: none;
  padding: 0;
  margin: 30px 0 0 0;
}
.kids_program_jizen li,
.kids_program_madoguchi li {
  display: flex;
  background: #fff;
  border: 5px solid #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(1,109,12,0.16);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.kids_program_jizen li:hover,
.kids_program_madoguchi li:hover {
  border-color: #C7D957;
  box-shadow: 0 12px 26px rgba(1,109,12,0.24);
}
/* CMS都合の <a><object> ラッパーをレイアウトから除外 */
.kids_program_jizen li > a,
.kids_program_jizen li > a > object,
.kids_program_madoguchi li > a,
.kids_program_madoguchi li > a > object {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
}
.kids_card {
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
}
.kids_card:hover {
  opacity: 1;
}
.card_image_wrap {
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  flex-shrink: 0;
}
.card_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  transform-origin: center center;
  transition: transform 0.45s ease;
}
.kids_program_jizen li:hover .card_image,
.kids_program_madoguchi li:hover .card_image {
  transform: scale(1.035);
}
.entry_type {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  max-width: calc(100% - 24px);
  margin: 0;
  line-height: 1.4;
}
.entry_type__badge {
  display: inline-block;
  color: #fff;
  border: 2px solid #fff;
  border-radius: 999px;
  padding: 5px 12px 6px;
  font-size: 0.86em;
  font-weight: 700;
  line-height: 1.35;
  box-shadow: 0 3px 8px rgba(0,0,0,0.18);
}
.entry_type__badge--first {
  background: #005D9A;
}
.entry_type__badge--walkin {
  background: #016D0C;
}
.entry_type__badge--lottery {
  background: #D85C00;
}
.card_date {
  align-self: flex-end;
  position: relative;
  z-index: 1;
  max-width: calc(100% - 24px);
  margin: -39px 12px 13px 12px;
  color: #fff;
  background: rgba(0,0,0,0.72);
  border-radius: 999px;
  padding: 5px 12px 6px;
  font-size: 0.86em;
  font-weight: 700;
  line-height: 1.35;
  text-align: right;
  box-sizing: border-box;
  box-shadow: 0 3px 8px rgba(0,0,0,0.18);
}
.card_date__weekday {
  display: inline-grid;
  place-items: center;
  width: 1.45em;
  height: 1.45em;
  margin-left: 2px;
  padding-top: 0.08em;
  color: #111;
  background: #fff;
  border-radius: 50%;
  box-sizing: border-box;
  font-family: "Meiryo", "Yu Gothic", "YuGothic", sans-serif;
  font-size: 0.86em;
  line-height: 1;
  vertical-align: 0.08em;
}
.card_date__only {
  margin-left: 2px;
}
.kids_card h3 {
  font-size: 1.2em;
  line-height: 1.5;
  margin: 16px 18px 10px 18px;
  padding: 0;
  border: none;
  color: #222;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
}
.subject { 
  padding: 0 18px; 
  margin: 0 0 10px 0;
  line-height: 1.6; 
}
.kyosai { font-size: 0.8em; color: #444444; margin: 0 18px 10px 10px; }
.ichiran {
  margin: auto 18px 18px auto;
  padding: 0;
  font-size: 0.9em;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
}
.ichiran a {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  position: relative;
  overflow: hidden;
  color: #016D0C;
  background: #fff;
  border: 1px solid #B9D6B4;
  border-radius: 19px;
  height: 38px;
  padding: 1px 16px 0 17px;
  text-decoration: none;
  box-shadow: none;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.ichiran a::after {
  content: '';
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 6px solid #016D0C;
  transition: transform 0.2s;
}
.ichiran a:hover,
.kids_program_jizen li:hover .ichiran a,
.kids_program_madoguchi li:hover .ichiran a {
  color: #016D0C;
  background: #F4FBF0;
  border-color: #016D0C;
  box-shadow: none;
}
.ichiran a:hover::after,
.kids_program_jizen li:hover .ichiran a::after,
.kids_program_madoguchi li:hover .ichiran a::after {
  transform: translateX(3px);
}
.ichiran a img {
  width: 20px;
  height: 20px;
  vertical-align: middle;
  margin-left: 2px;
}

/* ===== プログラム詳細テーブル ===== */
.program_table_wrap {
  overflow-x: visible;
  margin: 24px 0 32px;
}
.program_table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid #B9C99B;
  font-size: 0.86em;
  line-height: 1.6;
}
.program_table th,
.program_table td {
  border: 1px solid #B9C99B;
  padding: 8px 10px;
  vertical-align: top;
}
.program_table th {
  color: #fff;
  background: #016D0C;
  font-weight: 700;
  text-align: center;
  white-space: normal;
}
.program_table tbody tr {
  scroll-margin-top: 20px;
}
.program_table:not(.has-js-focus) tbody tr:target,
.program_table tbody tr.is-focused {
  outline: 4px solid #C7D957;
  outline-offset: -4px;
  background: #FFF3B0;
}
@media (min-width: 769px) {
  .program_table tbody tr {
    cursor: pointer;
    transition: background-color 0.18s;
  }
  .program_table tbody tr:hover {
    background: #FFFBE0;
  }
  .program_table:not(.has-js-focus) tbody tr:target:hover,
  .program_table tbody tr.is-focused:hover {
    background: #FFF3B0;
  }
}
.program_table th:nth-child(1),
.program_table_title {
  width: 22%;
  font-weight: 700;
}
.program_table_subject {
  margin: 4px 0 0;
  font-weight: 400;
  line-height: 1.6;
}
.program_table_subject span {
  margin: 2px 4px 2px 0;
}
.program_table th:nth-child(2),
.program_table_content {
  width: 32%;
}
.program_table th:nth-child(3),
.program_table_date {
  width: 9%;
}
.program_table th:nth-child(4),
.program_table_apply {
  width: 13.5%;
  text-align: center;
}
.program_table th:nth-child(5),
.program_table_link {
  width: 10.5%;
}
.program_table th:nth-child(6),
.program_table_contact {
  width: 13%;
}
.program_table--free th:nth-child(1),
.program_table--free .program_table_title {
  width: 26.5%;
}
.program_table--free th:nth-child(2),
.program_table--free .program_table_content {
  width: 36.5%;
}
.program_table--free th:nth-child(4),
.program_table--free .program_table_link {
  width: 15%;
}
.program_table--free th:nth-child(5),
.program_table--free .program_table_contact {
  width: 13%;
}
.program_table_date,
.program_table_link,
.program_table_apply,
.program_table_contact {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.program_table_date .card_date__weekday {
  color: #fff;
  background: #383838;
}
.program_table_date,
.program_table_date .card_date__weekday {
  font-weight: 700;
}
.program_apply {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: #fff !important;
  background: #016D0C;
  border: 2px solid #016D0C;
  border-radius: 999px;
  margin-top: 5px;
  padding: 4px 6px 5px;
  font-size: 0.92em;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none !important;
  vertical-align: middle;
  white-space: nowrap;
  transition: background 0.2s, color 0.2s;
}
.program_apply::after {
  content: 'open_in_new';
  font-family: 'Material Icons';
  font-size: 1.05em;
  font-weight: normal;
  line-height: 1;
}
.program_apply:hover {
  color: #016D0C !important;
  background: #fff;
}
.program_table_link a::after {
  content: 'open_in_new';
  display: inline-block;
  margin-left: 3px;
  font-family: 'Material Icons';
  font-size: 1em;
  font-weight: normal;
  line-height: 1;
  vertical-align: -0.12em;
}
.program_back {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 4px 18px;
  margin: 20px 0 0;
  text-align: right;
}
.program_back a {
  display: inline-flex;
  align-items: flex-start;
  gap: 4px;
  line-height: 1.4;
}
.program_back a::before {
  content: "";
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: calc(0.1em + 1px);
}
.program_back__top::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Crect width='18' height='18' rx='4' fill='%23006E0C'/%3E%3Cpath d='M5 9l6-4v8z' fill='%23FFF'/%3E%3C/svg%3E") no-repeat center / contain;
}
.program_back__next::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Crect width='18' height='18' rx='4' fill='%23006E0C'/%3E%3Cpath d='M13 9L7 13V5z' fill='%23FFF'/%3E%3C/svg%3E") no-repeat center / contain;
}




/* ===== 高校生・中学生向けキャリアプログラム ===== */
.kids_career a img {
  max-width: 100%;
}
.kids_career a img:hover {
    opacity: 0.6;
}

/* ===== お食事・休憩 ===== */
.kids_restaurant {
  background: #f4f0e8;
  border-radius: 10px;
  padding: 20px 24px;
  margin: 10px 0 20px;
}
.kids_restaurant h3 { color: #016D0C; }
.kids_restaurant dt { font-weight: bold; margin-top: 0.8em; }
.kids_restaurant dd { margin: 0.3em 0 0.5em 0.5em; }

/* ===== バナー画像 ===== */
.frexImg { max-width: 100%; height: auto; display: block; margin: 10px 0; }

/* ===== 過去の開催ボタン ===== */
.linkF li {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Crect width='18' height='18' rx='4' fill='%23006E0C'/%3E%3Cpath d='M13 9L7 13V5z' fill='%23FFF'/%3E%3C/svg%3E") no-repeat left calc(0.2em + 1px) / 18px 18px;
	padding:1px 0 0 22px;
	margin: 0 14px 0 auto;
}
.boxNormal {
    background: transparent;
    border: 1px solid #B6B955;
}
.boxNormal a,
.boxNormal span[lang="en"] {
    font-family: inherit;
}

/* ===== レスポンシブ（768px 一本化） ===== */
@media (max-width: 768px) {

  /* ヒーロー */
  .mainimg {
    padding: 24px 0 6px;
    background-size: auto 350px;
  }
  .kids_hero {
    min-height: 350px;
  }
  .kids_hero__date {
    bottom: 40px;
  }
  .kids_hero__people {
    bottom: 98px;
    height: 147px;
  }
  .kids_hero__people--left {
    left: 12px;
  }
  .kids_hero__people--right {
    right: 12px;
  }
  .kids_hero__mieti {
    top: 155px;
    width: 52px;
  }
  .kids_hero img {
    border-radius: 0;
  }

  /* ナビゲーション：縦並び＋左余白 */
  .kids_navigation ul {
    flex-direction: column;
    gap: 0;
    padding: 0;
  }
  .kids_navigation li {
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.16);
  }
  .kids_navigation li:last-child { border-bottom: none; }
  .kids_navigation li a {
    position: relative;
    justify-content: flex-start;
    min-height: 52px;
    padding: 14px 20px 14px 28px;
    font-size: 1em;
  }

  /* 概要・開催情報 */
  .kids_about { padding: 14px 0 6px; }
  .kids_about dt {
    float: none;
    clear: none;
    display: inline-block;
    width: auto;
    min-width: 70px;
    margin: 0 0 6px;
    padding: 2px 10px 3px;
  }
  .kids_about dd {
    padding-left: 0;
    margin: 0 0 14px;
  }
  .kids_event_info {
    display: block;
    margin: 0 0 28px;
    background: transparent;
    border-radius: 0;
    overflow: visible;
  }
  .kids_event_info dt {
    display: flex;
    min-width: 0;
    width: 100%;
    margin: 12px 0 0;
    padding: 12px 14px 11px;
    border-right: none;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    justify-content: flex-start;
    text-align: left;
  }
  .kids_event_info dt:first-child {
    margin-top: 0;
  }
  .kids_event_info dt:nth-last-of-type(1) {
    border-bottom: none;
  }
  .kids_event_info dd {
    margin: 0;
    padding: 12px 14px 14px;
    border: 2px solid #E4DF6A;
    border-top: none;
    border-radius: 0 0 8px 8px;
    background: #FFFEF4;
  }
  .kids_event_info dd:first-of-type {
    border-top: none;
    border-top-right-radius: 0;
  }
  .kids_event_info dd:not(:last-child) {
    margin-bottom: 0;
  }
  .kids_event_info dd:last-child {
    border-bottom: 2px solid #E4DF6A;
    border-bottom-right-radius: 8px;
  }

  /* 注意事項ボックス */
  .kids_caution {
    padding: 16px 16px 12px;
    border-radius: 8px;
    margin: 24px 0 4px;
  }
  .kids_caution h3 {
    margin-bottom: 12px;
  }
  .kids_caution li {
    padding: 10px 0;
    font-size: 0.87em;
    line-height: 1.6;
  }

  /* プログラムセクション */
  .kids_contents { padding: 20px 0 12px; }
  .kids_contents > p,
  .kids_contents > .kidsLst {
    font-size: 1em;
    line-height: 1.7;
  }

  /* カードグリッド：1列に */
  .kids_program_jizen,
  .kids_program_madoguchi {
    grid-template-columns: 1fr;
    gap: 22px;
    margin: 12px 0 20px;
  }
  .card_image { height: 100%; }
  .entry_type {
    top: 10px;
    left: 10px;
    max-width: calc(100% - 20px);
  }
  .entry_type__badge {
    padding: 4px 10px 5px;
    font-size: 0.8em;
  }
  .card_date {
    max-width: calc(100% - 20px);
    margin: -35px 10px 11px 10px;
    padding: 4px 10px 5px;
    font-size: 0.8em;
  }
  .kids_card h3 { font-size: 1em; margin: 14px 16px 8px; }
  .subject  { padding: 0 16px; margin-bottom: 10px; }
  .kyosai   { margin: 0 16px 8px 9px; }
  .ichiran  { font-size: 0.9em; margin: auto 16px 16px auto; }
  .ichiran a { height: 36px; padding: 0 14px 0 15px; }
  .kids_program_jizen .ichiran,
  .kids_program_madoguchi .ichiran {
    width: calc(100% - 32px);
    margin: auto 16px 16px;
  }
  .kids_program_jizen .ichiran a,
  .kids_program_madoguchi .ichiran a {
    width: 100%;
  }

  /* 詳細テーブル：SPではカード型に */
  .program_table_wrap {
    margin: 18px 0 28px;
  }
  .program_table,
  .program_table tbody,
  .program_table tr,
  .program_table td {
    box-sizing: border-box;
    display: block;
    width: 100%;
  }
  .program_table {
    border: none;
    background: transparent;
    font-size: 0.92em;
  }
  .program_table thead {
    display: none;
  }
  .program_table tbody tr {
    border: 1px solid #B9C99B;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 3px 10px rgba(1, 109, 12, 0.08);
    margin: 0 0 16px;
    overflow: hidden;
  }
  .program_table tbody tr:target {
    outline: 3px solid #C7D957;
    outline-offset: 0;
  }
  .program_table th,
  .program_table td {
    border: none;
    padding: 10px 14px;
  }
  .program_table td + td {
    border-top: 1px solid #E0E8CF;
  }
  .program_table--free .program_table_title,
  .program_table--free .program_table_content,
  .program_table--free .program_table_link,
  .program_table--free .program_table_contact {
    width: 100%;
  }
  .program_table td::before {
    display: block;
    color: #016D0C;
    font-weight: 700;
    font-size: 0.86em;
    margin-bottom: 3px;
  }
  .program_table_title {
    color: #FFF;
    font-size: 1.05em;
    line-height: 1.55;
    background: #006E0C;
  }
  .program_table_title::before {
    content: none;
  }
  .program_table_content::before {
    content: "プログラム内容";
  }
  .program_table_date::before {
    content: "開催期間";
  }
  .program_table_link::before {
    content: "関連URL";
  }
  .program_table_apply::before {
    content: "事前申込先";
  }
  .program_table_contact::before {
    content: "お問合せ先";
  }
  .program_table_subject {
    margin: 10px -14px -10px;
    padding: 8px 14px 10px;
    background: #fff;
    border-top: 1px solid #E0E8CF;
  }
  .program_table:not(.has-js-focus) tbody tr:target .program_table_subject,
  .program_table tbody tr.is-focused .program_table_subject {
    background: #FFF3B0;
  }
  .program_table_apply {
    text-align: left;
  }
  .program_apply {
    min-width: 124px;
  }
  .program_back {
    display: block;
    text-align: left;
  }
  .program_back a {
    width: fit-content;
    margin-top: 8px;
  }
  .program_back a:first-child {
    margin-top: 0;
  }
  .program_back__top::before {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Crect width='18' height='18' rx='4' fill='%23006E0C'/%3E%3Cpath d='M13 9L7 13V5z' fill='%23FFF'/%3E%3C/svg%3E") no-repeat center / contain;
  }

  /* お食事・休憩 */
  .kids_restaurant { padding: 14px 16px; border-radius: 8px; }

  /* 過去の開催ボタン */
  .linkF { gap: 8px; }
  .linkF li a { font-size: 1em; padding: 4px 14px; }
}
