@charset "utf-8";

/*		Contents
---------------------------------------------------------------------------
	h要素（見出し）
	paging（ページング）
	postlink（記事前後リンク）
	widget_title（ページタイトル）
	widget_btn（ボタン）
	widget_bnr（バナー）
	widget_entry（投稿詳細）
	list_product（一覧：取扱品目・価格）
	list_column（一覧：お知らせ・コラム）
------------------------------------------------------------------------ */

/* ========================================================================
	h要素（見出し）
======================================================================== */

/* ----------------------------------------
	h_01
---------------------------------------- */
.h_01{
	position:relative;
	margin:0 0 160px 0;
	padding:110px 0 0 0;
	text-align:center;
	font-weight:700;
	line-height:1;
}

.h_01::before{
	content:"";
	position:absolute;
	top:0;
	left:50%;
	transform:translateX(-50%);
	width:80px;
	height:80px;
	background:url(../../img/common/logo.svg) no-repeat center;
	filter:invert(15%) sepia(94%) saturate(808%) hue-rotate(184deg) brightness(90%) contrast(98%);
}

.h_01 .en{
	display:block;
	margin:0 0 20px 0;
	font-family:"BioRhyme", serif;
	font-size:3.6rem;
	color:#8e6c2b;
}

.h_01 .ja{
	display:block;
	font-family:"Shippori Mincho", serif;
	font-size:5.0rem;
}

@media screen and (max-width:767px){
.h_01{
	margin:0 0 40px 0;
	padding:70px 0 0 0;
}

.h_01::before{
	width:60px;
	height:60px;
}

.h_01 .en{
	margin:0 0 10px 0;
	font-size:2.4rem;
}

.h_01 .ja{
	font-size:3.0rem;
}
}


/* ----------------------------------------
	h_02
---------------------------------------- */
.h_02{
	position:relative;
	margin:0 0 160px 0;
	padding:45px 0 0 0;
	text-align:center;
	font-family:"Shippori Mincho", serif;
	font-size:4.8rem;
	font-weight:700;
	line-height:7.8rem;
}

.h_02::before{
	content:"";
	position:absolute;
	top:0;
	left:50%;
	transform:translateX(-50%);
	width:210px;
	height:5px;
	background:#0f3159;
}

@media screen and (max-width:767px){
.h_02{
	margin:0 0 30px 0;
	padding:14px 0 0 0;
	font-size:3.0rem;
	line-height:5.0rem;
}

.h_02::before{
	width:100px;
	height:4px;
}
}


/* ----------------------------------------
	h_03
---------------------------------------- */
.h_03,
.widget_entry h2{
	margin:0 0 60px 0;
	padding:19px 40px;
	background:#ffffff;
	border-bottom:3px solid #0f3159;
	font-size:2.4rem;
	font-weight:700;
	line-height:4.4rem;
}

@media screen and (max-width:767px){
.h_03,
.widget_entry h2{
	margin:0 0 30px 0;
	padding:14px 20px;
	font-size:2.0rem;
	line-height:3.0rem;
}
}


/* ----------------------------------------
	h_04
---------------------------------------- */
.h_04,
.widget_entry h3{
	margin:0 0 40px 0;
	font-size:2.4rem;
	font-weight:700;
	line-height:4.4rem;
}

@media screen and (max-width:767px){
.h_04,
.widget_entry h3{
	margin:0 0 20px 0;
	font-size:2.0rem;
	line-height:3.0rem;
}
}


/* ========================================================================
	paging（ページング）
======================================================================== */
.paging{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:20px;
	margin:0 0 100px 0;
	font-weight:500;
}

.paging span.dots{
	display:flex;
	align-items:center;
	height:50px;
	margin:0 10px;
	line-height:1;
}

.paging span.current,
.paging a{
	display:flex;
	justify-content:center;
	align-items:center;
	width:50px;
	height:50px;
	background:#ffffff;
	color:#0f3159;
	line-height:1;
	text-decoration:none;
}
.paging span.current,
.paging a:hover{ background:#0f3159; color:#ffffff; }

@media screen and (max-width:767px){
.paging{
	gap:10px;
	margin:0 0 40px 0;
}

.paging span.dots{
	height:40px;
	margin:0;
}

.paging span.current,
.paging a{
	width:40px;
	height:40px;
}
}


/* ========================================================================
	postlink（記事前後リンク）
======================================================================== */
.postlink{
	display:flex;
	justify-content:center;
	position:relative;
	margin:0 0 100px 0;
}

.postlink a{
	display:flex;
	justify-content:center;
	align-items:center;
	position:absolute;
	top:0;
	right:50%;
	width:42px;
	height:50px;
	margin:0 -122px 0 0;
	color:#222222;
	text-decoration:none;
}
.postlink a[rel="prev"]{
	right:auto;
	left:50%;
	margin:0 0 0 -122px;
	transform:scaleX(-1);
}

.postlink a.back{
	position:static;
	width:160px;
	margin:0;
	border-left:1px solid #0f3059;
	border-right:1px solid #0f3059;
	font-size:2.6rem;
	font-weight:700;
}

@media screen and (max-width:767px){
.postlink{
	margin:0 0 40px 0;
}

.postlink a.back{
	font-size:2.0rem;
}
}


/* ========================================================================
	widget_title（ページタイトル）
======================================================================== */
.widget_title{
	position:relative;
	margin:0 0 200px 0;
}

.widget_title::before{
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:482px;
	background:url(../../img/common/bg_title.png) no-repeat center;
	background-size:auto 100%;
}

.widget_title .circle{
	position:absolute;
	top:-4px;
	left:50%;
    width:490px;
    height:490px;
	margin:0 0 0 -245px;
    background-image:conic-gradient(#e7e7e7 360deg, white 360deg);
    clip-path:circle();
	transform:rotate(-136deg) scaleX(-1);
	transition-timing-function:ease-in-out;
}

.widget_title h1,
.widget_title .title{
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	gap:20px 0;
	position:relative;
	height:482px;
	line-height:1;
}

.widget_title .en{
	position:relative;
	text-transform:capitalize;
	font-size:10.0rem;
	font-weight:800;
}

.widget_title .ja{
	position:relative;
	font-size:2.6rem;
	font-weight:700;
}

@media screen and (max-width:767px){
.widget_title{
	margin:0 0 60px 0;
}

.widget_title::before{
	height:241px;
}

.widget_title .circle{
	top:-2px;
    width:245px;
    height:245px;
	margin:0 0 0 -123px;
}

.widget_title h1,
.widget_title .title{
	height:241px;
}

.widget_title .en{
	font-size:4.0rem;
}

.widget_title .ja{
	font-size:2.0rem;
}
}


/* ========================================================================
	widget_btn（ボタン）
======================================================================== */
.widget_btn{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:40px 50px;
	margin:0 0 100px 0;
}

.widget_btn a,
.widget_btn button{
	display:flex;
	justify-content:center;
	align-items:center;
	position:relative;
	min-width:410px;
	min-height:98px;
	padding:0 50px;
	background:#0f3159;
	outline:1px solid #556d89;
	outline-offset:-6px;
	font-size:2.0rem;
	font-weight:700;
	color:#ffffff;
	line-height:2.8rem;
	text-decoration:none;
	transition-duration:0.2s;
}
.widget_btn .white{
	background:#ffffff;
	outline-color:#b9c3cf;
	color:#0f3159;
}

.widget_btn a:hover,
.widget_btn button:hover{
	background:#8e6c2b;
	outline-color:#ffffff;
}
.widget_btn .white:hover{ color:#ffffff; }

.widget_btn a::before,
.widget_btn button::before{
	content:"";
	position:absolute;
	top:0;
	right:15px;
	width:8px;
	height:100%;
	background:url(../../img/common/arrow_01.png) no-repeat center;
	background-size:100% auto;
}
.widget_btn .white::before{ background-image:url(../../img/common/arrow_02.png); }
.widget_btn .white:hover::before{ background-image:url(../../img/common/arrow_01.png); }

@media screen and (max-width:767px){
.widget_btn{
	gap:20px;
	margin:0 0 40px 0;
}

.widget_btn a,
.widget_btn button{
	min-width:auto;
	min-height:70px;
	width:100%;
	padding:16px 50px;
	font-size:1.8rem;
	line-height:2.6rem;
}
}


/* ========================================================================
	widget_bnr（バナー）
======================================================================== */
.widget_bnr{
	display:flex;
	flex-wrap:wrap;
	gap:80px;
	margin:0 0 100px 0;
}

.widget_bnr li{
	width:560px;
	line-height:1;
}
.widget_bnr li:first-child{ width:100%; }

.widget_bnr a{
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	position:relative;
	height:280px;
	background:url(../../img/common/bg_bnr.png) center bottom 31px;
}
.widget_bnr li:first-child a{ height:345px; }

.widget_bnr a::before{
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background:linear-gradient(to bottom, rgba(15,49,89,1) 0%, rgba(15,49,89,1) 40%, rgba(15,49,89,0) 100%);
}

.widget_bnr a::after{
	content:"";
	position:absolute;
	top:0;
	right:30px;
	width:12px;
	height:100%;
	background:url(../../img/common/arrow_01.png) no-repeat center;
}

.widget_bnr a span{
	position:relative;
	color:#ffffff;
}

.widget_bnr a span.en{
	padding:44px 0 10px 0;
	font-size:1.6rem;
	font-weight:700;
}

.widget_bnr a span.en::before{
	content:"";
	position:absolute;
	top:0;
	left:50%;
	transform:translateX(-50%);
	width:70px;
	height:34px;
	background:url(../../img/common/icon_bnr.png) no-repeat center;
}

.widget_bnr a span.ja{
	font-size:3.2rem;
	font-weight:600;
}

.widget_bnr a span.txt{
	padding:26px 0 0 0;
	font-weight:500;
}

@media screen and (max-width:767px){
.widget_bnr{
	display:block;
	margin:0 0 20px 0;
}

.widget_bnr li{
	width:100%;
	padding:0 0 20px 0;
}

.widget_bnr a,
.widget_bnr li:first-child a{
	height:200px;
	padding:0 20px;
	background-size:31px;
}

.widget_bnr a::after{
	right:20px;
	width:8px;
	background-size:100% auto;
}

.widget_bnr a span.en{
	padding:44px 0 10px 0;
}

.widget_bnr a span.ja{
	font-size:2.4rem;
}

.widget_bnr a span.txt{
	padding:20px 0 0 0;
	font-size:1.4rem;
	line-height:2.2rem;
}
}


/* ========================================================================
	widget_cat（カテゴリー）
======================================================================== */
.widget_cat{
	margin:0 0 100px 0;
}
.postlink + .widget_cat{
	margin-top:200px;
	padding:200px 0 0 0;
	border-top:1px solid #a7a7a7;
}

.widget_cat dt{
	margin:0 0 50px 0;
	text-align:center;
	font-size:4.0rem;
	font-weight:700;
	color:#0f3159;
	line-height:1;
}

.widget_cat ul{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:40px;
}

.widget_cat ul li a{
	display:flex;
	justify-content:center;
	align-items:center;
	padding:0 20px;
	min-width:200px;
	height:50px;
	background:#ffffff;
	font-weight:700;
	color:#0f3159;
	line-height:1;
	text-decoration:none;
	transition-duration:0.2s;
}

.widget_cat ul li a:hover{
	background:#0f3159;
	color:#ffffff;
}

@media screen and (max-width:767px){
.widget_cat{
	margin:0 0 40px 0;
}
.postlink + .widget_cat{
	margin-top:60px;
	padding:60px 0 0 0;
}

.widget_cat dt{
	margin:0 0 30px 0;
	font-size:2.4rem;
}

.widget_cat ul{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:20px;
}

.widget_cat ul li a{
	padding:0 10px;
	min-width:auto;
}
}


/* ========================================================================
	widget_entry（投稿詳細）
======================================================================== */
.widget_entry .aligncenter{ display:block; margin:0 auto 80px; }
.widget_entry .alignright{ float:right; margin:0 0 0 80px; }
.widget_entry .alignleft{ float:left; margin:0 80px 0 0; }

.widget_entry{
	padding:0 0 120px 0;
	overflow-wrap:break-word;
}

.widget_entry h1{
	margin:0 0 160px 0;
	padding:0 0 20px 0;
	border-bottom:2px solid #0f3159;
	font-size:4.8rem;
	font-weight:700;
	line-height:6.8rem;
}

.widget_entry p,
.widget_entry table{
	margin:0 0 80px 0;
}

.widget_entry p::after{
	content:"";
	display:block;
	clear:both;
}

.widget_entry ul{
	list-style-type:disc;
	padding-inline-start:20px;
	margin:0 0 80px 0;
}

.widget_entry ol{
	list-style-type:decimal;
	padding-inline-start:26px;
	margin:0 0 80px 0;
}

@media screen and (max-width:767px){
.widget_entry .aligncenter,
.widget_entry .alignright,
.widget_entry .alignleft{
	display:block;
	float:none;
	margin:0 auto 40px;
}

.widget_entry{
	padding:0;
}

.widget_entry h1{
	margin:0 0 40px 0;
	padding:0 0 15px 0;
	font-size:2.4rem;
	line-height:3.4rem;
}

.widget_entry p,
.widget_entry table,
.widget_entry ul,
.widget_entry ol{
	margin:0 0 40px 0;
}
}


/* ----------------------------------------
	date
---------------------------------------- */
.widget_entry .date{
	display:flex;
	gap:0 26px;
	margin:0 0 20px 0;
	line-height:2.5rem;
}

.widget_entry .date span{
	min-width:100px;
	padding:0 20px;
	background:#0f3159;
	text-align:center;
	font-size:1.4rem;
	color:#ffffff;
}

.widget_entry .date time{
	font-weight:600;
}

@media screen and (max-width:767px){
.widget_entry .date{
	gap:0 20px;
	margin:0 0 15px 0;
}
}


/* ========================================================================
	list_product（一覧：取扱品目・価格）
======================================================================== */
.list_product{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:50px 80px;
	margin:0 0 100px 0;
}

.list_product a{
	display:flex;
	flex-direction:column;
	text-decoration:none;
}

.list_product img{
	width:240px;
	height:240px;
	object-fit:cover;
}

.list_product h3{
	padding:25px 0 7px 0;
	font-size:2.0rem;
	font-weight:700;
	color:#222222;
	line-height:3.0rem;
}

.list_product .price{
	color:#222222;
	line-height:1;
}

.list_product time{
	padding:12px 0 0 0;
	font-size:1.4rem;
	line-height:1;
}

@media screen and (max-width:767px){
.list_product{
	grid-template-columns:repeat(2,1fr);
	gap:40px 20px;
	margin:0 0 40px 0;
}

.list_product img{
	width:100%;
	height:100%;
	aspect-ratio:1/1;
}

.list_product h3{
	padding:15px 0 5px 0;
	font-size:1.8rem;
	line-height:2.8rem;
}

.list_product .price{
	font-size:1.4rem;
}

.list_product time{
	font-size:1.2rem;
}
}


/* ========================================================================
	list_column（一覧：お知らせ・コラム）
======================================================================== */
.list_column{
	margin:0 100px 100px;
	border-top:1px solid #9b9b9b;
}

.list_column li{
	border-bottom:1px solid #9b9b9b;
}

.list_column a{
	display:flex;
	align-items:center;
	gap:0 26px;
	height:90px;
	padding:0 4px;
	color:#222222;
	line-height:2.5rem;
	text-decoration:none;
}

.list_column time{
	font-weight:600;
}

.list_column .cat{
	min-width:100px;
	padding:0 20px;
	background:#0f3159;
	text-align:center;
	font-size:1.4rem;
	color:#ffffff;
}

.list_column .title{
	flex:1;
	line-height:2.8rem;
}

.list_column a:hover .title{
	text-decoration:underline;
}

@media screen and (max-width:767px){
.list_column{
	margin:0 0 40px 0;
}

.list_column a{
	flex-wrap:wrap;
	gap:0 20px;
	height:auto;
	padding:20px 0;
}

.list_column .title{
	flex:none;
	width:100%;
	margin:10px 0 0 0;
	line-height:2.6rem;
}

.list_column a:hover .title{
	text-decoration:none;
}
}