/*
 * Split diagonal hero component.
 *
 * PHP: template-parts/components/hero-split-diagonal/hero-split-diagonal.php
 * JS:  template-parts/components/hero-split-diagonal/js/hero-split-diagonal.js
 */

.hero-split-diagonal
{
	--hsd-blue: var(--takagi-blue, #008bd2);
	--hsd-deep-blue: var(--takagi-deep-blue, #006db6);
	/* JSで実測できない場合だけ、通常ヘッダー高5.5remを予備値として使う。 */
	--hsd-header-height: 5.5rem;
	/* 高さの計算式はここだけ。実測ヘッダー高はJSが上の変数へ渡す。 */
	--hsd-height: max(35rem, calc(100dvh - var(--hsd-header-height)));
	--hsd-product-top-gap: clamp(1.5rem, 2.6vw, 3.25rem);
	/* 余白内コピーは行数が増えても、この上下パディングを必ず残す。 */
	--hsd-gap-copy-padding-block: clamp(.25rem, .75vw, 1rem);
	--hsd-photo-copy-bottom: clamp(2rem, 3vw, 3.75rem);
	--hsd-story-clip: polygon(9.6% 0, 100% 0, 100% 100%, 0 100%);
	--hsd-caption-height: clamp(7.4rem, 8.7vw, 10.5rem);
	--hsd-top-copy-color: #ffffff;
	--hsd-gap-copy-color: #365565;

	position: relative;
	overflow: hidden;
	min-height: var(--hsd-height);
	background: #ffffff;
	isolation: isolate;
}

.hero-split-diagonal__viewport
{
	position: relative;
	overflow: hidden;
	min-height: inherit;
}

.hero-split-diagonal__product,
.hero-split-diagonal__story
{
	position: absolute;
	overflow: hidden;
}

.hero-split-diagonal__product
{
	z-index: 1;
	top: 0;
	bottom: 0;
	left: 0;
	display: grid;
	grid-template-rows: auto minmax(0, 1fr);
	width: 52%;
	background: #ffffff;
}

.hero-split-diagonal__story
{
	z-index: 2;
	inset-block: 0;
	right: 0;
	left: 46.8%;
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	background: #ffffff;
	clip-path: var(--hsd-story-clip);
}

.hero-split-diagonal__story-visual
{
	position: relative;
	overflow: hidden;
	min-height: 0;
	background: #ffffff;
	contain: layout paint;
}

.hero-split-diagonal__media-layer,
.hero-split-diagonal__caption-panel,
.hero-split-diagonal__top-copy-panel,
.hero-split-diagonal__gap-copy-panel
{
	position: absolute;
	inset: 0;
	visibility: hidden;
	opacity: 0;
}

.hero-split-diagonal__media-layer
{
	z-index: 0;
	overflow: hidden;
	background: #ffffff;
	backface-visibility: hidden;
	transform: translate3d(0, 0, 0);
}

.hero-split-diagonal__product .hero-split-diagonal__media-layer
{
	position: relative;
	inset: auto;
	grid-area: 2 / 1;
	min-width: 0;
	min-height: 0;
}

.hero-split-diagonal__media-layer.is-active,
.hero-split-diagonal__caption-panel.is-active,
.hero-split-diagonal__top-copy-panel.is-active,
.hero-split-diagonal__gap-copy-panel.is-active
{
	z-index: 2;
	visibility: visible;
	opacity: 1;
}

.hero-split-diagonal__media
{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--hero-split-diagonal-position, 50% 50%);
}

.hero-split-diagonal.has-media-zoom .hero-split-diagonal__media
{
	backface-visibility: hidden;
	transform-origin: 50% 50%;
}

.hero-split-diagonal__intro-curtain
{
	position: absolute;
	z-index: 10;
	inset: 0;
	display: none;
	background: #ffffff;
	pointer-events: none;
}

.has-hero-split-diagonal-js .hero-split-diagonal__intro-curtain
{
	display: block;
	animation: hsd-curtain-failsafe 0s 5s forwards;
}

.has-hero-split-diagonal-js .hero-split-diagonal.is-initialized .hero-split-diagonal__intro-curtain
{
	display: none;
	animation: none;
}

.hero-split-diagonal__gap-copy
{
	position: relative;
	z-index: 12;
	inset: auto;
	grid-area: 1 / 1;
	/* 全パネルを同じグリッドへ重ね、最も行数の多いコピーに領域高を揃える。 */
	display: grid;
	align-content: center;
	box-sizing: border-box;
	width: 100%;
	height: auto;
	min-height: var(--hsd-product-top-gap);
	padding: var(--hsd-gap-copy-padding-block) clamp(1.5rem, 3vw, 3rem) var(--hsd-gap-copy-padding-block) clamp(1.25rem, 2.6vw, 3.25rem);
	overflow: hidden;
	background: #ffffff;
	pointer-events: none;
}

.hero-split-diagonal__gap-copy-panel
{
	position: relative;
	inset: auto;
	grid-area: 1 / 1;
	align-self: center;
	min-width: 0;
	margin: 0;
	overflow: visible;
	color: var(--hsd-gap-copy-color);
	font-size: clamp(.6875rem, .72vw, .875rem);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: .06em;
	overflow-wrap: anywhere;
	/* 配列内の改行と、表示幅に応じた自然な折り返しの両方を許可する。 */
	/* white-space: pre-line; */ /* 崩れる */
	text-overflow: clip;
}

.hero-split-diagonal__top-copy
{
	position: absolute;
	z-index: 11;
	right: clamp(2.5rem, 5vw, 6rem);
	bottom: var(--hsd-photo-copy-bottom);
	left: clamp(1.25rem, 2.6vw, 3.25rem);
	height: clamp(2.75rem, 4.4vw, 5.25rem);
	overflow: hidden;
	pointer-events: none;

	/* ▼ 左写真内コピー ▼ */
	height: auto !important;
	bottom: 2em;
	__border: 5px solid red;
}

.hero-split-diagonal__top-copy-panel
{
	box-sizing: border-box;
	margin: 0;
	padding-top: .125rem;
	overflow: hidden;
	color: var(--hsd-top-copy-color);
	font-size: clamp(.75rem, .9vw, 1.05rem);
	font-weight: 600;
	line-height: 1.55;
	letter-spacing: .08em;
	text-shadow: 0 .1rem .65rem rgba(0, 0, 0, .72);


	/* ▼ 左写真内コピー ▼ */
	padding-top: 0;
	__opacity: 1 !important;
	__z-index: 10 !important;
	__visibility: visible !important;
	
}
/* ▼ 左写真内コピー ▼ */
.hero-split-diagonal__top-copy-panel.is-active{
	position: relative;
}
/* ▲ 左写真内コピー ▲ */

.hero-split-diagonal__caption
{
	position: relative;
	min-height: var(--hsd-caption-height);
	overflow: hidden;
	background: #ffffff;
}

.hero-split-diagonal__caption-panel
{
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.hero-split-diagonal__caption-inner
{
	padding: clamp(1rem, 1.45vw, 1.75rem) clamp(5.5rem, 7vw, 8.5rem) clamp(1.15rem, 1.8vw, 2rem) clamp(3rem, 5vw, 6rem);
	padding: clamp(1rem, 1.45vw, 1.75rem) clamp(5.5rem, 6vw, 8.5rem) clamp(1.15rem, 1.8vw, 2rem) clamp(3rem, 4vw, 6rem);
}

.hero-split-diagonal__eyebrow
{
	margin: 0;
	color: #7f8a90;
	font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(1rem, 1.25vw, 1.5rem);
	font-style: italic;
	font-weight: 300;
	line-height: 1.2;
}

.hero-split-diagonal__copy
{
	max-width: 52rem;
	margin: .28em 0 0;
	color: var(--hsd-deep-blue);
	font-size: clamp(1rem, 1.95vw, 1.65rem);
	font-size: clamp(1rem, 1.95vw, 2rem);
	font-weight: 700;
	line-height: 1.5;
	__letter-spacing: .02em;
	text-wrap: wrap;

	__font-feature-settings: "palt";
}

.hero-split-diagonal__caption-inner > :first-child
{
	margin-top: 0;
}

.hero-split-diagonal__arrow,
.hero-split-diagonal__pagination
{
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
}

.hero-split-diagonal.is-ready .hero-split-diagonal__arrow,
.hero-split-diagonal.is-ready .hero-split-diagonal__pagination
{
	visibility: visible;
	pointer-events: auto;
}

.hero-split-diagonal.is-ready .hero-split-diagonal__arrow
{
	opacity: .3;
}

.hero-split-diagonal.is-ready .hero-split-diagonal__pagination
{
	opacity: 1;
}

.hero-split-diagonal__arrow
{
	position: absolute;
	z-index: 5;
	top: 50%;
	display: grid;
	place-items: center;
	width: clamp(2.75rem, 3.25vw, 3.75rem);
	aspect-ratio: 1;
	padding: 0;
	color: #173847;
	background: rgba(255, 255, 255, .86);
	border: 1px solid rgba(0, 77, 111, .18);
	border-radius: 50%;
	box-shadow: 0 .35rem 1.25rem rgba(0, 32, 48, .18);
	transform: translateY(-50%);
	transition: color .2s ease, background-color .2s ease, opacity .2s ease, transform .2s ease;
}

.hero-split-diagonal.is-ready .hero-split-diagonal__arrow:hover,
.hero-split-diagonal.is-ready .hero-split-diagonal__arrow:focus-visible
{
	color: var(--hsd-deep-blue);
	background: #ffffff;
	opacity: 1;
	transform: translateY(-50%) scale(1.05);
}

.hero-split-diagonal__arrow:focus-visible,
.hero-split-diagonal__pagination button:focus-visible
{
	outline: .2rem solid rgba(0, 139, 210, .72);
	outline-offset: .2rem;
}

.hero-split-diagonal__arrow--previous
{
	left: clamp(.75rem, 1.6vw, 2rem);
}

.hero-split-diagonal__arrow--next
{
	right: clamp(.75rem, 1.6vw, 2rem);
}

.hero-split-diagonal__arrow svg
{
	width: 52%;
	height: 52%;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.hero-split-diagonal.is-ready .hero-split-diagonal__arrow:disabled
{
	cursor: wait;
	opacity: .24;
}

.hero-split-diagonal__pagination
{
	position: absolute;
	z-index: 5;
	right: clamp(1.5rem, 3vw, 3.5rem);
	bottom: clamp(1rem, 1.5vw, 1.6rem);
	display: flex;
	align-items: center;
	gap: .55rem;
	transition: opacity .2s ease;
}

.hero-split-diagonal__pagination button
{
	width: 1.9rem;
	height: .2rem;
	padding: 0;
	background: rgba(0, 109, 182, .3);
	border: 0;
	transition: background-color .25s ease, transform .25s ease;
}

.hero-split-diagonal__pagination button.is-active
{
	background: var(--hsd-deep-blue);
	transform: scaleX(1.3);
}

@media (max-width: 767.98px)
{
	.hero-split-diagonal
	{
		--hsd-product-top-gap: clamp(1rem, 3.5vw, 1.25rem);
		--hsd-photo-copy-bottom: calc(15% + 2rem);
		--hsd-story-clip: polygon(0 15%, 100% 4%, 100% 100%, 0 100%);
		--hsd-caption-height: 8.5rem;
	}

	.hero-split-diagonal__product,
	.hero-split-diagonal__story
	{
		inset-inline: 0;
		width: 100%;
	}

	.hero-split-diagonal__product
	{
		top: 0;
		bottom: auto;
		height: calc(56% + var(--hsd-product-top-gap));
	}

	.hero-split-diagonal__story
	{
		top: 48%;
		bottom: 0;
		grid-template-rows: minmax(0, 1fr) auto;
	}

	.hero-split-diagonal__caption-inner
	{
		padding: 1rem 4.75rem 1.25rem 1.25rem;
	}

	.hero-split-diagonal__top-copy
	{
		right: 38%;
		left: 1rem;
		height: 3rem;
	}

	.hero-split-diagonal__gap-copy
	{
		right: 0;
		left: 0;
		padding-right: 1rem;
		padding-left: 1rem;
	}

	.hero-split-diagonal__gap-copy-panel
	{
		font-size: .625rem;
		line-height: 1.1;
		letter-spacing: .04em;
	}

	.hero-split-diagonal__top-copy-panel
	{
		font-size: clamp(.6875rem, 3vw, .8rem);
		line-height: 1.45;
		letter-spacing: .05em;
	}

	.hero-split-diagonal__eyebrow
	{
		font-size: 1rem;
	}

	.hero-split-diagonal__copy
	{
		font-size: clamp(1rem, 4.4vw, 1.25rem);
	}

	.hero-split-diagonal__arrow
	{
		top: 43%;
		width: 2.75rem;
	}

	.hero-split-diagonal__pagination
	{
		right: 1.25rem;
		bottom: 1.3rem;
		flex-direction: column;
		gap: .4rem;
	}

	.hero-split-diagonal__pagination button
	{
		width: 1.55rem;
	}
}

@media (prefers-reduced-motion: reduce)
{
	.hero-split-diagonal__arrow,
	.hero-split-diagonal__pagination,
	.hero-split-diagonal__pagination button
	{
		transition-duration: .01ms;
	}
}

@keyframes hsd-curtain-failsafe
{
	to
	{
		visibility: hidden;
	}
}
