@charset "utf-8";
/*
Theme Name: 劇場演出空間技術協会　サイトテンプレート
Author: JATET-劇場演出空間技術協会
Description: original theme
Version： 1.0.0
*/
/*cssのリセット*/
@import url("https://fonts.googleapis.com/css2?family=Kosugi&display=swap");
@import url(fonts/style.css);

@import url("https://fonts.googleapis.com/css2?family=Shippori+Mincho+B1:wght@500;600;700;800&family=Noto+Sans+JP:wght@300;400;500;700&display=swap");

* {
  transition: all 0.3s ease 0s;
}


*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
ol,
ul {
  list-style: none;
}
html {
  height: 100%;
  scroll-padding-top: var(--site-header-offset, 150px);
  font-size: 62.5%;
}
body {
  height: 100%;
  font-family: "Kosugi", sans-serif;
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.03em;
  color: #333;
  overflow-wrap: break-word;
  overflow-x: hidden;
  top: 0 !important;
  transition-property: color, background-color, border-color, opacity, transform;
}
body.is-front-page {
  padding-top: var(--site-header-offset, 150px);
}
a {
  text-decoration: none;
  color: #000;
}
a:hover img {
}


/*画像関連*/
img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
div img {
  margin: 0 auto;
}

/*フレックスボックス*/
.flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.empty-card {
  margin: 0;
  height: 0;
}
.empty-mcard {
  width: 24%;
  margin: 0;
  height: 0;
}
@media screen and (max-width: 480px) {
  .flex {
    display: block;
  }
}


/*装飾*/




/*見出し*/
h2.subtitle span {
  margin-right: 15px;
}

h2.subtitle  {
  width: 1200px;
  padding: .3em .7em;
  margin: 10px auto;
  border-left: 5px solid #970000;
  border-bottom: 3px solid #dfd5d5;
  border-radius: 3px;
  background-image: linear-gradient(45deg, #fff2f2 0%, #ffafaf 100%);
  color: #333333;
  box-shadow: 3px 2px 5px #000000b3;
}




/*共通レイアウト*/
#wrapper {}
#container {
  width: 1200px;
  min-height: 600px;
  margin: 0 auto;
}
#left-container {
  width: 930px;
}
#right-container {
  width: 250px;
  background: #ececec;
  padding: 15px;
}
.sp,
#sp-menu {
  display: none;
}
@media screen and (min-width: 480px) {
  html.front-section-snap {
    scroll-snap-type: y mandatory;
    scroll-padding-top: var(--site-header-offset, 150px);
  }
  html.front-section-snap.is-section-snapping {
    scroll-snap-type: none;
  }
  body {
    min-width: 1200px;
    overflow-x: auto;
  }
  .sp-br {
    display: none;
  }
}
@media screen and (max-width: 480px) {
  .pc {
    display: none;
  }
  .sp,
  #sp-menu {
    display: block;
  }
}

/* baiscパンくず
----------------------------------*/
nav#breadcrumbs {
	margin-bottom: 20px;
}
nav#breadcrumbs ul li .icon-home {
  font-size: 1.4rem;
}
.basic {
  margin-left:0;
  padding-left:15px;
}
.basic li {
  display:inline;
  list-style: none;
  font-weight: bold;
}
.basic li:after {
  content: '>';
  padding: 0 3px;
}
.basic li:last-child:after {
  content: '';
}
.basic li a {
  text-decoration: underline;
}
.basic li a:hover {
  color: #224599;
}

.breadcrumbs-back {
  display: none;
}

@media screen and (max-width: 767px) {
  nav#breadcrumbs.has-mobile-back {
    margin-bottom: 12px;
  }

  nav#breadcrumbs.has-mobile-back > ul {
    display: none;
  }

  nav#breadcrumbs .breadcrumbs-back {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 4px 0;
    color: inherit;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.4;
    text-decoration: none;
  }

  nav#breadcrumbs .breadcrumbs-back:hover {
    text-decoration: underline;
  }
}

/*ヘッダエリア*/
header {
  z-index: 100;
  width: 100%;
  background: #fff;
  border-bottom: 2px solid #750000;
  padding: 10px 30px;
}
body.is-front-page > header {
  position: fixed;
  top: 0;
  left: 0;
}
a.header-brand {
  display: flex;
  align-items: center; 
}
img.header-logo {
  width: 80px;
  height: auto;
  margin: 5px 15px 0 0;
}
#header-name {
  width: fit-content;
}
#header-name h1,
#header-name span {
  display: block;
  width: 100%;
}
#header-name h1 {
  font-family: "Noto Serif JP", serif;
  font-size: 3.0rem;
  font-weight: 900;
  line-height: 1.35;
  color: #222;
}
#header-name span {
  padding: 0 5px;
  background-color: #970000;
  color: #fff;
  text-align-last: justify;
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  flex: 0 0 auto;
}
.language-switcher {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  font-size: 1.4rem;
}
.language-switcher__link {
  appearance: none;
  border: 0;
  background: transparent;
  color: #4d4d4d;
  cursor: pointer;
  font: inherit;
  letter-spacing: inherit;
}
.language-switcher__link.is-current {
  color: #970000;
  font-weight: 700;
}
.language-switcher__divider {
  display: block;
  width: 1px;
  height: 16px;
  background: #b8b8b8;
}
.member-login {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 30px;
  border: 1px solid #970000;
  border-radius: 3px;
  background-image: linear-gradient(45deg, #970000 0%, #f08282 100%);
  transition: .4s;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  white-space: nowrap;
}
.member-login:hover {
  background: #f08282;
  color: #970000;
}
#google_translate_element {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.goog-te-banner-frame,
.goog-te-banner-frame.skiptranslate,
.skiptranslate iframe,
iframe.skiptranslate {
  display: none !important;
}
body > .skiptranslate {
  display: none !important;
}
nav#global-navi {
  z-index: 100;
  width: 100%;
  border-bottom: 2px solid #750000;
  transition-property: color, background-color, border-color, opacity, transform;
}
.front-menu-toggle {
  display: none;
}
.front-mobile-member-login {
  display: none;
}
body.is-front-page nav#global-navi {
  position: fixed;
  top: var(--site-header-height, 98px);
  left: 0;
}
nav#global-navi ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  background-color: #fff;
}
.menu-sample li {
  flex: 1;
}
.menu-sample li a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  font-weight: 600;
  height: 50px;
  transition: all .5s ease;
}
.menu-sample li a::after {
  content: "";
  width: 0%;
  position: absolute;
  bottom: 0;
  right: 0;
  border-bottom: #8b4b4b 3px solid;
  transition: all .3s ease;
}
.menu-sample li a:hover,
.menu-sample li a.is-active {
  background: #750000;
  color: #fff;
}
.menu-sample:hover li a:not(:hover):not(.is-active) {
  background: #fff;
  color: #aaa;
}
.menu-sample li a:hover::after,
.menu-sample li a.is-active::after {
  width: 100%;
  left: 0;
}






/*トップページ*/
.hero-stage {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: calc(100vh - var(--hero-top-offset, 0px));
  height: calc(100dvh - var(--hero-top-offset, 0px));
  padding: clamp(60px, 10vw, 130px) clamp(22px, 7vw, 100px);
  overflow: hidden;
  background: #111;
  color: #fff;
  scroll-margin-top: 0;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  transition-property: color, background-color, border-color, opacity, transform;
}
.hero-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(0, 0, 0, .62), rgba(0, 0, 0, .18) 58%, rgba(0, 0, 0, .34));
  pointer-events: none;
}
.hero-tile-slider,
.hero-tile-slider__base,
.hero-tile-slider__tile,
.hero-tile-slider__tile-image {
  position: absolute;
}
.hero-tile-slider {
  inset: 0;
  z-index: 0;
  overflow: hidden;
  perspective: 1200px;
}
.hero-tile-slider * {
  transition-property: none;
}
.hero-tile-slider__base,
.hero-tile-slider__tile-image {
  inset: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.hero-tile-slider__tile {
  backface-visibility: hidden;
  overflow: hidden;
  opacity: 0;
  transform: rotateY(90deg);
  transform-origin: center;
  transition: transform 1.2s cubic-bezier(.2, .8, .2, 1);
}
.hero-tile-slider__tile.is-flipped {
  opacity: 1;
  transform: rotateY(0deg);
}
.hero-content {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 570px);
  align-items: center;
  gap: clamp(32px, 6vw, 90px);
  width: 100%;
}
.hero-copy {
  max-width: 860px;
}
.hero-headline,
.hero-subhead {
  text-shadow: 0 2px 18px rgba(0, 0, 0, .5);
}
.hero-headline {
  margin-bottom: 24px;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(3.6rem, 5vw, 7.2rem);
  font-weight: 700;
  line-height: 1.22;
}
.hero-subhead {
  font-size: clamp(1.5rem, 1.7vw, 2rem);
  line-height: 2;
}
.hero-news {
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid rgba(255, 255, 255, .32);
  background: rgba(0, 0, 0, .46);
  backdrop-filter: blur(6px);
  color: #fff;
}
.hero-news__title {
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, .28);
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2rem, 2.1vw, 2.8rem);
  font-weight: 700;
  line-height: 1.3;
}
.hero-news__list {
  display: grid;
  gap: 0;
}
.hero-news__item {
  border-bottom: 1px solid rgba(255, 255, 255, .22);
}
.hero-news__item:last-child {
  border-bottom: 0;
}
.hero-news__link {
  display: block;
  padding: 14px 0;
  color: #fff;
}
.hero-news__link:hover {
  color: #ffdede;
}
.hero-news__date {
  display: block;
  margin-bottom: 6px;
  color: rgba(255, 255, 255, .78);
  font-size: 1.3rem;
  line-height: 1.3;
}
.hero-news__text {
  display: block;
  font-size: clamp(1.4rem, 1.2vw, 1.6rem);
  line-height: 1.65;
}
.hero-news__empty {
  color: rgba(255, 255, 255, .82);
  font-size: 1.4rem;
}
.hero-image-title {
  position: absolute;
  right: clamp(18px, 3vw, 42px);
  bottom: clamp(16px, 2.5vw, 34px);
  z-index: 2;
  max-width: min(42vw, 520px);
  padding: 6px 10px;
  background: rgba(0, 0, 0, .42);
  color: rgba(255, 255, 255, .9);
  font-size: clamp(1.1rem, .9vw, 1.3rem);
  line-height: 1.5;
  text-align: right;
  text-shadow: 0 1px 8px rgba(0, 0, 0, .5);
}
.section-dot-nav {
  position: fixed;
  top: 50%;
  right: clamp(18px, 2.5vw, 34px);
  z-index: 20;
  display: grid;
  gap: 14px;
  transform: translateY(-50%);
}
.section-dot-nav__button {
  position: relative;
  width: 13px;
  height: 13px;
  border: 1px solid rgba(255, 255, 255, .92);
  border-radius: 50%;
  background: rgba(17, 17, 17, .22);
  box-shadow: 0 2px 10px rgba(0, 0, 0, .2);
  cursor: pointer;
}
.section-dot-nav__button:hover,
.section-dot-nav__button.is-active {
  border-color: #e81f43;
  background: #e81f43;
  box-shadow: 0 0 0 5px rgba(232, 31, 67, .14), 0 2px 10px rgba(0, 0, 0, .2);
}
.section-dot-nav__button.is-active::after {
  content: "";
  position: absolute;
  inset: -7px;
  border: 1px solid rgba(232, 31, 67, .42);
  border-radius: 50%;
}
.parallax-area {
  position: relative;
  overflow: hidden;
  height: calc(100vh - var(--site-header-offset, 150px));
  height: calc(100dvh - var(--site-header-offset, 150px));
  min-height: 0;
  background-attachment: fixed;
  background-position: center;
  background-size: cover;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  transition-property: color, background-color, border-color, opacity, transform;
}
html.front-section-snap footer {
  scroll-snap-align: start;
}
html.front-section-snap body > header {
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.parallax-area__inner {
  position: relative;
  z-index: 1;
  width: min(1320px, calc(100% - 80px));
  margin: 0 auto;
}
.parallax-area--about {
  display: flex;
  align-items: center;
  padding: clamp(80px, 9vw, 140px) 0;
  background-color: #faf5f5;
  background-image:
    linear-gradient(rgba(151, 0, 0, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(151, 0, 0, .045) 1px, transparent 1px);
  background-size: 80px 80px;
  color: #111;
}
.parallax-area--about::before {
  content: "About us";
  position: absolute;
  top: 20%;
  right: 10vw;
  z-index: 0;
  color: rgba(232, 31, 67, .075);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(14rem, 15vw, 26rem);
  font-style: italic;
  font-weight: 400;
  line-height: .75;
  pointer-events: none;
  transform: translateY(calc(-50% + var(--about-parallax-offset, 0px)));
}
.parallax-area--about .parallax-area__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(520px, 610px);
  align-items: center;
  gap: clamp(52px, 7vw, 110px);
}
.front-section-label {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 34px;
  color: #e81f43;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: .22em;
}
.front-section-label::before {
  content: "";
  display: block;
  width: 48px;
  height: 1px;
  background: #e81f43;
}
.front-about__title {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(4.2rem, 4.25vw, 6.8rem);
  font-weight: 700;
  line-height: 1.42;
  white-space: nowrap;
}
.front-about__title span {
  color: #e81f43;
}
html[data-current-language="en"] .front-about__title,
html.translated-ltr .front-about__title {
  max-width: 100%;
  font-size: clamp(3.4rem, 3.1vw, 5rem);
  line-height: 1.24;
  white-space: normal;
  overflow-wrap: normal;
  text-wrap: balance;
}
.front-about__text {
  display: grid;
  gap: 34px;
  max-width: 610px;
  margin-top: 20px;
  color: #4b4b4b;
  font-size: 1.7rem;
  line-height: 1.8;
}
.front-about__button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-width: 220px;
  margin-top: 15px;
  padding: 25px 35px;
  border: 1px solid #111;
  background: rgba(255, 255, 255, .86);
  color: #111;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: .12em;
}
.front-about__button:hover {
  background: #111;
  color: #fff;
}
.front-about__stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid rgba(17, 17, 17, .24);
  background: rgba(255, 255, 255, .74);
  backdrop-filter: blur(2px);
}
.front-about__stat {
  position: relative;
  display: grid;
  align-content: start;
  min-height: 222px;
  padding: clamp(28px, 3vw, 42px) 34px;
  border-right: 1px solid rgba(17, 17, 17, .14);
  border-bottom: 1px solid rgba(17, 17, 17, .14);
  color: #111;
}
.front-about__stat:nth-child(2n) {
  border-right: 0;
}
.front-about__stat:nth-last-child(-n + 2) {
  border-bottom: 0;
}
.front-about__stat:hover {
  background: rgba(232, 31, 67, .055);
}
.front-about__stat::after {
  content: "→";
  position: absolute;
  right: 28px;
  bottom: 24px;
  color: #e81f43;
  font-size: 1.8rem;
  line-height: 1;
}
.front-about__stat-number {
  margin-bottom: 10px;
  color: #e81f43;
  font-family: "Cormorant Garamond", serif;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1;
}
.front-about__stat h3 {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2rem, 1.55vw, 2.5rem);
  font-weight: 700;
  line-height: 1.45;
}
.front-about__stat p:not(.front-about__stat-number) {
  margin-top: 12px;
  color: #7a7a7a;
  font-size: 1.3rem;
  line-height: 1.7;
}
.parallax-area--publications {
  display: flex;
  align-items: center;
  padding: clamp(86px, 9vw, 148px) 0;
  background-color: #fbfaf6;
  background-image:
    linear-gradient(rgba(191, 143, 58, .16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(191, 143, 58, .16) 1px, transparent 1px),
    linear-gradient(rgba(191, 143, 58, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(191, 143, 58, .07) 1px, transparent 1px);
  background-attachment: fixed;
  background-size: 160px 160px, 160px 160px, 40px 40px, 40px 40px;
  color: #111;
}
.parallax-area--publications::before {
  content: "Technology";
  position: absolute;
  top: 50%;
  right: 3vw;
  z-index: 0;
  color: rgba(122, 94, 0, 0.075);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(16rem, 18vw, 30rem);
  font-style: italic;
  font-weight: 400;
  line-height: .75;
  pointer-events: none;
  transform: translateY(calc(-50% + var(--publications-parallax-offset, 0px)));
}
.parallax-area--publications::after {
  content: "";
  position: absolute;
  left: 4vw;
  top: 23%;
  z-index: 0;
  width: 130px;
  height: 130px;
  border: 1px solid rgba(191, 143, 58, .18);
  border-radius: 50%;
  box-shadow: 220px -80px 0 -38px rgba(191, 143, 58, .1);
  pointer-events: none;
}
.parallax-area--publications .parallax-area__inner {
  display: grid;
  grid-template-columns: minmax(560px, 680px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(52px, 7vw, 112px);
}
.front-publications__copy {
  position: relative;
  grid-column: 2;
  grid-row: 1;
  text-align: right;
}
.front-publications__copy::before {
  content: "L = 18.000";
  position: absolute;
  top: -82px;
  right: 0;
  color: rgba(191, 143, 58, .16);
  font-family: "Cormorant Garamond", serif;
  font-size: 2.1rem;
  font-weight: 700;
}
.front-publications__title {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(4.2rem, 4.25vw, 6.8rem);
  font-weight: 700;
  line-height: 1.42;
  white-space: nowrap;
}
.front-publications__title span {
  color: #b78930;
  font-style: italic;
}
html[data-current-language="en"] .front-publications__title,
html.translated-ltr .front-publications__title {
  max-width: 100%;
  font-size: clamp(3.2rem, 3vw, 4.8rem);
  line-height: 1.24;
  white-space: normal;
  overflow-wrap: normal;
  text-wrap: balance;
}
.front-publications__text {
  display: grid;
  gap: 30px;
  max-width: 620px;
  margin-top: 30px;
  margin-left: auto;
  color: #4b4b4b;
  font-size: 1.7rem;
  line-height: 2.1;
}
.front-publications__button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-width: 220px;
  margin-top: 48px;
  padding: 17px 29px;
  border: 1px solid #111;
  background: rgba(251, 250, 246, .86);
  color: #111;
  font-size: 1.3rem;
  font-weight: 700;
}
.front-publications__button:hover {
  background: #111;
  color: #fff;
}
.front-publications__cards {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(191, 143, 58, .34);
  background: rgba(251, 250, 246, .72);
  backdrop-filter: blur(1px);
}
.front-publications__card {
  position: relative;
  display: grid;
  align-content: start;
  min-height: 244px;
  padding: clamp(28px, 3vw, 42px) 34px;
  border-right: 1px solid rgba(191, 143, 58, .28);
  border-bottom: 1px solid rgba(191, 143, 58, .34);
  color: #111;
}
.front-publications__card:nth-child(2n) {
  border-right: 0;
}
.front-publications__card:hover {
  background: rgba(183, 137, 48, .07);
}
.front-publications__card::after {
  content: "→";
  position: absolute;
  right: 28px;
  bottom: 24px;
  color: #b78930;
  font-size: 1.8rem;
  line-height: 1;
}
.front-publications__card-number {
  position: absolute;
  right: 26px;
  top: 22px;
  color: rgba(232, 31, 67, .1);
  font-family: "Cormorant Garamond", serif;
  font-size: 6.2rem;
  font-style: italic;
  line-height: 1;
}
.front-publications__card-label {
  width: fit-content;
  min-width: 110px;
  margin-bottom: 18px;
  padding: 7px 14px;
  border: 1px solid rgba(183, 137, 48, .48);
  color: #b78930;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
}
.front-publications__card h3 {
  position: relative;
  z-index: 1;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2rem, 1.55vw, 2.45rem);
  font-weight: 700;
  line-height: 1.45;
}
.front-publications__card p:not(.front-publications__card-number):not(.front-publications__card-label) {
  position: relative;
  z-index: 1;
  margin-top: 12px;
  padding-right: 24px;
  color: #6f6a61;
  font-size: 1.3rem;
  line-height: 1.7;
}
.parallax-area--membership {
  display: flex;
  align-items: center;
  padding: clamp(86px, 9vw, 148px) 0;
  background-color: #fbfaf6;
  background-image:
    linear-gradient(rgba(191, 143, 58, .16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(191, 143, 58, .16) 1px, transparent 1px),
    linear-gradient(rgba(191, 143, 58, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(191, 143, 58, .07) 1px, transparent 1px);
  background-attachment: fixed;
  background-size: 160px 160px, 160px 160px, 40px 40px, 40px 40px;
  color: #111;
}
.parallax-area--membership::before {
  content: "Membership";
  position: absolute;
  top: 50%;
  right: 3vw;
  z-index: 0;
  color: rgba(122, 94, 0, 0.075);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(15rem, 17vw, 28rem);
  font-style: italic;
  font-weight: 400;
  line-height: .75;
  pointer-events: none;
  transform: translateY(calc(-50% + var(--membership-parallax-offset, 0px)));
}
.parallax-area--membership::after {
  content: "";
  position: absolute;
  left: 4vw;
  top: 23%;
  z-index: 0;
  width: 130px;
  height: 130px;
  border: 1px solid rgba(191, 143, 58, .18);
  border-radius: 50%;
  box-shadow: 220px -80px 0 -38px rgba(191, 143, 58, .1);
  pointer-events: none;
}
.parallax-area--membership .parallax-area__inner {
  display: grid;
  grid-template-columns: minmax(560px, 680px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(52px, 7vw, 112px);
}
.front-membership__cards {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid rgba(191, 143, 58, .34);
  background: rgba(251, 250, 246, .72);
  backdrop-filter: blur(1px);
}
.front-membership__card {
  position: relative;
  display: grid;
  align-content: start;
  min-height: 452px;
  padding: clamp(34px, 3.2vw, 50px) clamp(28px, 3vw, 40px);
  border-right: 1px solid rgba(191, 143, 58, .28);
  color: #111;
}
.front-membership__card:nth-child(2n) {
  border-right: 0;
}
.front-membership__card:hover {
  background: rgba(183, 137, 48, .07);
}
.front-membership__card::after {
  content: "→";
  position: absolute;
  right: 28px;
  bottom: 24px;
  color: #b78930;
  font-size: 1.8rem;
  line-height: 1;
}
.front-membership__card-label {
  margin-bottom: 28px;
  color: #e81f43;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: .22em;
}
.front-membership__card h3 {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2.7rem, 2.1vw, 3.4rem);
  font-weight: 700;
  line-height: 1.45;
}
.front-membership__card-text {
  margin-top: 22px;
  color: #4b4b4b;
  font-size: 1.5rem;
  line-height: 2;
}
.front-membership__card-list {
  display: grid;
  gap: 14px;
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid rgba(17, 17, 17, .12);
  color: #4b4b4b;
  font-size: 1.4rem;
  line-height: 1.7;
}
.front-membership__card-list li {
  position: relative;
  padding-left: 18px;
}
.front-membership__card-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .8em;
  width: 7px;
  height: 1px;
  background: #e81f43;
}
.front-membership__copy {
  position: relative;
  grid-column: 2;
  grid-row: 1;
  text-align: right;
}
.front-membership__copy .front-section-label {
  justify-content: flex-end;
}
.front-membership__copy::before {
  content: "L = 18.000";
  position: absolute;
  top: -82px;
  right: 0;
  color: rgba(191, 143, 58, .16);
  font-family: "Cormorant Garamond", serif;
  font-size: 2.1rem;
  font-weight: 700;
}
.front-membership__title {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(4.2rem, 4.25vw, 6.8rem);
  font-weight: 700;
  line-height: 1.42;
  white-space: nowrap;
}
.front-membership__title span {
  color: #b78930;
  font-style: italic;
}
html[data-current-language="en"] .front-membership__title,
html.translated-ltr .front-membership__title {
  max-width: 100%;
  font-size: clamp(3.2rem, 3vw, 4.8rem);
  line-height: 1.24;
  white-space: normal;
  overflow-wrap: normal;
  text-wrap: balance;
}
.front-membership__text {
  display: grid;
  gap: 30px;
  max-width: 620px;
  margin-top: 30px;
  margin-left: auto;
  color: #4b4b4b;
  font-size: 1.7rem;
  line-height: 2.1;
}
.parallax-area--learn {
  display: flex;
  align-items: center;
  padding: clamp(80px, 9vw, 140px) 0;
  background-color: #faf5f5;
  background-image:
    linear-gradient(rgba(151, 0, 0, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(151, 0, 0, .045) 1px, transparent 1px);
  background-size: 80px 80px;
  color: #111;
}
.parallax-area--learn::before {
  content: "Events";
  position: absolute;
  top: 20%;
  right: 3vw;
  z-index: 0;
  color: rgba(232, 31, 67, .075);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(22rem, 25vw, 42rem);
  font-style: italic;
  font-weight: 400;
  line-height: .75;
  pointer-events: none;
  transform: translateY(calc(-50% + var(--learn-parallax-offset, 0px)));
}
.parallax-area--learn .parallax-area__inner {
  display: grid;
  width: min(1440px, calc(100% - 80px));
  grid-template-columns: minmax(620px, 1fr) minmax(520px, 680px);
  align-items: center;
  gap: clamp(36px, 5vw, 76px);
}
.front-learn__copy,
.front-learn__events {
  min-width: 0;
}
.front-learn__title {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(4.6rem, 3.5vw, 6.4rem);
  font-weight: 700;
  line-height: 1.48;
  white-space: normal;
}
.front-learn__title span {
  color: #e81f43;
  font-style: italic;
}
.front-learn__text {
  max-width: 680px;
  margin-top: 32px;
  color: #4b4b4b;
  font-size: 1.7rem;
  line-height: 2.15;
}
.front-learn__events {
  position: relative;
  background: rgba(255, 255, 255, .68);
  backdrop-filter: blur(2px);
  box-shadow: 34px 34px 80px rgba(151, 0, 0, .08);
}
.front-learn__events-header {
  padding: clamp(28px, 3vw, 42px) clamp(28px, 3.4vw, 48px) 24px;
  border-bottom: 1px solid rgba(17, 17, 17, .14);
}
.front-learn__events-header p {
  margin-bottom: 14px;
  color: #e81f43;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: .18em;
}
.front-learn__events-header h3 {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2.1rem, 1.9vw, 2.9rem);
  font-weight: 700;
  line-height: 1.45;
}
.front-learn__event {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(12px, 1.35vw, 20px);
  min-height: 116px;
  padding: 24px clamp(24px, 2.8vw, 42px);
  border-bottom: 1px solid rgba(17, 17, 17, .12);
  color: #111;
}
.front-learn__event:last-child {
  border-bottom: 0;
}
.front-learn__event:hover {
  background: rgba(232, 31, 67, .045);
}
.front-learn__event time {
  color: #4b4b4b;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1;
}
.front-learn__event-category {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid rgba(232, 31, 67, .36);
  color: #e81f43;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
}
.front-learn__event-body {
  grid-column: 1 / -1;
  grid-row: 2;
  display: grid;
  gap: 7px;
  min-width: 0;
}
.front-learn__event-title {
  color: #111;
  font-family: "Noto Serif JP", serif;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}
.front-learn__event-status {
  grid-column: 3;
  grid-row: 1;
  justify-self: start;
  white-space: nowrap;
  padding: 5px 12px;
  background: #e81f43;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.5;
}
.front-learn__event-status.is-closed {
  background: #666;
}
.front-learn__event-place {
  overflow: hidden;
  color: #7a7a7a;
  font-size: 1.2rem;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.front-learn__event-button {
  grid-column: 3;
  grid-row: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  min-height: 34px;
  background: #e81f43;
  color: #fff;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: .22em;
}
.parallax-area--placeholder {
  display: flex;
  align-items: center;
  min-height: 65vh;
  background:
    linear-gradient(rgba(151, 0, 0, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(151, 0, 0, .035) 1px, transparent 1px),
    #fafafa;
  background-attachment: fixed;
  background-size: 80px 80px;
  color: #999;
  font-family: "Noto Serif JP", serif;
  font-size: 3rem;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .hero-stage {
    padding: 34px 22px;
  }
  .hero-content {
    grid-template-columns: 1fr;
    align-content: center;
    gap: 24px;
  }
  .hero-headline {
    margin-bottom: 16px;
    font-size: clamp(3rem, 10vw, 4.2rem);
  }
  .hero-subhead {
    font-size: 1.4rem;
    line-height: 1.8;
  }
  .hero-news {
    padding: 18px;
  }
  .hero-image-title {
    right: 18px;
    bottom: 14px;
    max-width: calc(100% - 36px);
  }
  .section-dot-nav {
    display: none;
  }
  .parallax-area {
    height: auto;
    min-height: auto;
    background-attachment: scroll;
  }
  .parallax-area__inner {
    width: calc(100% - 40px);
  }
  .parallax-area--about {
    padding: 70px 0;
    background-size: 46px 46px;
  }
  .parallax-area--about::before {
    top: 84px;
    right: -52px;
    font-size: 22rem;
  }
  .parallax-area--about .parallax-area__inner {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .front-section-label {
    margin-bottom: 24px;
    font-size: 1.25rem;
  }
  .front-about__title {
    font-size: 3.8rem;
    line-height: 1.45;
    white-space: normal;
  }
  .front-about__text {
    gap: 24px;
    margin-top: 24px;
    font-size: 1.5rem;
    line-height: 1.95;
  }
  .front-about__button {
    width: 100%;
    margin-top: 34px;
  }
  .front-about__stats {
    grid-template-columns: 1fr;
  }
  .front-about__stat {
    min-height: 172px;
    padding: 28px;
    border-right: 0;
  }
  .front-about__stat:nth-last-child(2) {
    border-bottom: 1px solid rgba(17, 17, 17, .14);
  }
  .front-about__stat-number {
    margin-bottom: 14px;
  }
  .front-about__stat p:not(.front-about__stat-number) {
    margin-top: 12px;
  }
  .parallax-area--publications {
    padding: 70px 0;
    background-attachment: scroll;
    background-size: 92px 92px, 92px 92px, 46px 46px, 46px 46px;
  }
  .parallax-area--publications::before {
    top: 72px;
    right: -34px;
    font-size: 18rem;
  }
  .parallax-area--publications::after {
    left: -46px;
    top: 150px;
    width: 90px;
    height: 90px;
  }
  .parallax-area--publications .parallax-area__inner {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .front-publications__copy,
  .front-publications__cards {
    grid-column: auto;
    grid-row: auto;
  }
  .front-publications__copy::before {
    display: none;
  }
  .front-publications__title {
    font-size: 3.8rem;
    line-height: 1.45;
    white-space: normal;
  }
  .front-publications__text {
    gap: 24px;
    margin-top: 24px;
    font-size: 1.5rem;
    line-height: 1.95;
  }
  .front-publications__button {
    width: 100%;
    margin-top: 34px;
  }
  .front-publications__cards {
    grid-template-columns: 1fr;
  }
  .front-publications__card {
    min-height: 188px;
    padding: 28px;
    border-right: 0;
  }
  .front-publications__card-number {
    right: 22px;
    top: 20px;
    font-size: 5.2rem;
  }
  .front-publications__card-label {
    margin-bottom: 14px;
  }
  .parallax-area--membership {
    padding: 70px 0;
    background-attachment: scroll;
    background-size: 92px 92px, 92px 92px, 46px 46px, 46px 46px;
  }
  .parallax-area--membership::before {
    top: 76px;
    right: -96px;
    font-size: 15rem;
  }
  .parallax-area--membership::after {
    left: -46px;
    top: 150px;
    width: 90px;
    height: 90px;
  }
  .parallax-area--membership .parallax-area__inner {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .front-membership__cards,
  .front-membership__copy {
    grid-column: auto;
    grid-row: auto;
  }
  .front-membership__cards {
    grid-template-columns: 1fr;
  }
  .front-membership__card {
    min-height: 0;
    padding: 30px 28px;
    border-right: 0;
    border-bottom: 1px solid rgba(191, 143, 58, .28);
  }
  .front-membership__card:nth-child(2n) {
    border-bottom: 0;
  }
  .front-membership__card-label {
    margin-bottom: 18px;
    font-size: 1.25rem;
  }
  .front-membership__card-text {
    margin-top: 16px;
    font-size: 1.4rem;
    line-height: 1.9;
  }
  .front-membership__card-list {
    gap: 10px;
    margin-top: 28px;
    padding-top: 22px;
    font-size: 1.35rem;
  }
  .front-membership__copy::before {
    display: none;
  }
  .front-membership__title {
    font-size: 3.8rem;
    line-height: 1.45;
    white-space: normal;
  }
  .front-membership__text {
    gap: 24px;
    margin-top: 24px;
    font-size: 1.5rem;
    line-height: 1.95;
  }
  .parallax-area--learn {
    padding: 70px 0;
    background-attachment: scroll;
    background-size: 46px 46px;
  }
  .parallax-area--learn::before {
    top: 86px;
    right: -12px;
    font-size: 18rem;
  }
  .parallax-area--learn .parallax-area__inner {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .front-learn__title {
    font-size: 3.8rem;
    line-height: 1.45;
    white-space: normal;
  }
  .front-learn__text {
    margin-top: 24px;
    font-size: 1.5rem;
    line-height: 1.95;
  }
  .front-learn__events-header {
    padding: 28px 24px 20px;
  }
  .front-learn__event {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px 16px;
    min-height: 0;
    padding: 24px;
  }
  .front-learn__event time {
    grid-column: 1;
  }
  .front-learn__event-category {
    grid-column: 2;
  }
  .front-learn__event-button {
    grid-column: 3;
    grid-row: 1;
  }
  .front-learn__event-title,
  .front-learn__event-place {
    white-space: normal;
  }
}

/* 共通ヘッダー・TOPページ：スマートフォン表示
----------------------------------*/
@media screen and (max-width: 767px) {
  body {
    min-width: 0;
    padding-top: var(--site-header-offset, 132px);
    overflow-x: hidden;
  }

  body > header.flex {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 12px;
    row-gap: 2px;
    min-height: 0;
    padding: 5px 12px;
  }

  body .header-brand {
    grid-column: 1;
    grid-row: 1 / span 2;
    min-width: 0;
  }

  body .header-logo {
    flex: 0 0 auto;
    width: 64px;
    margin: 0 8px 0 0;
  }

  body #header-name {
    min-width: 0;
  }

  body #header-name h1 {
    font-size: clamp(1.35rem, 4vw, 1.8rem);
    line-height: 1.35;
  }

  body #header-name span {
    padding: 2px 4px;
    overflow: hidden;
    font-size: .8rem;
    line-height: 1.3;
    text-align-last: auto;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body .header-actions {
    display: block;
    grid-column: 2;
    grid-row: 2;
  }

  body .language-switcher {
    justify-content: center;
    gap: 6px;
    font-size: 1.1rem;
    line-height: 1.2;
  }

  body .member-login {
    display: none;
  }

  body .front-menu-toggle {
    display: inline-grid;
    grid-column: 2;
    grid-row: 1;
    grid-template-columns: 24px auto;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid #970000;
    border-radius: 3px;
    background: #fff;
    color: #750000;
    cursor: pointer;
    font: inherit;
    font-size: 1.2rem;
    font-weight: 700;
  }

  body .front-menu-toggle__icon {
    display: grid;
    gap: 5px;
    width: 24px;
  }

  body .front-menu-toggle__icon span {
    display: block;
    width: 100%;
    height: 2px;
    background: currentColor;
    transition: transform .25s ease, opacity .25s ease;
  }

  body .front-menu-toggle[aria-expanded="true"] .front-menu-toggle__icon span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  body .front-menu-toggle[aria-expanded="true"] .front-menu-toggle__icon span:nth-child(2) {
    opacity: 0;
  }

  body .front-menu-toggle[aria-expanded="true"] .front-menu-toggle__icon span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  body nav#global-navi {
    position: fixed;
    top: var(--site-header-height, 98px);
    left: 0;
    width: 100vw;
    display: none;
    max-height: calc(100dvh - var(--site-header-height, 98px));
    overflow-y: auto;
    border-bottom: 2px solid #750000;
    box-shadow: 0 12px 24px rgba(0, 0, 0, .16);
    -webkit-overflow-scrolling: touch;
  }

  body nav#global-navi.is-open {
    display: block;
  }

  body nav#global-navi ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  body .menu-sample li {
    width: auto;
    min-width: 0;
    border-bottom: 1px solid #eadede;
  }

  body .menu-sample li:last-child {
    border-bottom: 0;
  }

  body .menu-sample .front-mobile-member-login {
    display: block;
    padding: 12px 20px;
    border-top: 1px solid #750000;
  }

  body .menu-sample li a {
    display: flex;
    align-items: center;
    justify-content: center !important;
    width: 100%;
    height: 50px;
    padding: 0 20px;
    font-size: 1.4rem;
    text-align: center !important;
  }

  body .menu-sample li a > span {
    display: block;
    width: 100%;
    margin: 0 auto;
    text-align: center !important;
  }

  body .menu-sample .front-mobile-member-login a {
    justify-content: center;
    height: 46px;
    border: 1px solid #970000;
    border-radius: 3px;
    background-image: linear-gradient(45deg, #970000 0%, #f08282 100%);
    color: #fff;
    font-weight: 700;
  }

  body.is-front-page .hero-stage {
    min-height: calc(100svh - var(--site-header-offset, 132px));
    height: auto;
    padding: 42px 20px;
  }

  body.is-front-page .hero-content {
    width: 100%;
  }

  body.is-front-page .hero-subhead br,
  body.is-front-page .front-learn__text br,
  body.is-front-page .front-membership__text br {
    display: none;
  }

  body.is-front-page .hero-news__link {
    padding: 11px 0;
  }

  body.is-front-page .parallax-area__inner {
    width: min(calc(100% - 40px), 560px);
    row-gap: 24px;
  }

  body.is-front-page .parallax-area {
    padding-top: 36px;
    padding-bottom: 36px;
  }

  body.is-front-page .front-section-label {
    margin-bottom: 14px;
  }

  body.is-front-page .front-about__text,
  body.is-front-page .front-publications__text,
  body.is-front-page .front-membership__text,
  body.is-front-page .front-learn__text {
    margin-top: 16px;
    gap: 16px;
  }

  body.is-front-page .front-about__stat,
  body.is-front-page .front-publications__card,
  body.is-front-page .front-membership__card {
    min-height: 0;
    padding-top: 18px;
    padding-bottom: 18px;
  }

  body.is-front-page .front-about__stat::after,
  body.is-front-page .front-publications__card::after {
    bottom: 18px;
  }

  body.is-front-page .front-about__stat-number,
  body.is-front-page .front-publications__card-label,
  body.is-front-page .front-membership__card-label {
    margin-bottom: 10px;
  }

  body.is-front-page .front-about__stat p:not(.front-about__stat-number) {
    margin-top: 8px;
    padding-right: 24px;
  }

  body.is-front-page .front-membership__copy {
    grid-column: 1;
    grid-row: 1;
  }

  body.is-front-page .front-membership__cards {
    grid-column: 1;
    grid-row: 2;
    gap: 20px;
    border: 0;
    background: transparent;
    backdrop-filter: none;
  }

  body.is-front-page .front-membership__card {
    border: 1px solid rgba(191, 143, 58, .34);
    background: rgba(251, 250, 246, .72);
    backdrop-filter: blur(1px);
  }

  body.is-front-page .front-membership__card:hover {
    background: rgba(183, 137, 48, .07);
  }

  body.is-front-page .front-membership__card-text {
    margin-top: 10px;
  }

  body.is-front-page .front-membership__card-list {
    gap: 6px;
    margin-top: 16px;
    padding-top: 14px;
  }

  body.is-front-page .front-learn__events-header {
    padding-top: 18px;
    padding-bottom: 14px;
  }

  body.is-front-page .front-learn__events-header p {
    margin-bottom: 8px;
  }

  body.is-front-page .front-learn__event {
    padding-top: 16px;
    padding-bottom: 16px;
    row-gap: 8px;
  }

  body.is-front-page .site-footer {
    padding-top: 24px;
  }

  body.is-front-page .site-footer__intro {
    gap: 20px;
    padding-bottom: 20px;
  }

  body.is-front-page .site-footer__social ul {
    margin-top: 10px;
  }

  body.is-front-page .site-footer__sitemap {
    padding: 20px 0 24px;
  }

  body.is-front-page .site-footer__columns {
    margin-top: 18px;
    row-gap: 20px;
  }

  body.is-front-page .site-footer__group h3 {
    margin-bottom: 8px;
  }

  body.is-front-page .site-footer__group a {
    padding-top: 7px;
    padding-bottom: 7px;
  }

  body.is-front-page .site-footer__bottom {
    padding-top: 12px;
    padding-bottom: 12px;
  }

  body.is-front-page .front-about__title,
  body.is-front-page .front-publications__title,
  body.is-front-page .front-membership__title,
  body.is-front-page .front-learn__title {
    font-size: clamp(3rem, 9.5vw, 3.8rem);
  }

  body.is-front-page .front-about__button,
  body.is-front-page .front-publications__button {
    min-height: 54px;
    margin-top: 20px;
    padding: 15px 20px;
  }

  body.is-front-page .front-about__stat,
  body.is-front-page .front-publications__card,
  body.is-front-page .front-membership__card,
  body.is-front-page .front-learn__event {
    overflow-wrap: anywhere;
  }
}

@media screen and (max-width: 359px) {
  body .front-menu-toggle {
    grid-template-columns: 22px;
    padding: 0 9px;
  }

  body .front-menu-toggle__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }
}

/*------中ページ-お知らせ-----*/
#news-top {
  height: 187px;
  padding: 20px;
  margin-bottom: 20px;
  background-color: #201810;
  background-image: url(img/common/title_008.png);
  background-position: right center;
  background-repeat: no-repeat;
  box-shadow: 0 3px 8px #000000b3;
}
#news-wrapper {
  background-color: #faf5f5;
  background-image: linear-gradient(rgba(151, 0, 0, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(151, 0, 0, .045) 1px, transparent 1px);
  background-size: 80px 80px;
  color: #111;
  padding-bottom: 100px;
}
#news-wrapper::before {
  content: "News";
  position: absolute;
  top: 60%;
  right: 10vw;
  z-index: 0;
  color: rgba(232, 31, 67, .075);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(14rem, 15vw, 20rem);
  font-style: italic;
  font-weight: 400;
  line-height: .75;
  pointer-events: none;
  transform: translateY(calc(-50% + var(--about-parallax-offset, 0px)));
}
.news-list-card {
  display: block;
  position: relative;
  z-index: 1;
  margin-bottom: 18px;
  color: inherit;
  text-decoration: none;
}
.news-list-card ul {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 22px 24px;
  background: #fff;
  border: 1px solid rgba(151, 0, 0, .12);
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(39, 13, 11, .08);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.news-list-card:hover ul {
  border-color: rgba(232, 31, 67, .35);
  box-shadow: 0 10px 24px rgba(39, 13, 11, .14);
  transform: translateY(-2px);
}
.news-list-card li {
  list-style: none;
}
.news-list-card__status.is-closed {
  background: #666;
}
.news-list-card__status {
  position: absolute;
  top: 22px;
  right: -52px;
  width: 200px;
  padding: 9px 0;
  background: #d71920;
  color: #fff;
  font-size: 1.55rem;
  font-weight: 700;
  letter-spacing: .24em !important;
  line-height: 1.2;
  text-align: center;
  box-shadow: 0 4px 10px rgba(39, 13, 11, .28);
  transform: rotate(35deg);
  transform-origin: center;
}
.news-list-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin-bottom: 10px;
  color: #6f5a58;
  font-size: 1.3rem;
  line-height: 1.6;
}
.news-list-card-title {
  color: #270d0b;
  font-size: 2.0rem;
  font-weight: 700;
  line-height: 1.5;
}
.news-list-card-summary {
  margin-top: 10px;
  color: #333;
  font-size: 1.4rem;
  line-height: 1.8;
}

/* お知らせ・イベント一覧のページ送り */
.news-archive .pagination .nav-links,
.news-archive .forum-pagination {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 32px;
}
.news-archive .pagination .page-numbers,
.news-archive .forum-pagination .page-numbers {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid #d8bebe;
  border-radius: 8px;
  background: #fff;
  color: #750000;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  box-shadow: 0 3px 8px rgba(39, 13, 11, .06);
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.news-archive .pagination a.page-numbers:hover,
.news-archive .forum-pagination a.page-numbers:hover,
.news-archive .pagination .page-numbers.current,
.news-archive .forum-pagination .page-numbers.current {
  border-color: #750000;
  background: #750000;
  color: #fff;
}
.news-archive .pagination a.page-numbers:focus-visible,
.news-archive .forum-pagination a.page-numbers:focus-visible {
  outline: 3px solid #750000;
  outline-offset: 3px;
}
.news-archive .pagination .page-numbers.dots,
.news-archive .forum-pagination .page-numbers.dots {
  min-width: 24px;
  padding-right: 0;
  padding-left: 0;
  border-color: transparent;
  background: transparent;
  color: #6f5a58;
  box-shadow: none;
}

article {
  background-color: #fff;
  padding: 20px 20px 50px;
}
section.knews-item {
  margin-bottom: 30px;
}
#news-meta {
  margin: 0 0 10px 20px;
}
.knewstext-right {
  width: 65%;
}
.knewsimg-right {
  width: 33%;
}
.knews-item h3 {
  font-weight: 800;
  font-size: 2.0rem;
  margin-bottom: 10px;
}
article figcaption {
  text-align: center;
}
.knewstext-double,.knewstext-center {
  width: 100%;
  margin-bottom: 10px;
}
.img-double {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.img-double div {
  width: 48%;
}
.knewsimg-center {
  width: 70%;
  margin: 0 auto;
}
.knewsimg-center100 {
  width: 100%;
}

#orderform-text {
  padding: 15px 20px;
  margin-bottom: 35px;
  border-radius: 8px;
  border: 2px solid rgba(151, 0, 0, .12);
  box-shadow: 0 6px 18px rgba(39, 13, 11, .08);
}
#orderform-box dt {
  width: 25%;
  padding: 15px;
  margin-bottom: 2px;
  background-color: #ffd8d8;
  font-weight: 600;
  text-align: center;
  display: grid;
  place-items: center;
}
#orderform-box dd {
  width: 75%;
  padding: 15px 20px;
  margin-bottom: 2px;
  background-color: #ffeaea;
}

.postin-link {
  text-align: center;
}

.postin-link a {
  display: inline-block;
    width: auto;
    max-width: 100%;
    box-sizing: border-box;
    overflow-wrap: anywhere;
    text-align: center;
    text-decoration: none;
    padding: 10px 40px;
    margin: 20px 0;
    outline: none;
    border-radius: 30px;
    border: 1px solid #001a2b;
    background-color: #00243b;
    background-image: linear-gradient(to bottom, #00243b, #005285);
    color: #fff;
    transition: none;
    text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
}

/*------中ページ-イベント紹介-----*/
#invitation-top {
  height: 187px;
  padding: 20px;
  margin-bottom: 20px;
  background-color: #30241D;
  background-image: url(img/common/title_007.png);
  background-position: right center;
  background-repeat: no-repeat;
  box-shadow: 0 3px 8px #000000b3;
}
.knewstext-center100 {
  margin-bottom: 15px;
}






/*--右メニュー--*/
ul#right-menu {
  margin-bottom: 30px;
}
ul#right-menu li#rightcat-title a{
  background: #792e2e;
}
ul#right-menu a {
  display: block;
  background: #ff6363;
  border: solid 1px #e0a3a3;
  border-radius: 5px;
  color: #fff;
  padding: 8px 15px;
  margin-bottom: 5px;
}
#right-menu .cat-item a::before {
  content: " ┗ ";
  color: #ffafaf;
}
ul#right-menu a:hover {
  background: #b43535;
}
.rightmenu-history select {
  width: 100%;
  padding: 10px;
}

/* 業務・財務等関連情報 */
#guide-wrapper.finance-page #container {
  position: relative;
  width: min(1200px, calc(100% - 40px));
  padding: 25px 0 60px;
}
.finance-page .finance-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 30px;
}
.finance-page .finance-nav a {
  padding: 12px 20px;
  border: 1px solid #d8ccbf;
  border-radius: 4px;
  background: #fff;
  color: #761c26;
  font-weight: 700;
}
.finance-page .finance-section {
  margin-bottom: 28px;
  padding: 36px;
  border: 1px solid #e1d7cd;
  border-top: 3px solid #8b2530;
  background: #fff;
  scroll-margin-top: 100px;
}
.finance-page .sec-title { margin-bottom: 24px; }
.finance-page .finance-filter {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin: 24px 0;
  padding: 20px;
  background: #f5f1eb;
}
.finance-page .finance-filter label { font-weight: 700; }
.finance-page .finance-filter select {
  max-width: 100%;
  min-width: 200px;
  padding: 10px 36px 10px 12px;
  border: 1px solid #b9aa99;
  border-radius: 4px;
  background: #fff;
  color: #222;
  font: inherit;
}
.finance-page [hidden] { display: none !important; }
.finance-page .finance-year-panel h3 {
  margin: 24px 0 14px;
  font-size: 2.2rem;
  color: #761c26;
}
.finance-page .finance-documents {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 30px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.finance-page .finance-documents li {
  min-width: 0;
  padding: 0;
  border-bottom: 1px solid #e7e0d8;
  line-height: 1.8;
}
.finance-page .finance-documents a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 60px;
  padding: 16px 8px;
  color: #242536;
  overflow-wrap: anywhere;
}
.finance-page .finance-pdf {
  flex-shrink: 0;
  padding: 1px 7px;
  border: 1px solid #a64a50;
  border-radius: 3px;
  color: #8b2530;
  font-size: 1.1rem;
  line-height: 1.6;
}
.finance-page .finance-documents a:hover,
.finance-page .finance-nav a:hover { background: #f8f2ec; color: #761c26; }
.finance-page a:focus-visible,
.finance-page select:focus-visible { outline: 3px solid #a77730; outline-offset: 3px; }
.finance-page .finance-note { padding: 20px; background: #f1e9df; line-height: 2; }
.finance-page .finance-note a { color: #761c26; text-decoration: underline; }
@media screen and (max-width: 767px) {
  .finance-page .finance-section { padding: 24px 18px; }
  .finance-page .sec-title { font-size: 2.4rem; }
  .finance-page .finance-documents { grid-template-columns: 1fr; }
  .finance-page .finance-nav a { flex: 1 1 40%; padding: 12px; text-align: center; }
  .finance-page .finance-filter { padding: 16px; }
}

/*------中ページ-協会案内-----*/
#guide-top {
  height: 200px;
  padding: 20px;
  margin-bottom: 20px;
  background-color: #270d0b;
  background-image: url(img/common/title_001.png);
  background-position: right center;
  background-repeat: no-repeat;
  box-shadow: 0 3px 8px #000000b3;
}
#guide-wrapper {
  background-color: #faf5f5;
  background-image: linear-gradient(rgba(151, 0, 0, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(151, 0, 0, .045) 1px, transparent 1px);
  background-size: 80px 80px;
  color: #111;
  padding-bottom: 100px;
}
#guide-wrapper::before {
  content: "About us";
  position: absolute;
  top: 60%;
  right: 10vw;
  z-index: 0;
  color: rgba(232, 31, 67, .075);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(14rem, 15vw, 20rem);
  font-style: italic;
  font-weight: 400;
  line-height: .75;
  pointer-events: none;
  transform: translateY(calc(-50% + var(--about-parallax-offset, 0px)));
}

/* JATETの歩み
--------------------------------------------- */
.history-page {
  --history-red: #861b25;
  --history-gold: #b89151;
  --history-ink: #211b1a;
  overflow: hidden;
  position: relative;
}
.history-page::before {
  display: none;
}
.history-page .history-hero {
  height: auto;
  min-height: 330px;
  margin-bottom: 0;
  padding: 30px max(30px, calc((100% - 1180px) / 2));
  background-image: linear-gradient(90deg, rgba(22, 8, 8, .96) 0%, rgba(39, 13, 11, .86) 48%, rgba(39, 13, 11, .18) 100%), url(img/common/title_001.png);
  background-size: auto, cover;
  color: #fff;
  display: flex;
  align-items: center;
}
.history-hero #toptitle {
  width: 100%;
}
.history-hero #breadcrumbs a,
.history-hero #breadcrumbs span {
  color: rgba(255,255,255,.82);
}
.history-hero__eyebrow {
  margin: 55px 0 7px;
  color: #d7bb86;
  font-family: Georgia, serif;
  font-size: 1.3rem;
  letter-spacing: .34em;
}
.history-hero h1 {
  margin: 0 0 16px;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2.7rem, 4vw, 4.8rem);
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.35;
}
.history-hero__lead {
  max-width: 690px;
  margin: 0;
  color: rgba(255,255,255,.82);
  font-size: 1.5rem;
  line-height: 1.9;
}

.history-intro {
  text-align: center;
  padding-top: 15px;
}
.heading-25 {
  position: relative;
  isolation: isolate;
  font-family: "Noto Serif JP", serif;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.22;
  padding-top: 0.75em;
  color: #000000;
}
.heading-25::before {
  content: attr(data-word);
  position: absolute;
  left: 50%;
  bottom: 65%;
  z-index: -1;
  transform: translate(-50%, 50%);
  color: rgba(107, 1, 1, 0.144);
  font-size: 1.8em;
  line-height: 1;
  white-space: nowrap;
  pointer-events: none;
}

.history-list {
  position: relative;
  z-index: 1;
}
.history-era {
  padding: 60px 30px;
}
.history-era:nth-child(even) {
  background: rgba(121, 36, 40, .055);
}
.history-era__inner {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(330px, 2fr);
  gap: clamp(45px, 7vw, 95px);
  align-items: start;
  max-width: 1180px;
  margin: 0 auto;
}
.history-era--reverse .history-era__inner {
  grid-template-columns: minmax(330px, 2fr) minmax(0, 3fr);
}
.history-era--reverse .history-era__content {
  order: 2;
}
.history-era--reverse .history-era__visual {
  order: 1;
}
.history-era__range {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 10px 0 14px;
  color: var(--history-red);
  font-family: Georgia, serif;
  font-size: 2rem;
  letter-spacing: .08em;
}
.history-era__range span {
  padding: 6px 10px;
  background: var(--history-red);
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 1rem;
  letter-spacing: .18em;
}
.history-era__header h2 {
  margin: 0 0 12px;
  color: var(--history-ink);
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2.4rem, 3vw, 3.6rem);
  line-height: 1.45;
}
.history-era__subtitle {
  margin: 0 0 10px;
  color: #786b67;
  font-size: 1.45rem;
  line-height: 1.7;
}
.history-timeline {
  position: relative;
  isolation: isolate;
  padding: 28px 45px 28px 62px;
  border: 1px solid rgba(184, 145, 81, .16);
  background: #fff;
  box-shadow: 0 12px 35px rgba(60, 30, 25, .06);
}
.history-timeline::before {
  content: none;
}
.history-timeline::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 39.25px;
  bottom: 28px;
  left: 27px;
  width: 1px;
  background: linear-gradient(var(--history-gold), rgba(184,145,81,.15));
}
.history-event {
  position: relative;
  z-index: 1;
  /* 汎用 article の左右20px指定を打ち消し、丸と縦ラインを同じ軸に置く */
  padding: 0 0 31px;
}
.history-event:last-child {
  padding: 0;
}
.history-event time::before {
  content: "";
  position: absolute;
  top: 50%;
  /* 年表本文の開始位置から縦ラインまで21px。leftを丸の中心座標として扱う */
  left: -34px;
  width: 11px;
  height: 11px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--history-gold);
  box-shadow: 0 0 0 1px var(--history-gold);
  transform: translate(-50%, -50%);
}
.history-event time {
  display: block;
  position: relative;
  margin-bottom: 8px;
  color: var(--history-red);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
}
.history-event p {
  margin: 0;
  color: #4b4240;
  font-size: 1.4rem;
  line-height: 1.9;
}
.history-era__visual {
  position: relative;
  margin: 34px 0 0;
}
.history-era__visual::before {
  content: "";
  position: absolute;
  inset: 22px -18px -18px 22px;
  border: 1px solid rgba(184,145,81,.7);
  z-index: -1;
}
.history-era__photos {
  display: grid;
  gap: 20px;
}
.history-era__visual img {
  display: block;
  width: 100%;
  height: auto;
  filter: saturate(.72) contrast(1.04);
  box-shadow: 0 20px 45px rgba(45,22,18,.18);
}
.history-era__photo {
  margin: 0;
}
.history-era__photo figcaption {
  margin: 10px 0 0;
  color: #786b67;
  font-size: 1.3rem;
  line-height: 1.7;
  text-align: center;
}
.history-era__visual > figcaption {
  display: table;
  margin: 0 0 16px;
  padding: 7px 12px;
  background: rgba(27,16,14,.82);
  color: #fff;
  font-family: Georgia, serif;
  font-size: 1.2rem;
  letter-spacing: .12em;
}
.history-cta {
  max-width: 980px;
  margin: 85px auto 0;
  padding: 50px 40px;
  background: linear-gradient(135deg, #321412, #731c24);
  color: #fff;
  text-align: center;
  box-shadow: 0 22px 50px rgba(60,17,20,.2);
}
.history-cta__en {
  margin: 0 0 8px;
  color: #d7bb86;
  font-family: Georgia, serif;
  font-size: 1.2rem;
  letter-spacing: .35em;
}
.history-cta h2 {
  margin: 0 0 18px;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2.4rem, 3.2vw, 3.5rem);
}
.history-cta > p:not(.history-cta__en) {
  max-width: 690px;
  margin: 0 auto 28px;
  color: rgba(255,255,255,.8);
  font-size: 1.4rem;
  line-height: 1.9;
}
.history-cta__button {
  display: inline-flex;
  align-items: center;
  gap: 25px;
  padding: 13px 28px;
  border: 1px solid #d7bb86;
  color: #fff;
  font-size: 1.4rem;
  letter-spacing: .08em;
  transition: .25s ease;
}
.history-cta__button:hover {
  background: #d7bb86;
  color: #321412;
}
@media screen and (max-width: 800px) {
  .history-page .history-hero {
    min-height: 285px;
    padding: 22px 20px 30px;
    background-position: 62% center;
  }
  .history-hero__eyebrow {
    margin-top: 38px;
  }
  .history-era {
    padding: 60px 20px;
  }
  .history-era__inner {
    grid-template-columns: 1fr;
    gap: 45px;
  }
  .history-era--reverse .history-era__inner {
    grid-template-columns: 1fr;
  }
  .history-era--reverse .history-era__content,
  .history-era--reverse .history-era__visual {
    order: initial;
  }
  .history-era__visual {
    position: relative;
    top: auto;
    width: calc(100% - 18px);
    max-width: 560px;
    margin: 0 auto;
  }
  .history-cta {
    margin: 60px 20px 0;
    padding: 48px 22px;
  }
}
@media screen and (max-width: 480px) {
  .history-hero h1 {
    font-size: 2.6rem;
  }
  .history-hero__lead {
    font-size: 1.3rem;
  }
  .history-intro {
    padding: 45px 20px 15px;
  }
  .history-era__range {
    flex-wrap: wrap;
    gap: 10px;
    font-size: 1.7rem;
  }
  .history-era__header h2 {
    font-size: 2.4rem;
  }
  .history-event p {
    font-size: 1.35rem;
  }
}


@media screen and (max-width: 767px) {
  .history-page #guide-top {
    margin-bottom: 0;
  }

  .history-page .history-intro {
    padding: 30px;
  }

  .history-intro .heading-25 {
    margin: 0;
    padding-top: 0;
  }

  .history-list > .history-era:first-child {
    padding-top: 0;
  }
}

/* JATETとは
---------------------------------------- */






/* 会長挨拶
---------------------------------------- */
.message-title {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(3.0rem, 3.25vw, 4.5rem);
  font-weight: 700;
  line-height: 1.42;
  white-space: nowrap;
  margin: 0 0 20px 20px;
}
.message-title span {
  color: #e81f43;
}
#message-left {
  width: 70%;
}
#message-right {
  width: 25%;
}
#message-left p {
  margin-bottom: 15px;
}
#message-right figure {
  background-color: #fff;
  border: solid 1px #d2d2d2;
  box-shadow: 0 0px 4px #000000b3;
  padding: 10px;
  margin-bottom: 20px;
}
#message-right ul {
  margin-top: 20px;
}

@media screen and (max-width: 767px) {
  #container:has(#message-left) {
    width: calc(100% - 40px);
    min-width: 0;
  }

  #container:has(#message-left) .flex,
  #container.flex:has(#message-left) {
    flex-direction: column;
    gap: 24px;
  }

  .message-title {
    margin-left: 0;
    font-size: clamp(2.4rem, 7vw, 3rem);
    white-space: normal;
  }

  #message-left,
  #message-right {
    width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  #message-left {
    line-height: 1.6;
  }

  #message-right {
    margin-top: 24px;
  }
}



#technic-top {
  height: 200px;
  padding: 20px;
  margin-bottom: 25px;
  background-color: #251c15;
  background-image: url(img/common/title_003.png);
  background-position: right center;
  background-repeat: no-repeat;
  box-shadow: 0 3px 8px #000000b3;
}
#technic-wrapper {
  background-color: #fbfaf6;
  background-image:
    linear-gradient(rgba(191, 143, 58, .16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(191, 143, 58, .16) 1px, transparent 1px),
    linear-gradient(rgba(191, 143, 58, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(191, 143, 58, .07) 1px, transparent 1px);
  background-attachment: fixed;
  background-size: 160px 160px, 160px 160px, 40px 40px, 40px 40px;
  color: #111;
}
#technic-wrapper::before {
  content: "Technology";
  position: absolute;
  top: 70%;
  right: 3vw;
  z-index: 0;
  color: rgba(122, 94, 0, 0.075);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(14rem, 16vw, 20rem);
  font-style: italic;
  font-weight: 400;
  line-height: .75;
  pointer-events: none;
  transform: translateY(calc(-50% + var(--publications-parallax-offset, 0px)));
}
#technic-wrapper::after {
  content: "";
  position: absolute;
  left: 4vw;
  top: 50%;
  z-index: 0;
  width: 130px;
  height: 130px;
  border: 1px solid rgba(191, 143, 58, .18);
  border-radius: 50%;
  box-shadow: 220px -80px 0 -38px rgba(191, 143, 58, .1);
  pointer-events: none;
}


#toptitle {
  width: 1200px;
  margin: 0 auto;
  color: #fff;
}
#toptitle nav#breadcrumbs,#toptitle nav#breadcrumbs li a {
  color: #fff;
}
#toptitle h2 {
  text-shadow: 0 2px 18px rgba(0, 0, 0, .5);
  margin-bottom: 18px;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  font-weight: 700;
  line-height: 1.22;
  border-left: 5px solid #fe2020;
  padding-left: 0.8em;
}

@media screen and (max-width: 767px) {
  #toptitle {
    width: 100%;
    max-width: calc(100vw - 40px);
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  #toptitle p {
    max-width: 100%;
    white-space: normal;
    font-size: 1.4rem;
    line-height: 1.6;
  }

  body :has(> #toptitle) {
    height: auto;
    min-height: 200px;
    background-size: cover;
  }
}


/*----JATET誌ページ----*/
li.magazine-item {
  width: 24%;
  background-color: #fff;
  box-shadow: 0 0 3px #000000b3;
  margin-bottom: 15px;
}
.magazine-no {
  padding: 8px;
  background-color: #000;
  color: #fff;
  height: 95px;
}
.magazine-text {
  padding: 10px;
}
@media screen and (max-width: 767px) {
  #container.magazine-container {
    width: calc(100% - 40px);
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .magazine-container #standard-top {
    margin: 16px 0;
    font-size: 1.4rem;
    line-height: 1.6;
  }

  .magazine-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 12px;
  }

  .magazine-list .magazine-item {
    display: grid;
    grid-row: span 3;
    grid-template-rows: subgrid;
    row-gap: 0;
    width: 100%;
    min-width: 0;
    margin-bottom: 0;
  }

  .magazine-list .empty-mcard {
    display: none;
  }

  .magazine-list .magazine-no {
    height: auto;
    min-height: 70px;
    padding: 8px;
    font-size: 1.2rem;
    line-height: 1.5;
  }

  .magazine-list .magazine-text {
    padding: 10px 8px;
    font-size: 1.2rem;
    line-height: 1.6;
  }
}



/*-----JATET規格ページ-----*/
#standard-top {
  margin: 15px 40px;
}
.tab {
  display: flex;
  flex-wrap: wrap;
  gap: 0 10px;
  width: 1200px;
  padding-bottom: 80px;
}
.tab h3 {
  margin: 0 0 5px 30px;
}
.tab > label {
  flex: 1 1;
  order: -1;
  opacity: .5;
  min-width: 70px;
  padding: .6em 1em;
  border-radius: 5px 5px 0 0;
  background-color: #310101;
  color: #fff;
  font-size: .9em;
  text-align: center;
  cursor: pointer;
}
.tab > label:hover {
  opacity: .8;
}
.tab input {
  display: none;
}
.tab > div {
  display: none;
  width: 100%;
  padding: 1.5em 1em;
  background-color: #fff;
}
.tab label:has(:checked) {
  opacity: 1;
}
.tab label:has(:checked) + div {
  display: block;
}
ul.standard-list {
}
ul.standard-list li.standard-item {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  border: solid 1px #d2d2d2;
  padding: 15px;
  margin-bottom: 20px;
  box-shadow: 0 0 3px #000000b3;
}
.standard-left {
  width: 20%;
}
.standard-right {
  width: 78%;
}

.standard-left figure {
  border: solid 1px #d2d2d2;
  padding: 10px;
}
ul.standard-title li {
  padding: 5px 20px;
  border: solid 1px #000000;
}
ul.standard-title li.standard-title01 {
  background-color: #000;
  color: #fff;
}
.standard-info {
  padding: 15px 30px;
}
ul.standard-sell {
  width: 60%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 0 auto;
}
.standard-price {
  width: 45%;
  font-size: 1.8rem;
  text-align: center;
  color: #4b0000;
}
li.standard-sellbtn {
  width: 300px;
  margin: 20px auto 10px;
}
li.standard-sellbtn a {
  display: block;
  width: 100%;
  text-align: center;
  text-decoration: none;
  padding: 10px 0;
  outline: none;
  border: 1px solid #4f181b;
  background-color: #792428;
  background-image: linear-gradient(to bottom, #792428, #b04248);
  border-radius: 4px;
  color: #fff;
  transition: none;
  text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
}
.standard-sellbtn2 {
  width: 300px;
  margin: 20px auto 10px;
}
.standard-sellbtn2 a {
  display: block;
  width: 100%;
  text-align: center;
  text-decoration: none;
  padding: 10px 0;
  outline: none;
  border-radius: 30px;
  border: 1px solid #001a2b;
  background-color: #00243b;
  background-image: linear-gradient(to bottom, #00243b, #005285);
  color: #fff;
  transition: none;
  text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
}
.status-sell,.status-open {
  padding: 3px 20px;
  letter-spacing: 1.2em;
  text-align: right;
}
.status-sell {
  background-color: #a10000;
  color: #fff;
}
.status-open {
  background-color: #00466e;
  color: #fff;
}
@media screen and (max-width: 767px) {
  #container.standards-container {
    width: calc(100% - 40px);
    min-width: 0;
    min-height: 0;
    overflow-wrap: anywhere;
  }

  .standards-container #standard-top {
    margin: 16px 0;
    font-size: 1.3rem;
    line-height: 1.6;
  }

  .standards-container .tab {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0 4px;
    width: 100%;
    padding-bottom: 32px;
  }

  .standards-container .tab > label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 44px;
    padding: 8px 2px;
    font-size: 1.3rem;
    letter-spacing: 0;
    line-height: 1.4;
    white-space: nowrap;
  }

  .standards-container .tab > label:has(:checked) {
    background: #970000;
    font-weight: 700;
  }

  .standards-container .tab > div {
    grid-column: 1 / -1;
    min-width: 0;
    padding: 18px 10px;
  }

  .standards-container .tab h3 {
    margin: 0 0 14px;
    font-size: 1.6rem;
    line-height: 1.5;
  }

  .standards-container .standard-list .standard-item {
    flex-direction: column;
    gap: 14px;
    padding: 12px;
    margin-bottom: 16px;
  }

  .standards-container .standard-left {
    width: min(160px, 100%);
    margin: 0 auto;
  }

  .standards-container .standard-right,
  .standards-container .standard-sell,
  .standards-container .standard-price,
  .standards-container .standard-sellbtn,
  .standards-container .standard-sellbtn2 {
    width: 100%;
    min-width: 0;
  }

  .standards-container .standard-title li {
    padding: 8px 10px;
    font-size: 1.4rem;
    line-height: 1.6;
  }

  .standards-container .standard-info {
    padding: 12px 0;
    font-size: 1.4rem;
    line-height: 1.6;
  }

  .standards-container .standard-sell {
    flex-direction: column;
    gap: 6px;
    margin-top: 16px;
  }

  .standards-container .standard-price {
    font-size: 1.4rem;
    text-align: center;
  }

  .standards-container .standard-sellbtn,
  .standards-container .standard-sellbtn2 {
    margin: 12px 0 0;
  }

  .standards-container .standard-sellbtn a,
  .standards-container .standard-sellbtn2 a {
    padding: 12px 8px;
    font-size: 1.3rem;
    line-height: 1.5;
  }

  .standards-container .status-sell,
  .standards-container .status-open {
    padding: 5px 10px;
    font-size: 1.3rem;
    letter-spacing: .15em;
  }
}


/* JATET規格：関連団体の資料（規格一覧の共通スタイルを使用） */
.standard-related {
  padding: 0 16px 80px;
}
.standard-related-section + .standard-related-section {
  margin-top: 40px;
}
.standard-related h2 {
  background: #750000;
  color: #fff;
  letter-spacing: 0.5em;
  font-size: 1.8rem;
  padding: 10px 20px;
  margin-bottom: 15px;
}
.standard-related-section > h3 {
  margin: 0 0 5px 30px;
}
.standard-related-content {
  width: 100%;
  min-width: 0;
}
.standard-related-body > p + p {
  margin-top: 15px;
}
@media screen and (max-width: 767px) {
  .standard-related {
    padding: 0 10px 40px;
  }
  .standard-related-section > h3 {
    margin: 0 0 14px;
    font-size: 1.6rem;
    line-height: 1.5;
  }
  .standard-related-section + .standard-related-section {
    margin-top: 32px;
  }
}

/*----調査研究報告書ページ----*/
#research-box {
  padding-bottom: 100px;
}
#research-box dl {
  background-color: #fff;
  box-shadow: 0 0 3px #000000b3;
  margin-bottom: 20px;
}
#research-box h3 {
  background: #750000;
  color: #fff;
  letter-spacing: 1em;
  padding: 10px 20px;
  margin-bottom: 5px;
}
#research-box dt {
  background-color: #000;
  color: #fff;
  padding: 5px 20px;
}
#research-box dd {
  padding: 10px 20px;
}

@media screen and (max-width: 767px) {
  #container:has(#research-box) {
    width: calc(100% - 40px);
    min-width: 0;
    min-height: 0;
    overflow-wrap: anywhere;
  }

  #research-box {
    max-width: 100%;
    min-width: 0;
    padding-bottom: 32px;
    overflow-wrap: anywhere;
  }

  #container:has(#research-box) #standard-top {
    margin: 16px 0;
    font-size: 1.4rem;
    line-height: 1.6;
  }

  #research-box dl {
    margin-bottom: 16px;
  }

  #research-box h3 {
    padding: 10px 14px;
    font-size: 1.8rem;
    letter-spacing: .12em;
    line-height: 1.5;
  }

  #research-box dt {
    padding: 8px 14px;
    font-size: 1.4rem;
    line-height: 1.6;
  }

  #research-box dd {
    padding: 12px 14px;
    font-size: 1.4rem;
    line-height: 1.6;
  }

  #research-box .flex {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  #research-box .standard-left,
  #research-box .standard-right,
  #research-box .standard-sell,
  #research-box .standard-price,
  #research-box .standard-sellbtn,
  #research-box .standard-sellbtn2 {
    width: 100%;
    min-width: 0;
  }

  #research-box .standard-sellbtn,
  #research-box .standard-sellbtn2 {
    margin: 12px 0 0;
  }

  #research-box a {
    overflow-wrap: anywhere;
  }
}

/*----調査研究報告書ページ----*/
/* 映像部会 詳細ページ */
body[class*="page-template-page-test01"] #guide-wrapper #container {
  --division-navy: #151a2b;
  --division-gold: #b18b46;
  --division-wine: #861b25;
  box-sizing: border-box;
  padding: 45px 0 10px;
}
body[class*="page-template-page-test01"] #container *, body[class*="page-template-page-test01"] #container *::before, body[class*="page-template-page-test01"] #container *::after { box-sizing: border-box; }
#guide-wrapper #container > .division-section,
#guide-wrapper #container > .division-intro {
  position: relative;
  z-index: 1;
  margin: 0 0 50px;
}
#guide-wrapper #container > .division-section:last-child { margin-bottom: 0; }
.division-section-heading {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(21,26,43,.18);
}
.division-number { color: var(--division-gold, #9a6f22); font-family: "Cormorant Garamond", serif; font-size: 5.4rem; font-weight: 600; line-height: .8; }
.division-eyebrow { margin: 0 0 5px; color: var(--division-gold, #9a6f22); font-size: 1.2rem; font-weight: 700; letter-spacing: .25em; text-transform: uppercase; }
.division-section-heading h2 { margin: 0; color: var(--division-navy, #151a2b); font-family: "Noto Serif JP", serif; font-size: 3rem; letter-spacing: .08em; line-height: 1.3; }
.division-intro-body { position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 30px;
  align-items: start;
  padding: 45px 55px;
  border: 1px solid #e1dbd1;
  border-left: 5px solid var(--division-wine, #861b25);
  background: #fff;
  box-shadow: 0 18px 45px -35px rgba(21,26,43,.6);
}
.division-lead { 
  margin: 0;
  color: var(--division-navy, #151a2b);
  font-family: "Noto Serif JP", serif; font-size: 3.2rem;
  font-weight: 700;
  letter-spacing: .05em;
}

.division-lead span { background: linear-gradient(transparent 70%, rgba(177,139,70,.25) 0); }
.division-copy p, .division-summary { margin: 0; color: #343944; font-size: 1.6rem; line-height: 2; }
.division-copy p + p { margin-top: 18px; }
.division-summary { max-width: 850px; margin: -10px 0 30px; }
.division-card-grid { display: grid; gap: 20px; }
.division-card-grid--three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.division-card { position: relative; min-height: 285px; padding: 30px; border: 1px solid #d5cec2; background: #fff; box-shadow: 0 8px 24px rgba(21,26,43,.04); overflow: hidden; }
.division-card::after { position: absolute; right: -5px; bottom: -27px; color: rgba(177,139,70,.08); content: attr(data-index); font: 8rem/1 "Cormorant Garamond", serif; }
.division-card-index { display: block; margin-bottom: 25px; color: var(--division-gold, #9a6f22); font: 700 2.4rem/1 "Cormorant Garamond", serif; }
.division-card h3 { margin: 0 0 15px; color: var(--division-navy, #151a2b); font-family: "Noto Serif JP", serif; font-size: 2rem; line-height: 1.6; }
.division-card p { position: relative; z-index: 1; margin: 0; color: #414651; font-size: 1.45rem; line-height: 1.85; }
.division-research-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.division-research-list article {
  padding: 35px 38px;
  border: 1px solid #30364b;
  border-top: 4px solid #b18b46;
  background: #ffffff;
  color: #3d3d3d;
  box-shadow: 0 12px 30px rgba(21,26,43,.15);
}
.division-tag {
  display: inline-block;
  padding: 6px 11px;
  background: var(--division-wine, #861b25);
  color: #ffffff;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: .08em;
}
dl.sound-topics {
  padding: 15px 0;
  border-bottom: 1px solid #8d909c;
}
dl.sound-topics dd h3 {
  margin: 0 0 5px;
  font-family: "Noto Serif JP", serif;
  color: #640000;
  font-size: 2rem;
  line-height: 1.65;
}
dl.sound-topics dd p {
  margin-bottom: 5px;
}
.division-research-list h3, .division-topic h3 { margin: 20px 0 15px; font-family: "Noto Serif JP", serif; font-size: 2rem; line-height: 1.65; }
.division-research-list h3 small { font-size: 1.45rem; }
.division-research-list p {
  margin: 0;
  color: #0e0e0e;
  font-size: 1.45rem;
  line-height: 1.9; }
.division-topics { display: grid; grid-template-columns: 1fr; gap: 30px; align-items: start; }
.division-topic { padding: 35px 38px; border: 1px solid #d5cec2; background: #fff; box-shadow: 0 8px 24px rgba(21,26,43,.04); }
.division-topic > p { color: #3f444e; font-size: 1.45rem; line-height: 1.85; }


.resource-downlord {
  margin: 25px 0 0;
  border-top: 1px solid #d8d1c5;
}
.resource-flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 15px 0;
  border-bottom: 1px solid #d8d1c5;
}
.resource-flex .resource-years {
  width: 10%;
  padding: 5px 0 0 15px;
  color: #79551b;
  font: 700 3rem/1 "Cormorant Garamond", serif;
  letter-spacing: .1em;
}
.resource-flex dl {
  width: 90%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.resource-flex dt {
  width: 62%;
  padding: 10px 0;
}
.resource-flex dd{
  width: 33%;
  padding: 10px 0;
}
.resource-flex dt {
  margin: 0 0 10px;
  color: var(--division-navy, #151a2b); font-family: "Noto Serif JP", serif; font-size: 1.8rem;
  line-height: 1.65;
  overflow-wrap: normal;
  word-break: normal;
}
.resource-flex dt span {
  display: block;
  font-family: "Kosugi", sans-serif;
  font-size: 1.4rem;
}

.resource-flex dd a {
  display: block;
  align-items: center;
  text-align: center;
  padding: 15px 18px;
  border: 1px solid #861b25;
  background: #861b25;
  color: #fff;
  font-size: 1.35rem;
}
.resource-flex dd a:hover {
  box-shadow: inset #440007 0 0 0 2em;
  color: #fff;
}
.resource-flex dd.resource-youtube a {
  border: 1px solid #d80016;
  background: #d80016;
}
.resource-flex dd.resource-excel a {
  border: 1px solid #146604;
  background: #146604;
}
.resource-flex dd i {
  margin-right: 10px;
  font-size: 1.6rem;
}

.division-resource-label { margin-top: 24px !important; padding-top: 18px; border-top: 1px solid #d8d1c5; letter-spacing: .04em; }
.division-topic--compact { padding: 35px 38px; border-top: 1px solid #d5cec2; }
.division-topic--compact .division-topic-head { display: block; margin-bottom: 0; }
.division-topic--compact .division-topic-head h3 { margin: 15px 0; }
.division-topic--compact .division-topic-head p { margin: 0; color: #3f444e; font-size: 1.45rem; line-height: 1.85; }
.division-document-grid { display: grid; grid-template-columns: 1fr; margin-top: 25px; border-top: 1px solid #d8d1c5; }
.division-document { display: grid; width: 100%; grid-template-columns: 80px minmax(0, 1fr) 235px; gap: 25px; align-items: center; min-height: 145px; padding: 24px 12px; border: 0; border-bottom: 1px solid #d8d1c5; background: transparent; }
.division-document-content { display: contents; }
.division-document-content > div { min-width: 0; }


.division-document h4 small { font-size: 1.35rem; }
.division-document p { margin: 0; color: #454a54; font-size: 1.35rem; line-height: 1.85; }
.division-download { display: grid; width: 235px; grid-template-columns: 1fr auto; gap: 5px 18px; align-items: center; padding: 15px 18px; border: 1px solid #861b25; background: #861b25; color: #fff; font-size: 1.35rem; font-weight: 700; letter-spacing: .04em; line-height: 1.4; transition: background-color .25s ease, color .25s ease, transform .25s ease; }
.division-download > span:first-child { grid-column: 1; color: rgba(255,255,255,.75); font-size: 1rem; font-weight: 500; letter-spacing: .08em; }
.division-download > span:last-child { grid-column: 2; grid-row: 1 / 3; font-size: 2rem; }
.division-download:hover { background: #fff; color: #861b25; transform: translateY(-2px); }
.division-download:hover > span:first-child { color: #861b25; }
.division-download--excel { border-color: #26734d; background: #26734d; }
.division-download--excel:hover { color: #26734d; }
.division-download--excel:hover > span:first-child { color: #26734d; }
.division-member-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid #d2cbc0; }
.division-member {
  display: grid;
  grid-template-columns: 85px 150px 1fr;
  align-items: center;
  min-height: 68px;
  padding: 12px 20px;
  border-bottom: 1px solid #b3afaa;
  background: #ffffff;
}
.division-member:nth-child(odd) {
  border-right: 1px solid #b3afaa;
}
.division-member span { color: #79551b; font-size: 1.3rem; font-weight: 700; }
.division-member strong { color: var(--division-navy, #151a2b); font-family: "Noto Serif JP", serif; font-size: 1.6rem; }
.division-member small { color: #454a54; font-size: 1.25rem; }
.division-member--officer {
  background: #dacfbc;
}
@media screen and (max-width: 767px) {
  body #guide-wrapper #container:has(.division-section, .division-intro) {
    width: calc(100% - 40px);
    min-width: 0;
    min-height: 0;
    padding: 20px 0 0;
    overflow-wrap: anywhere;
  }

  #guide-wrapper:has(.division-section, .division-intro) {
    padding-bottom: 36px;
  }

  #guide-wrapper #container > .division-section,
  #guide-wrapper #container > .division-intro {
    margin-bottom: 32px;
  }

  .division-section-heading {
    gap: 14px;
    margin-bottom: 18px;
    padding-bottom: 14px;
  }

  .division-section-heading > div,
  .division-intro-body > *,
  .division-document > *,
  .division-member > * {
    min-width: 0;
  }

  .division-number {
    flex-shrink: 0;
    font-size: 3.8rem;
  }

  .division-eyebrow {
    font-size: 1.1rem;
    letter-spacing: .12em;
  }

  .division-section-heading h2 {
    font-size: clamp(2rem, 6vw, 2.4rem);
    letter-spacing: .04em;
    line-height: 1.4;
  }

  .division-intro-body,
  .division-card-grid,
  .division-research-list,
  .division-member-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .division-intro-body {
    padding: 20px 18px;
    gap: 16px;
  }

  .division-lead {
    font-size: 2.2rem;
    line-height: 1.5;
  }

  .division-copy p,
  .division-summary {
    font-size: 1.5rem;
    line-height: 1.6;
  }

  .division-copy p + p {
    margin-top: 12px;
  }

  .division-summary {
    margin: 0 0 18px;
  }

  .division-card-grid,
  .division-research-list,
  .division-topics {
    gap: 16px;
  }

  .division-card,
  .division-research-list article,
  .division-topic {
    min-width: 0;
    min-height: 0;
    padding: 20px 18px;
  }

  .division-card-index {
    margin-bottom: 12px;
  }

  .division-card h3,
  .division-research-list h3,
  .division-topic h3 {
    font-size: 1.8rem;
    line-height: 1.5;
  }

  .division-card p,
  .division-research-list p,
  .division-topic > p,
  .division-topic--compact .division-topic-head p,
  .division-document p {
    line-height: 1.6;
  }

  .division-tag {
    max-width: 100%;
    font-size: 1.2rem;
  }

  .division-document {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    min-height: 0;
    padding: 18px 0;
  }

  .division-download {
    width: 100%;
    min-width: 0;
  }

  .resource-flex,
  .resource-flex dl {
    flex-direction: column;
  }

  .resource-flex .resource-years,
  .resource-flex dl,
  .resource-flex dt,
  .resource-flex dd {
    width: 100%;
    min-width: 0;
  }

  .resource-flex .resource-years {
    padding: 0 0 8px;
    font-size: 2.4rem;
  }

  .resource-flex dt {
    margin-bottom: 0;
    font-size: 1.6rem;
    overflow-wrap: anywhere;
  }

  .resource-flex dd {
    padding: 6px 0;
  }

  .division-member {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 6px 12px;
    min-height: 0;
    padding: 14px;
  }

  .division-member:nth-child(odd) {
    border-right: 0;
  }

  .division-member small {
    grid-column: 1 / -1;
    line-height: 1.6;
  }
}

/* ---------- shared eyebrow / section title ---------- */
section.project-box {
  margin-bottom: 70px;
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.7em;
  font-family:'Noto Sans JP', sans-serif;
  font-weight:500;
  font-size: 1.4rem;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:#8c6c33;
}
.eyebrow::before{
  content:"";
  width:34px;
  height:1px;
  background:#b18b46;
  display:inline-block;
}
.sec-title{
  font-family:'Shippori Mincho B1', serif;
  font-weight:700;
  font-size: 3.2rem;
  line-height:1.4;
  letter-spacing:.04em;
  color:#14182b;
  margin:.5rem 0 0;
}
.sec-title .en{
  display:block;
  font-family:'Noto Sans JP', sans-serif;
  font-weight:400;
  font-size: 1.4rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:#6c6f7b;
  margin-top:.9rem;
}

/* ---------- committee / divisions ---------- */
.com-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
  margin-bottom: 25px;
  padding-bottom:18px;
  border-bottom:1px solid rgba(20,24,43,.22);
}
.com-head .note {
  font-size: 1.6rem;
  color:#6c6f7b;
  max-width:37em;
  line-height:1.5;
}
.com-block + .com-block {
  margin-top:clamp(48px,6vw,80px);
}

.dept-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(14px,1.6vw,20px);
}
.dept-grid.cols-2 {
  grid-template-columns:repeat(2,1fr);
}
.dept {
  position:relative;
  display:flex;
  flex-direction:column;
  background:#fffdf8;
  border:1px solid rgba(20,24,43,.12);
  padding:clamp(24px,2.4vw,32px);
  overflow:hidden;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.dept::before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:3px;
  height:0;
  background:#b18b46;
  transition:height .4s ease;
}
.dept:hover {
  transform:translateY(-6px);
  box-shadow:0 24px 50px -30px rgba(20,24,43,.5);
  border-color:#caa869;
}
.dept:hover::before {
  height:100%;
}
.dept .top {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}
.dept .idx {
  font-family:'Shippori Mincho B1', serif;
  font-weight:700;
  font-size: 3.0rem;
  color:#b18b46;
  letter-spacing:.04em;line-height:1;
}
.dept .field {
  font-size:.1.4rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#6c6f7b;
  font-weight:500;
}
.dept h4 {
  font-family:'Shippori Mincho B1', serif;
  font-weight:700;
  font-size: 2.8rem;
  letter-spacing:.04em;
  color:#14182b;
  margin:18px 0 .3rem;
  line-height:1.5;
}
.dept .en-name {
  font-size:1.4rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#8c6c33;
  font-weight:500;
  margin-bottom:1rem;
}
.dept p {
  margin:0;
  font-size:1.4rem;
  line-height:1.7;
  color:#6c6f7b;
}
.dept .go {
  margin-top:auto;
  padding-top:18px;
  font-size:1.6rem;
  font-weight:900;
  letter-spacing:.08em;
  color:var(--ink);
  display:inline-flex;
  align-items:center;
  gap:.5em;
}
.dept .go span {
  color:#8c6c33;
  transition:transform .3s ease;
}
.dept:hover .go span {
  transform:translateX(5px);
}


@media screen and (max-width: 767px) {
  #container:has(> .project-box) {
    width: calc(100% - 40px);
    min-width: 0;
    min-height: 0;
    overflow-wrap: anywhere;
  }

  .project-box {
    min-width: 0;
  }

  section.project-box {
    margin-bottom: 32px;
  }

  section.project-box:last-child {
    margin-bottom: 0;
  }

  #guide-wrapper:has(.project-box) {
    padding-bottom: 36px;
  }

  .project-box .eyebrow {
    font-size: 1.1rem;
    letter-spacing: .12em;
  }

  .project-box .eyebrow::before {
    flex-shrink: 0;
    width: 24px;
  }

  .project-box .sec-title {
    font-size: 2.6rem;
  }

  .project-box .sec-title .en {
    margin-top: 6px;
    font-size: 1.2rem;
    letter-spacing: .1em;
  }

  .project-box .com-head {
    margin: 14px 0 18px;
    padding-bottom: 14px;
  }

  .project-box .com-head .note {
    font-size: 1.4rem;
    line-height: 1.6;
  }

  .project-box .dept-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .project-box .dept {
    min-width: 0;
    padding: 20px;
  }

  .project-box .dept .top {
    flex-wrap: wrap;
    gap: 8px 12px;
  }

  .project-box .dept .idx {
    font-size: 2.4rem;
  }

  .project-box .dept .field {
    font-size: 1.2rem;
    letter-spacing: .1em;
  }

  .project-box .dept h4 {
    margin-top: 12px;
    font-size: 2.4rem;
  }

  .project-box .dept .en-name {
    font-size: 1.2rem;
    letter-spacing: .06em;
  }

  .project-box .dept p {
    line-height: 1.6;
  }

  .project-box .dept .go {
    padding-top: 14px;
    font-size: 1.4rem;
  }
}


/*----JATETジャーナル用ページ----*/
ul.journal-card {
  width: 31%;
  box-shadow: 0 0 3px #000000b3;
  background: #fff;
  margin-bottom: 15px;
}
.empty-journalcard {
  width: 31%;
  margin: 0;
  height: 0;
}
li.jcard-title {
  padding: 5px 10px;
  text-align: center;
  background: #000;
  color: #fff;
}
li.jcard-img {
  padding: 10px;
  aspect-ratio: 500 / 707;
  background: url('https://jatet.or.jp/wp-content/themes/jatet/img/common/journal-back.png') center / contain no-repeat;
  background-origin: content-box;
}
li.jcard-img.is-landscape {
  padding-top: 170px;
  background-origin: border-box;
  background-size: calc(100% - 20px) auto;
}
li.jcard-img figure {
  border: 1px solid #969696;
}
li.jcard-link {
  padding-bottom: 20px;
}
.jcard-open {
  width: 300px;
  margin: 20px auto 10px;
}
.jcard-open a {
  display: block;
  width: 100%;
  text-align: center;
  text-decoration: none;
  padding: 10px 0;
  outline: none;
  border-radius: 30px;
  border: 1px solid #4f181b;
  background-color: #792428;
  background-image: linear-gradient(to bottom, #792428, #b04248);
  color: #fff;
  transition: none;
  text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
}
#jfeature-contents figure {
  max-width: 30%;
  margin: 0 auto 40px;
  padding: 10px;
  border: 1px solid #969696;
  background: #fff;
  box-shadow: 0 0 3px #000000b3;
}
#jfeature-right {
  width: 68%;
}
#jfeature-right div {
  margin-left: 40px;
  font-size: 2.0rem;
  font-weight: 600;
}
.jfeature-archive__articles {
  border-top: 1px solid rgba(20, 24, 43, .18);
}
.jfeature-archive__articles li {
  border-bottom: 1px solid rgba(20, 24, 43, .18);
}
.jfeature-archive__articles a {
  display: block;
  position: relative;
  padding: 8px 48px 8px 20px;
  background: #fff;
  color: #333;
  font-size: 1.8rem;
}
.jfeature-archive__articles a::after {
  content: "\203a";
  position: absolute;
  top: 50%;
  right: 20px;
  color: #8c6c33;
  font-size: 2.4rem;
  transform: translateY(-50%);
}
.jfeature-archive__articles a:hover {
  background: #f7f2e9;
  color: #7a0000;
}
.jfeature-archive__article-title,
.jfeature-archive__article-writing {
  display: block;
}
.jfeature-archive__article-writing {
  margin: 6px 0 0 40px;
  font-size: 1.4rem;
}
.jfeature-archive__empty {
  padding: 24px;
  background: #fff;
}
.journal-features {
  margin: 40px 0 80px;
}
.journal-features__title {
  margin-bottom: 24px;
  padding: .45em .8em;
  border-left: 5px solid #7a0000;
  border-bottom: 1px solid rgba(122, 0, 0, .25);
  font-family: "Noto Serif JP", serif;
  font-size: 2.8rem;
  color: #333;
}
.journal-features__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.journal-features__item {
  min-width: 0;
}
.journal-features__link {
  display: block;
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(20, 24, 43, .12);
  background: #fff;
  box-shadow: 0 8px 24px -20px rgba(20, 24, 43, .55);
}
.journal-features__link:hover {
  border-color: #b18b46;
  box-shadow: 0 18px 34px -24px rgba(20, 24, 43, .6);
  transform: translateY(-3px);
}
.journal-features__image {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #eeeae2;
}
.journal-features__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.journal-features__name {
  display: block;
  padding: 16px 18px;
  font-family: "Noto Serif JP", serif;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  color: #333;
}
.journal-features__description {
  padding: 0 18px 18px;
  color: #666;
  font-size: 1.4rem;
  line-height: 1.8;
}
.journal-features__description > :last-child {
  margin-bottom: 0;
}
.journal-features__item > .journal-features__name {
  border: 1px solid rgba(20, 24, 43, .12);
  background: #fff;
}
.journal-features__empty {
  padding: 24px;
  background: #fff;
}
div#journal-writing {
  font-size: 2.2rem;
  padding: 5px 0 0 30px;
}
h3.journal-heading {
  position: relative;
  padding: .3em 0 .2em 2em;
  border-bottom: 3px solid #7a0000;
  font-family: "Noto Serif JP", serif;
  font-size: 2.2rem;
  font-weight: 900;
  color: #333333;
  margin-bottom: 15px;
}
h3.journal-heading::before {
  position: absolute;
  top: 0;
  left: 1.0em;
  transform: rotate(55deg);
  height: 11px;
  width: 12px;
  background: #7a0000;
  content: '';
}
h3.journal-heading::after {
  position: absolute;
  transform: rotate(15deg);
  top: .6em;
  left: 0.7em;
  height: 8px;
  width: 8px;
  background: #7a0000;
  content: '';
}



@media screen and (max-width: 480px) {
  .journal-features {
    margin: 30px 0 50px;
  }
  .journal-features__title {
    font-size: 2.2rem;
  }
  .journal-features__list {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}



@media screen and (max-width: 767px) {
  #container:has(.journal-features .journal-card) {
    width: calc(100% - 40px);
    min-width: 0;
  }

  .journal-features > .flex {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 12px;
  }

  .journal-features ul.journal-card {
    width: 100%;
    min-width: 0;
    margin-bottom: 0;
  }

  .journal-features .empty-journalcard {
    display: none;
  }

  .journal-features .jcard-title {
    min-height: 66px;
    padding: 6px;
    font-size: 1.2rem;
    line-height: 1.5;
  }

  .journal-features .jcard-img {
    padding: 8px;
  }

  .journal-features .jcard-img.is-landscape {
    padding-top: 45%;
    background-size: calc(100% - 16px) auto;
  }

  .journal-features .jcard-link {
    padding: 0 8px 12px;
  }

  .journal-features .standard-sellbtn2,
  .journal-features .jcard-open {
    width: 100%;
    margin: 10px 0 0;
  }

  .journal-features .jcard-link a {
    padding: 8px 6px;
    font-size: 1.1rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
  }

  .journal-features__empty {
    grid-column: 1 / -1;
  }
}

/*----JATET事務局案内用ページ----*/
/* ---------- office: info + map ---------- */
.office {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:clamp(32px,5vw,72px);
  align-items:start;
}
.office-info .name {
  font-family:'Shippori Mincho B1', serif;
  font-weight:700;
  font-size: 3.2rem;
  letter-spacing:.05em;
  color: #14182b;
  line-height:1.5;
  margin:0 0 .4rem;
}
.office-info .name small {
  display: block;
  font-size: 0.6em;
  color:#8c6c33;
  letter-spacing:.16em;
  font-weight:600;
  margin: 50px 15px;
  margin-bottom:.5rem;
}
.office-info .en {
  font-size: 1.2rem;
  letter-spacing:.12em;
  color: #6c6f7b;
  margin:0 0 clamp(26px,3vw,36px);
  line-height:1.7;
}
.info-list {
  border-top:1px solid rgba(20,24,43,.22);
  margin:0;
}
.info-list .row {
  display:grid;
  grid-template-columns:clamp(96px,12vw,128px) 1fr;
  border-bottom:1px solid rgba(20,24,43,.12);
  padding:clamp(15px,1.8vw,20px) 2px;
  gap:clamp(14px,2vw,28px);
}
.info-list dt {
  font-family:'Shippori Mincho B1', serif;
  font-weight:700;
  color:#14182b;
  font-size:1.6rem;
  letter-spacing:.06em;
  margin:0;
  display:flex;
  align-items:center;
  gap:.6em;
}
.info-list dt .dotmark {
  width:6px;
  height:6px;
  background:#b18b46;
  border-radius:50%;
  flex-shrink:0;
}
.info-list dd {
  margin:0;
  font-size:1.8rem;
  color:#22242e;
  line-height:1.9;
}
.info-list dd .small {
  display:block;
  color:#6c6f7b;
  font-size:1.6rem;
  margin-top:.2rem;
}
.info-list dd a {
  color:#8c6c33;
  border-bottom:1px solid rgba(20,24,43,.22);
}
.info-list dd a:hover {
  color:#b18b46;
}
.info-list dd ul.standard-pdf a {
  color:#fff;
}

.map-wrap {
  position:relative;
}
.map-wrap .frame-tag {
  position:absolute;
  top:-14px;
  right: 0;
  z-index:3;
  background: #14182b;
  color: #caa869;
  font-size:1.6rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  padding:5px 14px;
  font-weight:500;
}
/* ---------- transit cards ---------- */
.transit {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(14px,1.6vw,22px);
}
.transit .t-card {
  background:#fffdf8;
  border:1px solid rgba(20,24,43,.12);
  padding:clamp(24px,2.4vw,32px);
  position:relative;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.transit .t-card:hover {
  transform:translateY(-6px);
  box-shadow:0 22px 48px -28px rgba(20,24,43,.45);
  border-color:#caa869;
}
.t-card .line {
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-size:1.4rem;
  etter-spacing:.1em;
  font-weight:700;
  color:#fff;
  background:#b18b46;
  padding:5px 11px;
  border-radius:2px;
}
.t-card .line.jr {
  background:#14182b;
}
.t-card .line.metro {
  background:#8c6c33;
}
.t-card h3 {
  font-family:var(--serif);
  font-weight:700;
  font-size:1.8rem;
  letter-spacing:.03em;
  color:var(--ink);
  margin:16px 0 .3rem;
  line-height:1.5;
}
.t-card .walk {
  font-size: 1.4rem;
  color:var(--brass-deep);
  font-weight:500;
  letter-spacing:.04em;
  margin:0 0 .8rem;
}
.t-card p {
  margin:0;
  font-size:1.4rem;
  line-height:1.95;
  color:var(--muted);
}
/* ---------- hours strip ---------- */
.hours-strip {
  display:flex;
  flex-wrap:wrap;
  gap:clamp(20px,3vw,48px);
  background:#fffdf8;
  border:1px solid #caa869;
  padding: 30px 50px;
}
.hours-strip .item {
  display:flex;
  flex-direction:column;
  gap:.3rem;
  min-width:160px;
}
.hours-strip .item .k {
  font-size:1.6rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#8c6c33;
  font-weight:600;
}
.hours-strip .item .v {
  font-family:'Shippori Mincho B1', serif;
  font-weight:700;
  font-size: 2.0rem;
  color:#14182b;
  letter-spacing:.03em;
}
.hours-strip .item .note {
  font-size:1.6rem;
  color:#6c6f7b;
}

@media screen and (max-width: 767px) {
  #container:has(.office) {
    width: calc(100% - 40px);
    min-width: 0;
    min-height: 0;
    overflow-wrap: anywhere;
  }

  .office {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }

  .office > * {
    min-width: 0;
    max-width: 100%;
  }

  .office-info .name {
    font-size: clamp(2rem, 6vw, 2.6rem);
    line-height: 1.5;
  }

  .office-info .name small {
    margin: 16px 0 6px;
    font-size: 1.4rem;
  }

  .office-info .en {
    margin-bottom: 20px;
    letter-spacing: .05em;
    overflow-wrap: anywhere;
  }

  .office .info-list .row {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    padding: 12px 0;
  }

  .office .info-list dt,
  .office .info-list dd {
    min-width: 0;
    font-size: 1.5rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
  }

  .office .info-list dd .small {
    font-size: 1.3rem;
  }

  .office .map-wrap iframe {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 300px;
  }

  .office .map-wrap .frame-tag {
    font-size: 1.2rem;
    padding: 4px 10px;
  }

  #container:has(.office) .transit {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  #container:has(.office) .transit .t-card {
    min-width: 0;
    padding: 18px;
  }

  #container:has(.office) .t-card h3 {
    margin-top: 12px;
  }

  #container:has(.office) .t-card p {
    line-height: 1.6;
  }

  #container:has(.office) .hours-strip {
    flex-direction: column;
    gap: 16px;
    padding: 18px;
  }

  #container:has(.office) .hours-strip .item {
    min-width: 0;
  }

  #container:has(.office) .hours-strip .item .k,
  #container:has(.office) .hours-strip .item .note {
    font-size: 1.4rem;
  }

  #container:has(.office) .hours-strip .item .v {
    font-size: 1.8rem;
  }
}

/*----JATETの歩みページ----*/


/*----フォーム用ページ----*/
#form-top {
  height: 187px;
  padding: 20px;
  margin-bottom: 30px;
  background-color: #2F231C;
  background-image: url(img/common/title_006.png);
  background-position: right center;
  background-repeat: no-repeat;
  box-shadow: 0 3px 8px #000000b3;
}
#form-wrapper {
  background-color: #fbfaf6;
  background-image:
    linear-gradient(rgba(191, 143, 58, .16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(191, 143, 58, .16) 1px, transparent 1px),
    linear-gradient(rgba(191, 143, 58, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(191, 143, 58, .07) 1px, transparent 1px);
  background-attachment: fixed;
  background-size: 160px 160px, 160px 160px, 40px 40px, 40px 40px;
  color: #111;
  padding-bottom: 80px;
}
#form-wrapper::before {
  content: "Form";
  position: absolute;
  top: 70%;
  right: 3vw;
  z-index: 0;
  color: rgba(122, 94, 0, 0.075);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(14rem, 16vw, 20rem);
  font-style: italic;
  font-weight: 400;
  line-height: .75;
  pointer-events: none;
  transform: translateY(calc(-50% + var(--publications-parallax-offset, 0px)));
}
#form-wrapper::after {
  content: "";
  position: absolute;
  left: 4vw;
  top: 50%;
  z-index: 0;
  width: 130px;
  height: 130px;
  border: 1px solid rgba(191, 143, 58, .18);
  border-radius: 50%;
  box-shadow: 220px -80px 0 -38px rgba(191, 143, 58, .1);
  pointer-events: none;
}





/* =====JATETとは（about.html)===== */
   #guide-wrapper > #about-container {
    width: 100%;
    min-height: 0;
    margin: 0;
    background: #f8f5ee;
    color: #151a2b;
    font-family: "Noto Sans JP", sans-serif;
  }
  
  #about-container *,
  #about-container *::before,
  #about-container *::after {
    box-sizing: border-box;
  }
  
  #about-containerr > p:empty {
    display: none;
  }
  
  #about-container .block {
    position: relative;
    margin: 0;
    padding: 50px 0;
    background: #f8f5ee;
  }
  
  #about-container .block.alt {
    background: #eee8dc;
  }
  
  #about-container .wrap {
    width: 1200px;
    margin: 0 auto;
  }
  
  #about-container .sec-head {
    margin: 0 0 40px;
  }
  
  #about-container .eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 13px;
    color: #a9823e;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: .34em;
    line-height: 1;
    text-transform: uppercase;
  }
  
  #about-container .eyebrow::before {
    width: 36px;
    height: 1px;
    flex: 0 0 36px;
    background: #b88c3d;
    content: "";
  }
  
  #about-container .sec-title {
    margin: 0;
    color: #12182c;
    font-family: "Noto Serif JP", serif;
    font-size: clamp(2.8rem, 3vw, 4.2rem);
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.45;
  }
  
  #about-container .sec-title .en {
    display: block;
    margin-top: 12px;
    color: #7d8088;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.6rem;
    font-weight: 400;
    letter-spacing: .34em;
    line-height: 1.4;
    text-transform: uppercase;
  }
  
  #about-container .mission-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(360px, .94fr);
    gap: clamp(52px, 7vw, 95px);
    align-items: start;
  }
  
  #about-container .mission-statement {
    margin: 0 0 38px;
    color: #171c2d;
    font-family: "Noto Serif JP", serif;
    font-size: clamp(2.2rem, 2.15vw, 3rem);
    font-weight: 600;
    letter-spacing: .055em;
    line-height: 1.5;
  }
  
  #about-container .mission-statement .hl {
    background: linear-gradient(transparent 72%, rgba(184, 140, 61, .28) 0);
  }
  
  #about-container .mission-body,
  #about-container.pull {
    margin: 0;
    color: #555b65;
    font-size: 1.8rem;
    letter-spacing: .045em;
    line-height: 1.5;
  }
  
  #about-container .mission-visual {
    position: relative;
    padding-top: 14px;
  }
  
  #about-container .frame-tag {
    position: absolute;
    z-index: 2;
    top: 0;
    left: -16px;
    display: inline-flex;
    align-items: center;
    min-height: 35px;
    padding: 7px 15px;
    background: #151a2b;
    color: #c59b50;
    font-size: .95rem;
    font-weight: 500;
    letter-spacing: .18em;
    line-height: 1.4;
    text-transform: uppercase;
  }
  
  #about-container image-slot {
    position: relative;
    display: grid;
    width: 100%;
    min-height: 455px;
    place-content: center;
    border: 1px dashed #c7c2b8;
    background: #f0ede6;
    color: #777a7f;
    text-align: center;
  }
  
  #about-container image-slot::before {
    display: block;
    margin-bottom: 9px;
    color: #9c9b97;
    content: "▧";
    font-size: 2.4rem;
    line-height: 1;
  }
  
  #about-container image-slot::after {
    content: attr(placeholder);
    font-size: 1.1rem;
    letter-spacing: .03em;
  }
  
  #about-container .mission-visual .cap {
    display: block;
    margin-top: 13px;
    color: #777b83;
    font-size: 1rem;
    letter-spacing: .05em;
  }
  #about-container .pull {
    max-width: 56em;
    margin: 0 0 30px!important;
    padding: 0 !important;
    border: 0 !important;
    color: #242938;
    font-family: "Noto Serif JP", serif;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.9;
  }
  #about-container .cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
  }
  
  #about-container .cards.cards-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
  }
  
  #about-container .card {
    position: relative;
    min-height: 330px;
    padding: 30px;
    border: 1px solid #e4dfd5;
    background: rgba(255, 255, 255, .72);
    transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
  }
  
  #about-container .card:hover {
    border-color: #c6a35f;
    box-shadow: 0 22px 48px -28px rgba(20, 24, 43, .45);
    transform: translateY(-6px);
  }
  
  #about-container .cards.cards-3 .card {
    min-height: 305px;
  }
  #about-container .card .num {
    display: block;
    margin-bottom: 33px;
    color: #b18841;
    font-family: "Cormorant Garamond", serif;
    font-size: 3.0rem;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1;
  }
  
  #about-container .card h3 {
    margin: 0 0 20px;
    color: #171c2e;
    font-family: "Noto Serif JP", serif;
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: .035em;
    line-height: 1.65;
  }
  #about-container .card p {
    margin: 0;
    color: #61656d;
    font-size: 1.6rem;
    letter-spacing: .025em;
    line-height: 1.5;
  }
  
  #about-container .overview {
    margin: 0 0 38px;
    border-top: 1px solid #cfc8ba;
  }
  
  #about-container .ov-row {
    display: grid;
    grid-template-columns: 255px minmax(0, 1fr);
    margin: 0;
    border-bottom: 1px solid #d5cec1;
  }
  
  #about-container .ov-row dt,
  #about-container .ov-row dd {
    margin: 0;
    padding: 25px 14px;
    font-size: 1.8rem;
    line-height: 1.75;
  }
  
  #about-container .ov-row dt {
    color: #202534;
    font-family: "Noto Serif JP", serif;
    font-weight: 700;
  }
  
  #about-container .ov-row dd {
    color: #4f545e;
  }
  
  #about-container .ov-row .small {
    display: inline-block;
    margin-left: 6px;
    color: #777b83;
    font-size: 1.05rem;
  }
  
  #about-container .members {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
  }
  
  #about-container .member-card {
    padding: 30px 32px 32px;
    border-top: 3px solid #b58a3b;
    background: rgba(255, 255, 255, .76);
  }
  
  #about-container .member-card h4 {
    margin: 0 0 16px;
    color: #171c2d;
    font-family: "Noto Serif JP", serif;
    font-size: 2.0rem;
    letter-spacing: .06em;
  }
  
  #about-container .member-card p {
    margin: 0;
    color: #60646c;
    font-size: 1.6rem;
    line-height: 1.5;
  }
  
  #about-container .cta {
    margin: 0;
    padding: clamp(70px, 7vw, 100px) 30px;
    background: #111628;
    color: #fff;
  }
  
  #about-container .cta .wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 70px;
    align-items: center;
  }
  
  #about-container .cta h2 {
    margin: 0 0 20px;
    color: #fff;
    font-family: "Noto Serif JP", serif;
    font-size: clamp(2.6rem, 3vw, 3.8rem);
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 1.45;
  }
  
  #about-container .cta h2 .en {
    display: block;
    margin-bottom: 18px;
    color: #bb9148;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: .34em;
    line-height: 1;
    text-transform: uppercase;
  }
  
  #about-container .cta p {
    max-width: 620px;
    margin: 0;
    color: rgba(255, 255, 255, .64);
    font-size: 1.25rem;
    line-height: 2;
  }
  
  #about-container .btn-gold {
    display: inline-flex;
    min-width: 205px;
    min-height: 58px;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 14px 25px;
    background: #b68a3c;
    color: #151a2b;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-decoration: none;
    transition: background-color .25s ease, color .25s ease, transform .25s ease;
  }
  
  #about-container .btn-gold:hover {
    background: #c99e50;
    color: #111628;
    transform: translateY(-2px);
  }

@media screen and (max-width: 767px) {
  #about-container {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  #about-container .wrap {
    width: calc(100% - 40px);
    min-width: 0;
  }

  #about-container .block {
    padding: 30px 0;
  }

  #about-container .sec-head {
    margin-bottom: 20px;
  }

  #about-container .eyebrow {
    margin-bottom: 10px;
    font-size: 1.2rem;
    letter-spacing: .15em;
  }

  #about-container .sec-title,
  #about-container .cta h2 {
    font-size: 2.4rem;
    letter-spacing: .03em;
  }

  #about-container .sec-title .en {
    margin-top: 8px;
    font-size: 1.2rem;
    letter-spacing: .1em;
  }

  #about-container .mission-grid,
  #about-container .cards,
  #about-container .cards.cards-3,
  #about-container .members,
  #about-container .cta .wrap {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  #about-container .mission-grid > *,
  #about-container .cta .wrap > * {
    min-width: 0;
  }

  #about-container .mission-statement {
    margin-bottom: 18px;
    font-size: 2rem;
    line-height: 1.6;
  }

  #about-container .mission-body,
  #about-container .pull,
  #about-container .card p,
  #about-container .member-card p,
  #about-container .cta p {
    font-size: 1.4rem;
    line-height: 1.6;
  }

  #about-container .pull {
    margin-bottom: 20px !important;
  }

  #about-container .frame-tag {
    left: 0;
    max-width: 100%;
  }

  #about-container image-slot {
    min-height: 240px;
  }

  #about-container .card,
  #about-container .cards.cards-3 .card,
  #about-container .member-card {
    min-height: 0;
    padding: 20px;
  }

  #about-container .card .num {
    margin-bottom: 14px;
    font-size: 2.6rem;
  }

  #about-container .card h3,
  #about-container .member-card h4 {
    margin-bottom: 12px;
    font-size: 1.8rem;
    line-height: 1.5;
  }

  #about-container .overview {
    margin-bottom: 24px;
  }

  #about-container .ov-row {
    grid-template-columns: minmax(0, 1fr);
    padding: 12px 0;
    gap: 6px;
  }

  #about-container .ov-row dt,
  #about-container .ov-row dd {
    min-width: 0;
    padding: 0;
    font-size: 1.4rem;
    line-height: 1.6;
  }

  #about-container .ov-row .small {
    display: block;
    margin: 4px 0 0;
  }

  #about-container .cta {
    padding: 30px 0;
  }

  #about-container .btn-gold {
    width: 100%;
    min-width: 0;
    min-height: 48px;
  }
}




/*------入会案内ページ-----*/
#info-top {
  height: 200px;
  padding: 20px;
  margin-bottom: 20px;
  background-color: #2A1B14;
  background-image: url(img/common/title_009.png);
  background-position: right center;
  background-repeat: no-repeat;
  box-shadow: 0 3px 8px #000000b3;
}
#info-wrapper {
  background-color: #faf5f5;
  background-image: linear-gradient(rgba(151, 0, 0, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(151, 0, 0, .045) 1px, transparent 1px);
  background-size: 80px 80px;
  color: #111;
  padding-bottom: 100px;
}
#info-wrapper::before {
  content: "Membership";
  position: absolute;
  top: 60%;
  right: 10vw;
  z-index: 0;
  color: rgba(232, 31, 67, .075);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(14rem, 15vw, 20rem);
  font-style: italic;
  font-weight: 400;
  line-height: .75;
  pointer-events: none;
  transform: translateY(calc(-50% + var(--about-parallax-offset, 0px)));
}

/* 入会案内 本文（既存 #container を土台にスコープ、他ページと衝突しないよう #info-wrapper #container 配下に限定） */
#info-wrapper #container {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none;
  margin: 0;
}
#info-wrapper #container .block {
  position: relative;
  padding: 70px 0;
}
#info-wrapper #container .block.alt {
  background: #eee8dc;
}
#info-wrapper #container .wrap {
  width: 1200px;
  margin: 0 auto;
}
#info-wrapper #container .sec-head {
  margin: 0 0 40px;
}
#info-wrapper #container .intro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
#info-wrapper #container .mission-body {
  margin: 0;
  color: #6c6f7b;
  font-size: 1.6rem;
  line-height: 1.9;
}
#info-wrapper #container .mission-body a {
  color: #8c6c33;
  border-bottom: 1px solid rgba(20, 24, 43, .22);
}
#info-wrapper #container .mission-body a:hover {
  color: #b18b46;
}
#info-wrapper #container .pull {
  border-left: 3px solid #b18b46;
  padding: 4px 0 4px 28px;
  margin: 8px 0 30px;
  max-width: 56em;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 600;
  font-size: 1.8rem;
  line-height: 1.9;
  color: #14182b;
  letter-spacing: .03em;
}
#info-wrapper #container .cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}
#info-wrapper #container .cards.cards-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
#info-wrapper #container .card {
  position: relative;
  background: #fffdf8;
  border: 1px solid rgba(20, 24, 43, .12);
  padding: 30px;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

#info-wrapper #container .card .num {
  display: inline-block;
  background: #14182b;
  color: #fff;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 700;
  font-size: 1.4rem;
  letter-spacing: 0.1em;
  padding: 8px 15px;
  margin-bottom: 10px;
}

#info-wrapper #container .card h3 {
  margin: 0 0 .7rem;
  color: #14182b;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.6;
  letter-spacing: .03em;
}
#info-wrapper #container .card p {
  margin: 0;
  color: #6c6f7b;
  font-size: 1.4rem;
  line-height: 1.9;
}
#info-wrapper #container .fee-table {
  overflow-x: auto;
  border: 1px solid rgba(20, 24, 43, .22);
  background: #fffdf8;
}
#info-wrapper #container .fee-table table {
  width: 100%;
  border-collapse: collapse;
  min-width: 420px;
}
#info-wrapper #container .fee-table th,
#info-wrapper #container .fee-table td {
  padding: 18px 24px;
  text-align: left;
  border-bottom: 1px solid rgba(20, 24, 43, .12);
  font-size: 1.5rem;
}
#info-wrapper #container .fee-table thead th {
  background: #eee8dc;
  color: #8c6c33;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 1.2rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(20, 24, 43, .22);
}
#info-wrapper #container .fee-table tbody td:first-child {
  font-family: "Shippori Mincho B1", serif;
  font-weight: 700;
  color: #14182b;
  letter-spacing: .06em;
}
#info-wrapper #container .fee-table tbody tr:last-child td {
  border-bottom: 0;
}
#info-wrapper #container .fee-note {
  margin: 16px 0 0;
  color: #6c6f7b;
  font-size: 1.3rem;
}
#info-wrapper #container .fee-note a {
  color: #8c6c33;
  border-bottom: 1px solid rgba(20, 24, 43, .22);
}
#info-wrapper #container .benefits-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(20, 24, 43, .22);
}
#info-wrapper #container .benefits-grid li {
  display: flex;
  align-items: center;
  gap: .8em;
  padding: 16px 10px;
  border-bottom: 1px solid rgba(20, 24, 43, .12);
  color: #22242e;
  font-size: 1.5rem;
}
#info-wrapper #container .benefits-grid .dotmark {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #b18b46;
  flex-shrink: 0;
}
#info-wrapper #container .steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  list-style: none;
  margin: 0;
  padding: 0;
}
#info-wrapper #container .steps li {
  position: relative;
  background: #fffdf8;
  border: 1px solid rgba(20, 24, 43, .12);
  border-top: 3px solid #b18b46;
  padding: 30px;
}
#info-wrapper #container .s-num {
  display: block;
  color: #b18b46;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 900;
  font-size: 2.8rem;
  letter-spacing: .1em;
}
#info-wrapper #container .s-num::after {
  content: "";
  display: block;
  width: 38px;
  height: 1px;
  background: rgba(20, 24, 43, .22);
  margin: 5px 0 10px;
}
#info-wrapper #container .steps h3 {
  margin: 0 0 .7rem;
  color: #14182b;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 700;
  font-size: 1.7rem;
  line-height: 1.6;
  letter-spacing: .03em;
}
#info-wrapper #container .steps p {
  margin: 0;
  color: #6c6f7b;
  font-size: 1.4rem;
  line-height: 1.9;
}
#info-wrapper #container .admission-download-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
#info-wrapper #container .admission-download-card {
  padding: 30px;
  background: #fffdf8;
  border: 1px solid rgba(20, 24, 43, .12);
  border-top: 3px solid #b18b46;
}
#info-wrapper #container .admission-download-card h3 {
  margin: 0 0 12px;
  color: #14182b;
  font-family: "Shippori Mincho B1", serif;
  font-size: 2.4rem;
}
#info-wrapper #container .admission-download-card p {
  margin: 0 0 24px;
  color: #6c6f7b;
  font-size: 1.6rem;
}
#info-wrapper #container .admission-download-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
#info-wrapper #container .admission-download-links a {
  display: flex;
  flex: 1 1 200px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 16px;
  border: 1px solid #d7bb86;
  border-radius: 30px;
  background: linear-gradient(135deg, #321412, #731c24);
  color: #fff;
  font-size: 1.6rem;
  text-align: center;
}
#info-wrapper #container .admission-download-links a:hover {
  background: #731c24;
}
#info-wrapper #container .admission-download-links a:focus-visible {
  outline: 3px solid #8c6c33;
  outline-offset: 3px;
}
#info-wrapper #container .admission-guidance-intro {
  margin-bottom: 36px;
  padding-left: 26px;
  border-left: 3px solid #b18b46;
  color: #6c6f7b;
  font-size: 1.6rem;
  line-height: 1.9;
}
#info-wrapper #container .admission-guidance-intro p {
  margin: 0 0 16px;
}
#info-wrapper #container .admission-guidance-intro p:last-child {
  margin-bottom: 0;
}
#info-wrapper #container .admission-law-group {
  margin-top: 28px;
  padding: 30px;
  background: #fffdf8;
  border: 1px solid rgba(20, 24, 43, .12);
  border-top: 3px solid #b18b46;
}
#info-wrapper #container .admission-law-group h3 {
  margin: 0 0 20px;
  color: #14182b;
  font-family: "Shippori Mincho B1", serif;
  font-size: 2.4rem;
  line-height: 1.6;
}
#info-wrapper #container .admission-law-links {
  margin: 0;
  padding: 0;
  list-style: none;
}
#info-wrapper #container .admission-law-links li {
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(20, 24, 43, .12);
}
#info-wrapper #container .admission-law-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 8px;
  color: #14182b;
  font-size: 1.6rem;
  line-height: 1.8;
  overflow-wrap: anywhere;
  transition: background-color .2s, color .2s;
}
#info-wrapper #container .admission-law-links a:hover {
  background: #eee8dc;
  color: #731c24;
}
#info-wrapper #container .admission-law-links a:focus-visible {
  outline: 3px solid #8c6c33;
  outline-offset: 3px;
}
#info-wrapper #container .admission-law-source {
  flex-shrink: 0;
  color: #8c6c33;
  font-size: 1.3rem;
}
#info-wrapper #container .admission-law-links small {
  display: block;
  margin-top: 4px;
  color: #6c6f7b;
  font-size: 1.3rem;
}
#info-wrapper #container .admission-guidance-note {
  margin: 20px 0 0;
  color: #6c6f7b;
  font-size: 1.4rem;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  #info-wrapper #container .admission-guidance-intro {
    padding-left: 18px;
  }
  #info-wrapper #container .admission-law-group {
    padding: 22px 18px;
  }
  #info-wrapper #container .admission-law-group h3 {
    font-size: 2rem;
  }
  #info-wrapper #container .admission-law-links a {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 18px 0;
  }
}
#join-form a {
  display: block;
  width: 500px;
  background: linear-gradient(135deg, #321412, #731c24);
  font-size: 2.0rem;
  font-weight: 500;
  color: #fff;
  border-radius: 30px;
  padding: 15px;
  margin: 40px auto 0;
  text-align: center;
  box-shadow: 0 0px 6px #1f1f1fb3;
  border: 1px solid #d7bb86;
}

@media screen and (max-width: 800px) {
  #info-wrapper #container .wrap {
    width: 100%;
    padding: 0 20px;
  }
  #info-wrapper #container .intro-grid,
  #info-wrapper #container .admission-download-grid,
  #info-wrapper #container .cards,
  #info-wrapper #container .steps,
  #info-wrapper #container .benefits-grid {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 767px) {
  #info-wrapper {
    padding-bottom: 36px;
  }

  #info-wrapper #container {
    min-width: 0;
    min-height: 0;
    overflow-wrap: anywhere;
  }

  #info-wrapper #container .wrap {
    min-width: 0;
  }

  #info-wrapper #container .block {
    padding: 30px 0;
  }

  #info-wrapper #container .sec-head {
    margin-bottom: 20px;
  }

  #info-wrapper #container .eyebrow {
    font-size: 1.2rem;
    letter-spacing: .12em;
  }

  #info-wrapper #container .sec-title {
    font-size: 2.4rem;
  }

  #info-wrapper #container .sec-title .en {
    font-size: 1.2rem;
    letter-spacing: .1em;
  }

  #info-wrapper #container .intro-grid,
  #info-wrapper #container .cards,
  #info-wrapper #container .cards.cards-3,
  #info-wrapper #container .steps,
  #info-wrapper #container .benefits-grid,
  #info-wrapper #container .admission-download-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  #info-wrapper #container .intro-grid > *,
  #info-wrapper #container .card,
  #info-wrapper #container .steps li,
  #info-wrapper #container .admission-download-card {
    min-width: 0;
  }

  #info-wrapper #container .mission-body,
  #info-wrapper #container .card p,
  #info-wrapper #container .steps p,
  #info-wrapper #container .admission-download-card p {
    font-size: 1.4rem;
    line-height: 1.6;
  }

  #info-wrapper #container .pull {
    padding-left: 16px;
    font-size: 1.6rem;
    line-height: 1.6;
  }

  #info-wrapper #container .card,
  #info-wrapper #container .steps li,
  #info-wrapper #container .admission-download-card {
    padding: 20px;
  }

  #info-wrapper #container .card .num::after {
    margin-top: 8px;
  }

  #info-wrapper #container .fee-table {
    min-width: 0;
    max-width: 100%;
  }

  #info-wrapper #container .fee-table table {
    min-width: 0;
    table-layout: fixed;
  }

  #info-wrapper #container .fee-table th,
  #info-wrapper #container .fee-table td {
    padding: 12px 8px;
    font-size: 1.3rem;
    line-height: 1.6;
    letter-spacing: 0;
  }

  #info-wrapper #container .benefits-grid {
    gap: 0;
  }

  #info-wrapper #container .benefits-grid li {
    padding: 12px 6px;
    font-size: 1.4rem;
    line-height: 1.6;
  }

  #info-wrapper #container .admission-download-card h3 {
    font-size: 2rem;
  }

  #info-wrapper #container .admission-download-card p {
    margin-bottom: 16px;
  }

  #info-wrapper #container .admission-download-links {
    flex-direction: column;
    gap: 10px;
  }

  #info-wrapper #container .admission-download-links a {
    flex: 0 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 12px 8px;
    font-size: 1.4rem;
  }

  #info-wrapper #join-form a {
    width: 100%;
    max-width: 100%;
    margin-top: 24px;
    padding: 12px;
    font-size: 1.6rem;
    line-height: 1.5;
  }
}



















/*----会員専用ページ----*/
.um .um-button {
  background:#8e0000 !important;
  border-color:#8e0000 !important;
}

.um .um-button:hover {
  background:#b71c1c !important;
  border-color:#b71c1c !important;
}
#member-top {
  height: 187px;
  padding: 20px;
  margin-bottom: 30px;
  background-color: #3A291F;
  background-image: url(img/common/title_013.png);
  background-position: right center;
  background-repeat: no-repeat;
  box-shadow: 0 3px 8px #000000b3;
}
#member-intop {
  height: 120px;
  padding: 20px;
  margin-bottom: 10px;
  background-color: #3A291F;
  background-image: url(img/common/title_013.png);
  background-position: right center;
  background-repeat: no-repeat;
  box-shadow: 0 3px 8px #000000b3;
}
#member-wrapper {
  background-color: #faf5f5;
  background-image: linear-gradient(rgba(151, 0, 0, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(151, 0, 0, .045) 1px, transparent 1px);
  background-size: 80px 80px;
  color: #111;
  padding-bottom: 100px;
}
#member-wrapper::before {
  content: "Members";
  position: absolute;
  top: 60%;
  right: 10vw;
  z-index: 0;
  color: rgba(232, 31, 67, .075);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(14rem, 15vw, 20rem);
  font-style: italic;
  font-weight: 400;
  line-height: .75;
  pointer-events: none;
  transform: translateY(calc(-50% + var(--about-parallax-offset, 0px)));
}


#membertop {
  width: 1200px;
  padding: 10px 0 5px;
  margin: 0 auto;
}
#login-user {
  width: 1200px;
  text-align: right;
  margin: 0 auto 10px;
}
#login-user span a {
  display: inline-block;
  padding: 2px 10px;
  border: solid 1px #d2d2d2;
  border-radius: 15px;
  background: #d2d2d2;
}
#member-left {
  width: 930px;
  box-shadow: 0px 0px 5px #000000b3;
  padding: 10px;
  margin-bottom: 30px;
}
#member-right {
  width: 250px;
  background-color: #e7cfcf;
  box-shadow: 0px 0px 5px #000000b3;
  padding: 10px;
  margin-bottom: 30px;
}
#member-right li a {
  display: block;
    text-align: center;
    background-color: #792428;
    color: #fff;
    margin-bottom: 10px;
    padding: 10px 0;
}
#member-right li a:hover {
  background-color: #ff6363;
}


@media screen and (max-width: 480px) {
}




@media screen and (max-width: 767px) {
  #member-wrapper.member-login-page {
    padding-bottom: 36px;
  }

  .member-login-page #container,
  #container:has(.um-login) {
    position: relative;
    width: calc(100% - 40px);
    max-width: calc(100vw - 40px);
    min-width: 0;
    min-height: 0;
    font-size: 1.4rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
  }

  .member-login-page #member-top {
    margin-bottom: 24px;
  }

  .member-login-page .um,
  .um.um-login {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  .um.um-login *,
  .um.um-login *::before,
  .um.um-login *::after {
    box-sizing: border-box !important;
  }

  .um.um-login :is(form, .um-form, .um-row, .um-col-1, .um-col-121, .um-col-122, .um-field, .um-field-area, .um-col-alt) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
  }

  .um.um-login :is(input[type="text"], input[type="email"], input[type="password"], .um-button) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    font-size: 16px !important;
  }

  .um.um-login .um-col-alt .um-left,
  .um.um-login .um-col-alt .um-right {
    float: none !important;
    width: 100% !important;
    margin: 0 0 12px !important;
  }

  .um.um-login :is(.um-field-label, .um-field-error, .um-field-checkbox-option, .um-link-alt) {
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.6;
  }

  .member-login-page .um-form,
  .member-login-page .um-row,
  .member-login-page .um-col-1,
  .member-login-page .um-field-area {
    min-width: 0;
    max-width: 100%;
  }

  .member-login-page .um input[type="text"],
  .member-login-page .um input[type="email"],
  .member-login-page .um input[type="password"] {
    width: 100% !important;
    max-width: 100%;
    min-height: 44px !important;
    font-size: 16px !important;
  }

  .member-login-page .um .um-col-alt .um-left,
  .member-login-page .um .um-col-alt .um-right {
    float: none;
    width: 100%;
    margin: 0 0 12px;
  }

  .member-login-page .um .um-button {
    width: 100% !important;
    max-width: 100%;
    min-height: 44px;
    white-space: normal;
    font-size: 16px;
  }

  .member-login-page .um .um-field-label,
  .member-login-page .um .um-field-error,
  .member-login-page .um .um-field-checkbox-option,
  .member-login-page .um .um-link-alt {
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.6;
  }
}

/*フッタエリア*/
.site-footer {
  padding: 64px 0 0;
  border-top: 4px solid #e81f43;
  background: #211b1d;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
}
.site-footer__inner {
  width: min(1320px, calc(100% - 80px));
  margin: 0 auto;
}
.site-footer a {
  color: inherit;
  transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}
.site-footer a:focus-visible {
  outline: 2px solid #ff8297;
  outline-offset: 5px;
}
.site-footer__intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding-bottom: 44px;
}
.site-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 24px;
}
.site-footer__logo {
  flex-shrink: 0;
  padding: 16px 12px;
  background: #fff;
}
.site-footer__logo img {
  width: 100px;
}
.site-footer__name {
  font-family: "Noto Serif JP", serif;
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1.8;
}
.site-footer__name > span {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
  font-weight: 400;
  letter-spacing: .12em;
}
.site-footer__eyebrow {
  color: #e9b2bb;
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: .18em;
}
.site-footer__eyebrow > span {
  margin-left: 18px;
  color: #c5bcbf;
  font-size: 1.1rem;
  letter-spacing: .05em;
}
.site-footer__social ul {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 14px;
}
.site-footer__social a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  padding: 10px 16px;
  border: 1px solid #68575c;
  font-size: 1.3rem;
}
.site-footer__social a:hover {
  border-color: #e81f43;
  background: #792428;
}
.site-footer__social [class^="icon-"] {
  font-size: 1.9rem;
}
.site-footer__external {
  color: #e9b2bb;
}
.site-footer__sitemap {
  padding: 32px 0 40px;
  border-top: 1px solid #514247;
}
.site-footer__columns {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 32px;
  margin-top: 28px;
}
.site-footer__group h3 {
  margin-bottom: 14px;
  padding-left: 12px;
  border-left: 2px solid #e81f43;
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  line-height: 1.6;
}
.site-footer__group a {
  display: inline-block;
  padding: 9px 0;
  color: #d2c9cc;
  font-size: 1.3rem;
  line-height: 1.8;
}
.site-footer__group a:hover,
.site-footer__top:hover {
  color: #ff8297;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.site-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 0;
  border-top: 1px solid #514247;
  color: #c5bcbf;
}
.site-footer__bottom small {
  font-size: 1.1rem;
  letter-spacing: .06em;
}
.site-footer__top {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  min-height: 44px;
  font-size: 1.2rem;
}
@media screen and (max-width: 480px) {
  .site-footer {
    padding-top: 36px;
  }
  .site-footer__inner {
    width: calc(100% - 40px);
  }
  .site-footer__intro {
    flex-direction: column;
    align-items: flex-start;
    padding-bottom: 28px;
  }
  .site-footer__brand {
    gap: 14px;
  }
  .site-footer__logo {
    padding: 12px 8px;
  }
  .site-footer__logo img {
    width: 64px;
  }
  .site-footer__name {
    font-size: 1.6rem;
  }
  .site-footer__columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 18px;
  }
  .site-footer__group h3 {
    font-size: 1.4rem;
  }
  .site-footer__group a {
    padding: 10px 0;
    font-size: 1.2rem;
  }
  .site-footer__bottom {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 8px;
  }
}



/* お問合せフォーム-案内バー
--------------------------------------------- */
.progressbar {
  display: flex;
  flex-wrap: wrap;
	margin: 20px 0 30px;
  width: 100%;
}
.progressbar .item {
    position: relative;
    width: 33%;
    text-align: center;
    position: relative;
    align-items: center;
    justify-content: center;
    padding: 8px 0;
    line-height: 1.5;
    background: #F5F5F5;
    color: #999999;
}
.progressbar .item:not(:last-child)::before,
.progressbar .item:not(:last-child)::after {
    position: absolute;
    z-index: 2;
    top: 0;
    bottom: 0;
    left: 100%;
    content: '';
    border: 37px solid transparent;
    border-left: 20px solid #F5F5F5;
    margin: auto;
}
.progressbar .item:not(:last-child)::before {
    margin-left: 1px;
    border-left-color: #FFF;
}
@media screen and (max-width:480px) {
.progressbar .item {
    font-size: 11px;
    line-height: 1.4;
    padding: 10px 0;
}
.progressbar .item:not(:last-child)::before,
.progressbar .item:not(:last-child)::after {
    border-width: 25px;
    border-left-width: 12px;
}
}
/* active */
.progressbar .item.active {
    z-index: 1;
    background: #792428;
    color: #FFF;
}
.progressbar .item.active:not(:last-child)::after {
    border-left-color: #792428;
}
.progressbar .item.active:not(:last-child)::before {
    border-left: none;
}

/* お問い合わせフォーム
--------------------------------------------- */
#contact-top {
  width: 1100px;
  height: 200px;
  border: solid 1px #9c0000;
  background-image: url("./img/inpage/contact-top.png");
  padding: 120px 0 0;
  margin-bottom: 20px;
}
.form-memo {
  margin: 0 0 10px 30px;
}
ul#jatet-order {
  margin: 0 0 30px;
}
li.jatet-tbranch,li.jatet-tbook,li.jatet-torder {
  background: #e7e0e0;
  padding: 3px 0;
  text-align: center;
  margin-bottom: 2px;
  font-weight: bold;
}
li.jatet-tbranch {
  width: 12.5%;
}
li.jatet-tbook {
  width: 76.5%;
}
li.jatet-torder {
  width: 10%;
}
ul#jatet-order li.jatet-branch {
  width: 12.5%;
  text-align: center;
  padding: 10px 0;
  background: #ebebeb;
  margin-bottom: 5px;
}
ul#jatet-order li.jatet-book {
  width: 76.5%;
  padding: 10px 40px;
  background: #ebebeb;
  margin-bottom: 5px;
}
ul#jatet-order li.jatet-order {
  width: 10%;
  text-align: center;
  padding: 10px 0;
  background: #e7e0e0;
  margin-bottom: 5px;
}
#contact dl dt,#contact dl dd {
	padding: 10px 20px;
	margin-bottom: 5px;
}
#contact dl dt {
	width: 30%;
	background: #e7e0e0;
	display: grid;
  place-items: center;
	color: #a00008;
	font-weight: bold;
	text-align: center;
}
#contact dl dd {
	width: 69.5%;
	background: #ebebeb;
}

#contact dl dd select {
	padding: 5px 10px;
}
#contact dl dd input.spmax {
	padding: 5px 10px;
	width: 350px;
	font-size: 1.8rem;
}
#contact dl dd input.smallarea,#contact dl dd input.smallarea {
	padding: 5px 10px;
	width: 80px;
	font-size: 1.8rem;
}
#contact dl dd textarea.pcmax,#contact dl dd input.pcmax {
	width: 100%;
	padding: 5px 10px;
	font-size: 1.8rem;
}
.button_area {
  text-align: center;
  padding: 20px 0 40px 0;
}
.button_area button {
	display: inline-flex;
    align-items: center;
    color: #ffffff;
    font-size: 1.6rem;
    letter-spacing: 2px;
    padding: 10px 20px;
    border: solid 1px #792428;
    border-radius: 30px;
    background: #792428;
    cursor: pointer;
}
.button_area span {
  font-size: 2.0rem;
  line-height: 1;
}
#phone_btn a {
	display: block;
	margin: 40px auto;
	width: 280px;
  color: #ffffff;
  font-size: 1.6rem;
  letter-spacing: 2px;
  padding: 10px 20px;
  border: solid 1px #d9a62e;
  border-radius: 30px;
  background: #d9a62e;
	text-align: center;
}
ul#confirm {
	margin: 30px auto;
	border: solid 1px #792428;
	padding: 20px;
}
ul#confirm li {
	text-align: center;
	font-size: 1.8rem;
	font-weight: bold;
	color: #792428;
}
#chaasu-title {
	background-color: #e7e0e0;
	padding: 10px 20px;
}
#chaasu {
	padding: 10px 20px;
	background-color: #ebebeb;
}
#chaasu span.mwform-checkbox-field {
	display: inline-block;
	width: 240px;
	padding: 0px 10px;
}
input.chaasutext {
	padding: 3px;
	width: 250px;
}
#chaasu .horizontal-item + .horizontal-item {
	margin-left: 0px;
}
.form-texttop {
	margin: 0 0 30px 30px;
}
.form-texttop span {
	color: #e6023b;
	font-weight: bold;
}
/*----フォーラム申し込み----*/
.form-box {
  margin: 30px 0 0 0;
}
.form-box h3 {
  padding: .5em .7em;
  border-left: 5px solid #d02525;
  border-bottom: 3px solid #d2d2d2;
  background-color: #f2f2f2;
  color: #333333;
  margin-bottom: 15px;
}
.complete-box {
  border : 2px solid #856262;
  text-align: center;
  font-size: 2.0rem;
  font-weight: 700;
  padding: 40px 0;
  margin-bottom: 50px;
}
.complete-box img {
  margin: 30px auto 0;
}
.complete-box p {
  font-weight: 100;
}
.forum-registration-status {
  padding: 24px;
  border: 1px solid #d2d2d2;
  background: #f7f7f7;
  text-align: center;
}
.forum-registration-status strong {
  display: block;
  margin-bottom: 8px;
  color: #9c0000;
  font-size: 1.25em;
}
.forum-registration-status p {
  margin: 0;
}
.seminar-back-button,
.forum-back-button,
.viewing-back-button {
  display: block;
  text-align: center;
  align-items: center;
  margin: 0 auto;
  width: 300px;
  color: rgb(255, 255, 255);
  font-size: 1.6rem;
  letter-spacing: 2px;
  cursor: pointer;
  padding: 10px 20px;
  border-width: 1px;
  border-style: solid;
  border-image: none;
  border-radius: 30px;
  background: rgb(121, 36, 40);
}
.seminar-back-button:hover,
.seminar-back-button:focus-visible,
.forum-back-button:hover,
.forum-back-button:focus-visible,
.viewing-back-button:hover,
.viewing-back-button:focus-visible {
  background: #444;
  color: #fff;
}
.forum-registration-status.is-closed {
  border-color: #d7b2b2;
  background: #fff4f4;
}
.flyer-btn {
  width: 300px;
  margin: 0px auto;
}
.flyer-btn a {
  display: block;
  width: 100%;
  text-align: center;
  text-decoration: none;
  padding: 10px 0;
  outline: none;
  border-radius: 30px;
  border: 1px solid #001a2b;
  background-color: #00243b;
  background-image: linear-gradient(to bottom, #00243b, #005285);
  color: #fff;
  transition: none;
  text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
}
#seminar-memo {
  margin: 20px;
}
#complete-price {
  padding: 20px;
}
#complete-price h3 {
   padding: 10px;
   border: solid 1px #e0a3a3;
    border-bottom: 3px double #b30000;
    background-color: #ffffff;
    color: #333333;
    margin-bottom: 15px;
}
#complete-price #price-redtext {
  width: 80%;
  margin: 20px auto 40px;
  padding: 15px;
  background-color: #ffb7bc;
}
ul#credit-btn {
  width: 50%;
  margin: 20px auto 50px;
}
ul#credit-btn li a {
  display: block;
  background: #ff6363;
  border: solid 1px #e0a3a3;
  border-radius: 5px;
  color: #fff;
  padding: 15px 30px;
}
ul#credit-btn li a:hover {
  background: #e0a3a3;
  border: solid 1px #ff6363;
}
#complete-price h4 {
  margin-bottom: 10px;
}
#credit-account {
  width: 60%;
  padding: 15px;
  margin: 20px auto;
  border-radius: 5px;
  background: #ff8e8e;
}
#credit-text {
  margin: 50px auto 20px;
  color: #c4062f;
}

@media screen and (max-width:480px) {
  #contact-top {
    width: 100%;
    height: 180px;
    border: solid 1px #9c0000;
    background-image: url("./img/sp/contacttop-sp.png");
    background-size: contain;
    background-repeat:  no-repeat; 
    padding: 70px 0px 0 20%;
  }
  #match-top {
    width: 100%;
    height: 180px;
    border: solid 1px #9c0000;
    background-image: url("./img/sp/matchtop-sp.png");
    background-size: contain;
    background-repeat:  no-repeat; 
    padding: 70px 0px 0 20%;
  }
  #trial-top {
    width: 100%;
    height: 180px;
    border: solid 1px #9c0000;
    background-image: url("./img/sp/trialtop-sp.png");
    background-size: contain;
    background-repeat:  no-repeat; 
    padding: 70px 0px 0 20%;
  }
  ul#form-select {
    width: 80%;
    margin: 0 auto;
  }
  ul#form-select li {
    width: 100%;
    text-align: center;
  }
  ul#form-select li a {
    font-size: 1.4rem;
    padding: 8px 0;
  }
  ul#form-select li a span {
    display: none;
  }

	#contact dl dt,#contact dl dd {
		width: 100%;
	}
	#contact dl dt {
		margin: 0;
	}
	#contact dl dd input.spmax {
		width: 100%;
	}
	#contact dl dd {
		text-align: center;
	}
	ul#confirm li {
		text-align: left;
	}
	input.chaasutext {
		display: block;
		margin: 0 auto;
	}
	.form-texttop {
		margin: 0 5px 15px 5px;
	}
	#contact dl dd input.smallarea2 {
		width: 27%;
	}
  #complete-price {
    padding: 0;
  }
  ul#credit-btn {
  width: 100%;
}
  ul#credit-btn li a {
    width: 100%;
}
  #credit-account {
  width: 100%;
}
}

/* お知らせ一覧・カテゴリ：スマートフォン表示 */
@media screen and (max-width: 767px) {
  #news-wrapper.news-archive {
    padding-bottom: 36px;
  }

  .news-archive #container {
    display: flex;
    flex-direction: column;
    gap: 28px;
    width: calc(100% - 40px);
    min-width: 0;
    min-height: 0;
    overflow-wrap: anywhere;
  }

  .news-archive #left-container,
  .news-archive #right-container {
    width: 100%;
    min-width: 0;
  }

  .news-archive .news-list-card {
    margin-bottom: 14px;
  }

  .news-archive .news-list-card ul {
    padding: 16px;
  }

  .news-archive .news-list-card__status {
    position: static;
    display: inline-block;
    width: auto;
    margin-bottom: 10px;
    padding: 5px 10px;
    font-size: 1.2rem;
    letter-spacing: .08em !important;
    box-shadow: none;
    transform: none;
  }

  .news-archive .news-list-card__meta {
    flex-direction: column;
    gap: 4px;
    font-size: 1.2rem;
  }

  .news-archive .news-list-card-title {
    font-size: 1.7rem;
    line-height: 1.5;
  }

  .news-archive .news-list-card-summary {
    margin-top: 8px;
    font-size: 1.3rem;
    line-height: 1.6;
  }

  .news-archive .pagination .nav-links,
  .news-archive .forum-pagination {
    gap: 8px;
    margin-top: 20px;
  }

  .news-archive .pagination .page-numbers,
  .news-archive .forum-pagination .page-numbers {
    min-width: 44px;
    min-height: 44px;
    padding: 8px;
  }

  .news-archive .rightmenu-history select {
    max-width: 100%;
    min-height: 44px;
    font-size: 16px;
  }
}

/* お知らせ詳細・セミナー・フォーラム・見学会：スマートフォン表示 */
@media screen and (max-width: 767px) {
  #news-wrapper.news-detail {
    padding-bottom: 36px;
  }

  .news-detail #container {
    display: flex;
    flex-direction: column;
    gap: 28px;
    width: calc(100% - 40px);
    min-width: 0;
    min-height: 0;
    font-size: 1.4rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
  }

  .news-detail #left-container,
  .news-detail #right-container {
    width: 100%;
    min-width: 0;
  }

  .news-detail article {
    padding: 16px 14px 24px;
  }

  .news-detail #news-meta {
    margin: 0 0 16px;
    font-size: 1.2rem;
  }

  .news-detail .knews-item {
    margin-bottom: 20px;
  }

  .news-detail .knews-item .flex,
  .news-detail .img-double {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .news-detail [class^="knewstext-"],
  .news-detail [class^="knewsimg-"],
  .news-detail .img-double > div {
    width: 100%;
    min-width: 0;
  }

  .news-detail #left-container img,
  .news-detail #left-container video {
    max-width: 100%;
    height: auto;
  }

  .news-detail #left-container iframe {
    max-width: 100%;
  }

  .news-detail #left-container table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
  }

  .news-detail article figcaption {
    font-size: 1.2rem;
  }

  .news-detail .postin-link a {
    padding: 12px 16px;
    margin: 16px 0;
  }

  .news-detail #orderform-text {
    padding: 14px;
    margin-bottom: 20px;
  }

  .news-detail #orderform-box,
  .news-detail #contact dl {
    display: flex;
    flex-direction: column;
  }

  .news-detail #orderform-box dt,
  .news-detail #orderform-box dd,
  .news-detail #contact dl dt,
  .news-detail #contact dl dd {
    width: 100%;
    min-width: 0;
    padding: 10px 12px;
    text-align: left;
  }

  .news-detail #orderform-box dt,
  .news-detail #contact dl dt {
    justify-items: start;
    margin-bottom: 0;
  }

  .news-detail #orderform-box dd,
  .news-detail #contact dl dd {
    margin: 0 0 10px;
  }

  .news-detail .flyer-btn,
  .news-detail #phone_btn a {
    width: 100%;
    max-width: 100%;
  }

  .news-detail .form-box {
    margin-top: 24px;
  }

  .news-detail .form-box h3,
  .news-detail .knews-item h3 {
    font-size: 1.8rem;
    line-height: 1.5;
  }

  .news-detail .form-memo,
  .news-detail .form-texttop,
  .news-detail #seminar-memo {
    margin: 0 0 16px;
  }

  .news-detail .form-box input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]),
  .news-detail .form-box select,
  .news-detail .form-box textarea,
  .news-detail .rightmenu-history select {
    max-width: 100%;
    min-height: 44px;
    font-size: 16px;
  }

  .news-detail #contact dl dd input.spmax,
  .news-detail #contact dl dd input.pcmax,
  .news-detail #contact dl dd textarea.pcmax {
    width: 100%;
  }

  .news-detail #contact dl dd input.smallarea2 {
    width: 27%;
  }

  .news-detail #chaasu {
    padding: 12px;
  }

  .news-detail #chaasu span.mwform-checkbox-field {
    width: 100%;
    padding: 6px 0;
  }

  .news-detail .button_area {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    padding: 16px 0 24px;
  }

  .news-detail .button_area button,
  .news-detail .button_area input,
  .news-detail #zip-search {
    max-width: 100%;
    min-height: 44px;
    white-space: normal;
  }

  .news-detail .forum-registration-status,
  .news-detail #confirm {
    padding: 16px;
  }

  .news-detail #confirm li {
    font-size: 1.4rem;
  }
}

/* フォームページ共通：スマートフォン表示 */
@media screen and (max-width: 767px) {
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) {
    padding-bottom: 36px;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #container {
    position: relative;
    width: calc(100% - 40px);
    max-width: calc(100vw - 40px);
    min-width: 0;
    min-height: 0;
    font-size: 1.4rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) .form-memo,
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) .form-texttop {
    margin: 0 0 16px;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact,
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) .mw_wp_form {
    min-width: 0;
    max-width: 100%;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact dl {
    display: flex;
    flex-direction: column;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact dl dt,
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact dl dd {
    width: 100%;
    min-width: 0;
    padding: 12px;
    text-align: left;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact dl dt {
    margin-bottom: 0;
    justify-items: start;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact dl dd {
    margin: 0 0 12px;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]),
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact select,
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact textarea {
    max-width: 100%;
    min-height: 44px;
    font-size: 16px;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact input.spmax,
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact input.pcmax,
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact textarea {
    width: 100%;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact textarea {
    min-height: 160px;
    resize: vertical;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact input.smallarea2 {
    width: 27%;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact .mwform-checkbox-field,
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact .mwform-radio-field {
    display: inline-block;
    max-width: 100%;
    margin: 0 12px 8px 0;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact label {
    white-space: normal;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) .button_area {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    padding: 16px 0 24px;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) .button_area button,
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) .button_area input,
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #zip-search {
    max-width: 100%;
    min-height: 44px;
    font-size: 16px;
    white-space: normal;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #confirm {
    margin: 20px 0;
    padding: 14px;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #confirm li {
    font-size: 1.4rem;
    text-align: left;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #phone_btn a {
    width: 100%;
    max-width: 100%;
    margin: 24px auto;
  }
}

/* 確認・完了画面：長い入力内容や完了案内も画面内に収める */
@media screen and (max-width: 767px) {
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) .mw_wp_form,
  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) #contact dd {
    overflow-wrap: anywhere;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) .button_area > p {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    width: 100%;
    margin: 0;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) .button_area br {
    display: none;
  }

  :is(#form-wrapper, #wrapper:has(.mw_wp_form_confirm, .mw_wp_form_complete)) .button_area :is(button, input[type="submit"], input[type="button"]) {
    width: 100%;
    min-height: 48px;
    justify-content: center;
    margin: 0;
  }

  .complete-box {
    max-width: 100%;
    padding: 24px 16px;
    margin-bottom: 24px;
    font-size: 1.8rem;
    line-height: 1.7;
    overflow-wrap: anywhere;
  }

  .complete-box p {
    font-size: 1.4rem;
  }

  .complete-box img {
    max-width: 100%;
    height: auto;
    margin-top: 20px;
  }

  .seminar-back-button,
  .forum-back-button,
  .viewing-back-button {
    width: 100%;
    max-width: 300px;
    min-height: 48px;
    padding: 12px 16px;
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

/* 購入フォーム：スマートフォン表示 */
@media screen and (max-width: 767px) {
  #container:has(#jatet-order) {
    width: calc(100% - 40px);
    min-width: 0;
    min-height: 0;
    font-size: 1.4rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
  }

  #container:has(#jatet-order) .form-memo,
  #container:has(#jatet-order) .form-texttop {
    margin: 0 0 16px;
  }

  ul#jatet-order {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 64px;
    gap: 4px;
    margin-bottom: 24px;
  }

  ul#jatet-order > li[class] {
    width: auto;
    min-width: 0;
    margin-bottom: 0;
    padding: 10px 6px;
    font-size: 1.3rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
  }

  ul#jatet-order li.jatet-order {
    grid-column: 3;
    padding: 8px 4px;
  }

  ul#jatet-order li.jatet-branch {
    grid-column: 1;
  }

  ul#jatet-order li.jatet-book {
    grid-column: 2;
  }

  ul#jatet-order select {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 4px 2px;
    font-size: 16px;
  }

  #container:has(#jatet-order) #contact dl {
    display: flex;
    flex-direction: column;
  }

  #container:has(#jatet-order) #contact dl dt,
  #container:has(#jatet-order) #contact dl dd {
    width: 100%;
    min-width: 0;
    padding: 12px;
    text-align: left;
  }

  #container:has(#jatet-order) #contact dl dt {
    margin-bottom: 0;
    justify-items: start;
  }

  #container:has(#jatet-order) #contact dl dd {
    margin: 0 0 12px;
  }

  #container:has(#jatet-order) #contact input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]),
  #container:has(#jatet-order) #contact select,
  #container:has(#jatet-order) #contact textarea {
    max-width: 100%;
    min-height: 44px;
    font-size: 16px;
  }

  #container:has(#jatet-order) #contact input.spmax,
  #container:has(#jatet-order) #contact input.pcmax,
  #container:has(#jatet-order) #contact textarea.pcmax {
    width: 100%;
  }

  #container:has(#jatet-order) #contact input.smallarea2 {
    width: 27%;
  }

  #container:has(#jatet-order) #zip-search {
    max-width: 100%;
    min-height: 44px;
    margin-top: 8px;
    padding: 8px 12px;
  }

  #container:has(#jatet-order) .button_area {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    padding: 16px 0 24px;
  }

  #container:has(#jatet-order) .button_area button,
  #container:has(#jatet-order) .button_area input {
    max-width: 100%;
    min-height: 44px;
    white-space: normal;
  }

  #container:has(#jatet-order) #confirm {
    margin: 20px 0;
    padding: 14px;
  }

  #container:has(#jatet-order) #confirm li {
    font-size: 1.4rem;
    text-align: left;
  }
}

/*-----活動予定表-----*/
#info-wrapper #container.schedule-container {
  width: min(1200px, calc(100% - 40px));
  min-height: 0;
  margin: 0 auto;
  padding: 40px 0 80px;
}
.schedule-month + .schedule-month {
  margin-top: 40px;
}
.schedule-month h3 {
  margin: 0;
  padding: 14px 20px;
  background: #750000;
  color: #fff;
  text-align: center;
  font-size: 2rem;
  font-weight: 500;
}
.schedule-month h3 span {
  margin-left: 16px;
  letter-spacing: .2em;
}
.schedule-table-scroll {
  overflow-x: auto;
}
.schedule-table-scroll:focus-visible {
  outline: 3px solid #005285;
  outline-offset: 3px;
}
.schedule-table {
  width: 100%;
  min-width: 720px;
  table-layout: fixed;
  border-collapse: collapse;
  background: #fff;
}
.schedule-table caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.schedule-col-day { width: 9%; }
.schedule-col-weekday { width: 5%; }
.schedule-col-time { width: 18%; }
.schedule-col-subject { width: 33%; }
.schedule-col-place { width: 20%; }
.schedule-col-remarks { width: 15%; }
.schedule-table th,
.schedule-table td {
  border: 1px solid #d2d2d2;
  padding: 14px 10px;
  text-align: center;
  vertical-align: middle;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.schedule-table thead th {
  background: #eee8dc;
  color: #310101;
  font-weight: 500;
}
.schedule-table tbody tr:nth-child(even) {
  background: #faf8f5;
}
.schedule-range {
  display: block;
}
.schedule-table .schedule-empty {
  padding: 32px 16px;
  color: #555;
}
@media screen and (max-width: 767px) {
  #info-wrapper #container.schedule-container {
    padding: 24px 0 40px;
  }
  .schedule-month + .schedule-month {
    margin-top: 28px;
  }
  .schedule-month h3 {
    padding: 12px;
    font-size: 1.7rem;
  }
  .schedule-table th,
  .schedule-table td {
    padding: 10px 8px;
    font-size: 1.4rem;
  }
}

/*-----判定プログラム-----*/
#container.program-container {
  width: min(1200px, calc(100% - 40px));
  min-height: 0;
  padding: 32px 16px 80px;
}
.program-section + .program-section {
  margin-top: 40px;
}
.program-section > h3 {
  margin: 0 0 10px 30px;
  font-size: 2rem;
}
.program-panel {
  padding: 15px;
  border: 1px solid #d2d2d2;
  background: #fff;
  box-shadow: 0 0 3px #000000b3;
}
.program-panel + .program-panel {
  margin-top: 20px;
}
.program-body {
  padding: 20px 30px;
  line-height: 1.9;
}
.program-body > p + p {
  margin-top: 16px;
}
.program-environment {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  margin-top: 24px;
  border: 1px solid #d2d2d2;
}
.program-environment dt,
.program-environment dd {
  padding: 14px 18px;
}
.program-environment dt {
  background: #eee8dc;
  font-weight: bold;
}
.program-environment small {
  font-size: 1.4rem;
}
.program-download-links .standard-sellbtn2 {
  width: min(440px, 100%);
  margin: 24px auto;
}
.program-download-links a {
  padding: 12px 16px;
}
.program-text-link {
  color: #005285;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.program-text-link:hover {
  color: #792428;
}
.program-container a:focus-visible {
  outline: 3px solid #005285;
  outline-offset: 4px;
}
.program-previous {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #d2d2d2;
}
.program-previous h4 {
  font-size: 1.6rem;
  margin-bottom: 8px;
}
.program-previous ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 32px;
}
.program-subheading {
  padding: 5px 20px;
  background: #000;
  color: #fff;
  font-size: 1.6rem;
  font-weight: normal;
}
.program-steps dt {
  margin-top: 20px;
  color: #4b0000;
  font-weight: bold;
}
.program-steps dd {
  margin-top: 6px;
}
.program-container code {
  overflow-wrap: anywhere;
  font-size: .95em;
}
.program-note {
  margin-top: 24px;
  padding: 20px;
  background: #eee8dc;
}
.program-note h5 {
  margin-bottom: 8px;
  font-size: 1.6rem;
}
.program-folder-examples {
  margin: 12px 0;
}
.program-notes {
  list-style: disc;
  padding-left: 1.4em;
}
.program-notes li + li {
  margin-top: 16px;
}
@media screen and (max-width: 767px) {
  #container.program-container {
    padding: 24px 0 40px;
  }
  .program-section + .program-section {
    margin-top: 28px;
  }
  .program-section > h3 {
    margin: 0 0 14px;
    font-size: 1.6rem;
    line-height: 1.5;
  }
  .program-panel {
    padding: 12px;
  }
  .program-body {
    padding: 16px 10px;
    font-size: 1.4rem;
  }
  .program-container .standard-title li {
    padding: 8px 10px;
    font-size: 1.4rem;
  }
  .program-environment {
    grid-template-columns: 1fr;
  }
  .program-environment dt,
  .program-environment dd,
  .program-note {
    padding: 12px;
  }
  .program-download-links a {
    font-size: 1.3rem;
  }
}

/* 判定プログラム：利用条件への同意とバージョン別ダウンロード */
.program-consent {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 24px 0 12px;
  padding: 16px;
  border: 1px solid #792428;
  cursor: pointer;
  font-weight: bold;
}
.program-consent input {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin-top: 5px;
  accent-color: #792428;
}
#program-files[hidden],
.program-consent-accepted { display: none; }
.program-body:has(#program-consent:checked) #program-files[hidden] { display: block; }
.program-body:has(#program-consent:checked) .program-consent-pending { display: none; }
.program-body:has(#program-consent:checked) .program-consent-accepted { display: inline; }
.program-version { margin: 24px 0; }
.program-file-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0;
}
.program-file-list a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  padding: 12px 16px;
  border: 1px solid #001a2b;
  border-radius: 4px;
  background: linear-gradient(to bottom, #00243b, #005285);
  color: #fff;
  line-height: 1.6;
}
.program-file-list a span { font-size: 1.2rem; }
.program-file-list a:hover { background: #00243b; }
@media screen and (max-width: 767px) {
  .program-file-list { grid-template-columns: 1fr; }
}
