@charset "utf-8";

/* 全体の設定
–––––––––––––––––––––––––––––––––––––––––––––––––– */
* {
	box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
}

/* 瀬戸フォント */
@font-face
{
  font-family: SetoFontSP_sjis;
  src: url('../fonts/SetoFontSP_sjis.woff')
  format("woff");
}

body {
	font-family: SetoFontSP_sjis, "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", sans-serif;
	margin: 0;
	word-wrap: break-word;
	overflow-x: hidden;
	color: #40210f;
	font-size: clamp(18px,2vw,20px);
	line-height: 1.25em;
}

html {scroll-behavior: smooth;}

html, body {
	width: 100%; /* とりあえずフル幅 */
}

section {
	padding: clamp(3rem,6.5vw,5rem) 1rem;
}

/* 基本CSS
–––––––––––––––––––––––––––––––––––––––––––––––––– */
h2,h3,h4,h5 {font-weight: 100;}

img {
	width: 100%;
    max-width: 100%;
    height: auto;/*高さ自動*/
}

a {
    display: block;
    text-decoration-line: none;
	color: inherit;
}

a:hover,a img:hover {
    color: inherit;
    opacity: 0.8;
}

ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

li {text-decoration: none;}

button {
	background: none;
    border: none;
}

.youtube {
    width: 100%;
    aspect-ratio: 16 / 9;
}

.youtube iframe {
    width: 100%;
    height: 100%;
}

.map {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    /* 16:9のアスペクト比 */
    height: 0;
}

.map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* 粒状フィルム用CSS */
.beige-noise-bg {
	position: relative;
	width: 100%;
	height: 100%;
	background-color: rgb(247 232 222 / .4); /* お好みの背景色に変更してください */
	overflow: hidden;
}
.blue-noise-bg {
	position: relative;
	width: 100%;
	height: 100%;
	background-color: #95ced7;
	overflow: hidden;
}
.noise-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.03; /* 粒状感の強さを調整 */
    pointer-events: none;
    z-index: 1;
}

@media screen and (min-width: 1921px) {
	/*.map {
		padding-top: 28.125%;
	}*/
}


/*ヘッダー
-------------------------------------*/
header,footer {
	width: 100%;
	min-height: 100px;
	background-image: url("../images/common/main-bg.jpg");
	background-repeat: repeat-y;
	background-size: cover;
	position: relative;
	top: 0;
    left: 0;
	z-index: 5;
}

header .head-img {
	background-image: url("../images/common/main-bg-top.png");
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center bottom;
	width: 100%;
	padding-top: calc(100 / 1920* 100%);
}

header .head-logo-area {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding: 1rem clamp(.5rem,2vw,1rem);
	display: flex;
	justify-content: space-between;
	align-items: center;
}

header .head-logo-area > * {padding: 0 clamp(.5rem,2vw,1rem);}

header .head-logo-area h1 img {
	width: 790px;
}

header .head-logo-area .head-tel {
	max-width: 260px;
}

header .head-area {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding: 1rem;
	display: flex;
	justify-content: center;
	align-items: center;
	
}

header .head-nav {
	display: flex;
	justify-content: center;
	align-items: center;
	padding-bottom: 1rem;
}

#nav-area {padding: 0 1rem;}

#nav-area ul {
	display: flex;
	justify-content: center;
	font-size: clamp(20px,2vw,24px);
}

#nav-area ul li {
	display: flex;
	align-items: center;
	padding: 0 1rem;
    margin-bottom: 10px;
}

#nav-area ul li::before {
	content: "";
	display: inline-block;
	aspect-ratio: 1 / 1;
	width: 55px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	margin-right: .5rem;
}

#nav-area ul li:first-of-type::before {
	background-image: url("../images/common/nav-icon-01.png");
}
#nav-area ul li:nth-of-type(2)::before {
	background-image: url("../images/common/nav-icon-02.png");
}
#nav-area ul li:nth-of-type(3)::before {
	background-image: url("../images/common/nav-icon-03.png");
}

#nav-area ul li a:hover {
	color: #F5695F;
	opacity: 1;
}

.head-contact-btn {
	display: flex;
	background-color: #e08282;
	border-radius: 100px;
	justify-content: center;
	align-items: center;
	color: #fff;
	padding: .5rem 2rem;
}

.head-contact-btn img {
	max-width: 20px;
}

.head-contact-btn p {
	margin: 0;
	white-space: nowrap;
}

.head-contact-btn:hover {
	color: #fff;
	opacity: .8;
}

.head-contact-btn img:hover {opacity: 1;}

/* ハンバーガーボタン */
.openbtn {display: none;}


@media screen and (min-width: 1921px) {
	header .head-img {padding-top: 100px;}
}

@media screen and (max-width: 768px) {
	
	header .head-logo-area h1 {margin-bottom: 0;}
		
	#nav-area {
		display: none;
		position: absolute;
		top: 100%;
		width: 100%;
		padding: 0;
	}
	
	.head-contact-btn {display: none;}
	
	#nav-area ul {
		display: block;
		background-color: #fff;
	}
	
	#nav-area ul li {
		border-bottom: 2px dotted #D6D6D6;
		text-align: center;
		padding: 1rem;
		margin-bottom: 0;
	}
	
	#nav-area li.sp-view {display: block;}
	
	#nav-area ul li:last-of-type {border-bottom: none;}
		
	/* ハンバーガーボタン */
	.openbtn {
		display: block;
		position: absolute;
		right: 2%;
		bottom: 4%;
		background-color: #70b8bf;
		border-radius: 5px;
		cursor: pointer;
		width: 50px;
		height: 50px;
	}
	
	.openbtn span {
		display: inline-block;
		transition: all .4s;
		position: absolute;
	}
	
	.openbtn span:nth-of-type(1),.openbtn span:nth-of-type(3) {
		height: 2px;
		background-color: #fff;
		width: 62%;
		left: 10px;
	}
	
	.openbtn span:nth-of-type(1) {
		top:13px;	
	}

	.openbtn span:nth-of-type(2) {
		top:15px;
		left: 50%;
		transform: translateX(-50%);
		font-size:0.8rem;
		text-transform: uppercase;
		color: #fff;
	}

	.openbtn span:nth-of-type(3) {
		top:36px;
	}

	/*activeクラスが付与されると線が回転して×になり、Menu表記をしている2つ目の要素が透過して消える*/
	.openbtn.active span:nth-of-type(1) {
		top: 18px;
		left: 18px;
		transform: translateY(6px) rotate(-45deg);
		width: 30%;
	}

	.openbtn.active span:nth-of-type(2) {
		opacity: 0;
	}

	.openbtn.active span:nth-of-type(3){
		top: 30px;
		left: 18px;
		transform: translateY(-6px) rotate(45deg);
		width: 30%;
	}
}


/*フッター
-------------------------------------*/
footer {
	z-index: 1;
	padding: 6rem 1rem;
}

.foot-logo {
	margin: 0 auto;
    max-width: clamp(280px,73vw,700px);
}
.foot-add {
	font-size: clamp(20px, 2.5vw, 26px);
	border-bottom: 2px dotted #40210f;
}
.foot-icon {width: clamp(14px,2vw,20px);margin-right: .3rem;}
.foot-icon.fax {width: clamp(18px,2vw,24px);}
.foot-add a {display: inline-block;}
footer table {
	line-height: 1.5em;
}
footer table th {padding-right: .7rem;}

ul.foot-group {
	flex-wrap: wrap;
}
ul.foot-group li {
	width: 48%;
	padding: .5rem 1rem;
}
ul.foot-group li:first-of-type {
	display: flex;
	width: 96%;
}
ul.foot-group li:first-of-type img {
	display: block;
}
ul.foot-group li:first-of-type a:first-of-type {position: relative;}
ul.foot-group li:first-of-type a:first-of-type::after {
	content: "";
	width: 2px;
	height: 60%;
	background-color: #40210f;
	border-radius: 100px;
	position: absolute;
    right: -1px;
    top: 50%;
    transform: translateY(-50%);
}

.copyright {font-size: 14px;text-align: center;}

@media screen and (max-width: 560px) {
	footer table {width: 100%;}
	footer table :is(th,td) {
		display: block;
	}
	
	ul.foot-group li {width: 80%;}
	ul.foot-group li:first-of-type {
		display: block;
		width: 80%;
	}
	ul.foot-group li:first-of-type a:first-of-type::after {
		width: 70%;
		height: 2px;
		right: auto;
		left: 50%;
		transform: translateX(-50%);
		top: auto;
		bottom: -1px;
	}
}

/*トップページ
-------------------------------------*/

/* FV */
.fv {
	position: relative;
}
.fv > div {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: 0;
	text-align: center;
	width: 100%;
}
.fv h2 {
	font-size: clamp(24px,3.1vw,64px);
    line-height: 1.5em;
	margin-bottom: 0;
	text-shadow:   0 0 5px #fff, 0 0 10px #fff, 0 0 15px #fff;
}
.fv h2 span {
	color: #95ced7;
	font-size: .8em;
}
.fv img {display: block;}

/* メインタイトル */
.flag-ttl {
	font-size: clamp(17px,1.7vw,24px);
	line-height: 1.7em;
	display: flex;
	align-items: center;
	gap: 1rem;
}
.flag-ttl::before,.flag-ttl::after {
	content: "";
	display: inline-block;
	width: 160px;
	height: 100%;
	aspect-ratio: 16 / 13;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	background-image: url("../images/top/main-ttl-flag.png");
}
.flag-ttl::after {
	transform: scale(-1, 1);
}
.flag-ttl img {width: clamp(100px,10vw,120px);}

/* h2をラッパーとして使う */
h2.bubble-wrapper,.blue-box-bubble,.yellow-box-bubble {
	position: relative;
	margin: 20px;
	display: inline-block;
	flex: 0 1 auto;
	width: auto;
}
/* 吹き出し全体 */
.bubble {
	position: relative;
	display: inline-block;
}
/* 吹き出しの内容部分 */
.bubble-content {
	padding: 1rem;
	border-radius: 5px;
	position: relative;
	/* テキスト量で伸縮するよう、display: inline-blockでも可 */
	display: inline-block;
	background-color: #fff;
}
/* 影用の吹き出し */
.bubble.shadow {
	position: absolute;
	background-color: #e0e0e0;
	border-radius: 5px;
}
.bubble.shadow .bubble-content {
	background-color: #e0e0e0;
}
/* SVGの尻尾部分 */
.bubble-tail {
	position: absolute;
	right: -32px;
	top: 50%;
	transform: translateY(-50%);
	width: 32px;
	height: 16px;
}
.bubble-tail svg {
	width: 100%;
	height: 100%;
}
.bubble-tail svg path {
	fill: #fff;
}
/* 影用のSVG色 */
.bubble.shadow .bubble-tail svg path {
	fill: #e0e0e0;
}

.blue-box-bubble {margin: 0 0 0 10px;}
.blue-box-bubble .bubble-content {padding: .5rem 1rem;}
.yellow-box-bubble .bubble-content {padding: .8rem clamp(1rem,4vw,2.5rem);}
.blue-box-bubble .bubble-tail {
	right: auto;
    left: -17px;
}
.yellow-box-bubble {margin: 0 10px 0 0;}
.yellow-box-bubble .bubble-tail {
	right: -17px;
	transform: translateY(-50%) scale(-1, 1);
}

/* 吹き出しここまで */

.owl-img-ttl {
	position: relative;
	text-align: center;
	font-size: clamp(26px,5vw,30px);
	line-height: 1.2em;
	text-shadow:2px 2px 0 #FFF, -2px -2px 0 #FFF,
              -2px 2px 0 #FFF, 2px -2px 0 #FFF,
              0px 2px 0 #FFF,  0 -2px 0 #FFF,
              -2px 0 0 #FFF, 2px 0 0 #FFF;
}
.owl-img-ttl img {
	width: 550px;
}
.owl-img-ttl span {
	position: absolute;
	top: 10%;
	left: 50%;
	transform: translateX(-50%);
	width: 316px;
	max-width: 100%;
}
.owl-img-ttl span.long-ttl {padding-left: 1rem;}

.blue-sub-ttl {
	position: relative;
	background-color: #95ced7;
	padding: 1rem .5rem;
	border-radius: 10px;
	color: #fff;
	text-align: center;
	font-size: clamp(24px, 3vw, 30px);
	max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}
.blue-sub-ttl > div {
	position: relative;
	display: inline-block;
}
.blue-sub-ttl img {
	width: clamp(36px,9vw,54px);
	position: absolute;
	top: 50%;
    transform: translateY(-50%);
}
.blue-sub-ttl > div.icon-left img {right: 100%;}
.blue-sub-ttl > div.icon-left span {padding-left: .7rem;}
.blue-sub-ttl > div.icon-right img {left: 100%;width: clamp(46px, 12vw, 74px);}
.blue-sub-ttl > div.icon-right span {padding-right: .7rem;}

.blue-box,.yellow-box {
	background-color: #fff;
    border: 3px solid #95ced7;
    border-radius: 10px;
    margin-left: .5rem;
    margin-right: .5rem;
}
.yellow-box {
	border: none;
	max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}
.blue-box h3,.yellow-box h3 {
	background-color: #95ced7;
    padding: .5rem;
	margin-top: 0;
	margin-bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
}
.yellow-box h3 {
	background-color: #eeea83;
	font-size: clamp(28px, 3vw, 30px);
	border-radius: 10px 10px 0 0;
}
.yellow-box h3 span {font-size: .8em;}
.blue-box h3 img,.yellow-box h3 img {width: 70px;height: 100%;}

.bub-link {
	display: flex;
	align-items: center;
	justify-content: center;
    padding: 1rem;
	gap: 1rem;
	font-size: clamp(24px,2vw,32px);
}
.bub-link::before,.bub-link::after,.bub-list li::before {
	content: "";
	display: inline-block;
	width: clamp(20px,3vw,34px);
	height: 100%;
	aspect-ratio: 34 / 27;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	background-image: url("../images/common/bud-green.svg");
	flex-shrink: 0;
}

.bub-list {
	font-size: clamp(20px,3vw,24px);
	line-height: 1.2em;
}
.top-contat .bub-list {font-size: .9em;}
.bub-list li {
	border-bottom: 2px dotted #40210f;
	display: flex;
    align-items: center;
    padding: .8rem .5rem;
	
}
.bub-list li::before {margin-right: .5rem;}
.bub-list:not(.bub-list-reverse) li:nth-of-type(even)::before {
	background-image: url("../images/common/bud-light-green.svg");
}
.bub-list.bub-list-reverse li:nth-of-type(odd)::before {
	background-image: url("../images/common/bud-light-green.svg");
}
.bub-list li img {width: 16px;}


/* 相談支援事業所とは
-------------------------------------*/
.triangle-line {
	max-width: clamp(180px,25vw,300px);
}

.green-box {
	max-width: 800px;
    margin-left: auto;
    margin-right: auto;
	background-color: #fff;
    border-radius: 10px;
}
.green-box h3 {
	background-color: #8cbc79;
	padding: 1rem 1rem 1rem 4rem;
	margin-top: 0;
	margin-bottom: 0;
	font-size: clamp(20px, 3vw, 30px);
	line-height: 1.2em;
	text-align: center;
	border-radius: 10px 10px 0 0;
	color: #fff;
	position: relative;
}
.green-box h3 img {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: calc(-6px - (100vw / 100));
	width: clamp(46px,12vw,78px);
}

.number-list {
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
	background-color: #fff;
	border-radius: 100px;
	font-size: clamp(20px, 3vw, 30px);
	line-height: 1.2em;
	text-align: center;
	padding: clamp(.6rem,2vw,1rem) 1rem clamp(.6rem,2vw,1rem) clamp(4rem,12vw,5rem);
	position: relative;
}
.number-list span {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 0;
	background-color: #fff;
	outline: 4px solid #95ced7;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	width: clamp(60px,12vw,80px);
	font-size: 1.5em;
	font-weight: bold;
	display: inline-flex;
    justify-content: center;
    align-items: center;
}

.yellow-bg-box {
	background-color: #eeea83;
	border-radius: 10px;
	position: relative;
}
.yellow-bg-box p {
	padding: 1.5rem clamp(186px,36vw,266px) 1.5rem 1.5rem;
	font-size: clamp(20px, 3vw, 30px);
	line-height: 1.2em;
}
.yellow-bg-box img {
	position: absolute;
	bottom: 0;
	right: 0;
	max-width: clamp(180px,36vw,260px);
}

@media screen and (min-width: 561px) and (max-width: 1024px) {
/* 相談支援事業所とは
-------------------------------------*/
	.service-img {width: 80%;}
	
}


@media screen and (max-width: 768px) {
	
/* トップページ
-------------------------------------*/
	.fv img {
		aspect-ratio: 500 / 330;
		object-fit: cover;
	}
	.fv > div {
		top: 8%;
	}
}

@media screen and (max-width: 560px) {
	
/* トップページ
-------------------------------------*/
	.flag-ttl {
		flex-direction: column;
		text-align: center;
	}
	.flag-ttl::before,.flag-ttl::after {display: none;}
	.bubble-tail {
		top: auto;
		bottom: -5px;
		transform: rotate(-45deg) scale(-1, 1);
		right: 35%;
	}
	
	.blue-box h3 {flex-direction: column-reverse;} 
	.blue-box-bubble,.yellow-box-bubble {
		margin-left: 0;
		margin-right: 0;
		margin-bottom: 1rem;
	}
	.blue-box-bubble .bubble-tail,.yellow-box-bubble .bubble-tail {
		transform: rotate(-75deg);
		left: auto;
		right: 45%;
	}
	.yellow-box h3 {flex-direction: column;}
	
	.owl-img-ttl span.long-ttl {top: calc(-22px - (100vw / 100));}
	
/* 相談支援事業所とは
-------------------------------------*/
	.green-box h3 {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		padding: 1rem;
		text-align: left;
	}
	.green-box h3 img {
		position: initial;
		transform: none;
		margin-right: .5rem;
	}
	
	.yellow-bg-box {text-align: center;}
	.yellow-bg-box p {
		padding: 1.5rem 1.5rem .5rem;
		margin: 0;
		text-align: left;
	}
	.yellow-bg-box img {
		position: initial;
		margin-bottom: .5rem;
	}
	
}


/* ページトップへ戻るボタン */
#page-top {
	position: fixed;
	right: 15px;
	bottom: -120px;
	z-index: 4;
	transition: bottom 0.3s ease-in-out;
}

#page-top.show {
    bottom: 10px; /* 表示時の位置 */
}

#page-top a {
	display: block;
	width: clamp(60px,14vw,90px);
	text-align: center;
	transition: background-color 0.3s;
}


.row.footer-group {
	display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 1em;
	flex-wrap: wrap;
	max-width: 610px;
    margin: 0 auto;
}

.row.footer-group > div:first-of-type {
	display: flex;
	justify-content: center;
	width: 100%;
    /*text-align: center;*/
}
.row.footer-group > a {
	width: 48%;
}

.footer-group a img {
/*  border: 1px solid #e0e0e0;*/
	display: block;
}

.row.footer-group>div:first-of-type a:not(:last-of-type) {
  position: relative;
}

.row.footer-group>div:first-of-type a:not(:last-of-type)::after {
  content: "";
  width: 2px;
  height: 60%;
  background-color: #40210f;
  border-radius: 100px;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}
.footer-group a img {
	/* border: 1px solid #e0e0e0; */
	display: block;
}

@media (max-width: 768px) {
	.row.footer-group {
		flex-direction: column;
		align-items: center;
	}
}

@media screen and (max-width: 560px) {
	.row.footer-group > div:first-of-type {
			flex-direction: column;
			align-items: center;
	}

	.row.footer-group>div:first-of-type a:not(:last-of-type)::after {
		width: 70%;
		height: 2px;
		right: auto;
		left: 50%;
		transform: translateX(-50%);
		top: auto;
		bottom: 0;
}
.row.footer-group > a {
	width: auto;
}
}


