/**
 * 共通部品
 *
 * 複数ページで使う部品。1 ページでしか使わないものは pages/{slug}.css に書く。
 */

/*
 * 全幅セクション
 * 本文は Lightning の .container の内側に出るので、背景だけ画面幅いっぱいに広げ、
 * 中身は .container と同じ幅に保つ。はみ出しによる横スクロールは
 * Lightning 側の html, body { overflow-x: hidden } で抑えられている。
 * .da-full--bleed は中身（動画など）も画面幅いっぱいにする。
 */
.da-full {
	margin-inline: calc(50% - 50vw);
	padding-inline: calc(50vw - 50%);
}

.da-full--bleed {
	padding-inline: 0;
}

/* セクションの上下余白 */
.da-section {
	padding-block: var(--da-space-section);
}

/* スマホだけ / PC だけ表示（768px で切り替え） */
@media (min-width: 768px) {
	.da-sp-only {
		display: none !important; /* display を指定した部品にも効かせるため */
	}
}

@media (max-width: 767.98px) {
	.da-pc-only {
		display: none !important; /* 同上 */
	}
}

/* ---------- 見出し ---------- */

/*
 * Lightning（origin3）が h2 / h3 に付ける罫線・下線を、子テーマの見出しでは消す。
 * :where() で詳細度をクラス 1 つ分に抑え、各部品のクラスで余白や線を上書きできるようにしている。
 */
:where(h2, h3)[class*="da-"] {
	padding: 0;
	border: 0;
}

h3[class*="da-"]::after {
	content: none;
}

.da-heading {
	margin: 0;
	color: var(--da-color-black);
	font-size: var(--da-fs-xl);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.05em;
	text-align: center;
}

/* 上に短い線を付ける */
.da-heading--line::before {
	content: "";
	display: block;
	width: 3rem;
	height: 1px;
	margin: 0 auto 1.5rem;
	background-color: currentColor;
}

/* ---------- 番号付きラベル（Step1、理由01 など。左に太い縦線） ---------- */

/*
 * <p class="da-num-label"><span class="da-num-label__prefix">Step</span>1</p>
 * 番号の大きさは font-size で変える（前に付く文字はその半分）。
 */
.da-num-label {
	display: flex;
	align-items: baseline;
	gap: 0.1em;
	width: fit-content;
	margin: 0;
	padding: 0.1em 0 0.1em 0.5em;
	border-left: 4px solid var(--da-color-black);
	color: var(--da-color-text);
	font-family: var(--da-font-sans);
	font-size: 32px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.05em;
}

.da-num-label__prefix {
	font-size: 0.5em;
}

/* ---------- ボタン（枠線＋右にはみ出す矢印） ---------- */

.da-btn {
	position: relative;
	z-index: 0;
	display: inline-block;
	min-width: 220px;
	padding: 12px 35px;
	border: 1px solid var(--da-color-black);
	color: var(--da-color-black);
	font-family: var(--da-font-sans);
	font-size: 14px;
	line-height: 1.5;
	letter-spacing: 0.1em;
	text-align: center;
	text-decoration: none;
	transition: color 0.3s;
}

/* ホバーで左から黒く塗る */
.da-btn::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	z-index: -1;
	width: 0;
	background-color: var(--da-color-black);
	transition: width 0.3s;
}

/* 矢印（長さ 70px のうち半分が枠の外に出る） */
.da-btn::after {
	content: "";
	position: absolute;
	top: calc(50% - 9.5px);
	right: -35px;
	width: 70px;
	height: 10px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='10'%3E%3Cpath d='M0 9.5H70L61.5 1' fill='none' stroke='%23000'/%3E%3C/svg%3E") no-repeat;
}

.da-btn:hover,
.da-btn:focus-visible {
	color: var(--da-color-white);
}

.da-btn:hover::before,
.da-btn:focus-visible::before {
	width: 100%;
}

@media (min-width: 576px) {
	.da-btn {
		font-size: 16px;
	}
}

/* ---------- お問い合わせ CTA（template-parts/sections/cta.php） ---------- */

.da-cta {
	padding-block: var(--da-space-section);
	background-color: var(--da-color-gray-bg);
}

.da-cta__title {
	margin-bottom: var(--da-space-sm);
	text-align: left;
}

.da-cta__text {
	margin: 0 0 var(--da-space-md);
	color: var(--da-color-gray);
	font-family: var(--da-font-sans);
	font-size: var(--da-fs-text-sm);
	line-height: var(--da-lh-text);
}

.da-cta__hours {
	display: flex;
	gap: var(--da-space-sm);
	margin-top: var(--da-space-sm);
	color: var(--da-color-text);
	font-family: var(--da-font-sans);
	font-size: var(--da-fs-text-sm);
	line-height: 1.8;
}

.da-cta__hours-label,
.da-cta__hours-list {
	margin: 0;
}

.da-cta__hours-list > div {
	display: flex;
	gap: var(--da-space-sm);
}

.da-cta__hours-list dt {
	min-width: 5em;
	margin: 0;
	font-weight: 400;
}

.da-cta__hours-list dd {
	margin: 0;
}

@media (min-width: 768px) {
	.da-cta__inner {
		display: grid;
		grid-template-columns: 1fr 1fr;
		align-items: center;
		gap: var(--da-space-md);
	}

	.da-cta__text {
		margin-bottom: 0;
	}
}
