/* ========================================
   BRAND FLOW
   ======================================== */
   .brand-flow__heading {
	   margin: 0 0 28px;
   }
   
   .brand-flow__eyebrow {
	   margin: 0 0 8px;
	   color: #222;
	   font-size: 13px;
	   font-weight: 500;
	   line-height: 1.4;
	   letter-spacing: 0.12em;
	   text-transform: uppercase;
   }
   
   .brand-flow__heading-title {
	   margin: 0;
	   color: #222;
	   font-size: clamp(18px, 2.2vw, 18px);
	   font-weight: 400;
	   line-height: 1.4;
	   letter-spacing: 0.02em;
   }
   
.brand-flow {
	--flow-text: #222;
	--flow-subtext: #555;
	--flow-line: #dedede;
	--flow-accent: #a8927a;
	--flow-bg: #fff;
	
	width: 100%;
	margin: 0 auto;
	padding: 48px 0;
	box-sizing: border-box;
}

.brand-flow *,
.brand-flow *::before,
.brand-flow *::after {
	box-sizing: border-box;
}

.brand-flow__list {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	
	width: 100%;
	overflow: hidden;
	
	border: 1px solid var(--flow-line);
	background: var(--flow-bg);
}

.brand-flow__item {
	position: relative;
	
	min-width: 0;
	min-height: 330px;
	padding: 38px 30px 36px;
	
	text-align: left;
	background: #fff;
}

.brand-flow__item:not(:last-child) {
	border-right: 1px solid var(--flow-line);
}

/* 工程間の右向き矢印 */
.brand-flow__item:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -9px;
	z-index: 5;
	
	width: 18px;
	height: 18px;
	
	border-top: 1px solid var(--flow-accent);
	border-right: 1px solid var(--flow-accent);
	background: #fff;
	
	transform: translateY(-50%) rotate(45deg);
}

/* 最後には矢印を出さない */
.brand-flow__item:last-child::after {
	display: none;
}

.brand-flow__number {
	display: block;
	margin: 0 0 28px;
	
	color: var(--flow-accent);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.14em;
	text-align: center;
}

.brand-flow__icon {
	width: 54px;
	height: 54px;
	margin: 0 auto 24px;
}

.brand-flow__icon svg {
	display: block;
	
	width: 100%;
	height: 100%;
	
	fill: none !important;
	stroke: var(--flow-text) !important;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.brand-flow__icon svg * {
	fill: none !important;
	stroke: inherit;
}

.brand-flow__title {
	margin: 0 0 18px;
	
	color: var(--flow-text);
	font-size: clamp(16px, 1.15vw, 19px);
	font-weight: 600;
	line-height: 1.55;
	letter-spacing: 0.03em;
	
	overflow-wrap: anywhere;
}

.brand-flow__text {
	margin: 0;
	
	color: var(--flow-subtext);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.9;
	letter-spacing: 0.02em;
	
	overflow-wrap: anywhere;
}

/* 画面には表示せず、読み上げや検索エンジンには残す */
.visually-hidden {
	position: absolute !important;
	
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	
	border: 0 !important;
}


/* ========================================
   TABLET
   ======================================== */

@media (max-width: 1180px) {
	.brand-flow__list {
		grid-template-columns: repeat(6, 230px);
		overflow-x: auto;
		overflow-y: hidden;
		
		scroll-snap-type: x mandatory;
		scrollbar-width: thin;
		-webkit-overflow-scrolling: touch;
	}
	
	.brand-flow__item {
		scroll-snap-align: start;
	}
}


/* ========================================
   MOBILE
   ======================================== */

@media (max-width: 680px) {
	.brand-flow {
		padding: 32px 0;
	}
	
	.brand-flow__list {
		display: block;
		overflow: visible;
		
		border: 0;
		background: transparent;
	}
	
	.brand-flow__item {
		min-height: 0;
		margin: 0 0 24px;
		padding: 28px 22px 32px;
		
		border: 1px solid var(--flow-line);
		background: #fff;
	}
	
	.brand-flow__item:not(:last-child) {
		border-right: 1px solid var(--flow-line);
	}
	
	/* スマホでは下向き矢印 */
	.brand-flow__item:not(:last-child)::after {
		top: auto;
		right: 50%;
		bottom: -9px;
		
		width: 16px;
		height: 16px;
		
		transform: translateX(50%) rotate(135deg);
	}
	
	.brand-flow__number {
		margin-bottom: 20px;
	}
	
	.brand-flow__icon {
		width: 48px;
		height: 48px;
		margin-bottom: 18px;
	}
	
	.brand-flow__title {
		margin-bottom: 12px;
		font-size: 18px;
	}
	
	.brand-flow__text {
		font-size: 13px;
		line-height: 1.85;
	}
}



/* 画面には表示せず、検索エンジンや読み上げには残す */
.visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
