@charset "UTF-8";
/*                芸能花伝舎20周年 特設ページ
======================================================= */
/* 20周年アニバーサリーゴールド */
/*                reset
======================================================= */
body,
h1,
h2,
h3,
h4,
h5,
table,
th,
td,
ul,
li,
ol,
dl,
dt,
dd,
form,
p,
figure {
  margin: 0;
  padding: 0;
  font-weight: normal;
  border: none;
  list-style-type: none;
}

* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

body {
  color: #1A1A1A;
  background-color: #FFFFFF;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", Meiryo, sans-serif;
  font-weight: normal;
  line-height: 1.8;
  font-size: 16px;
  -webkit-text-size-adjust: none;
}

img {
  display: block;
  vertical-align: bottom;
  max-width: 100%;
  height: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

a:link,
a:visited {
  color: #1A1A1A;
  text-decoration: none;
}

a {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-transition: 0.5s;
  transition: 0.5s;
}

@media only screen and (min-width: 1025px) {
  a:hover {
    opacity: 0.7;
  }
}
a:focus-visible {
  outline: 2px solid #054B96;
  outline-offset: 2px;
}

h1,
h2,
h3,
h4,
h5 {
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
}

/*                layout
======================================================= */
#wrapper {
  overflow: hidden;
  padding-top: 80px;
}

@media only screen and (max-width: 900px) {
  #wrapper {
    padding-top: 64px;
  }
}
.main_width {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 1206px;
}

@media only screen and (max-width: 1250px) {
  .main_width {
    padding: 0 30px;
  }
}
@media only screen and (max-width: 900px) {
  .main_width {
    padding: 0 20px;
  }
}
@media only screen and (max-width: 640px) {
  .main_width {
    padding: 0 16px;
  }
}
.cont_width {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 840px;
}

@media only screen and (min-width: 641px) {
  .sp_view {
    display: none;
  }
}
@media only screen and (max-width: 640px) {
  .sp_none {
    display: none;
  }
}
.skip_link {
  position: absolute;
  top: -100px;
  left: 0;
  z-index: 2000;
  background-color: #FFFFFF;
  padding: 0.5em 1em;
}

.skip_link:focus {
  top: 0;
}

/*                header
======================================================= */
#header {
  background-color: rgba(255, 255, 255, 0.9);
  border-bottom: 1px #DEDEDE solid;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}
#header #header_wrap {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 80px;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 0 36px 0 20px;
}
#header #header_wrap #header_logo a {
  display: block;
}
#header #header_wrap #header_logo img {
  width: 144px;
}
#header #header_wrap #header_link a {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
  font-weight: 600;
  font-size: 14px;
}
#header #header_wrap #header_link a:before {
  content: "";
  border-top: 1px solid #1A1A1A;
  border-left: 1px solid #1A1A1A;
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 0.6em;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

@media only screen and (max-width: 900px) {
  #header #header_wrap {
    height: 64px;
    padding: 0 16px;
  }
}
/*                kv
======================================================= */
#kv {
  padding: 90px 0 70px;
  position: relative;
  text-align: center;
  /* 祝祭感：タイトル背後にほのかなゴールドの光彩 */
  background: radial-gradient(ellipse 62% 42% at 50% 30%, rgba(201, 168, 92, 0.14), rgba(201, 168, 92, 0) 70%);
  /* あしらい：本サイト（かける）トップと同じ実演写真の散らし */
}
#kv .kv_head {
  isolation: isolate;
  position: relative;
}
#kv {
  /* ばらばらの方向（--x/--y）・順不同の遅延で、ふわっと浮かび上がる
     白フチ＋影で「飾られた写真」の額装感を出す */
}
#kv .kv_deco {
  background-color: #FFFFFF;
  border: 4px solid #FFFFFF;
  -webkit-box-shadow: 0 12px 32px rgba(26, 26, 26, 0.16);
          box-shadow: 0 12px 32px rgba(26, 26, 26, 0.16);
  opacity: 0;
  position: absolute;
  z-index: -1;
  -webkit-animation: kv_deco_in 2.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;
          animation: kv_deco_in 2.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
#kv #kv_deco01 {
  top: -3%;
  left: -0.5%;
  width: 19%;
  --r: -2.4deg;
  max-width: 260px;
  --x: -16px;
  --y: 20px;
  -webkit-animation-delay: 2.9s;
          animation-delay: 2.9s;
}
#kv #kv_deco02 {
  top: -7%;
  right: -2%;
  width: 22%;
  --r: 1.8deg;
  max-width: 300px;
  --x: 14px;
  --y: -16px;
  -webkit-animation-delay: 3.3s;
          animation-delay: 3.3s;
}
#kv #kv_deco03 {
  top: 47%;
  left: 1.2%;
  width: 10%;
  --r: -3.2deg;
  max-width: 150px;
  --x: -12px;
  --y: 14px;
  -webkit-animation-delay: 2.7s;
          animation-delay: 2.7s;
}
#kv #kv_deco04 {
  top: 45%;
  right: 0.3%;
  width: 12%;
  --r: 2.6deg;
  max-width: 180px;
  --x: 16px;
  --y: 12px;
  -webkit-animation-delay: 3.5s;
          animation-delay: 3.5s;
}
#kv #kv_deco05 {
  top: 21%;
  left: -1.2%;
  width: 12%;
  --r: 2.8deg;
  max-width: 190px;
  --x: 0px;
  --y: 18px;
  -webkit-animation-delay: 3.1s;
          animation-delay: 3.1s;
}
#kv #kv_deco06 {
  top: 13%;
  right: -1.2%;
  width: 9%;
  max-width: 128px;
  --x: 12px;
  --y: -12px;
  --r: -2.1deg;
  -webkit-animation-delay: 3.7s;
          animation-delay: 3.7s;
}
#kv #kv_deco07 {
  top: 69%;
  left: -2.5%;
  width: 13%;
  max-width: 176px;
  --x: -14px;
  --y: 16px;
  --r: 2.2deg;
  -webkit-animation-delay: 3.9s;
          animation-delay: 3.9s;
}
#kv {
  /* 演出：かけるロゴ → 英字 → 20th → タイトル → キャッチ → リード の順に出現 */
}
#kv .kv_logo {
  margin-bottom: 3em;
  opacity: 0;
  -webkit-animation: kv_logo_in 3.2s ease-in-out 0.2s forwards;
          animation: kv_logo_in 3.2s ease-in-out 0.2s forwards;
}
#kv .kv_logo img {
  margin: 0 auto;
  width: clamp(112px, 12vw, 152px);
}
#kv .kv_en {
  color: #8A6A1E;
  font-family: "Cormorant Infant", "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: clamp(14px, 1.6vw, 18px);
  letter-spacing: 0.35em;
  opacity: 0;
  -webkit-animation: kv_en_in 1.3s cubic-bezier(0.22, 1, 0.36, 1) 2.3s forwards;
          animation: kv_en_in 1.3s cubic-bezier(0.22, 1, 0.36, 1) 2.3s forwards;
  /* 左右に伸びる金の飾り線 */
}
#kv .kv_en:before, #kv .kv_en:after {
  content: "";
  background: -webkit-gradient(linear, left top, right top, from(rgba(176, 138, 46, 0)), to(#B08A2E));
  background: linear-gradient(to right, rgba(176, 138, 46, 0), #B08A2E);
  display: inline-block;
  width: 48px;
  height: 1px;
  margin: 0 1.4em;
  vertical-align: 0.35em;
}
#kv .kv_en:after {
  background: -webkit-gradient(linear, right top, left top, from(rgba(176, 138, 46, 0)), to(#B08A2E));
  background: linear-gradient(to left, rgba(176, 138, 46, 0), #B08A2E);
}
#kv .kv_num {
  font-family: "Cormorant Infant", "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: clamp(110px, 18vw, 220px);
  line-height: 1;
  margin: 0.05em 0 0.1em;
  opacity: 0;
  /* アニバーサリーゴールドのグラデーション文字＋ゆっくり流れる光沢 */
  background: linear-gradient(105deg, #8A6A1E 0%, #B08A2E 30%, #EBD9A8 50%, #B08A2E 70%, #8A6A1E 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  -webkit-animation: kv_num_in 1.5s cubic-bezier(0.16, 1, 0.3, 1) 2.6s forwards, kv_gold_shimmer 6s linear 4.6s infinite;
          animation: kv_num_in 1.5s cubic-bezier(0.16, 1, 0.3, 1) 2.6s forwards, kv_gold_shimmer 6s linear 4.6s infinite;
}
#kv .kv_num span {
  font-size: 38%;
  vertical-align: baseline;
  letter-spacing: 0.05em;
}
#kv .kv_title {
  font-weight: 700;
  font-size: clamp(28px, 4.5vw, 48px);
  letter-spacing: 0.18em;
  line-height: 1.4;
  opacity: 0;
  -webkit-animation: kv_title_in 1.1s cubic-bezier(0.22, 1, 0.36, 1) 3s forwards;
          animation: kv_title_in 1.1s cubic-bezier(0.22, 1, 0.36, 1) 3s forwards;
}
#kv .kv_catch {
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
  font-weight: 600;
  font-size: clamp(17px, 2.4vw, 24px);
  letter-spacing: 0.14em;
  line-height: 2.2;
  margin-top: 1.8em;
  opacity: 0;
  -webkit-animation: kv_fade_up 1.2s ease 3.4s forwards;
          animation: kv_fade_up 1.2s ease 3.4s forwards;
}
#kv .kv_lead {
  font-size: clamp(14px, 1.6vw, 16px);
  line-height: 2.2;
  margin: 2.5em auto 0;
  max-width: 680px;
  opacity: 0;
  -webkit-animation: kv_fade_up 1.2s ease 3.6s forwards;
          animation: kv_fade_up 1.2s ease 3.6s forwards;
}

@media only screen and (max-width: 900px) {
  #kv #kv_deco01 {
    top: -2%;
  }
  #kv #kv_deco02 {
    top: -5%;
  }
}
@media only screen and (max-width: 640px) {
  #kv {
    padding: 3.5em 0 3em;
  }
  #kv .kv_logo {
    margin-bottom: 2em;
  }
  #kv .kv_en:before,
  #kv .kv_en:after {
    width: 20px;
    margin: 0 0.8em;
  }
  #kv {
    /* SPは上部2枚のみ・小さめに */
  }
  #kv #kv_deco01 {
    top: -1.5em;
    left: -4px;
    width: 26%;
  }
  #kv #kv_deco02 {
    top: -2em;
    right: -8px;
    width: 28%;
  }
  #kv #kv_deco03,
  #kv #kv_deco04,
  #kv #kv_deco05,
  #kv #kv_deco06,
  #kv #kv_deco07 {
    display: none;
  }
}
@-webkit-keyframes kv_deco_in {
  from {
    opacity: 0;
    -webkit-transform: translate(var(--x, 0px), var(--y, 18px)) rotate(var(--r, 0deg)) scale(0.96);
            transform: translate(var(--x, 0px), var(--y, 18px)) rotate(var(--r, 0deg)) scale(0.96);
  }
  to {
    opacity: 1;
    -webkit-transform: translate(0, 0) rotate(var(--r, 0deg)) scale(1);
            transform: translate(0, 0) rotate(var(--r, 0deg)) scale(1);
  }
}
@keyframes kv_deco_in {
  from {
    opacity: 0;
    -webkit-transform: translate(var(--x, 0px), var(--y, 18px)) rotate(var(--r, 0deg)) scale(0.96);
            transform: translate(var(--x, 0px), var(--y, 18px)) rotate(var(--r, 0deg)) scale(0.96);
  }
  to {
    opacity: 1;
    -webkit-transform: translate(0, 0) rotate(var(--r, 0deg)) scale(1);
            transform: translate(0, 0) rotate(var(--r, 0deg)) scale(1);
  }
}
/* かけるロゴ：ふわっと浮かび上がる */
@-webkit-keyframes kv_logo_in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(var(--kv-logo-shift, 30vh)) scale(2.06);
            transform: translateY(var(--kv-logo-shift, 30vh)) scale(2.06);
    -webkit-filter: blur(12px);
            filter: blur(12px);
  }
  38% {
    opacity: 1;
    -webkit-transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
            transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
  53% {
    opacity: 1;
    -webkit-transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
            transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
  66% {
    opacity: 0;
    -webkit-transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
            transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
    -webkit-filter: blur(4px);
            filter: blur(4px);
  }
  66.01% {
    opacity: 0;
    -webkit-transform: translateY(0) scale(1);
            transform: translateY(0) scale(1);
    -webkit-filter: blur(8px);
            filter: blur(8px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0) scale(1);
            transform: translateY(0) scale(1);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}
@keyframes kv_logo_in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(var(--kv-logo-shift, 30vh)) scale(2.06);
            transform: translateY(var(--kv-logo-shift, 30vh)) scale(2.06);
    -webkit-filter: blur(12px);
            filter: blur(12px);
  }
  38% {
    opacity: 1;
    -webkit-transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
            transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
  53% {
    opacity: 1;
    -webkit-transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
            transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
  66% {
    opacity: 0;
    -webkit-transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
            transform: translateY(var(--kv-logo-shift, 30vh)) scale(2);
    -webkit-filter: blur(4px);
            filter: blur(4px);
  }
  66.01% {
    opacity: 0;
    -webkit-transform: translateY(0) scale(1);
            transform: translateY(0) scale(1);
    -webkit-filter: blur(8px);
            filter: blur(8px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0) scale(1);
            transform: translateY(0) scale(1);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}
/* 英字：字間が締まりながら現れる（トラッキングイン） */
@-webkit-keyframes kv_en_in {
  from {
    opacity: 0;
    letter-spacing: 0.6em;
  }
  to {
    opacity: 1;
    letter-spacing: 0.35em;
  }
}
@keyframes kv_en_in {
  from {
    opacity: 0;
    letter-spacing: 0.6em;
  }
  to {
    opacity: 1;
    letter-spacing: 0.35em;
  }
}
/* 20th：ぼかしからピントが合いつつ収束する */
@-webkit-keyframes kv_num_in {
  0% {
    opacity: 0;
    -webkit-transform: scale(1.18);
            transform: scale(1.18);
    -webkit-filter: blur(14px);
            filter: blur(14px);
  }
  55% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}
@keyframes kv_num_in {
  0% {
    opacity: 0;
    -webkit-transform: scale(1.18);
            transform: scale(1.18);
    -webkit-filter: blur(14px);
            filter: blur(14px);
  }
  55% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}
/* タイトル：下から立ち上がるマスクリビール */
@-webkit-keyframes kv_title_in {
  from {
    opacity: 0;
    clip-path: inset(100% 0 0 0);
    -webkit-transform: translateY(0.5em);
            transform: translateY(0.5em);
  }
  to {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes kv_title_in {
  from {
    opacity: 0;
    clip-path: inset(100% 0 0 0);
    -webkit-transform: translateY(0.5em);
            transform: translateY(0.5em);
  }
  to {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
/* キャッチ・リード：やわらかいフェードアップ */
@-webkit-keyframes kv_fade_up {
  from {
    opacity: 0;
    -webkit-transform: translateY(12px);
            transform: translateY(12px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes kv_fade_up {
  from {
    opacity: 0;
    -webkit-transform: translateY(12px);
            transform: translateY(12px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
/* 20th：金の光沢がゆっくり流れる */
@-webkit-keyframes kv_gold_shimmer {
  0% {
    background-position: 200% center;
  }
  100% {
    background-position: -200% center;
  }
}
@keyframes kv_gold_shimmer {
  0% {
    background-position: 200% center;
  }
  100% {
    background-position: -200% center;
  }
}
#kv_photo {
  margin-top: 60px;
}
#kv_photo .photo_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 32px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
#kv_photo .photo_wrap figure {
  border-top: 1px solid #1A1A1A;
  border-right: 1px solid #1A1A1A;
  padding: 14px 14px 0 0;
  position: relative;
  width: calc(50% - 16px);
  max-width: 560px;
}
#kv_photo .photo_wrap figure figcaption {
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
  font-size: 14px;
  letter-spacing: 0.1em;
  margin-top: 0.8em;
  text-align: left;
}

@media only screen and (max-width: 640px) {
  #kv_photo {
    margin-top: 2.5em;
  }
  #kv_photo .photo_wrap {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.5em;
  }
  #kv_photo .photo_wrap figure {
    width: 100%;
    max-width: none;
  }
}
/*                anchor navi
======================================================= */
#anchor_nav {
  border-top: 1px solid #DEDEDE;
  border-bottom: 1px solid #DEDEDE;
  margin-bottom: 90px;
}
#anchor_nav ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
#anchor_nav ul li a {
  display: block;
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.08em;
  padding: 1.2em 1.4em;
  position: relative;
}
#anchor_nav ul li a:after {
  content: "";
  border-right: 1px solid #1A1A1A;
  border-bottom: 1px solid #1A1A1A;
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-left: 0.6em;
  -webkit-transform: rotate(45deg) translateY(-3px);
          transform: rotate(45deg) translateY(-3px);
}

@media only screen and (max-width: 640px) {
  #anchor_nav {
    margin-bottom: 4em;
  }
  #anchor_nav ul li {
    width: 50%;
  }
  #anchor_nav ul li a {
    border-bottom: 1px solid #DEDEDE;
    font-size: 13px;
    padding: 1em 0.5em;
    text-align: center;
  }
  #anchor_nav ul li:nth-last-child(-n+2) a {
    border-bottom: none;
  }
}
/*                section common
======================================================= */
.sec {
  margin-bottom: 130px;
}

@media only screen and (max-width: 640px) {
  .sec {
    margin-bottom: 6em;
  }
}
.sec_title {
  margin-bottom: 70px;
  text-align: center;
}
.sec_title .en {
  color: #8A6A1E;
  display: block;
  font-family: "Cormorant Infant", "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: clamp(13px, 1.5vw, 16px);
  letter-spacing: 0.3em;
  margin-bottom: 0.6em;
}
.sec_title .ja {
  display: block;
  font-weight: 700;
  font-size: clamp(24px, 3.4vw, 36px);
  letter-spacing: 0.16em;
  line-height: 1.5;
}
.sec_title {
  /* あしらい：かける5色の飾り線 */
}
.sec_title:after {
  background: -webkit-gradient(linear, left top, right top, color-stop(0, #32A63B), color-stop(20%, #054B96), color-stop(40%, #F39318), color-stop(60%, #E3261F), color-stop(80%, #9966CC));
  background: linear-gradient(to right, #32A63B 0 20%, #054B96 20% 40%, #F39318 40% 60%, #E3261F 60% 80%, #9966CC 80% 100%);
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  margin: 1.2em auto 0;
}

@media only screen and (max-width: 640px) {
  .sec_title {
    margin-bottom: 2.8em;
  }
}
.sec_lead {
  font-size: 16px;
  line-height: 2.2;
  margin: -40px auto 60px;
  max-width: 680px;
  text-align: center;
}

@media only screen and (max-width: 640px) {
  .sec_lead {
    margin: -1.5em auto 2.5em;
    text-align: left;
  }
}
.dummy_note {
  color: #767676;
  font-size: 12px;
  margin-top: 1em;
}

/*                fade slider（KV・触れる 共通）
======================================================= */
.fade_slider {
  position: relative;
}
.fade_slider .slides {
  position: relative;
}
.fade_slider .slides > li {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  -webkit-transition: opacity 1s ease;
  transition: opacity 1s ease;
}
.fade_slider .slides > li:first-child {
  position: relative;
  opacity: 1;
}
.fade_slider .slides > li.current {
  opacity: 1;
}
.fade_slider .slides.js_ready > li:first-child:not(.current) {
  opacity: 0;
}
.fade_slider .dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.5em;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0.8em 0 0;
  padding: 0;
  list-style-type: none;
}
.fade_slider .dots button {
  background: none;
  border: 1px #1A1A1A solid;
  border-radius: 10px;
  cursor: pointer;
  display: block;
  overflow: hidden;
  padding: 0;
  width: 10px;
  height: 10px;
  text-indent: -99999px;
}
.fade_slider .dots button:focus-visible {
  outline: 2px solid #054B96;
  outline-offset: 2px;
}
.fade_slider .dots li.current button {
  background-color: #B08A2E;
  border-color: #B08A2E;
}

/*                greeting
======================================================= */
#greeting .greeting_set {
  border-top: 1px solid #1A1A1A;
  border-right: 1px solid #1A1A1A;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 48px;
  padding: 48px 48px 48px 0;
}
#greeting .greeting_set + .greeting_set {
  margin-top: 70px;
}
#greeting .greeting_set .photo {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 200px;
}
#greeting .greeting_set .photo figcaption {
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
  font-size: 13px;
  line-height: 1.7;
  margin-top: 0.8em;
}
#greeting .greeting_set .text {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
#greeting .greeting_set .text .set_title {
  font-weight: 700;
  font-size: clamp(20px, 2.4vw, 26px);
  letter-spacing: 0.12em;
  line-height: 1.6;
  margin-bottom: 0.4em;
}
#greeting .greeting_set .text .name {
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
  font-size: 15px;
  margin-bottom: 1.8em;
}
#greeting .greeting_set .text .name strong {
  font-size: 19px;
  font-weight: 700;
  margin-left: 0.5em;
}
#greeting .greeting_set .text p {
  line-height: 2.1;
}
#greeting .greeting_set .text p + p {
  margin-top: 1em;
}

@media only screen and (max-width: 900px) {
  #greeting .greeting_set {
    gap: 28px;
    padding: 32px 32px 32px 0;
  }
}
@media only screen and (max-width: 640px) {
  #greeting .greeting_set {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.5em;
    padding: 1.5em 1em 1.5em 0;
  }
  #greeting .greeting_set + .greeting_set {
    margin-top: 3em;
  }
  #greeting .greeting_set .photo {
    margin: 0 auto;
    width: 160px;
  }
  #greeting .greeting_set .text .set_title {
    text-align: center;
  }
  #greeting .greeting_set .text .name {
    text-align: center;
  }
}
/*                about（芸能花伝舎とは）
======================================================= */
#about .about_intro {
  margin: 0 auto 100px;
  max-width: 840px;
}
#about .about_intro .text h3 {
  font-weight: 700;
  font-size: clamp(20px, 2.6vw, 28px);
  letter-spacing: 0.12em;
  line-height: 1.8;
  margin-bottom: 1em;
}
#about .about_intro .text p {
  line-height: 2.2;
}
#about .about_intro .text p + p {
  margin-top: 1.2em;
}
#about .about_intro .text .naming {
  background-color: #F7F7F7;
  margin-top: 2em;
  padding: 1.5em 1.8em;
}
#about .about_intro .text .naming h4 {
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.1em;
  margin-bottom: 0.6em;
}
#about .about_intro .text .naming p {
  font-size: 14px;
  line-height: 2;
}

@media only screen and (max-width: 900px) {
  #about .about_intro {
    margin-bottom: 5em;
  }
}
/*  history（簡易年表） */
#history {
  border-top: 1px solid #1A1A1A;
  border-right: 1px solid #1A1A1A;
  padding: 56px 56px 56px 0;
}
#history h3 {
  font-weight: 700;
  font-size: clamp(20px, 2.6vw, 28px);
  letter-spacing: 0.14em;
  margin-bottom: 1.6em;
}
#history h3 + .dummy_note {
  margin: -2.5em 0 1.5em;
}
#history {
  /* 202607 Update: 年号列は position:absolute で固定して常にliの左上に置き、
     flexの行揃いから完全に外す。残りの内容（.event / .event_multi / .photo /
     .photo_multi_flex）はliのpaddingで確保した幅の中でflexさせる。
     年号がflexアイテムでなくなったことで、折り返しが起きても
     すべての行が同じ左端（liのpadding-left分）から始まるようになり、
     要素を追加しても左端がズレる心配がない。
     ※1947年のように「文章＋写真1枚」だけのシンプルな行は、.eventが
     flex:1で伸び、.photoは幅固定のまま右側に並ぶ（従来通りの見た目）。 */
}
#history .history_list li {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 36px;
  padding: 1.2em 0 1.2em 146px;
}
#history .history_list li + li {
  border-top: 1px solid #DEDEDE;
}
#history .history_list li .year {
  position: absolute;
  top: 1.2em;
  left: 0;
  color: #8A6A1E;
  font-family: "Cormorant Infant", "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.5;
  width: 110px;
}
#history .history_list li .event {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  line-height: 2;
}
#history .history_list li .event strong {
  font-weight: 700;
}
#history .history_list li .event small {
  color: #555555;
  display: block;
  font-size: 13px;
}
#history .history_list li .photo {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 150px;
}

@media only screen and (max-width: 640px) {
  #history {
    padding: 2em 1em 2em 0;
  }
  #history h3 + .dummy_note {
    margin: -1em 0 1em;
  }
  #history .history_list li {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0.2em;
    padding-left: 0;
  }
  #history .history_list li .year {
    position: static;
    font-size: 20px;
    width: auto;
  }
  #history .history_list li .photo {
    margin-top: 0.6em;
    width: 100%;
    max-width: 280px;
  }
}
/*                omoi（始める・学ぶ・集う・創る・触れる）
======================================================= */
#omoi .theme_block {
  border-top: 1px solid #1A1A1A;
  border-right: 1px solid #1A1A1A;
  padding: 56px 56px 64px 0;
}
#omoi .theme_block + .theme_block {
  margin-top: 80px;
}
#omoi .theme_block .theme_title {
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.8em;
  font-weight: 700;
  margin-bottom: 0.8em;
}
#omoi .theme_block .theme_title .label {
  font-size: clamp(22px, 3vw, 30px);
  letter-spacing: 0.14em;
}
#omoi .theme_block .theme_title .label:before {
  content: "▶";
  font-size: 70%;
  margin-right: 0.5em;
  vertical-align: 0.15em;
}
#omoi .theme_block .theme_title .sub {
  color: #555555;
  font-size: clamp(14px, 1.7vw, 16px);
  letter-spacing: 0.1em;
}
#omoi .theme_block {
  /* あしらい：▶の色＋テーマ色のマーカー風下地 */
}
#omoi .theme_block.theme_green .theme_title .label:before {
  color: #32A63B;
}
#omoi .theme_block.theme_green .theme_title .label {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(72%, transparent), color-stop(72%, rgba(50, 166, 59, 0.18)));
  background: linear-gradient(transparent 72%, rgba(50, 166, 59, 0.18) 72%);
}
#omoi .theme_block.theme_blue .theme_title .label:before {
  color: #054B96;
}
#omoi .theme_block.theme_blue .theme_title .label {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(72%, transparent), color-stop(72%, rgba(5, 75, 150, 0.15)));
  background: linear-gradient(transparent 72%, rgba(5, 75, 150, 0.15) 72%);
}
#omoi .theme_block.theme_orange .theme_title .label:before {
  color: #F39318;
}
#omoi .theme_block.theme_orange .theme_title .label {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(72%, transparent), color-stop(72%, rgba(243, 147, 24, 0.2)));
  background: linear-gradient(transparent 72%, rgba(243, 147, 24, 0.2) 72%);
}
#omoi .theme_block.theme_red .theme_title .label:before {
  color: #E3261F;
}
#omoi .theme_block.theme_red .theme_title .label {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(72%, transparent), color-stop(72%, rgba(227, 38, 31, 0.13)));
  background: linear-gradient(transparent 72%, rgba(227, 38, 31, 0.13) 72%);
}
#omoi .theme_block.theme_purple .theme_title .label:before {
  color: #9966CC;
}
#omoi .theme_block.theme_purple .theme_title .label {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(72%, transparent), color-stop(72%, rgba(153, 102, 204, 0.16)));
  background: linear-gradient(transparent 72%, rgba(153, 102, 204, 0.16) 72%);
}
#omoi .theme_block.theme_teal .theme_title .label:before {
  color: #0097A7;
}
#omoi .theme_block.theme_teal .theme_title .label {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(72%, transparent), color-stop(72%, rgba(0, 151, 167, 0.16)));
  background: linear-gradient(transparent 72%, rgba(0, 151, 167, 0.16) 72%);
}
#omoi .theme_block .theme_lead {
  line-height: 2.2;
  margin-bottom: 2.5em;
  max-width: 760px;
}
#omoi .theme_block .message_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 40px;
}
#omoi .theme_block .message_list .message_set {
  background-color: #F7F7F7;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.2em;
  padding: 2em;
  width: calc(50% - 20px);
}
#omoi .theme_block .message_list .message_set .person {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.2em;
}
#omoi .theme_block .message_list .message_set .person .photo {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 88px;
}
#omoi .theme_block .message_list .message_set .person .name {
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
  font-size: 13px;
  line-height: 1.7;
}
#omoi .theme_block .message_list .message_set .person .name strong {
  display: block;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
#omoi .theme_block .message_list .message_set .comment {
  font-size: 14px;
  line-height: 2;
}
#omoi .use_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 16px;
}
#omoi .use_list li {
  border: 1px solid #DEDEDE;
  font-size: 14px;
  line-height: 1.7;
  width: calc(33.333% - 11px);
}
#omoi .use_list li.no_modal {
  padding: 1em 1.4em;
}
#omoi .use_list li .genre {
  color: #E3261F;
  display: block;
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.15em;
  margin-bottom: 0.3em;
}
#omoi .use_list li strong {
  font-weight: 700;
}
#omoi .use_list li small {
  color: #555555;
  display: block;
  font-size: 12px;
}
#omoi .use_list li .use_btn {
  background: none;
  border: none;
  color: #1A1A1A;
  cursor: pointer;
  display: block;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", Meiryo, sans-serif;
  font-size: 14px;
  line-height: 1.7;
  padding: 1em 2.4em 1em 1.4em;
  position: relative;
  text-align: left;
  width: 100%;
  height: 100%;
  -webkit-transition: 0.5s;
  transition: 0.5s;
}
#omoi .use_list li .use_btn:after {
  border: 1px solid #999999;
  border-radius: 50%;
  color: #999999;
  content: "＋";
  font-size: 11px;
  line-height: 1;
  padding: 0.2em;
  position: absolute;
  top: 1em;
  right: 0.9em;
}
#omoi .use_list li .use_btn:focus-visible {
  outline: 2px solid #054B96;
  outline-offset: 2px;
}
@media only screen and (min-width: 1025px) {
  #omoi .use_list li .use_btn:hover {
    background-color: #F7F7F7;
  }
}
#omoi .tenant_area h4 {
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.1em;
  margin-bottom: 1em;
}
#omoi .tenant_area .tenant_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1px;
}
#omoi .tenant_area .tenant_list li {
  border: 1px solid #DEDEDE;
  font-size: 14px;
  line-height: 1.7;
  margin: -1px 0 0 -1px;
  padding: 1em 1.4em;
  width: 50%;
}
#omoi .tenant_area .tenant_list li strong {
  font-weight: 700;
}
#omoi .tenant_area .tenant_list li small {
  color: #555555;
  display: block;
  font-size: 12px;
}
#omoi .touch_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 32px;
}
#omoi .touch_list .touch_set {
  width: calc(50% - 16px);
}
#omoi .touch_list .touch_set h4 {
  border-bottom: 1px solid #1A1A1A;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.1em;
  margin-bottom: 0.8em;
  padding-bottom: 0.5em;
}
#omoi .touch_list .touch_set p {
  font-size: 14px;
  line-height: 2;
}
#omoi .touch_list .touch_set .img_wrap {
  margin-bottom: 1em;
}

@media only screen and (max-width: 900px) {
  #omoi .theme_block {
    padding: 36px 28px 40px 0;
  }
  #omoi .theme_block .message_list .message_set {
    width: 100%;
  }
}
@media only screen and (max-width: 640px) {
  #omoi .theme_block {
    padding: 1.8em 1em 2em 0;
  }
  #omoi .theme_block + .theme_block {
    margin-top: 3.5em;
  }
  #omoi .theme_block .message_list {
    gap: 1.2em;
  }
  #omoi .theme_block .message_list .message_set {
    padding: 1.4em;
  }
  #omoi .use_list li {
    width: 100%;
  }
  #omoi .touch_list .touch_set {
    width: 100%;
  }
  #omoi .tenant_area .tenant_list li {
    width: 100%;
  }
}
/*                data
======================================================= */
#data {
  background-color: #F7F7F7;
  padding: 100px 0;
}
#data .spec_box {
  background-color: #FFFFFF;
  border-top: 1px solid #1A1A1A;
  border-right: 1px solid #1A1A1A;
  margin-bottom: 64px;
  padding: 2.5em 3em;
}
#data .spec_box h3 {
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.12em;
  margin-bottom: 1em;
}
#data .spec_box dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
#data .spec_box dl dt {
  border-bottom: 1px solid #DEDEDE;
  font-weight: 700;
  padding: 0.8em 0;
  width: 11em;
}
#data .spec_box dl dd {
  border-bottom: 1px solid #DEDEDE;
  padding: 0.8em 0;
  width: calc(100% - 11em);
}
#data .chart_grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 40px;
}
#data .chart_grid .chart_set {
  background-color: #FFFFFF;
  padding: 2em;
  width: calc(50% - 20px);
}
#data .chart_grid .chart_set h3 {
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.1em;
  margin-bottom: 1.2em;
  text-align: center;
}
#data .chart_grid .chart_set .chart_wrap {
  position: relative;
  height: 300px;
}
#data .chart_grid .chart_set .chart_note {
  color: #555555;
  font-size: 12px;
  margin-top: 1em;
}
#data .chart_grid .chart_set .area_rank table {
  border-collapse: collapse;
  width: 100%;
}
#data .chart_grid .chart_set .area_rank table th,
#data .chart_grid .chart_set .area_rank table td {
  border: 1px solid #DEDEDE;
  font-size: 14px;
  line-height: 1.7;
  padding: 0.7em 1em;
  text-align: left;
}
#data .chart_grid .chart_set .area_rank table thead th {
  background-color: #F7F7F7;
  font-weight: 700;
  text-align: center;
}
#data .chart_grid .chart_set .area_rank table td.num {
  text-align: right;
  width: 6em;
}
#data .area_table {
  background-color: #FFFFFF;
  margin-top: 40px;
  padding: 2em;
}
#data .area_table h3 {
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.1em;
  margin-bottom: 1.2em;
  text-align: center;
}
#data .area_table .chart_wrap {
  position: relative;
  height: 320px;
}
#data .area_table table {
  border-collapse: collapse;
  width: 100%;
}
#data .area_table table th,
#data .area_table table td {
  border: 1px solid #DEDEDE;
  font-size: 14px;
  line-height: 1.7;
  padding: 0.8em 1em;
  text-align: left;
}
#data .area_table table thead th {
  background-color: #F7F7F7;
  font-weight: 700;
  text-align: center;
}
#data .area_table table td.num {
  text-align: right;
  width: 8em;
}

@media only screen and (max-width: 900px) {
  #data .chart_grid .chart_set {
    width: 100%;
  }
}
@media only screen and (max-width: 640px) {
  #data {
    padding: 4em 0;
  }
  #data .spec_box {
    padding: 1.5em 1.2em;
  }
  #data .spec_box dl dt {
    width: 100%;
    border-bottom: none;
    padding-bottom: 0;
  }
  #data .spec_box dl dd {
    width: 100%;
    padding-top: 0.3em;
  }
  #data .chart_grid .chart_set .chart_wrap,
  #data .area_table .chart_wrap {
    height: 240px;
  }
}
/*                slick core（構造用・テーマCSSは使用しない）
======================================================= */
.slick-slider {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: block;
  position: relative;
  -ms-touch-action: pan-y;
      touch-action: pan-y;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
   -ms-user-select: none;
       user-select: none;
}

.slick-list {
  display: block;
  margin: 0;
  overflow: hidden;
  padding: 0;
  position: relative;
}
.slick-list:focus {
  outline: none;
}

.slick-track {
  display: block;
  left: 0;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  top: 0;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}
.slick-slide img {
  display: block;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-arrow.slick-hidden {
  display: none;
}

/*                photo（写真でみる花伝舎）
======================================================= */
#photo .photo_slider {
  margin: 0 auto;
  max-width: 900px;
  position: relative;
}
#photo .photo_slider .item {
  padding: 0 12px;
}
#photo .photo_slider .item .set_wrap {
  position: relative;
}
#photo .photo_slider .item .set_wrap .info {
  background-color: #FFFFFF;
  border-top: 1px solid #1A1A1A;
  border-right: 1px solid #1A1A1A;
  padding: 1em 1.5em 0 1px;
  position: relative;
  margin-top: -2.5em;
  width: calc(100% - 40px);
}
#photo .photo_slider .item .set_wrap .info .year {
  color: #8A6A1E;
  font-family: "Cormorant Infant", "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 20px;
}
#photo .photo_slider .item .set_wrap .info p {
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
  font-size: 15px;
  line-height: 1.8;
}
#photo .photo_slider .slick-arrow {
  background: none;
  border: none;
  cursor: pointer;
  padding: 16px;
  position: absolute;
  top: 38%;
  z-index: 100;
}
#photo .photo_slider .slick-arrow span {
  border-top: 1px solid #1A1A1A;
  display: block;
  width: 18px;
  height: 18px;
}
#photo .photo_slider .slick-arrow.prev {
  left: 0;
  -webkit-transform: translate(-100%, -50%);
          transform: translate(-100%, -50%);
}
#photo .photo_slider .slick-arrow.prev span {
  border-left: 1px solid #1A1A1A;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
#photo .photo_slider .slick-arrow.next {
  right: 0;
  -webkit-transform: translate(100%, -50%);
          transform: translate(100%, -50%);
}
#photo .photo_slider .slick-arrow.next span {
  border-right: 1px solid #1A1A1A;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
#photo .photo_slider .slick-dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 2.5em;
}
#photo .photo_slider .slick-dots li + li {
  margin-left: 0.5em;
}
#photo .photo_slider .slick-dots li button {
  background: none;
  border: 1px #1A1A1A solid;
  border-radius: 10px;
  cursor: pointer;
  overflow: hidden;
  padding: 0;
  width: 10px;
  height: 10px;
  text-indent: -99999px;
}
#photo .photo_slider .slick-dots li.slick-active button {
  background-color: #B08A2E;
  border-color: #B08A2E;
}

@media only screen and (max-width: 1100px) {
  #photo .photo_slider {
    padding: 0 48px;
  }
  #photo .photo_slider .slick-arrow.prev {
    left: 48px;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
  #photo .photo_slider .slick-arrow.next {
    right: 48px;
    -webkit-transform: translate(50%, -50%);
            transform: translate(50%, -50%);
  }
}
@media only screen and (max-width: 640px) {
  #photo .photo_slider {
    padding: 0 32px;
  }
  #photo .photo_slider .item .set_wrap .info {
    padding: 0.8em 1em 0 1px;
  }
  #photo .photo_slider .item .set_wrap .info p {
    font-size: 13px;
  }
}
/*                last（さいごに）
======================================================= */
#last .last_text {
  line-height: 2.4;
  margin: 0 auto;
  max-width: 680px;
  text-align: center;
}
#last .last_text p + p {
  margin-top: 1.5em;
}
#last {
  /* あしらい：本サイト「かける」への導線 */
}
#last .kakeru_link {
  margin-top: 70px;
  text-align: center;
}
#last .kakeru_link .logo a {
  display: inline-block;
}
#last .kakeru_link .logo img {
  display: inline-block;
  width: 200px;
}
#last .kakeru_link .btn {
  margin-top: 1.5em;
}
#last .kakeru_link .btn a {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #054B96;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.1em;
}
#last .kakeru_link .btn a:after {
  content: "";
  border-top: 1px solid #054B96;
  border-right: 1px solid #054B96;
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-left: 0.8em;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

@media only screen and (max-width: 640px) {
  #last .last_text {
    text-align: left;
  }
  #last .kakeru_link {
    margin-top: 3.5em;
  }
  #last .kakeru_link .logo img {
    width: 160px;
  }
}
/*                use modal（創る・生み出す 団体紹介）
======================================================= */
body.modal_open {
  overflow: hidden;
}

#use_modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1500;
}
#use_modal[hidden] {
  display: none;
}
#use_modal .modal_overlay {
  background-color: rgba(0, 0, 0, 0.55);
  cursor: pointer;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#use_modal .modal_box {
  background-color: #FFFFFF;
  border-top: 1px solid #1A1A1A;
  border-right: 1px solid #1A1A1A;
  left: 50%;
  max-width: 560px;
  width: calc(100% - 32px);
  max-height: calc(100% - 48px);
  overflow-y: auto;
  padding: 3em 2.5em 2.5em;
  position: absolute;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
#use_modal .modal_close {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  position: absolute;
  top: 8px;
  right: 8px;
  width: 44px;
  height: 44px;
}
#use_modal .modal_close span {
  background-color: #1A1A1A;
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 1px;
}
#use_modal .modal_close span:first-child {
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}
#use_modal .modal_close span:last-child {
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}
#use_modal .modal_close:focus-visible {
  outline: 2px solid #054B96;
  outline-offset: 2px;
}
#use_modal .modal_cont .person {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.2em;
  margin-bottom: 1em;
}
#use_modal .modal_cont .person .photo {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 88px;
}
#use_modal .modal_cont .person .name {
  font-family: "Zen Old Mincho", "Cormorant Infant", serif;
  font-size: 13px;
  line-height: 1.7;
}
#use_modal .modal_cont .person .name strong {
  display: block;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
#use_modal .modal_cont .person .name .modal_genre {
  color: #E3261F;
  display: block;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.15em;
}
#use_modal .modal_cont .modal_use {
  color: #555555;
  font-size: 13px;
  margin-bottom: 1em;
}
#use_modal .modal_cont .comment {
  font-size: 14px;
  line-height: 2;
}

@media only screen and (max-width: 640px) {
  #use_modal .modal_box {
    padding: 3em 1.4em 1.5em;
  }
}
/*                footer
======================================================= */
#footer {
  border-top: 1px solid #DEDEDE;
}
#footer #footer_wrap {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.5em;
  padding: 56px 0 24px;
}
#footer #footer_wrap #footer_logo img {
  width: 144px;
}
#footer #footer_wrap #footer_navi ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5em 2em;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
#footer #footer_wrap #footer_navi ul li {
  font-size: 14px;
}
#footer #footer_copy {
  padding: 1.5em 0 2em;
}
#footer #footer_copy .copy {
  font-family: "Cormorant Infant", "Zen Old Mincho", serif;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-align: center;
}

#pagetop {
  background-color: #FFFFFF;
  border: 1px solid #1A1A1A;
  bottom: 24px;
  cursor: pointer;
  opacity: 0;
  padding: 0;
  position: fixed;
  right: 24px;
  visibility: hidden;
  width: 48px;
  height: 48px;
  -webkit-transition: 0.5s;
  transition: 0.5s;
  z-index: 900;
}
#pagetop.view {
  opacity: 1;
  visibility: visible;
}
#pagetop span {
  border-top: 1px solid #1A1A1A;
  border-left: 1px solid #1A1A1A;
  display: block;
  margin: 11px auto 0;
  width: 12px;
  height: 12px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

/*                animation
======================================================= */
.fadein {
  opacity: 0;
  -webkit-transform: translateY(24px);
          transform: translateY(24px);
  -webkit-transition: opacity 1s ease, -webkit-transform 1s ease;
  transition: opacity 1s ease, -webkit-transform 1s ease;
  transition: opacity 1s ease, transform 1s ease;
  transition: opacity 1s ease, transform 1s ease, -webkit-transform 1s ease;
}
.fadein.view {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* ※prefers-reduced-motion による演出停止は、OS設定でアニメーションが
   一律無効になる事故が多いため意図的に行わない（クライアント要望） */
/*                form（スマホ16px固定の保険）
======================================================= */
@media only screen and (max-width: 640px) {
  input,
  select,
  textarea,
  button {
    font-size: 16px;
  }
}
/*                print（PCビュー基準・セクションごとに改ページ）
======================================================= */
@media print {
  @page {
    size: A4 portrait;
    margin: 12mm 10mm;
  }
  /* PCレイアウト（1206px幅）をA4幅に収める */
  html {
    zoom: 0.62;
    scroll-behavior: auto;
  }
  body {
    background-color: #FFFFFF;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  /* 印刷時不要なUI */
  .skip_link,
  #header,
  #anchor_nav,
  #footer,
  #pagetop,
  #use_modal,
  #kv .kv_deco,
  .fade_slider .dots {
    display: none !important;
  }
  /* フェードスライダーは1枚目のみ表示 */
  .fade_slider .slides > li {
    opacity: 0 !important;
  }
  .fade_slider .slides > li:first-child {
    opacity: 1 !important;
  }
  #wrapper {
    overflow: visible;
    padding-top: 0;
  }
  /* フェードイン演出を強制表示（未発火でも白紙にしない） */
  .fadein,
  #kv .kv_logo,
  #kv .kv_en,
  #kv .kv_num,
  #kv .kv_title,
  #kv .kv_catch,
  #kv .kv_lead {
    opacity: 1 !important;
    -webkit-transform: none !important;
            transform: none !important;
    -webkit-transition: none !important;
    transition: none !important;
    -webkit-animation: none !important;
            animation: none !important;
  }
  /* グラデーション文字は印刷で欠けるため単色に戻す */
  #kv .kv_num {
    background: none !important;
    color: #8A6A1E !important;
    -webkit-text-fill-color: #8A6A1E !important;
  }
  /* 各セクションの先頭で改ページ */
  .sec {
    -webkit-column-break-before: page;
       -moz-column-break-before: page;
            break-before: page;
    page-break-before: always;
    margin-bottom: 0;
    padding-bottom: 24px;
  }
  #kv {
    padding: 24px 0 0;
  }
  .sec_title {
    -webkit-column-break-after: avoid;
       -moz-column-break-after: avoid;
            break-after: avoid;
    page-break-after: avoid;
  }
  /* ブロック単位の分断禁止 */
  #kv_photo figure,
  .greeting_set,
  .about_intro,
  .theme_block,
  .message_set,
  .use_list li,
  .touch_set,
  .spec_box,
  .chart_set,
  .area_table,
  #history .history_list li,
  .tenant_list li {
    -webkit-column-break-inside: avoid;
       -moz-column-break-inside: avoid;
            break-inside: avoid;
    page-break-inside: avoid;
  }
  /* データ：全面グレー背景をやめ、カードは罫線で区切る */
  #data {
    background-color: transparent;
    padding: 0 0 24px;
  }
  #data .spec_box,
  #data .chart_set,
  #data .area_table {
    border: 1px solid #DEDEDE;
  }
  #data .spec_box {
    border-top: 1px solid #1A1A1A;
    border-right: 1px solid #1A1A1A;
  }
  /* 写真スライダー：全スライドを縦に展開 */
  #photo .photo_slider {
    padding: 0;
  }
  #photo .photo_slider .slick-list {
    height: auto !important;
    overflow: visible;
  }
  #photo .photo_slider .slick-track {
    -webkit-transform: none !important;
            transform: none !important;
    width: auto !important;
  }
  #photo .photo_slider .slick-slide {
    display: block !important;
    float: none !important;
    width: auto !important;
    margin-bottom: 2.5em;
    -webkit-column-break-inside: avoid;
       -moz-column-break-inside: avoid;
            break-inside: avoid;
    page-break-inside: avoid;
  }
  #photo .photo_slider .slick-cloned,
  #photo .photo_slider .slick-arrow,
  #photo .photo_slider .slick-dots {
    display: none !important;
  }
  /* リンクの下線等は不要・色はそのまま */
  a {
    text-decoration: none;
  }
}
/* ===== 20th 0709 原稿反映で追加（SCSS/CSS 同期・フラットセレクタ） ===== */
.kadensha_20th #about .about_intro .purpose {
  margin-top: clamp(24px, 4vw, 36px);
}

.kadensha_20th #about .about_intro .purpose h4 {
  font-size: clamp(16px, 2.6vw, 20px);
  margin-bottom: 10px;
  color: #32A63B;
  padding-left: 14px;
  border-left: 4px solid #32A63B;
}

.kadensha_20th #about .about_intro .purpose p {
  margin-bottom: 1em;
}

/* 202607 Fix: このブロックはもともと#about直下の旧レイアウト用だったが、
   #historyが#aboutの中に入れ子になっているため、.photo_multiに対して
   display:flex／padding-left:146px／width:100%／max-width:noneが
   意図せず効いてしまい、#history側の写真がズレたり大きくなりすぎたり
   する原因になっていた。画像サイズ指定（240px）だけ残し、
   レイアウトを壊す指定は削除する。 */
.kadensha_20th #about .history_list .photo_multi img {
  width: 240px;
  height: auto;
  border-radius: 6px;
}

.kadensha_20th #about .history_list .photo_multi figcaption {
  width: 100%;
}

.kadensha_20th #about .history_list .photo figcaption {
  margin-top: 8px;
  font-size: clamp(11px, 1.7vw, 13px);
  color: #555;
}

.kadensha_20th #omoi .act_photo {
  grid-column: 1/-1;
  margin: 12px 0 0;
}

.kadensha_20th #omoi .act_photo img {
  width: 100%;
  height: auto;
  border-radius: 12px;
}

.kadensha_20th #omoi .act_photo figcaption {
  margin-top: 8px;
  font-size: clamp(12px, 1.8vw, 13px);
  color: #555;
}

.kadensha_20th #omoi .message_set.no_face .comment {
  grid-column: 1/-1;
}

.kadensha_20th #omoi .message_set .credit {
  grid-column: 2;
  font-size: clamp(11px, 1.7vw, 12px);
  color: #777;
  margin-top: 6px;
}

.kadensha_20th #data .chart_caution {
  display: block;
  font-size: clamp(11px, 1.8vw, 13px);
  color: #777;
  margin-top: 8px;
}

.kadensha_20th #data .area_intro {
  margin-bottom: 12px;
  line-height: 1.9;
}

.kadensha_20th #kv .kv_note {
  display: block;
  margin-top: 12px;
  font-size: 12px;
  color: #555;
  text-align: center;
}

@media (max-width: 640px) {
  .kadensha_20th #omoi .message_set .credit {
    grid-column: 1/-1;
  }
  .kadensha_20th #about .history_list .photo_multi img {
    width: calc(50% - 6px);
  }
}
.kadensha_20th #kv .kv_title .kv_year {
  display: inline-block;
  margin-top: 4px;
  font-size: 0.6em;
  font-family: "Cormorant Infant", serif;
  font-weight: 600;
  letter-spacing: 0.12em;
}

.kadensha_20th #kv .kv_title {
  line-height: 1.2;
}

.kadensha_20th #kv .kv_title .kv_year {
  margin-top: 0;
}

/* ===== KV 1画面フィット（デスクトップ圧縮） ===== */
@media (min-width: 900px) {
  .kadensha_20th #kv {
    padding-top: 24px;
    padding-bottom: 56px;
  }
  .kadensha_20th #kv .kv_head {
    margin-bottom: 32px;
  }
  .kadensha_20th #kv .kv_logo {
    width: clamp(120px, 12vw, 150px);
    margin: 0 auto 24px;
  }
  .kadensha_20th #kv .kv_en {
    margin-bottom: 2px;
  }
  .kadensha_20th #kv .kv_num {
    font-size: clamp(88px, 9.5vw, 132px);
  }
  .kadensha_20th #kv .kv_title {
    margin-bottom: 8px;
  }
  .kadensha_20th #kv .kv_catch {
    margin-bottom: 14px;
  }
}
/* ===== main_area 余白調整（20thページ限定） ===== */
.kadensha_20th #main_area {
  padding: 30px 0 80px;
}

/* ===== 創る・生み出す：ジャンル別グループ ===== */
.kadensha_20th #omoi .message_list.has_genre {
  display: block;
}

.kadensha_20th #omoi .message_list.has_genre .genre_group {
  margin-top: 48px;
}

.kadensha_20th #omoi .message_list.has_genre .genre_group:first-child {
  margin-top: 0;
}

.kadensha_20th #omoi .message_list.has_genre .genre_label {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #E3261F;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-size: clamp(16px, 2.4vw, 20px);
  font-weight: 700;
  gap: 14px;
  letter-spacing: 0.1em;
  margin-bottom: 18px;
}

.kadensha_20th #omoi .message_list.has_genre .genre_label:before {
  background-color: #E3261F;
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  height: 11px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  width: 11px;
}

.kadensha_20th #omoi .message_list.has_genre .genre_label:after {
  background: -webkit-gradient(linear, left top, right top, from(rgba(227, 38, 31, 0.35)), to(rgba(227, 38, 31, 0)));
  background: linear-gradient(to right, rgba(227, 38, 31, 0.35), rgba(227, 38, 31, 0));
  content: "";
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  height: 1px;
}

.kadensha_20th #omoi .message_list.has_genre .genre_cards {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 24px;
}

.kadensha_20th #omoi .message_list.has_genre .genre_cards .message_set {
  width: calc(50% - 12px);
}

@media only screen and (max-width: 900px) {
  .kadensha_20th #omoi .message_list.has_genre .genre_cards .message_set {
    width: 100%;
  }
}
/* ===== 沿革：見出し2段＋写真ライトボックス ===== */
.kadensha_20th #history h3 .sub {
  color: #555555;
  display: block;
  font-size: clamp(13px, 1.8vw, 16px);
  font-weight: 600;
  letter-spacing: 0.08em;
  margin-top: 0.5em;
}

.kadensha_20th #history .history_list .photo img {
  cursor: -webkit-zoom-in;
  cursor: zoom-in;
}

body.modal_open {
  overflow: hidden;
}

#history_lightbox {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: rgba(18, 18, 18, 0.88);
  cursor: -webkit-zoom-out;
  cursor: zoom-out;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  inset: 0;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 24px;
  position: fixed;
  z-index: 1500;
}

#history_lightbox[hidden] {
  display: none;
}

#history_lightbox figure {
  max-width: min(920px, 92vw);
}

#history_lightbox img {
  background-color: #FFFFFF;
  -webkit-box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
          box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  height: auto;
  max-height: 80vh;
  -o-object-fit: contain;
     object-fit: contain;
  width: 100%;
}

#history_lightbox figcaption {
  color: #FFFFFF;
  font-size: 13px;
  letter-spacing: 0.06em;
  margin-top: 12px;
  text-align: center;
}

#history_lightbox .lb_close {
  background: none;
  border: none;
  cursor: pointer;
  height: 44px;
  padding: 0;
  position: absolute;
  right: 20px;
  top: 20px;
  width: 44px;
}

#history_lightbox .lb_close span {
  background-color: #FFFFFF;
  display: block;
  height: 1px;
  left: 8px;
  position: absolute;
  top: 22px;
  width: 28px;
}

#history_lightbox .lb_close span:first-child {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

#history_lightbox .lb_close span:last-child {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

/* ===== 画像比率統一（3:2）保険 ===== */
.kadensha_20th #kv_photo .fade_slider .slides li img {
  aspect-ratio: 3/2;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
}

.kadensha_20th #photo .photo_slider .item .set_wrap > img {
  aspect-ratio: 3/2;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
}

.kadensha_20th #omoi .act_photo img {
  aspect-ratio: 3/2;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
}

.kadensha_20th #about .history_list .photo img {
  aspect-ratio: 3/2;
  -o-object-fit: cover;
     object-fit: cover;
}

/* ===== KV装飾写真：テキスト衝突回避 ===== */
@media only screen and (max-width: 1150px) {
  .kadensha_20th #kv_deco03,
  .kadensha_20th #kv_deco04,
  .kadensha_20th #kv_deco05,
  .kadensha_20th #kv_deco06,
  .kadensha_20th #kv_deco07 {
    display: none;
  }
}
/* ===== ライトボックス：開閉アニメ＋グループ送りUI ===== */
#history_lightbox {
  opacity: 0;
  -webkit-transition: opacity 0.35s ease;
  transition: opacity 0.35s ease;
}

#history_lightbox.open {
  opacity: 1;
}

#history_lightbox figure {
  opacity: 0;
  position: relative;
  -webkit-transform: scale(0.92) translateY(16px);
          transform: scale(0.92) translateY(16px);
  -webkit-transition: opacity 0.4s ease, -webkit-transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.4s ease, -webkit-transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s ease;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s ease, -webkit-transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

#history_lightbox.open figure {
  opacity: 1;
  -webkit-transform: scale(1) translateY(0);
          transform: scale(1) translateY(0);
}

#history_lightbox img.swap {
  -webkit-animation: lb_swap 0.35s ease;
          animation: lb_swap 0.35s ease;
}

@-webkit-keyframes lb_swap {
  from {
    opacity: 0;
    -webkit-transform: scale(0.985);
            transform: scale(0.985);
  }
  to {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@keyframes lb_swap {
  from {
    opacity: 0;
    -webkit-transform: scale(0.985);
            transform: scale(0.985);
  }
  to {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
#history_lightbox .lb_nav {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 50%;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 52px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  -webkit-transition: background-color 0.3s;
  transition: background-color 0.3s;
  width: 52px;
  z-index: 2;
}

#history_lightbox .lb_nav:hover {
  background-color: rgba(255, 255, 255, 0.28);
}

#history_lightbox .lb_nav[hidden] {
  display: none;
}

#history_lightbox .lb_prev {
  left: 20px;
}

#history_lightbox .lb_next {
  right: 20px;
}

#history_lightbox .lb_nav span {
  border-left: 2px solid #FFFFFF;
  border-bottom: 2px solid #FFFFFF;
  display: block;
  height: 12px;
  -webkit-transform: rotate(45deg) translate(1px, -1px);
          transform: rotate(45deg) translate(1px, -1px);
  width: 12px;
}

#history_lightbox .lb_next span {
  -webkit-transform: rotate(-135deg) translate(1px, -1px);
          transform: rotate(-135deg) translate(1px, -1px);
}

#history_lightbox .lb_count {
  color: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  letter-spacing: 0.14em;
  margin-top: 8px;
  text-align: center;
}

@media only screen and (max-width: 640px) {
  #history_lightbox .lb_nav {
    height: 42px;
    width: 42px;
  }
  #history_lightbox .lb_prev {
    left: 8px;
  }
  #history_lightbox .lb_next {
    right: 8px;
  }
}
/* ===== 0713 改修：オペラ稽古写真の縮小＋ライトボックス ===== */
.kadensha_20th .jsLightbox img {
  cursor: -webkit-zoom-in;
  cursor: zoom-in;
}

.kadensha_20th #omoi .act_photo.act_photo_small {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 16px;
  max-width: none;
}

.kadensha_20th #omoi .act_photo.act_photo_small img {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 240px;
}

.kadensha_20th #omoi .act_photo.act_photo_small figcaption {
  margin-top: 0;
}

@media only screen and (max-width: 640px) {
  .kadensha_20th #omoi .act_photo.act_photo_small img {
    width: 45%;
  }
}
/* ===== 触れる・出会う：仮画像（複数枚・ライトボックス） ===== */
.kadensha_20th #omoi .touch_list .touch_set .touch_photo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 1em;
}

.kadensha_20th #omoi .touch_list .touch_set .touch_photo img {
  aspect-ratio: 3/2;
  border-radius: 6px;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  width: calc(50% - 4px);
}

/* ===== 写真で振り返る：ドット→サムネイル連動ナビ ===== */
.kadensha_20th #photo .photo_slider .slick-dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 10px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 2em;
}

.kadensha_20th #photo .photo_slider .slick-dots li {
  width: 92px;
}

.kadensha_20th #photo .photo_slider .slick-dots li + li {
  margin-left: 0;
}

.kadensha_20th #photo .photo_slider .slick-dots li button {
  background: none;
  border: none;
  border-radius: 0;
  cursor: pointer;
  display: block;
  height: auto;
  opacity: 0.45;
  overflow: hidden;
  padding: 0;
  text-indent: 0;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
  width: 100%;
}

.kadensha_20th #photo .photo_slider .slick-dots li button img {
  aspect-ratio: 3/2;
  display: block;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
}

.kadensha_20th #photo .photo_slider .slick-dots li button:hover {
  opacity: 0.8;
}

.kadensha_20th #photo .photo_slider .slick-dots li.slick-active button {
  background: none;
  border: none;
  opacity: 1;
  outline: 2px solid #B08A2E;
  outline-offset: 2px;
}

@media only screen and (max-width: 640px) {
  .kadensha_20th #photo .photo_slider .slick-dots {
    gap: 8px;
  }
  .kadensha_20th #photo .photo_slider .slick-dots li {
    width: calc(25% - 6px);
  }
}
/* ===== これから：バナーエリア（仮） ===== */
.kadensha_20th #last .banner_area {
  margin-top: 70px;
}

.kadensha_20th #last .banner_area .banner_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 16px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.kadensha_20th #last .banner_area .banner_list li a {
  display: block;
}

.kadensha_20th #last .banner_area .banner_list li img {
  background-color: #FFFFFF;
  border-radius: 6px;
  display: block;
  height: auto;
  width: 280px;
}

@media only screen and (max-width: 640px) {
  .kadensha_20th #last .banner_area {
    margin-top: 3em;
  }
  .kadensha_20th #last .banner_area .banner_list {
    gap: 12px;
  }
  .kadensha_20th #last .banner_area .banner_list li {
    width: calc(50% - 6px);
  }
  .kadensha_20th #last .banner_area .banner_list li img {
    width: 100%;
  }
}
/* ===== これから：バナーエリア 縦横比調整（追記） =====
   3点のバナー画像は元画像の縦横比がそれぞれ異なるため、
   PC表示（641px以上）でのみ高さをそろえ、各画像本来の
   アスペクト比に応じて横幅を自動計算する。
   画像自然サイズ：
   btn_geidankyo.png = 1200×400 / btn_donation.png = 1134×296 / logo_kakeru.png = 2496×693
   高さ80.5pxで統一した場合、3枚合計の横幅（gap含む）は
   調整前（280px×3＋gap16px×2＝872px）とほぼ同じ約872pxを維持する。
   ===== */
@media only screen and (min-width: 641px) {
  .kadensha_20th #last .banner_area .banner_list li img {
    height: 80.5px;
    width: auto;
  }
  .kadensha_20th #last .banner_area .banner_list li:nth-child(1) img {
    aspect-ratio: 1200/400;
  }
  .kadensha_20th #last .banner_area .banner_list li:nth-child(2) img {
    aspect-ratio: 1134/296;
  }
  .kadensha_20th #last .banner_area .banner_list li:nth-child(3) img {
    aspect-ratio: 2496/693;
  }
}/*# sourceMappingURL=20th.css.map */