@charset "UTF-8";
/*
Theme Name: iedukuri
*/

/* ----------------------------------------------------------------------
 reset css
---------------------------------------------------------------------- */
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,
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; outline:0; font-size:100%; vertical-align:baseline; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display:block; }
html { -webkit-text-size-adjust:100%; }
ul, ol { list-style:none; }
blockquote , q { quotes:none; }
blockquote:before, blockquote:after, q:before, q:after { content:''; content: none; }
a:focus { outline:none; }
ins { text-decoration:none; }
mark { font-style:italic; font-weight:bold; }
del { text-decoration:line-through; }
abbr[title], dfn[title] { border-bottom:1px dotted; cursor:help; }
table { border-collapse:collapse; border-spacing:0; width:100%; }
hr { display:block; height:1px; border:0; border-top:1px solid #ccc; margin:1em 0; padding:0; }
button, input, select, textarea { outline:0; -webkit-box-sizing:border-box; box-sizing:border-box; font-size:100%; }
input, textarea { background-image: -webkit-linear-gradient(hsla(0,0%,100%,0), hsla(0,0%,100%,0)); -webkit-appearance: none; border-radius:0; /* Removing the inner shadow, rounded corners on iOS inputs */ }
input[type="checkbox"]{ -webkit-appearance: checkbox; }
input[type="radio"]{ -webkit-appearance: radio; }
button::-moz-focus-inner, input::-moz-focus-inner { border:0; padding:0; }
iframe { max-width:100%; }

/****** column用 ******/

/***編集エリア***/
	/*共通装飾*/
.column{font-size:16px; line-height: 1.5em; margin-top:80px;}
.column .column_container{width: 1100px;}
.column .u-fv{background: #70211F;}
.column .u-fv h1,.column .u-fv p{color: #fff; font-size: 26px; width:1100px;}
.column .breadcrumbs{width: 1100px; font-size:14px;}
.column .column_container .right{width:325px;}
.column .column_container .right h3{font-size:18px; border-left: 5px solid #70211F;}
.column .column_container .right .sidebar-wrapper .rpwe-li h3 a{color: #333; font-size: 15px;}
.column .column_container .right .sidebar-wrapper .rpwe-li a:hover{color:#211c70;}
.column .column_container .right .widget_categories .cat-item{font-size: 15px;}

	/*一覧ページ装飾*/
.column .column_container .left h2{color:#333; font-size:20px;}
.column .column_container .left ul .thumbnail{width: 270px;}
.column .column_container .left ul .thumbnail img{height:150px;}
.column .column_container .left ul .content .title{font-size:20px; color:#333;}
.column .column_container .left ul .content .des{font-size:14px; color:#333;}
.column .column_container .left ul .content .time{font-size:14px; color:#aaa;}

	/*詳細ページ装飾*/
.column .content .data .category a{font-size:12px;}
.column .content .data .time{font-size:12px;}
.column .content .left h1{font-size:28px;}
.column .content .left h2{font-size:22px; background:#70211F; color:#fff;}
.column .content .left h3{font-size:18px; border-bottom: solid 3px #70211F;}
.column .content .left h4{font-size:16px;}
.column .content .left h4:before {border-top: 1px solid; content: ""; width: 10px; margin-right: 5px;}
.column .content .left .thumbnail img{height:400px !important;}
.column .content #ez-toc-container .ez-toc-title{font-size:16px;}
.column .content #ez-toc-container a{font-size:16px;}
.column .content .yarpp h3{font-size:20px;}
.column .content .yarpp a .yarpp-thumbnail-title{font-size:16px;}
.supervisor .supervisor-title{font-size: 20px; background:#70211F; color: #fff;}
.supervisor-profile .txt1{font-size: 20px;}
.supervisor-profile .txt2{font-size: 16px;}
.d1 .txt2{font-size: 16px;}	
.supervisor_box .title {font-size: 20px; background:#70211F; color: #fff;}

@media screen and (max-width:980px) {
	.column{
		margin-top:60px;
	}

  .column .content .left h1 {
    font-size: 22px;
  }
}

.column .content .data .category a:hover{background:#E5BD1C;}


/***非編集エリア***/
	/*共通装飾*/
.column{background:#fff; letter-spacing:1px;}
.column *,.column  *::before,.column  *::after{box-sizing: border-box;}
.column p{margin:0; font-weight: 500;}
.column .column_container{margin: 0 auto 0; display: flex; justify-content: space-between; padding: 30px 0 100px;}
.column .column_container .left{width:770px; margin:0 30px 0 0; color:#333; flex: 1;}
.column .u-fv{width: 100%;}
.column .u-fv h1,.column .u-fv p{font-weight: bold; letter-spacing: 2.5px; margin:0 auto; padding:40px 0; text-align:center;}
.column .breadcrumbs_outer{width: 100%;}
.column .breadcrumbs{margin:0 auto;}

.column .column_container .right h3{color:#333; margin:0 0 15px; padding:10px;}
.column .column_container .right .sidebar-wrapper{margin:0 0 30px;}
.column .column_container .right .sidebar-wrapper .rpwe-li {display: grid; grid-template-columns: 35% 1fr; margin:0 0 20px; }
.column .column_container .right .sidebar-wrapper .rpwe-li h3{flex: 1; font-weight:normal; border:none; padding:0;}
.column .column_container .right .sidebar-wrapper .rpwe-li h3 a{width: auto; margin: 0; padding-left: 10px; display: inline-block;}
.column .column_container .right .sidebar-wrapper .rpwe-li a img{width: 100%; object-fit: contain; height: 80px;}
.column .column_container .right .widget_categories .cat-item{background: #fff; color: #333; padding: 10px 10px; border-top: solid 1px #eadbbe;}
.column .column_container .right .widget_categories .cat-item:hover{background: #f5f5f5;}
.column .column_container .right .widget_categories .cat-item:last-child{ border-bottom: solid 1px #eadbbe}
.column .column_container .right .widget_categories .cat-item a{color:#333; display:flex; justify-content:space-between; padding:0;}
.column .column_container .right .widget_categories .cat-item a:hover{color:#211c70;}

	/*一覧ページ装飾*/
.column .column_container .left h2{margin:0 0 20px;}
.column .column_container .left ul a{margin:0 0 30px; padding:0 0 30px; display:flex; border-bottom: solid 1px #eadbbe;}
.column .column_container .left ul .thumbnail{margin:0 20px 0 0;}
.column .column_container .left ul .thumbnail img{width:100%; object-fit:cover;}
.column .column_container .left ul .content{flex: 1;}
.column .column_container .left ul .content .title{margin:0 0 20px; font-weight:bold;}
.column .column_container .left ul .content .des{ margin:0 0 15px;}

.column .wp-pagenavi{margin:0; color:#333; text-align:center; font-size: 14px;}
.column .wp-pagenavi .current{color:#fff; background:#aaa; padding:5px 15px; margin:0 5px; border-radius:5px;}
.column .wp-pagenavi .page{color:#333; padding:5px 15px; margin:0 5px;}
.column .wp-pagenavi .page:hover{background:#eee; color:#333; border-radius:5px;}
.column .wp-pagenavi .pages{color:#aaa; padding:5px 15px; margin:0 5px;}
.column .wp-pagenavi .nextpostslink,.column .wp-pagenavi .previouspostslink{padding:5px 15px; margin:0 5px; color:#aaa;}
.column .wp-pagenavi .nextpostslink:hover,.column .wp-pagenavi .previouspostslink:hover{background:#eee; color:#333; border-radius:5px;}

	/*詳細ページ装飾*/
.column .content .data{display:flex; justify-content: space-between; margin:0 0 30px;}
.column .content .data_in{display:flex; justify-content: flex-start;}
.column .content .data .category a{background:#D5B87D; padding:5px 15px; font-weight:bold; color:#fff; margin: 0 10px 30px 0; border-radius:20px;}
.column .content .data .time{padding:5px 0; color:#bbb; }
.column .content .left a { color: #0b57d0;}
.column .content .left h1{ margin:0 0 30px; line-height: 1.5;}
.column .content .left h2{ padding:15px; margin:70px 0 20px;}
.column .content .left h3{ padding:10px; margin:40px 0 20px;}
.column .content .left h4{ font-weight:bold; margin:10px 0 10px; display: flex; align-items: center;}
.column .content .left h4:before {border-top: 1px solid; content: ""; width: 10px; margin-right: 5px;}
.column .content .left .thumbnail{width:100%; margin:0 0 30px;}
.column .content .left .thumbnail img{width:100%; object-fit:cover;}

.column .content .left table {width: 100% !important; margin: 20px 0; display: block; border-collapse: collapse; border-spacing: 0; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch;}
.column .content .left table tbody {width: 100%; display: table;}
.column .content .left table th {padding: 10px; background: #f7f7f7; border: solid 1px #ccc;}
.column .content .left table td {padding: 10px; border: solid 1px #ccc;}
.column .content .left table ul {margin: 0; background: transparent; padding: 0 0 0 30px;}
.column .content .left table a {margin: 0; padding: 0; display: inline;}
.column .content .left ul{list-style:disc; margin:20px 10px; background:#f7f7f7; padding:20px 20px 20px 50px; line-height: 1.4em;}
.column .content .left ol{list-style:decimal; margin:20px 10px; background:#f7f7f7; padding:20px 20px 20px 50px; line-height: 1.4em;}
.column .content blockquote {position: relative; padding: 10px 15px 10px 60px; margin:20px 0 30px; box-sizing: border-box; font-style: italic; background: #f5f5f5; color: #333;}
.column .content blockquote:before{display: inline-block; position: absolute; top: 15px; left: 15px; content: "\f10d"; font-family: "Font Awesome 5 Free"; color: #777777; font-size: 30px; line-height: 1; font-weight: 900;}
.column .content blockquote p {padding: 0; margin: 7px 0; line-height: 1.7;}
.column .content blockquote a {display: block; text-align: right; font-size: 0.9em; margin:0 !important;}

.column .content #ez-toc-container{width:90%; margin:30px 5% 0; padding:20px 30px; border:solid 1px #dadada; border-radius:5px;}
.column .content #ez-toc-container .ez-toc-title{margin:0 0 20px;}
.column .content #ez-toc-container a{margin:0 0 10px; padding:0; border:none;}
.column .content #ez-toc-container a:hover{color:#66808f;}
.column .content .yarpp h3{background:none; padding:0; border:none; margin:40px 0 20px;}
.column .content .yarpp .yarpp-thumbnails-horizontal{display:flex; flex-wrap: wrap;}
.column .content .yarpp a{width:50% !important; height:auto !important; display:flex; border:none; margin:0 0 20px;}
.column .content .yarpp a img{ width:40% !important; height:90px !important; object-fit:cover; margin:0 15px 0 0;}
.column .content .yarpp a .yarpp-thumbnail-title{width:60% !important; font-weight:normal; margin:0; color:#333; margin:0 15px 0 0;}
.column .content .yarpp a .yarpp-thumbnail-title:hover{color: #0b57d0 !important;}

.supervisor{border: 1px solid #e3e3e3; padding: 20px; margin: 50px 0 30px 0;}
.supervisor .supervisor-title{text-align: center; margin:0 0 20px; padding:15px; color: #fff; font-weight:bold;}
.supervisor .supervisor-profile .txt1{margin: 0 0 10px; font-weight: bold;}
.supervisor .supervisor-profile .txt2{margin: 0 0 20px; font-weight: 400;}
.supervisor .d1{margin:0 0 20px;}
.supervisor .d1 .txt1{font-weight: bold;}
.supervisor .d1 .txt2{font-weight: 400; margin:0 0 10px;}
.supervisor .d1 .txt2:last-child{margin:0;}
.supervisor .supervisor-profile-img{display: flex;}
.supervisor .supervisor-img img{width: 100%;}
.supervisor .supervisor-img{width: 30%; text-align: center;}
.supervisor .supervisor-content{margin: 0 0 0 30px !important; width: 100% !important;}

.column .lkc-card { margin: 10px 10px 15px; }
.column .lkc-date,.column .lkc-url { margin: 3px 0; padding-left: 0; }
.column .lkc-content { height: auto; }
.column .lkc-external-wrap, .column .lkc-internal-wrap, .column .lkc-this-wrap { max-width: none; width: 100%; border: #c9c9c9 solid 1px; box-shadow: none; background-color: transparent; border-radius: 5px; }
.linkcard { margin-left: 0 !important; margin-right: 0 !important; }

.supervisor_box{border: 1px solid #e3e3e3; padding: 20px; margin: 50px 0 30px 0;}
.supervisor_box .title {margin: 0 0 20px; padding: 20px; font-weight: bold;}
.supervisor_box p {font-size:95%;}
.post_content .supervisor_box p {line-height:2; margin: 0; line-height:2; letter-spacing: 0; }
.supervisor_box p.name {font-size: 26px; font-weight:bold;}
.supervisor_box p.name span{font-size: 16px; font-weight:bold; margin-left:10px;}
.supervisor_box .supervisor_wrap{display:flex; margin-bottom: 20px;}
.supervisor_box .supervisor_name{padding-left: 20px; display: flex; justify-content: center; align-items: center; }
.supervisor_box p.detail_ttl{font-size:18px; font-weight:bold; border-bottom: solid 1px #333000; padding:10px; margin: 20px 0 5px; background: #f7f7f7;}
.supervisor_box .supervisor_detail{margin:0 0 20px}
.supervisor_box .supervisor_detail .text{font-weight:500;}
.post_content .supervisor_box a[target="_blank"] {color: #333 !important;}
.supervisor_box .sns_area .sns_box{display: flex;}
.supervisor_box .sns_area .sns_box a{margin-right: 30px;}


@media screen and (max-width:1100px) {
	.column .column_container{width:980px;}
	.column .column_container .left{width:610px;}
	.column .column_container .left .thumbnail{width:auto;}
	.column .breadcrumbs{width: 980px;}
	.column .u-fv h1,.column .u-fv p{width:980px;}
}

@media screen and (max-width:980px) {
	.column .breadcrumbs{overflow-x: scroll; white-space: nowrap;}
	.column .breadcrumbs{width:100%; padding-left: 15px;}
	.column .u-fv h1,.column .u-fv p{width:100%;}
	.column .column_container{width:100%; margin:0 auto 0; display:block; padding:30px 0 30px;}
	.column .column_container .left{width:100%; margin:0; padding:0 15px;}
	.column .column_container .left a{ margin:0 0 40px;}
	.column .column_container .left ul a{display:block;}
	.column .column_container .left .thumbnail{width:100% !important; margin:0 0 10px !important;}
	.column .column_container .left .thumbnail img{width:100%;height: auto!important;max-height: 500px;}
	.column .column_container .left .content{width:100%;}
	.column .column_container .left .content .title{margin:0 0 10px;}
	.column .column_container .left .content .des{margin:0 0 10px;}
	.column .column_container .left .content .time{margin:0;}
	.column .column_container .right{width:100%; padding:0 15px;}
	.column .column_container .right h3{margin:0 0 15px;}
	.column .column_container .right .sidebar-wrapper{margin:0 0 30px;}
	.column .column_container .right .sidebar-wrapper .rpwe-li a{width:35%;}
	.column .column_container .right .sidebar-wrapper .rpwe-li a:has(img){min-width: 135px;}
	.column .column_container .right .sidebar-wrapper .rpwe-li h3{width:100%;}
	.column .column_container .right .sidebar-wrapper .rpwe-li a img {width: 90%; max-width: 180px; height: 90px; object-fit: cover;}
	.column .wp-pagenavi{margin:40px 0;}
	.column .content .data{display:block; margin:10px 0 10px;}
	.column .content .data .category a{display: inline-block; margin:0;}
	.column .content .data .time{margin:10px 0 0;}
	.column .content .yarpp{margin:20px 0 50px;}
	.column .content .yarpp .yarpp-thumbnails-horizontal{display:block;}
	.column .content .yarpp a{width:100% !important; margin:0 0 20px;}
	.column .content .yarpp a img{ width:35% !important; height:72px !important;}
	.column .content .yarpp a .yarpp-thumbnail-title{width:65% !important; margin:0 !important;}
	
	.column table {width: 100% !important; margin-bottom: 1rem; display: block; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch;}
	.column tbody {width: 100%; display: table;}
	.column .content .left img{width:100%;}
	.insta img{width:27px; height:27px;}

	.supervisor .supervisor-profile-img{flex-direction: column;}
	.supervisor .supervisor-img{width: 90%; margin: 0 auto; text-align: center;}
	.supervisor .supervisor-img img{width: 50%;}
	.supervisor .supervisor-title{margin: 0 0 10px 0 !important;}
	.supervisor .supervisor-content{margin: 0 auto !important; width: 95% !important;}

	.supervisor_box .supervisor_wrap{display:block; margin-bottom: 20px;}
	.post_content .supervisor_box .supervisor_name p:not(:first-child),
	.post_content .supervisor_box .supervisor_detail p:nth-child(2),
	.post_content .supervisor_box .supervisor_detail p:nth-child(4){font-size: 14px!important;}
	.supervisor_box .supervisor_name{padding-left: 0; padding-top:10px; display: block;}
	.supervisor_box p.name {font-size: 20px;}
	.supervisor_box .supervisor_img{text-align:center;}
	.supervisor_box p {font-size: 100%;}
	.supervisor_box .supervisor_img img {width:250px;}
	.supervisor_box .sns_area .sns_box{flex-direction: column;}
	.supervisor_box .sns_area .sns_box a{margin: 0 0;}
	.supervisor_box .supervisor_detail{margin:0 0 40px}
}
@media screen and (max-width:630px) {
    img.lkc-thumbnail-img { height: auto !important; }
}
@media screen and (max-width:480px) {
    img.lkc-thumbnail-img { height: auto !important; }
}



/***追記エリア***/
/*1029yarppデフォルトサムネ対策*/
.column .yarpp-thumbnail > img,.column .yarpp-thumbnail-default {
    width: auto;
    height: auto;
    margin:0;
}
.column .yarpp-thumbnail-default > img {
min-height: auto;
min-width: auto;
width: 100%;
}
.column .yarpp-thumbnail .yarpp-thumbnail-default,.column .yarpp-thumbnail > picture{flex: 1;}


/* =========================
   base
========================= */
body {
	font-family: "Yu Gothic", "游ゴシック", sans-serif;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin: 0 auto;
	color: #333;
	background-color: #F6F3EA;
	overflow-x: hidden;
}

img {
	max-width: 100%;
	height: auto;
}

p {
    line-height: 1.65;
    font-size: 15px;
}

p + p {
  margin-top: 15px;
}

a {
	text-decoration: none;
	color: #333;
	transition: 0.3s;
}

a:hover {
  opacity: 0.8;
}

ul {
	list-style: none;
}

.pt-40 {
  padding-top: 40px;
}

.br_pc-only,
.br_sp-only {
  display: none;
}

@media screen and (min-width: 768px) {
  .br_pc-only {
    display: inline;
  }
}

@media screen and (max-width: 767px) {
  .br_sp-only {
    display: inline;
  }
}

/* =========================
   下層コンテンツ
========================= */
.section {
    padding: 80px 0;
}

.section.bg-white{
  background: #fff;
}

.inner {
	max-width: 1200px;
	margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .section {
    padding: 60px 0;
}
  .inner {
	padding: 0 20px;
  }
}


/* =========================
   パンくず
========================= */
.breadcrumbs{ 
  padding: 30px 0;
  font-size: 14px;
}

/* =========================
   共通タイトル
========================= */
/* h2 */
.section-title {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: fit-content;
	margin-inline: auto;
}

.section-title--left {
	margin-inline: 0;
}

@media screen and (max-width: 768px) {
  .section-title--left {
    margin-inline: auto;
  }
}

/* メインタイトル */
.section-title__main { 
	font-size: clamp(22px, 4vw, 40px);
	font-weight: bold;
	color: #70211F;
	text-align: center;
	line-height: 1.6;
	display: block;
}

/* サブタイトル */
.section-title__sub {
	display: inline-flex;
	justify-content: center;
	align-items: center;

	font-family: "alexa-std", sans-serif;
	font-weight: 400;
	font-style: normal;
	color: #eadbbe;
	font-size: clamp(21px, 4vw, 30px);
	letter-spacing: 0.1em;
	margin-bottom: 30px;
	gap: 10px;
}

/* 線 */
.section-title__sub::before,
.section-title__sub::after {
	content: "";
	width: 20px;
	height: 1px;
	background: currentColor;
}

/* 白バージョン */
.section-title__sub.title-sub__white {
	color: #fff;
}

/* h2下のp（左寄せ） */
.top__lead p {
	line-height: 1.8;
	font-size: 16px;
}

/* h2下のp（PC中央寄せ） */
.top__lead--center p {
	text-align: center;
	margin-bottom: 40px;
}

/* h2下のp（SP左寄せ） */
@media screen and (max-width: 768px) {
.top__lead p {
	text-align: left;
	font-size: 14.5px;
  }
}

/* h3 */
.top__h3 {
  font-size: clamp(20px, 4vw, 25px);
  color: #9a5b2c;
  margin-bottom: 15px;
  font-weight: 700;
}

/* =========================
   header
========================= */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  top: 0;
  z-index: 999;
  background: #fff;
}

.header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	height: 80px;
	width: 95%;
	margin: 0 auto;
}

.header__logo img {
	width: 150px;
	height: auto;
}

.logo-link {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.logo-sub {
	font-size: 12px;
	color: #333;
	margin-top: 7px;
	line-height: 1;
}

.header__nav {
	margin-left: auto;
	margin-right: 20px;
}

.header__nav ul {
	display: flex;
	gap: 50px;
}

.header__contact {
	display: flex;
	align-items: center;
	gap: 15px;
}

@media screen and (max-width: 767px) {

	/* ===== header ===== */
	.header__inner {
		height: 60px;
	}

	.header__logo img {
		width: 110px;
	}

	.logo-sub {
		font-size: 9px;
	}
}

/* =========================
     ハンバーガー & ドロワー
  ========================= */
.header__hamburger {
	display: none;
  position: relative;
	flex-direction: column;
	justify-content: space-between;
	width: 25px;
	height: 20px;
	cursor: pointer;
	z-index: 1001;
	/* ドロワーより前面に */
}

.header__hamburger span {
	display: block;
	height: 3px;
	background-color: #70211F;
	border-radius: 2px;
	transition: all 0.3s ease;
}

/* ドロワー初期状態 */
.drawer {
	position: fixed;
	top: 0;
	right: -100%;
	width: 70%;
	max-width: 300px;
	height: 100%;
	background-color: #fff;
	box-shadow: -2px 0 5px rgba(0, 0, 0, 0.2);
	transition: right 0.3s ease;
	z-index: 1000;
	padding: 80px 20px 20px 20px;
	/* ヘッダー分空ける */
}

.drawer__nav ul {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 0;
	margin: 0;
}

.drawer__nav ul li a {
	font-size: 15px;
	color: #333;
}

.drawer__contact {
	margin-top: 40px;
	display: flex;
	flex-direction: column;
	gap: 15px;
}

/* ドロワー表示時 */
.drawer.open {
	right: 0;
}

/* ハンバーガー変形アニメーション */
.header__hamburger.active span:nth-child(1) {
	transform: translateY(8.5px) rotate(45deg);
}

.header__hamburger.active span:nth-child(2) {
	opacity: 0;
}

.header__hamburger.active span:nth-child(3) {
	transform: translateY(-8.5px) rotate(-45deg);
}

@media screen and (max-width: 768px) {
	.header__hamburger {
		display: flex;
		margin-left: auto;
	}

	.header__nav,
	.header__contact {
		display: none;
	}
}


/* =========================
   共通ボタン
========================= */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.5em;
  padding: 1em 1.5em;
  border-radius: 100px;
  color: #fff;
  text-decoration: none;
  line-height: 1;
  font-weight: 600;
  cursor: pointer;
  box-sizing: border-box;
  min-width: 0;
}

/* =========================
   ボタンバリエーション（色）
========================= */
.btn--mail {
  background-color: #E1531D;
}

.btn--line {
  background-color: #06C755;
}

.btn--yellow {
  background-color: #E5BD1C;
}

/* =========================
   ボタンサイズ・用途
========================= */
.btn--header {
  font-size: 16px;
  padding: 0.6em 1.5em;
}

.btn--large {
  font-size: 20px;
  padding: 0.8em 2em;
}

/* =========================
   ボタン内部構造（アイコン付きの場合）
========================= */
.btn__icon {
  width: 2em;
  height: auto;
  flex-shrink: 0;
}

.btn__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1.2;
  min-width: 0; 
}

.btn__main {
  font-size: 1.09em;
}

.btn__sub {
  font-size: 0.7em;
  font-weight: 600;
}

.btn__main,
.btn__sub {
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}

/* =========================
   ヘッダーTELリンク
========================= */
.tel__link {
  display: flex;
  align-items: center;
  text-align: center;
  gap: 8px;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
  box-sizing: border-box;
}

.tel__link img {
  width: 2.3em;
  flex-shrink: 0;
}

.tel__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.tel__main {
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1;
}

.tel__sub {
  font-size: 0.75em;
  font-weight: 600;
}

/* =========================
   レイアウト用コンテナ
========================= */
.top-section__btn {
  text-align: center;
  margin-top: 40px;
}

/* PC表示（例: 1024px以上）で左寄せ */
@media screen and (min-width: 1024px) {
  .top-section__btn.left-on-pc {
    text-align: left;
  }
}

.mv__buttons {
	display: flex;
	gap: 20px;
	margin-bottom: 50px;
}

/* =========================
   メディアクエリ
========================= */
@media screen and (max-width: 768px) {
  .header__contact {
    display: none; /* スマホはドロワーで表示 */
  }

  .top-section__btn {
    text-align: center;
  }
}

/* =========================
   MV背景
========================= */
.mv {
	position: relative;
	background-color: #f5f1ea;
	/* overflow: hidden; */
	margin-top: 70px;
}

.mv::after {
	content: "";
	position: absolute;
	top: 0;
	right: -11%;
	bottom: 0;
	left: 0;
	background-image: url("images/img_fv.webp");
	background-size: auto 107%;
	background-repeat: no-repeat;
	background-position: right bottom;
	z-index: 0;
	pointer-events: none;
}

/* =========================
   MV内コンテンツ
========================= */
.mv__inner {
	position: relative;
	z-index: 1;
	padding: 80px 40px;
	margin: 0 auto;
}

.mv__content {
	width: 50%;
}

/* =========================
   タイトル（h1）2段構成
========================= */
.mv__title {
	margin: 0 0 40px 0;
	line-height: 1.4;
}

.mv__title-1 {
	display: inline-block;
	background: #fff;
	padding: 8px 16px;
	font-size: clamp(18px, 4vw, 40px);
	white-space: nowrap;
}

.mv__title-accent {
	color: #B53834;
	font-weight: bold;
}

.mv__title-2 {
	display: inline-block;
	background: #fff;
	padding: 8px 16px;
	font-size: clamp(23px, 4vw, 60px);
	color: #B57649;
	font-weight: bold;
	white-space: nowrap;
	margin-top: clamp(10px, 4vw, 20px);
}

/* =========================
   説明文
========================= */
.mv__text {
	font-size: 19px;
	line-height: 1.8;
	margin-bottom: 40px;
}

/* =========================
   MVレスポンシブ
========================= */
@media screen and (max-width: 768px) {

	.mv__content {
		width: 100%;
		display: flex;
		flex-direction: column;
		text-align: left;
		position: relative;
	}

	.mv::after {
		background-size: 118% auto;
		background-position: center;
		right: 0;
		top: -40px;
	}

	.mv__content {
		position: relative;
		z-index: 1;
		width: 100%;
		display: flex;
		flex-direction: column;
	}

	.mv__inner {
		padding: 20px 10px;
	}

	.mv__text {
		display: none;
	}
}


/* =========================
   ボタンレスポンシブ
========================= */
@media screen and (max-width: 768px) {

	.mv__buttons {
		display: none;
	}

	/* ボタンサイズ調整 */
	.btn--large {
		font-size: 16px;
		padding: 0.8em 1em;
	}

	.btn__main {
		font-size: 0.95em;
	}

	.btn__sub {
		font-size: 0.65em;
	}
}

/* =========================
   メダル
========================= */
.mv__medals {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	justify-content: flex-start;
}

.medal {
	position: relative;
	width: 210px;
	text-align: center;
}

.medal img {
	width: 100%;
	height: auto;
	display: block;
}

.medal p {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	margin: 0;
	font-size: 14px;
	color: #492A1F;
	line-height: 1.2;
	pointer-events: none;
}

.medal strong {
	display: inline-block;
	font-size: 16px;
	font-weight: 700;
}

.medal .num {
	font-size: 45px;
	font-weight: 700;
}

.medal .unit {
	font-size: 18px;
	margin-left: 2px;
}

/* =========================
   メダルレスポンシブ
========================= */
@media screen and (max-width: 768px) {
	.mv__medals {
		flex-wrap: nowrap;
		justify-content: center;
		gap: 10px;
		margin-bottom: 20px;
		margin-top: 170px;
	}

	.medal {
		width: 130px;
	}

	.medal p {
		font-size: 7px;
	}

	.medal .num {
		font-size: 20px;
	}

	.medal .unit {
		font-size: 8px;
		margin-left: 0;
	}

}

/* =========================
   consultation
========================= */

.section.consultation {
	margin: 100px 0 220px;
}

.consultation {
	position: relative;
	overflow: hidden;
}

.consultation::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("images/img_consultation_bg.webp") no-repeat center;
	background-size: 1405px;
	z-index: 0;
}

.consultation .inner {
	position: relative;
	z-index: 1;
}

.consultation__content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 10px 0 50px;
	gap: 40px;
}

.consultation__image {
	flex: 0 0 45%;
}

.consultation__line {
	margin-top: 30px;
}

.consultation__line img {
	max-width: 100%;
}

/* =========================
   consultation レスポンシブ
========================= */
@media screen and (max-width: 768px) {

   .section.consultation {
	margin: 0 0 120px;
   }

   .consultation {
        padding: 80px 0 30px;
   }

	.consultation__content {
		flex-direction: column;
	}

	/* 並び順指定 */
	.consultation__image {
		order: 3;
		width: 100%;
	}

	.consultation::before {
		background: url("images/img_consultation_bg-sp.webp") no-repeat center;
		background-size: cover;
		transform-origin: center;
	}

	.consultation__text {
		order: 4;
	}

	.consultation__line {
		order: 5;
	}
}

/* =========================
   solution
========================= */
.solution {
  position: relative;
  background: #EADBBD;  /* セクション本体の背景色 */
  overflow: visible;     /* 三角形を外にはみ出させる */
  padding-top: 0px;    /* コンテンツを三角形の下にずらす */
}

/* 上向き三角形 */
.solution::before {
  content: "";
  position: absolute;
  top: -140px;           /* セクションの外側に三角形を出す */
  left: 0;
  width: 100%;
  height: 140px;         /* 三角形の高さ */
  background: #EADBBD;  /* 三角形の色 */
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%); /* 上向き */
  z-index: 0;
}

.solution .inner {
  position: relative;
  z-index: 1;
}

/* グリッド */
.solution__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

/* カード */
.solution__item {
  background: #fff;
  border-radius: 20px;
  padding: 40px 25px;
  text-align: center;
}

/* アイコン円 */
.solution__icon {
  width: 120px;
  height: 120px;
  margin: 0 auto 20px;
  background: #F6F3EA;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.solution__icon img {
  width: 50px;
  height: auto;
}

/* テキスト */
.solution__item p {
  font-size: 14px;
  line-height: 1.8;
}

/* =========================
   solution　レスポンシブ
========================= */
@media screen and (max-width: 768px) {

  .solution::before {
    height: 70px;
	top: -70px; 
  }

  .solution__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .solution__item {
    padding: 30px 20px;
  }

  .solution__icon {
    width: 100px;
    height: 100px;
  }

  .solution__item p {
  font-size: 12px;
  line-height: 1.8;
  }
}

/* =========================
   achievement
========================= */
.section.achievement {
	background: #fff;
}

.achievement {
	position: relative;
	overflow: hidden;
}

/* 背景 */
.achievement::before {
    content: "";
    position: absolute;
    top: 107px;
    left: -14%;
    width: 60%;
    height: 100%;
    background: url("images/img_achievement_bg.webp") no-repeat left center;
    background-size: contain;
    z-index: 0;
}

.achievement__inner {
	position: relative;
	z-index: 1;
	display: flex;
	gap: 60px;
	align-items: flex-start;
}

/* =========================
   左
========================= */
.achievement__left {
	flex: 0 0 50%;
}

.achievement__title, .vision__title {
	text-align: left;
}

/* =========================
   右（スライダー）
========================= */
.achievement__right {
	position: relative;
	flex: 1;
	min-width: 0;

	/* 右にはみ出させる */
	margin-right: calc(50% - 50vw);

	/* 左との余白 */
	padding-left: 60px;
}

/* スライダー全体 */
.achievement__slider {
	position: relative;
	overflow: hidden;
}

/* カードラッパー（横スクロール） */
.achievement__cards {
	display: flex;
	gap: 40px;
	overflow-x: auto;
	scroll-behavior: smooth;

	/* 見切れ演出 */
	padding-right: 120px;
	padding-bottom: 10px;

	/* flexバグ対策 */
	min-width: 0;

	/* スナップ */
	scroll-snap-type: x mandatory;
	scroll-padding-left: 60px;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
	scroll-snap-stop: always;
}

/* スクロールバー非表示（Chrome/Safari） */
.achievement__cards::-webkit-scrollbar {
	display: none;
}

/* Firefox */
.achievement__cards {
	scrollbar-width: none;
}

/* =========================
   カード
========================= */
.achievement__card {
	flex: 0 0 440px;
	margin-left: 5px;
	background: #fff;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 5px 5px #F6F3EA;
	display: flex;
	flex-direction: column;
	scroll-snap-align: start;
	text-decoration: none;
	color: inherit;
}

/* 画像 */
.achievement__card-img {
	height: 400px;
	overflow: hidden;
	flex-shrink: 0;
}

.achievement__card-img img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	object-position: center;
}

/* 本文 */
.achievement__card-body {
	padding: 30px;
}

.achievement__card-name {
	font-size: 13px;
	margin-bottom: 10px;
}

.achievement__card-category {
	display: inline-block;
	background: #D5B87D;
	color: #fff;
	font-size: 12px;
	padding: 5px 10px;
	border-radius: 20px;
	margin-bottom: 10px;
}

.achievement__card-text {
	font-size: 13px;
	line-height: 1.8;
}

/* =========================
   矢印（下配置）
========================= */
.slider-controls {
	display: flex;
	justify-content: right;
	gap: 16px;
	margin-top: 24px;
	padding: 0 20px 15px 0;
}

/* ボタン本体 */
.slider-arrow {
	position: relative;
	background: #fff;
	border: none;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	box-shadow: 0 5px 5px #F6F3EA;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: 0.3s;
}

/* 矢印 */
.slider-arrow::before {
	content: "";
	width: 10px;
	height: 10px;
	border-top: 2px solid #70211F;
	border-right: 2px solid #70211F;
}

/* ← */
.slider-arrow--prev::before {
	transform: rotate(-135deg);
}

/* → */
.slider-arrow--next::before {
	transform: rotate(45deg);
}

/* hover */
.slider-arrow:hover {
	transform: scale(1.1);
}

/* =========================
   レスポンシブ
========================= */
@media screen and (max-width: 768px) {

	.achievement__inner {
		flex-direction: column;
		gap: 40px;
	}

	.achievement__title {
		margin-inline: auto;
		text-align: center;
	}

	.achievement__left .section-title__sub {
		text-align: center;
	}

	.achievement::before {
        top: auto;
        bottom: 46px;
        left: -65px;
        width: 117%;
        height: 271px;
        background-size: contain;
        background-position: center bottom;
    }

	.achievement__card-body {
		padding: 20px;
	}

	.achievement__card-img {
	height: 200px;
	overflow: hidden;
	flex-shrink: 0;
    }

	/* 右のはみ出し解除 */
	.achievement__right {
		margin-right: 0;
		padding-left: 0;
	}

	/* スマホでも見切れ */
	.achievement__cards {
		padding-right: 60px;
		scroll-padding-left: 20px;
		gap: 30px;
	}

	/* カードサイズ */
	.achievement__card {
		flex: 0 0 280px;
	}

	/* 矢印 */
	.slider-arrow {
		width: 36px;
		height: 36px;
	}

	.slider-controls {
	    justify-content: left;
		margin-left: 5px;
    }
}

/* =========================
   fundamentals
========================= */
.section-title__sub.title-sub__white {
  color: #fff;
}

/* =========================
   グリッド
========================= */
.fundamentals__grid {
  display: grid;
  gap: 55px;
}

@media screen and (min-width: 768px) {
  .fundamentals__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
  }
}

/* =========================
   カード
========================= */
.fundamentals__card {
  display: block;
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;

  height: 515px;
}

.fundamentals__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.fundamentals__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.1); /* 初期拡大 */
  transition: transform 0.6s ease;
  display: block;
}

/* カード3枚目の画像右寄せ */
.fundamentals__card:nth-child(3) .fundamentals__img img {
   object-position: 80% center;
}

/* ホバーでズームアウト */
.fundamentals__card:hover .fundamentals__img img {
  transform: scale(1);
}

/* 下部コンテンツ（高さ統一） */
.fundamentals__content {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 176px;
  padding: 20px;
  background: rgba(165, 132, 95, 0.82);
  color: #fff;
  box-sizing: border-box;
}

/* タイトル */
/* 下部コンテンツのタイトル用 */
.top__h3.fundamentals__title {
  position: relative;
  display: inline-block;
  color: #fff;
  padding-bottom: 3px;
}

/* 下線 */
.fundamentals__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background-color: #fff;
  margin-top: 5px;
}

/* テキスト */
.fundamentals__content p {
  overflow-wrap: break-word;
}

/* スマホ調整 */
@media screen and (max-width: 767px) {
  .fundamentals__card {
    height: 400px;
  }

  .fundamentals__content {
    height: 140px;
    padding: 20px 15px;
  }

  .fundamentals__content h3 {
    font-size: 16px;
  }

  .fundamentals__content p {
    font-size: 13px;
  }
}

/* =========================
   About
========================= */
.section.about {
	background: #fff;
}

.about__top,
.about__middle {
  display: grid;
  gap: 40px;
  margin-bottom: 40px;
  background: #fff;
}

/* PC表示 */
@media screen and (min-width: 768px) {
  .about__top,
  .about__middle {
    grid-template-columns: 1fr 1fr;
    align-items: center;
	margin-bottom: 80px;
  }
}

/* 画像 */
.about__img img {
  width: 100%;
}

/* =========================
   Flow
========================= */
.flow {
  margin-top: 60px;
  text-align: center;
}

/* リスト */
.flow__list {
  display: grid;
  gap: 20px;
  margin: 40px 0;
}

@media screen and (min-width: 768px) {
  .flow {
	margin-top: 40px;
  }

  .flow__list {
    grid-template-columns: repeat(5, 1fr);
  }
}

/* カード */
.flow__card {
  background: #F6F3EA;
  padding: 25px 15px;
  border-radius: 12px;
  position: relative;
}

/* 線 */
.flow__card::after {
  content: "";
  position: absolute;
  background: #D5B87D;
}

/* SP：縦線 */
@media screen and (max-width: 767px) {

  .flow__list {
    gap: 35px;
  }
  .flow__card::after {
    width: 2px;
    height: 35px;
    bottom: -35px;
    left: 50%;
    transform: translateX(-50%);
  }

  .flow__card:last-child::after {
    display: none;
  }
}

/* PC：横線 */
@media screen and (min-width: 768px) {
  .flow__card::after {
    width: 20px;
    height: 2px;
    right: -20px;
    top: 50%;
    transform: translateY(-50%);
  }

  .flow__card:last-child::after {
    display: none;
  }
}

/* 番号 */
.flow__num {
  position: absolute;
  top: -14px;
  left: 10px;
  background: #B57649;
  color: #fff;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
}

/* 中身 */
.flow__content {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* タイトル */
.flow__title {
  font-size: 18px;
  color: #9a5b2c;
  display: flex;
  min-height: 51px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.4;
}

.flow__small {
  font-size: 14px;
}

/* アイコン */
.flow__icon {
  width: 100px;
  height: 100px;
  background: #fff;
  border-radius: 50%;
  margin: 10px 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.flow__icon img {
  width: 50px;
}

/* テキスト */
.flow__text {
  text-align: left;
  font-size: 13px;
}

/* =========================
   SPレイアウト
========================= */
@media screen and (max-width: 767px) {
  .flow__list {
    grid-template-columns: 1fr;
  }

  .flow__card {
    display: flex;
    gap: 12px;
    text-align: left;
    padding: 20px;
  }

  .flow__title {
    margin-bottom: 5px;
	min-height: 40px;
  }

  .flow__num {
	width: 44px;
	height: 44px;
	font-size: 20px;
  }
}

/* =========================
   パートナーロゴ
========================= */
.partner-logos {
	width: 100%;
}

.partner-logos__inner {
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	overflow: hidden;
}

.partner-logos__track {
	display: flex;
	width: calc(200%);
	animation: logos-slide 40s linear infinite;
}

.partner-logos__item {
	flex-shrink: 0;
}

.partner-logos__item img {
	height: 500px;
	width: auto;
	display: block;
}

@keyframes logos-slide {
	100% {
		transform: translateX(-50%);
	}
}

@media screen and (max-width: 767px) {
  .partner-logos__item img {
	height: 350px;
  }
}


/* =========================
   Vision
========================= */
.vision {
    position: relative;
    overflow: hidden;
    background: url("images/img_vision-text-bg.webp") no-repeat left calc(50% - 210px) center / 920px auto;
}

/* =========================
   背景画像（全面）
========================= */
.vision__bg {
    position: absolute;
    inset: 0;
    z-index: -1;
}

.vision__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* =========================
   レイアウト
========================= */
.vision__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* =========================
   右画像
========================= */
.vision__img {
    flex: 0 0 43%;
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 2;
    transform: translateY(-40px);
}

.vision__img img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* =========================
   テキスト
========================= */
.vision__content {
    flex: 0 0 57%;
    padding: 100px 0 100px 80px;
    position: relative;
    z-index: 1;
}

/* =========================
   レスポンシブ
========================= */
@media screen and (max-width: 768px) {

    .vision {
        background: url("images/img_vision-text-bg-sp.webp") no-repeat left 15% bottom 7% / 130% auto;
    }

    .vision__inner {
        flex-direction: column;
    }

    .vision__img {
        order: -1;
        width: 100%;
        justify-content: flex-end;
        margin-bottom: -73px;
        transform: translateX(30px) translateY(-30px);
    }

    .vision__content {
        width: 100%;
        padding: 50px 20px 0;
    }
}

/* =========================
   Home Guide
========================= */
.home-guide {
	background: #EADBBD;
}

/* リスト */
.home-guide__list {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

/* カード */
.home-guide__item {
	display: flex;
	align-items: center;
	gap: 30px;
	background: #fff;
	border-radius: 20px;
	padding: 35px 40px;
}

/* 画像 */
.home-guide__img {
	flex-shrink: 0;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	overflow: hidden;
}

.home-guide__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* テキスト */
.home-guide__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
}

/* h3 */
.home-guide .top__h3 {
	color: #B57649;
	padding-bottom: 10px;
	border-bottom: 1px solid #EADBBD;
}

/* =========================
   レスポンシブ
========================= */
@media screen and (max-width: 768px) {

	.home-guide__item {
		flex-direction: column;
		padding: 25px 20px;
	}

	.home-guide__img {
        width: 140px;
        height: 140px;
	}

	.home-guide__content h3 {
		text-align: center;
	}

}

/* =========================
   top-column
========================= */
.top-column {
	position: relative;
	background: #fff;
	overflow: hidden;
}

/* 背景装飾 */
.top-column::before {
	content: "";
	position: absolute;
    left: -5%;
    top: 165px;
    width: 610px;
    height: 565px;
	background: url("images/img_top-column-bg.webp") no-repeat center;
	background-size: contain;
	z-index: 0;
}

/* 中身 */
.top-column__inner {
	position: relative;
	z-index: 1;
}

/* =========================
   カード
========================= */
.top-column__cards {
	display: flex;
	gap: 45px;
	justify-content: center;
}

/* 個別カード */
.top-column__card {
	background: #fff;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 5px 10px #F3EFE6;
	width: 100%;
	max-width: 370px;
	display: flex;
	flex-direction: column;
}

/* 画像 */
.top-column__card-img {
	height: 220px;
	overflow: hidden;
}

.top-column__card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 本文 */
.top-column__card-body {
	padding: 20px;
}

/* 日付＋カテゴリ */
.top-column__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
}

.top-column__date {
	font-size: 12px;
	color: #999;
}

/* カテゴリ */
.top-column__category {
	background: #D5B87D;
	color: #fff;
	font-size: 12px;
	padding: 5px 12px;
	border-radius: 20px;
}

/* タイトル */
.top-column__title {
	font-size: 14px;
	line-height: 1.8;
	color: #333;
}

/* =========================
   レスポンシブ
========================= */
@media screen and (max-width: 768px) {

	.top-column__cards {
		flex-direction: column;
		align-items: center;
	}

	.top-column__card {
		max-width: 100%;
	}

	.top-column__lead {
		margin-bottom: 30px;
	}

	.top-column::before {
		width: 75%;
		top: -95px;
	}
}

/* =========================
   FAQ
========================= */
.faq {
  background: #f3efe7;
}

.faq__inner {
  display: flex;
  gap: 60px;
}

/* 左 */
.faq__left {
  flex: 0 0 35%;
}

/* 右 */
.faq__right {
  flex: 1;
}

/* リスト */
.faq__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* アイテム */
.faq__item {
  border-radius: 20px;
  overflow: hidden;
}

/* 質問 */
.faq__question {
  width: 100%;
  background: #B57649;
  color: #fff;
  border: none;
  padding: 18px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 14px;
  cursor: pointer;
  position: relative;
}

/* Q */
.faq__q {
  font-weight: bold;
  font-size: 18px;
}

/* テキスト */
.faq__text {
  flex: 1;
  text-align: left;
}

/* アイコン */
.faq__icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #fff;
  position: relative;
  flex-shrink: 0;
}

.faq__icon::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  border-right: 2px solid #B57649;
  border-bottom: 2px solid #B57649;
  transform: translate(-50%, -60%) rotate(45deg);
  transition: 0.3s;
}

/* 開いた状態 */
.faq__item.is-open .faq__icon::before {
  transform: translate(-50%, -40%) rotate(-135deg);
}

/* 回答 */
.faq__answer {
  background: #fff;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s ease;
  border-radius: 0 0 20px 20px;
}

.faq__answer p {
  padding: 20px;
  font-size: 14px;
  line-height: 1.8;
}

/* 開いてる */
.faq__item.is-open .faq__answer {
  max-height: 300px;
}

/* =========================
   レスポンシブ
========================= */
@media screen and (max-width: 768px) {

  .faq__inner {
    flex-direction: column;
    gap: 40px;
  }

  .faq__title {
    text-align: center;
  }

  .faq__left {
    text-align: center;
  }

  .faq__question {
    padding: 14px 16px;
    font-size: 13px;
  }

  .faq__answer p {
    padding: 16px;
  }
}

/* =========================
   LINEセクション
========================= */
.line {
	background: #C9ECC6;
}

@media screen and (min-width: 768px) {
  .line {
	padding-bottom: 0;
  }
}

.line__inner {
	display: flex;
	gap: 60px;
}

/* 左 */
.line__left {
	flex: 0 0 50%;
}

.line__left .top__lead {
	padding-bottom: 40px;
}

/* タイトル */
.line__title {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: clamp(22px, 3vw, 32px);
	font-weight: bold;
	color: #333333;
	margin-bottom: 20px;
}

.line__title img {
	width: 40px;
	height: auto;
}

/* 右 */
.line__right {
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: flex-end;
}

/* スマホ */
.line__phone {
	position: relative;
	width: 410px;
	height: 410px;
	overflow: hidden;
}

.line__phone-img {
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translate(-50%, 51%);
	width: 100%;
	height: auto;
}

/* オーバーレイ */
.line__overlay {
	position: absolute;
	top: 60%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
	width: 80%;
	z-index: 2;
}

.line__overlay p {
	margin-top: 0;
}

/* テキスト */
.line__text-small {
	font-size: 20px;
}

.line__text-large {
	font-size: 27px;
	font-weight: bold;
	color: #06C755;
}

/* QR */
.line__qr {
	width: 100%;
	max-width: 220px;
}

/* =========================
   レスポンシブ
========================= */
@media screen and (max-width: 768px) {

	.line__inner {
		flex-direction: column;
		gap: 30px;
	}

	/* スマホ部分非表示 */
	.line__right {
		display: none;
	}

	.line__left {
		text-align: center;
	}

	.line__title {
		justify-content: center;
	}
}

/* =========================
   店舗情報
========================= */
.office-information {
  background: #fff;
}

.office-information__content {
  display: flex;
  gap: 60px;
}

.office-information__info {
  flex: 0 0 45%;
}

.office-information__list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.office-information__row {
  display: flex;
  gap: 20px;
  font-size: 15px;
  line-height: 1.8;
}

/* 見出し */
.office-information__row dt {
  width: 135px;
}

/* 内容 */
.office-information__row dd {
  flex: 1;
}

/* 右：マップ */
.office-information__map {
  flex: 1;
}

.office-information__map iframe {
  width: 100%;
  height: 320px;
}

/* =========================
   レスポンシブ
========================= */
@media screen and (max-width: 768px) {

  .office-information__content {
    flex-direction: column;
    gap: 40px;
  }

  .office-information__row {
    flex-direction: column;
    gap: 0px;
    font-size: 14px;
  }

  .office-information__row dt {
    width: auto;
  }

  .office-information__map iframe {
    height: 260px;
  }
}

/* =========================
   footer上 お問い合わせ
========================= */
.bottom-contact {
	background-image: url("images/img_contact-bg.webp");
	background-size: cover;
	background-position: center bottom;
	position: relative;
}

/* 中身 */
.bottom-contact__inner {
	position: relative;
	z-index: 1;
}

/* リード */
.bottom-contact__lead {
	margin-bottom: 40px;
}

/* ボックス */
.bottom-contact__box {
	background: #fff;
	border-radius: 20px;
	padding: 50px;
	max-width: 1000px;
	margin: 0 auto;
}

/* 中身レイアウト */
.bottom-contact__content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
}

/* TEL */
.bottom-contact__tel {
	min-width: 0;
}

.bottom-contact__tel .tel__main {
	font-size: clamp(30px, 4vw, 32px);
	white-space: nowrap;
}

.bottom-contact__tel .tel__sub {
	margin-top: 5px;
}

/* 区切り線 */
.bottom-contact__divider {
	width: 1px;
	height: 60px;
	background: #ccc;
}

/* ボタンエリア */
.bottom-contact__buttons {
	display: flex;
	gap: 20px;
}

/* =========================
   レスポンシブ
========================= */
@media screen and (max-width: 768px) {

  .bottom-contact .top__lead--center p {
    margin-bottom: 25px;
  }

	.bottom-contact__box {
		padding: 30px 20px;
	}

	.bottom-contact__content {
		flex-direction: column;
		gap: 20px;
		text-align: center;
	}

	.bottom-contact__divider {
		display: none;
	}

	.bottom-contact__buttons {
		flex-direction: column;
		width: 100%;
	}

	.bottom-contact__buttons .btn {
		width: 100%;
		justify-content: center;
	}

  .tel__link {
    white-space: normal;
    flex-shrink: 1;
    max-width: 100%;
  }

  .bottom-contact__tel .tel__main {
    font-size: 22px;
    line-height: 1.2;
    white-space: nowrap;
  }

  .tel__sub {
    font-size: 12px;
  }

  .tel__link img {
    width: 1.8em;
  }
}


/* =========================
   footer
========================= */
.footer {
  background: #A5845F;
  color: #fff;
  padding-top: 60px;
  position: relative;
  overflow: hidden;
}

/* コンテンツ */
.footer__inner {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: 100px;
  position: relative;
  z-index: 1;
}

/* 左 */
.footer__left {
  max-width: 300px;
}

.footer__logo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.footer__logo img {
  width: 170px;
}

.footer__logo-sub {
  color: #fff;
  font-size: 13px;
}

.footer__info {
  margin-top: 20px;
}

.footer__info p {
  margin-top: 0;
}

.footer__info a {
  color: #fff;
}

/* ナビ */
.footer__nav ul {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.footer__nav a {
  color: #fff;
  text-decoration: none;
  font-size: 15px;
}

.footer__nav a:hover {
  opacity: 0.7;
}

/* =========================
   背景画像
========================= */
.footer__bg {
  position: absolute;
  right: 0;
  bottom: 80px;
  z-index: 0;
  pointer-events: none;
}

.footer__bg img {
  width: 530px;
  opacity: 0.3;
}

/* =========================
   下部
========================= */
.footer__bottom {
  text-align: center;
  margin-top: 60px;
  padding-bottom: 40px;
  position: relative;
  z-index: 1;
}

.footer__copy {
  font-size: 13px;
  opacity: 0.9;
}

/* =========================
   レスポンシブ
========================= */
@media screen and (max-width: 767px) {

  .footer__inner {
    flex-direction: column;
    gap: 30px;
	margin-bottom: 50px;
  }

  .footer__nav ul {
    gap: 10px;
  }

  .footer__bottom {
    margin-top: 40px;
	padding-bottom: 75px;
  }

  .footer__bg {
    bottom: 0;
    text-align: center;
  }

}

/* =========================
   下部固定CTA
========================= */
.cta-fixed {
  position: fixed;
  box-sizing: border-box;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  gap: 8px;
  padding: 10px;
  z-index: 900;

  transform: translateY(100%);
  transition: transform 0.4s ease;
}

/* 表示時 */
.cta-fixed.is-show {
  transform: translateY(0);
}

/* ボタン（下部用） */
.btn--cta {
  flex: 1;
  font-size: 15px;
  padding: 10px;
  border-radius: 50px;
}

/* アイコン少し小さめ */
.btn--cta .btn__icon {
  width: 1.6em;
}

/* =========================
   PCでは非表示
========================= */
@media screen and (min-width: 769px) {
  .cta-fixed {
    display: none;
  }
}

/* =========================
   contactページ
========================= */
.contact__inner {
  display: flex;
  gap: 60px;
}

.contact__left {
  flex: 0 0 40%;
}

.contact__right {
  flex: 1;
  background: #fff;
  padding: 50px;
  border-radius: 20px;
}

.contact__right .wpcf7 {
  width: 100%;
  margin: 0;
}

.wpcf7 {
  width: 60%;
  margin: 0 auto;
}

/* 入力欄統一 */
.wpcf7 input,
.wpcf7 textarea {
  width: 100%;
  padding: 10px;
  margin: 10px 0;
  border: 1px solid #EEEEEE;
  border-radius: 2px;
}

/* =========================
   希望日
========================= */
.schedule {
  margin: 15px 0;
}

.schedule-row {
  display: flex;
  flex-direction: column;
}

/* ラベル */
.schedule-row .label {
  width: 140px;
  flex-shrink: 0;
  font-size: 14px;
}

.schedule-row .fields {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
}

/* time */
.schedule-row .time {
  flex: 1 1 55%;
  min-width: 110px;
  display: flex;
}

/* select */
.schedule-row select {
  width: 100%;
  min-width: 0;
  font-size: 12px;
  padding: 10px;
  border: 1px solid #eee;
  border-radius: 2px;
  margin: 10px 0;
}

/* date */
.schedule-row input[type="date"] {
  flex: 1 1 45%;
  min-width: 110px;
  width: auto;
  font-size: 12px;
}

.schedule .fields input[type="date"],
.schedule .fields select {
  width: 100%;
  max-width: 150px;
  height: 40px;
}

/* submitボタン */
.wpcf7 input[type="submit"] {
  background: #E5BD1C;
  color: #fff;
  padding: 15px 24px;
  border: none;
  border-radius: 30px;
  font-size: 14px;
  cursor: pointer;
  transition: 0.3s;

  display: block;
  margin: 30px auto 0;
  width: 220px;
  text-align: center;
}

/* hover */
.wpcf7 input[type="submit"]:hover {
  transform: translateY(-2px);
  opacity: 0.9;
}

.wpcf7 input[type="submit"]:disabled {
  background-color: #ccc;
  color: #fff;
  cursor: not-allowed;
  opacity: 1;
  transform: none;
}

/* 必須 */
.required {
  background: #E1531D;
  color: #fff;
  padding: 2px 8px;
  border-radius: 5px;
  font-size: 11px;
  margin-right: 6px;
  display: inline-block;
}

/* 任意 */
.optional {
  background: #6c757d;
  color: #fff;
  padding: 2px 8px;
  border-radius: 5px;
  font-size: 11px;
  margin-right: 6px;
  display: inline-block;
}

/* =========================
   レスポンシブ
========================= */

@media screen and (max-width: 768px) {

  .contact__inner {
    flex-direction: column;
    gap: 40px;
  }

  .contact__left {
    text-align: center;
  }

  .contact__right {
    padding: 25px;
  }

  .wpcf7 {
    width: 90%;
  }

  .schedule-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .schedule-row .label {
    width: 100%;
  }

  .schedule-row .fields {
    gap: 6px;
  }

  .schedule-row input[type="date"] {
    flex: 1 1 50%;
    min-width: 100px;
  }

  .schedule-row .time {
    flex: 1 1 50%;
    min-width: 100px;
  }

  .schedule-row select {
    font-size: 12px;
    padding: 10px;
  }
}


/* =========================
   Thanksページ
========================= */
.thanks {
	margin: 126px auto;
}

/* =========================
   プライバシーポリシー
========================= */
.privacy-policy__inner {
  max-width: 1100px;
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

.privacy-policy h2 {
  font-size: 24px;
  margin: 30px 0 20px;
  font-weight: 700;
  padding-bottom: 5px;
  border-bottom: 1px solid #eadbbe;
}

.privacy-policy h2:first-of-type {
  margin-top: 0;
}

/* リスト */
.privacy-policy ul {
  margin: 16px 0 16px 20px;
}

.privacy-policy li {
  margin-bottom: 8px;
}

@media screen and (max-width: 768px) {
  .privacy-policy h2 {
    font-size: 18px;
    margin: 40px 0 20px;
    padding: 12px 14px;
  }

  .privacy-policy ul {
    margin-left: 18px;
  }
}

/* =========================
   サイトマップ
========================= */
.sitemap {
    margin-top: 40px;
}

.sitemap__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.sitemap__block h2 {
    font-size: 18px;
    margin-bottom: 12px;
    padding-bottom: 6px;
    border-bottom: 1px solid #eadbbe;
    font-weight: 600;
}

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

.sitemap__block li {
    margin-bottom: 10px;
    position: relative;
    padding-left: 14px;
}

.sitemap__block li::before {
    content: "›";
    position: absolute;
    left: 0;
    color: #eadbbe;
}

@media (max-width: 768px) {
    .sitemap {
      margin-top: 0;
    }

    .sitemap__grid {
      grid-template-columns: 1fr;
      gap: 24px;
    }

    .sitemap__block h2 {
      font-size: 17px;
    }

    .sitemap__block ul {
      font-size: 14px;
    }
}