@charset "UTF-8";
/* ==========================================================

title : 大阪城・博物館・神社で刀剣巡りをしよう！【刀剣ワールド】
scope : 大阪城・博物館・神社で刀剣巡りをしよう！【刀剣ワールド】

memo：

last modify : 2020/10/16 TCI福岡_uesugi 大阪城天守閣レイアウト調整（WEB2TCI-15428）

2020/09/18 TCI福岡_eguchi 関連サイトのご紹介／グルーピング見直し
2020/09/06 TCI福岡_eguchi 東建・HM・刀剣バナーを追加
2020/07/09 TCI福岡_eguchi／ワールド＆メーハクバナー調整
2020/06/18 TCI福岡_eguchi／インデント調整
2020/01/21 TCI福岡_yoneshima／画像差し替えに伴うレイアウト修正
2020/01/10 TCI福岡_yoneshima／第2弾の内容を反映
2019/10/31 TCI福岡_yoneshima／新規作成
(次ファイルを流用 /special-contents/okazaki-castle/css/style.css)

========================================================== */

/* page common
   =================================================================================== */
/* -- base font size -- */
@media (min-width: 768px) {
  .content_area {
    font-size: 1.8rem;
    padding-bottom: 40px;
  }
}

@media (max-width: 767px) {
  .content_area {
    font-size: 1.6rem;
  }
}

/* -- text color -- */
.txt_red01 {
  color: #f00;
}

.txt_red02 {
  color: #bf0008;
}

.txt_red03 {
  color: #f53333;
}

.txt_blue01 {
  color: #1269ec;
}

@media (min-width: 768px) {
  .txt_yellow01_pc a {
    color: #ff0;
  }
  .txt_yellow01_pc a:hover {
    color: #e3cb8f;
  }
}

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
  .txt_yellow01_pc a:hover {
    color: #ff0;
  }
}

/* -- font -- */
.fwB {
  font-weight: 600;
}

/* -- ruby -- */
[data-ruby] {
  position: relative;
}

[data-ruby]::before {
  content: attr(data-ruby);
  margin: auto;
  position: absolute;
  left: 0;
  right: 0;
}

@media (min-width: 768px) {
  [data-ruby]::before {
    font-size: .36111em;
    letter-spacing: -.02em;
    top: -1.2em;
    text-align: center;
  }
  [data-ruby].font_l01::before {
    font-size: 1.2rem;
    top: -1.4em;
    text-align: left;
    width: 8em;
  }
  [data-ruby].font_l02::before {
    font-size: 1.2rem;
    top: -1.4em;
    width: 12em;
  }
}

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
  [data-ruby]::before {
    top: -1.2em;
  }
}

@media (max-width: 767px) {
  [data-ruby]::before {
    font-size: .4em;
    letter-spacing: -.06em;
    margin-left: -.6em;
    top: -1.8em;
    text-align: center;
  }
  [data-ruby].letter_s01::before {
    letter-spacing: -.08em;
    margin-left: -4em;
    width: 24em;
  }
  [data-ruby].letter_s02::before {
    letter-spacing: -.08em;
    margin-left: -1em;
    width: 5em;
  }
  .no_ruby {
    display: block;
    line-height: 1.5;
    padding-bottom: 4px;
  }
}

/* -- bg_roll -- */
.bg_roll {
  display: inline-block;
  font-size: 0;
  position: relative;
  transition: all .2s;
}

.bg_roll::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  transition: all .2s;
  width: 100%;
}

.bg_roll:hover::after {
  background: rgba(255, 255, 255, .3);
}

.bg_roll img {
  width: 100%;
}

@media (max-width: 767px) {
  .bg_roll::after {
    display: none;
  }
}

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
  .bg_roll::after {
    display: none;
  }
}

/* -- caption -- */
.caption_block01 {
  color: #fff;
  letter-spacing: 0;
  position: absolute;
}

.caption_block02 {
  letter-spacing: 0;
}

@media (min-width: 768px) {
  .caption_block01,
  .caption_block02 {
    font-size: 1.5rem;
  }
  .caption_block03 {
    font-size: 1.7rem;
  }
}

@media (max-width: 767px) {
  .caption_block01,
  .caption_block02 {
    font-size: 1.4rem;
  }
  .caption_block03 {
    font-size: 1.5rem;
  }
}

/* -- pagetop -- */
.btn_gotop {
  z-index: 5;
}

/* -- for sp -- */
.sp_pt {
  display: none;
}

@media screen and (max-width: 767px) and (orientation: portrait) {
  .sp_pt {
    display: block;
  }
}

/* -- for ipad -- */
.ipad_br {
  display: none;
}

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
  .ipad_br {
    display: block;
  }
}

@media (max-width: 767px) {
  .ipad_br {
    display: none;
  }
}

/* intro area
   =================================================================================== */
/* -- mv area -- */
.mv_area_wrap {
  position: relative;
}

.mv_area_caption_block {
  position: absolute;
}

.mv_area_caption {
  color: #fff;
  font-size: 1.6rem;
  letter-spacing: .06em;
}

.mv_image_block {
  position: absolute;
}

.mv_image_block_main {
  font-size: 0;
}

.mv_image_block_text {
  max-width: 388px;
}

.mv_link_block_wrap {
  display: flex;
}

.mv_link_block a {
  background-color: #9e7210;
  border-radius: 20px;
  color: #fff;
  display: block;
  letter-spacing: .06em;
  line-height: 1;
  position: relative;
  text-align: center;
  width: 100%;
}

.mv_link_block a:hover {
  color: #fff;
}

.mv_link_block a::after {
  border-color: transparent transparent transparent #fff;
  border-style: solid;
  content: "";
  display: block;
  height: 0;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 0;
}

@media (min-width: 768px) {
  .mv_title_main {
    background: url("/special-contents/osaka-castle/image/mv-ttl-main.png") 0 0 no-repeat;
    background-size: contain;
    font-size: 0;
    padding-bottom: 302px;
    position: absolute;
    left: 1.6%;
    top: 113px;
    width: 77.7%;
    z-index: 4;
  }
  .mv_area_wrap {
    background: url("/special-contents/osaka-castle/image/mv-main-pc.jpg") 0 0 no-repeat;
    background-size: contain;
    padding-bottom: 64%;
    width: 100%;
  }
  .mv_area_caption_block {
    bottom: 12px;
    left: 23px;
  }
  .mv_image_block {
    right: -8px;
    bottom: -41.5%;
    width: 43%;
    z-index: 2;
  }
  .mv_image_block_lead {
    font-size: 1.6rem;
    letter-spacing: .04em;
    line-height: 1.25;
  }
  .mv_image_block_text {
    margin: 10px 0 0 auto;
    padding: 0 20px;
  }
  .mv_link_block_wrap {
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
    max-width: 310px;
  }
  .mv_link_block {
    margin-left: 10px;
    width: 140px;
  }
  .mv_link_block a:hover {
    opacity: .8;
  }
  .mv_link_block a::after {
    border-width: 5px 0 5px 8px;
    right: 7px;
  }
  .mv_link_block a {
    padding: 6px 16px 6px 6px;
  }
}

@media (max-width: 767px) {
  .mv_title_main {
    background: #c92121;
    color: #fff;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.2;
    order: 1;
    padding: 20px 6px;
    position: static;
    text-align: center;
    width: 100%;
  }
  .mv_area_wrap {
    background: url("/special-contents/osaka-castle/image/mv-main-sp.jpg") 0 0 no-repeat;
    background-size: cover;
    height: auto;
    order: 2;
    padding-bottom: 60.3865%;
    width: 100vw;
  }
  .mv_area_caption_block {
    bottom: 3vw;
    left: 10px;
  }
  .mv_area_caption {
    font-size: 2vw;
  }
  .mv_image_block {
    bottom: 3vw;
    right: 4px;
  }
  .mv_image_block_lead {
    font-size: 2vw;
    margin-left: -2vw;
  }
  .mv_image_block_lead_inner {
    text-shadow: 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff;
  }
  .mv_link_block_wrap {
    align-items: flex-end;
    justify-content: space-around;
    margin-top: 1.4vw;
  }
  .mv_link_block {
    width: 26vw;
  }
  .mv_link_block.block02 {
    padding-bottom: 2vw;
    margin-left: 10px;
  }
  .mv_link_block a::after {
    border-width: 4px 0 4px 5px;
    right: 1.5vw;
  }
  .mv_link_block a {
    font-size: 3vw;
    line-height: 1.2222;
    padding: 4px 10px;
  }
}

/* -- intro -- */
.intro {
  display: flex;
  flex-wrap: wrap;
  position: relative;
}

/* -- intro box -- */
.intro_content_block_wrap {
  position: relative;
  width: 100%;
}

.intro_lead_block_wrap {
  display: flex;
  margin: 0 auto;
  max-width: 920px;
  position: relative;
}

.intro_spot_block_item {
  position: relative;
}

.intro_spot_image_block_item {
  position: relative;
}

.intro_spot_image_block_item.item_type01,
.intro_spot_image_block_item.item_type03 {
  float: left;
}

.intro_spot_image_block_item.item_type02 {
  float: right;
}

.intro_spot_image_block_label {
  position: absolute;
}

.intro_button_block .intro_button_block_inner {
  display: flex;
  justify-content: center;
}

.intro_bnr_block_wrap {
  display: flex;
  flex-wrap: wrap;
  margin: 0 auto;
}

.intro_bnr_item .bg_roll::after {
  padding-bottom: 25%;
}

.intro_bnr_caption {
  text-align: justify;
}

/* ------------------------------------ */
/* ▼ intro wrap */
/* ------------------------------------ */

.intro_caption {
  color: #000;
  text-align: right;
  letter-spacing: .01em;
  position: relative;
}
.intro_caption p {
  font-size: .85em;
  position: absolute;
  z-index: 1;
  right: 1.5%;
  margin: -115px 0 0;
}


@media (max-width: 767px) {
  .intro_caption {
    font-size: 16px;
    margin-top: 44px;
    padding: 0 20px;
    position: relative;
    width: 100%;
    text-align: left;
  }
  .intro_caption p {
    left: 1.75em;
    margin: -2.75em 0 0;
  }
  .intro_caption .caption_inner {
    display: block;
    display: inline-block;
    font-size: 1.45rem;
  }
}

@media (min-width: 768px) {

  .intro_content_block_wrap {
    padding: 0 40px;
  }
  .intro_content_block_wrap::before,
  .intro_content_block_wrap::after {
    background: url("/special-contents/osaka-castle/image/bg-pattern-img01.png") 0 0 repeat-y;
    content: "";
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    width: 38px;
  }
  .intro_content_block_wrap::before {
    left: 0;
  }
  .intro_content_block_wrap::after {
    right: 0;
  }
  .intro_lead_block_wrap {
    margin: 30px auto 0;
  }
  .intro_lead_block {
    max-width: 570px;
    width: 60%;
  }
  .intro_lead_block_inner {
    margin-left: 10px;
  }
  .intro_lead_block_title {
    border-bottom: 1px solid #a30d23;
    font-size: 0;
    padding: 0 0 7px 8px;
  }
  .intro_lead_block_text {
    margin-top: 8px;
    padding: 0 3px 0 7px;
  }
  .intro_lead_block_text .section_text01 {
    line-height: 1.8;
  } 
  .intro_spot_block_wrap {
    margin-top: 48px;
  }
  .intro_spot_block_item {
    margin-top: 16px;
  }
  .intro_spot_block_item::before,
  .intro_spot_block_item::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    width: 100%;
  }
  .intro_spot_block_item.item_type01 {
    background: url("/special-contents/osaka-castle/image/bg-intro-spot01-rep.png") 0 0 repeat-y;
    background-size: 100%;
    padding: 39px 27px 40px;
  }
  .intro_spot_block_item.item_type01::before {
    background: url("/special-contents/osaka-castle/image/bg-intro-spot01-top.png") 0 0 repeat-x;
    background-size: contain;
    height: 12px;
    top: 0;
  }
  .intro_spot_block_item.item_type01::after {
    background: url("/special-contents/osaka-castle/image/bg-intro-spot01-btm.png") 0 bottom repeat-x;
    background-size: contain;
    height: 12px;
    bottom: 0;
  }
  .intro_spot_block_item.item_type02 {
    background: url("/special-contents/osaka-castle/image/bg-intro-spot02-rep.png") 0 0 repeat-y;
    background-size: 100%;
    padding: 45px 27px 42px;
  }
  .intro_spot_block_item.item_type02::before {
    background: url("/special-contents/osaka-castle/image/bg-intro-spot02-top.png") 0 0 repeat-x;
    background-size: contain;
    height: 14px;
    top: 0;
  }
  .intro_spot_block_item.item_type02::after {
    background: url("/special-contents/osaka-castle/image/bg-intro-spot02-btm.png") 0 bottom repeat-x;
    background-size: contain;
    height: 14px;
    bottom: 0;
  }
  .intro_spot_block_item.item_type03 {
    background: url("/special-contents/osaka-castle/image/bg-intro-spot03-rep.png") 0 0 repeat-y;
    background-size: 100%;
    padding: 48px 27px 41px;
  }
  .intro_spot_block_item.item_type03::before {
    background: url("/special-contents/osaka-castle/image/bg-intro-spot03-top.png") 0 0 repeat-x;
    background-size: contain;
    height: 14px;
    top: 0;
  }
  .intro_spot_block_item.item_type03::after {
    background: url("/special-contents/osaka-castle/image/bg-intro-spot03-btm.png") 0 bottom repeat-x;
    background-size: contain;
    height: 12px;
    bottom: 0;
  }
  .intro_spot_image_block_label {
    width: 39%;
  }
  .intro_spot_text_block_title.title_type01,
  .intro_spot_text_block_title.title_type03 {
    margin-left: 37.6%;
  }
  .intro_spot_text_block_title.title_type02 {
    width: 55.6%;
  }
  .intro_spot_text_block_lead {
    margin-top: 14px;
  }
  .intro_spot_image_block_item {
    margin-bottom: 20px;
    margin-top: -24px;
    width: 32.6%;
  }
  .intro_spot_image_block_item.item_type01 {
    margin-right: 40px;
  }
  .intro_spot_image_block_item.item_type02 {
    margin-left: 40px;
  }
  .intro_spot_image_block_item.item_type03 {
    margin: -30px 40px 30px 0;
  }
  .intro_spot_image_block_label.label_type01 {
    right: -12%;
    top: -24px;
  }
  .intro_spot_image_block_label.label_type02 {
    left: -12%;
    top: -34px;
  }
  .intro_spot_caption_block {
    bottom: 11px;
    left: 12px;
    background: rgba(0,0,0,.3);
  }
  .intro_button_block.block01 {
    margin-top: 22px;
  }
  .intro_button_block.block02 {
    margin-top: 5px;
  }
  .intro_button_block.block03 {
    margin-top: 16px;
  }
  .intro_button_block .intro_button {
    margin: 10px 20px 0;
  }
  .info_detail_btn {
    width: 340px;
  }
  .intro_bnr_block_wrap {
    justify-content: center;
    margin-top: 35px;
  }
  .intro_bnr_block {
    margin: 0 25px;
    width: 360px;
  }
  .intro_bnr_caption {
    line-height: 1.25;
  }
  .intro_button .cmn_link_btn {
    width: 340px;
  }
  .intro_button .cmn_link_btn_text {
    font-weight: normal;
  }
}

@media (max-width: 767px) {
  .intro_caption_block {
    margin: 10px 0 0;
    order: 4;
    padding: 0 20px;
    width: 100%;
  }
  .intro_content_block_wrap {
    margin: 15px auto 0;
    order: 5;
  }
  .intro_lead_block_wrap {
    flex-wrap: wrap;
    padding: 0 20px;
  }
  .intro_lead_block_title {
    border-bottom: 2px solid #a30d23;
    padding-bottom: 4px;
  }
  .intro_lead_block_text {
    margin-top: 10px;
  }
  .intro_spot_block_wrap {
    margin-top: 20px;
  }
  .intro_spot_block_item {
    padding: 20px;
  }
  .intro_spot_block_item.item_type01 {
    background: #f4d9dc;
  }
  .intro_spot_block_item.item_type02 {
    background: #fbf0e2;
  }
  .intro_spot_block_item.item_type03 {
    background: #e7e2ee;
  }
  .intro_spot_image_block_item {
    margin-top: 10px;
    margin-bottom: 10px;
    width: 50%;
  }
  .intro_spot_image_block_item.item_type01,
  .intro_spot_image_block_item.item_type03 {
    margin-right: 20px;
  }
  .intro_spot_image_block_item.item_type02 {
    margin-left: 20px;
  }
  .intro_spot_image_block_label {
    width: 36%;
  }
  .intro_spot_image_block_label.label_type01 {
    right: -10px;
    top: -10px;
  }
  .intro_spot_image_block_label.label_type02 {
    left: -10px;
    top: -10px;
  }
  .intro_spot_caption_block {
    bottom: 6px;
    left: 6px;
  }
  .intro_spot_text_block_title {
    border-bottom: 2px solid;
    letter-spacing: .06em;
    padding-bottom: 6px;
  }
  .intro_spot_text_block_title.title_type01 {
    border-color: #a03b0e;
  }
  .intro_spot_text_block_title.title_type02 {
    border-color: #9e7210;
  }
  .intro_spot_text_block_title.title_type03 {
    border-color: #5c3c8e;
  }
  .intro_spot_text_block_lead {
    margin-top: 15px;
  }
  .intro_button_block {
    margin-top: 20px;
  }
  .info_detail_btn {
    width: 280px;
  }
  .intro_button .cmn_link_btn {
    width: 280px;
  }
  .intro_button .cmn_link_btn_text {
    font-size: 16px;
    font-weight: normal;
  }
  .intro_bnr_block_wrap {
    margin-top: 20px;
    max-width: 300px;
    order: 6;
    width: 90%;
  }
  .intro_bnr_block:not(:first-child) {
    margin-top: 15px;
  }
}

/* -- anchor_menu -- */
.anchor_menu_wrap {
  width: 100%;
}

.anchor_menu_wrap .anchor_link_block {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
}

.anchor_link_block .anchor_link_item {
  display: flex;
}

.anchor_link_block .anchor_link_item a {
  align-items: center;
  color: #fff;
  display: flex;
  justify-content: flex-start;
  position: relative;
  transition: all .2s;
  width: 100%;
}

.anchor_link_block .anchor_link_item a::after {
  content: "";
  display: block;
  position: absolute;
}

.anchor_link_block .anchor_link_item .anchor_label {
  position: relative;
}

.anchor_link_block .anchor_link_item .anchor_label::before {
  content: "";
  display: block;
  position: absolute;
}

@media (min-width: 768px) {
  .anchor_menu_wrap {
    margin: 33px auto 0;
  }
  .anchor_link_block .anchor_link_item {
    margin: 10px 5px 0;
    width: 300px;
  }
  .anchor_link_block .anchor_link_item a {
    background: url("/special-contents/osaka-castle/image/bg-anchor-item01.png") 0 0 no-repeat;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.1111;
    min-height: 57px;
    padding: 7px 14px 5px 58px;
    text-align: center;
  }
  .anchor_link_block .anchor_link_item a:hover {
    opacity: .8;
  }
  .anchor_link_block .anchor_link_item .anchor_label {
    font-size: 0;
    height: 100%;
  }
  .anchor_link_block .anchor_link_item .anchor_label::before {
    height: 28px;
    left: -44px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    width: 28px;
    z-index: 3;
  }
  .anchor_link_block .anchor_link_item .anchor_label.label01::before {
    background: url("/special-contents/osaka-castle/image/label-anchor-num01.png") 0 0 no-repeat;
    background-size: contain;
  }
  .anchor_link_block .anchor_link_item .anchor_label.label02::before {
    background: url("/special-contents/osaka-castle/image/label-anchor-num02.png") 0 0 no-repeat;
    background-size: contain;
  }
  .anchor_link_block .anchor_link_item .anchor_label.label03::before {
    background: url("/special-contents/osaka-castle/image/label-anchor-num03.png") 0 0 no-repeat;
    background-size: contain;
  }
  .anchor_link_block .anchor_link_item .anchor_label.label04::before {
    background: url("/special-contents/osaka-castle/image/label-anchor-num04.png") 0 0 no-repeat;
    background-size: contain;
  }
  .anchor_link_block .anchor_link_item .anchor_label.label05::before {
    background: url("/special-contents/osaka-castle/image/label-anchor-num05.png") 0 0 no-repeat;
    background-size: contain;
  }
  .anchor_link_block .anchor_link_item .anchor_label.label06::before {
    background: url("/special-contents/osaka-castle/image/label-anchor-num06.png") 0 0 no-repeat;
    background-size: contain;
  }
  .anchor_link_block .anchor_link_item .anchor_label.label07::before {
    background: url("/special-contents/osaka-castle/image/label-anchor-num07.png") 0 0 no-repeat;
    background-size: contain;
  }
  .anchor_link_block .anchor_link_item .anchor_label.label08::before {
    background: url("/special-contents/osaka-castle/image/label-anchor-num08.png") 0 0 no-repeat;
    background-size: contain;
  }
  .anchor_link_block .anchor_link_item .anchor_label.label09::before {
    background: url("/special-contents/osaka-castle/image/label-anchor-sword.png") 0 0 no-repeat;
    background-size: contain;
  }
  .anchor_link_block .anchor_link_item .anchor_link_text {
    align-items: center;
    display: flex;
    justify-content: center;
    width: 100%;
  }
}

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
  .anchor_link_block .anchor_link_item a:hover {
    opacity: 1;
  }
}

@media (max-width: 767px) {
  .anchor_menu_wrap {
    margin-top: -1%;
    order: 3;
  }
  .content_menu {
    position: relative;
    z-index: 4;
  }
  .content_menu .meun_title {
    background: linear-gradient(#b48d4f, #957e5a);
    background: -webkit-linear-gradient(top, #b48d4f 0%, #957e5a 100%);
    box-shadow: 0 .25em .5em 0 rgba(0, 20, 30, .2);
    color: #fff;
    font-size: 1.7rem;
    font-weight: 600;
    padding: 10px 0;
    text-align: center;
  }
  .content_menu .meun_title .meun_title_inner {
    position: relative;
  }
  .content_menu .meun_title .meun_title_inner::before,
  .content_menu .meun_title .meun_title_inner::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
  }
  .content_menu .meun_title .meun_title_inner::before {
    background: url("/special-contents/image-cmn/ico-contens-menu.png") 0 0 no-repeat;
    background-size: contain;
    height: 2rem;
    left: -36px;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    width: 2rem;
  }
  .content_menu .meun_title .meun_title_inner::after {
    border-bottom: 2px solid #fff;
    border-left: 2px solid #fff;
    height: 10px;
    right: -20px;
    -webkit-transform: translateY(-70%) rotate(-45deg);
    transform: translateY(-70%) rotate(-45deg);
    width: 10px;
  }
  .content_menu .meun_title.active .meun_title_inner::after {
    -webkit-transform: translateY(-30%) rotate(135deg);
    transform: translateY(-30%) rotate(135deg);
  }
  .content_menu .menu_list {
    background: #faeddd;
    border-radius: 0 0 4px 4px;
    box-shadow: 0 .25em .5em 0 rgba(0, 20, 30, .2);
    display: none;
    padding: 20px 25px;
    width: 100%;
  }
  .content_menu .menu_list.active {
    -webkit-animation: fadeIN .6s ease 0s 1 alternate;
    animation: fadeIN .6s ease 0s 1 alternate;
    display: block;
    height: auto;
    position: absolute;
  }
  @keyframes fadeIN {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  @-webkit-keyframes fadeIN {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  .content_menu .close_btn {
    margin-top: 15px;
    text-align: center;
  }
  .content_menu .close_btn .close_btn_inner {
    background: #b0894c;
    border: 1px solid #fff;
    border-radius: 4px;
    color: #fff;
    display: inline-block;
    padding: 10px 40px 10px 20px;
    position: relative;
  }
  .content_menu .close_btn .close_btn_inner::after {
    border-bottom: 2px solid #fff;
    border-right: 2px solid #fff;
    content: "";
    display: block;
    height: 10px;
    position: absolute;
    right: 15px;
    top: 50%;
    -webkit-transform: translateY(-30%) rotate(-135deg);
    transform: translateY(-30%) rotate(-135deg);
    width: 10px;
  }
  .anchor_link_block {
    background: #fff;
    border-radius: 4px;
  }
  .anchor_link_block .anchor_link_item {
    width: 100%;
  }
  .anchor_link_block .anchor_link_item:nth-child(n+4) {
    margin-top: 0;
  }
  .anchor_link_block .anchor_link_item:not(:first-child) {
    border-top: 1px solid #9d7943;
  }
  .anchor_link_block .anchor_link_item a {
    align-items: flex-start;
    background: none;
    color: #9e7943;
    justify-content: flex-start;
    letter-spacing: .06em;
    min-height: auto;
    padding: 10px 20px 10px 40px;
    text-align: left;
  }
  .anchor_link_block .anchor_link_item a::after {
    background: url("/special-contents/image-cmn/ico-contens-menu-list.png") 0 0 no-repeat;
    background-size: contain;
    border: none;
    height: 2.1rem;
    position: absolute;
    left: 10px;
    right: auto;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    width: 2.1rem;
  }
}

/* -- mod_access -- */
.access_map_block.block01 {
  background: #fbebee;
}

.access_map_block.block02 {
  background: #e9f6d0;
}

.access_map_block.block03 {
  background: #e1d9ee;
}

.access_map_wrap {
color: #000;
  width: 100%;
}

@media (min-width: 768px) {
  .access_map_block {
    margin-top: 30px;
    padding: 30px;
  }
  .mod_access_bg {
    padding: 20px 0 38px;
  }
  .mod_access .access_inner {
    padding: 0 23px;
  }
  .mod_access .map_link_wrap.map_link_wrap01 {
    margin-top: -40px;
  }
  .mod_access .map_link_wrap.map_link_wrap02 {
    margin-top: 10px;
  }
  .mod_access .map_link_wrap .map_link {
    padding-top: 8px;
  }
  .mod_access .y_mapbox .map_ptbox {
    margin-top: -157px;
  }
  .mod_access .y_map_icn {
    -webkit-transform: translateX(-50%) translateY(-82%);
    transform: translateX(-50%) translateY(-82%);
  }
  .mod_access .y_map {
    height: 480px;
  }
  .access_map_block.block03 .mod_access .y_map {
    height: 400px;
  }
  .mod_access .map_dtl .access_info .info_title {
    font-size: 1.8rem;
  }
  .mod_access .map_dtl .access_info .info_inner {
    line-height: 1.5;
    padding: 13px 0 21px 20px;
  }
  .mod_access .map_dtl .access_root {
    margin-left: 15px;
  }
  .mod_access .map_dtl .access_root .root:not(:first-child) {
    margin-top: 26px;
  }
  .mod_access .map_dtl .root .root_title {
    letter-spacing: .04em;
  }
  .mod_access .map_dtl .root .root_info {
    letter-spacing: .04em;
    line-height: 1.4444;
    margin-top: 5px;
  }
}

@media (max-width: 767px) {
  .access_map_block {
    padding: 20px;
  }
  .mod_access_bg {
    padding: 10px 15px 20px;
  }
  .mod_access .map_link_wrap .btn_box .btn_facility,
  .mod_access .map_link_wrap .btn_box .btn_jaf {
    width: 96%;
  }
  .mod_access .map_dtl .access_info .info_inner {
    padding: 10px 15px 15px;
  }
  .mod_access .map_dtl .access_root .root .root_inner {
    padding: 20px 30px 20px 40px;
  }
}

/* section
   =================================================================================== */
/* -- section title -- */
.cooperate_block_title {
  text-align: center;
}

@media (min-width: 768px) {
  .section_title_type01,
  .section_title_type02,
  .section_title_type03,
  .section_title_type04,
  .section_title_type05,
  .section_title_type06,
  .section_title_type07,
  .section_title_type08,
  .section_title_type09,
  .section_title_type10,
  .cooperate_block_title {
    font-size: 0;
  }
  .section_title_type01 {
    background: url("/special-contents/osaka-castle/image/ttl-box01-main.png") 0 0 no-repeat;
    background-size: 100%;
    padding-bottom: 12.7%;
    width: 100%;
  }
  .section_title_type02 {
    background: url("/special-contents/osaka-castle/image/ttl-box02-main.png") 0 0 no-repeat;
    background-size: 100%;
    padding-bottom: 12.8%;
    width: 100%;
  }
  .section_title_type03 {
    background: url("/special-contents/osaka-castle/image/ttl-box03-main.png") 0 0 no-repeat;
    background-size: 100%;
    padding-bottom: 13.2%;
    width: 100%;
  }
  .section_title_type04 {
    background: url("/special-contents/osaka-castle/image/ttl-box04-main.png") 0 0 no-repeat;
    background-size: 100%;
    padding-bottom: 12.9%;
    width: 100%;
  }
  .section_title_type05 {
    background: url("/special-contents/osaka-castle/image/ttl-box05-main.png") 0 0 no-repeat;
    background-size: 100%;
    padding-bottom: 13.4%;
    width: 100%;
  }
  .section_title_type06 {
    background: url("/special-contents/osaka-castle/image/ttl-box06-main.png") 0 0 no-repeat;
    background-size: 100%;
    padding-bottom: 12.9%;
    width: 100%;
  }
  .section_title_type07 {
    background: url("/special-contents/osaka-castle/image/ttl-box07-main.png") 0 0 no-repeat;
    background-size: 100%;
    padding-bottom: 12.9%;
    width: 100%;
  }
  .section_title_type08 {
    background: url("/special-contents/osaka-castle/image/ttl-box08-main.png") 0 0 no-repeat;
    background-size: 100%;
    padding-bottom: 12.9%;
    width: 100%;
  }
  .section_title_type09 {
    background: url("/special-contents/osaka-castle/image/ttl-facilities-main.png") 0 0 no-repeat;
    background-size: 100%;
    margin: -35px auto 0;
    padding-bottom: 20.9%;
    position: relative;
    width: 85.4%;
  }
  .cooperate_block_title {
    padding-bottom: 53px;
    position: relative;
  }
  .cooperate_block_title::before {
    background: url("/special-contents/osaka-castle/image/ttl-cooperate-main.png") 0 0 no-repeat;
    background-size: 100%;
    content: "";
    height: 53px;
    position: absolute;
    left: 50%;
    top: 0;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 545px;
  }
}

@media (max-width: 767px) {
  .section_title_type01,
  .section_title_type02,
  .section_title_type03,
  .section_title_type04,
  .section_title_type05,
  .section_title_type06,
  .section_title_type07,
  .section_title_type08,
  .section_title_type09,
  .section_title_type10 {
    border-bottom: 2px solid #c92121;
    font-size: 2rem;
    font-weight: 600;
    max-width: 100%;
    padding-bottom: 6px;
    text-align: left;
    width: 100%;
  }
  .section_title_type01,
  .section_title_type02,
  .section_title_type03,
  .section_title_type04,
  .section_title_type05,
  .section_title_type06,
  .section_title_type07,
  .section_title_type08 {
    padding-left: 1.1em;
    text-indent: -1.1em;
  }
  .cooperate_block_title {
    color: #a30d23;
    font-size: 2rem;
  }
}
/* 共通上書き */
@media (min-width: 768px) {
  .bnr_section_h3>span {
    background-image: url(../image/bg-h3-left.png),
                      url(../image/bg-h3-right.png);
  }
  .bnr_section_h3>span::before,
  .bnr_section_h3>span::after {
    background: url(../image/bg-h3-line.png);
  }
  .bnr_section_h3>span>span {
    background-image:url(../image/bg-h3-center.png);
    height: 39px;
  }
}

/* -- section text -- */
.section_text01,
.section_text02,
.section_text05,
.section_text06 {
  text-align: justify;
}

@media (min-width: 768px) {
  .section_text01 {
    line-height: 1.5556;
  }
  .section_text02 {
    letter-spacing: .014em;
    line-height: 1.6667;
  }
  .section_text03 {
    letter-spacing: .03em;
    line-height: 1.5556;
    text-align: center;
  }
  .section_text04 {
    letter-spacing: .03em;
    line-height: 1.6667;
    text-align: center;
  }
  .section_text05 {
    line-height: 1.5556;
    letter-spacing: .03em;
  }
  .section_text06 {
    line-height: 1.5556;
    letter-spacing: .04em;
  }
  .section_heading_text01 {
    font-size: 0;
  }
  .section_name_text01 {
    font-size: 0;
  }
  .adj_letter_09 {
    letter-spacing: .09em;
  }
  .adj_letter_04 {
    letter-spacing: .04em;
  }
}

@media (max-width: 767px) {
  .section_text01,
  .section_text02,
  .section_text03,
  .section_text04,
  .section_text05,
  .section_text06 {
    line-height: 1.5;
  }
  .section_text03,
  .section_text04 {
    letter-spacing: .02em;
    text-align: justify;
  }
  .section_heading_text01 {
    font-size: 1.8rem;
  }
  .section_name_text01 {
    font-size: 1.8rem;
    font-weight: 600;
    letter-spacing: .18em;
    line-height: 2;
  }
  .section_name_text02 {
    font-size: 1.8rem;
    font-weight: 600;
  }
}

/* -- section block -- */
.section {
  position: relative;
}

.section_inner {
  margin: 0 auto;
}

.section_image_block {
  font-size: 0;
}

@media (min-width: 768px) {
  .section {
    margin-top: 40px;
  }
  .section_inner {
    max-width: 920px;
    width: 92%;
  }
}

@media (max-width: 767px) {
  .section {
    margin-top: 20px;
  }
}

/* -- facility_info_block -- */
.spot_info_block_wrap,
.spot_info_block {
  position: relative;
}

.spot_info_block_wrap::before,
.spot_info_block_wrap::after,
.spot_info_block::before,
.spot_info_block::after {
  background: #fff;
  border-radius: 50%;
  content: "";
  display: block;
  height: 12px;
  position: absolute;
  width: 12px;
  z-index: 1;
}

.spot_info_block_wrap::before {
  left: 6px;
  top: 6px;
}

.spot_info_block_wrap::after {
  right: 6px;
  top: 6px;
}

.spot_info_block::before {
  bottom: 6px;
  left: 6px;
}

.spot_info_block::after {
  bottom: 6px;
  right: 6px;
}

.spot_info_block_inner {
  align-items: center;
  color: #fff;
  display: flex;
  justify-content: space-between;
}

.spot_info_block_inner.block_inner01 {
  background: #c65d48;
}

.spot_info_block_inner.block_inner02 {
  background: #40a0a0;
}

.spot_info_block_title {
  text-align: center;
}


@media (min-width: 768px) {
  .spot_info_block_wrap.block_wrap01 {
    margin-top: 9px;
  }
  .spot_info_block_wrap.block_wrap02 {
    margin-top: 20px;
  }
  .spot_info_block_inner.block_inner01 {
    padding: 11px 30px;
  }
  .spot_info_block_inner.block_inner02 {
    padding: 11px 30px 11px 20px;
  }
  .spot_info_block_title.block_title01 {
    width: 32%;
  }
  .spot_info_block_title.block_title02 {
    width: 33%;
  }
  .spot_info_block_text.block_text01 {
    background: url("/special-contents/osaka-castle/image/bg-dot-img01.png") 0 0 repeat-y;
    padding: 4px 0 4px 17px;
    width: 66%;
  }
  .spot_info_block_text.block_text02 {
    background: url("/special-contents/osaka-castle/image/bg-dot-img02.png") 0 0 repeat-y;
    padding: 10px 0 10px 30px;
    width: 65%;
  }
}

@media (max-width: 767px) {
  .spot_info_block_wrap {
    margin-top: 20px;
  }
  .spot_info_block_inner {
    flex-wrap: wrap;
    padding: 10px;
  }
  .spot_info_block_title {
    width: 100%;
  }
  .spot_info_block_text {
    border-top: 1px dotted #fff;
    margin: 10px 0 0;
    padding: 10px;
    width: 100%;
  }
}


/* -- facility_info_block -- */
.facility_info_block {
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.facility_info_block.type01 {
  max-width: 850px;
}

.facility_info_block.type02 {
  max-width: 750px;
}

.facility_info_block::before,
.facility_info_block::after {
  content: "";
  display: block;
  height: calc(100% + 2px);
  position: absolute;
  top: -2px;
}

.facility_info_block::before {
  left: -2px;
}

.facility_info_block::after {
  right: -2px;
}

.facility_info_block.block01 {
  background: #f3dde0;
  border: 2px solid #a30d23;
}

.facility_info_block.block01::before,
.facility_info_block.block01::after {
  background: url("/special-contents/osaka-castle/image/bg-pattern-square01.png") 0 0 repeat-y;
  background-size: contain;
}

.facility_info_block.block02 {
  background: #e9e0ca;
  border: 2px solid #806134;
}

.facility_info_block.block02::before,
.facility_info_block.block02::after {
  background: url("/special-contents/osaka-castle/image/bg-pattern-square02.png") 0 0 repeat-y;
  background-size: contain;
}

.facility_info_block.block03 {
  background: #e2ebd0;
  border: 2px solid #6f9913;
}

.facility_info_block.block03::before,
.facility_info_block.block03::after {
  background: url("/special-contents/osaka-castle/image/bg-pattern-square03.png") 0 0 repeat-y;
  background-size: contain;
}

.facility_info_block.block04 {
  background: #e0f2e9;
  border: 2px solid #006934;
}

.facility_info_block.block04::before,
.facility_info_block.block04::after {
  background: url("/special-contents/osaka-castle/image/bg-pattern-square04.png") 0 0 repeat-y;
  background-size: contain;
}

.facility_info_block.block05 {
  background: #e9edf9;
  border: 2px solid #405589;
}

.facility_info_block.block05::before,
.facility_info_block.block05::after {
  background: url("/special-contents/osaka-castle/image/bg-pattern-square05.png") 0 0 repeat-y;
  background-size: contain;
}

.facility_info_block.block06 {
  background: #dbd4e6;
  border: 2px solid #5c3c8e;
}

.facility_info_block.block06::before,
.facility_info_block.block06::after {
  background: url("/special-contents/osaka-castle/image/bg-pattern-square06.png") 0 0 repeat-y;
  background-size: contain;
}

.facility_info_block_inner {
  display: flex;
  flex-wrap: wrap;
}

.facility_info_list_block_inner {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
}

.facility_info_list_block_label {
  color: #fff;
  font-weight: normal;
  text-align: center;
}

.facility_info_list_block_label.label01 {
  background: #a30d23;
}

.facility_info_list_block_label.label02 {
  background: #806134;
}

.facility_info_list_block_label.label03 {
  background: #6f9913;
}

.facility_info_list_block_label.label04 {
  background: #006934;
}

.facility_info_list_block_label.label05 {
  background: #405589;
}

.facility_info_list_block_label.label06 {
  background: #5c3c8e;
}

@media (min-width: 768px) {
  .facility_info_block {
    width: 94%;
  }
  .facility_info_block::before,
  .facility_info_block::after {
    width: 31px;
  }
  .facility_info_block_inner {
    width: 100%;
  }
  .facility_info_block_inner.block_inner01 {
    padding: 25px 30px 4px 54px;
  }
  .facility_info_block_inner.block_inner02 {
    padding: 25px 30px 3px 97px;
  }
  .facility_info_block_inner.block_inner03 {
    padding: 20px 30px 9px 67px;
  }
  .facility_info_block_inner.block_inner04 {
    padding: 25px 30px 5px 57px;
  }
  .facility_info_block_inner.block_inner05 {
    padding: 20px 60px 10px 60px;
  }
  .facility_info_list_block_label {
    letter-spacing: .03em;
    margin-bottom: 10px;
    padding: 5px 12px;
    width: 100px;
  }
  .facility_info_list_block_label.label_l {
    width: 120px;
  }
  .facility_info_list_block_label.label_xl {
    padding: 5px 9px;
    width: 130px;
  }
  .facility_info_list_block_text {
    letter-spacing: .03em;
  }
  .facility_info_list_block_text.block_text01 {
    margin-top: -5px;
    padding: 0 18px 17px 10px;
  }
  .facility_info_list_block_text.block_text02 {
    padding: 0 18px 10px 20px;
  }
  .facility_info_list_block_text.block_text03 {
    padding: 0 18px 10px 20px;
  }
  .facility_info_list_block_text.block_text04 {
    padding: 2px 28px 14px 16px;
  }
  .facility_info_list_block_text.block_text05 {
    padding: 2px 20px 7px 16px;
  }
  .facility_info_list_block_text.text_s {
    width: 130px;
  }
}

@media (min-width: 768px) and (max-width: 890px) {
  .facility_info_list_block {
    width: 100%;
  }
  .facility_info_block_inner.block_inner01,
  .facility_info_block_inner.block_inner02,
  .facility_info_block_inner.block_inner03,
  .facility_info_block_inner.block_inner04,
  .facility_info_block_inner.block_inner05 {
    padding-left: 40px;
  }
}

@media (max-width: 767px) {
  .facility_info_block::before,
  .facility_info_block::after {
    width: 26px;
  }
  .facility_info_block_inner.type01 {
    padding: 20px 35px 5px;
  }
  .facility_info_block_inner.type02 {
    padding: 10px 35px 5px;
  }
  .facility_info_list_block_inner {
    flex-wrap: wrap;
  }
  .facility_info_list_block_label {
    padding: 5px 10px;
    width: 140px;
  }
  .facility_info_list_block_text {
    padding: 10px 10px 15px;
    width: 100%;
  }
}

/* -- box_lead_block -- */
@media (min-width: 768px) {
  .box_lead_block {
    margin: 23px auto 0;
    padding: 0 20px;
  }
}

@media (max-width: 767px) {
  .box_lead_block {
    margin: 15px auto 0;
  }
}

/* -- bg_area_block -- */
.bg_area_block_inner {
  position: relative;
}

.bg_area_block_inner::after {
  content: "";
  display: block;
  position: absolute;
}

@media (min-width: 768px) {
  .bg_area_block_inner::after {
    bottom: -2px;
    left: 0;
    width: 100%;
  }
  .bg_area_block_inner.block_inner01 {
    background: url("/special-contents/osaka-castle/image/bg-box01-rep.png") 0 16px repeat-y;
    background-size: contain;
    padding-bottom: 9%;
  }
  .bg_area_block_inner.block_inner01::after {
    background: url("/special-contents/osaka-castle/image/bg-box01-btm.png") 0 bottom no-repeat;
    background-size: 100%;
    padding-bottom: 5.8%;
  }
  .bg_area_block_inner.block_inner02 {
    background: url("/special-contents/osaka-castle/image/bg-box02-rep.png") 0 16px repeat-y;
    background-size: contain;
    padding-bottom: 6.4%;
  }
  .bg_area_block_inner.block_inner02::after {
    background: url("/special-contents/osaka-castle/image/bg-box02-btm.png") 0 bottom no-repeat;
    background-size: 100%;
    padding-bottom: 5.8%;
  }
  .bg_area_block_inner.block_inner03 {
    background: url("/special-contents/osaka-castle/image/bg-box03-rep.png") 0 16px repeat-y;
    background-size: contain;
    padding-bottom: 9%;
  }
  .bg_area_block_inner.block_inner03::after {
    background: url("/special-contents/osaka-castle/image/bg-box03-btm.png") 0 bottom no-repeat;
    background-size: 100%;
    padding-bottom: 5.8%;
  }
  .bg_area_block_inner.block_inner04 {
    background: url("/special-contents/osaka-castle/image/bg-box04-rep.png") 0 16px repeat-y;
    background-size: contain;
    padding-bottom: 7.8%;
  }
  .bg_area_block_inner.block_inner04::after {
    background: url("/special-contents/osaka-castle/image/bg-box04-btm.png") 0 bottom no-repeat;
    background-size: 100%;
    padding-bottom: 5.8%;
  }
  .bg_area_block_inner.block_inner05 {
    background: url("/special-contents/osaka-castle/image/bg-box05-rep.png") 0 16px repeat-y;
    background-size: contain;
    padding-bottom: 6%;
  }
  .bg_area_block_inner.block_inner05::after {
    background: url("/special-contents/osaka-castle/image/bg-box05-btm.png") 0 bottom no-repeat;
    background-size: 100%;
    padding-bottom: 5.8%;
  }
  .bg_area_block_inner.block_inner06 {
    background: url("/special-contents/osaka-castle/image/bg-box06-rep.png") 0 16px repeat-y;
    background-size: contain;
    padding-bottom: 7.2%;
  }
  .bg_area_block_inner.block_inner06::after {
    background: url("/special-contents/osaka-castle/image/bg-box06-btm.png") 0 bottom no-repeat;
    background-size: 100%;
    padding-bottom: 5.8%;
  }
  .bg_area_block_inner.block_inner07 {
    background: url("/special-contents/osaka-castle/image/bg-box07-rep.png") 0 16px repeat-y;
    background-size: contain;
    padding-bottom: 7.9%;
  }
  .bg_area_block_inner.block_inner07::after {
    background: url("/special-contents/osaka-castle/image/bg-box07-btm.png") 0 bottom no-repeat;
    background-size: 100%;
    padding-bottom: 5.8%;
  }
  .bg_area_block_inner.block_inner08 {
    background: url("/special-contents/osaka-castle/image/bg-box08-rep.png") 0 16px repeat-y;
    background-size: contain;
    padding-bottom: 6.6%;
  }
  .bg_area_block_inner.block_inner08::after {
    background: url("/special-contents/osaka-castle/image/bg-box08-btm.png") 0 bottom no-repeat;
    background-size: 100%;
    padding-bottom: 5.8%;
    z-index: 2;
  }
}

@media (max-width: 767px) {
  .bg_area_block {
    padding: 20px;
  }
  .bg_area_block.block01 {
    background: #a30d23;
  }
  .bg_area_block.block02 {
    background: #a00e54;
  }
  .bg_area_block.block03 {
    background: #a03b0e;
  }
  .bg_area_block.block04 {
    background: #6e9913;
  }
  .bg_area_block.block05 {
    background: #016934;
  }
  .bg_area_block.block06 {
    background: #00807f;
  }
  .bg_area_block.block07 {
    background: #5c3c8e;
  }
  .bg_area_block.block08 {
    background: #405589;
  }
  .bg_area_block_inner {
    background: #fff;
    padding: 15px;
  }
}

/* -- bg_item_block -- */
.bg_item_block,
.bg_item_block_inner {
  position: relative;
}

.bg_item_block {
  z-index: 1;
}

@media (min-width: 768px) {
  .bg_item_block:not(:first-child) {
    margin-top: 15px;
  }
  .bg_item_block.block01 {
    background: #f4e3eb;
  }
  .bg_item_block.block02 {
    background: #fbeae1;
  }
  .bg_item_block.block03 {
    background: #eaf0dc;
  }
  .bg_item_block.block04 {
    background: #e3e6ed;
  }
  .bg_item_block.block05 {
    background: #e7e2ee;
  }
  .bg_item_block::before,
  .bg_item_block::after,
  .bg_item_block_inner::before,
  .bg_item_block_inner::after {
    content: "";
    display: block;
    height: 20px;
    position: absolute;
    width: 20px;
  }
  .bg_item_block::before {
    background: -webkit-linear-gradient(-45deg, #fff 0%, #fff 49%, transparent 50%, transparent 100%);
    background: linear-gradient(135deg, #fff 0%, #fff 49%, transparent 50%, transparent 100%);
    left: 0;
    top: 0;
  }
  .bg_item_block::after {
    background: -webkit-linear-gradient(45deg, transparent 0%, transparent 49%, #fff 50%, #fff 100%);
    background: linear-gradient(45deg, transparent 0%, transparent 49%, #fff 50%, #fff 100%);
    right: 0;
    top: 0;
  }
  .bg_item_block_inner {
    height: 100%;
  }
  .bg_item_block_inner::before {
    background: -webkit-linear-gradient(45deg, #fff 0%, #fff 49%, transparent 50%, transparent 100%);
    background: linear-gradient(45deg, #fff 0%, #fff 49%, transparent 50%, transparent 100%);
    bottom: 0;
    left: 0;
  }
  .bg_item_block_inner::after {
    background: -webkit-linear-gradient(-45deg, transparent 0%, transparent 49%, #fff 50%,#fff 100%);
    background: linear-gradient(135deg, transparent 0%, transparent 49%,#fff 50%, #fff 100%);
    bottom: 0;
    right: 0;
  }
}

@media (max-width: 767px) {
  .bg_item_block:not(:first-child) {
    margin-top: 20px;
  }
  .bg_item_block_inner {
    margin: 0 auto;
    max-width: 500px;
  }
}

/* -- bg_image_block -- */
.bg_image_block {
  position: relative;
}

.bg_image_block::after {
  content: "";
  display: block;
  position: absolute;
  z-index: 2;
}

@media (min-width: 768px) {
  .bg_image_block::after {
    background: url("/special-contents/osaka-castle/image/bg-pattern-wave01.png") 0 bottom no-repeat;
    background-size: contain;
    height: 216px;
    top: -33.5499%;
    right: -5.5556%;
    width: 39.3828%;
  }
}

/* -- display_item_block -- */
.display_item_block {
  margin: 0 auto;
}
.display_item_block_inner {
  margin: 0 auto;
  max-width: 800px;
}

.display_item_image_block01 {
  position: relative;
}

.display_item_name_block01,
.display_item_name_block02,
.display_item_name_block03 {
  text-align: center;
}

.display_item_image_block02_photo.item_type01 {
  float: left;
}

.display_item_image_block02_photo.item_type01 img {
  text-align: center;
}

.display_item_image_block02_photo.item_type02 {
  float: right;
}

.display_item_image_block03 {
  display: flex;
  justify-content: space-between;
}

.display_item_image_block03_photo {
  text-align: center;
}

.display_item_image_block04 {
  max-width: 523px;
}

.display_item_title_block {
  font-size: 0;
}

.display_item_col_block {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

@media (min-width: 768px) {
  .display_item_block.item_col3_block {
    margin: 0;
    width: 32.2%;
  }
  .display_item_block.item_col3_block:nth-of-type(n+4) {
    margin-top: 15px;
  }
  .display_item_block_inner.block_inner01 {
    padding: 40px 20px;
  }
  .display_item_block_inner.block_inner02 {
    height: 100%;
    padding: 30px 6px 22px;
    width: 96%;
  }
  .display_item_block_inner.block_inner03 {
    padding: 40px 20px 30px;
  }
  .display_item_block_inner.block_inner04 {
    padding: 30px 5px 30px 12px;
    width: 96%;
  }
  .display_item_block_inner.block_inner05 {
    padding: 40px 40px 30px;
  }
  .display_item_block_inner.block_inner06 {
    height: 100%;
    padding: 60px 40px;
  }
  .display_item_block_inner.block_inner07 {
    height: 100%;
    padding: 20px 36px 25px;
  }
  .display_item_caption_block {
    bottom: 8px;
    right: 24px;
  }
  .display_item_name_block01 {
    font-size: 0;
    margin-top: 20px;
  }
  .display_item_text_block01 {
    margin-top: 15px;
    padding: 0 35px;
  }
  .display_item_text_block02 {
    margin-top: 14px;
  }
  .display_item_text_block03 {
    margin-top: 8px;
    padding: 0 35px;
  }
  .display_item_text_block04 {
    margin-top: 4px;
  }
  .display_item_name_block02 {
    font-size: 0;
  }
  .display_item_name_block02.block_type01 {
    margin-left: 30%;
  }
  .display_item_name_block02.block_type02 {
    margin-left: 31%;
  }
  .display_item_name_block02.block_type03 {
    margin-left: 32%;
  }
  .display_item_name_block02.block_type04 {
    margin-left: 29%;
    margin-right: -3%;
  }
  .display_item_name_block03 {
    margin-top: 12px;
  }
  .display_item_image_block02_photo {
    position: relative;
  }
  .display_item_image_block02_photo.photo01 {
    margin: -86px 4% 20px 0;
  }
  .display_item_image_block02_photo.photo02 {
    margin: -49px 4% 10px -.8%;
  }
  .display_item_image_block02_photo.photo03 {
    margin: -51px 4% 10px -2%;
  }
  .display_item_image_block02_photo.photo04 {
    margin: -24px 3% 30px -4%;
  }
  .display_item_image_block02_photo.photo05 {
    margin: -18px 3% 0 -2.8%;
  }
  .display_item_image_block02_photo.item_type03 {
    align-items: center;
    display: flex;
    justify-content: center;
    text-align: center;
  }
  .display_item_image_block02_caption {
    letter-spacing: .03em;
    margin: 11px 0 0 13px;
  }
  .display_item_image_block03 {
    height: 100%;
  }
  .display_item_image_block03_photo {
    width: 21%;
  }
  .display_item_image_block04 {
    padding-top: 20px;
    width: 76%;
  }
  .display_item_image_block05 {
    padding-top: 20px;
    width: 72%;
  }
  .display_item_image_block05.adj_margin {
    margin-top: -25px;
  }
  .display_item_image_block06 {
    margin-top: -10px;
  }
  .display_item_image_block06_photo {
    text-align: center;
  }
  .display_item_title_block {
    margin-top: 12px;
    text-align: center;
  }
  .display_item_section_text {
    margin-top: 16px;
    padding: 0 20px;
  }
  .display_item_block.display_item_col2 {
    margin: 0;
    width: 49%;
  }
  .display_item_block.display_item_col2:nth-of-type(n+3) {
    margin-top: 16px;
  }
  .display_item_block.display_item_col3 {
    margin: 16px 0 0;
    width: 32%;
  }
}

@media (min-width: 768px) and (max-width: 1000px) {
  .display_item_image_block02_photo.photo01,
  .display_item_image_block02_photo.photo02,
  .display_item_image_block02_photo.photo03,
  .display_item_image_block02_photo.photo04,
  .display_item_image_block02_photo.photo05 {
    margin-left: 0;
    margin-right: 2%;
    width: 33%;
  }
  .display_item_name_block02.block_type01,
  .display_item_name_block02.block_type02,
  .display_item_name_block02.block_type03,
  .display_item_name_block02.block_type04,
  .display_item_name_block02.block_type05 {
    margin: 0 auto 0 28%;
  }
}

@media (max-width: 767px) {
  .display_item_caption_block {
    bottom: 6px;
    right: 12px;
  }
  .display_item_name_block01,
  .display_item_name_block03 {
    margin-top: 10px;
  }
  .display_item_text_block01,
  .display_item_text_block02,
  .display_item_text_block03,
  .display_item_text_block04 {
    margin-top: 5px;
  }
  .display_item_image_block01_photo {
    margin-top: 10px;
  }
  .display_item_image_block02_photo {
    margin: 5px 15px 10px 0;
    width: 50%;
  }
  .display_item_image_block02_photo.item_type03 {
    float: left;
  }
  .display_item_image_block02_caption {
    margin-top: 4px;
  }
  .display_item_image_block03_photo,
  .display_item_image_block06_photo {
    align-self: center;
  }
  .display_item_image_block03_photo img,
  .display_item_image_block06_photo img {
    height: 100%;
    max-height: 300px;
    width: auto;
  }
  .display_item_image_block02 {
    margin: 0 auto;
    max-width: 500px;
  }
  .display_item_image_block04,
  .display_item_image_block05,
  .display_item_image_block07 {
    margin-top: 20px;
    width: 76%;
  }
  .display_item_image_block06 {
    display: flex;
    justify-content: space-between;
  }
  .display_item_col2 {
    margin: 0 auto;
  }
}

/* -- display_spot_block -- */
.display_spot_block {
  margin: 0 auto;
  max-width: 848px;
  position: relative;
}

.display_spot_image_block {
  display: flex;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}

.display_spot_image_block_photo.block_photo02.item_2wrap {
  padding-top: 11%;
}

.display_spot_image_block_photo_inner {
  position: relative;
}

.display_spot_image_block_photo_inner + .display_spot_image_block_photo_inner {
  margin-top: 6%;
}

.display_image_zoom {
  position: absolute;
}

.display_spot_image_block_name {
  text-align: center;
}

@media (min-width: 768px) {
  .display_spot_block_wrap {
    padding: 0 20px;
  }
  .display_spot_block_wrap.block_wrap01 {
    margin-top: 44px;
  }
  .display_spot_block_wrap.block_wrap02 {
    margin-top: 78px;
  }
  .display_spot_block_wrap.block_wrap03 {
    margin-top: 29px;
  }
  .display_spot_block::after {
    content: "";
    display: block;
    height: 39px;
    position: absolute;
    bottom: -39px;
    left: 0;
    width: 100%;
    z-index: 1;
  }
  .display_spot_block.spot_block01::after {
    background: url("/special-contents/osaka-castle/image/bg-box01-sub01-btm.png") 0 top no-repeat;
    background-size: contain;
  }
  .display_spot_block.spot_block02::after {
    background: url("/special-contents/osaka-castle/image/bg-box01-sub02-btm.png") 0 top no-repeat;
    background-size: contain;
  }
  .display_spot_block.spot_block03::after {
    background: url("/special-contents/osaka-castle/image/bg-box04-sub01-btm.png") 0 top no-repeat;
    background-size: contain;
  }
  .display_spot_block_item.block_item01 {
    background: url("/special-contents/osaka-castle/image/bg-box01-sub01-rep.png") 0 0 repeat-y;
    background-size: 100%;
    padding: 30px 38px 0 40px;
  }
  .display_spot_block_item.block_item02 {
    background: url("/special-contents/osaka-castle/image/bg-box01-sub02-rep.png") 0 0 repeat-y;
    background-size: 100%;
    padding: 17px 34px 20px 24px;
  }
  .display_spot_block_item.block_item03 {
    background: url("/special-contents/osaka-castle/image/bg-box04-sub01-rep.png") 0 0 repeat-y;
    background-size: 100%;
    padding: 22px 32px 0 28px;
  }
  .display_spot_image_block {
    justify-content: space-between;
  }
  .display_spot_image_block_inner.block_inner01 {
    max-width: 236px;
    width: 30.6494%;
  }
  .display_spot_image_block_inner.block_inner02 {
    max-width: 250px;
    width: 31.6456%;
  }
  .display_spot_image_block_inner.block_inner02.adj_space01 {
    margin-top: 15px;
  }
  .display_spot_image_block_inner.block_inner03 {
    max-width: 250px;
    width: 31.6456%;
  }
  .display_spot_image_block_inner.block_inner03 {
    max-width: 510px;
    width: 64.557%;
  }
  .display_spot_image_block_inner:nth-of-type(n+4) {
    margin-top: 10px;
  }
  .display_image_zoom {
    bottom: -16px;
    right: -16px;
  }
  .display_spot_image_caption_block {
    bottom: 5px;
    left: 16px;
  }
  
  .display_spot_image_block_name {
    margin-top: 15px;
  }
  .display_spot_image_block_name.block_name_col2 {
    margin-top: 10px;
  }
  .display_spot_image_block_text {
    margin-top: 10px;
    word-break: break-all;
  }
}

@media (max-width: 767px) {
  .display_spot_block_wrap {
    margin-top: 20px;
    padding: 10px;
  }
  .display_spot_block_wrap.block_wrap01 {
    background: #f4d9dc;
  }
  .display_spot_block_wrap.block_wrap02 {
    background: #f1eadb;
  }
  .display_spot_block_wrap.block_wrap03 {
    background: #eaf0dc;
  }
  .display_spot_block_title {
    letter-spacing: .06em;
    padding-bottom: 6px;
  }
  .display_spot_block_title.block_title01 {
    border-bottom: 2px solid #a30d23;
  }
  .display_spot_block_title.block_title02 {
    border-bottom: 2px solid #a03b0e;
  }
  .display_spot_block_title.block_title03 {
    border-bottom: 2px solid #6f9913;
  }
  .display_spot_block_item {
    margin-top: 15px;
  }
  .display_spot_image_block.image_block01 {
    justify-content: space-around;
  }
  .display_spot_image_block.image_block02 {
    justify-content: space-between;
  }
  .display_spot_image_block_inner.block_inner01 {
    width: 100%;
  }
  .display_spot_image_block_inner.block_inner01:not(:first-of-type) {
    margin-top: 15px;
  }
  .display_spot_image_block_inner.block_inner02 {
    width: 48%;
  }
  .display_spot_image_block_inner.block_inner02:nth-of-type(n+3) {
    margin-top: 15px;
  }
  .display_spot_image_block_inner.block_inner03 {
    margin-top: 15px;
    width: 100%;
  }
  .display_spot_image_block_photo {
    margin: 0 auto;
    text-align: center;
  }
  .display_spot_image_block_photo.block_photo01 {
    max-width: 236px;
  }
  .display_spot_image_block_photo.block_photo02 {
    max-width: 250px;
  }
  .display_spot_image_block_photo.block_photo03 {
    max-width: 510px;
  }
  .display_image_zoom {
    bottom: -8px;
    right: -18px;
  }
  .display_spot_image_caption_block {
    bottom: 6px;
    left: 10px;
  }
  
  .display_spot_image_block_name {
    margin-top: 10px;
  }
  .display_spot_image_block_name.text_s01 {
    height: 4.8vw;
  }
  .display_spot_image_block_name.text_s02 {
    height: 4vw;
  }
  .display_spot_image_block_name img {
    max-height: 100%;
  }
  .display_spot_image_block_text {
    margin-top: 8px;
  }
}

/* -- label -- */
.label_entrance {
  position: absolute;
}

@media (min-width: 768px) {
  .label_cultural_properties,
  .label_art_treasures01,
  .label_art_treasures02,
  .label_important_sword {
    font-size: 0;
    position: absolute;
  }
  .label_cultural_properties {
    left: -40px;
    top: -20px;
    width: 13%;
  }
  .label_art_treasures01 {
    left: -20px;
    top: -20px;
    width: 31%;
  }
  .label_art_treasures02 {
    left: -13px;
    top: -18px;
    width: 13%;
  }
  .label_entrance {
    font-size: 0;
    z-index: 2;
  }
  .label_entrance.entrance_free {
    right: -22px;
    top: -22px;
    width: 10.33%;
  }
  .label_entrance.entrance_paid {
    right: -26px;
    top: -16px;
    width: 11%;
  }
  .label_important_sword {
    left: -15px;
    top: -8px;
    width: 20%;
  }
}

@media (min-width: 768px) and (max-width: 980px) {
  .label_art_treasures02 {
    left: -2%;
  }
}

@media (max-width: 767px) {
  .label_cultural_properties,
  .label_art_treasures01,
  .label_art_treasures02,
  .label_important_sword {
    background: #a30d23;
    color: #fff;
    font-weight: 600;
    padding: 6px 10px;
    text-align: center;
  }
  .label_entrance {
    color: #fff;
    font-weight: 600;
    padding: 6px 10px;
    left: -2px;
    top: -38px;
    text-align: center;
    width: calc(100% + 4px);
  }
  .label_entrance.entrance_free {
    background: #405589;
  }
  .label_entrance.entrance_paid {
    background: #5c3c8e;
  }
  .label_cultural_properties img,
  .label_art_treasures01 img,
  .label_art_treasures02 img,
  .label_entrance img,
  .label_important_sword img {
    display: none;
  }
}

/* -- btn_detail -- */
.spot_btn_detail {
  margin: 0 auto;
}

.spot_btn_detail a {
  display: block;
  position: relative;
  text-align: center;
}

.spot_btn_detail_text {
  position: relative;
}

.spot_btn_detail_text::after {
  content: "";
  display: block;
  position: absolute;
}


@media (min-width: 768px) {
  .spot_btn_detail {
    width: 260px;
  }
  .spot_btn_detail a {
    background: -webkit-linear-gradient(top, #952325 0%,#982326 20%,#a7272a 44%,#a7272a 50%,#a7272a 56%,#982326 80%,#952325 100%);
    background: linear-gradient(to bottom, #952325 0%,#982326 20%,#a7272a 44%,#a7272a 50%,#a7272a 56%,#982326 80%,#952325 100%);
    color: #fff;
    padding: 12px 30px 12px 16px;
  }
  .spot_btn_detail a:hover {
    background: -webkit-linear-gradient(top, #a5181b 0%,#b92427 20%,#c72225 44%,#c72225 50%,#c72225 56%,#b92427 80%,#a5181b 100%);
    background: linear-gradient(to bottom, #a5181b 0%,#b92427 20%,#c72225 44%,#c72225 50%,#c72225 56%,#b92427 80%,#a5181b 100%);
    color: #fff;
  }
  .spot_btn_detail.btn_detail01 a {
    box-shadow: #816f4f 0px 4px 8px;
  }
  .spot_btn_detail.btn_detail02 a {
    box-shadow: #99938f 0px 4px 8px;
  }
  .spot_btn_detail_text {
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: .04em
  }
  .spot_btn_detail_text::after {
    border-color: transparent transparent transparent #fff;
    border-style: solid;
    border-width: 6px 0 6px 10px;
    height: 0;
    right: -28px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    width: 0;
  }
}

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
  .spot_btn_detail a:hover {
    background: -webkit-linear-gradient(top, #952325 0%,#982326 20%,#a7272a 44%,#a7272a 50%,#a7272a 56%,#982326 80%,#952325 100%);
    background: linear-gradient(to bottom, #952325 0%,#982326 20%,#a7272a 44%,#a7272a 50%,#a7272a 56%,#982326 80%,#952325 100%);
  }
}

@media (max-width: 767px) {
  .spot_btn_detail {
    width: 70%;
  }
  .spot_btn_detail a {
    background: linear-gradient(to bottom, #fff2f2 0%, #ffd9d9 100%);
    border: 1px solid #c92121;
    border-radius: 4px;
    box-shadow: none;
    box-shadow: none;
    color: #c92121;
    font-weight: normal;
    padding: 8px 12px;
  }
}

/* -- movie_-thumb -- */
.movie_thumb {
  position: relative;
}

.movie_thumb::before {
  background: url("/special-contents/image-cmn/btn-play.png") 0 0 no-repeat;
  background-size: contain;
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
}

@media (min-width: 768px) {
  .movie_thumb::before {
    height: 60px;
    width: 60px;
  }
}

@media (max-width: 767px) {
  .movie_thumb::before {
    height: 50px;
    width: 50px;
  }
}

/* -- box_arrival -- */
.arrival_block {
  position: relative;
}

.arrival_image_block {
  position: relative;
}

.arrival_text_block {
  position: relative;
}

@media (min-width: 768px) {
  .arrival_block {
    padding-bottom: 20px;
  }
  .arrival_image_caption_block {
    bottom: 10px;
    left: 30px;
  }
  .arrival_text_block {
    margin-top: 30px;
    padding: 0 30px;
  }
  .arrival_text_block_lead {
    margin: 0 0 0 auto;
    max-width: 610px;
    width: 69%;
  }
  .arrival_text_block_image {
    position: absolute;
    bottom: -23px;
    left: 10px;
    width: 31%;
  }
  .arrival_info_block {
    margin-top: 23px;
  }
}

@media (max-width: 767px) {
  .arrival_block {
    flex-wrap: wrap;
    margin-top: 20px;
  }
  .arrival_image_caption_block {
    bottom: 6px;
    left: 10px;
  }
  .arrival_text_block {
    margin-top: 15px;
  }
  .arrival_text_block_lead {
    width: 100%;
  }
  .arrival_text_block_image {
    margin: 10px auto 0;
    max-width: 500px;
    width: 100%;
  }
}

/* -- box_possession_sword -- */
@media (min-width: 768px) {
  .possession_sword_block_inner {
    margin-top: 25px;
    padding: 0 25px;
  }
}

@media (max-width: 767px) {
  .possession_sword_block_inner {
    margin-top: 15px;
  }
}

/* -- box_possession_armor -- */
.possession_armor_item_block_inner {
  display: flex;
  justify-content: space-between;
}

.possession_armor_image_block {
  position: relative;
}

.possession_armor_caption_block {
  text-align: right;
}

@media (min-width: 768px) {
  .possession_armor_block_inner {
    margin-top: 25px;
    padding: 0 5.9783%;
  }
  .possession_armor_item_block_inner {
    padding: 30px 45px 22px 40px;
  }
  .possession_armor_caption_block {
    margin-top: 5px;
    padding-right: 5px;
  }
  .possession_armor_info_block {
    margin-left: 20px;
    width: 56.5518%;
  }
  .possession_armor_info_block.block01 {
    margin-top: 75px;
  }
  .possession_armor_info_block.block02 {
    margin-top: 44px;
  }
  .possession_armor_info_block.block03 {
    margin-top: 53px;
  }
  .possession_armor_name_block {
    text-align: center;
  }
  .possession_armor_text_block {
    margin-top: 10px;
  }
}

@media (min-width: 768px) and (max-width: 860px) {
  .possession_armor_info_block.block01 {
    margin-top: 20px;
  }
  .possession_armor_info_block.block02 {
    margin-top: 20px;
  }
  .possession_armor_info_block.block03 {
    margin-top: 20px;
  }
}

@media (max-width: 767px) {
  .possession_armor_block_inner {
    margin-top: 15px;
  }
  .possession_armor_item_block_inner {
    flex-wrap: wrap;
  }
  .possession_armor_image_block {
    width: 100%;
  }
  .possession_armor_image_block_item {
    margin-top: 10px;
    text-align: center;
  }
  .possession_armor_caption_block {
    margin-top: 3px;
    padding-right: 12px;
  }
  .possession_armor_info_block {
    margin-top: 5px;
    width: 100%;
  }
  .possession_armor_name_block {
    text-align: center;
  }
  .possession_armor_text_block {
    margin-top: 5px;
  }
}

/* -- box_history_museum -- */
.history_museum_image_block {
  position: relative;
}

.history_museum_text_block_image {
  float: right;
}

@media (min-width: 768px) {
  .history_museum_image_block_item {
    position: absolute;
    bottom: 0;
    left: 18px;
  }
  .history_museum_text_block {
    margin-top: 23px;
    padding: 0 30px;
  }
  .history_museum_text_block_image {
    margin: 7px 0 20px 40px;
  }
  .history_museum_info_block {
    margin-top: 66px;
  }
}

@media (max-width: 767px) {
  .history_museum_block {
    margin-top: 20px;
  }
  .history_museum_image_block_item {
    text-align: center;
  }
  .history_museum_text_block {
    margin-top: 10px;
  }
  .history_museum_text_block_image {
    margin: 0 0 10px 15px;
    width: 50%;
  }
  .history_museum_section_block {
    margin: 10px auto 0;
    max-width: 500px;
  }
}

/* -- box_history_museum_sword -- */
@media (min-width: 768px) {
  .history_museum_sword_block_inner {
    margin-top: 30px;
    padding: 0 25px;
  }
  .history_museum_sword_info_block {
    margin-top: 25px;
  }
}

@media (max-width: 767px) {
  .history_museum_sword_block_inner {
    margin-top: 20px;
  }
  .history_museum_sword_info_block {
    margin-top: 15px;
  }
}

/* -- box_special_attachement -- */
.special_attachement_event_image_block {
  float: left;
}

@media (min-width: 768px) {
  .special_attachement_block {
    margin-top: 25px;
  }
  .special_attachement_event_block {
    margin: 25px auto 0;
    max-width: 892px;
    padding: 0 20px;
  }
  .special_attachement_event_block_text {
    margin-top: 23px;
    padding: 0 2.5%;
  }
  .special_attachement_event_image_block {
    margin: 0 20px 10px 0;
  }
  .special_attachement_event_text_block {
    padding-top: 20px;
  }
  .special_attachement_info_block {
    margin-top: 25px;
  }
  .special_attachement_block_inner {
    padding: 0 35px;
  }
  .special_attachement_block_inner.block_inner01 {
    margin-top: 43px;
  }
  .special_attachement_block_inner.block_inner02 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: 15px;
  }
  .special_attachement_spot_info_block {
    margin-top: 35px;
    padding: 0 30px;
  }
}

@media (max-width: 767px) {
  .special_attachement_block {
    margin-top: 15px;
  }
  .special_attachement_event_block {
    margin-top: 15px;
  }
  .special_attachement_event_block_title {
    border-bottom: 2px solid #006934;
    letter-spacing: .06em;
    padding-bottom: 6px;
  }
  .special_attachement_event_block_text {
    margin-top: 10px;
  }
  .special_attachement_event_image_block {
    margin: 0 15px 10px 0;
    width: 50%;
  }
  .special_attachement_info_block {
    margin-top: 15px;
  }
  .special_attachement_block_inner {
    margin-top: 20px;
  }
}

/* -- box_shrine -- */
.shrine_text_block {
  position: relative;
}

.shrine_info_block {
  background: #ded8e8;
  margin: 0 auto;
  max-width: 840px;
}

.shrine_info_image_block {
  float: left;
}

.shrine_spot_item_block_image {
  float: right;
}

.shrine_spot_item_block_name {
  text-align: right;
}

@media (min-width: 768px) {
  .shrine_text_block {
    margin-top: 23px;
    padding: 0 0 25px 6.7%;
  }
  .shrine_info_block {
    width: 94%;
  }
  .shrine_info_block_title {
    margin-left: 35%;
    margin-top: 10px;
  }
  .shrine_info_image_block {
    margin: -44px 20px 10px 0;
    width: 31%;
  }
  .shrine_info_block_text {
    margin-top: 10px;
  }
  .shrine_text_block_lead {
    max-width: 510px;
    width: 58%;
  }
  .shrine_text_block_image {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 51.3044%;
  }
  .shrine_info_block {
    padding: 30px 30px 24px;
  }
  .shrine_spot_item_block {
    margin: 40px auto 0;
    padding: 0 55px 0 6.5%;
  }
  .shrine_spot_text_block {
    margin-top: -4px;
  }
  .shrine_spot_item_block_image {
    margin-left: 16px;
  }
}

@media (max-width: 767px) {
  .shrine_block {
    margin-top: 20px;
  }
  .shrine_text_block {
    margin-top: 15px;
  }
  .shrine_text_block_image {
    margin: 10px auto 0;
    max-width: 500px;
  }
  .shrine_info_block {
    padding: 10px;
  }
  .shrine_info_block_title {
    border-bottom: 2px solid #5c3c8e;
    padding-bottom: 6px;
    text-align: center;
  }
  .shrine_info_image_block {
    margin: 0 15px 10px 0;
    width: 50%;
  }
  .shrine_info_block_text {
    margin-top: 10px;
    padding: 0 10px;
  }
  .shrine_spot_item_block {
    margin-top: 20px;
  }
  .shrine_spot_item_block_image {
    margin: 0 0 10px 15px;
    width: 50%;
  }
  .shrine_spot_text_block {
    margin-top: -5px;
  }
}

/* -- treasure_hall -- */
.treasure_hall_block {
  position: relative;
}

.treasure_hall_lead_block {
  max-width: 760px;
}

.treasure_hall_caption_block {
  margin: 0 auto;
}

.treasure_hall_display_block {
  align-items: center;
  display: flex;
  position: relative;
}

.treasure_hall_info_block {
  align-items: center;
  display: flex;
  margin: 0 auto;
  max-width: 750px;
}

@media (min-width: 768px) {
  .treasure_hall_event_block.event_block01 {
    margin-top: 50px;
  }
  .treasure_hall_event_block.event_block02 {
    margin-top: 100px;
  }
  .treasure_hall_block_inner {
    margin-top: 16px;
    padding: 0 25px;
  }
  .treasure_hall_event_block_title {
    margin: 0 auto;
    padding-left: 15px;
    width: 100%;
  }
  .treasure_hall_event_block_title img {
    margin: 0 auto;
  }
  .treasure_hall_event_block_info {
    margin-top: 20px;
    padding: 0 37px;
    width: 100%;
  }
  .treasure_hall_caption_block {
    margin-top: 5px;
    max-width: 750px;
    text-align: right;
    width: 94%;
  }
  .treasure_hall_display_block.block01 {
    margin: 32px auto 0;
    max-width: 794px;
    width: 90%;
  }
  .treasure_hall_display_item_block.block01 {
    margin-top: -34px;
    padding-left: 10px;
    width: 64.1025%;
  }
  .treasure_hall_display_item_block_text.text01 {
    margin-top: 7px;
    padding-left: 3px;
  }
  .treasure_hall_display_block.block02 {
    margin: -38px 0 0 auto;
    max-width: 550px;
    width: 62%;
  }
  .treasure_hall_display_item_block.block02 {
    width: 64%;
  }
  .treasure_hall_display_item_block_name.name02 {
    margin-right: 23px;
    text-align: right;
  }
  .treasure_hall_display_item_block_text.text02 {
    margin-top: 8px;
  }
  .treasure_hall_display_block_photo.photo02 {
    position: absolute;
    right: -11px;
    top: -47px;
    width: 40%;
  }
  .treasure_hall_display_block.block03 {
    margin: 65px auto 0;
    max-width: 794px;
    width: 90%;
  }
  .treasure_hall_display_item_block.block03 {
    margin-top: -5px;
    padding-left: 35px;
    width: 61%;
  }
  .treasure_hall_display_item_block_text.text03 {
    margin-top: 10px;
  }
  .treasure_hall_display_block_photo.photo03 {
    margin: -45px 0 0 -10px;
  }
  .treasure_hall_display_block.block04 {
    margin: 52px 0 0 auto;
    max-width: 530px;
    width: 60%;
  }
  .treasure_hall_display_block.block04::after {
    background: url("/special-contents/osaka-castle/image/bg-pattern-wave02.png") 0 0 no-repeat;
    background-size: contain;
    content: "";
    display: block;
    height: 179px;
    position: absolute;
    left: -38%;
    top: -17px;
    width: 60%;
  }
  .treasure_hall_display_item_block.block04 {
    width: 58%;
  }
  .treasure_hall_display_item_block_name.name04 {
    margin-right: 3px;
    text-align: right;
  }
  .treasure_hall_display_item_block_text.text04 {
    margin-top: 10px;
  }
  .treasure_hall_display_block_photo.photo04 {
    position: absolute;
    right: -11px;
    top: -108px;
    width: 39%;
  }
  .treasure_hall_display_block.block05 {
    margin: -125px auto 0;
    max-width: 794px;
    width: 90%;
  }
  .treasure_hall_display_item_block.block05 {
    margin-top: 135px;
    padding-left: 25px;
    width: 49%;
  }
  .treasure_hall_display_item_block_text.text05 {
    margin-top: 10px;
  }
  .treasure_hall_display_block_photo.photo05 {
    margin: -50px 0 0 -20px;
  }
  .treasure_hall_item_block {
    margin-top: 47px;
    padding: 0 20px 254px;
  }
  .treasure_hall_item_block_title {
    text-align: center;
  }
  .treasure_hall_image_block {
    position: absolute;
    bottom: -27px;
    left: 12.3%;
    width: 78%;
    z-index: 1;
  }
  .treasure_hall_info_block {
    justify-content: space-between;
    margin-top: 10px;
    width: 94%;
  }
  .treasure_hall_info_text_block {
    margin-left: 20px;
    width: 26%;
  }
  .treasure_hall_info_text_block_text {
    margin-top: 12px;
  }
}

@media (max-width: 900px) and (min-width: 768px) {
  .treasure_hall_display_block.block02 {
    margin-top: 0;
  }
  .treasure_hall_display_block_photo.photo02 {
    top: -20px;
  }
  .treasure_hall_display_block_photo.photo04 {
    top: -80px;
  }
  .treasure_hall_display_block.block05 {
    margin-top: -130px;
  }
}

@media (max-width: 767px) {
  .treasure_hall_event_block {
    margin-top: 50px;
  }
  .treasure_hall_block_inner {
    margin-top: 20px;
  }
  .treasure_hall_event_block_title {
    padding-bottom: 6px;
    width: 100%;
    text-align: center;
  }
  .treasure_hall_event_block_title.block_title01 {
    border-bottom: 2px solid #405589;
  }
  .treasure_hall_event_block_title.block_title02 {
    border-bottom: 2px solid #5c3c8e;
  }
  .treasure_hall_event_block_info {
    margin-top: 15px;
  }
  .treasure_hall_caption_block {
    margin-top: 6px;
  }
  .treasure_hall_item_block {
    margin-top: 15px;
  }
  .treasure_hall_item_block_title {
    border-bottom: 2px solid #405589;
    letter-spacing: .06em;
    padding-bottom: 6px;
  }
  .treasure_hall_display_block {
    flex-wrap: wrap;
    margin: 20px auto 0;
    max-width: 500px;
  }
  .treasure_hall_display_block_photo {
    margin: 0 auto;
  }
  .treasure_hall_display_item_block {
    margin-top: 5px;
  }
  .treasure_hall_display_item_block.block02,
  .treasure_hall_display_item_block.block04 {
    order: 2;
  }
  .treasure_hall_display_block_photo.photo02,
  .treasure_hall_display_block_photo.photo04 {
    order: 1;
  }
  .treasure_hall_display_item_block.block05 {
    margin-top: 10px;
  }
  .treasure_hall_image_block {
    margin: 15px auto -15px;
    max-width: 500px;
  }
  .treasure_hall_info_block {
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 20px;
  }
  .treasure_hall_info_text_block {
    margin-top: 10px;
  }
  .treasure_hall_info_text_block_title {
    text-align: center;
  }
  .treasure_hall_info_text_block_text {
    margin-top: 5px;
  }
}

/* -- box_cooperate -- */
.cooperate_image_block {
  position: relative;
  max-width: 942px;
  margin: 0 auto;
}

.cooperate_spot_block {
  position: relative;
}

.cooperate_info_block {
  border-bottom: 1px solid #fff;
}

.cooperate_info_block:last-of-type {
  border-bottom: none;
}

.cooperate_info_block_title {
  position: relative;
  text-align: center;
}

.cooperate_info_block_title_inner {
  display: block;
  position: relative;
  text-align: center;
}

.cooperate_info_block_title::before,
.cooperate_info_block_title::after {
  content: "";
  display: block;
  position: absolute;
}

.cooperate_info_block_title::before,
.cooperate_info_block_title::after {
  background: #000;
  height: 1px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.cooperate_info_block_title::before {
  left: 0;
}

.cooperate_info_block_title::after {
  right: 0;
}

.cooperate_info_image_block {
  position: relative;
}

.cooperate_btn_block {
  text-align: center;
}

.cooperate_btn_block_text {
  font-weight: 600;
}

.cooperate_btn {
  margin: 0 auto;
}

.cooperate_sns_block .block_sns {
  display: flex;
  justify-content: center;
  margin-top: 0;
}

.cooperate_sns_block .sns_label {
  color: #000;
  letter-spacing: 0;
}

.cooperate_sns_block .list_sns {
  width: auto;
}

.cooperate_sns_block .list_sns .list_sns_mail a {
  color: #000;
  letter-spacing: 0;
}

@media (min-width: 768px) {
  .box_cooperate {
    margin-top: 32px;
  }
  .cooperate_image_block {
    padding: 0 29px;
  }
  .cooperate_spot_block {
    background: url("/special-contents/osaka-castle/image/bg-cooperate-rep.png") 0 0;
    margin-top: 0;
    padding: 27px 0 136px;
  }
  .cooperate_spot_block::before {
    background: url("/special-contents/osaka-castle/image/bg-cooperate-top.png") center bottom no-repeat;
    content: "";
    display: block;
    height: 76px;
    position: absolute;
    top: -76px;
    left: 0;
    width: 100%;
  }
  .cooperate_image_block_item {
    width: 63%;
  }
  .cooperate_image_block_item.item02 {
    position: absolute;
    bottom: 0;
    right: 7px;
  }
  .cooperate_spot_block_inner {
    margin-top: 63px;
  }
  .cooperate_info_block {
    padding: 0 40px 20px;
    margin-top: 40px;
  }
  .cooperate_info_block_title {
    font-size: 0;
  }
  .cooperate_info_block_title::before,
  .cooperate_info_block_title::after {
    width: 32%;
  }
  .cooperate_info_block_title img {
    margin: 0 auto;
  }
  .cooperate_info_block_detail {
    margin-top: 16px;
  }
  .cooperate_info_image_block {
    float: right;
    margin-left: 20px;
    text-align: right;
    width: 36%;
  }
  .cooperate_info_image_block.block02:nth-child(n+2) {
    margin-top: 1.4%;
  }
  .cooperate_info_image_block .bg_roll::after {
    padding-bottom: 75%;
  }
  .cooperate_info_caption_block {
    bottom: 13px;
    right: 16px;
  }
  .cooperate_info_text_block {
    padding-bottom: 6.4%;
    width: 62%;
  }
  .block02 .cooperate_info_text_block {
    padding-bottom: 7%;　/* 個別調整用 */
  }
  .cooperate_link_block {
    margin-top: -10px;
    width: 62%;
  }
  .cooperate_btn {
    margin-top: 15px;
    width: 260px;
  }
  .cooperate_sns_block {
    margin: 32px auto 0;
  }
  .cooperate_sns_block .block_sns {
    align-items: baseline;
  }
  .cooperate_sns_block .list_sns {
    flex-wrap: wrap;
    justify-content: center;
    padding: 8px 0;
    width: 56%;
  }
  .museum_intro_block .cooperate_sns_block .list_sns li {
    margin: 5px;
  }
  .museum_intro_block .cooperate_sns_block .list_sns li:first-child {
    margin-left: 15px;
  }
  .cooperate_sns_block .sns_label {
    border: 1px solid #000;
    padding: 2px 10px;
    width: 44%;
  }
  /* 動画2つ 写真1枚のレイアウト */
  .cooperate_info_image_block.type_col02 {
    display: flex;
    flex-wrap: wrap;
    float: none;
    justify-content: center;
    width: 100%;
  }
  .cooperate_info_image_block.type_col02 .section_image_block {
    width: 36%;
  }
  .cooperate_info_image_block.type_col02 .section_image_block:nth-child(even) {
    margin-left: 20px;
  }
  .cooperate_link_block.type_center {
    margin: 20px auto 0;
  }
}

@media (min-width: 768px) and (max-width: 890px) {
  .cooperate_info_block {
    padding: 0 20px 20px;
  }
  .cooperate_info_block_title::before,
  .cooperate_info_block_title::after {
    width: 28%;
  }
  .cooperate_info_text_block {
    padding-bottom: 5%;
  }
  .cooperate_info_image_block.block02 {
    margin-top: 0;
  }
}

@media (max-width: 767px) {
  .cooperate_image_block {
    padding: 0 20px;
  }
  .cooperate_image_block_item {
    margin: 0 auto;
    max-width: 500px;
  }
  .cooperate_spot_block {
    background: #d6c08c;
    padding: 20px 20px 10px;
  }
  .cooperate_spot_block_inner {
    margin-top: 20px;
  }
  .cooperate_info_block {
    display: flex;
    flex-wrap: wrap;
    margin-top: 15px;
    padding-bottom: 20px;
    width: 100%;
  }
  .cooperate_info_block_title {
    color: #231815;
    font-size: 2.2rem;
    font-weight: 600;
    width: 100%;
  }
  .cooperate_info_block_title::before,
  .cooperate_info_block_title::after {
    width: 36%;
  }
  .cooperate_info_block_title_inner {
    background: #d6c08c;
    display: inline-block;
    padding: 0 10px;
    z-index: 2;
  }
  .cooperate_info_block_detail {
    margin-top: 15px;
  }
  .cooperate_info_text_block {
    margin-top: 15px;
  }
  .cooperate_info_image_block {
    margin: 0 auto;
    max-width: 380px;
    text-align: center;
  }
  .cooperate_info_image_block.block02 {
    margin-top: 15px;
  }
  .cooperate_info_caption_block {
    bottom: 10px;
    right: 10px;
  }
  .cooperate_link_block {
    margin-top: 15px;
  }
  .cooperate_btn {
    margin-top: 10px;
    width: 64%;
  }
  .cooperate_sns_block {
    margin: 15px auto 0;
  }
  .cooperate_sns_block .block_sns {
    flex-wrap: wrap;
  }
  .cooperate_sns_block .list_sns {
    justify-content: center;
  }
  .cooperate_info_image_block.type_col02 .section_image_block:nth-child(n+2) {
    margin-top: 3%;
  }
}

/* -- museum_intro_block -- */
.museum_bnr_block.block01 {
  max-width: 496px;
}

.museum_bnr_block.block01 img {
  border-radius: 0;
  box-shadow: none;
}

@media (min-width: 768px) {
  .museum_intro_block .list_box li {
    box-shadow: 0 0 5px 0 #b1b1b1;
  }
  .museum_intro_block .list_box .distance .distance_info {
    line-height: 1.4706;
    font-size: 1.7rem;
  }
  .museum_intro_block .spot_box {
    margin-top: 40px;
  }
  .museum_intro_block .spot_box .spot_title {
    font-size: 1.8rem;
    letter-spacing: .15em;
  }
  .museum_intro_block .spot_box .spot_info {
    padding: 25px 40px 39px;
  }
  .museum_intro_block .relate_box .list_relate {
    margin-top: 8px;
    padding-left: 0;
  }
  .museum_intro_block .relate_box .list_relate li {
    line-height: 1.2222;
    margin-top: 14px;
    padding-left: 20px;
  }
  .museum_intro_block .relate_box .list_relate li a {
    font-size: 1.8rem;
  }
  .museum_bnr_block.block01 {
    margin-top: 40px;
  }
}

@media (max-width: 767px) {
  .museum_intro_block .spot_box .spot_info {
    padding: 20px 15px;
  }
  .museum_intro_block .block_sns .list_sns li {
    margin-left: 2vw;
  }
  .museum_bnr_block.block01 {
    margin-top: 20px;
  }
}

/* -- other_spot_area -- */
.other_spot_area {
  margin: 0 auto;
  position: relative;
}

.other_spot_area_inner {
  margin: 0 auto;
  max-width: 1000px;
}

.other_spot_lead {
  margin: 0 auto;
}

@media (min-width: 768px) {
  .other_spot_area {
    background: #b4412f;
  }
  .other_spot_area::before {
    background: url("/special-contents/osaka-castle/image/bg-facilities-top.png") center bottom no-repeat;
    content: "";
    display: block;
    height: 76px;
    position: absolute;
    top: -60px;
    left: 0;
    width: 100%;
  }
  .other_spot_area_inner {
    padding: 0 20px 50px;
  }
  .other_spot_lead_block {
    color: #fff;
    margin-top: 12px;
    max-width: 690px;
  }
  .other_spot_section_wrap {
    margin-top: 15px;
  }
  .other_spot_block:not(:first-child) {
    margin-top: 30px;
  }
  .block_sns .list_sns .list_sns_mail a {
    padding: 4px 0 4px 24px;
  }
}

@media (max-width: 767px) {
  .other_spot_area {
    padding: 20px;
  }
  .other_spot_lead {
    text-align: justify;
  }
  .other_spot_block {
    margin-top: 20px;
  }
}

/* -- relational_museum_block -- */
.relational_museum_title,
.relational_museum_block_inner {
  position: relative;
}

.relational_museum_title {
  color: #000;
  display: flex;
  flex-wrap: wrap;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.2;
  position: relative;
}

.relational_museum_block_inner {
  margin: 0 auto;
}

.relational_museum_title::before,
.relational_museum_title::after,
.relational_museum_block_inner::before,
.relational_museum_block_inner::after {
  content: "";
  display: block;
  position: absolute;
}

.relational_museum_title .name {
  display: inline-block;
  line-height: 1.4;
}

.relational_museum_title .title_sub {
  display: inline-block;
  line-height: 1.4;
}

.relational_museum_intro_block {
  display: flex;
  flex-wrap: wrap;
  position: relative;
}

.relational_museum_image_box .image {
  font-size: 0;
}

.relational_museum_info_block_inner {
  display: flex;
}

.relational_museum_info_block_label {
  align-items: center;
  background: #a18247;
  color: #fff;
  display: flex;
  font-weight: normal;
  justify-content: center;
}
.relational_museum_info_block_text {
  align-items: center;
  background: #f0e5d2;
  border: 1px solid #a18247;
  border-left: none;
  display: flex;
  justify-content: center;
}

.relational_museum_access_block {
  width: 100%;
}

.relational_museum_access_info_block .address,
.relational_museum_access_info_block .tell {
  padding-left: 3.4em;
  text-indent: -3.4em;
}

.relational_museum_access_info_block .caution {
  padding-left: 1em;
  text-indent: -1em;
}

.relational_museum_access_info_block .web {
  padding-left: 0;
  text-indent: 0;
}

.relational_museum_access_info_block .web_inner {
  display: inline-block;
}

.relational_museum_access_info_block .link_title {
  font-weight: normal;
}

.relational_museum_image_box_inner {
  display: flex;
  flex-wrap: wrap;
}

.relational_museum_btn_block_text {
  font-weight: 600;
  text-align: center;
}

.relational_btn {
  margin: 0 auto;
}

.relational_museum_sns .block_sns {
  display: flex;
  letter-spacing: 0;
}

.relational_museum_sns .block_sns .list_sns {
  flex-wrap: wrap;
  justify-content: center;
}

@media (min-width: 768px) {
  .relational_museum_block:not(:first-child) {
    margin-top: 30px;
  }
  .relational_museum_title {
    align-items: center;
    background: -webkit-linear-gradient(left, #76582a 0%,#795b2c 20%,#a78942 44%,#b49548 50%,#a78942 56%,#795b2c 80%,#76582a 100%);
    background: linear-gradient(to right, #76582a 0%,#795b2c 20%,#a78942 44%,#b49548 50%,#a78942 56%,#795b2c 80%,#76582a 100%);
    color: #fff;
    font-size: 3.2rem;
    justify-content: center;
    letter-spacing: .1em;
    min-height: 60px;
    overflow: hidden;
    padding: 10px 210px 6px 60px;
    text-align: center;
  }
  .relational_museum_title::before,
  .relational_museum_title::after {
    background: #fff9ed;
    height: 1px;
    left: 0;
    width: 100%;
    z-index: 2;
  }
  .relational_museum_title::before {
    top: 3px;
  }
  .relational_museum_title::after {
    bottom: 3px;
  }
  .relational_museum_title .name {
    padding-left: 15px;
  }
  .relational_museum_title.title_s01 {
    letter-spacing: .04em;
    padding-left: 40px;
  }
  .relational_museum_title.title_s01 .name {
    padding-left: 0;
  }
  .relational_museum_title .area {
    background: #4e3818;
    color: #fff;
    padding: 14px 51px 16px 40px;
    position: absolute;
    right: 0;
    top: 0;
  }
  .relational_museum_title .area::before,
  .relational_museum_title .area::after {
    background: #4e3818;
    content: "";
    display: block;
    position: absolute;
  }
  .relational_museum_title .area::before {
    height: 80px;
    left: -61px;
    top: -46px;
    transform: rotate(56.3deg);
    width: 120px;
  }
  .relational_museum_title .area::after {
    height: 40px;
    bottom: 0;
    left: 0;
    width: 100px;
  }
  .relational_museum_title .area_inner {
    position: relative;
    z-index: 1;
  }
  .relational_museum_block_inner {
    background: -webkit-linear-gradient(top, #806135 0%,#806135 20%,#b09250 44%,#c3a55b 50%,#b09250 56%,#806135 80%,#806135 100%);
    background: linear-gradient(to bottom, #806135 0%,#806135 20%,#b09250 44%,#c3a55b 50%,#b09250 56%,#806135 80%,#806135 100%);
    max-width: 960px;
    overflow: hidden;
    padding: 0 38px;
    width: 100%;
  }
  .relational_museum_block_inner::before,
  .relational_museum_block_inner::after {
    background: url("/special-contents/osaka-castle/image/bg-pattern-line01.png") 0 0 no-repeat;
    height: 576px;
    width: 16px;
    top: 50%;
    transform: translateY(-50%);
  }
  .relational_museum_block_inner::before {
    left: 12px;
  }
  .relational_museum_block_inner::after {
    right: 12px;
  }
  .relational_museum_intro_block {
    background: #fff;
    justify-content: space-between;
    padding: 30px 64px 26px 60px;
  }
  .relational_museum_text_block {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    order: 1;
    width: 100%;
  }
  .relational_museum_image_box {
    order: 2;
    width: 100%;
  }
  .relational_museum_image_box.movie_item {
    width: 66%;
  }
  .relational_museum_info_block_label {
    padding: 10px 4px;
    width: 100px;
  }
  .relational_museum_info_block_text {
    padding: 20px 20px 4px 24px;
    width: 250px;
  }
  .relational_museum_info_block_text_inner {
    letter-spacing: 0;
  }
  .relational_museum_access_block {
    margin-top: 10px;
  }
  .relational_museum_access_block_inner {
    align-items: center;
    border-bottom: 1px solid #b4412f;
    border-top: 1px solid #b4412f;
    display: flex;
    justify-content: space-between;
    margin-top: 24px;
    padding: 15px 0;
  }
  .relational_museum_access_info_block {
    letter-spacing: .04em;
    padding: 0 10px;
  }
  .relational_museum_access_info_block li:not(:first-child) {
    margin-top: 4px;
  }
  .relational_museum_access_info_block a {
    color: #1c5ad9;
  }
  .relational_museum_btn_block {
    margin: -8px -4px 0 0;
  }
  .relational_btn {
    margin-top: 11px;
    width: 260px;
  }
  .relational_museum_movie_block {
    order: 3;
    margin-top: 30px;
    width: 31.579%;
  }
  .relational_museum_movie_block .bg_roll::after {
    padding-bottom: 70.83333%
  }
  .relational_museum_sns {
    margin-top: 20px;
    order: 3;
    width: 100%;
  }
  .relational_museum_sns.movie_item {
    order: 4;
  }
  .relational_museum_sns .sns_label {
    background: #e3cb8f;
    border: 1px solid #000;
    color: #000;
    line-height: 1.2;
    padding: 4px 8px;
    width: 220px;
  }
  .relational_museum_sns .block_sns {
    align-items: center;
    padding: 0 25px;
  }
  .relational_museum_sns .block_sns li {
    margin-left: 10px;
  }
  .block_sns .list_sns .list_sns_mail {
    font-size: 1.8rem;
  }
  .relational_museum_sns .block_sns .list_sns {
    max-width: 480px;
  }
  .relational_museum_title .title_sub {
    font-size: 2.7rem;
  }
  .relational_museum_title .area {
    font-size: 2.6rem;
  }
  .relational_museum_title_sub {
    font-size: 2.4rem;
    letter-spacing: .04em;
    line-height: 1.3333;
    margin-top: 6px;
  }
  .relational_museum_image_box {
    margin-top: 30px;
  }
  .relational_museum_image_box_inner {
    justify-content: space-between;
  }
  .relational_museum_image_box_inner.image_col2 .image {
    width: 48.6842%;
  }
  .relational_museum_image_box_inner.image_col3 .image {
    width: 48%;
  }
}

@media (min-width: 767px) and (max-width: 940px) {
  .relational_museum_intro_block {
    padding: 30px 20px 26px;
  }
  .relational_museum_title_sub {
    width: 56%;
  }
  .relational_museum_info_block {
    width: 44%;
  }
  .relational_museum_sns .sns_label {
    width: 50%;
  }
}

@media (max-width: 767px) {
  .relational_museum_block {
    border-bottom: 1px dashed #c92121;
    padding: 0 0 30px;
    word-break: break-all;
  }
  .relational_museum_block:not(:first-child) {
    margin-top: 30px;
  }
  .relational_museum_block:last-of-type {
    border-bottom: none;
    padding-bottom: 0;
  }
  .relational_museum_title {
    background: none;
    border-left: 5px solid #c92121;
    color: #000;
    font-size: 1.8rem;
    letter-spacing: .1em;
    line-height: 1.25;
    padding: .25rem 0 .25rem 10px;
  }
  .relational_museum_title .area {
    background: none;
    color: #000;
    display: inline-block;
    font-size: 1.8rem;
    letter-spacing: 0;
    margin-left: 20px;
    padding: 0;
    position: relative;
    right: auto;
    top: auto;
    -webkit-transform: none;
    transform: none;
  }
  .relational_museum_title .area::before {
    content: "[";
    position: absolute;
    left: -10px;
  }
  .relational_museum_title .area::after {
    content: "]";
    position: absolute;
    right: -10px;
  }
  .relational_museum_intro_block {
    margin-top: 15px;
  }
  .relational_museum_title_sub {
    margin-top: 15px;
    padding: 0;
  }
  .relational_museum_info_block_label {
    padding: 4px 10px;
  }
  .relational_museum_info_block_text {
    padding: 16px 10px 10px;
  }
  .relational_museum_access_block {
    margin-top: 10px;
    padding: 0;
  }
  .relational_museum_access_block_inner {
    flex-wrap: wrap;
    margin: 15px auto 0;
    width: 90%;
  }
  .relational_museum_intro_block .info_box {
    border: none;
    padding: 0;
    width: 100%;
  }
  .relational_museum_access_info_block .web a {
    display: inline-block;
    letter-spacing: 0;
  }
  .relational_museum_access_info_block .caution {
    margin-top: 4px;
  }
  .relational_museum_access_block .info_text {
    margin-top: 10px;
  }
  .relational_museum_access_block .info_btn {
    margin: 20px auto 0;
    width: 70%;
  }
  .relational_museum_access_block .info_btn a {
    background: linear-gradient(to bottom, #fff2f2 0%, #ffd9d9 100%);
    border: 1px solid #c92121;
    border-radius: 4px;
    box-shadow: none;
    box-shadow: none;
    color: #c92121;
    font-weight: normal;
    padding: 8px 12px;
  }
  .relational_museum_access_block .info_btn a::after {
    border: none;
    border-bottom: 2px solid #c92121;
    border-right: 2px solid #c92121;
    height: 10px;
    right: 12px;
    top: 50%;
    -webkit-transform: translateY(-50%) rotate(-45deg);
    transform: translateY(-50%) rotate(-45deg);
    width: 10px;
  }
  .relational_museum_image_box {
    margin-top: 0;
    width: 100%;
  }
  .relational_museum_image_box_inner {
    justify-content: space-between;
  }
  .relational_museum_image_box_inner .image {
    text-align: center;
    width: 49.254%;
  }
  .relational_museum_info_block {
    margin-top: 15px;
  }
  .relational_museum_btn_block {
    margin-top: 15px;
  }
  .relational_btn {
    margin-top: 10px;
    width: 64%;
  }
  .relational_museum_movie_block {
    margin: 20px auto 0;
  }
  .relational_museum_sns {
    margin-top: 15px;
    width: 100%;
  }
  .relational_museum_sns .block_sns {
    flex-wrap: wrap;
  }
  .relational_museum_sns .list_sns li {
    margin-left: 4vw;
  }
  .relational_museum_sns .list_sns li:first-child {
    margin-left: 0;
  }
  .relational_museum_sns .list_sns .list_sns_mail {
    margin-left: 0;
  }
}

/* -- other_museum_intro_block -- */
.other_museum_intro_block {
  display: flex;
  justify-content: space-between;
}

.other_museum_intro_block_title {
  position: relative;
}

.other_museum_intro_block_title_inner {
  width: 100%;
}

.other_museum_intro_image_block {
  display: flex;
  justify-content: space-between;
}

.other_museum_intro_image_block img {
  width: 100%;
}

.museum_bnr_block.block02 {
  margin: 0 auto;
  max-width: 730px;
  width: 100%;
}

@media (min-width: 768px) {
  .other_museum_intro_block_wrap {
    margin-top: 43px;
  }
  .other_museum_intro_block {
    padding-right: 26px;
  }
  .other_museum_intro_block_title {
    align-items: center;
    display: flex;
    justify-content: center;
    padding: 0 10px;
    text-align: center;
    width: 59%;
  }
  .other_museum_intro_block_title::before,
  .other_museum_intro_block_title::after {
    background: url("/special-contents/osaka-castle/image/bg-ttl-line01.png") 0 0 no-repeat;
    background-size: contain;
    content: "";
    display: block;
    height: 24px;
    position: absolute;
    left: 0;
    width: 100%;
  }
  .other_museum_intro_block_title::before {
    top: -3px;
  }
  .other_museum_intro_block_title::after {
    bottom: 3px;
  }
  .other_museum_intro_block_text {
    color: #fff;
    margin-left: 20px;
    padding-top: 2px;
    width: 38%;
  }
  .other_museum_intro_image_block {
    margin: 25px auto 0;
    max-width: 920px;
  }
  .other_museum_intro_image_block .item:not(:first-child) {
    margin-left: 10px;
  }
  .museum_bnr_block.block02 {
    margin-top: 30px;
  }
  .museum_bnr_block.block02 .bg_roll::after {
    padding-bottom: 13.6986%;
  }
  .museum_bnr_block.block02 .caption02 {
    color: #fff;
    padding: 0 20px;
    text-align: left;
  }
}

@media (max-width: 767px) {
  .other_museum_intro_block_wrap {
    display: flex;
    flex-wrap: wrap;
    margin-top: 30px;
  }
  .other_museum_intro_title_block {
    order: 1;
  }
  .other_museum_intro_block {
    margin-top: 15px;
    order: 3;
  }
  .other_museum_intro_image_block {
    margin-top: 20px;
    order: 2;
  }
  .other_museum_intro_image_block .item:not(:first-child) {
    margin-left: 1.4%;
  }
  .museum_bnr_block.block02 {
    margin-top: 15px;
    max-width: 600px;
    order: 4;
    width: 90%;
  }
  .museum_bnr_block.block02 .caption02 {
    padding: 0;
    text-align: left;
  }
}

/* -- bnr_section_block -- */
.bnr_section_block + .museum_bnr_block {
  margin: 0 auto;
}

@media (min-width: 768px) {
  .bnr_section_block_wrap {
    background: #fff;
  }
  .bnr_section_block {
    padding: 50px 36px 0;
  }
  .bnr_section_block .bnr_section_inner {
    margin: 42px auto 0;
  }
  .bnr_section_block + .museum_bnr_block {
    background: #fff;
    padding: 50px 0 0;
  }
  .bnr_section_block + .museum_bnr_block .museum_bnr {
    margin: 0 auto;
    width: 630px;
  }
  .box__links__content .bnr_item:nth-child(n+4) {
    margin-top: 18px;
  }
}

@media (max-width: 767px) {
  .bnr_section_block {
    background: none;
    border: 1px solid #c92121;
    margin-top: 20px;
    padding: 0;
  }
  .bnr_section_block .bnr_section_inner {
    margin-top: 0;
    padding: 20px;
    width: 100%;
  }
  .bnr_section_block + .museum_bnr_block {
    margin-top: 35px;
    width: 90%;
  }
  .bnr_section_block + .museum_bnr_block .caption {
    margin: 6px auto 0;
    max-width: 600px;
    text-align: left;
  }
}

/* -- box_seo -- */
@media (min-width: 768px) {
  .box_seo .seo_frame::before,
  .box_seo .seo_frame::after {
    background-size: contain;
    max-width: 773px;
    width: 100%;
  }
}

/* -- bnr_contents_block 共通上書き -- */
@media screen and (max-width: 767px) {
  .bnr_contents_block {
    max-width: calc(100% - 24px);
  }
}