@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Roboto:ital,wght@0,100..900;1,100..900&family=Zen+Kaku+Gothic+Antique:wght@500;700&display=swap');

/*------------------------------------------------------

	リセット

------------------------------------------------------*/

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	font-style: normal;
	vertical-align: baseline;
	background: transparent;
}
body { line-height: 1;}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block;}
ul { list-style: none;}
blockquote, q { quotes: none;}
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none;}
a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
table { border-collapse: collapse; border-spacing: 0;}
hr {
	display: block;
	height: 1px;
	border: 0;
	border-bottom: 1px dotted #464646;
	margin: 0;
	padding: 0;
}
input, select { vertical-align: middle;}
img {
	max-width: 100%;
	height: auto;
	border: none;
	vertical-align: top;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	image-rendering: auto;
}
*, *:before, *:after { box-sizing: border-box;}


/*------------------------------------------------------

	グローバル

------------------------------------------------------*/

body {
	font-family: "Zen Kaku Gothic Antique", sans-serif;
	color: #505050;
	font-size: 1em;
  letter-spacing: 0.05em;
	line-height: 2;
  font-weight: 500;
	position: relative;
}

.fo_roboto { font-family: "Roboto", sans-serif; font-weight: 400;}
.fo_bebas { font-family: "Bebas Neue", sans-serif; font-weight: 400;}

.medium { font-weight: 500;}
.bold { font-weight: 700;}

p { margin-bottom: 30px;}
p:last-child { margin-bottom: 0px;}

a { color: #505050; text-decoration: none; transition: 0.3s;}
a:hover { color: #9A3956;}

/* 文字装飾 */
.fo06 { font-size: 0.6em !important;}
.fo07 { font-size: 0.7em !important;}
.fo075 { font-size: 0.75em !important;}
.fo08 { font-size: 0.8em !important;}
.fo085 { font-size: 0.85em !important;}
.fo09 { font-size: 0.9em !important;}
.fo105 { font-size: 1.05em !important;}
.fo11 { font-size: 1.1em !important;}
.fo115 { font-size: 1.15em !important;}
.fo12 { font-size: 1.2em !important;}
.fo125 { font-size: 1.25em !important;}
.fo13 { font-size: 1.3em !important;}
.fo14 { font-size: 1.4em !important;}
.fo15 { font-size: 1.5em !important;}
.fo16 { font-size: 1.6em !important;}
.fo17 { font-size: 1.7em !important;}
.fo18 { font-size: 1.8em !important;}
.fo19 { font-size: 1.9em !important;}
.fo20 { font-size: 2em !important;}

.lh12 { line-height: 1.2 !important;}
.lh14 { line-height: 1.4 !important;}
.lh16 { line-height: 1.6 !important;}
.lh18 { line-height: 1.8 !important;}
.lh20 { line-height: 2 !important;}
.lh23 { line-height: 2.3 !important;}

.fo_white { color: #FFFFFF !important;}
.fo_red { color: #9a3956 !important;}
.fo_black { color: #505050 !important;}

.ls01 { letter-spacing: 0.1em;}
.ls02 { letter-spacing: 0.2em;}

.text_stroke { -webkit-text-stroke: 1px #505050; text-stroke: 1px #505050; paint-order: stroke;}
.text_stroke.red { -webkit-text-stroke: 2px #9a3956; text-stroke: 2px #9a3956; paint-order: stroke;}

.underline { background: linear-gradient(transparent 70%, rgba(255,240,0,0.65) 0%);}

/* ボックス */
.cont900 { max-width: 930px; padding: 0px 15px; margin: 0px auto;}
.cont1000 { max-width: 1030px; padding: 0px 15px; margin: 0px auto;}
.cont1100 { max-width: 1130px; padding: 0px 15px; margin: 0px auto;}
.cont1200 { max-width: 1230px; padding: 0px 15px; margin: 0px auto;}

.left { float: left;}
.right { float: right;}

.pos_rel { position: relative;}
.pos_ab { position: absolute;}

.z50 { z-index: 50;}
.z-1 { z-index: -1;}

.img_middle { vertical-align: middle;}

.ta_center { text-align: center;}
.ta_right { text-align: right;}
.ta_left { text-align: left;}
.ta_right-s_center { text-align: right;}
.ta_left-s_center { text-align: left;}
.ta_center-s_left { text-align: center;}

.back_white { background-color: #fff !important;}
.back_red { background-color: #9a3956 !important;}
.back_gray { background-color: #f5f3f2 !important;}

.back_image01 {
  background-color: #f8eced;
  background-image: linear-gradient(90deg, #ffffff 1px, transparent 1px), linear-gradient(#ffffff 1px, transparent 1px);
  background-position: 10px 10px;
  background-size: 29px 29px;
}

@media print,  (min-width: 769px) {
	.hidden_l { display: none !important;}
}

/* リスト */
ol { padding-left: 2em;}
ol li { list-style: outside decimal;}

.list_disc { padding-left: 1em;}
.list_disc li { list-style: outside disc;}

.list_indent { padding-left: 1em;}
.list_indent li { text-indent: -1em;}

/* margin */
.mb00 { margin-bottom: 0px !important;}
.mb05 { margin-bottom: 5px !important;}
.mb10 { margin-bottom: 10px !important;}
.mb15 { margin-bottom: 15px !important;}
.mb20 { margin-bottom: 20px !important;}
.mb25 { margin-bottom: 25px !important;}
.mb30 { margin-bottom: 30px !important;}
.mb40 { margin-bottom: 40px !important;}
.mb50 { margin-bottom: 50px !important;}
.mb60 { margin-bottom: 60px !important;}
.mb80 { margin-bottom: 80px !important;}
.mb100 { margin-bottom: 100px !important;}

.mb40-20 { margin-bottom: 40px !important;}
.mb50-30 { margin-bottom: 50px !important;}
.mb60-30 { margin-bottom: 60px !important;}
.mb80-40 { margin-bottom: 80px !important;}
.mb100-60 { margin-bottom: 100px !important;}
.mb120-60 { margin-bottom: 120px !important;}
.mb120-80 { margin-bottom: 120px !important;}
.mb160-80 { margin-bottom: 160px !important;}

.mt10 { margin-top: 10px !important;}
.mt20 { margin-top: 20px !important;}
.mt30 { margin-top: 30px !important;}
.mt40 { margin-top: 40px !important;}
.mt50 { margin-top: 50px !important;}
.mt60 { margin-top: 60px !important;}
.mt70 { margin-top: 70px !important;}
.mt80 { margin-top: 80px !important;}

/* clearFix */
.clearFix { zoom: 100%;}
.clearFix:after {
	content: "";
	clear: both;
	height: 0;
	display: block;
	visibility: hidden;
}


/* ------------------------
	ヘッダー
------------------------ */

.header { display: flex; justify-content: space-between; align-items: center; border-top: solid 15px #9a3956; padding: 0px 30px;}
.header h1 { margin-top: -15px;}
.header .box01 { display: flex; align-items: center; gap: 4em;}

.header .list01 { display: flex; align-items: center; gap: 0.7em; letter-spacing: 0;}
.header_tel a { background: url("../images/common/ico_tel.svg") no-repeat left center; background-size: 0.8em auto; font-weight: bold; color: #9a3956 !important; font-size: 1.3em; padding-left: 1em; line-height: 1.2;}
.header_btn a { display: block; font-weight: bold; letter-spacing: 0; font-size: 0.9em; color: #505050; background: url("../images/common/ico_mail.svg") no-repeat 0.8em center #fff; background-size: 1.5em auto; border: solid 3px #9a3956; padding: 0.1em 0.8em 0.1em 2.7em;}
.header_btn a span { letter-spacing: -0.3em;}
.header_btn a:hover { transform: scale(1.05);}

.header .gn { display: flex; align-items: center; gap: 1.5em; letter-spacing: 0;}
.header .gn li { font-weight: bold;}

/* ドロップダウンメニュー */
.gn .dd { position: relative; z-index: 99999;}
.gn .dd:after { content: ""; display: inline-block; width: 0.85em; height: 0.85em; background: url("../images/common/gn_arrow01.svg") no-repeat center center; background-size: 100% auto;}
.gn .dd > div {
	position: absolute;
	display: none;
	left: 50%;
  transform: translateX(-50%);
	padding-top: 1em;
}
.gn .dd ul {
  min-width: 16em;
	border: solid 3px #9a3956;
  border-radius: 0.6em;
	background-color: #fffeee;
	padding: 0.5em 1.5em 1em;
	z-index: 99999;
}
.gn .dd ul:before {
  content: "";
  position: absolute;
  background: url("../images/common/gn_arrow02.svg") no-repeat center bottom;
  background-size: auto 100%;
  width: 1em;
  height: 0.9em;
  top: 3px;
  left: 50%;
  margin-left: -0.5em;
}
.gn .dd ul a { display: block; color: #9a3956; border-bottom: solid 1px #9a3956; background: url("../images/common/gn_arrow03.svg") no-repeat right center; background-size: 0.55em auto; line-height: 1.6; padding: 0.5em 0;}
.gn .dd ul a:hover { opacity: 0.7;}

.clone-nav {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
	width: 100%;
  padding-left: 0px !important;
	transition: .3s;
	transform: translateY(-100%);
  border-top: none;
}
.is-show { transform: translateY(0);}

.fixed_btn { position: fixed; right: 0px; top: 150px; z-index: 9999; border: solid 1px #943853; border-right: none; border-top-left-radius: 10px; border-bottom-left-radius: 10px; padding: 1.5em 1em; display: flex; flex-flow: column; gap: 1.5em;}

@media only screen and (max-width: 1500px) {
  .header { padding: 0px 15px;}
  .header h1 { width: 20%;}
  .header .box01 { gap: 1.5em;}
  .header .gn { font-size: min(1.1vw,1em); gap: 1.3em;}
}

@media only screen and (max-width: 1260px) {
  .header .hidden_s, .clone-nav, .fixed_btn { display: none !important;}
  .sp-navi.hidden_l { display: block !important;}
  
  /* ハンバーガーメニュー */
  .humberger {
    background: #9a3956;
    cursor: pointer;
    display: block;
    position: fixed;
    top: 0px;
    right: 0px;
    width: 50px;
    height: 50px;
    z-index: 10001;
  }
  .humberger span {
    background: #fff;
    position: absolute;
    left: 10px;
    width: 30px;
    height: 2px;
    transition: 0.4s;
  }
  .humberger span:nth-of-type(1) { top: 9px;}
  .humberger span:nth-of-type(2) { top: 17px;}
  .humberger span:nth-of-type(3) { top: 25px;}
  .humberger:after {
    color: #fff;
    content: 'MENU';
    display: block;
    font-size: 10px;
    text-decoration: none;
    text-align: center;
    transition: 0.4s;
    position: absolute;
    left: 0;
    bottom: 1px;
    width: 100%;
  }
  .is-open .humberger:after { content: 'CLOSE';}
  .is-open .humberger span:nth-of-type(1) {transform: translateY(6px) rotate(-45deg);}
  .is-open .humberger span:nth-of-type(2) { opacity: 0;}
  .is-open .humberger span:nth-of-type(3) { transform: translateY(-10px) rotate(45deg);}
  
  /* ナビ本体 */
  .sp-navi { -webkit-text-size-adjust: 100%;}
  .sp-navi.is-open .sp-navi-inner { opacity: 1; visibility: visible; z-index: 10000;}
  .sp-navi .sp-navi-inner {
    background: #f5f3f2;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    position: fixed;
    top: 0;
    left: 0px;
    height: 100%;
    width: 100%;
    transition: .5s;
    padding-bottom: 30px;
    font-size: 1.1em;
  }
  
  .sp-navi .logo img { width: auto; max-height: 60px; margin-top: -10px; vertical-align: bottom;}
  
  .sp-navi .list01 a { color: #505050;}
  .sp-navi .list01 li { position: relative;}
  .sp-navi .list01 li > a { display: block; text-decoration: none; border-bottom: dashed 1px #ccc; padding: 0.5em 60px 0.5em 2.5em; position: relative;}
  .sp-navi .list01 > li > a:before { content: ""; position: absolute; left: 1em; top: 50%; margin-top: -1.5px; width: 0.7em; height: 3px; background-color: #9a3956;}
  .sp-navi .list01 > li ul { display: none;}
  .sp-navi .list01 > li li a { display: block; text-decoration: none; border-bottom: dashed 1px #ccc; padding: 0.5em 60px 0.5em 3.5em; position: relative;}
  .sp-navi .list01 > li li a:before { content: ""; position: absolute; left: 2em; top: 50%; width: 0.8em; height: 1px; background-color: #9a3956;}
  .sp-navi .list01 li.show_sp { display: block;}

  .sp-navi .open_btn { position: absolute; top: 0px; right: 0px; height: 2.6em; background-color: #9a3956; width: 2.6em; line-height: 2.4; font-size: 1.2em; text-align: center; cursor: pointer; color: #fff;}
  .sp-navi .open_btn:after { content: "+";}
  .sp-navi .open_btn.open:after { content: "-";}
  
  .sp-navi .list02 { display: flex;flex-wrap: wrap; justify-content: center; gap: 20px; font-size: 1.2em; padding: 0 15px;}
}

/* ------------------------
	フッター
------------------------ */

.footer.under { margin-top: 70px;}

.footer .bg01 { background-image: image-set(url("../images/common/footer_bg.webp") 1x, url("../images/common/footer_bg@2x.webp") 2x); background-size: cover; padding-top: 70px;}
.footer .bg01 .text01 { display: table; margin: auto;}
.footer .bg01 .text01:before, .footer .bg01 .text01:after { content: ""; position: absolute; width: 2px; height: 1.1em; background: #fff; bottom: 0.1em;}
.footer .bg01 .text01:before { transform: rotate(-30deg); left: -0.8em;}
.footer .bg01 .text01:after { transform: rotate(30deg); right: -0.8em;}
.footer .bg01 .more_btn { transform: translateY(50%);}

.footer .il_bg01 { left: 3%; top: 8%;}
.footer .il_bg02 { right: -1%; bottom: 15%;}

.list_sns { display: flex; justify-content: center; gap: 1.3em;}

.footer .bg03 { padding: 50px 0px;}
.footer_nav { display: flex; justify-content: space-between; flex-wrap: wrap; max-width: 800px; margin: auto; column-gap: 1.5em; font-size: min(3.5vw,1em);}
.footer_nav a { color: #fff;}
.footer_nav a:hover { opacity: 0.7;}
.footer_nav li li { position: relative; padding-left: 1em;}
.footer_nav li li:before { content: ""; position: absolute; width: 0.6em; left: 0px; top: 50%; height: 1px; background: #fff;}

.footer .copy { display: flex; justify-content: center; gap: 1em 1.5em; flex-wrap: wrap; align-items: center;}

.pagetop { position: fixed; right: 30px; bottom: 0px; padding-bottom: 60px; z-index: 9999;}


/*------------------------------------------------------

	トップページ

------------------------------------------------------*/

.top_ttl { font-size: 3.2em;}
.top_ttl .icon { width: auto; height: 1.15em; margin-right: 0.3em;}

.text_bg { font-size: 6.4em; line-height: 0.6; letter-spacing: 0.2em;}

.mainimage { max-width: 1170px; padding: 2.5% 0px 2.5% 5%; margin: auto; display: flex; justify-content: center; gap: 2%;}
.mainimage .text_area { width: 53%; display: flex; flex-flow: column; justify-content: space-between;}
.mainimage figure { width: 65%; margin-right: -17%;}

@media only screen and (max-width: 1200px) {
  .mainimage { max-width: 1170px; padding: 4% 0px 4% 3%; gap: 3%;}
  .mainimage .text_area { width: 50%;}
  .mainimage figure { width: 50%; margin-right: -3%;}
}

.top_sec01 .box02 { display: flex; justify-content: center; gap: 9%;}
.top_sec01 h2 { font-size: 2.55em;}
.top_sec01 .img_box { display: flex; align-items: center; gap: 70px;}
.top_sec01 .bg02 { margin-top: -8%;}

.top_sec01 .bg03 { left: -4%; top: 42%;}
.top_sec01 .bg04 { right: -3%; top: 18%;}

@media only screen and (max-width: 1000px) {
  .top_sec01 .box02 { gap: 2%; padding: 0px 5%; font-size: min(1.8vw,1em);}
  .top_sec01 .img_box { gap: 30px; width: 80%; margin: auto;}
}

.top_sec02 h2 { display: flex; justify-content: center; align-items: flex-end; gap: 0.5em 1.5em; flex-wrap: wrap; padding: 0px 15%;}
.top_sec02 h2 img { vertical-align: bottom;}
.top_sec02 .box01 { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 30px 5%; font-size: min(1.6vw,1em);}
.top_sec02 .box01 section { width: 47.5%; display: flex; flex-flow: column;}
.top_sec02 .box02 { padding: 7%; flex: 1;}
.top_sec02 .box02 figure { position: absolute; bottom: 8%; right: 4%;}
.top_sec02 .box02 h3 { margin-right: -0.5em;}
.top_sec02 .num_box { margin-bottom: -0.35em;}
.top_sec02 .num_box .pt { line-height: 0.5; border-bottom: solid 1px #505050; padding-left: 0.2em;}
.top_sec02 .num_box .num { background: rgba(255,240,0,0.65); font-size: 3em; line-height: 1.1; display: inline-block; vertical-align: bottom; width: 1.1em; border-radius: 100%; margin: 0px 0px -0.1em -0.1em;}

.top_sec02 section:nth-of-type(1) figure { width: 36.5%;}
.top_sec02 section:nth-of-type(2) figure { width: 41%;}
.top_sec02 section:nth-of-type(3) figure { width: 33%;}
.top_sec02 section:nth-of-type(4) figure { width: 35%;}

.top_sec03 { display: flex;}
.top_sec03 > section { width: 50%; display: flex; align-items: center;}
.top_sec03 .sec01 { justify-content: flex-end; padding: 70px 7% 80px 15px;}
.top_sec03 .sec02 { padding: 5% 15px 5% 7%; background-image: image-set(url("../images/top/top_sec03_bg01.webp") 1x, url("../images/top/top_sec03_bg01@2x.webp") 2x); background-size: cover; z-index: 10}
.top_sec03 .box_wrap { max-width: 500px;}

.top_sec03.about { display: block;}
.top_sec03.about > section { width: 100%; padding: 70px 15px 80px; display: block;}
.top_sec03.about .box_wrap { max-width: 730px; margin: auto;}

.top_sec03 .sec01 .box01 a { display: block;}
.top_sec03 .sec01 .box01 a:not(:last-child) { border-bottom: dotted 2px #ccc; padding-bottom: 1em; margin-bottom: 1em;}

.top_sec03 .sec02 .text01 { display: table; margin: auto;}
.top_sec03 .sec02 .text01:before, .top_sec03 .sec02 .text01:after { content: ""; position: absolute; width: 2px; height: 1.3em; background: #fff; bottom: 0.1em;}
.top_sec03 .sec02 .text01:before { transform: rotate(-25deg); left: -0.8em;}
.top_sec03 .sec02 .text01:after { transform: rotate(25deg); right: -0.8em;}
.top_sec03 .sec02 .bg01 { top: -15%;}
.top_sec03 .sec02 .bg02 { bottom: -30%; right: 0;}
.top_sec03 .sec02 .text_box { font-size: min(1.4vw,1em);}
.top_sec03 .text_bg { bottom: 0; left: 55%; transform: translateY(50%); width: 1000px;}

.date_wrap { display: flex; align-items: cener; gap: 0.5em 1em;}
.category a, .category span { display: block; color: #fff; background: #9a3956; line-height: 1.4; font-weight: bold; border-radius: 60px; padding: 0.2em 1em; font-size: 0.85em;}

@media only screen and (max-width: 1200px) {
  .top_sec03 .sec01 { padding-right: 4%;}
  .top_sec03 .sec02 { padding-left: 4%;}
}

@media only screen and (max-width: 1000px) {
  .top_sec03 { display: block;}
  .top_sec03 > section { width: auto;}
  .top_sec03 .sec01 { padding: 8% 6% 55px;}
  .top_sec03 .sec02 { padding: 10% 6%;}
  .top_sec03 .box_wrap { max-width: initial; margin: auto;}
  .top_sec03 .sec02 .text_box { font-size: min(3vw,1em);}
  .top_sec03 .sec02 .bg01 { width: 60px; top: -5%;}
  .top_sec03 .sec02 .bg02 { width: 65px; bottom: -10%;}
  .top_sec03 .text_bg { left: 5%;}
}

.top_sec04 .bg01 { left: 1%; top: 2%;}
.top_sec04 .bg02 { right: -50px; bottom: -65px;}
.top_sec04 .box01 { display: flex; justify-content: center; gap: 3.5%; font-size: min(1.5vw,1em);}
.top_sec04 .box01 section { border: solid 1px #9a3956; width: 33.3333%; padding: 0px 3% 40px; display: flex; flex-flow: column;}
.top_sec04 .box01 .list01 { flex: 1;}
.top_sec04 .box01 .img01 { margin-top: -10px; padding: 0px 20%;}
.top_sec04 .list01 li { position: relative; background: url("../images/common/ico_check.svg") no-repeat left 0.35em; background-size: 1.15em auto; padding-left: 1.55em;}
.top_sec04 .list01 li:not(:last-child) { border-bottom: dotted 1px #969696; padding-bottom: 0.3em; margin-bottom: 0.3em;}

.top_sec05 { padding: 60px 0px 90px;}
.top_sec05 .box01 { display: flex; flex-wrap: wrap; gap: 30px 5%;}
.top_sec05 .box01 section { width: 47.5%; display: flex; flex-flow: column;}
.top_sec05 .bg02 { flex: 1; padding: 1em 20px 10px}
.top_sec05 .note {
  background-image:
    linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%), /* 点線1の色 */
    linear-gradient(180deg, #ccc 1px, transparent 1px); /* 点線2の色と太さ */
  background-size: 5px 100%, /* 点線1のサイズ */
                   100% 2.5em; /* 点線2のサイズ */
  line-height: 2.5em; /* 文字の高さ */
  padding: 0px 0.4em 1px; /* 最終行の下にも罫線を引く */
}
.top_sec05 .num_box { line-height: 1; padding: 0.2em 0.5em 0.4em; border-radius: 1em; border-bottom-right-radius: 0; left: -1em; top: -0.8em; box-shadow: 3px 3px 0px #fff;}
.top_sec05 .num_box .text { font-size: 0.5em;}
.top_sec05 .num_box .num { font-size: 1.6em; line-height: 0.9;}

.top_sec05 .bg01 img, .top_sec05 .bg03 img { width: 100%; vertical-align: top;}
.top_sec05 .bg01 img { vertical-align: bottom;}

.top_sec05 .text_bg { bottom: -90px; left: -15%; letter-spacing: 0.13em; transform: translateY(50%);}

@media only screen and (max-width: 1200px) {
  .top_sec05 .text_bg { left: 1%; font-size: min(10vw,6.4em);}
}

.top_sec06 .box01 { display: flex; justify-content: space-between; flex-flow: row-reverse;}
.top_sec06 .box01 .box_inner { width: 61%; font-size: min(1.85vw,1.1em) !important;}
.top_sec06 .box01 .img_box { width: 36%; margin-left: -2%;}
.top_sec06 .bg01 { right: 5%; top: 0;}
.top_sec06 .bg02 { left: 0; bottom: 0;}
.top_sec06 .bg03 { right: 5%; bottom: 5%;}

@media only screen and (max-width: 1050px) {
  .top_sec06 .box01 .img_box { width: 34%; margin-left: 0;}
}

.top_sec07 .box01 { display: flex; justify-content: space-between; align-items: flex-start;}
.top_sec07 .box01 .box_inner { width: 40%; margin-top: 60px; padding: 50px 20px 70px 0px;}
.top_sec07 .box01 .box_inner:before { content: ""; position: absolute; z-index: -1; background: #f5f3f2; top: 0px; bottom: 0px; width: 200vw; left: 50%; transform: translateX(-50%);}
.top_sec07 h3 img { width: 1em; margin: -0.1em 0.3em 0px 0px;}
.top_sec07 .box01 .map { width: 65%; border: solid 1px #9a3956;}
.top_sec07 .box01 .map iframe { vertical-align: bottom; width: 100%; height: 415px;}
.top_sec07 .text_bg { bottom: 0px; right: 0px; transform: translateY(50%);}

.top_sec08 .list01 { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px 4.5%;}
.top_sec08 .list01 a { display: block; font-weight: bold; font-size: 1.1em; line-height: 1.6; letter-spacing: 0.15em; width: 15em; border: solid 1px #505050; border-left: solid 1.2em #9a3956; background: url("../images/common/ico_arrow01.svg") no-repeat calc(100% - 1em) center; background-size: 0.8em auto; padding: 2em 2em 2em 1em;}
.top_sec08 .list01 a:hover { transform: translateX(0.3em);}


/*------------------------------------------------------

	下層ページ

------------------------------------------------------*/

.show_sp { display: none;}
.over_hidden { overflow: hidden;}
.break_keep { word-break: keep-all; overflow-wrap: break-word;}

.img_hover { overflow: hidden;}
.img_hover a img, a .img_hover img { transition: 0.3s;}
.img_hover a:hover img, a:hover .img_hover img { transform: scale(1.05);}

.more_btn a { display: inline-block; font-weight: bold; font-size: 1.1em; line-height: 1.6; letter-spacing: 0.15em; color: #9a3956; border: solid 1px #9a3956; background: url("../images/common/ico_arrow01.svg") no-repeat 1em center #fff; background-size: 0.8em auto; padding: 0.25em 1.3em 0.25em 2.5em; box-shadow: 5px 5px 0px #9a3956; word-break: keep-all;}
.more_btn a:hover { box-shadow: none; transform: translate(5px,5px);}

.link_pad { margin-top: -60px; padding-top: 60px;}

@media only screen and (max-width: 1260px) {
  .link_pad { margin-top: -20px; padding-top: 20px;}
}

/* ----------------------------
	固定ページテンプレート
---------------------------- */

.pagettl h1 { font-size: 3.2em;}
.pagettl .bg01 { right: -50px; top: -10px;}
.pagettl .bg02 { left: -80px; bottom: -40px;}
.pagettl .bg03 { right: -20px; bottom: -50px;}

.main_contents { max-width: 930px; margin: auto; padding: 0px 15px; position: relative; z-index: 10;}

.pt_box .ttl_box { display: flex; gap: 1em;}
.pt_box .num_box { width: 6em;}
.pt_box .num_box .pt { line-height: 0.5; border-bottom: solid 1px #505050; padding-left: 0.2em;}
.pt_box .num_box .num { background: rgba(255,240,0,0.65); font-size: 3em; line-height: 1.1; display: inline-block; vertical-align: bottom; width: 1.1em; border-radius: 100%; margin: 0px 0px -0.1em -0.1em;}
.pt_box .ttl { flex: 1; align-self: center;}

.border_box { border: solid 1px #9a3956; padding: 1.5em; margin-bottom: 50px;}
.border_box > *:last-child { margin-bottom: 0px;}
.border_box h3 { display: table !important; background: #9a3956 !important; color: #fff !important; margin: -0.2em auto 0.7em -1.8em; padding: 0px 1.5em;}
.border_box h3:after { display: none !important;}

.border_box02 { border-top: solid 1px #9a3956; border-bottom: solid 1px #9a3956; margin-bottom: 60px;}
.border_box02 h3 { display: table !important; background: #fff !important; color: #505050 !important; border-left: solid 0.5em #9a3956; padding: 0px 1em 0px 0.45em; transform: translateY(-50%);}
.border_box02 h3:after { display: none !important;}
.border_box02 .box_inner { padding: 0 1em 1em;}
.border_box02 .box_inner > *:last-child { margin-bottom: 0px !important;}

.border_box03 { border: solid 1px #9a3956; padding: 1.5em;}
.border_box03 > *:last-child { margin-bottom: 0px !important;}

.back_box01 { background: #f5f3f2; border-radius: 1em; padding: 1em 1.5em; margin-bottom: 20px !important;}
.back_box01 > *:last-child { margin-bottom: 0px !important;}

.arrow01 { background: url("../images/blog/ico_arrow_gr_dw.svg") repeat-y center top; background-size: 1em 1.4em; width: 2em; height: 2.8em;}

.voice_box .box01 { display: flex; justify-content: space-between; align-items: flex-start;}
.voice_box .box01 .box_inner { width: 50%;}
.voice_box .box01 .img_box { width: 42%;}
.voice_box .name span { font-size: 2.2em; line-height: 1.2;}
.voice_box .course { display: flex; flex-wrap: wrap; gap: 0.5em;}
.voice_box .course div { background: #9a3956; color: #fff; font-weight: bold; line-height: 1.6; border-radius: 0.3em; padding: 0 0.5em 0 1em; position: relative;}
.voice_box .course div:before { content: ""; position: absolute; width: 0.3em; height: 0.3em; background: #fff; border-radius: 100%; left: 0.3em; top: 0.65em;}
.voice_box dl:not(:last-child) { border-bottom: dotted 1px #969696; padding-bottom: 1.5em; margin-bottom: 1.5em;}
.voice_box dt, .voice_box dd { padding-left: 3rem; position: relative;}
.voice_box dt:before, .voice_box dd:before { content: ""; position: absolute; left: 0px; top: -0.1rem; width: 2.3rem; height: 2.3rem; background: url("../images/blog/ico_q.svg") no-repeat center center; background-size: 100% auto;}
.voice_box dt { font-size: 1.25em; color: #9a3956; font-weight: bold; line-height: 1.5; margin-bottom: 1em;}
.voice_box dd:before { background-image: url("../images/blog/ico_a.svg");}

.voice_box .img01:before { content: ""; position: absolute; z-index: -1; top: 20px; right: -20px; bottom: -20px; left: 20px; background: url("../images/blog/img_bg01.svg") no-repeat center center; background-size: cover;}
.voice_box .bg01 { top: -65px; left: -80px;}
.voice_box .bg02 { bottom: -85px; right: -70px;}
.voice_box .bg03 { bottom: -135px; left: 60px;}

.voice_box.tate .img_box { width: 34%;}
.voice_box.tate .img01:before { background-image: url("../images/blog/img_bg02.svg");}

.voice_box .box02 { border: solid 1px #9a3956; border-radius: 0.8em; padding: 1.5em;}

.arrow_box { padding-left: 5em; background: url("../images/blog/ico_arrow_gr_dw.svg") repeat-y 0.6em top; background-size: 1em 2em;}
.arrow_box p { margin-bottom: 1em;}
.arrow_box > *:last-child { margin-bottom: 0px !important;}

.faq_dl { margin-bottom: 40px;}
.faq_dl dt, .faq_dl dd { position: relative;}
.faq_dl dt { font-size: 1.15em; font-weight: bold; color: #9a3956; line-height: 1.6; background: #f5f3f2; border-radius: 0.8em; padding: 1em 3em 1em 4.3rem; cursor: pointer;}
.faq_dl dt:after { content: ""; position: absolute; background: url("../images/blog/ico_plus.svg") no-repeat center center; background-size: 100% auto; width: 1em; height: 1em; right: 1em; top: 1.25em;}
.faq_dl dt.open:after { background-image: url("../images/blog/ico_minus.svg");}
.faq_dl dd { padding: 1em 1.5em 0 4.3rem; display: none;}
.faq_dl dt:before, .faq_dl dd:before { content: ""; position: absolute; background: url("../images/blog/ico_q.svg") no-repeat center center; background-size: 100% auto; width: 2.2rem; height: 2.2rem; left: 1.3rem; top: 1rem;}
.faq_dl dd:before { background-image: url("../images/blog/ico_a.svg");}

.layout-flex_button-2col{ display: flex; flex-wrap: wrap; justify-content: center; } 
.button_2col{ flex-basis:23%}

@media only screen and (max-width: 780px) {
 .layout-flex_button-2col {gap: 3%;}
  .button_2col{ flex-basis:80%;} }


/* ----------------------------
	contact
---------------------------- */

.contact_sec dl { display: table; width: 100%; border-bottom: dashed 1px #ddd; padding-bottom: 20px; margin-bottom: 20px;}
.contact_sec dl:last-of-type { border-bottom: none;}
.contact_sec dt, .contact_sec dd {display: table-cell;vertical-align: middle;}
.contact_sec dt {width: 17.5em;font-weight: bold;}
.contact_sec dt span {
	float: right;
	font-size: 0.7em;
	font-weight: bold;
	color: #fff;
	line-height: 1;
	border-radius: 3px;
	padding: 5px;
  margin-top: 0.4em;
}
.contact_sec dt .hissu { background-color: #FF6467;}
.contact_sec dt .ninni { background-color: #BED4E8;}
.contact_sec dd { padding-left: 20px;}
.contact_sec input[type="text"], .contact_sec input[type="email"], .contact_sec input[type="tel"], .contact_sec textarea, .contact_sec select {
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-size: 16px;
	border: solid 2px #ddd;
	border-radius: 5px;
	padding: 0.5em 1em;
	width: 100%;
}
.contact_sec select { font-size: 16px; -webkit-appearance: menulist-button;}
.contact_sec .width_auto input[type="text"], .contact_sec .width_auto select { width: auto; max-width: 100%;}

.contact_sec .btn_area input { display: inline-block; min-width: 260px; background: #9a3956; color: #fff; padding: 0.7em 2em; text-align: center; line-height: 1.6; font-weight: bold; text-decoration: none !important; transition: 0.3s; cursor: pointer; -webkit-appearance: none; font-size: 1.05em; margin: 0px 10px 10px; font-family: 'Noto Sans JP', sans-serif; border: none;}
.contact_sec .btn_area input:hover { opacity: 0.7;}
.contact_sec .btn_area input:focus { outline: 0;}

.contact_sec ::placeholder { color: #ccc;}

.wpcf7-spinner { display: block; margin: 20px auto;}
.wpcf7-checkbox .wpcf7-list-item { display: block; margin: 0px;}
.wpcf7-not-valid-tip { display: inline-block;}
.label_block .wpcf7-list-item { display: block; margin-left: 0px;}


/* ------------------------
	投稿
------------------------ */

.blog_wrap { display: flex; justify-content: space-between; align-items: flex-start;}
.contents { width: 67%;}
.rNavi { width: 28%; padding: 2em 1.5em;}

/* サイドバー */
.rNavi .en_ttl { font-size: 2.5em; line-height: 1;}
.rNavi h2 { border-bottom: solid 3px #9a3956; padding-bottom: 0.6em;}

.side_sec01 dl:not(:last-of-type) { border-bottom: dotted 2px #969696; padding-bottom: 1em; margin-bottom: 1em;}

.side_sec03 select {
	width: 100%;
	padding: 0px 1em;
	font-family: "Zen Kaku Gothic Antique", sans-serif;
	font-size: 16px;
	background: url("../images/blog/select_arrow.svg") no-repeat calc(100% - 1.3em) center #fff;
  background-size: 0.95em auto;
	border: none;
  border-radius: 60px;
  -webkit-appearance: none;
  appearance: none;
	height: 3.5em;
	line-height: 3.5em;
}
.side_sec03 select:focus { outline: none;}

.side_bnr li { margin-bottom: 20px;}
.side_bnr a:hover { opacity: 0.7;}


/* アーカイブ */
.archive_art a { display: block;}
.archive_art a:not(:last-of-type) { border-bottom: dotted 2px #969696; padding-bottom: 1.5em; margin-bottom: 1.5em;}
.archive_art h1 { border-left: solid 0.4em #9a3956; font-weight: bold; font-size: 1.6em; line-height: 1.4; padding-left: 0.4em;}
.archive_art .text01 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.archive_art .date_wrap { justify-content: flex-end;}

/* 記事ヘッダー */
.blog_header h1 { font-size: 2.5em; border-bottom: solid 2px #9a3956; padding-bottom: 0.3em;}
.blog_header .date_wrap { justify-content: space-between; align-items: center;}
.blog_header .date_wrap ul { display: flex; flex-wrap: wrap; gap: 0.5em 1em;}
.blog_header .category a:hover { opacity: 0.7;}

/* 本文 */
.blog_content p, .blog_content p:last-child { margin-bottom: 30px;}
.blog_content h1 { text-align: center; color: #9a3956; font-size: 2.6em; letter-spacing: 0.05em; font-weight: bold; line-height: 1.4; -webkit-text-stroke: 1px #505050; text-stroke: 1px #505050; paint-order: stroke; clear: both; margin-bottom: 40px;}
.blog_content h2 {
	font-weight: bold;
	font-size: 1.6em;
	line-height: 1.5;
  background-color: #f8eced;
  background-image: linear-gradient(90deg, #ffffff 1px, transparent 1px), linear-gradient(#ffffff 1px, transparent 1px);
  background-position: 10px 10px;
  background-size: 29px 29px;
  padding: 0.8em 1em;
	clear: both;
	margin-bottom: 30px;
}
.blog_content h2.num_ttl { background: none; padding: 0px 0px 0px 1.6em; font-size: 1.8em; color: #9a3956; position: relative; margin-bottom: 0.5em;}
.blog_content h2.num_ttl span { position: absolute; display: block; left: 0px; top: 0.2em; width: 1.4em; height: 1.4em; background: #9a3956; text-align: center; color: #fff; font-family: "Roboto", sans-serif; font-weight: 700; font-size: 0.9em; line-height: 1.45; border-radius: 100%;}
.blog_content h3 {
  display: inline;
	font-weight: bold;
	font-size: 1.4em;
	line-height: 1.5;
	color: #9a3956;
	background: linear-gradient(transparent 80%, #fff000 0%);
	clear: both;
}
.blog_content h3:after { content: ""; display: block; width: 100%; margin-bottom: 30px;}
.blog_content h4 {
	font-weight: bold;
	font-size: 1.3em;
	color: #9a3956;
	line-height: 1.5;
	padding-left: 1em;
	position: relative;
	clear: both;
	margin-bottom: 30px;
}
.blog_content h4:after { content: ""; position: absolute; background: #9a3956; border-radius: 100%; width: 0.55em; height: 0.55em; left: 0px; top: 0.55em;}
.blog_content h5 {
	font-weight: bold;
	font-size: 1.6em;
	line-height: 1.5;
  text-align: center;
  color: #fff;
	background: #9a3956;
	padding: 0.7em 1em;
  border-radius: 60px;
	clear: both;
	margin-bottom: 30px;
}
.blog_content h5.small { padding: 0.1em 1.3em; display: table; margin: 0 auto 30px;}
.blog_content h6 {
  display: inline;
	font-weight: bold;
	font-size: 1.8em;
	line-height: 1.5;
	color: #9a3956;
	background: linear-gradient(transparent 80%, #fff000 0%);
  box-decoration-break: clone;
	clear: both;
  margin: 0px auto 30px;
}
.blog_content h6:after { content: ""; display: block; width: 100%; margin-bottom: 30px;}

/* 引用 */
.blog_content blockquote {
  color: #9a3956;
	position: relative;
	padding: 3em 2.5em;
	background-color: #f5f3f2;
	border: solid 1px #9a3956;
  border-radius: 1em;
	clear: both;
  margin-bottom: 60px;
}
.blog_content blockquote:before, .blog_content blockquote:after { content: ""; position: absolute; background: url("../images/blog/ico_blq.svg") no-repeat center center; background-size: 100% auto; width: 1.3em; height: 1em; top: 1em;}
.blog_content blockquote:before { left: 1em;}
.blog_content blockquote:after { right: 1em; transform: scale(-1,-1);}
.blog_content blockquote cite { margin: -1em 0px -2em; font-size: 0.9em; font-weight: bold; color: #505050; text-align: right;}

/* リスト */
.blog_content ul { margin-bottom: 30px; clear: both;}
.blog_content ul li, .side_sec02 li { position: relative; padding-left: 0.8em;}
.blog_content ul li:before, .side_sec02 li:before { content: ""; position: absolute; left: 0px; top: 0.9em; width: 0.4em; height: 0.4em; background-color: #9a3956; transform: rotate(45deg);}
.blog_content ul li li { padding-left: 1.1em;}
.blog_content ul li li:before { left: 0px; top: 0.95em; width: 0.6em; height: 1px; transform: none;}

.blog_content .list_check li { padding-left: 1.6em; position: relative;}
.blog_content .list_check li:before { content: ""; position: absolute; background-repeat: no-repeat; background-position: center center; background-size: 100% auto; background-color: transparent; width: 1.2em; height: 1em; left: 0px; top: 0.55em; transform: none;}
.blog_content .list_check li:before { background-image: url("../images/blog/ico_check.svg");}

.blog_content ol { margin-bottom: 30px; padding: 0px; counter-reset:num;}
.blog_content ol li { position: relative; padding-left: 1.7em; list-style: none;}
.blog_content ol li:before { content: counter(num); counter-increment: num; position: absolute; background: #9a3956; width: 1.2em; height: 1.2em; line-height: 1.2; border-radius: 100%; left: 0px; top: 0.5em; color: #fff; text-align: center;}

/* テーブル */
.blog_content table {
	clear: both;
	border: solid 1px #9a3956;
	background: #fff;
  line-height: 1.6;
	margin-bottom: 60px;
	width: 100%;
}
.blog_content th, .blog_content td { padding: 0.5em 1em; border: solid 1px #9a3956; vertical-align: middle;}
.blog_content th, .blog_content td { border-bottom: dotted 1px #FF8F3D;}
.blog_content th { font-weight: bold; font-size: 1.1em; color: #9a3956; background: #f5f3f2;}

.blog_content .table_wrap { margin-bottom: 60px;}
.blog_content .table_wrap table { margin-bottom: 0px;}

.blog_content iframe { max-width: 100%;}

.blog_content strong, .blog_content em { font-weight: bold;}
.blog_content em { color: #9a3956; font-size: 1.15em;}

.blog_content a { color: #39659a; text-decoration: underline;}
.blog_content a:hover { opacity: 0.7;}

.wp-block-button__link { display: inline-block; color: #9a3956 !important; text-decoration: none !important; font-weight: bold; font-size: 1.1em; line-height: 1.6; background: url("../images/common/gn_arrow03.svg") no-repeat 0.95em center #fff; background-size: 0.8em auto; border: solid 1px #9a3956; box-shadow: 0.4em 0.4em 0px #9a3956; padding: 0.3em 1em 0.3em 2.5em; cursor: pointer; border-radius: 0px;}
.wp-block-button__link:hover { transform: translateX(0.3em);}

.wp-block-button.is-style-outline .wp-block-button__link { max-width: 360px; width: 100%; min-width: 280px; text-align: center; color: #fff !important; box-shadow: none; background: url("../images/blog/ico_arrow01_white.svg") no-repeat calc(100% - 1.3em) center #9a3956; background-size: 0.75em auto; border-radius: 60px; font-size: 1.2em; padding: 1.3em 2em; position: relative;}
.wp-block-button.is-style-outline .wp-block-button__link:after { content: ""; position: absolute; top: 0.2em; right: 0.2em; bottom: 0.2em; left: 0.2em; border-radius: inherit; border: solid 1px #fff;}

/* ページ内リンク */
.page_nav { margin-bottom: 30px;}
.page_nav .is-layout-flex, .wp-block-buttons>.wp-block-button { display: block;}
.page_nav .wp-block-buttons>.wp-block-button{width: 100%;}
.page_nav .wp-block-button__link { display: flex; align-items: center; justify-content: center; max-width: 350px; margin: auto; color: #505050 !important; text-decoration: none; font-weight: bold; line-height: 1.5; text-align: center; background: none; border-radius: 0; font-size: inherit; border: solid 1px #9a3956; padding: 0.4em 4.8em 0.4em 1em; min-height: 3.8em; position: relative; cursor: pointer; box-shadow: none;}
.page_nav .wp-block-button__link:after { content: ""; position: absolute; width: 3.8em; right: 0px; top: 0px; height: 100%; background: url("../images/blog/ico_arrow_wt_dw.svg") no-repeat center center #9a3956; background-size: 1em auto;}
.page_nav .wp-block-button__link:hover { transform: translateY(0.4em);}

.blog_content figcaption { font-size: 0.85em; line-height: 1.6; margin-top: 1em;}

/* ページャー(アーカイブ) */
.pagination .number { margin-right: 1.5em;}
.pagination span.current, .pagination a {
	margin: 0px 5px 8px;
	display: inline-block;
	vertical-align: middle;
	text-align: center;
	text-decoration: none;
	min-width: 35px;
	height: 35px;
	line-height: 35px;
  border-radius: 0.3em;
	padding: 0px 8px;
	background-color: #f5f3f2;
	color: #000;
}
.pagination span.current, .pagination a:hover { background: #9a3956; color: #fff;}

/* ページャー(シングル) */
.pager ul { display: flex; align-items: center; line-height: 1.6; gap: 1em; font-size: min(3vw,1em);}
.pager li { width: 33.3333%;}
.pager a { text-decoration: none; color: #9a3956; display: block; position: relative; padding: 0.5em;}
.pager a:hover { opacity: 0.7;}
.pager li:not(.return) a { background: url("../images/blog/bg_prev.svg") no-repeat center center; background-size: 100% 100%;}
.pager li.previous a { padding-left: 1.5em;}
.pager li.next a { background-image: url("../images/blog/bg_next.svg"); padding-right: 1.5em;}
.pager .return a { background: #9a3956; color: #fff;}

/* タグ */
.tag { display: flex; flex-wrap: wrap; gap: 0.7em 1.3em;}
.tag a { display: block; background: url("../images/blog/tag_bg.svg") no-repeat left top; background-size: 100% 100%; color: #9a3956; text-decoration: none; line-height: 1.6; font-size: 0.9em; padding: 0.2em 0.7em 0.2em 1.8em; position: relative; transition: 0.2s;}
.tag a:hover { transform: translateX(-0.3em);}
.tag a:before { content: ""; position: absolute; width: 0.3em; height: 0.3em; border-radius: 100%; background: #9a3956; left: 0.8em; top: 50%; transform: translateY(-50%);}

/* SNS */
.single_sns { display: flex; justify-content: space-between; gap: 1.5em;}
.single_sns li { width: 33.3333%;}
.single_sns li a {
	display: block;
	padding: 0.5em;
	color: #FFFFFF;
	text-align: center;
	text-decoration: none;
	font-weight: bold;
	font-size: 0.95em;
	line-height: 1.8;
	border-radius: 0.4em;
	position: relative;
}
.single_sns li a:hover { opacity: 0.7;}
.single_sns li a:after { content: ""; position: absolute; background-repeat: no-repeat; background-position: center center; background-size: 100% auto; width: 1.7em; height: 1.7em; right: 1em; top: 50%; transform: translateY(-50%);}
.facebook a { background-color: #3b5998;}
.twitter a { background-color: #000;}
.line a { background-color: #00b900;}
.facebook a:after { background-image: url("../images/blog/single_sns01.svg");}
.twitter a:after { background-image: url("../images/blog/single_sns02.svg");}
.line a:after { background-image: url("../images/blog/single_sns03.svg");}

/* 関連記事 */
.archive_list { display: flex; flex-wrap: wrap; gap: 40px 2.5em;}
.archive_list li { width: calc((100% - 5em) / 3);}


/* ブロックエディタ用 */
.wp-block-columns.is_center { justify-content: center;}


/* 調整用 */
.extend01 { margin-right: -55%;}
.extend02 { margin-right: -100%;}

.aco_btn span { display: inline-block; color: #9a3956 !important; text-decoration: none !important; font-weight: bold; font-size: 1.1em; line-height: 1.6; background: url("../images/common/gn_arrow03.svg") no-repeat 0.95em center #fff; background-size: 0.8em auto; border: solid 1px #9a3956; box-shadow: 0.4em 0.4em 0px #9a3956; padding: 0.3em 1em 0.3em 2.5em; cursor: pointer; border-radius: 0px; transition: 0.3s;}
.aco_btn  span:hover { transform: translateX(0.3em);}
.aco_content { display: none; padding-top: 80px;}


@media only screen and (max-width: 781px) {
  .extend01 { margin-right: 0;}
}


