@charset "utf-8";
/*
Theme Name: obamahp
Author: SYSTEMRUN
Author URI: https://systemrun.co.jp/
*/

/* break point */
/* ---------------------
 (max-width) 1320, 991, 768, 480
 (min-width) 1321, 992, 769, 481
--------------------- */

/*========================================
 *reset
========================================*/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,input,select,button,textarea,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
	margin: 0;
	padding: 0;
	border: 0;
	font: inherit;
	color: inherit;
	line-height: inherit;
	font-size: 100%;
	vertical-align: baseline;
	word-break: break-all;
}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,small,main {
	display: block;
}
html {
	font-size: 62.5%;
}
body {
	width: 100%;
	height: 100%;
	-webkit-text-size-adjust: 100%;
}
ul {
	list-style: none;
}
q {
	quotes: none;
}
q::before,q::after {
	content: '';
	content: none;
}
strong,b {
	font-weight: bold;
}
i,em {
	font-style: italic;
}
del {
	text-decoration: line-through;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
img {
	vertical-align: top;
	max-width: 100%;
	height: auto;
}
span,a,ruby {
	font-size: 100%;
}
a,a:hover {
	text-decoration: none;
}
*,*::before,*::after {
	box-sizing: border-box;
}
a,a:focus,*:focus {
	outline: none;
}
select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
}
select::-ms-expand {
	display: none;
}
/*100vh指定時のiOSアドレスバー対応*/
html {
	height: -webkit-fill-available;
}

/*========================================
 *base
========================================*/
:root {
 --color-green: #bcecd2;
 --block-margin: 30px;
}
body {
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	line-height: 1.7;
	color: #333;
	position: relative;
}
a {
	color: inherit;
}
h1,h2,h3,h4,h5,h6 {
	font-weight: bold;
}
sup {
 font-size: 80%;
 vertical-align: super;
 vertical-align: top;
}
button {
 cursor: pointer;
}
/*iOSでのデフォルトスタイルをリセット*/
input[type='submit'],input[type='button'] {
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
}
input[type='submit']::-webkit-search-decoration,input[type='button']::-webkit-search-decoration {
	display: none;
}
input[type='submit']:focus,input[type='button']:focus {
	outline-offset: -2px;
}
/*プレースホルダーの色*/
::placeholder {
	color: #bfbfbf;
}
::-ms-input-placeholder {
	/*旧Edge対応*/
	color: #bfbfbf;
}
:-ms-input-placeholder {
	/*IE対応*/
	color: #bfbfbf;
}
@media screen and (min-width: 992px) {
	a[href^='tel:'] {
		pointer-events: none;
	}
}
@media screen and (max-width: 768px) {
 :root {
  --block-margin: 20px;
 }
}


/*========================================
  *Layout
========================================*/
.serif {
 font-family: "Noto Serif JP","Yu Mincho", "游明朝","Hiragino Mincho ProN",serif;
 font-weight: 500;
}

/* container */
.container {
	max-width: 1200px;
	width: 90%;
	margin: auto;
}
.container_s {
 max-width: 1100px;
 width: 90%;
 margin: 0 auto;
}
body.nohome .container {
	max-width: 1000px;
 margin-top: 50px;
}

/* wrapper */

@media screen and (max-width: 768px) {
 .container,.container_s {
  width: 92%;
 }
 main::after {
  content: "";
  display: block;
  clear: both;
 }
}


/*========================================
  *header
========================================*/
/*------------------------------
 *PCサイドメニュー
------------------------------*/
.header_logo {
	font-weight: bold;
	text-align: center;
	padding: 20px 0 15px;
}
.hd_nav_sub_menu_content a::after,.header_cta li a span::after {
 content: '';
	width: 9px;
	aspect-ratio: 1 / 1;
	border-top: 2px solid;
	border-right: 2px solid;
	position: absolute;
	top: 50%;
	right: 10px;
	transform: rotate(45deg) translateY(-50%);
	border-color: #333;
}
/* 日本財団 */
.external_link {
	text-align: center;
	padding-top: 15px;
 max-width: 120px;
 margin: 0 auto;
}
/* 青ボタン */
.header_cta {
	padding: 20px 0;
}
.header_cta li + li {
	margin-top: 15px;
}
.header_cta li a {
	display: block;
	color: #fff;
	background: #125aa9;
 font-size: 1.6em;
	font-weight: 500;
	padding: 0.3em 1.6em;
 border: 1px solid #125aa9;
	border-radius: 5px;
 position: relative;
}
.header_cta li a span::after {
	right: 20px;
	border-color: #fff;
}
/* TEL 住所 */
.header_address {
	text-align: center;
	padding: 12px 0 20px;
	line-height: 1.6;
}
.header_address p {
 font-size: 1.6em;
}
.header_address .tel {
	font-size: clamp(2.2em, 1.4vw, 2.4em);
	font-weight: 900;
	letter-spacing: 0.08em;
}
@media screen and (min-width: 992px) {
 /* PCサイドメニューコンテナ */
 .wrapper {
  overflow-x: hidden;
  padding-left: 350px;
 }
 .header_pc_side {
  width: 350px;
  height: 100vh;
  top: 0;
  left: 0;
  background: #fff;
  position: fixed;
  z-index: 55;
  overflow: visible;
  box-shadow: 1px 0 15px rgba(153, 153, 153, 0.25);
 }
 .header_pc_side .scroll {
  overflow-y: auto;
  overflow-x: visible;
  height: 100%;
 }
 .header_pc_side_container {
  max-width: 250px;
  margin: 0 auto;
  width: 80%;
 }
 /* nav main */
 .header_nav_menu > li {
  border-bottom: 1px solid #666;
  padding: 5px;
  position: relative;
 }
 .header_nav_menu > li > a {
  display: block;
  font-size: clamp(1.7em, 1.4vw, 1.9em);
  font-weight: bold;
  text-align: center;
  padding: 0.47em 0.5em;
 }
 .header_nav_menu > li > a::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: -12%;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
  border-left: 16px solid var(--color-green);
  opacity: 0;
  visibility: hidden;
 }
 .header_nav_menu > li > a::after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
 }
 /* nav sub */
 .header_nav_bridge {
  position: absolute;
  top: 0;
  left: 82%;
  width: 80px;
  height: 550px;
  z-index: 10;
 }
 .header_nav_submenus {
  position: absolute;
  top: 0;
  left: 100%;
 }
 .header_nav_sub_menu {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
 }
 .header_nav_sub_menu.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
 }
 .hd_nav_sub_menu_inner {
  background: rgba(255, 255, 255, 0.90);
  padding: 25px;
  border-radius: 5px;
  width: max-content;
  max-width: 700px;
  box-shadow: 0px 3px 10px rgba(0,0,0,0.1);
  margin-left: 20px;
  max-height: 650px;
  overflow-y: auto;
  pointer-events: all;
 }
 .hd_nav_sub_menu_title {
  font-size: 2.4em;
  line-height: 1;
  border-bottom: 2px solid #333;
  padding: 5px 0 14px 20px;
  margin-bottom: 20px;
 }
 .hd_nav_sub_menu_title a {
  text-decoration: underline;
 }
 .hd_nav_sub_menu_content {
  column-count: 2;
  column-gap: 40px;
  padding: 20px 30px 5px;
  line-height: 1.2;
 }
 .hd_nav_sub_menu_content li {
  break-inside: avoid;
  margin-bottom: 20px;
  position: relative;
  column-width: 307px;
 }
 .hd_nav_sub_menu_content a {
  display: block;
  padding-right: 22px;
  font-size: 1.7em;
  font-weight: 500;
 }
}
@media (hover: hover) and (min-width: 992px) {
 .header_logo a:hover img,.ft_logo a:hover img {
  opacity: 0.7;
 }
	.header_nav_menu > li:hover > a,.header_nav_menu > li.is-current > a {
		background: var(--color-green);
	}
 .header_nav_menu > li:hover > a::before,.header_nav_menu > li.is-current > a::before {
  opacity: 1;
  visibility: visible;
 }
 .header_nav_sub_menu a:hover {
  text-decoration: underline;
  color: #237fd1;
 }
 .hd_nav_sub_menu_title a:hover {
  text-decoration: none;
 }
 .header_cta li a:hover {
  background: #fff;
  color: #125aa9;
 }
 .header_cta li a:hover span::after {
  border-color: #125aa9;
 }
}
@media screen and (max-width: 1320px) {
	.wrapper {
		padding-left: 250px;
	}
	.header_pc_side {
		width: 250px;
	}
 .header_pc_side_container {
  max-width: 180px;
 }
 .header_nav_menu > li > a {
  font-size: 1.6em;
 }
 .header_nav_menu > li > a::before {
  right: -13.5%;
 }
 .hd_nav_sub_menu_inner {
  padding: 20px;
 }
 .hd_nav_sub_menu_title {
  font-size: 2.2em;
  padding: 5px 0 12px 15px;
  margin-bottom: 15px;
 }
 .hd_nav_sub_menu_content {
  column-gap: 30px;
  padding: 10px 15px 5px;
 }
 .hd_nav_sub_menu_content li {
  margin-bottom: 18px;
  column-width: 250px;
 }

 .external_link {
  width: 85%;
  margin: auto;
 }
 .header_cta li + li {
  margin-top: 12px;
 }
 .header_cta li a {
  padding: 0.3em 0.95em;
 }
 .header_cta li a span::after {
  right: 15px;
 }
 .header_address p {
  font-size: 1.4em;
 }
 .header_address .tel {
  font-size: 2em;
 }
}


/*------------------------------
 *アクセシビリティ
------------------------------*/
.accessibility_control {
	background: #009de5;
	display: flex;
 justify-content: end;
 align-items: center;
 overflow-x: unset;
}
.search_box .search form,.switch,.a11y_clm,.hd_sp_inner {
 display: flex;
 align-items: center;
}
.search_box .search {
 position: relative;
}
.search_box .search::before {
 content: "";
 position: absolute;
 left: 10px;
 top: 50%;
 transform: translateY(-50%);
 width: 19px;
 height: 18px;
 background: url("images/search.png") no-repeat center / contain;
 pointer-events: none;
}
.search_box input {
 font-size: 1.6em;
 padding: 3px 5px 3px 34px;
 width: 215px;
 border-radius: 5px 0 0 5px;
}
.search_box button {
 font-size: 1.5em;
 color: #fff;
 background: #007dbc;
 padding: 4px 15px;
 border-radius: 0 5px 5px 0;
 white-space: nowrap;
}
.a11y_clm {
 padding: 0 10px;
 margin: 7px 0px 8px;
}
.borR-w {
 border-right: 1px solid #fff;
}
.accessibility_control .label {
 color: #fff;
 font-size: 1.5em;
 margin-right: 8px;
}
.a11y_clm dd button {
 font-size: 1.6em;
 color: #000;
 background: #fff;
 padding: 3px 8px;
}
.a11y_clm.font-size dd button {
 border: 1px solid #007dbc;
 background: #007dbc;
 color: #fff;
}
.a11y_clm.font-size dd button.js_font-size_normal {
 border-radius: 5px 0 0 5px;
}
.a11y_clm.font-size dd button.js_font-size_large {
 border-radius: 0 5px 5px 0;
}
.a11y_clm.font-size dd button.js_font-size_active {
 background: #fff;
 color: #000;
}
.a11y_clm.bg-color dd + dd {
 margin-left: 5px;
}
.a11y_clm.bg-color dd button {
 border: 1px solid #999;
 border-radius: 5px;
}
.a11y_clm.bg-color dd button.js_bg-color_black {
 background: #000;
 color: #fff;
 border-color: #000;
}
.a11y_clm.bg-color dd button.js_bg-color_blue {
 background: #0000ff;
 color: #ffff00;
 border-color: #0000ff;
}
.a11y_clm.bg-color dd button.js_bg-color_yellow {
 background: #ffff00;
}
.language_box select {
 font-size: 1.6em;
 padding: 4px 12px;
 border: 1px solid #999;
 border-radius: 5px;
 width: 170px;
 box-sizing: border-box;
 background-image: url("images/arrow.png");
 background-repeat: no-repeat;
 background-size: 13px 8px;
 background-position: right 10px center;
}
.mail_box a {
 display: block;
 padding: 7px 8px;
 background-color: #007dbc;
 border: 1px solid #0070a8;
 border-radius: 5px;
 font-size: 0;
}
.mail_box a::before {
 content: "";
 display: inline-block;
 width: 26px;
 height: 19px;
 background: url("images/icon_mail.png") no-repeat center;
}
.hd_sp_btn,.sp_btn_box .btn_label,.sp_btn_box .sp_label {
 display: none;
}
@media screen and (max-width: 1500px) {
 .sp_btn_box {
  position: relative;
  padding: 0 10px;
  margin: 7px 0 8px;
  border-right: 1px solid #fff;
  display: flex;
  align-items: center;
  z-index: 88;
 }
 .sp_btn_box .btn_label {
  display: block;
 }
 .hd_sp_btn {
  display: block;
  width: 42px;
  height: 35px;
  background: #007dbc url("images/icon_setting.png") no-repeat center / 20px;
  border-radius: 5px;
  border: 1px solid #0070a8;
  cursor: pointer;
 }
 .language_box .hd_sp_btn {
  background: #007dbc  url("images/icon_language.png") no-repeat center / 20px;
 }
 .hd_sp_inner {
  display: none;
  position: absolute;
  top: calc(100% + 20px);
  right: 0;
  background: rgba(0, 157, 229, 0.8);
  padding: 15px 18px;
  z-index: 99;
  flex-direction: column;
  width: max-content;
  align-items: flex-start;
  gap: 15px 0;
 }
 .hd_sp_inner.is_hd_open {
  display: flex;
 }
 .hd_sp_inner.is_hd_open::before {
  content: "";
  position: absolute;
  top: -10px;
  transform: translateX(-50%);
  right: 12px;
  border: 10px solid transparent;
  border-bottom: 10px solid rgba(0, 157, 229, 0.7);
  border-top: none;
 }
 .hd_sp_inner .borR-w {
  border: none;
 }
 .hd_sp_inner .a11y_clm {
  padding: 0;
  margin: 0;
 }
}
@media (hover: hover) and (min-width: 992px) {
	.a11y_clm dd button:hover {
  text-decoration: underline;
 }
 .search_box button:hover,.mail_box a:hover,.sp_btn_box button.hd_sp_btn:hover {
  background-color: #074890;
 }
}
@media screen and (max-width: 991px) {
 .header_sp {
  position: relative;
 }
 .accessibility_control {
  background: none;
  padding-right: 50px;
  position: absolute;
  right: 0;
 }
 .sp_btn_box {
  position: static;
  background: #009de5;
  padding: 0;
  margin: 0;
 }
 .sp_btn_box .btn_label {
  display: none;
 }
 .accessibility_control .hd_sp_btn {
  background-color: unset;
  border: unset;
  border-radius: unset;
  width: 50px;
  height: 50px;
  background-position: top 6px center;
  background-size: 26px;
 }
 .hd_sp_btn .sp_label {
  display: block;
  font-size: 0.9em;
  text-align: center;
  padding-top: 32px;
  margin: 0;
 }
 .hd_sp_inner {
  top: 62px;
  right: 30px;
  right: 30px;
  max-width: calc(100vw - 20px);
  padding: 12px 15px;
 }
 .hd_sp_inner.is_hd_open::before {
  right: 78px;
 }
 .language_box .hd_sp_inner.is_hd_open::before {
  right: 26px;
 }
}
@media screen and (max-width: 768px) {
 .accessibility_control .hd_sp_btn {
  height: 45px;
  background-position: top 5px center;
  background-size: 23px;
 }
 .hd_sp_btn .sp_label {
  font-size: 0.8em;
  padding-top: 29px;
 }
}


/*------------------------------
 *スマホヘッダー
------------------------------*/
.sp_nav,.is_sp {
 display: none;
 pointer-events: none;
}
@media screen and (max-width: 991px) {
 .sp_logo {
  padding: 25px 12px 22px;
 }
 .external_link {
  position: absolute;
  bottom: 0;
  right: 5px;
  max-width: 80px;
  padding: 0;
 }
 .hamburger {
  display: none;
  background: #009de5;
  position: absolute;
  top: 0;
  right: 0;
  width: 50px;
  height: 50px;
  z-index: 9999;
  cursor: pointer;
 }
 .hamburger_border {
  width: 22px;
  height: 2px;
  background: #fff;
  position: absolute;
  left: 14px;
  transition: all 0.3s;
 }
 .hamburger_border:nth-child(1) {
  top: 10px;
 }
 .hamburger_border:nth-child(2) {
  top: 18px;
 }
 .hamburger_border:nth-child(3) {
  top: 26px;
 }
 .hamburger_text {
  display: block;
  text-align: center;
  color: #fff;
  font-size: 0.9em;
  padding-top: 33px;
 }
 .hamburger_text::after {
  content: "メニュー";
 }
 .translated-ltr .hamburger_text::after {
  content: "Menu";
 }
 .hamburger.is_active,.hd_sp_btn.is_active {
  background-color: #074890;
 }
 .is_active .hamburger_border:nth-child(1) {
  transform: translateY(8px) rotate(225deg);
 }
 .is_active .hamburger_border:nth-child(2) {
  opacity: 0;
 }
 .is_active .hamburger_border:nth-child(3) {
  transform: translateY(-8px) rotate(-225deg);
 }
 .hamburger.is_active .hamburger_text::after {
  content: "閉じる";
 }
 .translated-ltr .hamburger.is_active .hamburger_text::after {
  content: "Close";
 }

 .sp_nav_sub_menu {
  display: none;
 }
 body.is_nav_open {
  overflow: hidden;
 }
 .sp_nav .sp_nav_sub_menu {
  position: static;
  opacity: 1;
  visibility: visible;
 }
 .is_pc {
  display: none;
 }
 .is_sp {
  display: block;
  pointer-events: auto;
 }
	.wrapper {
		padding-left: 0;
	}
 .hamburger {
		display: block;
	}
 .header_sp .sp_nav {
  display: none;
 }
 .header_sp .sp_nav.is_open {
  display: block;
 }
 .sp_nav {
  position: fixed;
  top: 130px;
  left: 0;
  width: 100%;
  height: calc(100vh - 130px);
  padding: 15px;
  background: rgba(18, 90, 169, 0.9);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  z-index: 999;
 }
 .sp_nav_menu > li {
  border-bottom: 2px solid #fff;
  color: #fff;
  position: relative;
 }
 .sp_nav_menu > li > a {
  display: inline-block;
  font-size: 1.9em;
  font-weight: 600;
  padding: 14px 15px;
  padding-right: 6em;
  width: 100%;
 }
 .js_toggle {
  position: absolute;
  right: 10px;
  top: 5px;
  width: 50px;
  height: 50px;
  background: rgba(0,0,0,0.3);
 }
 .js_toggle::before,
 .js_toggle::after {
  content: "";
  position: absolute;
  background: #fff;
 }
 .js_toggle::before {
  width: 14px;
  height: 2px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
 }
 .js_toggle::after {
  width: 2px;
  height: 14px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
 }
 li.is_open .js_toggle::after {
  display: none;
 }
 .sp_nav_sub_menu_content {
  margin-left: 10px;
 }
 .sp_nav_sub_menu_content li a {
  display: block;
  font-size: 1.6em;
  padding: 6px 10px;
  padding-right: 2em;
  border-bottom: 1px solid;
  position: relative;
 }
 .sp_nav_sub_menu_content li:last-child a {
  border: none;
 }
 .sp_nav_sub_menu_content a::after {
  content: "";
  width: 9px;
  aspect-ratio: 1 / 1;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%) rotate(45deg);
 }

 .header_cta,.mail_box {
  max-width: 280px;
  margin: 0 auto;
 }
 .header_cta {
  margin-top: 40px;
 }
 .header_cta,.header_address,.search_box,.mail_box {
  margin-bottom: 40px;
 }
 .header_cta li + li {
  margin-top: 15px;
 }
 .header_cta li a {
  background: #fff;
  color: #125aa9;
 }
 .header_cta li a span::after {
  border-color: #125aa9;
 }
 .header_address {
  color: #fff;
  padding: 0;
 }
 .header_address p {
  font-size: 1.6em;
 }
 .header_address .tel {
  font-size: 2.4em;
 }
 .search_box {
  text-align: center;
 }
 .search_box .label {
  color: #fff;
  font-size: 1.6em;
  margin-bottom: 5px;
 }
 .search_box .search {
  display: inline-block;
 }
 .search_box .search form {
  justify-content: center;
 }
 .search_box input {
  width: 100%;
  max-width: 270px;
 }
 .mail_box a {
  font-size: 1.6em;
  font-weight: 500;
  color: #007dbc;
  background: #fff;
  text-align: center;
 }
 .mail_box a::before {
  background: url("images/icon_mail_sp.png") no-repeat center;
  vertical-align: -3px;
  margin-right: 10px;
 }
 .menu_btn {
  padding: 20px 0 15px;
  text-align: center;
 }
 .menu_btn p {
  display: inline-block;
  color: #fff;
  font-size: 1.6em;
  padding: 10px 20px;
 }
}
@media screen and (max-width: 768px) {
 .sp_logo {
  width: 65%;
  height: 120px;
  display: flex;
  align-items: center;
  padding: 20px 4px 12px 8px;
 }
 .hamburger {
  height: 45px;
 }
 .hamburger_border:nth-child(1) {
  top: 8px;
 }
 .hamburger_border:nth-child(2) {
  top: 16px;
 }
 .hamburger_border:nth-child(3) {
  top: 24px;
 }
 .hamburger_text {
  font-size: 0.8em;
  padding-top: 29px;
 }
 .sp_nav {
  top: 120px;
  height: calc(100vh - 120px);
 }
 .sp_nav_menu > li > a {
  padding-right: 3.2em;
 }
 .external_link {
  max-width: 70px;
  right: 2px;
  bottom: 2px;
 }
}


/* 管理者用 削除予定 */
/* body.admin .header_pc_side {
	top: 32px;
 height: calc(100vh - 32px);
} */
/* body.admin .header_sp {
	top: 46px;
} */
/* html {
 margin: 0 !important;
}
html #wpadminbar {
 opacity: 0 !important;
 display: none;
} */
.ez-toc-debug-messages {
 display: none;
}/* デバックメッセージ削除 */


/*========================================
  *footer
========================================*/
.grid_clm50 {
 display: grid;
 grid-template-columns: repeat(2,1fr);
 gap: 20px;
}
.outpatient .box_inner, .access .box_inner {
 padding: 30px;
}
.two_clm {
 text-align: center;
 display:  grid;
 grid-template-columns: repeat(auto-fit,minmax(270px,1fr));
 gap: 30px;
 align-items: stretch;
 height: 100%;
}
.two_clm > * {
 display: flex;
 flex-direction: column;
}
.info_text p,.map_text p {
 font-size: 1.6em;
}

.ft_btn a {
 background: #007dbc;
 color: #fff;
 display: inline-block;
 position: relative;
}
.ft_btn a span {
 margin-right: 10px;
}
.ft_btn a::after {
 content: "";
 display: inline-block;
 width: 9px;
 aspect-ratio: 1 / 1;
 border-top: 2px solid #fff;
 border-right: 2px solid #fff;
 transform: rotate(45deg);
 vertical-align: 2px;
}
.ft_clm_btn {
 display: flex;
 justify-content: flex-end;
 margin-top: auto;
 text-align: right;
}
.ft_clm_btn a {
 display: flex;
 justify-content: space-between;
 align-items: center;
 font-size: 1.7em;
 padding: 8px 18px;
 margin: 10px;
 min-width: 160px;
}


/*------------------------------
 *フッター
------------------------------*/
.footer {
	position: relative;
}
.footer_nav {
 height: 400px;
 background: url("images/ft_nav_bg.png") no-repeat center / cover;
}
.footer_menu {
 display: flex;
 gap: 10px 32px;
 justify-content: center;
 padding-top: 15em;
 flex-wrap: wrap;
}
.footer_menu li a {
 font-size: 1.6em;
 color: #336699;
 text-decoration: underline;
}

.ft_btm_box {
 display: flex;
 justify-content: space-between;
 align-items: flex-end;
 padding: 50px 0;
 gap: 50px;
 margin-top: 0 !important;
}
.ft_logo {
 width: 100%;
 max-width: 213px;
}
.flex_box {
 display: flex;
 justify-content: space-between;
 align-items: flex-end;
 gap: 0 50px;
 width: calc(100% - 213px);
}
.footer_info {
 display: flex;
 align-items: flex-end;
 gap: 5px 30px;
 letter-spacing: 0.06em;
 flex-wrap: wrap;
}
.footer_info p {
 display: flex;
 gap: 0 20px;
}
.footer_info p span {
 font-size: 1.6em;
}
.ft_btn.inquiry {
 margin-right: 4em;
}
.ft_btn.inquiry a {
 font-size: 1.7em;
 padding: 5px 16px;
 white-space: nowrap;
}

.copyright {
 font-size: 1.2em;
 color: #fff;
 background: #00679b;
 padding: 20px 0;
 text-align: center;
 line-height: 1.5;
}
.page-top {
	position: fixed;
	right: 35px;
	z-index: 555;
}
.page-top a {
	display: block;
	width: 47px;
	aspect-ratio: 1 / 1;
	background: #039f43;
 border-radius: 3px;
	text-indent: -9999px;
	position: relative;
	z-index: 888;
	transition: all 0.1s;
}
.page-top a::before {
	content: '';
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	width: 18px;
	aspect-ratio: 1 / 1;
	transform: rotate(-45deg);
	position: absolute;
	top: 19px;
	right: 14px;
}
@media (hover: hover) and (min-width: 992px) {
 .ft_btn a:hover {
  background: #003775;
 }
 .footer_menu li a:hover {
  text-decoration: none;
 }
	.page-top a:hover {
		opacity: 0.7;
	}
}
@media screen and (max-width: 1320px) {
 .ft_btm_box {
  display: block;
 }
 .flex_box {
  width: 100%;
 }
 .ft_logo {
  margin-bottom: 15px;
 }
 .footer_info p {
  flex-wrap: wrap;
  line-height: 1.5;
 }
 .page-top {
		right: 25px;
	}
}
@media screen and (max-width: 991px) {
 .ft_wrapper {
  position: relative;
 }
 .ft_btn.inquiry {
  margin-right: 0;
 }
	.page-top a {
		width: 45px;
	}
	.page-top a::before {
		width: 15px;
		top: 19px;
		right: 15px;
	}
}
@media screen and (max-width: 768px) {
 .ft_btm_box {
  padding: 25px 0;
 }
 .footer_nav {
  background: url("images/ft_nav_bg_sp.png") no-repeat bottom center;
  background-position-x: 50%;
 }
 .footer_menu {
  flex-direction: column;
  align-items: center;
  padding-top: 80px;
  gap: 5px 10px;
 }
 .ft_logo {
  margin-bottom: 10px;
 }
 .flex_box {
  gap: unset;
 }
 .footer_info p {
  gap: 0 12px;
 }
 .footer_info p span {
  font-size: 1.5em;
 }
 .ft_btn.inquiry a {
  font-size: 1.6em;
  padding: 4px 14px;
 }
 .copyright {
  font-size: 1.1em;
 }
 .page-top {
		right: 15px;
	}
}


/*========================================
  *Utility
========================================*/
.bold {
 font-weight: 700;
}
/* margin */
.u_mt40 {
 margin-top: 40px;
}
.u_mt100 {
 margin-top: 100px;
}
.u_mt170 {
 margin-top: 170px;
}
.u_mb50 {
 margin-bottom: 50px;
}
/* padding */
.u_pd40 {
 padding: 40px 0;
}
@media screen and (max-width: 991px) {
 .u_mt170 {
  margin-top: 135px;
 }
}
@media screen and (max-width: 768px) {
 .u_mt40 {
  margin-top: 30px;
 }
 .u_mt170 {
  margin-top: 100px;
 }
 .u_pd40 {
  padding: 35px 0;
 }
 .u_mb50 {
  margin-bottom: 40px;
 }
}


/*========================================
  *icon
========================================*/
a[href*=".pdf"] span::after,
a[href*=".docx"] span::after, a[href*=".doc"] span::after,
a[href*=".xlsx"] span::after, a[href*=".xls"] span::after,
a[href*=".zip"] span::after {
	content: "";
	background: no-repeat center center / contain;
	width: 20px;
	aspect-ratio: 1 / 1;
	display: inline-block;
	vertical-align: -4px;
	margin-left: 0.3em;
}
a span::before {
	content: none;
}
a[href*=".pdf"] span:not(.arrow):after {
	background-image: url("images/file_pdf.png");
}
a[href*=".docx"] span:not(.arrow)::after, a[href*=".doc"] span:not(.arrow)::after {
	background-image: url("images/file_word.png");
}
a[href*=".xlsx"] span:not(.arrow)::after, a[href*=".xls"] span:not(.arrow)::after {
	background-image: url("images/file_excel.png");
}
a[href*=".zip"] span:not(.arrow)::after {
	background-image: url("images/file_zip.png");
}


/*========================================
  *共通
========================================*/
/* 新着情報 */
.news_list {
 padding: 0 1em;
}
.news_list a,.news_list a .meta,.news_list a .cats {
 display: flex;
 align-items: center;
}
.news_list li a {
 padding: 20px 0;
 gap: 5px 20px;
 border-bottom: 1px solid #ccc;
}
.news_list li a .date {
 font-size: 1.6em;
 flex-shrink: 0;
 font-variant-numeric: tabular-nums;
}
.news_list li a .cats {
 font-size: 1.5em;
 gap: 10px;
}
.news_list li a .cat {
 text-align: center;
 background: #e6e6e6;
 padding: 0 5px;
 border-radius: 8px;
}
.news_list li a .important {
 color: #fff;
 background: #cc0000;
 padding: 0 20px;
 white-space: nowrap;
}
.news_list li a .new {
 color: #cc0000;
 font-weight: bold;
 margin-left: 10px;
}
.news_list li a .title,.no-post {
 font-size: 1.6em;
 margin: 0;
}
@media (hover: hover) and (min-width: 992px) {
 .news_list li a:hover {
  background: #f5f5f5;
 }
 .news_list li a:hover p {
  text-decoration: underline;
 }
}
@media screen and (min-width: 992px) {
 .news_list li a .meta {
  margin-left: 10px;
  gap: 30px;
  flex-direction: row-reverse;
 }
}
@media screen and (max-width: 991px) {
 .news_list li a {
  flex-wrap: wrap;
 }
 .news_list li a .meta {
  width: 100%;
  justify-content: space-between;
  flex-wrap: wrap;
 }
 .news_list li a .date {
  text-align: right;
 }
 .news_list li a .title {
  margin-left: 15px;
 }
}
@media screen and (max-width: 768px) {
 .news_list {
  padding: 0;
 }
 .news_list li a {
  padding: 16px 0;
 }
 .news_list li a .date {
  min-width: unset;
  margin-left: auto;
 }
 .news_list li a .cats {
  font-size: 1.4em;
 }
 .news_list li a .important {
  padding: 0 15px;
 }
 .news_list li a .title {
  margin-left: 5px;
 }
}

/* ボックス */
.box {
 display: flex;
 flex-direction: column;
 background: #86c1e9;
 padding: 15px;
}
.box_inner {
 background: #fff;
 padding: 15px;
 border-radius: 5px;
 flex: 1;
}
@media screen and (max-width: 768px) {
 .box_inner {
  padding: 15px 10px 30px;
 }
}