@charset "utf-8";

html { font-size: 16px; }
@media screen and (max-width: 768px) { html { font-size: calc(12px + 4 * ((100vw - 320px) / 1120)); }}
html * { box-sizing: border-box; }

*{
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/*ブラウザの大きさで実行したりしなかったり*/
@media only screen and (max-width:900px){.br-sp {display:none;}}
@media only screen and (min-width:900px){.unbr-sp {display:none;}}
/*ブラウザの大きさで実行したりしなかったり終*/

body {
  margin: 0;
  width:100%;
}

/*
h1{
  font-size: 2.5rem;
  font-family: 'Montserrat';
  font-weight: normal;
  color: #444;
  text-align: center;
  margin: 2rem 0;
}
*/
/*位置調整*/
.zurasi1{
    margin: 0 auto;
    width: 95%;
}
/*位置調整終わり*/
/*文字の調整*/
.m-migi{text-align: right;}   /*右寄せ*/
.m-naka{text-align: center;}  /*真ん中*/
.m-hidari{text-align: left;}  /*左寄せ*/

.m-debu{ font-weight:bold; }  /*文字の太さ　太い*/
.m-futu{ font-weight:normal; }/*文字の太さ　普通*/
.m-yase{ font-weight:lighter }/*文字の太さ　細い*/

.m-tokudai {font-size: calc(20px + 30 * ((100vw - 320px) / 1120));}
.m-dai {font-size: calc(16px + 4 * ((100vw - 320px) / 1120));}
.m-chu {font-size: calc(12px + 4 * ((100vw - 320px) / 1120));}
.m-syou{font-size: calc(12px + 4 * ((100vw - 320px) / 1120));}

.tateue    {vertical-align: top;}    /*テーブル内縦の上寄せ*/
.tatechuou {vertical-align: middle; }/*テーブル内縦の中央寄せ*/

.font-ita{ font-family: "Brush Script MT" ;}
/*文字の調整終わり*/
/*見出しデザイン*/
.midasi1 {
  border-bottom: solid 5px #66ffff;
  position: relative;
}
.midasi1:after {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 5px #ff3300;
  bottom: -4px;
  width:calc(15% + 10 * ((100vw - 320px) / 1120));
}
/*見出しデザイン終わり*/
/*ヘッダー系*/
header{
        white-space: nowrap;
        height: 15vw;
}
.header-container { 
	width: 100%;
	position: absolute;
 }
.header-logo {
	font-size: calc(10px + 25 * ((100vw - 320px) / 1120));
	font-weight:900;
	color: #000000;
}
.header-container img {
	position: absolute;
	margin: 0 0 0 calc(0px + 15 * ((100vw - 320px) / 1120));
	width: calc(30px + 180 * ((100vw - 320px) / 1120));
	height: calc(30px + 180 * ((100vw - 320px) / 1120));
}
.float_clear{ clear: both; }
/*ヘッダー系終わり*/
/*トップのロゴ*/
.toplogo{
        margin: calc(40px - 10 * ((100vw - 320px) / 1120)) 0 0 calc(0px + 150 * ((100vw - 320px) / 1120));
        font-family: "Libre Baskerville", serif;
        font-weight: 900;
        font-style: normal;
        position: relative;
        z-index: 5;
}
.toplogo p {
        line-height: 90%;
	margin: 50px 0 5px 10vw;
}
.logomozi1{
        font-size: 25vw;
        color:red;
        text-shadow:3px 3px 0 #000,-3px 3px 0 #fff,-3px -3px 0 #fff,3px -3px 0 #fff;
}
.logomozi2{
        font-size: 7.5vw;
        text-shadow:2px 2px 0 #fff,-2px 2px 0 #fff,-2px -2px 0 #fff,2px -2px 0 #fff;
}
.logomozi3{
        font-size: 7.5vw;
        font-style:italic;
        text-shadow:2px 2px 0 #fff,-2px 2px 0 #fff,-2px -2px 0 #fff,2px -2px 0 #fff;
}
/*トップのロゴ終わり*/
/*数字カウント*/
@property --count {
        syntax: "<integer>";
        inherits: false;
        initial-value: 0;
}
.countUp {
        counter-set: countUp var(--count);
        animation: countUp 18.6s 1;
        animation-fill-mode: forwards;
        animation-timing-function: cubic-bezier(1, 0.4, 0.2, 1);
        font-variant-numeric: tabular-nums;
}
.countUp::after { content: counter(countUp);}
@keyframes countUp { 100% { --count: 20; } }
/*数字カウント終わり*/
/*右からループ*/
@keyframes infinity-scroll-left {
        from { transform: translateX(0); }
          to { transform: translateX(-100%); }
}
.scroll-infinity__wrap1 {
        display: flex;
        overflow: hidden;
        transform: rotate(-10deg);
        position: relative;
        margin: -22% 0 5% 0;
}
.scroll-infinity__wrap2 {
        display: flex;
        overflow: hidden;
        transform: rotate(0deg);
        position: relative;
        margin: -22% 0 0 0;
} 
.scroll-infinity__list {
        display: flex;
        list-style: none;
        padding: 0
}
.scroll-infinity__list--left { animation: infinity-scroll-left 20s infinite linear 0.5s both; }
.scroll-infinity__item { width:  calc(100vw / 5); }
.scroll-infinity__item>img {
        width:120%;
        border: 0.2rem dashed black;
}
/*右からループ終わり*/
/*左からループ*/
@keyframes infinity-scroll-right {
        from { transform: translateX(-100%); }
          to { transform: translateX(0%); }
}
.scroll-infinity__list--right{ animation :infinity-scroll-right 5s infinite linear 0.5s both; }
/*左からループ終わり*/
/*フェードイン*/
.fadeIn {
  transition: 1s;
  opacity: 0;
}

.fadeIn.animated {
  opacity: 1;
}
/*フェードイン終わり*/
/*あいさつ*/
.aisatu{
        position:relative;
        width:95%;
        height:400px;
        background:none;
}
.aisatu1{
        position:absolute;
        top:0px;
        left:calc(10px + 40 * ((100vw - 320px) / 1120));
        width:90%;
        height:100%;
        background:#C5E1A5;
}

.aisatu .a-box{
        position:absolute;
        top:30px;
        left:calc(50px + 40 * ((100vw - 320px) / 1120));
        width:90%;
        height:100%;
        background:#fff;
        padding:30px;
        line-height:24px;
        background-color:#ffffff;/*背景色*/
        border:1px solid #84c1ff;/*枠線*/
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);/*影*/
}

.aisatu h2{ text-align:right; }
.aisatu p{}
/*
.aisatu p{
  position:absolute;
  top:30px;
  left:calc(50px + 40 * ((100vw - 320px) / 1120));
  width:90%;
  height:100%;
  background:#fff;
  padding:30px;
  line-height:24px;
  background-color:#ffffff;
  border:1px solid #84c1ff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
*/
}
.aisatumozi1{}
.aisatumozi2{}

/*あいさつ終わり*/
/*受賞者一覧*/
  :root{
    --bg:#ffffff;
    --card-bg:#fbfdff;
    --muted:#666;
    --accent:#0b6efd;
    --badge-bg:#e8f0ff;
    --max-width:1200px;
    --radius:12px;
    --text: #111;
    --print-font: "Yu Gothic","Noto Sans JP", system-ui, sans-serif;
  }
  *{box-sizing:border-box}

  .award-section{
    max-width:var(--max-width);
    margin:0 auto 40px;
    padding:18px;
    border-radius:var(--radius);
    background:linear-gradient(180deg, rgba(11,110,253,0.03), transparent);
    border:1px solid rgba(11,110,253,0.06);
  }
  .award-section h2{
    display:flex;
    align-items:baseline;
    gap:12px;
    margin:0 0 12px;
    font-size:1.85rem;
  }
  .award-section .count{
    font-size:0.9rem;
    color:var(--muted);
    background:#f2f6ff;
    padding:4px 8px;
    border-radius:999px;
  }
  .controls{margin:8px 0 16px;}

  .award-grid{
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap:14px;
    margin:0 0 0 30px;
  }
  .award-card{
    background:var(--card-bg);
    padding:12px 2px;
    border-radius:0px;
    background:#4897D8;
    box-shadow:0 1px 6px rgba(12,24,40,0.04);
    transition:transform .12s ease, box-shadow .12s ease;
    display:flex;
    flex-direction:column;
    text-align:center;
    justify-content: center;
  }
/*
  .award-card:focus-within,
  .award-card:hover{
    transform:translateY(-4px);
    box-shadow:0 6px 18px rgba(12,24,40,0.08);
    outline: none;
  }
*/
  .card-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px;
    margin-bottom:8px;
  }
  .badge{
    display:inline-block;
    font-size:0.78rem;
    padding:6px 8px;
    border-radius:999px;
    background:var(--badge-bg);
    color:var(--accent);
    font-weight:600;
  }
  .name{margin:0;font-size:1.85rem;color:#fff; }
  .name2{margin:0;font-size:1.1rem;color:#fff; }
  .gyokan{line-height:2.0rem; }
  .kozin{ min-height:26px;}
  .kigyo{ min-height:80px; line-height:2.0rem; padding:5px;}

  @media (max-width:900px){
    .award-grid{grid-template-columns:repeat(2,1fr)}
  }
  @media (max-width:560px){
    .award-grid{grid-template-columns:1fr}
    .award-section{padding:14px}
  }
  @media print{
    body{background:white}
    .controls, .badge{display:none}
    .award-grid{display:block}
    .award-card{
      page-break-inside:avoid;
      border:0;
      box-shadow:none;
      background:transparent;
      padding:2px 0;
    }
    .award-section{border:0}
  }





/*受賞者一覧終わり*/
/*年表スクロール2*/
.nen{}
.nen button {
  background: transparent;
  border: none;
  cursor: pointer;
  outline: none;
}
.nenpyou { padding: 10px 0; }
.nenpyou .container { text-align: left; }
.nenpyou h2 { font-size: 1.3rem; }
.timeline {
  white-space: nowrap;
  overflow-x: hidden;
  /* margin: -60px auto; */
}
.timeline ol {
  width: 100vw;
  padding: 250px 0 250px 0;
  transition: all 0.5s;
}
.timeline ol li {
  position: relative;
  display: inline-block;
  list-style-type: none;
  width: 280px;/*年表バーの丸と丸の間の長さ*/
  height: 3px;
  background: #fff;
}
.timeline ol li:last-child { width: 300px; }
.timeline ol li:not(:first-child) {
  margin-left: 14px;
  background: #3366ff;
}
.timeline ol li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(100% + 1px);
  bottom: 0;
  width: 12px;
  height: 12px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: #f45b69;
}
.timeline ol li .youso {
  position: absolute;
  left: calc(100% + 7px);
  width: 550px;/*年表ボックスの幅*/
  height: auto !important;
  padding: 15px;
  font-size: 1rem;
  white-space: normal;
  color: white;
  background: #3366ff;
}

.timeline ol li .youso::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 0;
  height: 0;
  border-style: solid;
  background: #456990;
}
.timeline ol li:nth-child(odd) .youso {
  top: -16px;
  transform: translateY(-100%);
}
.timeline ol li:nth-child(odd) .youso::before {
  top: 100%;
  border-width: 8px 8px 0 0;
  border-color: white transparent transparent transparent;
  background: #456990;
}

.timeline ol li:nth-child(even) div { top: calc(100% + 16px); }
.timeline ol li:nth-child(even) div::before {
  top: -8px;
  border-width: 8px 0 0 8px;
  border-color: transparent transparent transparent white;
}
.timeline time {
  display: block;
  font-size: 2.0rem;
  font-weight: bold;
  margin-top: -15px;
  margin-bottom: 3px;
  color: #ffffff;
  font-style: italic;
  background: linear-gradient(transparent 60%, red 60%);
  /* transform: rotate(-2deg); */
}

.timeline time2 {
  display: block;
  font-size: 3.5rem;
  font-weight: bold;
  font-family: "Segoe Script", cursive;
  margin-top: 40px;
  margin-bottom: 0px;
  color: #ffffff;
  /*background: linear-gradient(transparent 60%, red 60%);*/
  /* transform: rotate(-2deg); */
}
.lineArrow {
  width:90%;
  height: 35px;
  border-bottom: 20px solid red;
  border-right: 20px solid red;
   /*傾きを調節*/
  transform: skew(45deg);
  /*下線矢印をテキストに合わせてうまい具合にはめる*/
  margin: -20px 0 50px -25px;
}


.timeline .arrows {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
}
.timeline .arrows .arrow__prev { margin-right: 20px; }
.timeline .disabled { opacity: 0.5; }

.nen-container{ display: flex; }

.timeline .arrows img {
  width: 45px;
  height: 45px;
}
.timeline .sbox{
  height: 150px;    
  overflow-y: auto;
  overflow-x: hidden;
}

.timeline .sbox::-webkit-scrollbar {
  background: #000;
}
.timeline .sbox::-webkit-scrollbar-thumb {
  background-color: white;
  border: 2px solid red;
}
.timeline .sbox::-webkit-scrollbar-thumb:hover {
  background-color: red;
}

.timeline table {             /*テーブル設定*/
  border-collapse: none;
  margin: 0 0 0 5px;
  padding: 0;
  width: 100%;
}

.timeline table tr {
  padding: 0;
}

.timeline table th{
  width: 35px;
  padding: 0;
  text-align: right;
  vertical-align: top;
  border-bottom: 1px solid #fff;
}

.timeline table td{
  border-bottom: 1px solid #fff;
   padding: 0 5px 0 5px;
}


.timeline img{
	margin: auto 0;
        padding: auto;
	width: 130px;
	height: 100px;
}
@media screen and (max-width: 599px) {
  .timeline { margin: 0; }
  .timeline ol,
  .timeline ol li {
    width: 95%;
  }

  .timeline ol {
    padding: 10px 0;
    transform: none !important;
  }

  .timeline ol li {
    display: block;
    height: auto;
    background: transparent;
  }

  .timeline ol li:first-child { 
    margin-top: 25px;
    margin-left: auto;
    width: 105%;
  }

  .timeline ol li:not(:first-child) { margin-left: auto; }

  .timeline ol li .youso {
    position: static;
    width: 90%;
    height: auto !important;
    margin: 0 auto 25px;
  }

  .timeline ol li:nth-child(odd) .youso { transform: none;}

  .timeline ol li:nth-child(odd) .youso::before,
  .timeline ol li:nth-child(even) .youso::before {
    left: 50%;
    top: 100%;
    transform: translateX(-50%);
    border: none;
    border-left: 1px solid white;
    height: 25px;
  }

  .timeline ol li:last-child,
  .timeline ol li:nth-last-child(2) .youso::before,
  .timeline ol li:not(:last-child)::after,
  .timeline .arrows { display: none; }
}
/*年表スクロール2終わり*/

/*ギャラリーとか*/

.g-box{
        position:relative;
        width:95%;
        height:20%;
}

.g-box p{
  position:absolute;
  font-size:calc(1.0rem + 27.0 * ((100vw - 320px) / 1120));
  color:red;
  top:calc(150px + 190 * ((100vw - 320px) / 1120));
  left:calc(10px + 90 * ((100vw - 320px) / 1120));
}
.g-sankaku{
  position:absolute;
  top:0px;
  left:calc(50px + 40 * ((100vw - 320px) / 1120));
  width:90%;
  height:100%;
  background:#33ccff;
  clip-path: polygon(0 10%, 25% 100%, 100% 0);
}
@media(max-width: 768px) {.g-sankaku{height:50%;}}

.hexagon3__wrapper {
	display: flex;
	flex-wrap: wrap;
	--wrapper-width: 70%;
	width: var(--wrapper-width);/* 全体の大きさを変更できる */
	margin-right: calc(0 * var(--wrapper-width) / 3 * 0.25 * 2 - var(--wrapper-width) / 3 * 0.05 * 2);
	margin-top: 5%;
}

.hexagons {
	width: calc(100% / 6);
}



.honeycomb-area {
	display: flex;
	justify-content: center;
}
.hexagon-3_hexagon {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	aspect-ratio: 200 / 173;/* 正六角形になる比率 */
	background-color: #333;
	clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
}
.hexagon-3_hexagon span {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 90%;
	height: 90%;
	background-color: #fff;
	clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
}

.hexagon-3_hexagon:hover{
 background-color: red;
 box-shadow:0px 0px 100px #666;
 transition : 0.5s;/*ふわっとさせる指定*/
 transform:scale(1.2,1.2);
}

/* 2行目と3行目の六角形を上にずらして縁を重ねる */
.hexagon-3_hexagon:nth-of-type(2),
.hexagon-3_hexagon:nth-of-type(3){
	margin-top: 6%;
}
/* 中央の列を下にずらす */
.honeycomb-area .hexagons-center,
.honeycomb-area .hexagons-4,
.honeycomb-area .hexagons-6 {
	transform: translateY(calc(100% / -6));
}
/* 2列目と3列目の六角形を左にずらして縁を重ねる */
.honeycomb-area .hexagons-center,
.honeycomb-area .hexagons-right,
.honeycomb-area .hexagons-4,
.honeycomb-area .hexagons-5,
.honeycomb-area .hexagons-6{
	margin-left: calc(-50% / 8 * 0.25 - 100% / 8 * 0.05);
}
@media(max-width: 768px) {
   .g-sankaku{ left:calc(10px + 40 * ((100vw - 320px) / 1120));}

   .hexagon3__wrapper {
	--wrapper-width: 100%;
        margin-right: calc(-1.5 * var(--wrapper-width) / 3 * 0.25 * 2 - var(--wrapper-width) / 3 * 0.05 * 2);
        margin-top:7%;
   }
   .honeycomb-area .hexagons-center,
   .honeycomb-area .hexagons-right,
   .honeycomb-area .hexagons-4,
   .honeycomb-area .hexagons-5,
   .honeycomb-area .hexagons-6 {
        margin-left: calc(-100% / 8 * 0.25 - 100% / 7 * 0.05);
   }

}
/*ギャラリーとか終わり*/
/*ポップアップ*/

.tmb {
  width: 100%;
}
.tmb_img {
  width: 200%;
  height: auto;
}
.tmb_img:hover {
  cursor: pointer;
}
.popup {
  z-index: 100;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform: scale(0);
  background-color: rgba(0, 0, 0, 0.8);
  opacity: 0;
  transition: opacity 0.3s, transform 0s 0.3s;
}
.popup__btn {
  display: block;
  z-index: 13;
  position: absolute;
  top: 1vh;
  right: 1vh;
  width: 5vh;
  height: 5vh;
  cursor: pointer;
}
.popup__btn::before,
.popup__btn::after {
  position: absolute;
  top: 50%;
  width: 100%;
  height: 2px;
  margin-top: -1px;
  background-color: #fff;
  content: '';
}
.popup__btn::before {
  transform: rotate(45deg);
}
.popup__btn::after {
  transform: rotate(-45deg);
}
.popup__btnarea {
  z-index: 12;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.popup__img {
  z-index: 11;
  position: absolute;
  top: 5%;
  left: 5%;
  width: 90%;
  height: 90%;
}
.popup__img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
input[type="checkbox"] {
  display: none;
}
input[type="checkbox"]:checked ~ .popup {
  transform: scale(1);
  opacity: 1;
  transition: opacity 0.3s;
}

/*ポップアップ終わり*/

/*サンキュー文字*/



.TYtext {
      text-align: right;
      margin-top: calc(-10px - 60 * ((100vw - 320px) / 1120));;
      /* font-family: 'Great Vibes', cursive; */
      font-family: "Segoe Script", cursive;
      font-size: clamp(2.0rem, 6vw, 5em); /* レスポンシブ対応 */
      font-weight: 600;
      color: #333;
      position: relative;
      overflow: hidden;
      white-space: nowrap;
      /* transform: rotate(-5deg);*/ /* 右斜めに傾ける */

      /* ゴールドグラデーション */
      background: linear-gradient(45deg, #d4af37, #ffd700, #ffec8b);
      -webkit-background-clip: text;
      -webkit-text-fill-color: red;

      opacity: 0;
    }

    /* 書いていくようなアニメーション */
    .TYtext span {
      opacity: 0;
      display: inline-block;
    }

    /* フェードイン */
    .fade-in {
      animation: fadeIn 0.3s forwards;
    }

    /* 文字ごとに遅延 */
    .TYtext span:nth-child(1) { animation-delay: 0.1s; }
    .TYtext span:nth-child(2) { animation-delay: 0.2s; }
    .TYtext span:nth-child(3) { animation-delay: 0.3s; }
    .TYtext span:nth-child(4) { animation-delay: 0.4s; }
    .TYtext span:nth-child(5) { animation-delay: 0.5s; }
    .TYtext span:nth-child(6) { animation-delay: 0.6s; }
    .TYtext span:nth-child(7) { animation-delay: 0.7s; }
    .TYtext span:nth-child(8) { animation-delay: 0.8s; }
    .TYtext span:nth-child(9) { animation-delay: 0.9s; }
    .TYtext span:nth-child(10) { animation-delay: 1.0s; }
    .TYtext span:nth-child(11) { animation-delay: 1.1s; }
    .TYtext span:nth-child(12) { animation-delay: 1.2s; }
    .TYtext span:nth-child(13) { animation-delay: 1.3s; }
    .TYtext span:nth-child(14) { animation-delay: 1.4s; }
    .TYtext span:nth-child(15) { animation-delay: 1.5s; }
    .TYtext span:nth-child(16) { animation-delay: 1.6s; }
    .TYtext span:nth-child(17) { animation-delay: 1.7s; }
    .TYtext span:nth-child(18) { animation-delay: 1.8s; }
    .TYtext span:nth-child(19) { animation-delay: 1.9s; }
    .TYtext span:nth-child(20) { animation-delay: 2.0s; }
    .TYtext span:nth-child(21) { animation-delay: 2.1s; }
    .TYtext span:nth-child(22) { animation-delay: 2.2s; }
    .TYtext span:nth-child(23) { animation-delay: 2.3s; }

    @keyframes fadeIn {
      to { opacity: 1; }
    }

    /* shineエフェクト */
    .TYtext::after {
      content: "";
      position: absolute;
      clip-path: polygon(0 2%, 0% 100%, 100% 0);
      top: 0;
      left: -100%;
      width: 80%;
      height: 100%;
      background: linear-gradient(120deg, transparent, rgba(230,180,34,0.2), transparent);
      animation: shine 2s ease-in-out 2.5s forwards;
      animation-delay: 2.5s; /* フェードインの後に実行 */
    }

    @keyframes shine {
      to { left: 120%; }
    }


/*サンキュー文字終わり*/
