/**
 * Green Scape Calm 3.1 Final v2
 * front-page.css
 */

:root{
	--gs31-primary:#183b2d;
	--gs31-brand:#90b34b;
	--gs31-bg:#f6f4ee;
	--gs31-paper:#ffffff;
	--gs31-border:#e5e3da;
	--gs31-text:#243228;
	--gs31-muted:#6e7772;
	--gs31-max:1440px;
	--gs31-serif:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
	--gs31-sans:"Hiragino Kaku Gothic ProN","Yu Gothic",YuGothic,Meiryo,sans-serif;
	--gs31-latin:"Helvetica Neue",Arial,sans-serif;
}

body.home .gs31-front,
body.home .gs31-front *{
	box-sizing:border-box;
}

body.home .gs31-front{
	margin:0;
	background:var(--gs31-paper);
	color:var(--gs31-text);
	font-family:var(--gs31-sans);
}

body.home .gs31-front img{
	display:block;
	max-width:100%;
	height:auto;
}

body.home .gs31-container{
	width:min(var(--gs31-max),calc(100% - 80px));
	margin-inline:auto;
}

/* Header / Footer typography alignment */
body.home .gs31-header,
body.home .gs31-header a,
body.home .gs31-footer,
body.home .gs31-footer a{
	font-family:var(--gs31-sans);
}

/* Hero: 次のセクションが少し見える高さ */
body.home .gs31-front .gs31-hero{
	display:grid !important;
	grid-template-columns:44% 56% !important;
	min-height:0 !important;
	height:480px !important;
	max-height:480px !important;
	background:var(--gs31-bg);
	overflow:hidden;
}

body.home .gs31-front .gs31-hero__copy{
	display:flex;
	align-items:center;
	min-width:0;
	padding:44px clamp(38px,6vw,96px);
}

body.home .gs31-front .gs31-hero__copy-inner{
	width:100%;
	max-width:620px;
}

body.home .gs31-front .gs31-hero__copy h1{
	margin:0;
	color:var(--gs31-primary);
	font-family:var(--gs31-serif);
	font-size:clamp(38px,3.5vw,58px);
	font-weight:500;
	line-height:1.45;
	letter-spacing:.07em;
}

body.home .gs31-front .gs31-hero__copy h1 span{
	display:block;
	white-space:nowrap;
}

body.home .gs31-front .gs31-hero__copy p{
	margin:22px 0 0;
	font-family:var(--gs31-serif);
	font-size:clamp(14px,1.05vw,17px);
	line-height:1.9;
	letter-spacing:.04em;
}

body.home .gs31-front .gs31-hero__visual{
	height:480px !important;
	min-height:0 !important;
	min-width:0;
}

body.home .gs31-front .gs31-hero__visual img{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:54% 47%;
}

body.home .gs31-button{
	display:inline-flex;
	align-items:center;
	justify-content:space-between;
	gap:40px;
	min-width:236px;
	margin-top:26px;
	padding:15px 25px;
	border:1px solid var(--gs31-primary);
	font-family:var(--gs31-sans);
	font-size:14px;
	font-weight:600;
	letter-spacing:.04em;
	text-decoration:none;
	transition:.25s ease;
}

body.home .gs31-button--solid{
	background:var(--gs31-primary);
	color:#fff;
}

body.home .gs31-button--solid:hover{
	background:#24513f;
	border-color:#24513f;
	color:#fff;
}

body.home .gs31-button--outline{
	background:#fff;
	color:var(--gs31-primary);
}

body.home .gs31-button--outline:hover{
	background:var(--gs31-primary);
	color:#fff;
}

/* Common */
body.home .gs31-section{
	padding:52px 0;
}

body.home .gs31-heading{
	margin-bottom:32px;
	text-align:center;
}

body.home .gs31-heading p{
	margin:0 0 8px;
	color:#567b41;
	font-family:var(--gs31-latin);
	font-size:12px;
	font-weight:600;
	letter-spacing:.18em;
}

body.home .gs31-heading h2{
	margin:0;
	font-family:var(--gs31-serif);
	font-size:clamp(27px,2.2vw,36px);
	font-weight:500;
	letter-spacing:.07em;
}

body.home .gs31-heading h2::after{
	content:"";
	display:block;
	width:50px;
	height:1px;
	margin:14px auto 0;
	background:var(--gs31-primary);
}

body.home .gs31-heading--english{
	margin-bottom:22px;
}

body.home .gs31-heading--english p{
	margin:0;
}

body.home .gs31-center{
	display:flex;
	justify-content:center;
}

body.home .gs31-empty{
	margin:0;
	padding:26px;
	border:1px solid var(--gs31-border);
	text-align:center;
	color:var(--gs31-muted);
}

/* Products */
body.home .gs31-product-grid{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:26px;
}

body.home .gs31-product-card__link{
	display:block;
	color:inherit;
	text-decoration:none;
}

body.home .gs31-product-card__image{
	aspect-ratio:1.08 / 1;
	overflow:hidden;
	background:var(--gs31-bg);
}

body.home .gs31-product-card__image img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .45s ease;
}

body.home .gs31-product-card__link:hover .gs31-product-card__image img{
	transform:scale(1.025);
}

body.home .gs31-product-card__placeholder{
	width:100%;
	height:100%;
	background:linear-gradient(135deg,#f2f0e9,#e5e1d6);
}

body.home .gs31-product-card__content{
	padding-top:13px;
}

body.home .gs31-product-card__tag{
	display:inline-block;
	padding:3px 8px;
	border:1px solid #6c8d64;
	color:#315c3d;
	font-family:var(--gs31-sans);
	font-size:10px;
	line-height:1;
	letter-spacing:.08em;
}

body.home .gs31-product-card:nth-child(-n+2) .gs31-product-card__tag{
	background:#4f7d3f;
	border-color:#4f7d3f;
	color:#fff;
}

body.home .gs31-product-card h3{
	margin:8px 0 4px;
	font-family:var(--gs31-serif);
	font-size:16px;
	font-weight:500;
	line-height:1.55;
}

body.home .gs31-product-card__price{
	margin:0;
	font-family:var(--gs31-sans);
	font-size:14px;
}

body.home .gs31-product-card__price small{
	font-size:10px;
}

body.home .gs31-products .gs31-center{
	margin-top:30px;
}

/* English categories */
body.home .gs31-categories{
	background:linear-gradient(180deg,#faf9f5 0%,#f6f4ee 100%);
}

body.home .gs31-category-list{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	column-gap:clamp(36px,5vw,76px);
	row-gap:2px;
	max-width:1180px;
	margin:0 auto;
}

body.home .gs31-category-link{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:space-between;
	min-height:64px;
	padding:7px 2px;
	color:var(--gs31-primary);
	font-family:var(--gs31-latin);
	font-size:clamp(24px,2vw,34px);
	font-weight:400;
	line-height:1.2;
	letter-spacing:.01em;
	text-decoration:none;
}

body.home .gs31-category-link::after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:5px;
	height:1px;
	background:currentColor;
	transform:scaleX(0);
	transform-origin:left center;
	opacity:.5;
	transition:transform .3s ease;
}

body.home .gs31-category-link:hover::after,
body.home .gs31-category-link:focus-visible::after{
	transform:scaleX(1);
}

body.home .gs31-category-link > span:last-child{
	margin-left:16px;
	font-family:var(--gs31-latin);
	font-size:17px;
	transition:transform .3s ease;
}

body.home .gs31-category-link:hover > span:last-child{
	transform:translateX(6px);
}

/* Bottom */
body.home .gs31-bottom{
	padding:22px 0 38px;
	background:#fff;
}

body.home .gs31-bottom__grid{
	display:grid;
	grid-template-columns:.88fr 1.12fr;
	gap:14px;
}

body.home .gs31-shop-info{
	min-height:204px;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	padding:28px;
	background:var(--gs31-primary);
	color:#fff;
	text-align:center;
	text-decoration:none;
	transition:background-color .25s;
}

body.home .gs31-shop-info:hover{
	background:#214b39;
	color:#fff;
}

body.home .gs31-shop-info__title{
	font-family:var(--gs31-serif);
	font-size:clamp(24px,2.05vw,34px);
	font-weight:500;
	letter-spacing:.07em;
}

body.home .gs31-shop-info__en{
	margin-top:13px;
	font-family:var(--gs31-latin);
	font-size:14px;
	font-weight:600;
	letter-spacing:.08em;
}

body.home .gs31-news{
	min-height:204px;
	padding:23px 32px 18px;
	border:1px solid var(--gs31-border);
	background:#fff;
}

body.home .gs31-news__header p{
	margin:0 0 3px;
	color:var(--gs31-primary);
	font-family:var(--gs31-latin);
	font-size:10px;
	font-weight:600;
	letter-spacing:.18em;
}

body.home .gs31-news__header h2{
	margin:0 0 10px;
	color:var(--gs31-primary);
	font-family:var(--gs31-serif);
	font-size:clamp(24px,1.9vw,32px);
	font-weight:500;
	letter-spacing:.07em;
}

body.home .gs31-news__list{
	border-top:1px solid var(--gs31-border);
}

body.home .gs31-news__item{
	display:grid;
	grid-template-columns:102px minmax(0,1fr) 18px;
	align-items:center;
	gap:16px;
	min-height:36px;
	border-bottom:1px solid var(--gs31-border);
	color:inherit;
	font-family:var(--gs31-sans);
	font-size:12px;
	text-decoration:none;
}

body.home .gs31-news__item time{
	color:#78817c;
	font-size:11px;
}

body.home .gs31-news__item > span:last-child{
	color:var(--gs31-primary);
	text-align:right;
}

/* Tablet */
@media (max-width:1100px){
	body.home .gs31-container{
		width:min(var(--gs31-max),calc(100% - 48px));
	}

	body.home .gs31-front .gs31-hero{
		grid-template-columns:46% 54% !important;
		height:450px !important;
		max-height:450px !important;
	}

	body.home .gs31-front .gs31-hero__visual{
		height:450px !important;
	}

	body.home .gs31-front .gs31-hero__copy{
		padding:40px 36px;
	}

	body.home .gs31-product-grid{
		gap:20px;
	}
}

/* Smartphone */
@media (max-width:780px){
	body.home .gs31-container{
		width:calc(100% - 28px);
	}

	body.home .gs31-front .gs31-hero{
		display:flex !important;
		flex-direction:column-reverse;
		height:auto !important;
		max-height:none !important;
	}

	body.home .gs31-front .gs31-hero__visual{
		height:58vw !important;
		min-height:285px !important;
		max-height:430px !important;
	}

	body.home .gs31-front .gs31-hero__copy{
		padding:32px 22px 38px;
	}

	body.home .gs31-front .gs31-hero__copy h1{
		font-size:clamp(32px,9vw,44px);
	}

	body.home .gs31-front .gs31-hero__copy h1 span{
		white-space:normal;
	}

	body.home .gs31-front .gs31-hero__copy p{
		margin-top:17px;
		font-size:14px;
	}

	body.home .gs31-button{
		width:100%;
		min-width:0;
		margin-top:22px;
	}

	body.home .gs31-section{
		padding:42px 0;
	}

	body.home .gs31-product-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:28px 13px;
	}

	body.home .gs31-product-card h3{
		font-size:14px;
	}

	body.home .gs31-category-list{
		grid-template-columns:repeat(2,minmax(0,1fr));
		column-gap:24px;
	}

	body.home .gs31-category-link{
		min-height:58px;
		font-size:25px;
	}

	body.home .gs31-bottom{
		padding:10px 0 24px;
	}

	body.home .gs31-bottom__grid{
		grid-template-columns:1fr;
	}

	body.home .gs31-shop-info,
	body.home .gs31-news{
		min-height:0;
	}

	body.home .gs31-shop-info{
		padding:38px 20px;
	}

	body.home .gs31-news{
		padding:24px 18px 18px;
	}

	body.home .gs31-news__item{
		grid-template-columns:78px minmax(0,1fr) 15px;
		gap:9px;
		min-height:49px;
		font-size:11px;
	}
}

@media (max-width:420px){
	body.home .gs31-product-grid{
		gap:24px 11px;
	}

	body.home .gs31-category-list{
		grid-template-columns:1fr;
	}

	body.home .gs31-category-link{
		min-height:52px;
		font-size:24px;
	}
}


/* =========================================================
   Green Scape Calm 3.1 Final v3 overrides
   ========================================================= */

/* Headerを一回り大きく */
body.home .gs31-header,
body.home header.gs31-header,
body.home .site-header{
	min-height:88px;
}

body.home .gs31-header__inner,
body.home .site-header__inner{
	min-height:88px;
}

body.home .gs31-header__logo img,
body.home .gs31-header__brand img,
body.home .site-logo img,
body.home .custom-logo{
	width:auto;
	height:auto;
	max-width:250px;
}

body.home .gs31-header__brand strong,
body.home .gs31-header__logo strong{
	font-size:30px;
	line-height:1.05;
}

body.home .gs31-header__brand span,
body.home .gs31-header__logo span{
	font-size:12px;
	letter-spacing:.18em;
}

body.home .gs31-header nav a,
body.home .gs31-header__nav a,
body.home .site-header nav a{
	font-size:15px;
}

/* ヘッダー実装が異なる場合にも効く補助指定 */
body.home header img[alt*="Green Scape"],
body.home header img[alt*="GreenScape"]{
	max-width:250px;
}

body.home header nav a{
	font-size:15px;
}

/* 全商品一覧 */
body.home .gs31-all-products{
	padding:72px 0 80px;
	background:#fff;
}

body.home .gs31-all-products__heading{
	margin-bottom:42px;
}

body.home .gs31-all-products__heading h1{
	margin:0;
	font-family:var(--gs31-serif);
	font-size:clamp(30px,2.7vw,44px);
	font-weight:500;
	letter-spacing:.08em;
}

body.home .gs31-all-products__heading h1::after{
	content:"";
	display:block;
	width:54px;
	height:1px;
	margin:16px auto 0;
	background:var(--gs31-primary);
}

body.home .gs31-product-grid--all{
	grid-template-columns:repeat(4,minmax(0,1fr));
	row-gap:46px;
}

body.home .gs31-product-grid--all .gs31-product-card h2{
	margin:10px 0 5px;
	font-family:var(--gs31-serif);
	font-size:17px;
	font-weight:500;
	line-height:1.55;
}

body.home .gs31-all-products__back{
	margin-top:52px;
}

@media (max-width:1100px){
	body.home .gs31-product-grid--all{
		grid-template-columns:repeat(3,minmax(0,1fr));
	}
}

@media (max-width:780px){
	body.home .gs31-header,
	body.home header.gs31-header,
	body.home .site-header{
		min-height:72px;
	}

	body.home .gs31-header__inner,
	body.home .site-header__inner{
		min-height:72px;
	}

	body.home .gs31-header__logo img,
	body.home .gs31-header__brand img,
	body.home .site-logo img,
	body.home .custom-logo{
		max-width:205px;
	}

	body.home .gs31-all-products{
		padding:48px 0 60px;
	}

	body.home .gs31-product-grid--all{
		grid-template-columns:repeat(2,minmax(0,1fr));
		row-gap:32px;
	}
}

@media (max-width:420px){
	body.home .gs31-product-grid--all{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}


/* =========================================================
   Green Scape Calm 3.1 Final v5
   SOLD OUT 表示
   ========================================================= */

body.home .gs31-product-card__image{
	position:relative;
}

body.home .gs31-product-card__soldout{
	position:absolute;
	top:12px;
	left:12px;
	z-index:2;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:28px;
	padding:5px 10px;
	background:rgba(24,59,45,.92);
	color:#fff;
	font-family:var(--gs31-latin);
	font-size:10px;
	font-weight:600;
	letter-spacing:.12em;
	line-height:1;
}

body.home .gs31-product-card.is-soldout .gs31-product-card__image img{
	opacity:.58;
	filter:saturate(.72);
}

body.home .gs31-product-card.is-soldout .gs31-product-card__link:hover .gs31-product-card__image img{
	transform:scale(1.02);
	opacity:.68;
}

body.home .gs31-product-card.is-soldout .gs31-product-card__content{
	opacity:.84;
}

@media (max-width:780px){
	body.home .gs31-product-card__soldout{
		top:8px;
		left:8px;
		min-height:24px;
		padding:4px 8px;
		font-size:9px;
	}
}


/* =========================================================
   Green Scape Calm 3.1 Final v7
   お知らせは表示のみ
   ========================================================= */

body.home .gs31-news__item{
	grid-template-columns:102px minmax(0,1fr);
	cursor:default;
	pointer-events:none;
}

body.home .gs31-news__item > span:last-child{
	color:inherit;
	text-align:left;
}

@media (max-width:780px){
	body.home .gs31-news__item{
		grid-template-columns:78px minmax(0,1fr);
	}
}


/* Green Scape Calm 3.2 Final */
body.home .gs31-bottom__grid{align-items:stretch;}
body.home .gs31-shop-info{min-height:286px;}
body.home .gs31-bottom__right{display:grid;grid-template-rows:auto 1fr;gap:10px;min-width:0;}
body.home .gs31-information{padding:17px 28px 16px;border:1px solid var(--gs31-border);background:#faf9f5;}
body.home .gs31-information__header p{margin:0 0 9px;color:var(--gs31-primary);font-family:var(--gs31-latin);font-size:10px;font-weight:600;letter-spacing:.18em;}
body.home .gs31-information__list{display:grid;gap:5px;margin:0;padding:0;list-style:none;}
body.home .gs31-information__list li{position:relative;margin:0;padding-left:1.15em;font-size:12px;line-height:1.65;letter-spacing:.025em;}
body.home .gs31-information__list li::before{position:absolute;left:0;top:0;content:"・";}
body.home .gs31-bottom__right .gs31-news{min-height:0;padding:14px 28px 13px;}
body.home .gs31-bottom__right .gs31-news__header{display:flex;align-items:baseline;gap:14px;}
body.home .gs31-bottom__right .gs31-news__header p{margin:0;}
body.home .gs31-bottom__right .gs31-news__header h2{margin:0 0 7px;font-size:clamp(21px,1.55vw,27px);}
body.home .gs31-bottom__right .gs31-news__item{min-height:30px;font-size:11px;}
body.home .gs31-bottom__right .gs31-news__item time{font-size:10px;}
@media (max-width:780px){body.home .gs31-shop-info{min-height:0;}body.home .gs31-bottom__right{gap:10px;}body.home .gs31-information{padding:18px 18px 16px;}body.home .gs31-information__list li{font-size:11px;}body.home .gs31-bottom__right .gs31-news{padding:18px;}body.home .gs31-bottom__right .gs31-news__header{display:block;}body.home .gs31-bottom__right .gs31-news__header p{margin-bottom:3px;}}
