@charset "UTF-8";
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
font,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
  font-family: "Noto Sans JP", sans-serif;
  border: 0;
  font-size: 100%;
  margin: 0;
  outline: 0;
  padding: 0;
  list-style-type: none;
  text-rendering: optimizelegibility;
}

img {
  max-width: 100%;
}

html,
body {
  font-family: "Zen Maru Gothic", "M PLUS Rounded 1c", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  color: #475569;
  background-color: #FDFBF7;
  -webkit-font-smoothing: antialiased;
}

a {
  text-decoration: none;
  color: inherit;
}

span.strong {
  font-weight: bold;
  font-size: 1.1em;
}

h1 {
  font-weight: bold;
}

*:focus {
  outline: none;
}

canvas {
  background-color: rgba(233, 225, 2, 0);
  width: 100%;
  height: 100%;
  display: block;
}

select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  text-align: center;
}

.wp-content {
  line-height: 1.8;
  letter-spacing: 0.03em;
}
.wp-content p:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) {
  margin-bottom: 1.5em;
}
.wp-content p:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *):last-child {
  margin-bottom: 0;
}
.wp-content h2:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) {
  font-size: 1.5rem;
  font-weight: 800;
  color: #334155;
  margin-top: 2em;
  margin-bottom: 1em;
  line-height: 1.4;
}
.wp-content h2:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *):first-child {
  margin-top: 0;
}
.wp-content h3:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) {
  font-size: 1.25rem;
  font-weight: 800;
  color: #334155;
  margin-top: 1.5em;
  margin-bottom: 0.75em;
  line-height: 1.4;
}
.wp-content h3:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *):first-child {
  margin-top: 0;
}
.wp-content h4:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) {
  font-size: 1.1rem;
  font-weight: 700;
  color: #334155;
  margin-top: 1.25em;
  margin-bottom: 0.5em;
  line-height: 1.4;
}
.wp-content h4:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *):first-child {
  margin-top: 0;
}
.wp-content img:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 1.5em auto;
  border-radius: 12px;
}
.wp-content ul:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *),
.wp-content ol:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) {
  margin: 1em 0 1.5em;
  padding-left: 1.5em;
}
.wp-content ul:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) li,
.wp-content ol:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) li {
  margin-bottom: 0.5em;
}
.wp-content ul:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) {
  list-style-type: disc;
}
.wp-content ol:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) {
  list-style-type: decimal;
}
.wp-content strong:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *),
.wp-content b:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) {
  font-weight: 700;
  color: #334155;
}
.wp-content a:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) {
  color: #00A896;
  text-decoration: underline;
}
.wp-content a:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *):hover {
  color: #007D71;
}
.wp-content blockquote:not(.exhibition-list *):not(.info-list *):not(.craft-card *):not(.category-tabs *):not(.custom-button *) {
  margin: 1.5em 0;
  padding: 1em 1.5em;
  border-left: 4px solid #00A896;
  background: #F8FAFC;
  border-radius: 0 8px 8px 0;
  font-style: italic;
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(12px);
  border-bottom: 4px dashed #CCFBF1;
  transition: all 0.3s ease;
  overflow: visible;
}
.site-header.header-hero-page {
  transform: translateY(-100%);
}
.site-header.scrolled {
  transform: translateY(0);
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}
.site-header.menu-open {
  background: #FFF;
}

.header-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 72px;
  overflow: visible;
  position: relative;
}
@media (width >= 900px) {
  .header-inner {
    padding: 0 32px;
    height: 80px;
  }
}

.header-logo {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}
.header-logo:hover .logo-icon {
  transform: scale(1.02);
}
.header-logo:hover .logo-icon img {
  transform: rotate(5deg);
}

.logo-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}
@media (width >= 900px) {
  .logo-icon {
    width: 56px;
    height: 56px;
  }
}
.logo-icon img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
  transition: transform 0.3s ease;
}

.logo-text {
  font-size: 1.25rem;
  font-weight: 900;
  color: #334155;
  letter-spacing: -0.02em;
}
@media (width >= 900px) {
  .logo-text {
    font-size: 1.5rem;
  }
}
.logo-text .logo-year {
  color: #00A896;
}

.desktop-nav {
  display: none;
}
@media (width >= 900px) {
  .desktop-nav {
    display: block;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }
}
.desktop-nav .nav-list {
  display: flex;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.desktop-nav .nav-list li a {
  display: block;
  padding: 10px 20px;
  border-radius: 999px;
  font-weight: 700;
  color: #475569;
  text-decoration: none;
  transition: all 0.2s ease;
}
.desktop-nav .nav-list li a:hover {
  background: #F1F5F9;
  color: #334155;
  transform: scale(1.05);
}
.desktop-nav .nav-list li.current-menu-item a, .desktop-nav .nav-list li.current_page_item a {
  background: #334155;
  color: #FFF;
}

.header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.header-ndp-logo {
  display: none;
}
@media (width >= 900px) {
  .header-ndp-logo {
    display: flex;
    align-items: center;
    transition: all 0.2s ease;
  }
  .header-ndp-logo:hover {
    transform: scale(1.05);
  }
  .header-ndp-logo img {
    height: 56px;
    width: auto;
  }
}

.language-switcher .pll-switcher-select {
  padding: 8px 16px;
  border-radius: 12px;
  background: #334155;
  color: #FFF;
  font-size: 0.75rem;
  font-weight: 700;
  border: 2px solid #334155;
  box-shadow: 4px 4px 0 #CBD5E1;
  cursor: pointer;
  transition: all 0.2s ease;
  text-transform: uppercase;
}
.language-switcher .pll-switcher-select:hover {
  transform: translateY(2px);
  box-shadow: 2px 2px 0 #CBD5E1;
}

.menu-btn {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  background: #FFF;
  border: 2px solid #E2E8F0;
  border-radius: 12px;
  cursor: pointer;
  gap: 5px;
  transition: all 0.2s ease;
}
@media (width >= 900px) {
  .menu-btn {
    display: none;
  }
}
.menu-btn span {
  display: block;
  width: 20px;
  height: 2px;
  background: #334155;
  border-radius: 2px;
  transition: all 0.3s ease;
}
.menu-btn:hover {
  background: #F0FDFA;
  border-color: #00A896;
}
.menu-btn.active {
  background: #00A896;
  border-color: #00A896;
}
.menu-btn.active span {
  background: #FFF;
}
.menu-btn.active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.menu-btn.active span:nth-child(2) {
  opacity: 0;
}
.menu-btn.active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.mobile-nav {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(16px);
  padding: 0 24px 24px;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease, visibility 0.3s ease;
  z-index: 999;
  border-bottom: 4px dashed #CCFBF1;
}
.mobile-nav.active {
  max-height: 450px;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  padding: 24px;
}
.mobile-nav .mobile-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}
.mobile-nav .mobile-nav-list li {
  border-bottom: 2px dashed #E2E8F0;
}
.mobile-nav .mobile-nav-list li:last-child {
  border-bottom: none;
}
.mobile-nav .mobile-nav-list li a {
  display: block;
  padding: 16px;
  font-size: 1.125rem;
  font-weight: 700;
  color: #334155;
  text-decoration: none;
  transition: all 0.2s ease;
}
.mobile-nav .mobile-nav-list li a:hover {
  color: #00A896;
}
.mobile-nav .mobile-nav-list li.current-menu-item a, .mobile-nav .mobile-nav-list li.current_page_item a {
  color: #00A896;
}
.mobile-nav .mobile-nav-logo {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 2px solid #E2E8F0;
  text-align: center;
}
.mobile-nav .mobile-nav-logo a {
  display: inline-block;
  transition: all 0.2s ease;
}
.mobile-nav .mobile-nav-logo a:hover {
  transform: scale(1.05);
}
.mobile-nav .mobile-nav-logo img {
  height: 64px;
  width: auto;
}

#space-for-header {
  height: 72px;
}
@media (width >= 900px) {
  #space-for-header {
    height: 80px;
  }
}
.hero-page #space-for-header {
  display: none;
}

body.admin-bar .site-header {
  top: 32px;
}
@media screen and (width <= 782px) {
  body.admin-bar .site-header {
    top: 46px;
  }
}
body.admin-bar .mobile-nav {
  top: 104px;
}
@media screen and (width <= 782px) {
  body.admin-bar .mobile-nav {
    top: 118px;
  }
}

footer {
  padding: 30px 10px;
  font-weight: bold;
  text-align: center;
  color: #475569;
  background-color: #FDFBF7;
  line-height: 1.3;
}
footer .site-info img {
  margin-bottom: 10px;
}
footer .site-info a {
  font-weight: 100;
  font-size: 0.8em;
}
@media (width >= 900px) {
  footer {
    text-align: left;
    padding: 30px 70px;
  }
}

.max-limit {
  max-width: 1200px;
  margin: auto;
  padding: 0 10px;
}
@media (width >= 900px) {
  .max-limit {
    padding: 0;
  }
}

.section-padding {
  padding: 20px 5px;
}
@media (width >= 900px) {
  .section-padding {
    padding: 60px;
  }
}

.space-for-report {
  height: 90px;
}
@media (width >= 900px) {
  .space-for-report {
    height: 120px;
  }
}

.space-for-header {
  height: 70px;
}

.section-space {
  width: 100%;
  height: 60px;
}
@media (width >= 900px) {
  .section-space {
    height: 100px;
  }
}

.section-space-de {
  width: 100%;
  height: 100px;
}
@media (width >= 900px) {
  .section-space-de {
    height: 160px;
  }
}

.section-space-phone {
  width: 100%;
  height: 0;
}
@media (width >= 900px) {
  .section-space-phone {
    height: 100px;
  }
}

.section-space-mini {
  width: 100%;
  height: 10px;
}
@media (width >= 900px) {
  .section-space-mini {
    height: 50px;
  }
}

.showmore {
  display: block;
  text-align: center;
  margin: 20px auto;
  max-width: 400px;
  font-size: 1em;
  color: #fff;
  border: 1px solid #fff;
  border-radius: 999px;
  padding: 4px 0;
  cursor: pointer;
  transition: all 0.3s ease;
}
.showmore:hover {
  background-color: #fff;
  color: #000;
  transition: all 0.3s ease;
}

a.btn_map {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
  height: 50px;
  position: relative;
  background: #FFD166;
  border: 1px solid #FFD166;
  border-radius: 30px;
  box-sizing: border-box;
  padding: 0 45px 0 25px;
  color: #334155;
  font-size: 18px;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-align: left;
  text-decoration: none;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
a.btn_map::before {
  content: "";
  width: 8px;
  height: 8px;
  border: 0;
  border-top: 2px solid #334155;
  border-right: 2px solid #334155;
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 25px;
  margin-top: -6px;
}
a.btn_map:hover {
  background: #F5C242 !important;
  color: #334155 !important;
  border-color: #F5C242 !important;
  opacity: 1 !important;
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
  filter: none !important;
}

.content-box {
  background: #FFF;
  border: 1px solid rgba(182, 182, 182, 0.4);
  color: #333;
  padding: 10px;
  border-radius: 15px;
  text-align: left;
  width: 100%;
  font-size: 12px;
  line-height: 1.3;
  cursor: pointer;
}
.content-box p {
  line-height: 1.5;
}
@media (width >= 900px) {
  .content-box {
    padding: 15px;
    width: 100%;
    max-width: calc(50% - 48px);
    display: flex;
    flex-direction: column;
  }
}
.content-box > .top {
  display: flex;
  gap: 10px;
}
.content-box > .top > img {
  display: block;
  width: 70px;
  height: 70px;
}
@media (width >= 900px) {
  .content-box > .top > img {
    width: 70px;
    height: 70px;
  }
}
.content-box > .top .ja {
  font-size: 1.3em;
  font-weight: bold;
}
.content-box > .top .en {
  font-size: 1em;
}
@media (width >= 900px) {
  .content-box > .middle > p {
    font-size: 1em !important;
  }
}
.content-box > .middle > p {
  margin: 12px 0;
}
@media (width >= 900px) {
  .content-box > .bottom {
    display: flex;
    justify-content: space-between;
    margin-top: auto;
  }
}
.content-box > .bottom .comp {
  line-height: 1;
  place-content: end;
}
.content-box > .bottom .comp .ja {
  font-weight: bold;
  margin-bottom: 5px;
}
.content-box > .bottom .comp .en {
  display: none;
}
@media (width >= 900px) {
  .content-box > .bottom .comp .en {
    display: block;
  }
}
.content-box > .bottom a {
  vertical-align: bottom;
  display: flex;
  align-items: end;
}
@media (width >= 900px) {
  .content-box > .bottom a > img {
    height: 24px;
  }
}
.content-box > .bottom a > img {
  height: 20px;
}

.flex-wrapper {
  border-radius: 15px;
  padding: 15px 10px;
  background: #FFF;
  border: none;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  color: #00133d;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: all 0.3s ease;
}
.flex-wrapper:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12);
}
@media (width >= 900px) {
  .flex-wrapper {
    flex-direction: row;
    justify-content: flex-start;
    padding: 20px 15px;
    gap: 15px;
    text-align: left;
  }
}
.flex-wrapper:nth-child(2n) {
  flex-direction: column;
}
@media (width >= 900px) {
  .flex-wrapper:nth-child(2n) {
    flex-direction: row !important;
  }
}
.flex-wrapper .image {
  flex-shrink: 0;
}
.flex-wrapper .image img {
  max-width: 60px;
  width: 60px;
  height: 60px;
  margin: auto;
  display: block;
  transition: transform 0.3s ease;
  -o-object-fit: contain;
  object-fit: contain;
}
@media (width >= 900px) {
  .flex-wrapper .image img {
    max-width: 80px;
    width: 80px;
    height: 80px;
  }
}
.flex-wrapper .image img:hover {
  transform: scale(1.05);
}
.flex-wrapper .text {
  max-width: 600px;
  margin: auto;
  width: 100%;
  flex: 1;
}
.flex-wrapper .text h3 {
  font-size: 1em !important;
  margin-top: 0;
  margin-bottom: 8px;
  background: linear-gradient(45deg, #00A896, #00D4AA);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  position: relative;
}
@media (width >= 900px) {
  .flex-wrapper .text h3 {
    font-size: 1.2em !important;
  }
}
.flex-wrapper .text h3::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 2px;
  background: linear-gradient(90deg, #00A896, #00D4AA);
  border-radius: 2px;
}
@media (width >= 900px) {
  .flex-wrapper .text h3::after {
    left: 0;
    transform: none;
    width: 40px;
    height: 3px;
  }
}
.flex-wrapper .text p {
  line-height: 1.4;
  text-align: left;
  font-size: 0.75em !important;
  color: #444;
  padding-top: inherit;
}
@media (width >= 900px) {
  .flex-wrapper .text p {
    font-size: 0.85em !important;
    padding-top: 0.5em;
  }
}
@media (width >= 900px) {
  .flex-wrapper .text {
    margin: unset;
  }
}

.partner-box {
  background-color: #fff;
  border: 1px solid rgba(182, 182, 182, 0.4);
  overflow: hidden;
  color: #F8F1D7;
  padding: 40px 20px;
  border-radius: 20px;
  flex-wrap: wrap;
  justify-content: center;
  display: flex;
  gap: 50px;
  align-items: center;
}
.partner-box img {
  width: 300px;
  display: block;
  margin: auto;
}

.archive-card {
  display: flex;
  flex-direction: column;
  padding: 24px;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border-radius: 20px;
  border: 3px solid #143c8b;
  box-shadow: 6px 6px 0 #143c8b;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@media (width >= 900px) {
  .archive-card {
    padding: 28px;
  }
}

.archive-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.archive-year {
  font-size: 1.5rem;
  font-weight: 900;
  color: #143c8b;
}
@media (width >= 900px) {
  .archive-year {
    font-size: 1.75rem;
  }
}

.archive-year-line {
  flex: 1;
  height: 3px;
  background: #143c8b;
  border-radius: 999px;
}

.archive-title {
  font-size: 1.125rem;
  font-weight: 900;
  color: #334155;
  line-height: 1.4;
  margin-bottom: 16px;
}
@media (width >= 900px) {
  .archive-title {
    font-size: 1.25rem;
  }
}

.archive-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.archive-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 12px;
  font-size: 0.85rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s ease;
}
.archive-link svg {
  flex-shrink: 0;
}

.archive-link-event {
  background: #E5F5F3;
  color: #00A896;
}
.archive-link-event:hover {
  background: #00A896;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 4px 4px 0 rgba(0, 168, 150, 0.3);
}

.archive-link-report {
  background: #FEF3C7;
  color: #D97706;
}
.archive-link-report:hover {
  background: #F59E0B;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 4px 4px 0 rgba(245, 158, 11, 0.3);
}

.archive-empty {
  text-align: center;
  padding: 60px 20px;
  color: #64748B;
  font-size: 1rem;
  font-weight: 600;
}

.dialog h4 {
  font-size: 1em;
}
@media (width >= 900px) {
  .dialog h4 {
    font-size: 1.5em;
  }
}
.dialog {
  text-align: left;
}
.dialog ul {
  font-size: 0.5em;
}
.dialog .name-list {
  margin-bottom: 10px;
  font-size: 1em;
  display: flex;
  gap: 10px;
  flex-direction: column;
}
.dialog .name-list span {
  font-weight: bold;
}
.dialog .name-list .name {
  font-size: 1.4em;
  font-weight: bold;
}
.dialog .flex-counter {
  gap: 10px;
  justify-content: center;
  align-items: flex-start;
  margin: 10px 0;
}
.dialog .flex-counter img {
  max-width: 400px;
  margin: 0 auto;
  display: block;
  width: 100%;
}
@media (width >= 900px) {
  .dialog .flex-counter {
    margin: 30px 0;
    display: flex;
    font-size: 15px !important;
    gap: 50px;
    align-items: start;
  }
}

.dialog-box {
  background-color: #FFFAE3;
  color: #333;
  text-align: left;
  cursor: default !important;
  border: none;
  margin: auto;
  max-width: calc(100% - 20px);
  max-height: calc(100dvh - 20px);
}
.dialog-box p {
  font-size: 12px !important;
}
@media (width >= 900px) {
  .dialog-box p {
    font-size: 15px !important;
  }
}
.dialog-box::backdrop {
  background-color: rgba(0, 0, 0, 0.5);
}
@media (width >= 900px) {
  .dialog-box {
    max-width: 900px !important;
    max-height: 80svh;
    margin: auto;
    border-radius: 15px;
    font-size: 12px;
  }
}
.dialog-box {
  padding: 0;
}
.dialog-box .dialog-wrapper {
  padding: 15px;
}
@media (width >= 900px) {
  .dialog-box .dialog-wrapper {
    padding: 38px 64px 0;
  }
}
@media (width >= 900px) {
  .dialog-box {
    max-width: calc(50% - 45px);
  }
}
@media (width >= 900px) {
  .dialog-box .top {
    display: flex;
    gap: 20px;
  }
}
.dialog-box .top > img {
  display: block;
  width: 70px;
  height: 70px;
  margin-bottom: 10px;
}
@media (width >= 900px) {
  .dialog-box .top > img {
    width: 70px;
    height: 70px;
  }
}
.dialog-box .top .ja {
  font-size: 1.3em;
  font-weight: bold;
}
.dialog-box .top .en {
  font-size: 1em;
}
@media (width >= 900px) {
  .dialog-box .middle > p {
    font-size: 1em !important;
  }
}
.dialog-box .middle .ja p {
  margin-bottom: 5px !important;
}
@media (width >= 900px) {
  .dialog-box .middle .ja p {
    margin-bottom: 15px !important;
  }
}
.dialog-box .middle .en p {
  line-height: 1.3;
  font-size: 0.8em;
}
@media (width >= 900px) {
  .dialog-box .middle img {
    max-width: 40%;
  }
}
.dialog-box .middle img {
  max-height: 200px;
  height: auto;
  display: block;
  aspect-ratio: auto;
  -o-object-fit: contain;
  object-fit: contain;
}
@media (width >= 900px) {
  .dialog-box .middle .flex {
    display: flex;
    gap: 30px;
  }
  .dialog-box .middle .flex img {
    width: auto;
    max-height: 200px;
    height: auto;
    margin: 0;
  }
}
.dialog-box .middle {
  margin: 12px 0;
  border-bottom: 1px solid #aeaeae;
  padding-bottom: 30px;
}
@media (width >= 900px) {
  .dialog-box .bottom {
    display: flex;
    gap: 7px;
    justify-content: space-between;
    margin: 10px 0;
  }
}
.dialog-box .bottom .comp {
  display: flex;
  flex-direction: column;
  line-height: 1;
  place-content: end;
}
.dialog-box .bottom .comp .ja {
  font-weight: bold;
  margin-bottom: 5px !important;
}
.dialog-box .bottom .comp .en {
  font-size: 0.8em;
  margin-bottom: 15px !important;
}
@media (width >= 900px) {
  .dialog-box .bottom img {
    height: 30px;
    margin-bottom: 0 !important;
  }
}
.dialog-box .bottom img {
  margin-bottom: 8px !important;
  height: 40px;
}
.dialog-box .member {
  padding: 10px 10px 30px;
  color: white;
}
@media (width >= 900px) {
  .dialog-box .member {
    padding: 20px 50px;
  }
}
.dialog-box .member .heading {
  font-weight: bold;
}
.dialog-box .member .leader {
  font-size: 1em;
}
.dialog-box .member .mbmer-list {
  font-size: 0.8em;
}
.dialog-box .member .mbmer-list p {
  font-size: 0.8em !important;
}
.dialog-box .closeBtn {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 30px;
  height: 30px;
  background-color: transparent;
  background-image: url("../image/single/x.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  border: none;
  cursor: pointer;
}
@media (width >= 900px) {
  .dialog-box .closeBtn {
    top: 47px;
    right: 70px;
  }
}

.three-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  margin: 20px 0;
}
@media (width >= 900px) {
  .three-list {
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
  }
}
.three-list .item {
  background: rgb(255, 255, 255);
  border-radius: 20px;
  padding: 30px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
}
.three-list .item:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}
.three-list .item h3 {
  font-size: 24px;
  color: #11357F;
  margin-bottom: 20px;
  text-align: center;
  position: relative;
  padding-bottom: 15px;
  line-height: 1.2;
}
.three-list .item h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 3px;
  background: linear-gradient(90deg, #8DC220, #5AC1DF);
  border-radius: 2px;
}
.three-list .item p {
  font-size: 16px;
  color: #333;
  text-align: left;
}

.key-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin: 20px 0;
}
@media (width >= 900px) {
  .key-list {
    gap: 15px;
  }
}

.content-list {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
}
@media (width >= 900px) {
  .content-list {
    gap: 30px;
  }
}

.partner-list {
  margin: 20px 0;
}

#news-swiper {
  width: 100%;
  position: absolute;
  top: 0;
}
#news-swiper .swiper-wrapper {
  margin-bottom: 20px;
}
@media (width >= 900px) {
  #news-swiper .swiper-wrapper {
    margin-bottom: 60px;
  }
}
#news-swiper .swiper-slide {
  width: 100%;
}
#news-swiper .swiper-slide img {
  width: 100%;
  aspect-ratio: 16/7;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 40px 20px;
  box-sizing: border-box;
  border: 5px solid rgb(255, 255, 255);
  box-shadow: 0 0 10px 0 rgba(150, 150, 150, 0.3);
}
@media (width >= 900px) {
  #news-swiper .swiper-slide img {
    aspect-ratio: 16/7;
    border-radius: 60px 30px;
    border: 10px solid rgb(242, 242, 242);
  }
}
#news-swiper .swiper-slide img {
  display: block;
}
#news-swiper .info {
  text-align: left;
  margin-top: 10px;
  color: rgb(0, 22, 58);
  font-size: 10px;
}
@media (width >= 900px) {
  #news-swiper .info {
    border-radius: 30px;
    font-size: 15px;
  }
}
#news-swiper .info .title {
  font-size: 1.5em;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-weight: bold;
  /* ブラウザがサポートしていない場合のフェールセーフ */
}
#news-swiper .info .time-cat {
  display: flex;
}
#news-swiper .info .date {
  display: inline-block;
  padding: 2px 10px;
}
#news-swiper .info .category {
  background-color: #fb0;
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
}

.exhibition-list {
  max-width: 1200px;
  margin: 0 auto;
  text-align: left;
}

.exhibition-header {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 32px;
}
@media (width >= 900px) {
  .exhibition-header {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
  }
}

.exhibition-count {
  color: #475569;
  font-weight: 700;
  margin-top: 8px;
}

.exhibition-search {
  position: relative;
  width: 100%;
  max-width: 320px;
}

.search-icon {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: #475569;
  pointer-events: none;
}

.search-input {
  box-sizing: border-box;
  width: 100%;
  padding: 12px 16px 12px 48px;
  border: 2px solid #E2E8F0;
  border-radius: 12px;
  font-size: 1rem;
  font-weight: 500;
  background: #FFF;
  transition: all 0.2s ease;
}
.search-input::-moz-placeholder {
  color: #94A3B8;
}
.search-input::placeholder {
  color: #94A3B8;
}
.search-input:focus {
  outline: none;
  border-color: #00A896;
  box-shadow: 0 0 0 4px rgba(0, 168, 150, 0.1);
}

.category-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 32px;
  max-width: 360px;
  margin-inline: auto;
}
@media (width >= 900px) {
  .category-tabs {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
    max-width: none;
  }
}

.category-tab {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 3px solid #E2E8F0;
  background: #FFF;
  color: #475569;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  width: 100px;
  box-shadow: 0 0 0 #CCFBF1;
}
@media (width >= 900px) {
  .category-tab {
    padding: 12px 16px;
    width: auto;
    gap: 8px;
    border-radius: 16px;
  }
}
.category-tab .tab-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
  border: 3px solid #FFF;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}
@media (width >= 900px) {
  .category-tab .tab-icon {
    width: 56px;
    height: 56px;
  }
}
.category-tab .tab-label {
  font-size: 0.75rem;
  font-weight: 900;
  text-align: center;
  line-height: 1.2;
}
@media (width >= 900px) {
  .category-tab .tab-label {
    font-size: 0.875rem;
  }
}
.category-tab:hover:not(.active) {
  background: #EEF2FF;
  border-color: #143c8b;
  transform: translate(-4px, -4px);
  box-shadow: 6px 6px 0 #143c8b;
}
.category-tab:hover:not(.active) .tab-icon {
  transform: scale(1.1) rotate(5deg);
}
.category-tab.active {
  background: #FFF;
  color: #143c8b;
  border-color: #143c8b;
  transform: translate(-4px, -4px);
  box-shadow: 6px 6px 0 #143c8b;
}
.category-tab.active .tab-icon {
  border-color: #FFF;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.category-tab.active .tab-label {
  color: #143c8b;
  font-weight: 800;
}

.exhibition-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
@media (width >= 640px) {
  .exhibition-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (width >= 900px) {
  .exhibition-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

.craft-card {
  position: relative;
  background: #FFF;
  border-radius: 24px;
  padding: 24px;
  border: 2px solid #143c8b;
  box-shadow: 6px 6px 0 #143c8b;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  display: flex;
  flex-direction: column;
  min-height: 200px;
}
.craft-card:hover {
  transform: translateY(-8px) rotate(1deg);
  box-shadow: 8px 12px 0 #143c8b;
}

.card-sticker {
  position: absolute;
  top: -8px;
  right: 16px;
  background: #FFD166;
  color: #334155;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 900;
  transform: rotate(3deg);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.1);
}

.card-content {
  flex: 1;
}

.card-category {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  margin-bottom: 12px;
}
.card-category .cat-icon {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
}
.card-category.cat-red {
  background: #FEE2E2;
  color: #DC2626;
}
.card-category.cat-blue {
  background: #DBEAFE;
  color: #2563EB;
}
.card-category.cat-yellow {
  background: #FEF3C7;
  color: #D97706;
}
.card-category.cat-green {
  background: #D1FAE5;
  color: #059669;
}
.card-category.cat-purple {
  background: #EDE9FE;
  color: #7C3AED;
}

.card-title {
  font-size: 1.125rem;
  font-weight: 900;
  color: #334155;
  line-height: 1.4;
  margin-bottom: 16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.card-footer {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 16px;
  border-top: 2px dashed #E5E7EB;
}

.card-org-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  background: #F1F5F9;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #475569;
}
.card-org-icon img {
  filter: invert(31%) sepia(10%) saturate(1089%) hue-rotate(176deg) brightness(93%) contrast(88%);
}

.card-org {
  font-size: 0.875rem;
  font-weight: 700;
  color: #475569;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.exhibition-modal {
  padding: 0;
  border: none;
  border-radius: 24px;
  max-width: 1100px;
  width: calc(100% - 40px);
  max-height: 85vh;
  max-height: 85dvh;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  cursor: default;
}
.exhibition-modal[open] {
  display: flex;
  flex-direction: column;
}
.exhibition-modal::backdrop {
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  cursor: pointer;
}

.modal-content {
  padding: 32px;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

.modal-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  border: none;
  background: #F1F5F9;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #475569;
  transition: all 0.2s ease;
}
.modal-close:hover {
  background: #E2E8F0;
  color: #334155;
}

.modal-header {
  margin-bottom: 24px;
}

.modal-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.modal-category {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 700;
}
.modal-category .modal-cat-icon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
}
.modal-category.cat-red {
  background: #FEE2E2;
  color: #DC2626;
}
.modal-category.cat-blue {
  background: #DBEAFE;
  color: #2563EB;
}
.modal-category.cat-yellow {
  background: #FEF3C7;
  color: #D97706;
}
.modal-category.cat-green {
  background: #D1FAE5;
  color: #059669;
}
.modal-category.cat-purple {
  background: #EDE9FE;
  color: #7C3AED;
}

.modal-number {
  background: #FFD166;
  color: #334155;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 900;
}

.modal-title {
  font-size: 1.5rem;
  font-weight: 900;
  color: #334155;
  line-height: 1.3;
}
@media (width >= 900px) {
  .modal-title {
    font-size: 1.75rem;
  }
}

.modal-info {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: #F8FAFC;
  border-radius: 16px;
  margin-bottom: 24px;
}

.modal-info-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  background: #00A896;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFF;
}
.modal-info-icon img {
  filter: brightness(0) invert(1);
}

.modal-info-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.modal-info-value {
  font-size: 1rem;
  font-weight: 700;
  color: #334155;
}

.modal-description {
  color: #475569;
  margin-bottom: 24px;
}

.modal-image {
  width: 100%;
  max-height: 420px;
  -o-object-fit: contain;
  object-fit: contain;
  border-radius: 16px;
  margin-bottom: 24px;
}

.modal-exhibitor-section {
  margin-top: 24px;
  padding: 20px;
  background: #F8FAFC;
  border-radius: 16px;
  border: 2px solid #E2E8F0;
  box-shadow: 4px 4px 0 #E5E7EB;
}

.modal-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  font-weight: 800;
  color: #334155;
  margin-bottom: 8px;
}
.modal-section-title svg {
  color: #00A896;
}
.modal-section-title img {
  filter: invert(47%) sepia(82%) saturate(450%) hue-rotate(131deg) brightness(94%) contrast(101%);
}

.modal-exhibitor-header {
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 2px dashed #E2E8F0;
}

.modal-exhibitor-name {
  font-size: 1rem;
  font-weight: 700;
  color: #334155;
  margin: 0;
}

.modal-exhibitor-details {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (width >= 900px) {
  .modal-exhibitor-details {
    flex-direction: row;
    align-items: center;
  }
}

.modal-members {
  flex: 3;
  min-width: 0;
}

.modal-members-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  font-weight: 800;
  color: #334155;
  margin-bottom: 12px;
}
.modal-members-title svg {
  color: #00A896;
}
.modal-members-title img {
  filter: invert(47%) sepia(82%) saturate(450%) hue-rotate(131deg) brightness(94%) contrast(101%);
}

.modal-leader {
  font-size: 1rem;
  font-weight: 800;
  color: #334155;
  margin-bottom: 8px;
}

.modal-members-list {
  color: #475569;
  font-size: 0.875rem;
  line-height: 1.8;
}
.modal-members-list p {
  margin: 0;
}
.modal-members-list ul,
.modal-members-list ol {
  margin: 0;
  padding-left: 1.25em;
}

.modal-company {
  flex: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: #FFF;
  border-radius: 12px;
  border: 1px solid #E2E8F0;
  align-self: center;
}

.modal-company-link {
  display: inline-block;
  transition: opacity 0.2s ease;
}
.modal-company-link:hover {
  opacity: 0.8;
}

.modal-company-logo {
  max-width: 100%;
  max-height: 150px;
  width: auto;
  height: auto;
  -o-object-fit: contain;
  object-fit: contain;
}
@media (width >= 900px) {
  .modal-company-logo {
    max-width: 250px;
    max-height: 180px;
  }
}

.exhibition-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 20px;
  text-align: center;
  color: #475569;
}
.exhibition-empty .empty-icon {
  margin-bottom: 16px;
  opacity: 0.5;
}
.exhibition-empty p {
  font-size: 1.125rem;
  font-weight: 700;
}

.news-list-block .news-list-items {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media (width >= 900px) {
  .news-list-block .news-list-items {
    gap: 1.25rem;
  }
}
.news-list-block .news-item {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1rem 1.25rem;
  background: #fff;
  border-radius: 16px;
  border: 3px solid #E2E8F0;
  box-shadow: 6px 6px 0 #E2E8F0;
  text-decoration: none;
  color: #333;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.news-list-block .news-item:hover {
  transform: translate(-4px, -4px);
  box-shadow: 10px 10px 0 #E2E8F0;
}
@media (width >= 900px) {
  .news-list-block .news-item {
    padding: 1.25rem 1.5rem;
  }
}
.news-list-block .news-date {
  flex-shrink: 0;
  color: #CBD5E1;
  font-size: 1rem;
  font-weight: 900;
}
@media (width >= 900px) {
  .news-list-block .news-date {
    font-size: 1.1rem;
  }
}
.news-list-block .news-title {
  flex: 1;
  font-size: 0.95rem;
  font-weight: 700;
  color: #334155;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (width >= 900px) {
  .news-list-block .news-title {
    font-size: 1rem;
  }
}

.sponsor-list {
  margin: 2rem 0;
}

.sponsor-list__title {
  font-size: 1.25rem;
  font-weight: 900;
  color: #334155;
  text-align: center;
  margin-bottom: 1.5rem;
}
@media (width >= 900px) {
  .sponsor-list__title {
    font-size: 1.5rem;
  }
}

.sponsor-list__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}
@media (width >= 900px) {
  .sponsor-list__grid {
    gap: 1.5rem;
  }
}

.sponsor-list__item {
  flex-shrink: 0;
}

.sponsor-list__image-wrapper {
  aspect-ratio: 3/2;
  background: #fff;
  border-radius: 16px;
  border: 3px solid #E2E8F0;
  box-shadow: 6px 6px 0 #E2E8F0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.sponsor-list__image-wrapper:hover {
  transform: translate(-4px, -4px);
  box-shadow: 10px 10px 0 #E2E8F0;
}

.sponsor-list__image {
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
}

.sponsor-list--large .sponsor-list__item {
  width: 100%;
}
@media (width >= 600px) {
  .sponsor-list--large .sponsor-list__item {
    width: calc(33.333% - 1rem);
  }
}
.sponsor-list--large .sponsor-list__image-wrapper {
  padding: 24px;
}
@media (width >= 900px) {
  .sponsor-list--large .sponsor-list__image-wrapper {
    padding: 32px;
  }
}

.sponsor-list--medium .sponsor-list__item {
  width: calc(50% - 0.5rem);
}
@media (width >= 600px) {
  .sponsor-list--medium .sponsor-list__item {
    width: calc(25% - 0.75rem);
  }
}
.sponsor-list--medium .sponsor-list__image-wrapper {
  padding: 20px;
}
@media (width >= 900px) {
  .sponsor-list--medium .sponsor-list__image-wrapper {
    padding: 24px;
  }
}

.sponsor-list--small .sponsor-list__item {
  width: calc(33.333% - 0.667rem);
}
@media (width >= 600px) {
  .sponsor-list--small .sponsor-list__item {
    width: calc(20% - 0.8rem);
  }
}
.sponsor-list--small .sponsor-list__image-wrapper {
  padding: 16px;
  border-radius: 10px;
}
@media (width >= 900px) {
  .sponsor-list--small .sponsor-list__image-wrapper {
    padding: 20px;
  }
}

.video-hero-wrapper {
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  aspect-ratio: 16/7;
  border-radius: 24px;
  overflow: hidden;
  background: #1a1a2e;
  border: 3px solid #E2E8F0;
  box-shadow: 6px 6px 0 #E2E8F0;
}
@media (width >= 900px) {
  .video-hero-wrapper {
    max-width: 1000px;
  }
}

.video-hero-video,
.hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.hero-image-wrapper {
  position: relative;
  width: 100%;
  max-width: 90%;
  margin: 0 auto;
  aspect-ratio: 16/7;
  border-radius: 24px;
  overflow: hidden;
  background: #1a1a2e;
  border: 3px solid #E2E8F0;
  box-shadow: 6px 6px 0 #E2E8F0;
}
@media (width >= 900px) {
  .hero-image-wrapper {
    max-width: 1000px;
  }
}

.top-hero-logo {
  position: absolute;
  left: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 16/7;
  -o-object-fit: cover;
  object-fit: cover;
  box-sizing: border-box;
  box-shadow: 0 0 10px 0 rgba(150, 150, 150, 0.3);
  border-radius: 24px;
  z-index: 2;
}

.video-hero-wrapper--youtube {
  aspect-ratio: 16/9;
}

.video-hero-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 90%;
  -o-object-fit: contain;
  object-fit: contain;
  z-index: 2;
}

.custom-button {
  display: block;
  margin: 24px 0;
}
.custom-button--left {
  text-align: left;
}
.custom-button--center {
  text-align: center;
}
.custom-button--right {
  text-align: right;
}

.custom-button__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  background: #fff;
  color: #334155;
  border-radius: 16px;
  border: 3px solid #E2E8F0;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 6px 6px 0 #E2E8F0;
}
.custom-button__link:hover {
  transform: translate(-4px, -4px);
  box-shadow: 10px 10px 0 #E2E8F0;
}

.custom-button--orange .custom-button__link {
  background: #FFD166;
  color: #334155;
  border-color: #FFD166;
  box-shadow: 6px 6px 0 rgba(255, 209, 102, 0.4);
}
.custom-button--orange .custom-button__link:hover {
  box-shadow: 10px 10px 0 rgba(255, 209, 102, 0.4);
}

.custom-button__icon {
  flex-shrink: 0;
}

#hero-section {
  background-color: #FDFBF7;
  overflow: hidden;
  text-align: center;
  position: relative;
  width: 100%;
  height: 90vh;
  min-height: 600px;
}
@media (width >= 900px) {
  #hero-section {
    height: 100vh;
  }
}
#hero-section .bg-svgs {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
}
#hero-section .bg-svgs div > svg {
  display: none;
}
#hero-section .bg-svgs .top-left {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 80%;
  height: 80vw;
  max-height: 40%;
  background-color: #00A896;
  border-radius: 0 0 999999999px;
}
@media (width >= 900px) {
  #hero-section .bg-svgs .top-left {
    height: 20%;
    max-height: 40%;
  }
}
#hero-section .bg-svgs .top-right {
  position: absolute;
  content: "";
  width: 100%;
  height: 80vw;
  max-height: 40%;
  background-color: #00A896;
  border-radius: 50vw 0 0;
  bottom: 0;
  right: 0;
}
@media (width >= 900px) {
  #hero-section .bg-svgs .top-right {
    max-height: unset;
    width: 60%;
    height: 60%;
  }
}
#hero-section .container {
  position: absolute;
  top: 0;
  width: calc(100% - 40px);
  height: 70%;
  margin: 20px 20px 0;
  z-index: 100;
}
@media (width >= 900px) {
  #hero-section .container {
    height: 90%;
    width: 60%;
    left: 5%;
    margin: 0;
  }
}
#hero-section .container video {
  position: absolute;
  width: 100%;
  height: calc(100% - 80px);
  bottom: 0;
  left: 0;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 60px 20px;
}
#hero-section .container .logo {
  position: absolute;
  top: -10px;
  left: -10px;
  width: 130px;
  height: auto;
}
@media (width >= 900px) {
  #hero-section .container .logo {
    width: 230px;
    height: auto;
    top: 30px;
    left: -20px;
  }
}
#hero-section #hero-text {
  position: absolute;
  width: 100%;
  height: calc(30% - 20px);
  bottom: 0;
  text-align: left;
  color: white;
}
@media (width >= 900px) {
  #hero-section #hero-text {
    right: 2.5%;
    bottom: 13%;
    width: 30%;
  }
}
#hero-section #hero-text .wrapper {
  width: 80%;
  position: absolute;
  top: 43%;
  left: 50%;
  height: -moz-fit-content;
  height: fit-content;
  transform: translate(-50%, -50%);
}
@media (width >= 900px) {
  #hero-section #hero-text .wrapper {
    width: 100%;
    top: 50%;
  }
}
#hero-section #hero-text .heading {
  font-weight: bold;
  font-size: 17px;
  line-height: 1.3;
  margin-bottom: 5px;
}
@media (width >= 900px) {
  #hero-section #hero-text .heading {
    font-size: 1.7vw;
  }
}
#hero-section #hero-text .line {
  font-size: 13px;
}
@media (width >= 900px) {
  #hero-section #hero-text .line {
    font-size: 1.3vw;
  }
}

#particles-bg {
  position: absolute;
  top: 0;
  pointer-events: none;
  width: 100%;
  height: 100vh;
}

#main-top-section {
  background-color: #FDFBF7;
  overflow: hidden;
  text-align: center;
  position: relative;
  width: 100%;
  height: calc(220px + 43.75vw);
}
@media (width >= 900px) {
  #main-top-section {
    height: calc(130px + 43.75vw);
  }
}
@media (width >= 1150px) {
  #main-top-section {
    height: calc(200px + 38.0625vw) !important;
  }
}
#main-top-section .bg-svgs {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
}
#main-top-section .bg-svgs div > svg {
  display: none;
}
#main-top-section .bg-svgs .top-left {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 80%;
  height: 80vw;
  max-height: 40%;
  background-color: #00A896;
  border-radius: 0 0 999999999px;
}
@media (width >= 900px) {
  #main-top-section .bg-svgs .top-left {
    height: 20%;
    max-height: 40%;
  }
}
#main-top-section .bg-svgs .top-right {
  position: absolute;
  content: "";
  width: 100%;
  height: 80vw;
  max-height: 40%;
  background-color: #00A896;
  border-radius: 15vw 0 0;
  bottom: 0;
  right: 0;
}
@media (width >= 900px) {
  #main-top-section .bg-svgs .top-right {
    max-height: unset;
    width: 98%;
    height: 30%;
  }
}
#main-top-section .container {
  position: absolute;
  top: 70px;
  width: calc(100% - 40px);
  height: 70%;
  margin: 20px 20px 0;
  z-index: 100;
}
@media (width >= 1150px) {
  #main-top-section .container {
    margin: 50px 0 0 !important;
  }
}
@media (width >= 900px) {
  #main-top-section .container {
    height: 90%;
    width: 70%;
    left: 15%;
    margin: 20px 0 0;
  }
}
#main-top-section .container .logo {
  position: absolute;
  top: -10px;
  left: -10px;
  width: 100px;
  height: auto;
  z-index: 10;
}
@media (width >= 900px) {
  #main-top-section .container .logo {
    width: 230px;
    height: auto;
    left: -20px;
  }
}

#page-top-section {
  background-color: #FDFBF7;
  overflow: hidden;
  text-align: center;
  position: relative;
  width: 100%;
  height: calc(140px + 43.75vw);
}
@media (width >= 900px) {
  #page-top-section {
    height: calc(130px + 43.75vw);
  }
}
@media (width >= 1150px) {
  #page-top-section {
    height: calc(200px + 38.0625vw) !important;
  }
}
#page-top-section .bg-svgs {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
}
#page-top-section .bg-svgs div > svg {
  display: none;
}
#page-top-section .bg-svgs .top-left {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 80%;
  height: 80vw;
  max-height: 40%;
  background-color: #00A896;
  border-radius: 0 0 999999999px;
}
@media (width >= 900px) {
  #page-top-section .bg-svgs .top-left {
    height: 20%;
    max-height: 40%;
  }
}
#page-top-section .bg-svgs .top-right {
  position: absolute;
  content: "";
  width: 100%;
  height: 80vw;
  max-height: 40%;
  background-color: #00A896;
  border-radius: 50vw 0 0;
  bottom: 0;
  right: 0;
}
@media (width >= 900px) {
  #page-top-section .bg-svgs .top-right {
    max-height: unset;
    width: 60%;
    height: 60%;
  }
}
#page-top-section .container {
  position: absolute;
  top: 0;
  width: calc(100% - 40px);
  height: 70%;
  margin: 20px 20px 0;
  z-index: 100;
}
@media (width >= 900px) {
  #page-top-section .container {
    top: 30px;
    width: 80%;
    left: calc(10% - 5px);
  }
}
#page-top-section .container .thumbnail > img {
  aspect-ratio: 16/7;
  position: absolute;
  width: 100%;
  height: auto;
  top: 66px;
  box-sizing: border-box;
  border: 5px solid rgb(255, 255, 255);
  box-shadow: 0 0 10px 0 rgba(150, 150, 150, 0.3);
  left: 0;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 60px 20px;
}
#page-top-section .container .thumbnail > video {
  aspect-ratio: 16/7;
  position: absolute;
  width: 100%;
  height: auto;
  top: 66px;
  box-sizing: border-box;
  left: 0;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 60px 20px;
}
#page-top-section .container .logo {
  position: absolute;
  top: -10px;
  left: -10px;
  width: 100px;
  height: auto;
}
@media (width >= 900px) {
  #page-top-section .container .logo {
    width: 230px;
    height: auto;
    top: 30px;
    left: -20px;
  }
}

.top-flex {
  display: flex;
  flex-direction: column-reverse;
}
@media (width >= 900px) {
  .top-flex {
    flex-direction: column;
  }
}

.single-post {
  background: linear-gradient(180deg, #F0FDFA 0%, #fff 100%);
}

.post-content-section {
  padding: 40px 0 80px;
}
@media (width >= 900px) {
  .post-content-section {
    padding: 60px 0 100px;
  }
}

.post-article {
  max-width: 800px;
  margin: 0 auto;
  background: #fff;
  border-radius: 24px;
  padding: 40px 24px;
  border: 3px solid #E2E8F0;
  box-shadow: 6px 6px 0 #E2E8F0;
}
@media (width >= 900px) {
  .post-article {
    padding: 60px;
  }
}

.post-header {
  margin-bottom: 40px;
  padding-bottom: 24px;
  border-bottom: 3px dashed #CCFBF1;
}

.post-title {
  font-size: 1.75rem;
  font-weight: 900;
  color: #334155;
  line-height: 1.4;
  margin: 0 0 16px;
}
@media (width >= 900px) {
  .post-title {
    font-size: 2.25rem;
  }
}

.post-meta {
  display: flex;
  align-items: center;
  gap: 16px;
}

.post-thumbnail {
  margin-top: 2em;
}
.post-thumbnail img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

.post-date {
  font-size: 0.875rem;
  color: #64748B;
  font-weight: 500;
}

.post-content h1, .post-content h2, .post-content h3, .post-content h4, .post-content h5, .post-content h6 {
  color: #334155;
  font-weight: 900;
  margin: 1.5em 0 0.75em;
  line-height: 1.4;
}
.post-content h2 {
  font-size: 1.5rem;
  padding-bottom: 0.5em;
  border-bottom: 3px dashed #CCFBF1;
}
@media (width >= 900px) {
  .post-content h2 {
    font-size: 1.75rem;
  }
}
.post-content h3 {
  font-size: 1.25rem;
  color: #00A896;
}
@media (width >= 900px) {
  .post-content h3 {
    font-size: 1.5rem;
  }
}
.post-content p {
  color: #475569;
  line-height: 2;
  margin-bottom: 1.5em;
  font-size: 1rem;
}
@media (width >= 900px) {
  .post-content p {
    font-size: 1.125rem;
  }
}
.post-content ul, .post-content ol {
  color: #475569;
  line-height: 2;
  margin: 1.5em 0;
  padding-left: 1.5em;
}
.post-content li {
  margin-bottom: 0.5em;
}
.post-content a {
  color: #00A896;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.post-content a:hover {
  color: #007D71;
}
.post-content img {
  max-width: 100%;
  height: auto;
  border-radius: 16px;
  margin: 1.5em 0;
}
.post-content .wp-block-image {
  margin: 2em 0;
}
.post-content .wp-block-image img {
  border: 3px solid #E2E8F0;
  box-shadow: 6px 6px 0 #E2E8F0;
}
.post-content .wp-block-image figcaption {
  text-align: center;
  color: #64748B;
  font-size: 0.875rem;
  margin-top: 0.75em;
}
.post-content blockquote {
  border-left: 4px solid #00A896;
  padding-left: 1.5em;
  margin: 2em 0;
  font-style: italic;
  color: #64748B;
}
.post-content .wp-block-buttons {
  margin: 2em 0;
}
.post-content .wp-block-button__link {
  background: #00A896;
  color: #fff;
  padding: 12px 24px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  display: inline-block;
  transition: all 0.2s ease;
  border: 3px solid #00A896;
  box-shadow: 4px 4px 0 #007D71;
}
.post-content .wp-block-button__link:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 #007D71;
  color: #fff;
}
.post-content table {
  width: 100%;
  margin: 2em 0;
  border-collapse: collapse;
  border: 2px solid #E2E8F0;
  border-radius: 12px;
  overflow: hidden;
}
.post-content table th, .post-content table td {
  padding: 12px 16px;
  border: 1px solid #E2E8F0;
  text-align: left;
}
.post-content table th {
  background: #F0FDFA;
  font-weight: 700;
  color: #334155;
}
.post-content table td {
  color: #475569;
}
.post-content table tr:nth-child(even) td {
  background: #F8FAFC;
}
.post-content iframe {
  max-width: 100%;
  margin: 2em 0;
  border-radius: 16px;
  aspect-ratio: 16/9;
}
.post-content .wp-block-embed {
  margin: 2em 0;
}

.page-links {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 3px dashed #CCFBF1;
  display: flex;
  gap: 8px;
  justify-content: center;
}
.page-links span {
  display: inline-block;
  padding: 8px 16px;
  background: #F0FDFA;
  border-radius: 8px;
  color: #00A896;
  font-weight: 700;
}

#body-section {
  background-color: #3033c8;
  background-image: url("../image/single/bg-wall-bb.svg");
  background-size: cover;
  background-position: top;
  background-repeat: repeat-y;
  position: relative;
  min-height: 100dvh;
}
#body-section::before {
  content: "";
  position: absolute;
  top: -24px;
  left: 0;
  width: 100%;
  height: 27px;
  background-image: url("../image/single/wave.png");
  background-position: bottom;
  background-repeat: repeat-x;
  animation: background-position-x-animation 100s infinite linear;
  background-size: 800px;
  z-index: 0;
}

@keyframes background-position-x-animation {
  0% {
    background-position-x: 0%;
  }
  100% {
    background-position-x: 1600px;
  }
}
.blue-bg {
  background-color: #11357F;
  background-image: url("../image/single/dot-bg-tc.png");
  background-size: 500px;
  min-height: 100dvh;
}

#report-body {
  background-color: white;
  margin: 0 7px;
  border-radius: 10px;
  max-width: 1200px;
  box-sizing: border-box;
}
@media (width >= 900px) {
  #report-body {
    margin: 0 auto;
    max-width: min(1200px, 100% - 80px);
  }
}

.entry-content {
  margin: 0 auto;
  max-width: min(1000px, 90%);
  overflow: hidden;
  font-weight: 400;
  padding: clamp(20px, 5vw, 70px);
  color: #F8F1D7;
  line-height: 1.8;
}
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  font-weight: 700;
  margin: 2em 0 1em;
  line-height: 1.4;
}
.entry-content h1 {
  font-size: clamp(1.4rem, 3.5vw, 2rem);
}
.entry-content h2 {
  font-size: clamp(1.3rem, 3.2vw, 1.8rem);
}
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  font-size: clamp(1.2rem, 3vw, 1.6rem);
}
.entry-content p {
  margin: 0 0 1.2em;
  overflow-wrap: break-word;
}
.entry-content ul,
.entry-content ol {
  margin: 1.5em 0;
  padding-left: 2em;
  list-style-position: outside;
}
.entry-content ol,
.entry-content ul,
.entry-content li {
  list-style-type: revert !important;
}
.entry-content li {
  margin-bottom: 0.5em;
  display: list-item;
}
.entry-content li ul {
  margin: 0.5em 0;
}
.entry-content li ol {
  margin: 0.5em 0;
}
.entry-content .wp-block-image {
  margin: 2em 0;
}
.entry-content .wp-block-image img {
  box-sizing: border-box;
  margin: 0 auto;
  display: block;
  border: 2px dashed var(--sub-mier-brown);
  padding: 4px;
  max-width: 100%;
  height: auto !important;
  transition: transform 0.2s ease;
}
.entry-content .wp-block-image img:hover {
  transform: scale(1.01);
}
.entry-content .wp-block-image figcaption {
  margin-top: 1em;
  font-size: 0.9rem;
  text-align: center;
}
.entry-content table {
  width: 100%;
  margin: 2em 0;
  border-collapse: collapse;
  border: 2px solid #b6b6b6;
  background-color: rgba(47, 151, 183, 0.4);
}
.entry-content table th,
.entry-content table td {
  padding: 1em;
  border: 1px dashed rgba(232, 232, 232, 0.8);
}
.entry-content table th {
  background-color: rgba(0, 0, 0, 0.1);
}
.entry-content blockquote {
  margin: 2em 0;
  padding: 1.5em 2em;
  border-left: 4px solid #e1e1e1;
  background-color: rgba(255, 255, 255, 0.05);
  border-radius: 0 8px 8px 0;
}
.entry-content blockquote p {
  margin: 0 0 1em;
}
.entry-content blockquote p:last-child {
  margin-bottom: 0;
}
.entry-content blockquote cite {
  display: block;
  margin-top: 1em;
  color: #d9d9d9;
  font-size: 0.9em;
  font-style: italic;
  text-align: right;
}
.entry-content pre {
  margin: 1.5em 0;
  padding: 1em;
  font-size: 0.9rem;
  background-color: rgba(0, 0, 0, 0.2);
  border-radius: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.entry-content a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: opacity 0.2s ease;
}
.entry-content a:hover {
  opacity: 0.8;
}
.entry-content iframe {
  max-width: 100%;
  margin: 2em 0;
  aspect-ratio: 16/9;
}
.entry-content .wp-block-buttons {
  margin: 2em 0;
}
.entry-content .wp-block-buttons a {
  text-decoration: none;
}
.entry-content .wp-block-calendar {
  margin: 2em 0;
}
.entry-content .wp-block-calendar table th {
  padding: 0.5em;
  font-weight: 400;
  background: var(--sub-mier-brown);
  color: antiquewhite;
  border: 1px solid var(--sub-mier-brown);
}
.entry-content .wp-block-calendar table td {
  padding: 0.5em;
  border: 1px solid var(--sub-mier-brown);
}

.category-page {
  background-color: #ffee59;
  color: #000;
  padding: 5px 10px;
  font-weight: bold;
  display: inline-block;
  font-size: 0.9rem;
  line-height: 1.4;
  margin-bottom: 5px;
}
@media (width >= 900px) {
  .category-page {
    font-size: 1.5rem;
    padding: 5px 20px;
  }
}

.date-time {
  text-align: right;
  margin-bottom: 30px !important;
}

.title-wrapper {
  text-align: center;
}

.title-top {
  color: #EC7927;
  font-weight: bold;
  text-align: center;
  font-size: 30px;
  margin-top: 40px;
}

h2.title {
  color: #EC7927;
  font-weight: bold;
  font-size: 25px;
  position: relative;
  font-family: "M PLUS 1p" !important;
  line-height: 1.2;
  margin: auto;
  width: -moz-fit-content;
  width: fit-content;
}
h2.title::before {
  content: "";
  position: absolute;
  display: none;
  bottom: -0.2vw;
  left: 10%;
  width: 80%;
  height: max(10px, 0.7vw);
  background-image: url("../image/single/wave-title.svg");
  background-size: auto;
  background-position: center;
}
@media (width >= 900px) {
  h2.title::before {
    display: none;
  }
}
@media (width >= 900px) {
  h2.title {
    font-size: 46px;
    text-align: left;
    margin: unset;
    line-height: 1;
  }
}

h3.subtitle {
  text-align: center;
  color: #EC7927;
  font-weight: bold;
  font-size: 13px;
}
@media (width >= 900px) {
  h3.subtitle {
    font-size: 20px;
    text-align: left;
    margin: unset;
  }
}

.title > h1 {
  margin-bottom: 20px;
  margin: 10px 0 0 !important;
  font-weight: bold;
}

.arhive-project {
  padding: 10px 0;
  color: rgb(74, 74, 74);
}
.arhive-project ul {
  display: flex;
  flex-flow: row wrap;
  gap: 10px;
}
@media (width >= 900px) {
  .arhive-project ul li {
    width: calc(50% - 25px);
  }
}
.arhive-project ul li {
  width: 100%;
}
.arhive-project ul li a {
  display: block;
  width: 100%;
  padding: 10px;
  background-color: white;
  border-radius: 5px;
  box-sizing: border-box;
}

.archive-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
@media (width >= 900px) {
  .archive-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

@media (width <= 640px) {
  .archive-grid {
    grid-template-columns: 1fr;
  }
}
.archive-page {
  background: #FDFBF7;
}

.archive-hero {
  padding: 60px 20px 20px;
  text-align: center;
}
@media (width >= 900px) {
  .archive-hero {
    padding: 80px 40px 30px;
  }
}

.archive-hero-title {
  font-size: 2rem;
  font-weight: 900;
  color: #334155;
  margin-bottom: 8px;
}
@media (width >= 900px) {
  .archive-hero-title {
    font-size: 2.5rem;
  }
}

.archive-hero-subtitle {
  font-size: 1rem;
  font-weight: 700;
  color: #475569;
}
@media (width >= 900px) {
  .archive-hero-subtitle {
    font-size: 1.25rem;
  }
}

.archive-list-section {
  padding: 40px 20px 60px;
}
@media (width >= 900px) {
  .archive-list-section {
    padding: 60px 40px 80px;
  }
}

.archive-container {
  max-width: 1200px;
  margin: 0 auto;
}

.front-archive-section {
  padding: 60px 20px;
  background: #F8FAFC;
}
@media (width >= 900px) {
  .front-archive-section {
    padding: 80px 40px;
  }
}
.front-archive-section .section-container {
  max-width: 1200px;
  margin: 0 auto;
}
.front-archive-section .section-header {
  text-align: center;
  margin-bottom: 40px;
}
.front-archive-section .section-title {
  font-size: 2rem;
  font-weight: 900;
  color: #334155;
  margin-bottom: 8px;
}
@media (width >= 900px) {
  .front-archive-section .section-title {
    font-size: 2.5rem;
  }
}
.front-archive-section .section-subtitle {
  color: #475569;
  font-weight: 700;
  margin-top: 8px;
}
.front-archive-section .archive-grid {
  margin-bottom: 40px;
}
.front-archive-section .view-all-link {
  display: block;
  text-align: center;
}
.front-archive-section .view-all-link a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  background: #fff;
  color: #334155;
  border-radius: 16px;
  border: 3px solid #E2E8F0;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 6px 6px 0 #E2E8F0;
}
.front-archive-section .view-all-link a:hover {
  transform: translate(-4px, -4px);
  box-shadow: 10px 10px 0 #E2E8F0;
}

.archive-video-section {
  padding: 20px 20px 40px;
  text-align: center;
}
@media (width >= 900px) {
  .archive-video-section {
    padding: 30px 40px 60px;
  }
}
.archive-video-section .section-container {
  max-width: 1200px;
  margin: 0 auto;
}

.archive-more {
  display: block;
  text-align: center;
  margin-top: 40px;
}

.archive-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  background: #fff;
  color: #334155;
  border-radius: 16px;
  border: 3px solid #E2E8F0;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 6px 6px 0 #E2E8F0;
}
.archive-more-btn:hover {
  transform: translate(-4px, -4px);
  box-shadow: 10px 10px 0 #E2E8F0;
}

#news-list,
.news-list-block {
  margin: 2rem auto;
  max-width: 1200px;
}
#news-list h4,
.news-list-block h4 {
  color: #00133d;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 10px;
}
@media (width >= 900px) {
  #news-list h4,
  .news-list-block h4 {
    font-size: 30px;
  }
}
#news-list .item-list,
.news-list-block .item-list {
  margin-top: 15px;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media (width >= 900px) {
  #news-list .item-list,
  .news-list-block .item-list {
    margin-top: 30px;
  }
}
#news-list .item,
.news-list-block .item {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
  overflow: hidden;
}
#news-list .item:hover,
.news-list-block .item:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
#news-list .news-link,
.news-list-block .news-link {
  display: block;
  padding: 0.8rem 1rem;
  text-decoration: none;
  color: #333;
}
#news-list .info,
.news-list-block .info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 10px;
  line-height: 1.5;
}
@media (width >= 900px) {
  #news-list .info,
  .news-list-block .info {
    flex-wrap: nowrap;
    gap: 0.7rem;
    font-size: 12px;
  }
}
#news-list .info .date,
.news-list-block .info .date {
  flex-shrink: 0;
  color: #666;
  font-size: 0.9em;
  margin: 0;
  line-height: 1.5;
}
@media (width >= 900px) {
  #news-list .info .date,
  .news-list-block .info .date {
    font-size: 1em;
  }
}
#news-list .info .category,
.news-list-block .info .category {
  flex-shrink: 0;
  color: #fff;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 0.85em;
  margin: 0;
  background: #094;
  line-height: 1.5;
}
@media (width >= 900px) {
  #news-list .info .category,
  .news-list-block .info .category {
    padding: 2px 9px;
    font-size: 1em;
  }
}
#news-list .info .news-title,
.news-list-block .info .news-title {
  width: 100%;
  font-size: 1.3em;
  font-weight: bold;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 0;
  padding: 0;
  color: #333;
  line-height: 1.5;
}
@media (width >= 900px) {
  #news-list .info .news-title,
  .news-list-block .info .news-title {
    width: auto;
    flex: 1;
    font-size: 1.3em;
  }
}

.entry-content #news-list .info .news-title,
.entry-content .news-list-block .info .news-title {
  font-size: 1.3em;
  margin: 0;
  line-height: 1.5;
  color: #333;
}

#minnou #news-list .info .date,
#minnou .news-list-block .info .date {
  font-size: 0.9em;
  margin: 0;
  line-height: 1.5;
}
@media (width >= 900px) {
  #minnou #news-list .info .date,
  #minnou .news-list-block .info .date {
    font-size: 1em;
  }
}
#minnou #news-list .info .category,
#minnou .news-list-block .info .category {
  font-size: 0.85em;
  margin: 0;
  line-height: 1.5;
}
@media (width >= 900px) {
  #minnou #news-list .info .category,
  #minnou .news-list-block .info .category {
    font-size: 1em;
  }
}
#minnou #news-list .info .news-title,
#minnou .news-list-block .info .news-title {
  font-size: 1.3em;
  margin: 0;
  line-height: 1.5;
  color: #333;
}

@media (width <= 768px) {
  #news-list,
  .news-list-block {
    padding: 0;
  }
  #news-list .news-link,
  .news-list-block .news-link {
    padding: 10px;
  }
  #news-list .info .news-title,
  .news-list-block .info .news-title {
    font-size: 15px;
  }
}
.archive-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
@media (width >= 900px) {
  .archive-header {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}
.archive-header .title-wrapper {
  margin-bottom: 0;
}

.archive-search {
  display: flex;
  width: 100%;
  max-width: 280px;
  border-radius: 50px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
@media (width >= 900px) {
  .archive-search {
    max-width: 320px;
  }
}
.archive-search input[type=text] {
  flex: 1;
  min-width: 0;
  padding: 0.6rem 1rem;
  border: none;
  font-size: 13px;
  outline: none;
}
@media (width >= 900px) {
  .archive-search input[type=text] {
    padding: 0.8rem 1.2rem;
    font-size: 14px;
  }
}
.archive-search input[type=text]::-moz-placeholder {
  color: #999;
}
.archive-search input[type=text]::placeholder {
  color: #999;
}
.archive-search button {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 0.8rem;
  background: #FFE500;
  border: none;
  cursor: pointer;
  transition: background 0.2s ease;
}
@media (width >= 900px) {
  .archive-search button {
    padding: 0.8rem 1rem;
  }
}
.archive-search button:hover {
  background: #e6cf00;
}
.archive-search button svg {
  width: 18px;
  height: 18px;
  color: #00133d;
}
@media (width >= 900px) {
  .archive-search button svg {
    width: 20px;
    height: 20px;
  }
}

.no-results {
  text-align: center;
  padding: 3rem 1rem;
  color: #666;
  font-size: 14px;
}

#report-list .report-list {
  flex-wrap: wrap;
  flex-direction: row !important;
}
@media (width >= 900px) {
  #report-list .report-list .item {
    width: calc(25% - 28px);
  }
}
#report-list .rport-thumbnail > img {
  width: calc(100% + 20px);
  max-width: unset !important;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  aspect-ratio: 16/9;
  margin: 6px -10px;
}
#report-list h4 {
  color: #00133d;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 10px;
}
@media (width >= 900px) {
  #report-list h4 {
    font-size: 30px;
  }
}
#report-list .item-list {
  margin-top: 15px;
}
@media (width >= 900px) {
  #report-list .item-list {
    margin-top: 30px;
  }
}
#report-list .item-list {
  display: flex;
  flex-direction: column;
  gap: 15px 10px;
}
#report-list .item {
  background: #fbfbfb;
  border-radius: 10px;
  overflow: hidden;
  padding: 30px 10px 10px;
  color: #00133d;
  position: relative;
}
#report-list .bookmark {
  position: absolute;
  right: 5%;
  top: 0;
  width: min(9%, 35px);
  height: auto;
  aspect-ratio: 18/25;
  background-repeat: no-repeat;
  background-image: url("./assets/image/single/bookmark.svg");
}
#report-list .binder-holes {
  width: 70%;
  height: 10px;
  margin-bottom: 7px;
  position: absolute;
  left: 50%;
  top: 12px;
  transform: translateX(-50%);
  justify-content: space-around;
  display: flex;
}
#report-list .binder-holes .the-hole {
  width: 30%;
  height: 10px;
  display: block;
  background-color: rgba(197, 197, 197, 0.51);
  border-radius: 99999px;
}
#report-list .info {
  font-size: 8px;
}
@media (width >= 900px) {
  #report-list .info {
    border-radius: 30px;
    font-size: 12px;
  }
}
#report-list .info .title {
  font-size: 1.5em;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  font-weight: bold;
}
@media (width >= 900px) {
  #report-list .info .title {
    font-size: 1em;
  }
}
#report-list .info .time-cat {
  display: flex;
  margin-bottom: 1px;
  font-size: 1em;
}
@media (width >= 900px) {
  #report-list .info .time-cat {
    font-size: 0.8em;
  }
}
#report-list .info .date {
  display: inline-block;
  padding: 2px 0;
}
#report-list .info .category {
  background-color: #fb0;
  color: #00133d;
  display: inline-block;
  padding: 2px 10px;
  margin-right: 10px;
  border-radius: 999px;
}
#report-list .pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  margin-top: 2rem;
  width: 100%;
}
#report-list .pagination a,
#report-list .pagination span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #fff;
  color: #00133d;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  transition: all 0.2s ease;
  cursor: pointer;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
#report-list .pagination a:hover {
  background-color: #FFE500;
  transform: scale(1.1);
}
#report-list .pagination .current {
  background-color: #FFE500;
  cursor: default;
}
#report-list .pagination .prev,
#report-list .pagination .next {
  font-size: 16px;
}
#report-list .pagination svg {
  display: block;
}
#report-list .pagination .dots {
  cursor: default;
}

#project-list {
  display: flex;
}
#project-list > .list-item {
  width: 100%;
  height: auto;
  background: rgba(255, 255, 255, 0.171);
  box-shadow: 0 2px 3px 0 #d9d9d9;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  padding: 20px 10px;
  color: rgb(255, 255, 255);
  font-weight: normal;
  font-size: larger;
  border-radius: 20px;
  position: relative;
}

#event-list {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
@media screen and (width <= 500px) {
  #event-list {
    display: flex;
    margin: auto;
    text-align: center;
  }
}
#event-list {
  gap: 15px;
  justify-content: left;
  flex-wrap: wrap;
}
@media screen and (width >= 850px) {
  #event-list {
    gap: 20px;
  }
}
#event-list .list-item {
  width: 100%;
  background: #fffefb;
  border: 1px solid rgba(182, 182, 182, 0.4);
  color: #333;
  font-weight: normal;
  padding: 20px;
  box-sizing: border-box;
  line-height: 1.5;
  font-size: 15px;
  display: flex;
  flex-direction: column;
}
#event-list .list-item p {
  font-size: 1em;
  margin-top: auto;
  margin-bottom: auto;
  flex-grow: 1;
  display: block;
  text-align: center;
  height: 50px;
}
@media screen and (width <= 500px) {
  #event-list .list-item p {
    text-align: center;
    margin-bottom: 20px;
  }
}
@media screen and (width <= 500px) {
  #event-list .list-item {
    height: unset;
    text-align: center;
    margin-bottom: 20px;
    width: calc(50vw - 24px);
  }
}
@media (width >= 900px) {
  #event-list .list-item {
    padding: 25px;
    border-radius: 7px;
    max-width: unset;
  }
}
#event-list .list-item > img {
  width: 100%;
  aspect-ratio: 1/1;
  -o-object-fit: contain;
  object-fit: contain;
  max-width: 500px;
  display: block;
  margin-bottom: 10px;
}
#event-list .list-item .link-button {
  background: transparent;
  border: 1px solid rgb(18, 18, 18);
  border-radius: 3px;
  font-size: 15px;
  width: 100%;
  height: 50px;
  max-width: 200px;
  margin: auto;
  display: block;
  display: grid;
  place-items: center;
}

#member-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  color: #F8F1D7;
}
@media (width >= 900px) {
  #member-list {
    font-size: 20px;
  }
}
#member-list .member-item {
  width: 150px;
  height: 250px;
}
@media (width >= 900px) {
  #member-list .member-item {
    width: 220px;
    height: 300px;
  }
}
#member-list .member-item img {
  width: 140px;
  height: 140px;
}
@media (width >= 900px) {
  #member-list .member-item img {
    width: 170px;
    height: 170px;
  }
}
#member-list .member-item img {
  display: block;
  margin: auto;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 999px;
}
#member-list .member-item .name {
  font-size: 1.2em;
  font-weight: bold;
  margin: 0 0 3px;
  text-align: center;
  letter-spacing: 0.1em;
}
#member-list .member-item .bio {
  font-size: 0.5em;
  line-height: 1.2;
}
@media (width >= 900px) {
  #member-list .member-item .bio {
    padding: 0 14px;
  }
}

.about-page {
  background: #FDFBF7;
}

.about-hero-section,
.top-hero-section {
  padding: 60px 20px 20px;
  text-align: center;
}
@media (width >= 900px) {
  .about-hero-section,
  .top-hero-section {
    padding: 80px 40px 30px;
  }
}
.about-hero-section .section-header,
.top-hero-section .section-header {
  margin-bottom: 30px;
}
.about-hero-section .section-title,
.top-hero-section .section-title {
  font-size: 2rem;
  font-weight: 900;
  color: #334155;
  margin-bottom: 8px;
}
@media (width >= 900px) {
  .about-hero-section .section-title,
  .top-hero-section .section-title {
    font-size: 2.5rem;
  }
}
.about-hero-section .section-subtitle,
.top-hero-section .section-subtitle {
  font-size: 1rem;
  color: #475569;
  font-weight: 700;
}
@media (width >= 900px) {
  .about-hero-section .section-subtitle,
  .top-hero-section .section-subtitle {
    font-size: 1.25rem;
  }
}

.top-hero-section {
  padding: 60px 0 20px;
}
@media (width >= 900px) {
  .top-hero-section {
    padding: 80px 40px 30px;
  }
}

.section-about-hero {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.about-content-section {
  padding: 60px 16px;
}
@media (width >= 900px) {
  .about-content-section {
    padding: 80px 0;
  }
}
.about-content-section .about-content {
  max-width: 800px;
  margin: 0 auto;
  background: #fff;
  border-radius: 24px;
  padding: 40px 24px;
  border: 3px solid #E2E8F0;
  box-shadow: 6px 6px 0 #E2E8F0;
}
@media (width >= 900px) {
  .about-content-section .about-content {
    padding: 60px;
  }
}
.about-content-section .about-content h1, .about-content-section .about-content h2, .about-content-section .about-content h3, .about-content-section .about-content h4, .about-content-section .about-content h5, .about-content-section .about-content h6 {
  color: #334155;
  font-weight: 900;
  margin: 1.5em 0 0.75em;
  line-height: 1.4;
}
.about-content-section .about-content h2 {
  font-size: 1.5rem;
  padding-bottom: 0.5em;
  border-bottom: 3px dashed #CCFBF1;
}
@media (width >= 900px) {
  .about-content-section .about-content h2 {
    font-size: 1.75rem;
  }
}
.about-content-section .about-content h3 {
  font-size: 1.25rem;
  color: #00A896;
}
@media (width >= 900px) {
  .about-content-section .about-content h3 {
    font-size: 1.5rem;
  }
}
.about-content-section .about-content p {
  color: #475569;
  line-height: 2;
  margin-bottom: 1.5em;
  font-size: 1rem;
}
@media (width >= 900px) {
  .about-content-section .about-content p {
    font-size: 1.125rem;
  }
}
.about-content-section .about-content ul, .about-content-section .about-content ol {
  color: #475569;
  line-height: 2;
  margin: 1.5em 0;
  padding-left: 1.5em;
}
.about-content-section .about-content li {
  margin-bottom: 0.5em;
}
.about-content-section .about-content a {
  color: #00A896;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.about-content-section .about-content a:hover {
  color: #007D71;
}
.about-content-section .about-content img {
  max-width: 100%;
  height: auto;
  border-radius: 16px;
  margin: 1.5em 0;
}
.about-content-section .about-content .wp-block-image {
  margin: 2em 0;
}
.about-content-section .about-content .wp-block-image figcaption {
  text-align: center;
  color: #64748B;
  font-size: 0.875rem;
  margin-top: 0.5em;
}
.about-content-section .about-content blockquote {
  border-left: 4px solid #00A896;
  padding-left: 1.5em;
  margin: 2em 0;
  font-style: italic;
  color: #64748B;
}

#about-us {
  margin: 20px 0;
  color: #F8F1D7;
  font-weight: bold;
  line-height: 2;
  font-size: 13px;
}
@media (width >= 900px) {
  #about-us {
    font-size: 19px;
    margin: 40px 0;
    line-height: 1.7;
  }
}
#about-us .about-container {
  background: #fff;
  border-radius: 20px;
  padding: 50px 15px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
}
@media (width >= 900px) {
  #about-us .about-container {
    padding: 100px 60px;
  }
}
#about-us .about-container::before {
  content: "";
  position: absolute;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(57, 174, 55, 0.1) 0%, rgba(255, 255, 255, 0) 70%);
  top: -150px;
  left: -150px;
  border-radius: 50%;
  z-index: -1;
}
#about-us .about-container::after {
  content: "";
  position: absolute;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(236, 121, 39, 0.1) 0%, rgba(255, 255, 255, 0) 70%);
  bottom: -100px;
  right: -100px;
  border-radius: 50%;
  z-index: -1;
}
#about-us .about-header {
  text-align: center;
  margin-bottom: 40px;
  position: relative;
}
@media (width >= 900px) {
  #about-us .about-header {
    margin-bottom: 60px;
  }
}
#about-us .about-vision {
  font-size: 1.8em;
  font-weight: bold;
  margin-bottom: 15px;
  line-height: 1.4;
  color: #11357F;
  text-shadow: 0 0 15px rgba(17, 53, 127, 0.15);
}
@media (width >= 900px) {
  #about-us .about-vision {
    font-size: 30px;
  }
}
#about-us .vision-underline {
  width: 80%;
  height: 3px;
  background: linear-gradient(90deg, rgba(57, 174, 55, 0) 0%, rgb(57, 174, 55) 50%, rgba(57, 174, 55, 0) 100%);
  margin: 0 auto;
}
@media (width >= 900px) {
  #about-us .vision-underline {
    width: 80%;
    height: 4px;
  }
}
#about-us .about-content {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media (width >= 900px) {
  #about-us .about-content {
    gap: 40px;
  }
}
#about-us .about-section {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  transition: all 0.3s ease;
}
@media (width >= 900px) {
  #about-us .about-section {
    gap: 25px;
  }
}
#about-us .about-section .section-icon {
  background-color: rgba(17, 53, 127, 0.1);
}
#about-us .section-icon {
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  background-color: rgba(17, 53, 127, 0.05);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}
@media (width >= 900px) {
  #about-us .section-icon {
    width: 70px;
    height: 70px;
  }
}
#about-us .about-icon {
  width: 30px;
  height: 30px;
  display: block;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
@media (width >= 900px) {
  #about-us .about-icon {
    width: 40px;
    height: 40px;
  }
}
#about-us .section-text {
  align-self: center;
}
#about-us .section-text p {
  margin: 0;
  font-weight: normal;
  color: #333;
}
#about-us .about-image {
  margin-top: 40px;
  text-align: center;
  position: relative;
}
@media (width >= 900px) {
  #about-us .about-image {
    margin-top: 60px;
  }
}
#about-us .about-image img {
  max-width: 90%;
  transition: transform 0.5s ease;
}
#about-us .about-image img:hover {
  transform: scale(1.02);
}
#about-us .slide-list .center {
  text-align: center;
}
#about-us .slide-list .center > p {
  font-size: 16px;
  line-height: 1.1;
  color: #F8F1D7;
  margin-bottom: 40px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-align: center;
}
@media (width >= 900px) {
  #about-us .slide-list .center > p {
    font-size: 20px;
    text-align: center;
    margin-bottom: 50px;
  }
}

@keyframes float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
.minnou-2025 {
  color: #475569;
  overflow-x: hidden;
}
.minnou-2025 .section-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (width >= 900px) {
  .minnou-2025 .section-container {
    padding: 0 40px;
  }
}
.minnou-2025 .section-header {
  text-align: center;
  margin-bottom: 40px;
}
@media (width >= 900px) {
  .minnou-2025 .section-header {
    margin-bottom: 60px;
  }
}
.minnou-2025 .section-title {
  font-size: 2rem;
  font-weight: 900;
  color: #334155;
  margin-bottom: 8px;
  display: inline-block;
  border-bottom: 6px solid #FFD166;
  padding-bottom: 4px;
}
@media (width >= 900px) {
  .minnou-2025 .section-title {
    font-size: 2.5rem;
  }
}
.minnou-2025 .section-subtitle {
  color: #475569;
  font-weight: 700;
  margin-top: 16px;
}

.hero-section {
  position: relative;
  padding: 20px;
  box-sizing: border-box;
  text-align: center;
  overflow: hidden;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: url("../image/hero.jpg") center/cover no-repeat;
}

.hero-bg-blobs {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}

.blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(40px);
  opacity: 0.7;
  animation: float 3s ease-in-out infinite;
}

.blob-1 {
  top: 10%;
  left: 10%;
  width: 150px;
  height: 150px;
  background-color: #FFD166;
  animation-delay: 0s;
}
@media (width >= 900px) {
  .blob-1 {
    width: 200px;
    height: 200px;
  }
}

.blob-2 {
  bottom: 20%;
  right: 10%;
  width: 180px;
  height: 180px;
  background-color: #FCA5A5;
  animation-delay: 1s;
}
@media (width >= 900px) {
  .blob-2 {
    width: 250px;
    height: 250px;
  }
}

.hero-content {
  position: relative;
  z-index: 10;
  max-width: 800px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-logo-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(560px, 80vw);
  height: min(560px, 80vw);
}
@media (width >= 900px) {
  .hero-logo-wrapper {
    width: 800px;
    height: 800px;
  }
}

.hero-logo-img {
  width: 90%;
  height: auto;
  -o-object-fit: contain;
  object-fit: contain;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 20px;
  margin-bottom: 24px;
  border-radius: 999px;
  background: #FFF;
  border: 2px solid #E5F5F3;
  color: #00A896;
  font-weight: 700;
  box-shadow: 4px 4px 0 #CCFBF1;
  transform: rotate(-2deg);
}
.hero-badge .badge-icon {
  font-size: 1rem;
}

.hero-title {
  font-size: 3rem;
  font-weight: 900;
  color: #334155;
  line-height: 1.2;
  margin-bottom: 40px;
}
@media (width >= 900px) {
  .hero-title {
    font-size: 5rem;
  }
}
.hero-title .highlight {
  background: linear-gradient(to right, #00A896, #38BDF8);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  position: relative;
}
.hero-title .highlight::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: 12px;
  background: #FFD166;
  opacity: 0.6;
  border-radius: 999px;
  transform: rotate(-1deg);
  z-index: -1;
}

.hero-subtitle {
  font-size: 1rem;
  font-weight: 700;
  color: #475569;
  line-height: 1.8;
  margin-bottom: 40px;
}
@media (width >= 900px) {
  .hero-subtitle {
    font-size: 1.25rem;
  }
}
.hero-subtitle .accent {
  background: #E5F5F3;
  padding: 2px 8px;
  border-radius: 4px;
}

.hero-info-cards {
  display: flex;
  flex-direction: column;
  gap: 16px;
  justify-content: center;
  margin-bottom: 3rem;
}
@media (width >= 900px) {
  .hero-info-cards {
    flex-direction: row;
    gap: 24px;
  }
}

.info-card {
  background: #FFF;
  padding: 16px 32px;
  border-radius: 16px;
  border: 2px solid #F1F5F9;
  box-shadow: 6px 6px 0 #F1F5F9;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 200px;
  transition: transform 0.2s ease;
}
.info-card:hover {
  transform: translateY(-4px);
}
.info-card .info-label {
  font-size: 0.75rem;
  font-weight: 900;
  color: #00A896;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 4px;
}
.info-card .info-value {
  font-size: 1.25rem;
  font-weight: 900;
  color: #334155;
}

.event-info-section {
  background: #F0F9FF;
  padding: 60px 20px;
  text-align: center;
}
@media (width >= 900px) {
  .event-info-section {
    padding: 80px 40px;
  }
}
.event-info-section .section-container {
  max-width: 800px;
  margin: 0 auto;
}
.event-info-section .event-date-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 20px;
  margin-bottom: 24px;
  border-radius: 999px;
  background: #fff;
  border: 2px solid #E5F5F3;
  color: #00A896;
  font-weight: 700;
  box-shadow: 4px 4px 0 #CCFBF1;
}
.event-info-section .event-date-badge .badge-icon {
  font-size: 1rem;
}
.event-info-section .event-title {
  font-size: clamp(1.75rem, 7vw, 3rem);
  font-weight: 900;
  color: #143c8b;
  line-height: 1.3;
}
@media (width >= 900px) {
  .event-info-section .event-title {
    font-size: 5rem;
  }
}
.event-info-section .event-title .highlight {
  color: #143c8b;
}
.event-info-section .event-subtitle {
  font-size: 1rem;
  font-weight: 700;
  color: #475569;
  line-height: 1.8;
  margin-bottom: 32px;
}
@media (width >= 900px) {
  .event-info-section .event-subtitle {
    font-size: 1.125rem;
  }
}
.event-info-section .event-details {
  margin-top: 60px;
  background: #F0F9FF;
  border-radius: 20px;
}
@media (width >= 600px) {
  .event-info-section .event-details {
    padding: 32px;
  }
}
@media (width >= 900px) {
  .event-info-section .event-details {
    margin-top: 80px;
  }
}
.event-info-section .event-info-cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin-bottom: 32px;
}
.event-info-section .event-info-cards .info-card {
  display: flex;
  flex-direction: column;
  padding: 16px 24px;
  border-radius: 16px;
  background: #fff;
  border: 2px solid #E2E8F0;
  box-shadow: 4px 4px 0 #E2E8F0;
}
.event-info-section .event-info-cards .info-card .info-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: #00A896;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 4px;
}
.event-info-section .event-info-cards .info-card .info-value {
  font-size: 1.125rem;
  font-weight: 900;
  color: #334155;
}
.event-info-section .ended-banner {
  padding: 16px;
}
@media (width >= 600px) {
  .event-info-section .ended-banner {
    padding: 24px;
  }
}
.event-info-section .ended-banner {
  border-radius: 20px;
  background: #fff;
  border: 2px solid #143c8b;
  box-shadow: 6px 6px 0 #143c8b;
}
.event-info-section .ended-banner .ended-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 16px;
}
.event-info-section .ended-banner .ended-content .ended-icon {
  font-size: 1.5rem;
}
.event-info-section .ended-banner .ended-content .ended-text {
  font-size: 0.95rem;
  font-weight: 800;
  color: #334155;
}
@media (width >= 600px) {
  .event-info-section .ended-banner .ended-content .ended-text {
    font-size: 1.125rem;
  }
}
.event-info-section .ended-banner .ended-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
.event-info-section .ended-banner .ended-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
}
@media (width >= 600px) {
  .event-info-section .ended-banner .ended-btn {
    padding: 14px 32px;
  }
}
.event-info-section .ended-banner .ended-btn {
  border-radius: 16px;
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.event-info-section .ended-banner .ended-btn-primary {
  background: #143c8b;
  color: #fff;
  border: 3px solid #143c8b;
  box-shadow: 6px 6px 0 rgba(20, 60, 139, 0.3);
}
.event-info-section .ended-banner .ended-btn-primary:hover {
  transform: translate(-4px, -4px);
  box-shadow: 10px 10px 0 rgba(20, 60, 139, 0.4);
}
.event-info-section .ended-banner .ended-btn-secondary {
  background: #fff;
  color: #334155;
  border: 3px solid #E2E8F0;
  box-shadow: 6px 6px 0 #E2E8F0;
}
.event-info-section .ended-banner .ended-btn-secondary:hover {
  transform: translate(-4px, -4px);
  box-shadow: 10px 10px 0 #E2E8F0;
}

.concept-section {
  padding: 80px 20px;
}
@media (width >= 900px) {
  .concept-section {
    padding: 100px 40px;
  }
}
.concept-section .concept-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  max-width: 500px;
  margin-inline: auto;
}
@media (width >= 900px) {
  .concept-section .concept-grid {
    gap: 40px;
    max-width: 600px;
  }
}
@media (width >= 1300px) {
  .concept-section .concept-grid {
    max-width: none;
  }
}
.concept-section .concept-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 140px;
  cursor: pointer;
}
@media (width >= 900px) {
  .concept-section .concept-item {
    width: 160px;
  }
}
.concept-section .concept-item:hover .concept-icon {
  transform: scale(1.1) rotate(5deg);
}
.concept-section .concept-icon {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  border: 4px solid #FFF;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  overflow: hidden;
}
@media (width >= 900px) {
  .concept-section .concept-icon {
    width: 120px;
    height: 120px;
  }
}
.concept-section .concept-icon img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.concept-section .concept-icon.concept-red {
  background: #FEE2E2;
}
.concept-section .concept-icon.concept-blue {
  background: #DBEAFE;
}
.concept-section .concept-icon.concept-yellow {
  background: #FEF3C7;
}
.concept-section .concept-icon.concept-green {
  background: #D1FAE5;
}
.concept-section .concept-icon.concept-purple {
  background: #EDE9FE;
}
.concept-section .concept-title {
  font-size: 1.125rem;
  font-weight: 900;
  color: #334155;
  text-align: center;
  margin-bottom: 4px;
  transition: color 0.2s ease;
}
.concept-item:hover .concept-section .concept-title {
  color: #00A896;
}
.concept-section .concept-sub {
  font-size: 0.75rem;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: center;
}
.concept-section .concept-modal {
  padding: 0;
  border: none;
  border-radius: 24px;
  max-width: 640px;
  width: calc(100% - 40px);
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  cursor: default;
}
.concept-section .concept-modal::backdrop {
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  cursor: pointer;
}
.concept-section .concept-modal-inner {
  display: flex;
  flex-direction: column;
  padding: 32px;
  gap: 24px;
  position: relative;
}
@media (width >= 900px) {
  .concept-section .concept-modal-inner {
    flex-direction: row;
    padding: 40px;
    gap: 32px;
  }
}
.concept-section .concept-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  border: none;
  background: #F1F5F9;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #475569;
  transition: all 0.2s ease;
}
.concept-section .concept-modal-close:hover {
  background: #E2E8F0;
  color: #334155;
}
.concept-section .concept-modal-left {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}
@media (width >= 900px) {
  .concept-section .concept-modal-left {
    width: 160px;
  }
}
.concept-section .concept-modal-icon {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  border: 4px solid #FFF;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  margin-bottom: 12px;
}
.concept-section .concept-modal-icon img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.concept-section .concept-modal-icon.concept-red {
  background: #FEE2E2;
}
.concept-section .concept-modal-icon.concept-blue {
  background: #DBEAFE;
}
.concept-section .concept-modal-icon.concept-yellow {
  background: #FEF3C7;
}
.concept-section .concept-modal-icon.concept-green {
  background: #D1FAE5;
}
.concept-section .concept-modal-icon.concept-purple {
  background: #EDE9FE;
}
.concept-section .concept-modal-title {
  font-size: 1.25rem;
  font-weight: 900;
  color: #334155;
  text-align: center;
  margin-bottom: 4px;
}
.concept-section .concept-modal-sub {
  font-size: 0.75rem;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: center;
}
.concept-section .concept-modal-right {
  display: flex;
  align-items: center;
}
.concept-section .concept-modal-desc {
  font-size: 1rem;
  line-height: 1.8;
  color: #475569;
}

.exhibition-section {
  padding: 0 10px 20px;
  background: #F0F9FF;
  min-height: 60vh;
}
@media (width >= 900px) {
  .exhibition-section {
    padding: 100px 40px;
  }
}
.exhibition-section .floor-tabs {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-bottom: 40px;
}
.exhibition-section .floor-tab {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 4px solid #E2E8F0;
  background: #FFF;
  color: #475569;
  font-size: 1.125rem;
  font-weight: 900;
  cursor: pointer;
  transition: all 0.3s ease;
}
.exhibition-section .floor-tab:hover {
  background: #E5F5F3;
  color: #00A896;
  transform: translateY(-4px);
  box-shadow: 0 5px 0 #CBD5E1;
}
.exhibition-section .floor-tab.active {
  background: #00A896;
  color: #FFF;
  border-color: #007D71;
  transform: translateY(-8px);
  box-shadow: 0 10px 0 #007D71;
}
.exhibition-section .exhibition-content > h2 {
  font-size: 2rem;
  font-weight: 900;
  color: #334155;
  display: table;
  margin: 48px auto 32px;
  border-bottom: 6px solid #FFD166;
  padding-bottom: 4px;
}
.exhibition-section .exhibition-content > h2:first-child {
  margin-top: 0;
}
@media (width >= 900px) {
  .exhibition-section .exhibition-content > h2 {
    font-size: 2.5rem;
  }
}
.exhibition-section .exhibition-content > h3 {
  font-size: 1.5rem;
  font-weight: 800;
  color: #334155;
  text-align: center;
  margin-top: 32px;
  margin-bottom: 16px;
}
.exhibition-section .exhibition-content > h3:first-child {
  margin-top: 0;
}
@media (width >= 900px) {
  .exhibition-section .exhibition-content > h3 {
    font-size: 1.75rem;
  }
}
.exhibition-section .exhibition-content {
  font-size: 1rem;
  line-height: 2;
  letter-spacing: 0.03em;
  color: #475569;
}
@media (width >= 900px) {
  .exhibition-section .exhibition-content {
    font-size: 1.125rem;
  }
}
.exhibition-section .exhibition-content > p {
  margin-bottom: 1.5em;
}
.exhibition-section .exhibition-content > p:last-child {
  margin-bottom: 0;
}
.exhibition-section .exhibition-content > img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 1.5em auto;
  border-radius: 12px;
}
.exhibition-section .exhibition-content > ul,
.exhibition-section .exhibition-content > ol {
  margin: 1em 0 1.5em;
  padding-left: 1.5em;
}
.exhibition-section .exhibition-content > ul li,
.exhibition-section .exhibition-content > ol li {
  margin-bottom: 0.5em;
}
.exhibition-section .exhibition-content > ul {
  list-style-type: disc;
}
.exhibition-section .exhibition-content > ol {
  list-style-type: decimal;
}
.exhibition-section .exhibition-content > blockquote {
  margin: 1.5em 0;
  padding: 1em 1.5em;
  border-left: 4px solid #00A896;
  background: #F8FAFC;
  border-radius: 0 8px 8px 0;
  font-style: italic;
}
.exhibition-section .exhibition-content strong,
.exhibition-section .exhibition-content b {
  font-weight: 700;
  color: #334155;
}
.exhibition-section .exhibition-content a:not(.custom-button__link) {
  color: #00A896;
  text-decoration: underline;
}
.exhibition-section .exhibition-content a:not(.custom-button__link):hover {
  color: #007D71;
}

.access-section {
  padding: 80px 20px;
  background: #334155;
  color: #FFF;
}
@media (width >= 900px) {
  .access-section {
    padding: 100px 40px;
  }
}
.access-section .section-title {
  color: #FFF;
  border-bottom-color: #00A896;
}
.access-section .access-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: rgba(255, 255, 255, 0.1);
  padding: 24px;
  border-radius: 24px;
  border: 2px solid rgba(255, 255, 255, 0.2);
  margin-bottom: 24px;
}
@media (width >= 900px) {
  .access-section .access-card {
    padding: 32px;
  }
}
.access-section .access-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: #00A896;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.access-section .access-icon svg {
  color: #FFF;
}
.access-section .access-venue {
  font-size: 1.5rem;
  font-weight: 900;
  margin-bottom: 8px;
}
.access-section .access-address {
  color: #CBD5E1;
  font-weight: 500;
}
.access-section .map-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  max-width: 400px;
  padding: 16px 24px;
  background: #FFF;
  color: #334155;
  border-radius: 12px;
  font-weight: 900;
  text-decoration: none;
  transition: all 0.2s ease;
}
.access-section .map-button:hover {
  background: #00A896;
  color: #FFF;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

#minnou {
  color: #475569;
}
#minnou h2,
#minnou h3 {
  color: #00A896;
}
#minnou .main-title {
  font-size: 20px;
  font-weight: bold;
  margin: 10px auto;
  text-align: center;
}
@media (width >= 900px) {
  #minnou .main-title {
    margin: 50px auto;
    font-size: 50px;
    max-width: 1200px;
  }
}
@media (width >= 900px) {
  #minnou p {
    font-size: 20px;
  }
}

.info-list {
  background: #FFF;
  border: 2px solid #143c8b;
  color: #334155;
  border-radius: 24px;
  box-shadow: 6px 6px 0 #143c8b;
  padding: 30px;
  margin-bottom: 32px;
  line-height: 1.8;
  letter-spacing: 0.03em;
}
@media (width >= 900px) {
  .info-list {
    padding: 40px;
  }
}
.info-list .info-grid {
  display: grid;
  gap: 25px;
}
@media (width >= 900px) {
  .info-list .info-grid {
    gap: 30px;
  }
}
.info-list .info-grid .info-item {
  display: grid;
  gap: 8px;
}
@media (width >= 900px) {
  .info-list .info-grid .info-item {
    grid-template-columns: 100px 1fr;
    gap: 20px;
    align-items: baseline;
  }
}
.info-list .info-grid .info-item .label {
  font-weight: 700;
  color: #334155;
  font-size: 16px;
}
@media (width >= 900px) {
  .info-list .info-grid .info-item .label {
    font-size: 18px;
  }
}
.info-list .info-grid .info-item .value {
  font-size: 15px;
  line-height: 1.6;
}
@media (width >= 900px) {
  .info-list .info-grid .info-item .value {
    font-size: 16px;
  }
}
.info-list .info-grid .info-item .value div,
.info-list .info-grid .info-item .value p {
  margin-bottom: 1em;
}
.info-list .info-grid .info-item .value div:last-child,
.info-list .info-grid .info-item .value p:last-child {
  margin-bottom: 0;
}

.recruitment-badge {
  position: fixed;
  bottom: 2rem;
  right: 0;
  z-index: 50;
  text-decoration: none;
}

.recruitment-badge-inner {
  position: relative;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.2);
  border: 3px solid white;
  background-color: #3B82F6;
  margin-right: 0.75rem;
  margin-top: 0.75rem;
  transform: rotate(8deg);
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@media (width >= 768px) {
  .recruitment-badge-inner {
    width: 7.5rem;
    height: 7.5rem;
  }
}
.recruitment-badge:hover .recruitment-badge-inner {
  box-shadow: 0 15px 35px -5px rgba(0, 0, 0, 0.3);
  transform: scale(1.05) rotate(12deg);
}

.recruitment-blob {
  position: absolute;
  border-radius: 50%;
}

.recruitment-blob-1 {
  top: -0.5rem;
  right: -0.75rem;
  width: 4rem;
  height: 4rem;
  background-color: #93C5FD;
  opacity: 0.9;
  mix-blend-mode: hard-light;
  filter: blur(1px);
}

.recruitment-blob-2 {
  top: 50%;
  left: -0.5rem;
  width: 4rem;
  height: 4rem;
  background-color: #7DD3FC;
  opacity: 0.8;
  mix-blend-mode: screen;
  filter: blur(2px);
}

.recruitment-blob-3 {
  bottom: -1rem;
  right: 33%;
  width: 3.5rem;
  height: 3.5rem;
  background-color: #67E8F9;
  opacity: 0.7;
  mix-blend-mode: screen;
}

.recruitment-blob-4 {
  top: 0.75rem;
  left: 33%;
  width: 2rem;
  height: 2rem;
  background-color: #C7D2FE;
  opacity: 0.9;
  mix-blend-mode: overlay;
}

.recruitment-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: white;
  z-index: 10;
  pointer-events: none;
  transform: rotate(-8deg);
}

.recruitment-text {
  position: relative;
  margin-bottom: 0.25rem;
  font-weight: 900;
  font-size: 1.25rem;
  line-height: 1.2;
  text-align: center;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.15);
}
@media (width >= 768px) {
  .recruitment-text {
    font-size: 1.4rem;
  }
}

.recruitment-link {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  font-size: 0.4rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  background-color: rgba(255, 255, 255, 0.25);
  padding: 0.15rem 0.4rem;
  border-radius: 999px;
  backdrop-filter: blur(4px);
}
@media (width >= 768px) {
  .recruitment-link {
    font-size: 0.45rem;
  }
}

.ended-banner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  margin-top: 1.5rem;
  background: #fff;
  border-radius: 1rem;
  border: 2px solid #143c8b;
  box-shadow: 6px 6px 0 #143c8b;
}
@media (width >= 768px) {
  .ended-banner {
    padding: 1.5rem 2rem;
    gap: 1.25rem;
  }
}

.ended-content {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ended-icon {
  font-size: 1.5rem;
}
@media (width >= 768px) {
  .ended-icon {
    font-size: 1.75rem;
  }
}

.ended-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}

.ended-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  border-radius: 16px;
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.ended-btn-primary {
  background: #143c8b;
  color: #fff;
  border: 3px solid #143c8b;
  box-shadow: 6px 6px 0 rgba(20, 60, 139, 0.35);
}
.ended-btn-primary:hover {
  transform: translate(-4px, -4px);
  box-shadow: 10px 10px 0 rgba(20, 60, 139, 0.45);
}

.ended-btn-secondary {
  background: #fff;
  color: #EA580C;
  border: 3px solid #EA580C;
  box-shadow: 6px 6px 0 rgba(234, 88, 12, 0.2);
}
.ended-btn-secondary:hover {
  transform: translate(-4px, -4px);
  box-shadow: 10px 10px 0 rgba(234, 88, 12, 0.3);
}

.red {
  background-color: #EA5415;
}

.pink {
  background-color: #920784;
}

.purple {
  background-color: #920784;
}

.blue {
  background-color: #00A1E9;
}

.green {
  background-color: #8EC31F;
}

.black-color {
  color: black !important;
}

.mb {
  margin-top: 20px !important;
}
@media (width >= 900px) {
  .mb {
    display: none;
  }
}

.desktop {
  margin-top: 40px !important;
  display: none;
  font-size: max(2.5vw, 30px) !important;
}
@media (width >= 900px) {
  .desktop {
    display: block;
    text-align: left !important;
  }
}

.top-image {
  max-width: min(100% - 40px, 1200px);
  margin: auto;
  display: block;
}

.center {
  margin: auto;
}

.top-cate {
  margin-bottom: 20px;
}

.komejirushi {
  color: #F8F1D7;
  margin-bottom: 20px;
  text-align: center;
}
@media (width >= 900px) {
  .komejirushi {
    text-align: left;
    margin-bottom: 40px;
  }
}

.report-footer-override {
  background-color: transparent !important;
  background-image: none !important;
  text-align: center !important;
}

.footer-logo {
  padding: 40px 20px;
  text-align: center;
}
@media (width >= 900px) {
  .footer-logo {
    padding: 60px 20px;
  }
}
.footer-logo p {
  margin-bottom: 20px;
}

.footer-logo-img {
  display: inline-block;
  margin-bottom: 16px;
}
.footer-logo-img a {
  display: inline-block;
}
.footer-logo-img img {
  display: block;
  width: 200px;
}

.sns-icon {
  margin-top: 20px;
  display: flex;
  gap: 20px;
  flex-direction: row;
  justify-content: center;
  border-radius: 999px;
  overflow: hidden;
}
.sns-icon > a {
  background-color: black;
  border-radius: 999px;
  display: block;
  padding: 10px;
}
.sns-icon > a > img {
  display: block;
  width: 30px;
  height: 30px;
  filter: brightness(0) invert(1);
}