@charset "UTF-8";
/* ---------- Reset ---------- */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  -webkit-font-smoothing: antialiased;
}

body {
  font-family: var(--font-sans);
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.4;
  overflow-x: clip;
}

a {
  color: inherit;
  text-decoration: none;
  transition: var(--transition);
}

a:hover {
  opacity: 0.8;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

ul,
ol {
  list-style: none;
}

button {
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
  color: inherit;
}

input,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
}

.material-icons {
  font-family: "Material Icons";
  font-size: 20px;
  vertical-align: middle;
  line-height: 1;
}

:root {
  --color-bg: #171821;
  --color-bg-light: #1e1f2b;
  --color-bg-card: #222333;
  --color-red: #e41b1b;
  --color-gold: #e2b65d;
  --color-gold-dark: #d09c2d;
  --color-brown: #42210b;
  --color-gold-light: #f7eedb;
  --color-white: #ffffff;
  --color-gray: #999;
  --color-gray-light: #ccc;
  --color-gray-dark: #444;
  --color-text: #e0e0e0;
  --color-text-muted: #888;
  --color-border: #333;
  --font-sans: "Noto Sans JP", "Noto Sans Thai", sans-serif;
  --font-heading: "Montserrat", "Noto Sans JP", "Noto Sans Thai", sans-serif;
  --header-height: 48px;
  --max-width: 1200px;
  --transition: 0.3s cubic-bezier(0.4, 0.4, 0, 1);
}

@media (max-width: 769px) {
  html {
    scrollbar-width: none;
  }
  body {
    -ms-overflow-style: none;
  }
  body::-webkit-scrollbar {
    display: none;
  }
}
.main {
  margin-top: 50px;
}

.main--home {
  margin-top: 74px;
}

.breadcrumb {
  width: 100%;
  background: #f5f5f5;
  border-bottom: 1px solid #eee;
}

.breadcrumb__list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  list-style: none;
  margin: 0 auto;
  padding: 10px 20px;
  max-width: 1180px;
  font-family: var(--font-sans);
  font-size: 12px;
}

.breadcrumb__item {
  display: flex;
  align-items: center;
  color: #999;
  line-height: 1.4;
}
.breadcrumb__item::after {
  content: "\e5cc";
  font-family: "Material Icons";
  font-size: 16px;
  color: #ccc;
  margin: 0 4px;
}
.breadcrumb__item:last-child::after {
  display: none;
}

.breadcrumb__link {
  color: #666;
  text-decoration: none;
  transition: color 0.2s;
}
.breadcrumb__link:hover {
  color: #db060b;
}

.breadcrumb__item--current {
  color: #333;
  font-weight: 400;
}
.breadcrumb__item--current span {
  display: inline-block;
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.column-subheader + .breadcrumb {
  margin-top: 121px;
}

@media (max-width: 769px) {
  .breadcrumb__list {
    padding: 8px 16px;
    font-size: 11px;
  }
  .breadcrumb__item--current span {
    max-width: 180px;
  }
  .column-subheader + .breadcrumb {
    margin-top: 0;
  }
}
.container {
  width: 100%;
  height: 100%;
  padding: 0 15px;
}

@media (max-width: 769px) {
  .main {
    margin-top: 60px;
  }
  .main--home {
    margin-top: 74px;
  }
  .container {
    width: 90%;
    margin-inline: auto;
    padding: 0;
  }
}
/* ================================================
   HEADER
   ================================================ */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background: #000;
  height: 50px;
  box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  padding: 0 15px;
}

.header__inner {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.header__left {
  display: flex;
  align-items: center;
  gap: 20px;
}

.header__logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.header__logo-img {
  width: 116px;
  height: auto;
}

.header__sep {
  background: #808080;
  height: 19px;
  width: 1px;
  flex-shrink: 0;
}

.header__nav {
  display: flex;
  align-items: center;
}

.header__nav-list {
  display: flex;
  align-items: center;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.header__nav-li,
.header__nav-parent {
  position: relative;
}

.header__nav-item {
  display: flex;
  align-items: center;
  gap: 3px;
  white-space: nowrap;
  transition: var(--transition);
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 4px;
  text-decoration: none;
}
.header__nav-item:hover {
  background: rgba(255, 255, 255, 0.1);
}

.header__nav-item--has-children {
  padding: 0;
  cursor: default;
}
.header__nav-item--has-children:hover {
  background: none;
}

.header__nav-item-link {
  display: flex;
  align-items: center;
  padding: 6px 0 6px 10px;
  color: #fff;
  text-decoration: none;
  border-radius: 4px 0 0 4px;
  transition: background 0.2s;
}
.header__nav-item-link:hover {
  background: rgba(255, 255, 255, 0.1);
}

.header__nav-dropdown-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px 8px;
  background: none;
  border: none;
  border-radius: 0 4px 4px 0;
  cursor: pointer;
  transition: background 0.2s;
}
.header__nav-dropdown-toggle:hover {
  background: rgba(255, 255, 255, 0.1);
}

.header__nav-text {
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}

.header__nav-arrow {
  color: #fff;
  font-size: 16px;
  transition: transform 0.2s;
}
.header__nav-dropdown-toggle[aria-expanded=true] .header__nav-arrow {
  transform: rotate(180deg);
}

.header__nav-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 200px;
  max-height: 420px;
  overflow: visible;
  background: #1a1a1a;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  padding: 6px 0;
  list-style: none;
  margin: 0;
  z-index: 1000;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);
}
.header__nav-dropdown.is-open {
  display: block;
}

.header__nav-dropdown-item {
  margin: 0;
}

.header__nav-dropdown-link {
  display: block;
  padding: 10px 20px;
  color: #fff;
  font-size: 13px;
  font-weight: 400;
  text-decoration: none;
  transition: background 0.2s;
  white-space: nowrap;
}
.header__nav-dropdown-link:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #db060b;
}

.header__nav-dropdown-item--has-children {
  position: relative;
}

.header__nav-dropdown-link--parent {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0;
  background: none;
  border: none;
}

.header__nav-dropdown-link-text {
  flex: 1;
  display: block;
  padding: 10px 0 10px 20px;
  color: #fff;
  font-size: 13px;
  font-weight: 400;
  text-decoration: none;
  transition: background 0.2s;
}
.header__nav-dropdown-link-text:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #db060b;
}

.header__nav-flyout-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  align-self: stretch;
  background: none;
  border: none;
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  transition: background 0.2s;
}
.header__nav-flyout-toggle:hover {
  background: rgba(255, 255, 255, 0.1);
}

.header__nav-flyout-arrow {
  font-size: 18px;
  color: rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
}

.header__nav-flyout {
  display: none;
  position: absolute;
  top: -6px;
  left: 100%;
  min-width: 200px;
  max-height: 420px;
  overflow-y: auto;
  background: #1a1a1a;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  padding: 6px 0;
  list-style: none;
  margin: 0;
  z-index: 1001;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);
}
.header__nav-flyout.is-open {
  display: block;
}
.header__nav-flyout::-webkit-scrollbar {
  width: 4px;
}
.header__nav-flyout::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 4px;
}

.header__nav-flyout-item {
  margin: 0;
}

.header__nav-flyout-link {
  display: block;
  padding: 10px 20px;
  color: #fff;
  font-size: 13px;
  font-weight: 400;
  text-decoration: none;
  transition: background 0.2s;
  white-space: nowrap;
}
.header__nav-flyout-link:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #db060b;
}

.header__search {
  flex-shrink: 0;
}

.header__search-input {
  display: block;
  background: rgba(255, 255, 255, 0.0705882353);
  border: 1px solid rgba(255, 255, 255, 0.1019607843);
  border-radius: 128px;
  height: 28px;
  width: 192px;
  padding: 10px 16px 10px 8px;
  font-size: 12px;
  color: #fff;
  outline: none;
  transition: var(--transition);
}

.header__search-input::-moz-placeholder {
  color: #797979;
}

.header__search-input::placeholder {
  color: #797979;
}

.header__search-input:focus {
  border: 1px solid #eee;
}

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

.header__lang {
  position: relative;
}

.header__lang-current {
  display: flex;
  align-items: center;
  gap: 4px;
  background: none;
  border: none;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  padding: 6px 8px;
  border-radius: 4px;
  transition: background 0.2s;
}
.header__lang-current:hover {
  background: rgba(255, 255, 255, 0.1);
}

.header__lang-icon {
  font-size: 20px;
}

.header__lang-arrow {
  font-size: 18px;
  transition: transform 0.2s;
}
.header__lang-current[aria-expanded=true] .header__lang-arrow {
  transform: rotate(180deg);
}

.header__lang-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background: #1a1a1a;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 6px;
  min-width: 100px;
  overflow: hidden;
  z-index: 1000;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}
.header__lang-dropdown.is-open {
  display: block;
}

.header__lang-option {
  display: block;
  padding: 10px 16px;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 400;
  text-decoration: none;
  transition: background 0.2s;
}
.header__lang-option:hover {
  background: rgba(255, 255, 255, 0.1);
}
.header__lang-option--active {
  color: #db060b;
  font-weight: 700;
}

.header__actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.header__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  height: 32px;
  width: 104px;
  font-size: 13px;
  font-weight: 700;
  transition: var(--transition);
  white-space: nowrap;
}

.header__btn .material-icons {
  font-size: 17px;
}

.header__btn--login {
  background: transparent;
  border: 2px solid #db060b;
  color: #db060b;
  box-shadow: 1px 3px 10px rgba(0, 0, 0, 0.1);
}

.header__btn--login:hover {
  transform: scale(1.05);
  opacity: 1;
}

.header__btn--register {
  background: #db060b;
  border: 2px solid #db060b;
  color: #fff;
}

.header__btn--register:hover {
  transform: scale(1.05);
  opacity: 1;
}

.header__menu-btn {
  display: none;
  color: #fff;
  padding: 4px;
}

.header__menu-btn .material-icons {
  font-size: 28px;
}

@media (max-width: 1100px) {
  .header {
    padding: 12px 6px;
    height: auto;
  }
  .header__inner {
    gap: 0;
  }
  .header__left {
    flex: 1;
    gap: 10px;
  }
  .header__sep {
    display: none;
  }
  .header__nav {
    display: none !important;
  }
  .header__search {
    flex: 1;
    min-width: 0;
  }
  .header__search-input {
    width: 100%;
    height: 30px;
    font-size: 12px;
  }
  .header__right {
    display: none;
  }
  .header__menu-btn {
    display: flex;
    margin-left: 10px;
  }
}
/* ================================================
   DRAWER MENU
   ================================================ */
.drawer {
  position: fixed;
  inset: 0;
  z-index: 200;
  visibility: hidden;
  pointer-events: none;
}

.drawer--open {
  visibility: visible;
  pointer-events: auto;
}

.drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.drawer--open .drawer__overlay {
  opacity: 1;
}

.drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  width: 340px;
  max-width: 100vw;
  height: 100%;
  background: #000;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform 0.3s ease;
}

.drawer--open .drawer__panel {
  transform: translateX(0);
}

/* ×ボタンのみの最小ヘッダー */
.drawer__top {
  display: flex;
  justify-content: flex-end;
  padding: 12px 16px 4px;
  flex-shrink: 0;
}

.drawer__close {
  color: #fff;
  padding: 4px;
  line-height: 1;
}

.drawer__close .material-icons {
  font-size: 28px;
}

/* ナビリスト */
.drawer__nav {
  flex: 1;
  padding: 0 24px;
}

.drawer__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.drawer__nav-li {
  border-bottom: 1px solid #484848;
}

.drawer__nav-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 15px 0;
  color: #fff;
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: none;
  font-family: inherit;
  transition: background 0.15s;
}
.drawer__nav-item:hover {
  background: #1a1a1a;
}
.drawer__nav-item--parent {
  padding: 0;
}
.drawer__nav-item--parent:hover {
  background: none;
}

.drawer__nav-icon {
  font-size: 22px;
  color: #7d7d7d;
  flex-shrink: 0;
}

.drawer__nav-text {
  flex: 1;
  font-size: 15px;
  font-weight: 700;
  text-align: left;
}

.drawer__nav-item-link {
  flex: 1;
  display: flex;
  align-items: center;
  color: #fff;
  text-decoration: none;
  padding: 15px 0;
}

.drawer__nav-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  align-self: stretch;
  background: none;
  border: none;
  border-left: 1px solid #484848;
  cursor: pointer;
  transition: background 0.15s;
}
.drawer__nav-toggle:hover {
  background: #1a1a1a;
}

.drawer__nav-arrow {
  font-size: 24px;
  color: #fff;
  flex-shrink: 0;
  transition: transform 0.2s;
}

.drawer__nav-toggle[aria-expanded=true] .drawer__nav-arrow {
  transform: rotate(180deg);
}

.drawer__nav-sub {
  list-style: none;
  margin: 0;
  padding: 0;
  background: #1a1a1a;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, padding 0.35s ease;
}
.drawer__nav-sub.is-open {
  padding: 0 0 8px 0;
  max-height: 500px;
  overflow-y: auto;
}
.drawer__nav-sub.is-open::-webkit-scrollbar {
  width: 4px;
}
.drawer__nav-sub.is-open::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
  border-radius: 4px;
}

.drawer__nav-sub-item {
  margin: 0;
}

.drawer__nav-sub-link {
  display: flex;
  align-items: center;
  padding: 12px 20px 12px 32px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 400;
  text-decoration: none;
  transition: background 0.2s;
}
.drawer__nav-sub-link:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #db060b;
}
.drawer__nav-sub-link .material-icons {
  margin-left: auto;
  font-size: 18px;
  color: rgba(255, 255, 255, 0.4);
}

.drawer__nav-sub-link--parent {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 0;
  background: none;
  border: none;
}

.drawer__nav-sub-link-text {
  flex: 1;
  display: block;
  padding: 12px 14px 12px 28px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  font-weight: 400;
  text-decoration: none;
  transition: background 0.15s;
}
.drawer__nav-sub-link-text:hover {
  background: rgba(255, 255, 255, 0.06);
}

.drawer__nav-sub-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  align-self: stretch;
  background: none;
  border: none;
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  transition: background 0.15s;
}
.drawer__nav-sub-toggle:hover {
  background: rgba(255, 255, 255, 0.06);
}

.drawer__nav-sub-arrow {
  margin-left: auto;
  font-size: 18px;
  color: rgba(255, 255, 255, 0.4);
  transition: transform 0.2s;
}

.drawer__nav-sub-toggle[aria-expanded=true] .drawer__nav-sub-arrow {
  transform: rotate(180deg);
}

.drawer__nav-sub--deep {
  background: #111;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  padding: 0;
}
.drawer__nav-sub--deep.is-open {
  max-height: 400px;
  padding: 0 0 6px 0;
  overflow-y: auto;
}
.drawer__nav-sub--deep.is-open::-webkit-scrollbar {
  width: 4px;
}
.drawer__nav-sub--deep.is-open::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 4px;
}

.drawer__nav-sub-link--deep {
  padding-left: 48px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
}

/* 言語行（ピルボタン） */
.drawer__nav-item--lang {
  cursor: default;
}

.drawer__lang-pills {
  display: flex;
  gap: 0;
  border-radius: 4px;
  overflow: hidden;
  padding: 3px;
  background-color: rgb(40, 40, 40);
}

.drawer__lang-pill {
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 400;
  color: #fff;
  white-space: nowrap;
  border-radius: 4px;
}

.drawer__lang-pill--active {
  background: #fff;
  color: black;
}

/* 下部ボタン */
.drawer__actions {
  padding: 20px 24px 36px;
  display: flex;
  flex-direction: row;
  gap: 10px;
}

.drawer__btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  border-radius: 8px;
  height: 48px;
  font-size: 16px;
  font-weight: 700;
}

.drawer__btn .material-icons {
  font-size: 24px;
}

.drawer__btn--login {
  background: transparent;
  border: 2px solid #db060b;
  color: #db060b;
}

.drawer__btn--register {
  background: #db060b;
  border: 2px solid #db060b;
  color: #fff;
}

/* ================================================
   ADMIN BAR OFFSET (logged-in: 32px)
   ================================================ */
body.admin-bar .header {
  top: 32px;
}
body.admin-bar .column-subheader {
  top: 82px;
}
body.admin-bar .column-subheader + .breadcrumb {
  margin-top: 153px;
}
body.admin-bar .post-detail__sidebar-banner {
  top: 163px;
}
@media (max-width: 782px) {
  body.admin-bar .header {
    top: 46px;
  }
  body.admin-bar .column-subheader {
    top: 0;
  }
  body.admin-bar .column-subheader + .breadcrumb {
    margin-top: 0;
  }
  body.admin-bar .post-detail__sidebar-banner {
    top: auto;
  }
}

/* ================================================
   FOOTER
   ================================================ */
.footer {
  padding: 90px 0;
  background: #000;
}

.footer__inner {
  margin: 0 auto;
  width: 90%;
}

/* ---- Logo (mobile only) ---- */
.footer__logo-wrap {
  display: none; /* hidden on desktop */
  margin-bottom: 24px;
}

.footer__logo {
  display: inline-flex;
  align-items: center;
}

.footer__logo-icon {
  -o-object-fit: contain;
     object-fit: contain;
  height: 50px;
}

/* ---- Tagline ---- */
.footer__tagline {
  font-size: 28px;
  font-weight: 700;
  color: var(--color-white);
  margin-bottom: 50px;
  line-height: 1.3;
  display: flex;
  align-items: center;
  line-height: 1;
  gap: 6px;
}

.footer__tagline-slash {
  color: var(--color-red);
  font-weight: 400;
  font-size: 38px;
}

/* ---- Main: 4-column grid ---- */
/* [social icons | 企業 | 最新情報 | リソース] */
.footer__main {
  display: flex;
  gap: 120px;
  margin-bottom: 56px;
  align-items: start;
}

/* ---- Social icons (col 1) ---- */
.footer__social {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 13px;
  align-items: center;
}

.footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  overflow: hidden;
  flex-shrink: 0;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.footer__social-link:hover {
  transform: translateY(-2px);
  opacity: 0.8;
}

.footer__social-link img {
  width: 20px;
  height: 20px;
  -o-object-fit: contain;
     object-fit: contain;
}

/* YouTube: SVG on red background */
.footer__social-link--yt {
  background: #ff0000;
}

.footer__social-link--yt svg {
  width: 18px;
  height: 18px;
  color: #fff;
  flex-shrink: 0;
}

/* ---- Link columns (col 2-4) ---- */
.footer__col {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.footer__col-title {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  color: #fff;
}

.footer__col-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer__col-list li {
  line-height: 1.4;
}

.footer__col-link {
  font-size: 13px;
  color: #bfbfbf;
  transition: color 0.2s ease;
}

.footer__col-link:hover {
  color: var(--color-white);
  opacity: 1;
}

/* ---- Separator ---- */
.footer__sep {
  height: 1px;
  background: rgba(255, 255, 255, 0.1490196078);
  margin-bottom: 50px;
}

/* ---- Bottom row ---- */
.footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  gap: 16px;
}

.footer__copyright {
  font-size: 12px;
  color: #fff;
}

.footer__legal-links {
  display: flex;
  gap: 20px;
  align-items: center;
}

.footer__legal-link {
  font-size: 12px;
  color: #bfbfbf;
  transition: color 0.2s ease;
  white-space: nowrap;
}

.footer__legal-link:hover {
  color: var(--color-white);
  opacity: 1;
}

/* ---- Disclaimer ---- */
.footer__disclaimer {
  font-size: 9px;
  color: #717171;
}

/* ---- Footer: tablet (769px–1100px) ---- */
@media (min-width: 769px) and (max-width: 1100px) {
  .footer__main {
    gap: 40px;
  }
  .footer__tagline {
    font-size: 22px;
  }
  .footer__tagline-slash {
    font-size: 30px;
  }
  .footer__bottom {
    flex-wrap: wrap;
    gap: 12px;
  }
  .footer__legal-links {
    flex-wrap: wrap;
    gap: 12px;
  }
}
@media (max-width: 768px) {
  .footer {
    padding: 40px 0 32px;
  }
  /* Show logo on mobile */
  .footer__logo-wrap {
    display: block;
  }
  .footer__tagline {
    font-size: 16px;
    margin-bottom: 36px;
  }
  .footer__tagline-slash {
    font-size: 21px;
  }
  /* Single column: social full, then each col stacked */
  .footer__main {
    flex-direction: column;
    gap: 30px;
    margin-bottom: 30px;
  }
  .footer__social {
    grid-column: auto;
  }
  .footer__col {
    gap: 4px;
  }
  .footer__col-title {
    font-size: 12px;
  }
  .footer__col-list {
    gap: 0px;
  }
  .footer__col-link {
    font-size: 12px;
  }
  .footer__sep {
    margin-bottom: 30px;
  }
  .footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
  }
  .footer__legal-links {
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
  }
  .footer__bottom {
    margin-bottom: 30px;
  }
}
/* ================================================
   SUBPAGE HERO (shared component)
   ================================================ */
.subpage-hero {
  height: 294px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.subpage-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #eee center/cover no-repeat;
  background-image: inherit;
  filter: brightness(0.7);
}

.subpage-hero__inner {
  position: relative;
  width: 960px;
  max-width: 100%;
}

.subpage-hero__title {
  font-family: var(--font-sans);
  font-size: 48px;
  font-weight: 700;
  color: #fff;
  line-height: 1.4;
}

.subpage-hero__subtitle {
  font-family: var(--font-sans);
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  line-height: 1.4;
}

.subpage-hero__title-row {
  display: flex;
  align-items: flex-end;
  gap: 6px;
}

.subpage-hero__title-slash {
  font-family: var(--font-heading);
  font-size: 48px;
  font-weight: 400;
  color: #db060b;
  line-height: 1;
}

.subpage-hero__title-row .subpage-hero__title {
  font-family: var(--font-heading);
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
}

.subpage-hero__title-row + .subpage-hero__subtitle {
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 400;
  margin-top: 5px;
}

@media (max-width: 769px) {
  .subpage-hero {
    height: 438px;
  }
  .subpage-hero__inner {
    width: 82.5%;
  }
  .subpage-hero__title {
    font-size: 48px;
  }
  .subpage-hero__subtitle {
    font-size: 24px;
  }
  .subpage-hero__title-slash {
    font-size: 32px;
  }
  .subpage-hero__title-row .subpage-hero__title {
    font-size: 32px;
  }
  .subpage-hero__title-row + .subpage-hero__subtitle {
    font-size: 12px;
  }
}
/* ================================================
   ARTICLE CONTENT (Gutenberg output)
   ================================================ */
.article-content {
  font-family: var(--font-sans);
  font-size: 16px;
  margin-top: 28px;
  line-height: 2;
  color: #333;
  word-break: break-word;
  overflow-wrap: break-word;
}

/* --- Links --- */
.article-content a:not(.toc__link):not(.cta-button) {
  color: #4495f6;
  text-decoration: underline;
}

.article-content a:hover {
  opacity: 0.7;
}

/* --- Headings --- */
.article-content h2 {
  background: #000;
  border-radius: 4px;
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  padding: 10px 18px;
  margin: 10px 0;
  line-height: 1.6;
}

.article-content h3 {
  border-left: 3px solid #000;
  font-size: 20px;
  font-weight: 700;
  color: #000;
  margin: 46px 0 10px;
  padding-left: 8px;
  line-height: 1.6;
}

.article-content h4 {
  font-size: 18px;
  font-weight: 700;
  color: #000;
  margin: 30px 0 10px;
  line-height: 1.6;
}

/* --- Paragraph --- */
.article-content p {
  color: #000;
  font-weight: 400;
  line-height: 1.8;
  margin-bottom: 1em;
}

/* --- Lists --- */
.article-content ul {
  list-style: disc;
  padding-left: 1.5em;
  margin-bottom: 1em;
}

.article-content ol:not(.toc__list):not(.toc__sublist) {
  list-style: decimal;
  padding-left: 1.5em;
  margin-bottom: 1em;
}

.article-content li {
  color: #000;
  font-weight: 400;
  margin: 6px 0;
  line-height: 1.8;
}

/* --- Strong / Emphasis --- */
.article-content strong {
  font-weight: 700;
}

.article-content em {
  font-style: italic;
}

/* --- Table --- */
.article-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
}

.article-content th {
  background: #d9d9d9;
  border: 1px solid #d0d0d0;
  font-weight: 700;
  padding: 12px 18px;
  text-align: left;
}

.article-content td {
  border: 1px solid #d0d0d0;
  padding: 12px 18px;
}

/* --- Images / Figures --- */
.article-content img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}

.article-content figure {
  margin: 20px 0;
}

.article-content figcaption {
  font-size: 13px;
  color: #888;
  margin-top: 8px;
  text-align: center;
}

/* --- Blockquote --- */
.article-content blockquote {
  border-left: 4px solid #d0d0d0;
  padding: 12px 18px;
  margin: 20px 0;
  color: #555;
  background: #f8f8f8;
}

/* --- Horizontal Rule --- */
.article-content hr {
  border: none;
  border-top: 1px solid #d0d0d0;
  margin: 40px 0;
}

/* --- Code --- */
.article-content pre {
  background: #f5f5f5;
  border-radius: 4px;
  padding: 16px;
  overflow-x: auto;
  margin: 20px 0;
  font-size: 14px;
}

.article-content code {
  background: #f5f5f5;
  padding: 2px 6px;
  border-radius: 3px;
  font-size: 0.9em;
}

.article-content pre code {
  background: none;
  padding: 0;
}

/* --- Responsive --- */
@media (max-width: 769px) {
  .article-content {
    font-size: 15px;
    line-height: 1.8;
  }
  .article-content h2 {
    font-size: 20px;
    padding: 10px 14px;
    margin: 10px 0;
  }
  .article-content h3 {
    font-size: 18px;
    margin: 30px 0 8px;
  }
  .article-content h4 {
    font-size: 16px;
  }
  .article-content p {
    font-size: 15px;
  }
  .article-content th,
  .article-content td {
    padding: 8px 12px;
    font-size: 14px;
  }
}
.form-section .wpcf7-form {
  max-width: 600px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 50px;
  padding: 0 20px;
  box-sizing: border-box;
}

.form-section__group {
  background-color: #f2f2f2;
  border-radius: 8px;
  padding: 30px;
}

.form-section__group-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  color: #000;
  text-align: center;
  margin: 0 0 20px;
  padding: 0 0 20px;
  border-bottom: 1px solid #d2d2d2;
}

.form-section__field {
  margin-bottom: 20px;
}

.form-section__field:last-child {
  margin-bottom: 0;
}

.form-section__label {
  display: block;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 15px;
  color: #000;
  margin-bottom: 10px;
}

.form-section__req {
  color: #f23a3c;
  margin-left: 5px;
}

.form-section .wpcf7-form-control-wrap {
  display: block;
}

.form-section .wpcf7-text,
.form-section .wpcf7-email,
.form-section .wpcf7-url {
  display: block;
  width: 100%;
  height: 50px;
  padding: 10px;
  background-color: #fff;
  border: none;
  border-radius: 4px;
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 15px;
  color: #333;
  box-sizing: border-box;
}

.form-section .wpcf7-text::-moz-placeholder, .form-section .wpcf7-email::-moz-placeholder, .form-section .wpcf7-url::-moz-placeholder {
  color: #ccc;
}

.form-section .wpcf7-text::placeholder,
.form-section .wpcf7-email::placeholder,
.form-section .wpcf7-url::placeholder {
  color: #ccc;
}

.form-section__select-wrap {
  position: relative;
}

.form-section__select-arrow {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #bdbdbd;
  font-size: 20px;
  pointer-events: none;
}

.form-section .wpcf7-select {
  display: block;
  width: 100%;
  background-color: #fff;
  border: 1px solid #eee;
  border-radius: 4px;
  padding: 15px 10px;
  font-family: var(--font-sans);
  font-size: 15px;
  color: #333;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  box-sizing: border-box;
  cursor: pointer;
}

.form-section .wpcf7-radio {
  display: flex;
  flex-direction: column;
}

.form-section .wpcf7-list-item {
  display: flex;
  align-items: center;
  padding: 10px;
  border-radius: 4px;
  margin: 0;
}

.form-section .wpcf7-list-item:hover {
  background-color: #fafafa;
}

.form-section .wpcf7-list-item label {
  display: flex;
  align-items: center;
  cursor: pointer;
}

.form-section .wpcf7-list-item input[type=radio] {
  width: 15px;
  height: 15px;
  margin-right: 10px;
  flex-shrink: 0;
}

.form-section .wpcf7-list-item-label {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 15px;
  color: #333;
}

.form-section .wpcf7-file {
  display: block;
  width: 100%;
  border: 1px dashed #ddd;
  border-radius: 2px;
  padding: 15px;
  color: #555;
  font-family: var(--font-sans);
  font-size: 14px;
  box-sizing: border-box;
  background-color: #fff;
}

.form-section .wpcf7-textarea {
  display: block;
  width: 100%;
  height: 160px;
  border: 1px solid #eee;
  border-radius: 4px;
  padding: 10px;
  font-family: var(--font-sans);
  font-size: 15px;
  color: #333;
  background-color: #fff;
  box-sizing: border-box;
  resize: vertical;
}

.form-section .wpcf7-textarea::-moz-placeholder {
  color: #ccc;
}

.form-section .wpcf7-textarea::placeholder {
  color: #ccc;
}

.form-section__submit-wrap {
  display: flex;
  justify-content: center;
}

.form-section .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 279px;
  height: 60px;
  background-color: #db060b;
  border: none;
  border-radius: 128px;
  color: #fff;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 18px;
  cursor: pointer;
  transition: opacity 0.3s;
}

.form-section .wpcf7-submit:hover {
  opacity: 0.8;
}

@media screen and (max-width: 769px) {
  .form-section .wpcf7-form {
    padding: 0;
  }
  .form-section__group {
    padding: 20px;
  }
  .form-section .wpcf7-submit {
    width: 100%;
    max-width: 279px;
  }
}
.fadein {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fadein--left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fadein--right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fadein--scale {
  opacity: 0;
  transform: scale(0.95);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fadein.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.fadein--left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.fadein--right.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.fadein--scale.is-visible {
  opacity: 1;
  transform: scale(1);
}

.fadein-delay-1 {
  transition-delay: 0.1s;
}

.fadein-delay-2 {
  transition-delay: 0.2s;
}

.fadein-delay-3 {
  transition-delay: 0.3s;
}

.fadein-delay-4 {
  transition-delay: 0.4s;
}

@media (prefers-reduced-motion: reduce) {
  .fadein,
  .fadein--left,
  .fadein--right,
  .fadein--scale {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.navigation.pagination {
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 40px 0 20px;
}

.navigation.pagination .nav-links {
  display: flex;
  align-items: center;
  gap: 8px;
}

.navigation.pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border-radius: 8px;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  color: #333;
  background: rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.12);
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.navigation.pagination .page-numbers:hover {
  background: rgba(219, 6, 11, 0.08);
  border-color: rgba(219, 6, 11, 0.4);
  color: #db060b;
}
.navigation.pagination .page-numbers.current {
  background: #db060b;
  border-color: #db060b;
  color: #fff;
  pointer-events: none;
}
.navigation.pagination .page-numbers.dots {
  background: transparent;
  border: none;
  color: rgba(0, 0, 0, 0.3);
  pointer-events: none;
  min-width: 24px;
  padding: 0;
}

.navigation.pagination .prev.page-numbers,
.navigation.pagination .next.page-numbers {
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.15);
  padding: 0 8px;
}
.navigation.pagination .prev.page-numbers:hover,
.navigation.pagination .next.page-numbers:hover {
  background: rgba(0, 0, 0, 0.05);
  border-color: rgba(0, 0, 0, 0.25);
}
.navigation.pagination .prev.page-numbers .material-icons,
.navigation.pagination .next.page-numbers .material-icons {
  font-size: 22px;
  color: #333;
}

.news-list .navigation.pagination .page-numbers,
.ir-list .navigation.pagination .page-numbers {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.12);
}
.news-list .navigation.pagination .page-numbers:hover,
.ir-list .navigation.pagination .page-numbers:hover {
  background: rgba(219, 6, 11, 0.15);
  border-color: rgba(219, 6, 11, 0.4);
  color: #fff;
}
.news-list .navigation.pagination .page-numbers.current,
.ir-list .navigation.pagination .page-numbers.current {
  background: #db060b;
  border-color: #db060b;
  color: #fff;
}
.news-list .navigation.pagination .page-numbers.dots,
.ir-list .navigation.pagination .page-numbers.dots {
  color: rgba(255, 255, 255, 0.4);
}
.news-list .navigation.pagination .prev.page-numbers,
.news-list .navigation.pagination .next.page-numbers,
.ir-list .navigation.pagination .prev.page-numbers,
.ir-list .navigation.pagination .next.page-numbers {
  border-color: rgba(255, 255, 255, 0.2);
}
.news-list .navigation.pagination .prev.page-numbers:hover,
.news-list .navigation.pagination .next.page-numbers:hover,
.ir-list .navigation.pagination .prev.page-numbers:hover,
.ir-list .navigation.pagination .next.page-numbers:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.3);
}
.news-list .navigation.pagination .prev.page-numbers .material-icons,
.news-list .navigation.pagination .next.page-numbers .material-icons,
.ir-list .navigation.pagination .prev.page-numbers .material-icons,
.ir-list .navigation.pagination .next.page-numbers .material-icons {
  color: #fff;
}

@media (max-width: 769px) {
  .navigation.pagination {
    padding: 30px 0 10px;
  }
  .navigation.pagination .nav-links {
    gap: 6px;
  }
  .navigation.pagination .page-numbers {
    min-width: 36px;
    height: 36px;
    font-size: 13px;
    padding: 0 8px;
  }
}
.tooltip {
  position: relative;
  display: inline-block;
}
.tooltip__trigger {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: none;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 4px;
  padding: 6px 12px;
  font-size: 13px;
  color: #888;
  cursor: pointer;
  transition: color 0.3s, border-color 0.3s;
  white-space: nowrap;
}
.tooltip__trigger:hover {
  color: #333;
  border-color: rgba(0, 0, 0, 0.3);
}
.tooltip__trigger[aria-expanded=true] {
  color: #333;
  border-color: rgba(0, 0, 0, 0.4);
}
.tooltip__icon {
  font-size: 14px;
}
.tooltip__content {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  z-index: 100;
  width: 320px;
  padding: 16px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  font-size: 13px;
  line-height: 1.7;
  color: #555;
}
.tooltip__content::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 20px;
  border: 6px solid transparent;
  border-top-color: rgba(0, 0, 0, 0.12);
}
.tooltip__content::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 21px;
  border: 5px solid transparent;
  border-top-color: #fff;
}
.tooltip__content a {
  color: #db060b;
  text-decoration: underline;
}
.tooltip__content a:hover {
  color: #a00508;
}
.tooltip__content p {
  margin: 0;
}
@media (max-width: 769px) {
  .tooltip__content {
    width: calc(100vw - 48px);
    max-width: 320px;
    left: 0;
    right: auto;
  }
  .tooltip__content::before {
    left: 20px;
  }
  .tooltip__content::after {
    left: 21px;
  }
}

.toc {
  background: #f8f9fa;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  margin-bottom: 32px;
  overflow: hidden;
}
.toc__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 20px;
  background: none;
  border: none;
  cursor: pointer;
}
.toc__btn:hover {
  background: rgba(0, 0, 0, 0.02);
}
.toc__heading {
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 700;
  color: #333;
}
.toc__arrow {
  font-size: 22px;
  color: #888;
  transition: transform 0.3s;
}
.toc__btn[aria-expanded=false] .toc__arrow {
  transform: rotate(180deg);
}
.toc__body {
  overflow: hidden;
  transition: max-height 0.3s ease;
  padding: 0 20px;
}
.toc__btn[aria-expanded=true] + .toc__body {
  max-height: none;
  padding-bottom: 16px;
}
.toc__btn[aria-expanded=false] + .toc__body {
  max-height: 0;
  padding-bottom: 0;
}
.toc__list {
  list-style: none;
  counter-reset: toc-counter;
  padding: 0;
  margin: 0;
}
.toc__item {
  counter-increment: toc-counter;
  margin-bottom: 2px;
}
.toc__item > .toc__link::before {
  content: counter(toc-counter) ".";
  margin-right: 6px;
  font-weight: 700;
  color: #db060b;
}
.toc__link {
  display: block;
  padding: 6px 0;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 400;
  color: #333;
  text-decoration: none;
  transition: color 0.2s;
  line-height: 1.5;
}
.toc__link:hover {
  color: #db060b;
}
.toc__link--sub {
  font-size: 13px;
  font-weight: 400;
  color: #555;
  padding: 4px 0;
}
.toc__link--sub:hover {
  color: #db060b;
}
.toc__link--sub::before {
  content: none !important;
}
.toc__sublist {
  list-style: none;
  padding: 0 0 0 20px;
  margin: 0;
  border-left: 2px solid #e0e0e0;
}
.toc__subitem {
  margin-bottom: 0;
}

@media (max-width: 769px) {
  .toc {
    margin-bottom: 24px;
  }
  .toc__btn {
    padding: 12px 16px;
  }
  .toc__body {
    padding: 0 16px;
  }
  .toc__btn[aria-expanded=true] + .toc__body {
    padding-bottom: 12px;
  }
  .toc__heading {
    font-size: 14px;
  }
  .toc__link {
    font-size: 13px;
  }
  .toc__link--sub {
    font-size: 12px;
  }
}
/* ================================================
   SHORTCODES (FAQ & CTA Button)
   ================================================ */
.faq-block {
  margin: 32px 0;
}

.faq-block__item {
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  margin-bottom: 8px;
  overflow: hidden;
}
.faq-block__item:last-child {
  margin-bottom: 0;
}

.faq-block__question {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 10px 16px;
  background: #f8f9fa;
  border: none;
  cursor: pointer;
  text-align: left;
  font-size: 15px;
  font-weight: 700;
  color: #1a1a2e;
  transition: background 0.2s;
}
.faq-block__question:hover {
  background: #f0f0f0;
}
.faq-block__question[aria-expanded=true] .faq-block__arrow {
  transform: rotate(180deg);
}

.faq-block__question-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  min-width: 28px;
  border-radius: 50%;
  background: #e63946;
  color: #fff;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
}

.faq-block__question-text {
  flex: 1;
}

.faq-block__arrow {
  font-size: 20px;
  color: #999;
  transition: transform 0.3s;
}

.faq-block__answer {
  display: none;
  padding: 16px 20px;
  border-top: 1px solid #e8e8e8;
}
.faq-block__item.is-open .faq-block__answer {
  display: flex;
  gap: 12px;
}

.faq-block__answer-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  min-width: 28px;
  border-radius: 50%;
  background: #1a1a2e;
  color: #fff;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
}

.faq-block__answer-text {
  flex: 1;
  font-size: 14px;
  line-height: 1.8;
  color: #333;
}
.faq-block__answer-text p {
  margin: 0;
}
.faq-block__answer-text p + p {
  margin-top: 8px;
}

.cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 30px;
  transition: opacity 0.2s, transform 0.2s;
  margin: 16px 0;
}
.cta-button:hover {
  opacity: 0.85;
  transform: translateY(-1px);
}
.cta-button .material-icons {
  font-size: 20px;
}
.cta-button--large {
  padding: 14px 40px;
  font-size: 16px;
  width: 100%;
}
.cta-button--small {
  padding: 10px 28px;
  font-size: 14px;
}
.cta-button--red {
  background: #e63946;
  color: #fff;
}
.cta-button--blue {
  background: #1a73e8;
  color: #fff;
}
.cta-button--green {
  background: #0f9d58;
  color: #fff;
}
.cta-button--dark {
  background: #1a1a2e;
  color: #fff;
}

/* ================================================
   SHORTCODES ULTIMATE — テーマ上書きスタイル
   プラグインのデフォルトCSSをテーマに合わせて調整

   ※ .article-content 内の基準: PC 16px / SP 15px
   ※ 本文と同サイズ = inherit or 16px
   ※ 補足・メタ情報のみ 14px を許容
   ================================================ */
.article-content .su-box,
.article-content .su-note,
.article-content .su-table,
.article-content .su-accordion,
.article-content .su-spoiler,
.article-content .su-list,
.article-content .su-row,
.article-content .su-tabs,
.article-content .su-quote-cite,
.article-content .su-service,
.article-content .su-animate {
  margin-top: 24px;
  margin-bottom: 24px;
}

.su-accordion .su-spoiler {
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  margin-bottom: 8px;
  overflow: hidden;
  transition: box-shadow 0.2s;
}
.su-accordion .su-spoiler:last-child {
  margin-bottom: 0;
}
.su-accordion .su-spoiler:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.su-accordion .su-spoiler-title {
  background: #f8f9fa !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1a1a2e !important;
  padding: 14px 18px !important;
  cursor: pointer;
  transition: background 0.2s;
  position: relative;
}
.su-accordion .su-spoiler-title:hover {
  background: #eef0f2 !important;
}
.su-accordion .su-spoiler-title::after {
  transition: transform 0.3s;
}
.su-accordion .su-spoiler-opened > .su-spoiler-title {
  border-bottom: 1px solid #e8e8e8;
}
.su-accordion .su-spoiler-content {
  font-size: inherit !important;
  line-height: 1.8;
  color: #333;
  padding: 18px 20px !important;
}
.su-accordion .su-spoiler-closed > .su-spoiler-content {
  padding: 0 !important;
}
.su-accordion .su-spoiler-icon {
  top: 50% !important;
  transform: translateY(-50%);
  left: 18px !important;
}
.su-accordion .su-spoiler-title {
  padding-left: 44px !important;
}

.su-box {
  border-radius: 8px !important;
  overflow: hidden;
}
.su-box .su-box-title {
  font-size: 17px !important;
  font-weight: 700 !important;
  padding: 14px 18px !important;
}
.su-box .su-box-content {
  font-size: inherit !important;
  line-height: 1.8;
  color: #444;
  padding: 18px !important;
}
.su-box .su-box-content p:last-child {
  margin-bottom: 0;
}

.su-button {
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  transition: opacity 0.2s, transform 0.2s !important;
}
.su-button:hover {
  opacity: 0.85;
  transform: translateY(-1px);
}
.su-button.su-button-style-ghost {
  border: 2px solid #db060b !important;
  color: #db060b !important;
  background: transparent !important;
}
.su-button.su-button-style-ghost span {
  color: #db060b !important;
  border-color: #db060b !important;
}
.su-button.su-button-style-ghost:hover {
  background: #db060b !important;
  color: #fff !important;
  opacity: 1;
}
.su-button.su-button-style-ghost:hover span {
  color: #fff !important;
  border-color: #db060b !important;
}
.su-button.su-button-style-flat {
  background-color: #db060b !important;
  color: #fff !important;
}
.su-button.su-button-style-3d {
  color: #fff !important;
}

.su-note {
  border-radius: 8px !important;
  font-size: inherit !important;
  line-height: 1.8;
}
.su-note .su-note-inner {
  padding: 18px 20px !important;
}
.su-note .su-note-inner p:last-child {
  margin-bottom: 0;
}

.su-spoiler:not(.su-accordion .su-spoiler) {
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
  transition: box-shadow 0.2s;
}
.su-spoiler:not(.su-accordion .su-spoiler):hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.su-spoiler:not(.su-accordion .su-spoiler) .su-spoiler-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  padding: 14px 18px !important;
  background: #f8f9fa !important;
  cursor: pointer;
  transition: background 0.2s;
}
.su-spoiler:not(.su-accordion .su-spoiler) .su-spoiler-title:hover {
  background: #eef0f2 !important;
}
.su-spoiler:not(.su-accordion .su-spoiler).su-spoiler-opened > .su-spoiler-title {
  border-bottom: 1px solid #e0e0e0;
}
.su-spoiler:not(.su-accordion .su-spoiler) .su-spoiler-content {
  padding: 18px 20px !important;
  font-size: inherit !important;
  line-height: 1.8;
}
.su-spoiler:not(.su-accordion .su-spoiler) .su-spoiler-content p:last-child {
  margin-bottom: 0;
}
.su-spoiler:not(.su-accordion .su-spoiler).su-spoiler-closed > .su-spoiler-content {
  padding: 0 !important;
}
.su-spoiler:not(.su-accordion .su-spoiler) .su-spoiler-icon {
  top: 50% !important;
  transform: translateY(-50%);
  left: 18px !important;
}
.su-spoiler:not(.su-accordion .su-spoiler) .su-spoiler-title {
  padding-left: 44px !important;
}

.su-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.su-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: inherit;
  line-height: 1.6;
}
.su-table th,
.su-table td {
  padding: 12px 16px;
  border: 1px solid #ddd;
  text-align: left;
}
.su-table th {
  background: #1a1a2e;
  color: #fff;
  font-weight: 700;
  font-size: 14px;
}
.su-table tbody tr:nth-child(even) {
  background: #f8f9fa;
}
.su-table tbody tr {
  transition: background 0.15s;
}
.su-table tbody tr:hover {
  background: #eef2ff;
}

.su-list {
  border-radius: 8px;
  padding: 18px 20px !important;
  background: #f8f9fa;
}
.su-list ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 0;
}
.su-list li {
  font-size: inherit !important;
  line-height: 1.7;
  color: #333;
  padding: 5px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.su-list li:last-child {
  border-bottom: none;
}
.su-list .su-list-icon {
  margin-right: 8px;
}
.su-list.su-list-merit {
  background: #edf7ee;
  border-left: 4px solid #2e7d32;
}
.su-list.su-list-demerit {
  background: #fdedef;
  border-left: 4px solid #c62828;
}

.su-highlight {
  padding: 2px 6px;
  border-radius: 3px;
  background: #fef3cd !important;
  color: #333 !important;
}

.su-divider {
  margin: 24px 0 !important;
  border-color: #e0e0e0 !important;
}

.su-row .su-column {
  font-size: inherit;
  line-height: 1.8;
  color: #444;
}
.su-row .su-column strong {
  display: block;
  font-size: 16px;
  color: #1a1a2e;
  margin-bottom: 6px;
}

.su-animate {
  text-align: center;
}

.su-tabs {
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  overflow: hidden;
}
.su-tabs .su-tabs-nav {
  background: #f8f9fa;
  border-bottom: 1px solid #e8e8e8;
}
.su-tabs .su-tabs-nav span {
  padding: 12px 20px !important;
  font-size: 15px !important;
  font-weight: 700;
  color: #555;
  border: none !important;
  transition: color 0.2s, background 0.2s;
}
.su-tabs .su-tabs-nav span:hover {
  color: #1a1a2e;
  background: #eee;
}
.su-tabs .su-tabs-nav span.su-tabs-current {
  color: #db060b;
  background: #fff;
  border-bottom: 2px solid #db060b !important;
}
.su-tabs .su-tabs-pane {
  padding: 20px !important;
  font-size: inherit !important;
  line-height: 1.8;
  color: #333;
}

.su-quote-cite {
  border-left: 4px solid #db060b;
  background: #f8f9fa;
  border-radius: 0 8px 8px 0;
  padding: 18px 24px !important;
  font-size: inherit !important;
  line-height: 1.8;
  color: #333;
}
.su-quote-cite::before {
  color: #db060b !important;
}

.su-service {
  padding: 20px;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  transition: box-shadow 0.2s;
}
.su-service:hover {
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}
.su-service .su-service-title {
  font-size: 17px !important;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 8px;
}
.su-service .su-service-content {
  font-size: inherit !important;
  line-height: 1.8;
  color: #333;
}

.su-label {
  font-size: 12px !important;
  font-weight: 700;
  padding: 3px 10px !important;
  border-radius: 4px !important;
}

@media (max-width: 769px) {
  .su-table th,
  .su-table td {
    padding: 8px 10px;
    font-size: 14px;
    white-space: nowrap;
  }
  .su-table th {
    font-size: 13px;
  }
  .su-box .su-box-title {
    font-size: 16px !important;
  }
  .su-box .su-box-content {
    padding: 14px !important;
  }
  .su-note .su-note-inner {
    padding: 14px 16px !important;
  }
  .su-row .su-column {
    width: 100% !important;
    margin-bottom: 16px;
  }
  .su-row .su-column:last-child {
    margin-bottom: 0;
  }
  .su-accordion .su-spoiler-title,
  .su-spoiler:not(.su-accordion .su-spoiler) .su-spoiler-title {
    font-size: 15px !important;
    padding: 12px 14px 12px 40px !important;
  }
  .su-accordion .su-spoiler-icon,
  .su-spoiler:not(.su-accordion .su-spoiler) .su-spoiler-icon {
    left: 14px !important;
  }
  .su-tabs .su-tabs-nav span {
    padding: 10px 14px !important;
    font-size: 14px !important;
  }
  .su-service {
    padding: 16px;
  }
  .su-quote-cite {
    padding: 14px 18px !important;
  }
}
/* ================================================
   IZAKA-YA Static Site Styles (BEM)
   ================================================ */
/* ---------- CSS Variables ---------- */
/* ================================================
   HERO SLIDER (Swiper)
   ================================================ */
/* SP 固定ヒーロー画像（SPのみ表示・PCは読み込まない） */
.hero-sp {
  display: none;
}

.hero-swiper {
  position: relative;
  background: var(--color-bg);
  overflow: hidden;
}

.hero-swiper__slide {
  border-radius: 12px;
  overflow: hidden;
}

.hero-swiper__link {
  display: block;
  overflow: hidden;
  border-radius: 12px;
}

.hero-swiper__link:hover .hero-swiper__img {
  transform: scale(1.05);
}

.hero-swiper__img {
  width: 100%;
  aspect-ratio: 21/11;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.hero-swiper__prev,
.hero-swiper__next {
  width: 44px;
  height: 44px;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 50%;
  color: var(--color-white);
  top: 50%;
  transform: translateY(-50%);
  margin-top: 0;
}

.hero-swiper__prev:hover,
.hero-swiper__next:hover {
  background: rgba(0, 0, 0, 0.8);
}

.hero-swiper__prev::after,
.hero-swiper__next::after {
  font-size: 18px;
}

.hero-swiper__pagination .swiper-pagination-bullet {
  background: rgba(255, 255, 255, 0.3);
  width: 8px;
  height: 8px;
  opacity: 1;
}

.hero-swiper__pagination .swiper-pagination-bullet-active {
  background: var(--color-red);
  transform: scale(1.2);
}

/* ================================================
   PARTNERS
   ================================================ */
.partners {
  padding: 0;
  margin-top: 25px;
}

.partners__inner {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  padding: 12px 20px;
  margin: 0 16px;
  width: calc(100% - 32px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  box-sizing: border-box;
}

.partners__trustpilot {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  text-decoration: none;
}

.partners__trustpilot-img {
  height: 28px;
  width: auto;
}

.partners__review-text {
  font-size: 10px;
  color: #fff;
  font-weight: 400;
  line-height: 1.4;
  flex-shrink: 0;
}

.partners__logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 40px;
}

.partners__logo {
  width: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.partners__logo--alchemy-pay {
  height: 29px;
}

.partners__logo--fireblocks {
  height: 24px;
}

.partners__logo--bitcoin-com {
  height: 38px;
}

.partners__logo--coinmarketcap {
  height: 30px;
}

.partners__logo--lbank {
  height: 24px;
}

.partners__logo--mastercard {
  height: 44px;
}

/* ================================================
   SECTION HEADING (reusable)
   ================================================ */
.section-heading {
  display: flex;
  align-items: flex-end;
  gap: 23px;
}

.section-heading--center {
  justify-content: center;
}

.section-heading__accent {
  font-family: var(--font-heading);
  font-size: 48px;
  font-weight: 400;
  color: var(--color-red);
  line-height: 1;
  margin-right: -17px;
}

.section-heading__title {
  font-family: var(--font-heading);
  font-size: 48px;
  font-weight: 700;
  color: var(--color-white);
  line-height: 1;
}

.section-heading__title--ghost {
  color: rgba(255, 255, 255, 0.08);
  font-size: 56px;
}

.section-heading__sub {
  font-size: 16px;
  color: var(--color-text);
}

.section-heading__link {
  font-size: 16px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 5px;
  transition: var(--transition);
}

.section-heading__link:hover {
  color: var(--color-white);
  opacity: 1;
  transform: translateX(6px);
}

.section-heading__link .material-icons {
  font-size: 20px;
  transition: var(--transition);
}

.section-heading__link:hover .material-icons {
  transform: translateX(6px);
}

/* ================================================
   CAMPAIGN
   ================================================ */
.campaign {
  padding: 110px 0 0;
}

.campaign__inner {
  max-width: 961px;
  margin: 0 auto;
}

.campaign .section-heading {
  margin-bottom: 40px;
}

.campaign__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}

.campaign__card {
  display: block;
  overflow: hidden;
  transition: var(--transition);
  width: calc(33.33% - 20px);
}

.campaign__card:hover {
  opacity: 1;
}

.campaign__card-image {
  width: 100%;
  height: 156px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
}

.campaign__card-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: var(--transition);
}

.campaign__card:hover .campaign__card-img {
  transform: scale(1.05);
}

.campaign__card-body {
  padding: 0;
}

.campaign__card-date {
  font-family: var(--font-sans);
  font-size: 16px;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 700;
  display: block;
  margin: 20px 0 10px;
}

.campaign__card-title {
  font-size: 16px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.99);
  line-height: 1.4;
  margin: 0 0 10px;
}

/* ================================================
   NEWS
   ================================================ */
.news {
  margin-top: 110px;
  overflow: hidden;
}

.news__inner {
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 26px;
}

.news__list {
  padding-right: 10px;
}

.news__item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.news__item-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 0;
  transition: var(--transition);
}

.news__item-link:hover {
  opacity: 1;
}

.news__item-content {
  display: flex;
  align-items: center;
  height: 19px;
  transition: var(--transition);
}

.news__item-link:hover .news__item-content {
  transform: translateX(6px);
}

.news__item-text {
  display: flex;
  align-items: center;
  gap: 26px;
}

.news__item-date {
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.8);
  flex-shrink: 0;
}

.news__item-title {
  font-size: 16px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.2;
}

.news__item-arrow {
  color: #fff;
  font-size: 24px;
  flex-shrink: 0;
  transition: var(--transition);
}

.news__item-link:hover .news__item-arrow {
  transform: translateX(6px);
}

/* ================================================
   FEATURES
   ================================================ */
.features {
  margin-top: 140px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.features__inner {
  max-width: 960px;
  width: 100%;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 37px;
}

.features .section-heading {
  margin-bottom: 0;
}

.features__blocks {
  display: flex;
  flex-direction: column;
  gap: 70px;
  width: 100%;
}

.features__block {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 100%;
}

.features__text {
  display: flex;
  flex-direction: column;
  gap: 17px;
  margin-top: 20px;
  max-width: 100%;
}

.features__label {
  font-size: 19px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1;
  border-bottom: 1px solid rgba(219, 5, 11, 0.5);
  padding: 0 3px 10px 0;
  width: -moz-fit-content;
  width: fit-content;
}

.features__headline {
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  line-height: 1.4;
}

.features__desc {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.5);
  line-height: 2;
  max-width: 402px;
}

.features__block--no-visual {
  justify-content: center;
}

.features__block--no-visual .features__text {
  max-width: 700px;
  text-align: center;
  align-items: center;
}

.features__visual-img {
  width: 445px;
  max-width: 100%;
  height: auto;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.25);
  flex-shrink: 0;
}

/* ================================================
   FEATURES CTA
   ================================================ */
.features-cta {
  margin-top: 60px;
  text-align: center;
}
.features-cta .container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.features-cta__label {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: 0.05em;
}
.features-cta__slash {
  color: #e53935;
  font-style: normal;
}
.features-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #e53935;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  padding: 20px 64px;
  border-radius: 50px;
  text-decoration: none;
  transition: opacity 0.2s;
}
.features-cta__btn:hover {
  opacity: 0.85;
  color: #fff;
}
.features-cta__btn .material-icons {
  font-size: 24px;
}
@media (max-width: 768px) {
  .features-cta {
    margin-top: 40px;
  }
  .features-cta__btn {
    font-size: 16px;
    padding: 16px 40px;
  }
}

/* ================================================
   INVITATION
   ================================================ */
.invitation {
  margin-top: 140px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.invitation__inner {
  max-width: 960px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.invitation__desc {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  line-height: 2;
  width: 100%;
}

.invitation__steps {
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.invitation__step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: #21222d;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.25);
  padding: 44px 20px 34px;
  width: 31%;
}

.invitation__step-number {
  position: absolute;
  top: -28px;
  left: 0;
  right: 0;
  font-family: var(--font-heading);
  font-size: 44px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.25;
  text-align: center;
}

.invitation__step-title {
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  line-height: 1.4;
  margin-bottom: 10px;
}

.invitation__step-desc {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.7;
  text-align: center;
}

.invitation__note {
  font-size: 10px;
  color: #8a8b96;
  line-height: 1.6;
  width: 100%;
}

/* ================================================
   SECURITY
   ================================================ */
.security {
  position: relative;
  margin-top: 138px;
  height: 505px;
  width: 100%;
  background: url("../images/security-bg.webp") center/cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
}

.security::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  pointer-events: none;
}

.security__overlay {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.32);
}

.security__content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 960px;
  max-width: 90%;
  height: 100%;
}

.security__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.security__dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  background: #db060b;
  border-radius: 50%;
  flex-shrink: 0;
}

.comparison__dot,
.wallet__dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  background: var(--color-red);
  border-radius: 50%;
  margin-right: 8px;
}

.security__heading {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 38px;
}

.security__heading-text {
  font-size: 20px;
  font-weight: 400;
  color: rgb(191, 191, 191);
  line-height: 1.4;
}

.security__subheading {
  font-size: 30px;
  font-weight: 700;
  color: #fff;
  line-height: 1.4;
}

.security__desc {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.7);
  line-height: 2.3;
  margin-top: 38px;
  max-width: 610px;
}

.security__badge-img {
  width: 166px;
  height: auto;
  flex-shrink: 0;
}

/* ================================================
   COMPARISON
   ================================================ */
.comparison {
  margin-top: 81px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.comparison__inner {
  max-width: 960px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 50px;
  padding: 0 20px;
}

.comparison__heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  width: 100%;
}

.comparison__dot {
  width: 7px;
  height: 7px;
  margin-right: 0;
}

.comparison__heading-text {
  font-size: 20px;
  font-weight: 400;
  color: rgb(191, 191, 191);
  line-height: 1.4;
}

.comparison__card {
  background: #21222d;
  border-radius: 32px;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.26);
  padding: 30px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.comparison__img {
  width: 675px;
  max-width: 100%;
  height: auto;
  border-radius: 16px;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.25);
}

.comparison__note {
  font-size: 15px;
  font-weight: 400;
  color: #fff;
  line-height: 1.4;
  margin-top: 20px;
  text-align: center;
}

/* ================================================
   WALLET
   ================================================ */
.wallet {
  background: #21222d;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.26);
  margin-top: 117px;
  padding: 79px 60px 0 60px;
  width: 100%;
}

.wallet__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 960px;
  margin: 0 auto;
  gap: 70px;
}

.wallet__heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-family: var(--font-heading);
  font-size: 48px;
  font-weight: 700;
  color: var(--color-white);
}

.wallet__dot {
  width: 14px;
  height: 14px;
  background: #db060b;
  border-radius: 50%;
  flex-shrink: 0;
}

.wallet__content {
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.wallet__left {
  display: flex;
  flex-direction: column;
  width: 394px;
  flex-shrink: 0;
}

.wallet__left:only-child {
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
}

.wallet__features {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.wallet__feature {
  backdrop-filter: blur(43px);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  box-shadow: 0 3px 17px rgba(0, 0, 0, 0.15);
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.wallet__feature-header {
  display: flex;
  align-items: center;
  gap: 10px;
}

.wallet__feature-icon {
  font-size: 20px;
  color: var(--color-white);
  flex-shrink: 0;
}

.wallet__feature-title {
  font-size: 16px;
  font-weight: 700;
  line-height: 2.3;
  color: var(--color-white);
}

.wallet__feature-desc {
  font-size: 14px;
  color: #bfbfbf;
  line-height: 1.7;
}

.wallet__phone {
  display: flex;
  justify-content: center;
}

.wallet__phone-img {
  width: 467px;
  height: auto;
}

.wallet__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #db060b;
  color: var(--color-white);
  padding: 15px 30px;
  border-radius: 128px;
  font-size: 16px;
  font-weight: 700;
  margin-top: 30px;
  align-self: baseline;
  transition: var(--transition);
}

.wallet__cta:hover {
  opacity: 1;
  transform: scale(1.05);
}

/* ================================================
   RESPONSIVE (769px)
   ================================================ */
@media (max-width: 769px) {
  /* --- SP Hero Static Image --- */
  .hero-sp {
    display: block;
    width: 100%;
  }
  .hero-sp img {
    display: block;
    width: 100%;
    height: auto;
  }
  /* --- Hero Swiper (SP では非表示) --- */
  .hero-swiper {
    display: none;
  }
  .hero-swiper__slide {
    border-radius: 8px;
    width: calc(100% - 24px);
  }
  .hero-swiper__link {
    border-radius: 8px;
  }
  .hero-swiper__prev,
  .hero-swiper__next {
    width: 36px;
    height: 36px;
  }
  .hero-swiper__prev::after,
  .hero-swiper__next::after {
    font-size: 14px;
  }
  .hero-swiper__pagination {
    display: none;
  }
  /* --- Partners --- */
  .partners .container {
    width: 100%;
  }
  .partners__inner {
    width: 100%;
    margin: 0;
    border-radius: 0;
    flex-wrap: wrap;
    gap: 25px;
  }
  .partners__logos {
    gap: 25px;
    justify-content: center;
  }
  .section-heading {
    gap: 11px;
    align-items: center;
  }
  .section-heading__accent {
    font-size: 32px;
    margin-right: 0;
  }
  .section-heading__title {
    font-size: 32px;
  }
  .section-heading__sub {
    font-size: 12px;
  }
  .section-heading__link {
    font-size: 12px;
  }
  .section-heading__link .material-icons {
    font-size: 12px;
  }
  /* --- Campaign --- */
  .campaign .section-heading {
    margin-bottom: 20px;
  }
  .campaign__grid {
    flex-direction: column;
    gap: 22px;
  }
  .campaign__card {
    width: 100%;
  }
  .campaign__card-image {
    height: 192px;
  }
  .campaign__card-date {
    font-size: 12px;
    margin: 4px 0 10px;
  }
  .campaign__card-title {
    font-size: 14px;
  }
  /* --- News --- */
  .news {
    margin-top: 40px;
  }
  .news__inner {
    gap: 20px;
    max-width: 100%;
  }
  .news__list {
    padding-right: 0;
  }
  .news__item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
  .news__item-link {
    padding: 6px 0;
  }
  .news__item-content {
    height: auto;
    width: 100%;
    gap: 15px;
    align-items: center;
  }
  .news__item-text {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    width: 100%;
  }
  .news__item-date {
    font-size: 10px;
    font-weight: 700;
  }
  .news__item-title {
    font-size: 12px;
    line-height: 1.5;
    width: 100%;
  }
  .news__item-arrow {
    display: none;
  }
  /* --- Features --- */
  .features {
    margin-top: 50px;
  }
  .features__inner {
    gap: 30px;
    max-width: 100%;
  }
  .features__blocks {
    gap: 40px;
  }
  .features__block {
    flex-direction: column;
    gap: 20px;
  }
  .features__text {
    margin-top: 0;
    gap: 15px;
    width: 100%;
  }
  .features__label {
    font-size: 13px;
    font-weight: 400;
  }
  .features__headline {
    font-size: 16px;
  }
  .features__desc {
    font-size: 13px;
    max-width: 100%;
  }
  .features__visual-img {
    width: 100%;
    border-radius: 16px;
  }
  /* --- Invitation --- */
  .invitation {
    margin-top: 50px;
  }
  .invitation__inner {
    gap: 30px;
  }
  .invitation__desc {
    font-size: 13px;
  }
  .invitation__steps {
    flex-direction: column;
    gap: 30px;
  }
  .invitation__step {
    width: 100%;
    border-radius: 12px;
    padding: 30px 20px 20px;
  }
  .invitation__step-number {
    font-size: 28px;
    top: -18px;
  }
  .invitation__step-title {
    font-size: 16px;
  }
  .invitation__step-desc {
    font-size: 13px;
  }
  /* --- Security --- */
  .security {
    margin-top: 84px;
    height: auto;
  }
  .security .container {
    width: 100%;
  }
  .security__overlay {
    padding: 50px 0;
  }
  .security__content {
    flex-direction: column;
    gap: 30px;
    height: auto;
  }
  .security__text {
    align-items: flex-start;
    gap: 20px;
  }
  .security__heading {
    margin-bottom: 0;
  }
  .security__subheading {
    font-size: 24px;
  }
  .security__desc {
    font-size: 13px;
    margin-top: 0;
    max-width: 100%;
  }
  .security__badge-img {
    width: 92px;
  }
  /* --- Comparison --- */
  .comparison {
    margin-top: 0;
  }
  .comparison__inner {
    gap: 16px;
    padding: 0;
  }
  .comparison__card {
    border-radius: 12px;
    padding: 10px;
    width: 100%;
  }
  .comparison__img {
    width: 100%;
    border-radius: 8px;
  }
  .comparison__note {
    font-size: 10px;
    text-align: left;
  }
  /* --- Wallet --- */
  .wallet {
    margin-top: 55px;
    padding: 30px 0 0;
  }
  .wallet__inner {
    gap: 30px;
  }
  .wallet__heading {
    flex-direction: column;
    font-size: 18px;
    gap: 30px;
  }
  .wallet__dot {
    width: 14px;
    height: 14px;
  }
  .wallet__content {
    flex-direction: column;
    gap: 60px;
  }
  .wallet__left {
    width: 100%;
  }
  .wallet__feature {
    padding: 15px 16px;
  }
  .wallet__feature-title {
    font-size: 13px;
  }
  .wallet__feature-desc {
    font-size: 14px;
    line-height: 1.5;
  }
  .wallet__phone-img {
    width: 90%;
    max-width: 320px;
  }
  .wallet__cta {
    width: 100%;
    font-size: 14px;
    border-radius: 64px;
    height: 57px;
  }
  .wallet__cta .material-icons {
    font-size: 24px;
  }
}
/* ================================================
   SP FLOATING SLIDER
   ================================================ */
.sp-float-slider {
  display: none;
}

@media (max-width: 769px) {
  .sp-float-slider {
    display: block;
    position: fixed;
    bottom: 0;
    right: 0;
    width: 320px;
    max-height: 500px;
    z-index: 999;
    background: #fff;
    border-radius: 12px 0 0 0;
    box-shadow: 0 2px 8px 5px rgba(0, 0, 0, 0.34);
    overflow: hidden;
    transition: width 0.18s ease, max-height 0.18s ease, background 0.18s ease, border-radius 0.18s ease;
  }
  .sp-float-slider.is-closed {
    width: 110px;
    max-height: 55px;
    background: #db060b;
    border-radius: 128px 0 0 128px;
  }
  .sp-float-slider.is-closed .sp-float-slider__toggle {
    top: 0;
    left: 0;
    width: 100%;
    height: 55px;
    background: transparent;
    border-radius: 0;
    justify-content: center;
  }
  .sp-float-slider.is-closed .sp-float-slider__label {
    font-size: 28px;
    opacity: 1;
  }
  .sp-float-slider.is-closed .sp-float-slider__close {
    opacity: 0;
    font-size: 0;
    width: 0;
    overflow: hidden;
  }
  .sp-float-slider.is-closed .sp-float-slider__body {
    opacity: 0;
    transition: opacity 0.06s ease;
  }
  .sp-float-slider__toggle {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    cursor: pointer;
    z-index: 2;
    transition: top 0.18s ease, left 0.18s ease, width 0.18s ease, height 0.18s ease, background 0.18s ease, border-radius 0.18s ease;
  }
  .sp-float-slider__label {
    font-size: 0;
    opacity: 0;
    line-height: 1;
    transition: font-size 0.15s ease, opacity 0.15s ease;
  }
  .sp-float-slider__label::before {
    content: "🍶";
  }
  .sp-float-slider__close {
    font-size: 14px;
    color: #333;
    transition: opacity 0.15s ease;
  }
  .sp-float-slider__body {
    width: 100%;
    padding-top: 24px;
    opacity: 1;
    transition: opacity 0.12s ease 0.15s;
  }
  .sp-float-slider__link {
    display: block;
  }
  .sp-float-slider__img {
    display: block;
    width: 100%;
    height: auto;
  }
}
/* ================================================
   NEWS LIST PAGE
   ================================================ */
.news-list {
  background: #fff;
  padding: 40px 0 80px;
}

.news-list .container {
  max-width: 990px;
  margin: 0 auto;
}

.news-list__articles {
  display: flex;
  flex-direction: column;
}

.news-list__item {
  border-bottom: 1px solid #bfbfbf;
}

.news-list__item-link {
  display: flex;
  gap: 25px;
  padding: 30px 10px;
  align-items: flex-start;
  transition: opacity 0.2s ease;
}

.news-list__item-link:hover {
  opacity: 0.7;
}

.news-list__item-img {
  width: 434px;
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  flex-shrink: 0;
  -o-object-fit: cover;
     object-fit: cover;
}

.news-list__item-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-right: 20px;
}

.news-list__item-date {
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 400;
  color: #414246;
}

.news-list__item-title {
  font-family: var(--font-sans);
  font-size: 24px;
  font-weight: 700;
  color: #000;
  line-height: 1.5;
}

.news-list__item-excerpt {
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 400;
  color: #414246;
  line-height: 1.7;
}

/* TODO: WPテーマ化時に pagination へ置き換え */
.news-list__more {
  padding: 30px 0;
}

.news-list__more-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #db060b;
  border: none;
  border-radius: 20px;
  width: 282px;
  height: 40px;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.news-list__more-btn:hover {
  opacity: 0.8;
}

@media (max-width: 769px) {
  .news-list {
    padding: 40px 0 40px;
  }
  .news-list .container {
    width: 90%;
  }
  .news-list__articles {
    width: 95%;
    margin-inline: auto;
  }
  .news-list__item-link {
    flex-direction: column;
    gap: 15px;
  }
  .news-list__item-img {
    width: 100%;
  }
  .news-list__item-body {
    gap: 7px;
    margin-right: 0;
  }
  .news-list__item-date {
    font-size: 12px;
  }
  .news-list__item-title {
    font-size: 18px;
  }
  .news-list__item-excerpt {
    font-size: 14px;
    line-height: 1.5;
  }
  .news-list__more {
    display: flex;
    justify-content: center;
    padding: 60px 0 30px;
  }
  .news-list__more-btn {
    width: 100%;
    max-width: 282px;
  }
}
/* ================================================
   IR LIST PAGE
   ================================================ */
.ir-list {
  background: #171821;
  padding: 40px 0 80px;
}

.ir-list .container {
  max-width: 960px;
  margin: 0 auto;
}

.ir-list__articles {
  display: flex;
  flex-direction: column;
}

.ir-list__item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.ir-list__item-link {
  display: flex;
  gap: 50px;
  padding: 50px 0;
  align-items: flex-start;
  transition: opacity 0.2s ease;
}

.ir-list__item-link:hover {
  opacity: 0.7;
}

.ir-list__item-img {
  width: 434px;
  max-width: 100%;
  height: auto;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  flex-shrink: 0;
  -o-object-fit: cover;
     object-fit: cover;
}

.ir-list__item-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-right: 20px;
}

.ir-list__item-date {
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.07em;
}

.ir-list__item-title {
  font-family: var(--font-sans);
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  line-height: 1.5;
}

.ir-list__item-excerpt {
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.7;
}

/* TODO: WPテーマ化時に pagination へ置き換え */
.ir-list__more {
  padding: 30px 0;
}

.ir-list__more-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #db060b;
  border: none;
  border-radius: 20px;
  width: 282px;
  height: 40px;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.ir-list__more-btn:hover {
  opacity: 0.8;
}

@media (max-width: 769px) {
  .ir-list {
    padding: 40px 0;
  }
  .ir-list .container {
    width: 90%;
  }
  .ir-list__articles {
    width: 95%;
    margin-inline: auto;
  }
  .ir-list__item-link {
    flex-direction: column;
    gap: 20px;
    padding: 30px 0;
  }
  .ir-list__item-img {
    width: 100%;
  }
  .ir-list__item-body {
    gap: 7px;
    margin-right: 0;
  }
  .ir-list__item-date {
    font-size: 12px;
  }
  .ir-list__item-title {
    font-size: 18px;
  }
  .ir-list__item-excerpt {
    font-size: 12px;
    line-height: 1.5;
  }
  .ir-list__more {
    display: flex;
    justify-content: center;
    padding: 60px 0 30px;
  }
  .ir-list__more-btn {
    width: 100%;
    max-width: 282px;
  }
}
/* ================================================
   POST DETAIL PAGE
   ================================================ */
.post-detail {
  background: #fff;
  padding: 40px 0 82px;
  display: flex;
  justify-content: center;
}

.post-detail__layout {
  display: flex;
  gap: 32px;
  max-width: 1200px;
  width: 100%;
  padding: 0 24px;
}

.post-detail__card {
  width: 890px;
  max-width: 100%;
  min-width: 0;
  flex: 1;
  background: #fff;
  padding: 40px;
  display: flex;
  flex-direction: column;
}

.post-detail__sidebar {
  width: 300px;
  flex-shrink: 0;
  padding-top: 120px;
}

.post-detail__sidebar-banner {
  position: sticky;
  top: 131px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
  border-radius: 12px;
  padding: 32px 24px 0;
  color: #fff;
  overflow: hidden;
}

.post-detail__sidebar-banner-logo {
  width: 120px;
  height: auto;
  margin-bottom: 16px;
}

.post-detail__sidebar-banner-text {
  font-size: 13px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 20px;
}

.post-detail__sidebar-banner-cta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #e63946;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  padding: 10px 24px;
  border-radius: 24px;
  margin-bottom: 20px;
  text-decoration: none;
  transition: background 0.3s;
}
.post-detail__sidebar-banner-cta:hover {
  background: #c1121f;
}

.post-detail__sidebar-banner-phone {
  width: 180px;
  height: auto;
}

.sidebar-stats {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: 24px;
  margin-bottom: 24px;
}

.sidebar-stats__title {
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 16px;
  text-align: center;
}

.sidebar-stats__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 16px;
}

.sidebar-stats__item {
  text-align: center;
  padding: 12px 8px;
  background: #f8f9fa;
  border-radius: 8px;
}
.sidebar-stats__item--wide {
  grid-column: 1/-1;
}

.sidebar-stats__number {
  display: block;
  font-family: var(--font-heading);
  font-size: 22px;
  font-weight: 700;
  color: #e63946;
  line-height: 1.2;
}
.sidebar-stats__number small {
  font-size: 13px;
  font-weight: 700;
}

.sidebar-stats__label {
  display: block;
  font-size: 11px;
  color: #666;
  margin-top: 4px;
}

.sidebar-stats__image {
  width: 100%;
  height: auto;
  border-radius: 8px;
  margin-bottom: 16px;
}

.sidebar-stats__social {
  text-align: center;
}

.sidebar-stats__social-label {
  font-size: 12px;
  font-weight: 700;
  color: #666;
  margin-bottom: 8px;
}

.sidebar-stats__social-links {
  display: flex;
  justify-content: center;
  gap: 8px;
}

.sidebar-stats__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #f5f5f5;
  transition: background 0.2s;
}
.sidebar-stats__social-link:hover {
  background: #e0e0e0;
}
.sidebar-stats__social-link img {
  width: 20px;
  height: 20px;
}

.sidebar-about {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  padding: 24px 20px;
  margin-top: 20px;
  margin-bottom: 20px;
}

.sidebar-about__title {
  font-size: 15px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 2px solid #db060b;
}

.sidebar-about__text {
  font-size: 13px;
  line-height: 1.8;
  color: #444;
  margin-bottom: 16px;
}

.sidebar-about__features {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sidebar-about__features li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #1a1a1a;
}
.sidebar-about__features .material-icons {
  font-size: 18px;
  color: #db060b;
}

.sidebar-about__link {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 13px;
  font-weight: 700;
  color: #db060b;
  text-decoration: none;
  transition: opacity 0.2s;
}
.sidebar-about__link:hover {
  opacity: 0.7;
}
.sidebar-about__link .material-icons {
  font-size: 18px;
}

@media (max-width: 1024px) {
  .post-detail__layout {
    flex-direction: column;
    padding: 0;
  }
  .post-detail__sidebar {
    width: 100%;
    padding: 0 24px;
  }
  .post-detail__sidebar-banner {
    position: static;
  }
}
.post-detail__meta {
  display: flex;
  align-items: center;
  gap: 16px;
}

.post-detail__date {
  font-family: var(--font-heading);
  font-size: 24px;
  font-weight: 700;
  color: #535353;
  letter-spacing: 0.07em;
}

.post-detail__category {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #db060b;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 700;
  border-radius: 24px;
  padding: 5px 21px;
  line-height: 1.4;
}

.post-detail__title {
  font-family: var(--font-sans);
  font-size: 32px;
  font-weight: 700;
  color: #000;
  line-height: 1.4;
  margin: 20px 0px 18px 0px;
}

.post-detail__thumbnail {
  width: 100%;
  height: auto;
  border-radius: 8px;
  border: 2px solid #000;
  -o-object-fit: cover;
     object-fit: cover;
}

@media (max-width: 769px) {
  .post-detail {
    padding: 0 0 40px;
  }
  .post-detail__card {
    border-radius: 0;
    border: none;
    padding: 18px 24px 0;
  }
  .post-detail__date {
    font-size: 16px;
  }
  .post-detail__category {
    font-size: 10px;
    padding: 3px 12px;
  }
  .post-detail__title {
    font-size: 24px;
    margin: 10px 0;
  }
  .post-detail__thumbnail {
    border-radius: 4px;
  }
}
.news-follow-cta {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 48px;
  padding: 24px 28px;
  background: #0a0a0a;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.news-follow-cta__logo {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
}

.news-follow-cta__body {
  flex: 1;
}

.news-follow-cta__title {
  color: #fff;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 4px;
}

.news-follow-cta__desc {
  color: rgba(255, 255, 255, 0.6);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
}

.news-follow-cta__links {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.news-follow-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  background: #fff;
  border-radius: 128px;
  color: #000;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s;
}
.news-follow-cta__btn img {
  width: 18px;
  height: 18px;
}
.news-follow-cta__btn .material-icons {
  font-size: 16px;
  transition: transform 0.2s;
}
.news-follow-cta__btn:hover {
  background: #db060b;
  color: #fff;
  opacity: 1;
}
.news-follow-cta__btn:hover .material-icons {
  transform: translateX(3px);
}

@media (max-width: 769px) {
  .news-follow-cta {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
  }
  .news-follow-cta__logo {
    width: 40px;
    height: 40px;
  }
  .news-follow-cta__links {
    width: 100%;
    flex-direction: column;
  }
  .news-follow-cta__btn {
    justify-content: center;
    width: 100%;
    padding: 12px 18px;
  }
}
.column-subheader {
  position: fixed;
  top: 50px;
  left: 0;
  width: 100%;
  height: 71px;
  background: #fff;
  border-bottom: 1px solid #eee;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 30px;
  z-index: 5;
}

.column-subheader__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.column-subheader__title-area {
  display: flex;
  align-items: center;
  gap: 20px;
  height: 36px;
}

.column-subheader__title {
  font-family: "Shippori Mincho", serif;
  font-size: 20px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0.03em;
  text-decoration: none;
}

.column-subheader__sep {
  width: 1px;
  height: 100%;
  background: #535353;
}

.column-subheader__subtitle {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 400;
  color: #000;
}

.column-subheader__search {
  display: flex;
  align-items: center;
  gap: 6px;
}

.column-subheader__search-input {
  width: 249px;
  height: 41px;
  border: 1px solid #8a8b96;
  border-radius: 4px;
  padding: 10px 16px;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 700;
  color: #333;
  background: #fff;
}

.column-subheader__search-input:focus {
  outline: none;
  border: 2px solid #db060b;
}

.column-subheader__search-input::-moz-placeholder {
  color: #aeaeae;
}

.column-subheader__search-input::placeholder {
  color: #aeaeae;
}

.column-subheader__search-btn {
  width: 41px;
  height: 41px;
  background: #db060b;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 24px;
}

.column-subheader__search-btn:hover {
  transform: scale(1.03);
}

.column-subheader__search-mobile {
  display: none;
  width: 41px;
  height: 41px;
  background: #db060b;
  border: none;
  border-radius: 4px;
  color: #fff;
  font-size: 24px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.column-subheader__search-dropdown {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  padding: 0 20px;
  z-index: 51;
  align-items: center;
}

.column-subheader__search-dropdown.is-open {
  display: flex;
}

.column-subheader__search-dropdown form {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 8px;
}

.column-subheader__search-dropdown-input {
  flex: 1;
  height: 41px;
  padding: 0 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-family: var(--font-sans);
  font-size: 14px;
  outline: none;
}

.column-subheader__search-dropdown-input:focus {
  border-color: #db060b;
}

.column-subheader__search-dropdown-input::-moz-placeholder {
  color: #999;
}

.column-subheader__search-dropdown-input::placeholder {
  color: #999;
}

.column-subheader__search-dropdown-btn {
  width: 41px;
  height: 41px;
  background: #db060b;
  border: none;
  border-radius: 4px;
  color: #fff;
  font-size: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.post-detail--column .post-detail__card {
  margin-top: 80px;
}

.post-detail__author-info {
  display: none;
}

.post-detail__author-avatar {
  width: 45px;
  height: 45px;
  border-radius: 50%;
}

.post-detail__author-name {
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 400;
  color: #535353;
  letter-spacing: 0.1em;
}

.post-detail__ad-disclosure {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 12px 0;
  border-bottom: 1px solid #eee;
  margin-bottom: 16px;
}

.post-detail__byline {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 16px 0;
}

.post-detail__byline-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.post-detail__byline-label {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: #333;
  padding: 2px 8px;
  border-radius: 3px;
}

.post-detail__byline-author {
  display: flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  color: #333;
  transition: color 0.2s;
}

.post-detail__byline-author:hover {
  color: #db060b;
}

.post-detail__byline-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}

.post-detail__byline-name {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  color: inherit;
}

.post-detail__credit-date {
  display: flex;
  align-items: center;
  gap: 4px;
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  font-weight: 400;
  color: #888;
}

.post-detail__credit-date-icon {
  font-size: 16px;
  color: #888;
}

.post-detail__trust-bar {
  margin: 16px 0;
}

.post-detail__disclaimer-text {
  background: #f8f8f8;
  border-left: 3px solid #db060b;
  padding: 12px 16px;
  border-radius: 0 4px 4px 0;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 400;
  color: #555;
  line-height: 1.7;
  margin: 0;
}

.post-detail__disclaimer-link {
  color: #db060b;
  text-decoration: underline;
}

.post-detail__trust-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}

.trust-accordion {
  margin-top: 8px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 6px;
  overflow: hidden;
}
.trust-accordion__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 14px;
  background: #f8f8f8;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}
.trust-accordion__btn:hover {
  background: #f0f0f0;
}
.trust-accordion__btn-inner {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 400;
  color: #333;
}
.trust-accordion__icon {
  width: 20px;
  height: 20px;
  -o-object-fit: contain;
     object-fit: contain;
}
.trust-accordion__arrow {
  font-size: 20px;
  color: #888;
  transition: transform 0.3s;
}
.trust-accordion__btn[aria-expanded=true] .trust-accordion__arrow {
  transform: rotate(180deg);
}
.trust-accordion__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
  padding: 0 14px;
}
.trust-accordion__text {
  font-size: 13px;
  line-height: 1.7;
  color: #555;
  margin: 0 0 10px;
}
.trust-accordion__checklist {
  list-style: none;
  padding: 0;
  margin: 0 0 4px;
}
.trust-accordion__checklist li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 5px;
  font-size: 13px;
  line-height: 1.6;
  color: #555;
}
.trust-accordion__checklist li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #4caf50;
  font-weight: 700;
}
.trust-accordion__checklist li a {
  color: #db060b;
  text-decoration: underline;
}
.trust-accordion__checklist li a:hover {
  color: #a00508;
}

.post-detail__author-box {
  margin-top: 40px;
  padding: 24px;
  background: #f8f8f8;
  border-radius: 8px;
}

.post-detail__author-box-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 12px;
}

.post-detail__author-box-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}

.post-detail__author-box-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.post-detail__author-box-label {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  color: #888;
}

.post-detail__author-box-name {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  color: #000;
  text-decoration: none;
}

.post-detail__author-box-name:hover {
  color: #db060b;
}

.post-detail__author-box-bio {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 400;
  color: #555;
  line-height: 1.8;
  margin: 0;
}

.post-detail__author-box-social {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.post-detail__author-box-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #f5f5f5;
  transition: background 0.2s;
}
.post-detail__author-box-social-link:hover {
  background: #e0e0e0;
}
.post-detail__author-box-social-link img {
  width: 20px;
  height: 20px;
}

.post-detail__author-box-more {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 16px;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  color: #db060b;
  text-decoration: none;
  transition: opacity 0.2s;
}

.post-detail__author-box-more:hover {
  opacity: 0.7;
}

.post-detail__author-box-more .material-icons {
  font-size: 18px;
}

.post-detail__related {
  margin-top: 48px;
  padding-top: 40px;
  border-top: 1px solid #eee;
}

.post-detail__related-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 18px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 20px;
}
.post-detail__related-title .material-icons {
  font-size: 22px;
  color: #db060b;
}

.post-detail__related-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.post-detail__related-item {
  display: flex;
  gap: 14px;
  text-decoration: none;
  color: inherit;
  padding: 12px;
  border-radius: 8px;
  border: 1px solid #f0f0f0;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.post-detail__related-item:hover {
  border-color: #ddd;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.post-detail__related-img {
  width: 120px;
  min-width: 120px;
  height: 80px;
  border-radius: 6px;
  overflow: hidden;
}

.post-detail__related-thumb {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.post-detail__related-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

.post-detail__related-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.post-detail__related-date {
  font-size: 12px;
  color: #888;
  white-space: nowrap;
}

.post-detail__related-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.post-detail__related-tag {
  font-size: 11px;
  color: #db060b;
  background: rgba(219, 6, 11, 0.06);
  padding: 1px 8px;
  border-radius: 3px;
}

.post-detail__related-name {
  font-size: 14px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 769px) {
  .post-detail__related {
    margin-top: 32px;
    padding-top: 28px;
  }
  .post-detail__related-img {
    width: 90px;
    min-width: 90px;
    height: 64px;
  }
  .post-detail__related-name {
    font-size: 13px;
  }
}
.ad-disclosure {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 300px;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  z-index: 90;
}

.ad-disclosure__close {
  position: absolute;
  top: 8px;
  right: 8px;
  background: none;
  border: none;
  cursor: pointer;
  color: #999;
  padding: 0;
  line-height: 1;
}

.ad-disclosure__close:hover {
  color: #333;
}

.ad-disclosure__close .material-icons {
  font-size: 18px;
}

.ad-disclosure__label {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  color: #999;
  margin: 0 0 6px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.ad-disclosure__text {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 400;
  color: #777;
  line-height: 1.7;
  margin: 0;
}

.ad-disclosure__link {
  color: #db060b;
  text-decoration: underline;
}

.post-detail__tags {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.post-detail__tag {
  background: linear-gradient(90deg, #db060b 0%, #c65e22 100%);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 128px;
  line-height: 1.5;
}

.post-detail__author-credit {
  display: flex;
  align-items: center;
  gap: 11px;
}

.post-detail__author-credit-avatar {
  width: 26px;
  height: auto;
}

.post-detail__author-credit-name {
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 400;
  color: #000;
}

.related-articles {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 50px 0 200px;
  background: #fff;
}

.related-articles__inner {
  width: 1080px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
}

.related-articles__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2px;
}

.related-articles__heading {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}

.related-articles__icon {
  color: #db060b;
  font-size: 36px;
}

.related-articles__title {
  font-family: var(--font-sans);
  font-size: 28px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0.05em;
}

.related-articles__more {
  display: flex;
  align-items: center;
  gap: 3px;
  background: #000;
  border-radius: 96px;
  padding: 0 30px;
  height: 43px;
  text-decoration: none;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  transition: background 0.3s, transform 0.3s;
}

.related-articles__more:hover {
  background: #db060b;
  transform: scale(1.03);
}

.related-articles__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0 30px;
}

.related-articles__item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 25px;
  width: calc(50% - 15px);
  height: 177.5px;
  padding: 27px 0;
  border-bottom: 1px solid #eee;
  text-decoration: none;
}

.related-articles__item-img {
  flex: none;
  width: 152px;
  height: 102px;
  border: 2px solid #000;
  border-radius: 4px;
  background-size: cover;
  background-position: center;
}

.related-articles__item-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.related-articles__item-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.related-articles__item-date {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: #717171;
}

.related-articles__item-tags {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.related-articles__item-tag {
  background: linear-gradient(90deg, #db060b 0%, #c65e22 100%);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 128px;
  line-height: 1.5;
}

.related-articles__item-title {
  font-family: var(--font-sans);
  font-size: 20px;
  font-weight: 700;
  color: #000;
  line-height: 1.5;
}

.column-sidemenu {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  padding: 20px 0;
  z-index: 100;
  pointer-events: none;
}

.column-sidemenu.is-open {
  pointer-events: auto;
}

.column-sidemenu__toggle {
  width: 80px;
  height: 80px;
  background: #eee;
  border: none;
  border-radius: 1000px 0 0 1000px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
  transition: background 0.3s, transform 0.3s;
}

.column-sidemenu__toggle:hover {
  background: #db060b;
  transform: translate(-5px, 0);
}

.column-sidemenu__toggle-inner {
  width: 60px;
  height: 60px;
  background: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.column-sidemenu__toggle-icon {
  color: #333;
  font-size: 28px;
}

.column-sidemenu.is-open .column-sidemenu__toggle {
  opacity: 0;
  pointer-events: none;
}

.column-sidemenu__panel {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  transform: translateX(calc(100% + 80px));
  transition: transform 0.35s ease;
  z-index: 102;
  pointer-events: none;
}

.column-sidemenu.is-open .column-sidemenu__panel {
  transform: translateX(0);
  pointer-events: auto;
}

.column-sidemenu__close {
  position: absolute;
  top: 50%;
  right: 100%;
  transform: translateY(-50%);
  width: 80px;
  height: 80px;
  background: #fff;
  border: none;
  border-radius: 1000px 0 0 1000px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.3s;
}

.column-sidemenu__close:hover {
  background: #db060b;
}

.column-sidemenu__close-inner {
  width: 60px;
  height: 60px;
  background: #eee;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.column-sidemenu__close:hover .column-sidemenu__close-inner {
  background: #fff;
}

.column-sidemenu__close-icon {
  color: #333;
  font-size: 28px;
}

.column-sidemenu__content {
  width: 400px;
  max-width: calc(100vw - 70px);
  background: #fff;
  border-radius: 6px 0 0 6px;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 40px;
  margin-top: 89px;
  height: calc(100vh - 89px);
  overflow-y: auto;
}

.column-sidemenu__nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 42px;
}

.column-sidemenu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  text-decoration: none;
  gap: 20px;
  transition: transform 0.2s;
}

.column-sidemenu__link:hover {
  transform: translateX(5px);
}

.column-sidemenu__link:hover .column-sidemenu__link-icon {
  color: #db060b;
}

.column-sidemenu__link-label {
  display: flex;
  align-items: center;
  gap: 10px;
}

.column-sidemenu__link-icon {
  color: #000;
  font-size: 24px;
}

.column-sidemenu__link-text {
  font-family: var(--font-sans);
  font-size: 20px;
  font-weight: 700;
  color: #000;
}

.column-sidemenu__link-arrow {
  color: #000;
  font-size: 24px;
}

.column-sidemenu__category {
  width: 100%;
}

.column-sidemenu__category-list {
  display: flex;
  flex-wrap: wrap;
  padding-top: 20px;
  gap: 10px;
}

.column-sidemenu__category-item {
  display: inline-flex;
  align-items: center;
  padding: 5px 25px;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(90deg, #db060b 0%, #c65e22 100%);
  border-radius: 128px;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  transition: transform 0.2s, opacity 0.2s;
}

.column-sidemenu__category-item:hover {
  transform: scale(1.05);
  opacity: 0.85;
}

.column-sidemenu__cta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
}

.column-sidemenu__cta-text {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  color: #000;
}

.column-sidemenu__cta-logo {
  width: 248px;
  height: auto;
}

.column-sidemenu__cta-buttons {
  display: flex;
  align-items: center;
  gap: 15px;
  width: 100%;
}

.column-sidemenu__cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex: 1;
  height: 45px;
  padding: 0 30px;
  border-radius: 128px;
  text-decoration: none;
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 700;
  transition: transform 0.3s, box-shadow 0.3s;
}

.column-sidemenu__cta-btn:hover {
  transform: scale(1.03);
}

.column-sidemenu__cta-btn--login {
  background: transparent;
  border: 3px solid #db060b;
  color: #db060b;
}

.column-sidemenu__cta-btn--register {
  background: #db060b;
  color: #fff;
  border: 3px solid #db060b;
}

.column-sidemenu__cta-btn .material-icons {
  font-size: 18px;
}

.column-sidemenu__cta-btn--login .material-icons {
  color: #db060b;
}

.column-sidemenu__cta-btn--register .material-icons {
  color: #fff;
}

.column-sidemenu__backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.16);
  border: none;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s;
  z-index: 99;
}

.column-sidemenu.is-open .column-sidemenu__backdrop {
  opacity: 1;
  pointer-events: auto;
}

@media (max-width: 769px) {
  .post-detail__byline {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .post-detail__disclaimer-text {
    padding: 10px 12px;
    font-size: 11px;
  }
  .post-detail__trust-actions {
    flex-wrap: wrap;
  }
  .post-detail__author-box {
    padding: 16px;
  }
  .post-detail__author-box-avatar {
    width: 48px;
    height: 48px;
  }
  .post-detail__author-box-name {
    font-size: 15px;
  }
  .post-detail__author-box-bio {
    font-size: 12px;
  }
  .ad-disclosure {
    bottom: 10px;
    right: 10px;
    left: 10px;
    width: auto;
  }
  .column-subheader {
    position: relative;
    top: 0;
    height: auto;
    padding: 16px 20px;
    margin-top: 60px;
    flex-direction: column;
    align-items: flex-start;
  }
  .column-subheader__title-area {
    flex-direction: column;
    align-items: flex-start;
    height: auto;
    gap: 4px;
  }
  .column-subheader__title {
    font-size: 16px;
  }
  .column-subheader__sep {
    display: none;
  }
  .column-subheader__subtitle {
    font-size: 10px;
  }
  .column-subheader__search {
    display: none;
  }
  .column-subheader__search-mobile {
    display: flex;
  }
  .post-detail--column .post-detail__card {
    margin-top: 0;
  }
  .post-detail__author-info {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .post-detail__author-avatar {
    width: 25px;
    height: 25px;
  }
  .post-detail__author-name {
    font-size: 14px;
  }
  .post-detail__tag {
    font-size: 10px;
    line-height: 1;
    padding: 3px 8px;
  }
  .related-articles {
    padding: 50px 0 66px;
  }
  .related-articles__inner {
    width: 85%;
    margin: 0 auto;
  }
  .related-articles__header {
    padding: 20px 0;
  }
  .related-articles__heading {
    margin-bottom: 0;
  }
  .related-articles__icon {
    font-size: 24px;
  }
  .related-articles__title {
    font-size: 16px;
  }
  .related-articles__more {
    height: auto;
    padding: 7px 20px;
    font-size: 11px;
  }
  .related-articles__grid {
    gap: 13px;
  }
  .related-articles__item {
    flex-direction: row;
    width: 100%;
    height: auto;
    padding: 0 0 13px;
    gap: 25px;
  }
  .related-articles__item-img {
    width: 70px;
    height: 70px;
  }
  .related-articles__item-body {
    gap: 7px;
  }
  .related-articles__item-meta {
    gap: 7px;
  }
  .related-articles__item-date {
    font-size: 12px;
  }
  .related-articles__item-tag {
    line-height: 1;
  }
  .related-articles__item-title {
    font-size: 13px;
    font-weight: 700;
  }
  .column-sidemenu {
    top: auto;
    bottom: 0;
    right: 0;
    height: auto;
    padding: 20px 0;
  }
  .column-sidemenu__toggle {
    width: 60px;
    height: 60px;
    background: #000;
  }
  .column-sidemenu__toggle-inner {
    width: 40px;
    height: 40px;
  }
  .column-sidemenu__toggle-icon {
    font-size: 16px;
  }
  .column-sidemenu__panel {
    top: 60px;
    right: -60px;
    height: calc(100vh - 60px);
  }
  .column-sidemenu.is-open .column-sidemenu__panel {
    transform: translateX(-60px);
  }
  .column-sidemenu__content {
    width: 82vw;
    max-width: 300px;
    margin-top: 0;
    height: 100%;
    border-radius: 12px 0 0 0;
  }
  .column-sidemenu__close {
    width: 60px;
    height: 60px;
    top: auto;
    bottom: 20px;
    transform: none;
  }
  .column-sidemenu__close-inner {
    width: 40px;
    height: 40px;
  }
  .column-sidemenu__close-icon {
    font-size: 18px;
  }
  .column-sidemenu__nav {
    gap: 25px;
  }
  .column-sidemenu__link-icon {
    font-size: 22px;
  }
  .column-sidemenu__link-text {
    font-size: 16px;
  }
  .column-sidemenu__link-arrow {
    font-size: 24px;
  }
  .column-sidemenu__category-list {
    padding-top: 20px;
    gap: 15px;
  }
  .column-sidemenu__category-item {
    font-size: 12px;
    padding: 5px 14px;
  }
  .column-sidemenu__cta-text {
    font-size: 16px;
  }
  .column-sidemenu__cta-logo {
    width: 212px;
  }
  .column-sidemenu__cta-buttons {
    gap: 10px;
  }
  .column-sidemenu__cta-btn {
    height: 30px;
    padding: 0 16px;
    font-size: 11px;
    border-width: 2px;
  }
  .column-sidemenu__cta-btn .material-icons {
    font-size: 16px;
  }
}
body:has(.column-archive) {
  background: #fff;
}

.column-archive {
  margin-top: 151px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.column-archive__tabs {
  display: flex;
  align-items: stretch;
  justify-content: center;
  width: 100%;
}

.column-archive__tab {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  padding: 5px 20px;
  border-right: 1px solid #c6c6c6;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 700;
  color: #000;
  text-decoration: none;
  text-align: center;
  width: 179px;
  transition: color 0.2s;
}

.column-archive__tab:last-child {
  border-right: none;
}

.column-archive__tab:hover {
  color: #db060b;
}

.column-archive__carousel {
  width: 100%;
  margin-top: 24px;
  position: relative;
  overflow: hidden;
}

.column-archive__slide {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-start;
  position: relative;
  text-decoration: none;
  width: 1080px;
  max-width: 80%;
}

.column-archive__slide-img {
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.column-archive__slide-info {
  background: #fff;
  border: 2px solid #000;
  border-radius: 4px;
  box-shadow: 7px 7px 0 #000;
  padding: 20px 40px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: absolute;
  bottom: 0;
  left: 0;
  width: auto;
}

.column-archive__slide-meta {
  display: flex;
  align-items: center;
  gap: 15px;
}

.column-archive__slide-date {
  color: #717171;
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 400;
}

.column-archive__slide-tags {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.column-archive__slide-tag {
  background: linear-gradient(90deg, #db060b 0%, #c65e22 100%);
  border-radius: 128px;
  padding: 4px 17px;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}

.column-archive__slide-title {
  color: #000;
  font-family: var(--font-sans);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.5;
}

.column-archive__carousel-nav {
  position: absolute;
  top: 0;
  bottom: 0;
  right: calc(50% - 540px - 62px);
  width: 84px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  z-index: 3;
}

.column-archive__carousel-prev,
.column-archive__carousel-next {
  width: 40px;
  height: 40px;
  background: #fff;
  border: 2px solid #000;
  color: #000;
  border-radius: 4px;
  box-shadow: 3px 3px 0 #000;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 24px;
  transition: background 0.2s;
}

.column-archive__carousel-prev:hover,
.column-archive__carousel-next:hover {
  background: #e1e1e1;
}

.column-archive__divider {
  width: 1080px;
  max-width: 100%;
  height: 3px;
  background: #000;
  margin-top: 85px;
}

.column-archive__section {
  width: 1080px;
  max-width: 100%;
  margin-top: 50px;
}

.column-archive__section--hot {
  margin-bottom: 200px;
}

.column-archive__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2px;
}

.column-archive__section-title-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}

.column-archive__section-icon {
  color: #db060b;
  font-size: 36px;
}

.column-archive__section-icon--hot {
  font-size: 32px;
}

.column-archive__section-title {
  color: #000;
  font-family: var(--font-sans);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.column-archive__section-more {
  display: flex;
  align-items: center;
  gap: 3px;
  background: #000;
  border-radius: 96px;
  padding: 0 30px;
  height: 43px;
  text-decoration: none;
  transition: background 0.3s, transform 0.3s;
}

.column-archive__section-more:hover {
  background: #db060b;
  transform: scale(1.03);
}

.column-archive__section-more p {
  color: #fff;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.column-archive__section-more .material-icons {
  color: #fff;
  font-size: 20px;
}

.column-archive__new-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0 30px;
}

.column-archive__new-card {
  display: flex;
  align-items: center;
  gap: 25px;
  width: calc(50% - 15px);
  padding: 27px 0;
  border-bottom: 1px solid #eee;
  text-decoration: none;
  transition: opacity 0.2s;
}

.column-archive__new-card:hover {
  opacity: 0.7;
}

.column-archive__new-card-img {
  flex: none;
  width: 152px;
  height: auto;
  border: 2px solid #000;
  border-radius: 4px;
  -o-object-fit: cover;
     object-fit: cover;
}

.column-archive__new-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.column-archive__new-card-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.column-archive__new-card-date {
  color: #717171;
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 400;
}

.column-archive__new-card-tags {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.column-archive__new-card-tag {
  background: linear-gradient(90deg, #db060b 0%, #c65e22 100%);
  border-radius: 128px;
  padding: 3px 10px;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
}

.column-archive__new-card-title {
  color: #000;
  font-family: var(--font-sans);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

.column-archive__hot-featured {
  display: flex;
  flex-wrap: wrap;
  gap: 0 30px;
}

.column-archive__hot-card {
  display: flex;
  flex-direction: column;
  gap: 25px;
  width: calc(50% - 15px);
  padding: 27px 0;
  border-bottom: 1px solid #eee;
  text-decoration: none;
  transition: opacity 0.2s;
}

.column-archive__hot-card:hover {
  opacity: 0.7;
}

.column-archive__hot-card-img {
  width: 100%;
  height: auto;
  border: 2px solid #000;
  border-radius: 4px;
  -o-object-fit: cover;
     object-fit: cover;
}

.column-archive__hot-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.column-archive__hot-card-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.column-archive__hot-card-date {
  color: #717171;
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  font-weight: 400;
}

.column-archive__hot-card-tags {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.column-archive__hot-card-tag {
  background: linear-gradient(90deg, #db060b 0%, #c65e22 100%);
  border-radius: 128px;
  padding: 3px 10px;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
}

.column-archive__hot-card-title {
  color: #000;
  font-family: var(--font-sans);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
}

.column-archive__hot-card-excerpt {
  color: #777;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 400;
  line-height: 2;
}

.column-archive__hot-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0 30px;
  margin-top: 0;
}

.column-archive__hot-grid-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: calc(25% - 22.5px);
  padding: 27px 0;
  border-bottom: 1px solid #eee;
  text-decoration: none;
  transition: opacity 0.2s;
}

.column-archive__hot-grid-card:hover {
  opacity: 0.7;
}

.column-archive__hot-grid-card-img {
  width: 100%;
  height: auto;
  border: 2px solid #000;
  border-radius: 4px;
  -o-object-fit: cover;
     object-fit: cover;
}

.column-archive__hot-grid-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.column-archive__hot-grid-card-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.column-archive__hot-grid-card-date {
  color: #717171;
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 400;
}

.column-archive__hot-grid-card-tags {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.column-archive__hot-grid-card-tag {
  background: linear-gradient(90deg, #db060b 0%, #c65e22 100%);
  border-radius: 128px;
  padding: 3px 10px;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
}

.column-archive__hot-grid-card-title {
  color: #000;
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

@media screen and (max-width: 769px) {
  .column-archive {
    margin-top: 0;
  }
  .column-archive__tabs {
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
    border-bottom: 1px solid #eee;
  }
  .column-archive__tab {
    flex: none;
    width: auto;
    padding: 12px 14px;
    border-right: none;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
  }
  .column-archive__carousel {
    width: 100%;
    margin-top: 24px;
  }
  .column-archive__slide {
    width: 90%;
    max-width: 90%;
  }
  .column-archive__slide-img {
    width: 100%;
  }
  .column-archive__slide-info {
    position: relative;
    box-shadow: 3px 3px 0 #000;
    padding: 11px 14px;
  }
  .column-archive__slide-meta {
    gap: 10px;
  }
  .column-archive__slide-date {
    font-size: 12px;
  }
  .column-archive__slide-tag {
    font-size: 11px;
    line-height: 1.01;
  }
  .column-archive__slide-title {
    font-size: 18px;
    line-height: 1.4;
  }
  .column-archive__carousel-nav {
    display: none;
  }
  .column-archive__divider {
    height: 2px;
    margin-top: 45px;
    width: 85%;
  }
  .column-archive__section {
    width: 85%;
    margin-top: 40px;
  }
  .column-archive__section--hot {
    margin-bottom: 40px;
  }
  .column-archive__section-header {
    padding: 20px 0;
  }
  .column-archive__section-title-wrap {
    gap: 5px;
    margin-bottom: 0;
  }
  .column-archive__section-icon {
    font-size: 24px;
  }
  .column-archive__section-icon--hot {
    font-size: 20px;
  }
  .column-archive__section-title {
    font-size: 20px;
  }
  .column-archive__section-more {
    height: auto;
    padding: 7px 20px;
  }
  .column-archive__section-more p {
    font-size: 11px;
  }
  .column-archive__new-list {
    flex-direction: column;
    gap: 13px;
  }
  .column-archive__new-card {
    width: 100%;
    padding: 0 0 13px;
    gap: 25px;
  }
  .column-archive__new-card-img {
    flex: none;
    width: 70px;
    height: 70px;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .column-archive__new-card-meta {
    gap: 7px;
  }
  .column-archive__new-card-date {
    font-size: 12px;
  }
  .column-archive__new-card-tag {
    font-size: 10px;
    line-height: 1;
  }
  .column-archive__new-card-title {
    font-size: 13px;
    font-weight: 700;
  }
  .column-archive__hot-featured {
    flex-direction: column;
    gap: 25px;
    padding-bottom: 20px;
  }
  .column-archive__hot-card {
    width: 100%;
    padding: 0;
    padding-bottom: 5px;
    gap: 25px;
  }
  .column-archive__hot-card-img {
    width: 100%;
  }
  .column-archive__hot-card-date {
    font-size: 12px;
  }
  .column-archive__hot-card-title {
    font-size: 18px;
  }
  .column-archive__hot-card-excerpt {
    display: none;
  }
  .column-archive__hot-grid {
    gap: 15px;
  }
  .column-archive__hot-grid-card {
    width: calc(50% - 7.5px);
    padding: 0;
    padding-bottom: 5px;
  }
  .column-archive__hot-grid-card-date {
    font-size: 11px;
  }
  .column-archive__hot-grid-card-tag {
    font-size: 10px;
    line-height: 1;
  }
  .column-archive__hot-grid-card-title {
    font-size: 12px;
  }
}
body:has(.column-search) {
  background: #fff;
}

.column-search {
  margin-top: 158px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.column-search__title {
  width: 1080px;
  max-width: 100%;
  color: #000;
  font-family: var(--font-sans);
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 28px;
}

.column-search__form {
  width: 1080px;
  max-width: 100%;
  margin-bottom: 10px;
}

.column-search__form-inner {
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: 3px;
  width: 100%;
}

.column-search__input {
  flex: 1;
  height: 50px;
  padding: 10px 16px;
  background: #fff;
  border: 2px solid #000;
  border-radius: 4px;
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 400;
  color: #333;
  outline: none;
}

.column-search__input:focus {
  border-color: #db060b;
}

.column-search__input::-moz-placeholder {
  color: #aeaeae;
}

.column-search__input::placeholder {
  color: #aeaeae;
}

.column-search__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100px;
  height: 50px;
  background: #db060b;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: transform 0.3s;
}

.column-search__btn:hover {
  transform: scale(1.03);
}

.column-search__btn .material-icons {
  color: #fff;
  font-size: 24px;
}

.column-search__btn p {
  color: #fff;
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: 0;
}

.column-search__count {
  width: 1080px;
  max-width: 100%;
  margin-bottom: 10px;
  color: #717171;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 400;
}

.column-search__no-results {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 1080px;
  max-width: 100%;
  padding: 80px 20px;
  text-align: center;
}

.column-search__no-results-icon {
  font-size: 64px;
  color: #ccc;
}

.column-search__no-results-title {
  color: #333;
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
}

.column-search__no-results-hint {
  color: #999;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 400;
}

.column-search__results {
  display: flex;
  flex-wrap: wrap;
  gap: 0 30px;
  width: 1080px;
  max-width: 100%;
}

.column-search__card {
  display: flex;
  flex-direction: column;
  gap: 25px;
  width: calc(50% - 15px);
  padding: 27px 0;
  border-bottom: 1px solid #eee;
  text-decoration: none;
  transition: opacity 0.2s;
}

.column-search__card:hover {
  opacity: 0.7;
}

.column-search__card-img {
  width: 100%;
  height: auto;
  border: 2px solid #000;
  border-radius: 4px;
  -o-object-fit: cover;
     object-fit: cover;
}

.column-search__card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.column-search__card-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.column-search__card-date {
  color: #717171;
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 400;
}

.column-search__card-tags {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.column-search__card-tag {
  background: linear-gradient(90deg, #db060b 0%, #c65e22 100%);
  border-radius: 128px;
  padding: 3px 10px;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
}

.column-search__card-title {
  color: #000;
  font-family: var(--font-sans);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
}

.column-search__card-excerpt {
  color: #717171;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
}

.column-search__results {
  margin-bottom: 80px;
}

.column-search__more-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 1080px;
  max-width: 100%;
  margin-top: 20px;
  margin-bottom: 200px;
}

.column-search__more-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  border: none;
  border-radius: 128px;
  padding: 14px 50px;
  cursor: pointer;
}

.column-search__more-btn p {
  color: #fff;
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 700;
}

.column-search__more-btn .material-icons {
  color: #fff;
  font-size: 24px;
}

@media screen and (max-width: 769px) {
  .column-search {
    margin-top: 28px;
  }
  .column-search__title {
    width: 90%;
  }
  .column-search__form {
    width: 90%;
    margin-bottom: 29px;
  }
  .column-search__results {
    width: 90%;
    gap: 25px 10px;
    margin-bottom: 50px;
  }
  .column-search__card {
    width: calc(50% - 5px);
    padding: 0 0 5px;
  }
  .column-search__card-tag {
    padding-left: 4px;
    padding-right: 4px;
  }
  .column-search__card-date {
    font-size: 12px;
  }
  .column-search__card-title {
    font-size: 13px;
  }
  .column-search__card-excerpt {
    display: none;
  }
  .column-search__more-wrap {
    width: 90%;
    margin-bottom: 80px;
  }
  .column-search__count {
    width: 90%;
    font-size: 13px;
  }
  .column-search__no-results {
    width: 90%;
    padding: 60px 10px;
  }
  .column-search__no-results-icon {
    font-size: 48px;
  }
  .column-search__no-results-title {
    font-size: 15px;
  }
}
body:has(.column-taxonomy) {
  background: #fdfdfd;
}

.column-taxonomy {
  margin-top: 60px;
  width: 1080px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 200px;
}

.column-taxonomy__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 2px;
}

.column-taxonomy__title-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}

.column-taxonomy__icon {
  color: #db060b;
  font-size: 36px;
}

.column-taxonomy__title {
  color: #000;
  font-family: var(--font-sans);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.column-taxonomy__desc-section {
  width: 100%;
  margin-bottom: 40px;
  padding-bottom: 40px;
  border-bottom: 2px solid #eee;
}

.column-taxonomy__desc {
  color: #333;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.9;
  margin-bottom: 24px;
}
.column-taxonomy__desc p:last-child {
  margin-bottom: 0;
}

.column-taxonomy__other-cats {
  margin-top: 20px;
}

.column-taxonomy__other-cats-label {
  color: #666;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 12px;
}

.column-taxonomy__other-cats-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.column-taxonomy__other-cat-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 8px 18px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 128px;
  color: #333;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s;
}
.column-taxonomy__other-cat-btn:hover {
  background: #000;
  border-color: #000;
  color: #fff;
}
.column-taxonomy__other-cat-btn .material-icons {
  font-size: 16px;
}

.column-taxonomy__section-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  width: 100%;
}

.column-taxonomy__section-title {
  color: #000;
  font-family: var(--font-sans);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.column-taxonomy__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0 30px;
  width: 100%;
}

.column-taxonomy__card {
  display: flex;
  flex-direction: column;
  gap: 25px;
  width: calc(33.333% - 20px);
  padding: 27px 0;
  border-bottom: 1px solid #eee;
  text-decoration: none;
  transition: opacity 0.2s;
}

.column-taxonomy__card:hover {
  opacity: 0.7;
}

.column-taxonomy__card-img {
  width: 100%;
  height: auto;
  border: 2px solid #000;
  border-radius: 4px;
  -o-object-fit: cover;
     object-fit: cover;
}

.column-taxonomy__card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.column-taxonomy__card-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.column-taxonomy__card-date {
  color: #717171;
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 400;
}

.column-taxonomy__card-tags {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.column-taxonomy__card-tag {
  background: linear-gradient(90deg, #db060b 0%, #c65e22 100%);
  border-radius: 128px;
  padding: 3px 10px;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
}

.column-taxonomy__card-title {
  color: #000;
  font-family: var(--font-sans);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
}

.column-taxonomy__card-excerpt {
  color: #717171;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
}

.column-taxonomy__featured {
  width: 100%;
  margin-bottom: 40px;
  padding-bottom: 40px;
  border-bottom: 2px solid #eee;
}

.column-taxonomy__featured-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}

.column-taxonomy__featured-title {
  color: #000;
  font-family: var(--font-sans);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.column-taxonomy__more-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  margin-top: 20px;
}

.column-taxonomy__more-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  border: none;
  border-radius: 128px;
  padding: 14px 50px;
  cursor: pointer;
}

.column-taxonomy__more-btn p {
  color: #fff;
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 700;
}

.column-taxonomy__more-btn .material-icons {
  color: #fff;
  font-size: 24px;
}

@media screen and (max-width: 769px) {
  .column-taxonomy {
    margin-top: 20px;
    width: 90%;
    margin-bottom: 76px;
  }
  .column-taxonomy__header {
    padding: 0 0 21px;
  }
  .column-taxonomy__title-wrap {
    gap: 5px;
    margin-bottom: 0;
  }
  .column-taxonomy__icon {
    font-size: 24px;
  }
  .column-taxonomy__title {
    font-size: 20px;
  }
  .column-taxonomy__grid {
    gap: 25px 10px;
  }
  .column-taxonomy__card {
    width: calc(50% - 5px);
    padding: 0;
  }
  .column-taxonomy__card-meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
  .column-taxonomy__card-date {
    font-size: 12px;
  }
  .column-taxonomy__card-tag {
    padding-left: 3px;
    padding-right: 3px;
    font-size: 10px;
  }
  .column-taxonomy__card-title {
    font-size: 14px;
  }
  .column-taxonomy__card-excerpt {
    display: none;
  }
  .column-taxonomy__more-wrap {
    margin-bottom: 0;
  }
  .column-taxonomy__desc-section {
    margin-bottom: 24px;
    padding-bottom: 24px;
  }
  .column-taxonomy__desc {
    font-size: 13px;
    line-height: 1.8;
  }
  .column-taxonomy__other-cats-list {
    gap: 6px;
  }
  .column-taxonomy__other-cat-btn {
    padding: 6px 14px;
    font-size: 12px;
  }
  .column-taxonomy__section-header {
    margin-bottom: 12px;
  }
  .column-taxonomy__section-title {
    font-size: 18px;
  }
}
body:has(.kampai-fes__page) {
  background: rgba(23, 24, 33, 0);
}

.kampai-fes__page {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  padding: 30px 20px 0;
  width: 100%;
  min-height: 100vh;
  position: relative;
  background: #080808;
}

.kampai-fes {
  width: 500px;
  max-width: 100%;
  position: relative;
  z-index: 2;
}

.kampai-fes__left {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: transparent;
  z-index: 0;
  display: flex;
  flex-direction: column;
  pointer-events: none;
}

.kampai-fes__left-inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 20px;
  padding: 80px 20px 20px;
  width: 100vw;
  height: 100vh;
  position: relative;
  z-index: 1;
}

.kampai-fes__left-main {
  flex: 1 1 0%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 8px;
  height: 100%;
  gap: 50px;
  position: relative;
  background: url("../../assets/images/kampai-fes/fireworks-bg.webp") center/cover no-repeat;
  background-color: #080808;
}

.kampai-fes__left-visual {
  width: 326px;
  height: auto;
  max-width: 100%;
}

.kampai-fes__left-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 0;
  pointer-events: auto;
}

.kampai-fes__left-spacer {
  width: 500px;
  flex-shrink: 0;
  height: 100%;
  background: transparent;
}

.kampai-fes__left-bg {
  display: none;
}

.kampai-fes__left-bg-img {
  display: none;
}

.kampai-fes__left-nav-link {
  color: var(--color-gold-light);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 17px;
  font-weight: 700;
  text-decoration: none;
  padding: 4px 0;
  letter-spacing: 0.08em;
  transition: opacity 0.2s;
}

.kampai-fes__left-nav-link:hover {
  opacity: 1;
}

.kampai-fes__left-toggle {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  z-index: 1;
  pointer-events: auto;
}

.kampai-fes__left-toggle-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #191a22;
  border-radius: 100px 100px 0 0;
  border: none;
  padding: 8px 8px 5px;
  cursor: pointer;
}

.kampai-fes__left-toggle-arrow {
  color: #fff;
  font-size: 34px;
  transition: transform 0.3s;
}

.kampai-fes__left-toggle-btn[aria-expanded=false] .kampai-fes__left-toggle-arrow {
  transform: rotate(180deg);
}

.kampai-fes__left-toggle-btn[aria-expanded=true] .kampai-fes__left-toggle-arrow {
  transform: rotate(0deg);
}

.kampai-fes__left-toggle-panel {
  width: 100%;
  background: #eee;
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -3px 10px 0 rgba(0, 0, 0, 0.3);
  overflow: hidden;
  max-height: 600px;
  transition: max-height 0.4s ease, opacity 0.3s ease;
  opacity: 1;
}

.kampai-fes__left-toggle-panel.is-closed {
  max-height: 0;
  opacity: 0;
  box-shadow: none;
}

.kampai-fes__left-toggle-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 40px 0;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.kampai-fes__left-toggle-content::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../../assets/images/kampai-fes/toggle-bg-dark.webp") center/cover no-repeat;
  z-index: -1;
  pointer-events: none;
}

.kampai-fes__left-toggle-divider {
  width: 334px;
  height: auto;
  max-width: 100%;
  filter: saturate(0%);
  mix-blend-mode: soft-light;
}

.kampai-fes__left-toggle-info {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.kampai-fes__left-toggle-thanks {
  color: var(--color-gold);
  font-family: "Permanent Marker", cursive;
  font-size: 95px;
  font-style: italic;
  font-weight: 400;
  line-height: 1.4;
}

.kampai-fes__left-toggle-notice {
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
  max-width: 687px;
  margin-bottom: 20px;
}

.kampai-fes__left-toggle-desc {
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
  max-width: 687px;
  margin-bottom: 20px;
}

.kampai-fes__right {
  width: 500px;
  max-width: 100%;
  background: transparent;
  display: flex;
  flex-direction: column;
  border-radius: 8px;
  overflow: hidden;
}

.kampai-fes__hero {
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  position: relative;
}

.kampai-fes__hero-img {
  width: 100%;
  height: auto;
  display: block;
}

.kampai-fes__hero-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 201px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.kampai-fes__hero-overlay-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.kampai-fes__hero-overlay-ended {
  color: #fcf2b3;
  font-family: "Montserrat", sans-serif;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-align: center;
  max-width: 375px;
}

.kampai-fes__hero-overlay-period {
  color: rgba(252, 242, 179, 0.6);
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-align: center;
  max-width: 330px;
  margin-top: 4px;
}

.kampai-fes__hero-overlay-period strong {
  font-size: 10px;
  font-weight: 700;
}

.kampai-fes__divider {
  width: 100%;
  height: auto;
  display: block;
}

.kampai-fes__thanks {
  background: var(--color-red);
  padding: 16px 20px 30px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 40px;
  width: 100%;
}

.kampai-fes__thanks-title {
  color: var(--color-gold);
  font-family: "Permanent Marker", cursive;
  font-size: 95px;
  font-style: italic;
  font-weight: 400;
  line-height: 1.4;
}

.kampai-fes__thanks-body {
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 2.2;
}

.kampai-fes__thanks-body p {
  margin: 0 0 30px;
}

.kampai-fes__accordions {
  gap: 20px;
  width: 100%;
  display: grid;
}

.kampai-fes__accordion {
  width: 100%;
  max-width: 539px;
  background: #fff;
  border: 1px solid rgba(226, 182, 93, 0.6);
  border-radius: 10px;
  overflow: hidden;
}

.kampai-fes__accordion-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px;
  border: none;
  background: none;
  cursor: pointer;
}

.kampai-fes__accordion-title {
  color: var(--color-red);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
}

.kampai-fes__accordion-icon {
  color: var(--color-red);
  font-size: 24px;
  transition: transform 0.3s;
}

.kampai-fes__accordion-btn[aria-expanded=true] .kampai-fes__accordion-icon {
  transform: rotate(90deg);
}

.kampai-fes__accordion-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding: 0 20px;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s ease, padding-bottom 0.4s ease;
}

.kampai-fes__accordion-img {
  width: 100%;
  height: auto;
  border-radius: 6px;
}

.kampai-fes__accordion-img--small {
  width: 224px;
}

.kampai-fes__accordion-text {
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.5;
}

.kampai-fes__accordion-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  width: 100%;
  padding: 20px 0;
  border: 1px solid #da070c;
  border-radius: 40px;
  text-decoration: none;
  color: #da070c;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 700;
}

.kampai-fes__accordion-link-arrow {
  width: 9px;
  height: auto;
}

.kampai-fes__thanks-cta {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px;
  background: rgba(0, 0, 0, 0.16);
  border-radius: 8px;
  text-decoration: none;
  width: 100%;
}

.kampai-fes__thanks-cta-text {
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  flex: 1;
}

.kampai-fes__thanks-cta-icon {
  color: #fff;
  font-size: 24px;
}

.kampai-fes__campaign {
  background: rgba(226, 182, 93, 0.5);
  padding: 87px 20px 30px;
  display: flex;
  gap: 89px;
  flex-direction: column;
  align-items: center;
  gap: 89px;
  position: relative;
}

.kampai-fes__campaign::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../../assets/images/kampai-fes/campaign-bg.webp") top center/cover no-repeat;
  z-index: -1;
  pointer-events: none;
}

.kampai-fes__campaign-card {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 4px 10px 0 var(--color-gold);
  padding: 0 20px 40px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 50px;
  width: 100%;
  position: relative;
}

.kampai-fes__campaign-header {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 25px;
  padding: 0;
  width: 100%;
}

.kampai-fes__campaign-header-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
}

.kampai-fes__campaign-badge {
  width: 145px;
  margin-top: -51px;
  overflow: hidden;
  padding: 1px;
}

.kampai-fes__campaign-badge-ring-outer {
  width: 100%;
  height: 100px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 4px;
  position: relative;
}

.kampai-fes__campaign-badge-ring-outer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../../assets/images/kampai-fes/badge-ring-outer.svg") center/contain no-repeat;
  pointer-events: none;
}

.kampai-fes__campaign-badge-ring-inner {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.kampai-fes__campaign-badge-ring-inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../../assets/images/kampai-fes/badge-ring-inner.svg") center/contain no-repeat;
  pointer-events: none;
}

.kampai-fes__campaign-badge-num {
  position: relative;
  z-index: 10;
  color: var(--color-gold);
  font-family: "Permanent Marker", cursive;
  font-size: 34px;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.kampai-fes__campaign-titles {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

.kampai-fes__campaign-subtitle {
  color: var(--color-brown);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-align: center;
}

.kampai-fes__campaign-title {
  color: var(--color-brown);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
}

.kampai-fes__campaign-desc {
  color: var(--color-brown);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  width: 100%;
}

.kampai-fes__campaign-rewards-link {
  display: flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border-radius: 6px;
  padding: 0;
  text-decoration: none;
  color: var(--color-red);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 700;
  width: 100%;
}

.kampai-fes__campaign-rewards-link .material-icons {
  color: var(--color-red);
  font-size: 20px;
}

.kampai-fes__mission-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  justify-content: space-between;
  width: 100%;
}

.kampai-fes__mission-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  background: #f7eedb;
  border-radius: 9px;
  width: calc(50% - 5.5px);
  height: 184px;
  padding: 12px;
  overflow: hidden;
  text-decoration: none;
  position: relative;
}

.kampai-fes__mission-card-bg {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.kampai-fes__mission-card-circle {
  width: 140px;
  height: 140px;
  background: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
}

.kampai-fes__mission-card-icon {
  width: 70px;
  height: auto;
}

.kampai-fes__mission-card-fa {
  color: var(--color-gold-light);
  font-size: 89px;
}

.kampai-fes__mission-card-mi {
  color: var(--color-gold-light);
  font-size: 89px;
}

.kampai-fes__mission-card-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  width: 100%;
  position: relative;
  z-index: 1;
}

.kampai-fes__mission-card-num {
  color: var(--color-red);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.3;
}

.kampai-fes__mission-card-title {
  color: #000;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
}

.kampai-fes__mission-card-footer {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  width: 100%;
  position: relative;
  z-index: 1;
}

.kampai-fes__mission-card-detail {
  color: rgba(228, 27, 27, 0.6);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 10px;
  font-weight: 400;
}

.kampai-fes__mission-card-arrow {
  width: 15px;
  height: auto;
  margin-left: 0;
}

.kampai-fes__rewards {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 30px;
  width: 100%;
}

.kampai-fes__rewards-heading {
  color: var(--color-brown);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  width: 100%;
}

.kampai-fes__rewards-group {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 20px;
  width: 100%;
}

.kampai-fes__rewards-label {
  color: var(--color-brown);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  width: 100%;
}

.kampai-fes__rewards-divider {
  width: 100%;
  height: 1px;
  background: rgba(66, 33, 11, 0.3);
}

.kampai-fes__rewards-accordion {
  width: 100%;
  background: var(--color-brown);
  border-radius: 10px;
  overflow: hidden;
}

.kampai-fes__rewards-accordion-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px;
  border: none;
  background: none;
  cursor: pointer;
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 18px;
  font-weight: 700;
  text-align: left;
}

.kampai-fes__rewards-accordion-icon {
  color: #fff;
  font-size: 24px;
  transition: transform 0.3s;
}

.kampai-fes__rewards-accordion-btn[aria-expanded=true] .kampai-fes__rewards-accordion-icon {
  transform: rotate(90deg);
}

.kampai-fes__rewards-accordion-body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 0 20px;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s ease, padding-bottom 0.4s ease;
}

.kampai-fes__rewards-accordion-divider {
  width: 100%;
  height: 1px;
  background: rgba(255, 255, 255, 0.3);
}

.kampai-fes__rewards-accordion-text {
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.6;
}

.kampai-fes__rewards-note {
  color: rgba(66, 33, 11, 0.5);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.5;
  width: 100%;
}

.kampai-fes__campaign-corner {
  position: absolute;
  left: 10px;
  right: 10px;
  display: flex;
  justify-content: space-between;
  gap: 13px;
  z-index: 0;
  pointer-events: none;
}

.kampai-fes__campaign-corner--top {
  top: 10px;
}

.kampai-fes__campaign-corner--bottom {
  bottom: 10px;
}

.kampai-fes__campaign-corner-img {
  width: 30%;
  height: auto;
}

.kampai-fes__campaign-corner-img--flip-h {
  transform: scaleX(-1);
}

.kampai-fes__campaign-corner-img--flip-v {
  transform: scaleY(-1);
}

.kampai-fes__campaign-corner-img--flip-hv {
  transform: scale(-1, -1);
}

.kampai-fes__bonus-card {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 4px 10px 0 var(--color-gold);
  padding: 0 20px 80px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 18px;
  width: 100%;
  position: relative;
}

.kampai-fes__bonus-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
  width: 100%;
}

.kampai-fes__bonus-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
}

.kampai-fes__bonus-badge {
  width: 145px;
  margin-top: -51px;
  overflow: hidden;
  padding: 1px;
}

.kampai-fes__bonus-badge-ring-outer {
  width: 100%;
  height: 100px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 4px;
  position: relative;
}

.kampai-fes__bonus-badge-ring-outer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../../assets/images/kampai-fes/badge-ring-outer.svg") center/contain no-repeat;
  pointer-events: none;
}

.kampai-fes__bonus-badge-ring-inner {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.kampai-fes__bonus-badge-ring-inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../../assets/images/kampai-fes/badge-ring-inner.svg") center/contain no-repeat;
  pointer-events: none;
}

.kampai-fes__bonus-badge-num {
  position: relative;
  z-index: 10;
  color: var(--color-gold);
  font-family: "Permanent Marker", cursive;
  font-size: 34px;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.kampai-fes__bonus-titles {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  width: 100%;
}

.kampai-fes__bonus-subtitle {
  color: var(--color-brown);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-align: center;
}

.kampai-fes__bonus-title {
  color: var(--color-brown);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
}

.kampai-fes__bonus-desc {
  color: var(--color-brown);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  width: 100%;
}

.kampai-fes__bonus-img {
  width: 100%;
  height: auto;
  border-radius: 10px;
}

.kampai-fes__bonus-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: auto;
  padding: 20px 30px;
  background: var(--color-gold-dark);
  border: 2px solid var(--color-brown);
  margin-top: 15px;
  border-radius: 90px;
  box-shadow: 0 4px 4px 0 rgba(66, 33, 11, 0.1);
  text-decoration: none;
  overflow: hidden;
  width: 100%;
}

.kampai-fes__bonus-cta-text {
  color: var(--color-brown);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
}

.kampai-fes__bonus-cta-arrow {
  color: #333333;
  font-size: 24px;
  height: auto;
}

.kampai-fes__bonus-cta .material-icons {
  color: #333333;
  font-size: 24px;
}

.kampai-fes__bonus-corner {
  position: absolute;
  left: 10px;
  right: 10px;
  display: flex;
  justify-content: space-between;
  gap: 13px;
  z-index: 0;
  pointer-events: none;
}

.kampai-fes__bonus-corner--top {
  top: 10px;
}

.kampai-fes__bonus-corner--bottom {
  bottom: 10px;
}

.kampai-fes__bonus-corner-img {
  width: 30%;
  height: auto;
}

.kampai-fes__bonus-corner-img--flip-h {
  transform: scaleX(-1);
}

.kampai-fes__bonus-corner-img--flip-v {
  transform: scaleY(-1);
}

.kampai-fes__bonus-corner-img--flip-hv {
  transform: scale(-1, -1);
}

.kampai-fes__flow {
  background: #fff;
  padding: 30px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 100%;
}

.kampai-fes__flow-header {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.kampai-fes__flow-title {
  color: var(--color-gold);
  font-family: "Permanent Marker", cursive;
  font-size: 60px;
  font-style: italic;
  font-weight: 400;
  line-height: 1;
}

.kampai-fes__flow-subtitle {
  color: var(--color-gold);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
}

.kampai-fes__flow-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
}

.kampai-fes__flow-step-visual {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  width: 100%;
}

.kampai-fes__flow-step-label-img {
  width: 100%;
  height: 64px;
}

.kampai-fes__flow-step-img {
  width: 100%;
  height: auto;
}

.kampai-fes__flow-step-text {
  color: var(--color-brown);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
}

.kampai-fes__roadmap {
  background: #fff;
  filter: brightness(105%);
  padding: 80px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
  position: relative;
}

.kampai-fes__roadmap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../../assets/images/kampai-fes/roadmap-bg.webp") top center/cover no-repeat;
  z-index: -1;
  pointer-events: none;
}

.kampai-fes__roadmap-header {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.kampai-fes__roadmap-title {
  color: var(--color-gold);
  font-family: "Permanent Marker", cursive;
  font-size: 60px;
  font-style: italic;
  font-weight: 400;
  line-height: 1;
}

.kampai-fes__roadmap-subtitle {
  color: var(--color-gold);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
}

.kampai-fes__roadmap-desc {
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
  text-align: center;
  width: 354px;
  max-width: 100%;
}

.kampai-fes__timeline {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  width: 100%;
}

.kampai-fes__timeline-year {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  width: 100%;
  margin-top: 10px;
}

.kampai-fes__timeline-year-text {
  color: var(--color-red);
  font-family: "Permanent Marker", cursive;
  font-size: 40px;
  font-weight: 400;
  line-height: 1;
}

.kampai-fes__timeline-items {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  width: 100%;
}

.kampai-fes__timeline-arrow {
  color: var(--color-red);
  font-size: 24px;
  margin-left: 20px;
}

.kampai-fes__timeline-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  background: #12131b;
  border-radius: 10px;
  box-shadow: 0 0 10px 0 rgba(255, 17, 0, 0.1);
  padding: 15px 10px;
  width: 100%;
}

.kampai-fes__timeline-item-month {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
}

.kampai-fes__timeline-item-num {
  color: var(--color-red);
  font-family: "Permanent Marker", cursive;
  font-size: 26px;
  font-weight: 700;
  width: 32px;
  text-align: center;
}

.kampai-fes__timeline-item-label {
  color: rgba(228, 27, 27, 0.6);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 15px;
  font-weight: 700;
  width: 46px;
}

.kampai-fes__timeline-item-text {
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.3;
  flex: 1;
}

.kampai-fes__faq {
  background: var(--color-red);
  padding: 30px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 100%;
}

.kampai-fes__faq-header {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.kampai-fes__faq-title {
  color: var(--color-gold);
  font-family: "Permanent Marker", cursive;
  font-size: 60px;
  font-style: italic;
  font-weight: 400;
  line-height: 1;
}

.kampai-fes__faq-subtitle {
  color: var(--color-gold);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
}

.kampai-fes__faq-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: 100%;
}

.kampai-fes__faq-item {
  width: 100%;
  max-width: 539px;
  background: #fff;
  border: 0 solid var(--color-gold);
  border-radius: 10px;
  overflow: hidden;
}

.kampai-fes__faq-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border: none;
  background: none;
  cursor: pointer;
}

.kampai-fes__faq-q {
  display: flex;
  align-items: center;
  gap: 4px;
}

.kampai-fes__faq-q-label {
  color: #ec1b1b;
  font-family: "Permanent Marker", cursive;
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.kampai-fes__faq-q-text {
  color: #ec1b1b;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: left;
}

.kampai-fes__faq-icon {
  color: var(--color-red);
  font-size: 24px;
  transition: transform 0.3s;
}

.kampai-fes__faq-btn[aria-expanded=true] .kampai-fes__faq-icon {
  transform: rotate(90deg);
}

.kampai-fes__faq-answer {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 0 20px;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s ease, padding-bottom 0.4s ease;
}

.kampai-fes__faq-answer-divider {
  width: 100%;
  height: 1px;
  background: #ddd;
}

.kampai-fes__faq-answer-text {
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.5;
}

.kampai-fes__sp-toggle {
  display: none;
}

.kampai-fes__sp-toggle-nav {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 10px 16px;
  background: rgba(8, 8, 8, 0.95);
  border-top: 1px solid rgba(226, 182, 93, 0.3);
}

.kampai-fes__sp-toggle-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 40px;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(51px);
  border: 3px solid rgba(255, 255, 255, 0.1);
  border-bottom: none;
  border-radius: 100px 100px 0 0;
  margin: -3px auto 0;
  cursor: pointer;
}

.kampai-fes__sp-toggle-arrow {
  color: #fff;
  font-size: 34px;
  transition: transform 0.3s;
}

.kampai-fes__sp-toggle-btn[aria-expanded=true] .kampai-fes__sp-toggle-arrow {
  transform: rotate(180deg);
}

.kampai-fes__sp-toggle-panel {
  background: transparent;
  overflow: hidden;
  max-height: 500px;
  transition: max-height 0.4s ease, opacity 0.3s ease;
  opacity: 1;
}

.kampai-fes__sp-toggle-panel.is-closed {
  max-height: 0;
  opacity: 0;
}

.kampai-fes__sp-toggle-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding: 30px 24px;
  background: transparent;
  border: 3px solid rgba(255, 255, 255, 0.21);
  border-radius: 22px 22px 0 8px;
  box-shadow: 0 -2px 11px 0 rgba(0, 0, 0, 0.13);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.kampai-fes__sp-toggle-content::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../../assets/images/kampai-fes/toggle-bg-dark.webp") center/cover no-repeat;
  z-index: -1;
  pointer-events: none;
}

.kampai-fes__sp-toggle-divider {
  width: 236px;
  height: auto;
  filter: brightness(200%) saturate(0%);
  mix-blend-mode: soft-light;
  opacity: 0.7;
  transform: scaleY(-1);
}

.kampai-fes__sp-toggle-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.kampai-fes__sp-toggle-thanks {
  color: var(--color-gold);
  font-family: "Permanent Marker", cursive;
  font-size: 59px;
  font-style: italic;
  font-weight: 400;
  line-height: 1;
}

.kampai-fes__sp-toggle-notice {
  color: rgba(255, 255, 255, 0.5);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
}

.kampai-fes__sp-toggle-desc {
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
}

.kampai-fes__sp-toggle-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 90%;
  padding: 16px 14px;
  background: var(--color-red);
  border-radius: 90px;
  text-decoration: none;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 700;
}

.kampai-fes__sp-toggle-cta .material-icons {
  color: #fff;
  font-size: 24px;
}

.kampai-fes__sp-toggle-link {
  color: var(--color-gold);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 12px;
  font-weight: 400;
  text-decoration: none;
  white-space: nowrap;
}

.kampai-fes__page > .footer {
  align-self: stretch;
  position: relative;
  z-index: 2;
}

.kampai-fes__page > .kampai-fes__sp-toggle {
  align-self: stretch;
  z-index: 2;
}

@media (max-width: 769px) {
  .kampai-fes__page {
    padding: 0;
    align-items: stretch;
    background: #000;
  }
  .kampai-fes__left {
    display: none;
  }
  .kampai-fes {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    height: auto;
  }
  .kampai-fes__right {
    width: 100%;
    max-width: 100%;
    border-radius: 0;
  }
  .kampai-fes__hero {
    width: 100%;
    border-radius: 0;
  }
  .kampai-fes__hero-overlay {
    height: 140px;
  }
  .kampai-fes__hero-overlay-ended {
    font-size: 13px;
    max-width: 100%;
  }
  .kampai-fes__hero-overlay-period {
    font-size: 13px;
  }
  .kampai-fes__hero-overlay-period strong {
    font-size: 13px;
  }
  .kampai-fes__hero-overlay .kampai-fes__bonus-cta {
    gap: 4px;
    padding: 8px 44px;
    width: auto;
  }
  .kampai-fes__hero-overlay .kampai-fes__bonus-cta-text {
    font-size: 14px;
    color: var(--color-brown);
  }
  .kampai-fes__flow .kampai-fes__bonus-cta {
    gap: 4px;
    padding: 8px 14px;
  }
  .kampai-fes__flow .kampai-fes__bonus-cta-text {
    font-size: 14px;
  }
  .kampai-fes__thanks-title {
    font-size: 72px;
  }
  .kampai-fes__thanks-body {
    font-size: 16px;
    line-height: 1.8;
  }
  .kampai-fes__thanks-body p {
    margin-bottom: 12px;
    line-height: 2.2;
  }
  .kampai-fes__thanks-cta {
    gap: 4px;
    padding: 20px;
    background: rgba(0, 0, 0, 0.16);
    width: 90%;
    align-self: center;
    border-radius: 6px;
    width: 100%;
  }
  .kampai-fes__thanks-cta-text {
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 16px;
    font-weight: 700;
  }
  .kampai-fes__thanks-cta-icon {
    color: #fff;
  }
  .kampai-fes__accordion {
    max-width: 100%;
  }
  .kampai-fes__accordion-title {
    font-size: 20px;
  }
  .kampai-fes__accordion-text {
    font-size: 13px;
  }
  .kampai-fes__accordion-link {
    gap: 8px;
    padding: 8px 0;
    font-size: 13px;
  }
  .kampai-fes__campaign {
    gap: 90px;
    padding: 90px 20px 20px;
  }
  .kampai-fes__campaign-header {
    gap: 15px;
  }
  .kampai-fes__campaign-header-top {
    gap: 20px;
    height: auto;
    padding: 0;
  }
  .kampai-fes__campaign-card {
    gap: 20px;
    padding: 30px 20px;
  }
  .kampai-fes__campaign-badge {
    margin-top: 0;
  }
  .kampai-fes__campaign-subtitle {
    color: var(--color-red);
    font-size: 13px;
  }
  .kampai-fes__campaign-title {
    color: var(--color-red);
    font-size: 24px;
    font-weight: 700;
  }
  .kampai-fes__campaign-titles {
    height: auto;
  }
  .kampai-fes__campaign-desc {
    font-size: 16px;
  }
  .kampai-fes__campaign-rewards-link {
    font-size: 16px;
    gap: 16px;
  }
  .kampai-fes__mission-grid {
    gap: 12px;
    padding: 0;
    margin: 0;
  }
  .kampai-fes__mission-card {
    flex: none;
    width: calc(50% - 6px);
    height: auto;
    margin: 0;
    padding: 10px;
    height: 184px;
  }
  .kampai-fes__mission-card-info {
    gap: 3px;
    width: 100%;
    max-width: 100%;
  }
  .kampai-fes__mission-card-num {
    font-size: 13px;
    line-height: 1;
  }
  .kampai-fes__mission-card-title {
    color: #000;
    font-size: 14px;
    font-weight: 400;
  }
  .kampai-fes__mission-card-detail {
    font-size: 13px;
  }
  .kampai-fes__rewards {
    gap: 20px;
  }
  .kampai-fes__rewards-heading {
    font-size: 20px;
  }
  .kampai-fes__rewards-label {
    font-size: 14px;
  }
  .kampai-fes__rewards-accordion-btn {
    font-size: 18px;
    padding: 16px;
  }
  .kampai-fes__rewards-accordion-text {
    font-size: 13px;
  }
  .kampai-fes__rewards-note {
    font-size: 10px;
  }
  .kampai-fes__campaign-corner {
    gap: 6px;
  }
  .kampai-fes__bonus-card {
    gap: 8px;
    padding: 30px 20px;
  }
  .kampai-fes__bonus-content {
    gap: 20px;
    margin: -81px 0 0 0;
  }
  .kampai-fes__bonus-badge {
    margin-top: 0;
  }
  .kampai-fes__bonus-titles {
    gap: 10px;
  }
  .kampai-fes__bonus-subtitle {
    color: var(--color-red);
    font-size: 13px;
  }
  .kampai-fes__bonus-title {
    color: var(--color-red);
    font-size: 24px;
    font-weight: 700;
  }
  .kampai-fes__bonus-desc {
    font-size: 16px;
  }
  .kampai-fes__bonus-cta {
    gap: 4px;
    padding: 8px 14px;
    width: 90%;
    align-self: center;
    border-radius: 90px;
    margin-inline: auto;
  }
  .kampai-fes__bonus-cta-text {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-weight: 700;
  }
  .kampai-fes__bonus-cta .material-icons {
    color: #fff;
  }
  .kampai-fes__bonus-corner {
    gap: 6px;
  }
  .kampai-fes__flow-step-text {
    font-size: 20px;
  }
  .kampai-fes__flow-step-label-img {
    height: 52px;
  }
  .kampai-fes__roadmap {
    padding: 40px 20px;
    gap: 30px;
  }
  .kampai-fes__roadmap-desc {
    font-size: 13px;
  }
  .kampai-fes__timeline-year-text {
    font-size: 28px;
  }
  .kampai-fes__timeline-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
  }
  .kampai-fes__timeline-item-month {
    gap: 4px;
    width: 78px;
  }
  .kampai-fes__timeline-item-num {
    font-size: 16px;
    width: 25px;
  }
  .kampai-fes__timeline-item-label {
    font-size: 16px;
  }
  .kampai-fes__timeline-item-text {
    font-size: 13px;
  }
  .kampai-fes__faq-item {
    max-width: 100%;
  }
  .kampai-fes__faq-q {
    flex-flow: row;
    gap: 2px;
    padding: 0;
  }
  .kampai-fes__faq-q-label {
    flex: 0 0 auto;
    font-size: 18px;
    width: auto;
  }
  .kampai-fes__faq-q-text {
    flex: 0 0 auto;
    font-size: 13px;
    width: 91%;
  }
  .kampai-fes__faq-answer-text {
    font-size: 13px;
  }
  .kampai-fes__sp-toggle {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 2;
  }
  .kampai-fes__sp-toggle-content {
    gap: 27px;
  }
  .kampai-fes__page > .footer {
    align-self: stretch;
  }
}
.kampai-fes__page .richText > p {
  min-height: 1em;
}

.kampai-fes__page .richText p {
  display: block;
  margin: 10px 0;
}

.white-paper {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #fff;
  width: 100%;
}

.white-paper__page {
  width: 50%;
  height: auto;
}

.white-paper__page + .white-paper__page {
  margin-top: 5px;
}

@media (max-width: 769px) {
  .white-paper__page {
    width: 100%;
    height: auto;
  }
}
.about {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #171821;
  width: 100%;
}

.about__inner {
  display: flex;
  flex-direction: column;
  width: 1180px;
  max-width: 100%;
  margin-top: 146px;
  margin-bottom: 100px;
  gap: 63px;
  padding: 0 20px;
  box-sizing: border-box;
}

.about__section {
  display: flex;
  flex-direction: column;
}

.about__heading {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 100px;
  color: #535353;
  line-height: 1;
  margin: 0 0 30px;
}

.about__lead {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #fff;
  line-height: 2;
  max-width: 729px;
  margin: 0;
}

.about__info {
  display: flex;
  flex-direction: column;
  margin: 0;
}

.about__info-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  margin-bottom: 15px;
}

.about__info-row--top {
  align-items: flex-start;
}

.about__info-label {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #fff;
  width: 99px;
  flex-shrink: 0;
}

.about__info-value {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #8a8b96;
  line-height: 2;
  margin: 0;
}

.about__partners {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 16px;
}

.about__partner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.31);
  border-radius: 4px;
  padding: 20px 30px;
  text-decoration: none;
  transition: transform 0.2s;
}

.about__partner:hover {
  transform: scale(1.03);
}

.about__partner-name {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #fff;
  margin: 0;
}

.about__partner-logo {
  height: 31px;
  width: auto;
}

@media (max-width: 769px) {
  .about__inner {
    margin-top: 80px;
    margin-bottom: 60px;
    gap: 40px;
  }
  .about__heading {
    font-size: 58px;
    margin-bottom: 20px;
  }
  .about__lead {
    max-width: 100%;
  }
  .about__info-row {
    margin-bottom: 10px;
  }
  .about__info-label {
    font-size: 14px;
  }
  .about__info-value {
    font-size: 13px;
    width: 233px;
  }
  .about__partners {
    width: 199px;
  }
}
.listing-apply {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #fff;
  width: 100%;
  padding: 107px 0;
}

.listing-apply__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 40px;
  color: #000;
  text-align: center;
  margin-bottom: 50px;
}

@media screen and (max-width: 769px) {
  .listing-apply {
    padding: 44px 0;
  }
  .listing-apply__title {
    font-size: 28px;
    margin-bottom: 30px;
  }
}
.contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #171821;
  width: 100%;
  padding: 107px 0;
}

.contact__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 40px;
  color: #fff;
  text-align: center;
  margin-bottom: 0;
}

.contact .wpcf7-form {
  width: 600px;
  max-width: calc(100% - 40px);
  gap: 0;
  padding: 0;
  margin: 20px;
}

.contact .form-section__field {
  margin-bottom: 20px;
}

.contact .form-section__field:last-child {
  margin-bottom: 0;
}

.contact .form-section__label {
  color: #fff;
}

.contact .wpcf7-text,
.contact .wpcf7-email {
  background-color: rgba(255, 255, 255, 0.43);
  color: #fff;
  border: none;
}

.contact .wpcf7-text::-moz-placeholder, .contact .wpcf7-email::-moz-placeholder {
  color: #fff;
}

.contact .wpcf7-text::placeholder,
.contact .wpcf7-email::placeholder {
  color: #fff;
}

.contact .wpcf7-select {
  background-color: #7b7c80;
  color: #fff;
  border: none;
}

.contact .wpcf7-textarea {
  background-color: rgba(255, 255, 255, 0.43);
  color: #fff;
  border: none;
}

.contact .wpcf7-textarea::-moz-placeholder {
  color: #fff;
}

.contact .wpcf7-textarea::placeholder {
  color: #fff;
}

.contact .wpcf7-submit {
  margin-top: 20px;
}

@media screen and (max-width: 769px) {
  .contact {
    padding: 44px 0;
  }
  .contact__title {
    font-size: 28px;
  }
  .contact .wpcf7-form {
    width: 100%;
    padding: 0 20px;
    margin: 20px 0;
    box-sizing: border-box;
    max-width: none;
  }
}
.legal-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #171821;
  width: 100%;
  padding: 80px 0 80px;
}

.legal-page__header {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 30px;
  margin-bottom: 40px;
}

.legal-page__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 40px;
  color: #fff;
  text-align: center;
  margin-bottom: 0;
}

.legal-page__lang {
  display: flex;
  align-items: center;
  gap: 4px;
}

.legal-page__lang-item {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #fff;
  text-decoration: none;
}

.legal-page__lang-item--active {
  font-weight: 700;
}

.legal-page__lang-sep {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #fff;
}

.legal-page__body {
  width: 1150px;
  max-width: calc(100% - 40px);
  background-color: transparent;
  border-radius: 0;
  padding: 0;
  box-sizing: border-box;
}

.legal-content {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 2;
  color: #8a8b96;
  word-break: break-word;
  overflow-wrap: break-word;
}

.legal-content a {
  color: #4495f6;
  text-decoration: underline;
}

.legal-content a:hover {
  opacity: 0.7;
}

.legal-content h2 {
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  margin: 48px 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  line-height: 1.6;
}

.legal-content h3 {
  font-size: 20px;
  font-weight: 700;
  color: #ccc;
  margin: 40px 0 12px;
  padding-left: 10px;
  border-left: 3px solid #4495f6;
  line-height: 1.6;
}

.legal-content h4 {
  font-size: 18px;
  font-weight: 700;
  color: #bbb;
  margin: 30px 0 10px;
  line-height: 1.6;
}

.legal-content p {
  margin-bottom: 1em;
  line-height: 2;
}

.legal-content ul {
  list-style: disc;
  padding-left: 1.5em;
  margin-bottom: 1em;
}

.legal-content ol {
  list-style: decimal;
  padding-left: 1.5em;
  margin-bottom: 1em;
}

.legal-content li {
  margin: 6px 0;
  line-height: 2;
}

.legal-content strong {
  font-weight: 700;
  color: #ccc;
}

.legal-content em {
  font-style: italic;
}

.legal-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
}

.legal-content th {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  font-weight: 700;
  color: #ccc;
  padding: 12px 18px;
  text-align: left;
}

.legal-content td {
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 12px 18px;
}

.legal-content blockquote {
  border-left: 4px solid rgba(255, 255, 255, 0.15);
  padding: 12px 18px;
  margin: 20px 0;
  color: #aaa;
  background: rgba(255, 255, 255, 0.04);
}

.legal-content hr {
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  margin: 40px 0;
}

.legal-content img {
  max-width: 100%;
  height: auto;
}

@media screen and (max-width: 769px) {
  .legal-page {
    padding: 44px 0 40px;
  }
  .legal-page__header {
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px;
  }
  .legal-page__title {
    font-size: 24px;
  }
  .legal-page__body {
    width: 90%;
    max-width: 90%;
    padding: 0;
  }
  .legal-content {
    font-size: 13px;
  }
  .legal-content h2 {
    font-size: 20px;
    margin: 36px 0 12px;
  }
  .legal-content h3 {
    font-size: 17px;
    margin: 28px 0 10px;
  }
  .legal-content h4 {
    font-size: 15px;
  }
  .legal-content th,
  .legal-content td {
    padding: 8px 12px;
    font-size: 12px;
  }
}
.not-found {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #171821;
  width: 100%;
  min-height: 60vh;
  padding: 80px 20px;
  box-sizing: border-box;
}

.not-found__code {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 120px;
  color: #db060b;
  line-height: 1;
  margin: 0 0 16px;
}

.not-found__title {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 28px;
  color: #fff;
  margin: 0 0 24px;
  letter-spacing: 0.05em;
}

.not-found__message {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 15px;
  color: #8a8b96;
  text-align: center;
  line-height: 2;
  margin: 0 0 48px;
}

.not-found__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #42210b;
  background-color: #e2b65d;
  padding: 14px 32px;
  border-radius: 6px;
  text-decoration: none;
  transition: background-color 0.2s;
}

.not-found__btn:hover {
  background-color: #d09c2d;
}

.not-found__btn .material-icons {
  font-size: 20px;
}

@media screen and (max-width: 769px) {
  .not-found {
    min-height: 50vh;
    padding: 60px 20px;
  }
  .not-found__code {
    font-size: 80px;
    margin-bottom: 12px;
  }
  .not-found__title {
    font-size: 22px;
    margin-bottom: 20px;
  }
  .not-found__message {
    font-size: 13px;
    margin-bottom: 36px;
  }
  .not-found__btn {
    font-size: 13px;
    padding: 12px 28px;
  }
}
.author-profile {
  background: #fff;
  padding: 50px 0;
}

.author-profile__inner {
  width: 800px;
  max-width: 90%;
  margin: 0 auto;
}

.author-profile__header {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}

.author-profile__avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  flex-shrink: 0;
}

.author-profile__info {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  flex: 1;
}

.author-profile__name {
  font-family: var(--font-sans);
  font-size: 24px;
  font-weight: 700;
  color: #000;
}

.author-profile__bio {
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 400;
  color: #555;
  line-height: 1.8;
  margin: 0;
}

.author-profile__social {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 12px;
}

.author-profile__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #f0f0f0;
  transition: background 0.2s, transform 0.2s;
}

.author-profile__social-link:hover {
  background: #db060b;
  transform: scale(1.1);
}

.author-profile__social-icon {
  width: 18px;
  height: 18px;
  -o-object-fit: contain;
     object-fit: contain;
}

.author-profile__social-link:hover .author-profile__social-icon {
  filter: brightness(0) invert(1);
}

.author-posts {
  background: #f5f5f5;
  padding: 50px 0 100px;
}

.author-posts__inner {
  width: 1080px;
  max-width: 90%;
  margin: 0 auto;
}

.author-posts__heading {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 22px;
  font-weight: 700;
  color: #000;
  margin-bottom: 30px;
}

.author-posts__heading .material-icons {
  color: #db060b;
  font-size: 28px;
}

.author-posts__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0 30px;
}

.author-posts__item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 25px;
  width: calc(50% - 15px);
  padding: 20px 0;
  border-bottom: 1px solid #ddd;
  text-decoration: none;
  transition: background 0.2s;
}

.author-posts__item:hover {
  background: rgba(0, 0, 0, 0.02);
}

.author-posts__item-img {
  flex: none;
  width: 152px;
  height: 102px;
  border: 2px solid #000;
  border-radius: 4px;
  background-size: cover;
  background-position: center;
}

.author-posts__item-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.author-posts__item-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.author-posts__item-date {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: #717171;
}

.author-posts__item-tags {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.author-posts__item-tag {
  background: linear-gradient(90deg, #db060b 0%, #c65e22 100%);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 128px;
  line-height: 1.5;
}

.author-posts__item-title {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  color: #000;
  line-height: 1.5;
}

.author-posts__empty {
  font-family: var(--font-sans);
  font-size: 14px;
  color: #888;
  text-align: center;
  padding: 40px 0;
}

@media (max-width: 769px) {
  .author-profile {
    padding: 30px 0;
  }
  .author-profile__header {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .author-profile__avatar {
    width: 72px;
    height: 72px;
  }
  .author-profile__name {
    font-size: 20px;
  }
  .author-profile__bio {
    font-size: 13px;
  }
  .author-posts {
    padding: 30px 0 60px;
  }
  .author-posts__heading {
    font-size: 18px;
  }
  .author-posts__item {
    width: 100%;
    gap: 15px;
  }
  .author-posts__item-img {
    width: 70px;
    height: 70px;
  }
  .author-posts__item-title {
    font-size: 14px;
  }
}/*# sourceMappingURL=style.css.map */