@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap');

/* ==========================================================================
   ブランド紹介ページ（フリーページ）用  brand-page.css

   旧 brand.css の見た目を引き継いだ置き換え版。
   - すべて .sg-brand 配下に閉じている（brand.css は .btn / .container /
     footer などページ全体を書き換えていた）
   - 1240px / 1040px / 900px の固定幅を max-width に変更（横スクロール対策）
   - スライダーは共通テンプレートが読み込み済みの Swiper を使う（bxSlider 不要）
   - LOOK のグリッドは CSS だけで組む（masonry.js 不要）
   - メイン画像は「画像全体が最初の画面に収まる高さ」に抑える（旧版は幅70%固定で
     縦長の写真だと高さ1400px超になっていた）

   brand.css は旧マークアップのページが使い続けるので消さないこと。
   ========================================================================== */

.sg-brand {
	font-family: 'Source Sans Pro', sans-serif;
	margin: 20px auto 0;
}

/* --- パンくず ------------------------------------------------------------ */
.sg-brand .sg-brand__crumb {
	width: 96.5%;
	margin: 0 auto 30px;
}
.sg-brand .sg-brand__crumb .breadcrumb {
	font-size: 12px;
}

/* --- メインビジュアル ----------------------------------------------------
   画像の幅 = min(枠の70%, 画面に収まる高さ × 画像の縦横比)
   --mv-ratio は「画像の幅 ÷ 高さ」。本文側の style で画像に合わせて指定する
   （例：1333×2000 なら 0.6665）。未指定なら 2:3 として扱う。
   310px = ヘッダー200 + パンくず63 + ドットと余白。
   ------------------------------------------------------------------------ */
.sg-brand .sg-brand__mv {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 96.5%;
	margin: 0 auto 60px;
	position: relative;
}
.sg-brand .sg-brand__slider-wrap {
	position: relative;
	flex: none;
	width: min(70%, calc(max(420px, 100vh - 310px) * var(--mv-ratio, 0.6667)));
	aspect-ratio: var(--mv-ratio, 0.6667);
}
.sg-brand .sg-brand__slider {
	width: 100%;
	height: 100%;
	overflow: hidden;
}
.sg-brand .sg-brand__slider .swiper-wrapper,
.sg-brand .sg-brand__slider .swiper-slide {
	height: 100%;
}
.sg-brand .sg-brand__slider img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	margin: 0;
}
/* Swiper が動く前に2枚目以降が縦に積まれないようにする */
.sg-brand .sg-brand__slider:not(.swiper-initialized) .swiper-slide + .swiper-slide {
	display: none;
}
/* ドット（bxSlider の pager と同じ位置・大きさ）
   swiper-bundle.min.css の bottom: 8px / top: auto に勝つよう詳細度を上げている */
.sg-brand .sg-brand__slider-wrap .sg-brand__pager {
	position: absolute;
	top: 100%;
	bottom: auto;
	left: 0;
	width: 100%;
	padding-top: 24px;
	line-height: 0;
	text-align: center;
}
.sg-brand .sg-brand__pager .swiper-pagination-bullet {
	width: 6px;
	height: 6px;
	margin: 0 5px;
	border-radius: 5px;
	background: #ededed;
	opacity: 1;
}
.sg-brand .sg-brand__pager .swiper-pagination-bullet-active {
	background: #999;
}

.sg-brand .sg-brand__info-wrap {
	flex: 0 1 auto;
	min-width: 0;
}
.sg-brand .sg-brand__info {
	max-width: 460px;
	text-align: left;
	padding: 0 0 0 80px;
}
.sg-brand .sg-brand__info p {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.1em;
	margin: 30px 0 0;
}
.sg-brand .sg-brand__info p.sg-brand__label {
	font-weight: 700;
	margin: 0 0 20px;
}
/* ブランド名（h1）。旧版は word-break: break-all で単語の途中で折れていた */
.sg-brand .sg-brand__name {
	font-family: inherit;
	font-size: 36px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.1em;
	color: inherit;
	margin: 20px 0 10px;
	word-break: normal;
	overflow-wrap: break-word;
}
.sg-brand .sg-brand__name span {
	display: block;
	font-size: 16px;
	margin: 15px 0 0;
}

/* --- 見出し -------------------------------------------------------------- */
.sg-brand .sg-brand__title {
	position: relative;
	font-family: inherit;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
	letter-spacing: 0.1em;
	color: inherit;
	margin: 0 0 60px;
}
/* 見出しが2行になるとき、span の切れ目で折り返させる */
.sg-brand .sg-brand__title span {
	display: inline-block;
}
.sg-brand .sg-brand__title:after {
	position: absolute;
	content: "";
	width: 12px;
	height: 2px;
	background-color: #040404;
	bottom: -15px;
	left: 50%;
	margin-left: -6px;
	transform-origin: left top;
	transform: skewX(-30deg);
}

/* --- CONCEPT ------------------------------------------------------------- */
.sg-brand .sg-brand__concept {
	width: 85%;
	max-width: 900px;
	margin: 120px auto;
}
.sg-brand .sg-brand__concept p {
	font-size: 15px;
	line-height: 2.4;
	margin: 0 0 10px;
}
.sg-brand .sg-brand__concept p + p {
	margin-top: 1.2em;
}

/* --- MOVIE（16:9） ------------------------------------------------------- */
.sg-brand .sg-brand__movie {
	width: 96.5%;
	margin: 0 auto;
}
.sg-brand .sg-brand__movie-inner {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
}
/* custom.css の .brand-wrap iframe（750x420 固定 !important）を打ち消す */
.sg-brand .sg-brand__movie-inner iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	max-width: 100% !important;
	height: 100% !important;
	margin: auto;
}

/* --- LOOK / SERIES（写真のグリッド） -------------------------------------- */
.sg-brand .sg-brand__look {
	width: 96%;
	max-width: 1240px;
	text-align: center;
	margin: 60px auto;
}
.sg-brand .sg-brand__grid {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	width: 100%;
	list-style: none;
	margin: 0 auto;
	padding: 0;
}
.sg-brand .sg-brand__grid li {
	width: 25%;
	padding: 0.2%;
}
/* custom.css の .brand-wrap img { width: 90% }（480px以下）を打ち消す */
.sg-brand .sg-brand__grid li img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
}
/* 写真が3枚のとき用：PCは3列で幅いっぱい、端数の行は中央寄せ */
.sg-brand .sg-brand__grid--3 {
	justify-content: center;
}
.sg-brand .sg-brand__grid--3 li {
	width: 33.333%;
}
/* シリーズのロゴなど小さく並べたいとき用：PCは1行8枚まで、中央寄せ */
.sg-brand .sg-brand__grid--small {
	justify-content: center;
}
.sg-brand .sg-brand__grid--small li {
	width: 12.5%;
}
.sg-brand .sg-brand__grid li a {
	display: block;
	transition: opacity 0.3s;
}
.sg-brand .sg-brand__grid li a:hover {
	opacity: 0.7;
}

/* --- 商品一覧（カテゴリページから読み込んで表示。カードの見た目は商品一覧と同じ） */
.sg-brand .sg-brand__items {
	margin: 60px auto;
}
.sg-brand .sg-brand__items[hidden] {
	display: none;
}

/* --- ボタン -------------------------------------------------------------- */
.sg-brand .sg-brand__links {
	width: 90%;
	max-width: 800px;
	margin: 60px auto 80px;
}
.sg-brand .sg-brand__links .btn {
	display: block;
	width: 100%;
	margin: 0 0 25px;
	padding: 10px 12px;
	border: 1px solid transparent;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.07em;
	line-height: 1.42857143;
	color: #fff;
}
.sg-brand .sg-brand__links .btn:last-child {
	margin-bottom: 0;
}

/* --- 768〜979px ---------------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 979px) {
	.sg-brand .sg-brand__slider-wrap {
		width: min(60%, calc(max(420px, 100vh - 310px) * var(--mv-ratio, 0.6667)));
	}
	.sg-brand .sg-brand__info {
		padding: 0 0 0 40px;
	}
	.sg-brand .sg-brand__name {
		font-size: 26px;
	}
	.sg-brand .sg-brand__concept {
		margin: 60px auto;
	}
	.sg-brand .sg-brand__grid--small li {
		width: 20%;
	}
}
@media screen and (min-width: 980px) and (max-width: 1199px) {
	.sg-brand .sg-brand__info {
		padding: 0 0 0 50px;
	}
}

/* --- 767px 以下 ---------------------------------------------------------- */
@media screen and (max-width: 767px) {
	.sg-brand .sg-brand__crumb .breadcrumb {
		font-size: 11px;
	}
	.sg-brand .sg-brand__mv {
		display: block;
		width: 100%;
		margin: 0 auto 80px;
	}
	/* 190px = ヘッダー88 + パンくず62 + ドットと余白 */
	.sg-brand .sg-brand__slider-wrap {
		width: min(100%, calc(max(360px, 100vh - 190px) * var(--mv-ratio, 0.6667)));
		width: min(100%, calc(max(360px, 100svh - 190px) * var(--mv-ratio, 0.6667)));
		margin: 0 auto;
	}
	.sg-brand .sg-brand__info-wrap {
		width: 85%;
		margin: 60px auto 40px;
	}
	.sg-brand .sg-brand__info {
		max-width: none;
		padding: 0;
	}
	.sg-brand .sg-brand__info p {
		margin: 20px 0 0;
	}
	.sg-brand .sg-brand__info p.sg-brand__label {
		margin: 0 0 10px;
	}
	.sg-brand .sg-brand__name {
		font-size: 28px;
	}
	.sg-brand .sg-brand__name span {
		font-size: 15px;
	}
	.sg-brand .sg-brand__concept {
		margin: 60px auto;
	}
	.sg-brand .sg-brand__movie {
		width: 100%;
	}
	.sg-brand .sg-brand__grid li,
	.sg-brand .sg-brand__grid--3 li {
		width: 50%;
		padding: 0.45%;
	}
	.sg-brand .sg-brand__grid--small li {
		width: 25%;
		padding: 0.45%;
	}
	/* 長いブランド名がボタンからはみ出さないように */
	.sg-brand .sg-brand__links .btn {
		white-space: normal;
	}
}
@media only screen and (max-width: 760px) {
	.sg-brand .sg-brand__title:after {
		width: 10px;
		bottom: -9px;
		margin-left: -5px;
	}
}
