@charset "UTF-8";
/* ==========================================================================
   ALL CREATION テーマ
   元サイト（Elementor 版）の数値をそのまま移しています。
   ブレークポイント：タブレット 〜1024px ／ スマホ 〜767px（Elementor と同じ）
   ========================================================================== */

/* --------------------------------------------------------------------------
   フォント
   Noto Sans JP・Inter は元サイトでも読み込みに失敗しており、端末の標準フォントで
   表示されている。見た目を揃えるため、ここでも名前の指定だけにしている。
   -------------------------------------------------------------------------- */
@font-face {
	font-family: "Ramabhadra";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/ramabhadra-latin-400.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Zen Kaku Gothic New";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/zenkakugothicnew-latin-400.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Zen Kaku Gothic New";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("../fonts/zenkakugothicnew-latin-500.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Zen Kaku Gothic New";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/zenkakugothicnew-latin-700.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Zen Kaku Gothic New";
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url("../fonts/zenkakugothicnew-latin-900.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --------------------------------------------------------------------------
   変数
   -------------------------------------------------------------------------- */
:root {
	--c-text: #121212;
	--c-white: #ffffff;
	--c-bg: #f2f2f0;
	--c-bg-2: #e9e9e7;
	--c-red: #bb0000;
	--c-red-dark: #910105;
	--c-footer: #2a2a2a;
	--f-base: "Noto Sans JP", sans-serif;
	--f-en: "Ramabhadra", sans-serif;
	--f-num: "Zen Kaku Gothic New", sans-serif;
	--f-inter: "Inter", sans-serif;
}

/* --------------------------------------------------------------------------
   ベース
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background-color: var(--c-bg);
	color: var(--c-text);
	font-family: var(--f-base);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.2em;
	word-spacing: 0.02em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	padding: 0;
	color: inherit;
	font-family: inherit;
	font-weight: 600;
	line-height: 1;
}

p {
	margin: 0;
}

a {
	background-color: transparent;
	color: var(--c-text);
	text-decoration: none;
}

img {
	max-width: 100%;
	height: auto;
	border: 0;
	vertical-align: middle;
}

ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

button {
	margin: 0;
	font-family: inherit;
}

iframe {
	border: 0;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
	white-space: nowrap;
	word-wrap: normal !important;
}

.skip-link:focus {
	position: fixed !important;
	top: 8px;
	left: 8px;
	z-index: 100000;
	width: auto;
	height: auto;
	padding: 12px 20px;
	clip: auto;
	background-color: #ffffff;
	color: var(--c-text);
	font-size: 14px;
}

.ac-icon {
	display: block;
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.site-main {
	display: block;
}

.ac-admin-note {
	padding: 12px 16px;
	border: 1px dashed var(--c-red);
	background-color: #fff;
	color: var(--c-red);
	font-size: 14px;
	line-height: 1.6;
}

/* --------------------------------------------------------------------------
   アニメーション（Elementor の「アニメーション」と同じ動き）
   data-anim を付けた要素は、画面に入ったときに main.js が .is-in を付ける
   -------------------------------------------------------------------------- */
[data-anim] {
	visibility: hidden;
}

[data-anim].is-in {
	visibility: visible;
	animation-duration: 0.75s;
	animation-fill-mode: both;
}

[data-anim="fadeInUp"].is-in {
	animation-name: acFadeInUp;
}

[data-anim="fadeIn"].is-in {
	animation-name: acFadeIn;
	animation-duration: 1.25s;
}

[data-anim="fadeInDown"].is-in {
	animation-name: acFadeInDown;
}

[data-anim="bounce"].is-in {
	animation-name: acBounce;
	animation-duration: 1.25s;
	transform-origin: center bottom;
}

@keyframes acFadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@keyframes acFadeInUp {
	from {
		opacity: 0;
		transform: translate3d(0, 100%, 0);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes acFadeInDown {
	from {
		opacity: 0;
		transform: translate3d(0, -100%, 0);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes acBounce {
	0%,
	20%,
	53%,
	80%,
	to {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
		transform: translateZ(0);
	}

	40%,
	43% {
		animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
		transform: translate3d(0, -30px, 0);
	}

	70% {
		animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
		transform: translate3d(0, -15px, 0);
	}

	90% {
		transform: translate3d(0, -4px, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	[data-anim].is-in {
		animation: none;
	}
}

/* --------------------------------------------------------------------------
   ヘッダー（PC：1025px〜）
   -------------------------------------------------------------------------- */
.hd-pc {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 800;
	display: flex;
	padding: 0 40px 20px;
	animation: acFadeInDown 0.75s both;
}

.hd-pc::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(180deg, #ffffff 30%, #ffffff00 100%);
	opacity: 0.76;
	pointer-events: none;
}

.hd-pc__logo {
	position: relative;
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	justify-content: center;
	width: 20%;
}

.hd-pc__logo a {
	display: block;
	align-self: center;
}

.hd-pc__logo img {
	display: block;
	width: 350px;
}

.hd-pc__right {
	position: relative;
	display: flex;
	flex: 1 1 auto;
	justify-content: flex-end;
	align-items: center;
	min-width: 0;
}

.hd-nav {
	z-index: 999;
}

.hd-nav ul {
	display: flex;
	justify-content: center;
}

.hd-nav a {
	display: flex;
	padding: 15px 10px;
	color: var(--c-text);
	font-size: 16px;
	line-height: 24px;
	transition: color 0.3s;
}

.hd-nav a:hover {
	color: #bc0100;
}

.hd-pc__contact {
	display: flex;
	flex-shrink: 0;
	gap: 10px;
	width: 20%;
	min-height: 100px;
}

.hd-contact {
	display: inline-block;
	align-self: center;
	padding: 15px 45px;
	border-radius: 4px;
	background-color: var(--c-text);
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.16);
	color: var(--c-white);
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.04em;
	text-align: center;
	transition: all 0.3s;
}

.hd-contact:hover {
	color: var(--c-white);
}

/* ヘッダー（タブレット・スマホ） */
.hd-sp {
	display: none;
}

@media (max-width: 1024px) {
	.hd-pc {
		display: none;
		z-index: 800;
	}

	.hd-sp {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		z-index: 800;
		display: flex;
		background-color: #ffffff78;
	}

	.hd-sp__logo {
		display: flex;
		flex-direction: column;
		justify-content: center;
		width: 50%;
		padding: 10px;
	}

	.hd-sp__logo a {
		display: block;
		align-self: flex-start;
		padding-left: 10px;
	}

	.hd-sp__logo img {
		display: block;
		width: 250px;
	}

	.hd-sp__right {
		display: flex;
		justify-content: flex-end;
		width: 50%;
		padding: 10px;
	}

	.hd-sp__right .hd-contact {
		margin-right: 20px;
		padding: 10px 14px;
		font-size: 15px;
		box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.16);
	}

	.hd-menu-btn {
		display: block;
		align-self: flex-start;
		padding: 7px 2px 2px;
		border: 0;
		background: none;
		color: var(--c-text);
		font-size: 40px;
		line-height: 1;
		cursor: pointer;
		transition: transform 0.3s;
	}

	.hd-menu-btn:hover {
		transform: scale(0.9);
	}
}

@media (max-width: 767px) {
	.hd-sp {
		padding: 8px 5px;
		animation: acFadeInDown 0.75s both;
	}

	.hd-sp__logo {
		width: 60%;
		padding: 0;
	}

	.hd-sp__logo a {
		padding: 0 10px 0 0;
	}

	.hd-sp__logo img {
		width: 170px;
	}

	.hd-sp__right {
		align-items: center;
		width: 40%;
		padding: 0;
	}

	.hd-sp__right .hd-contact {
		margin-right: 8px;
		padding: 8px 11px 8px 10px;
		font-size: 13px;
	}

	.hd-menu-btn {
		align-self: center;
		padding: 3px 4px 0;
		font-size: 33px;
	}
}

/* --------------------------------------------------------------------------
   メニューパネル（タブレット・スマホのメニューボタンで開く）
   -------------------------------------------------------------------------- */
.ac-menu {
	position: fixed;
	inset: 0;
	z-index: 1999999999;
	display: flex;
	overflow-y: auto;
	background-color: rgba(0, 0, 0, 0.7);
	opacity: 0;
	transition: opacity 0.2s;
}

.ac-menu[hidden] {
	display: none;
}

.ac-menu.is-open {
	opacity: 1;
}

.ac-menu__panel {
	position: relative;
	width: 95%;
	margin: auto;
	background-color: var(--c-white);
	color: #8c8c8c;
}

.ac-menu__body {
	display: flex;
	flex-direction: column;
	max-width: 1024px;
	margin: 0 auto;
	padding: 120px 80px;
}

.ac-menu__logo {
	display: block;
	text-align: center;
}

.ac-menu__logo img {
	width: 350px;
}

.ac-menu__cols {
	display: flex;
	margin-top: 40px;
}

.ac-menu__col {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	padding: 20px;
}

.ac-menu__col--2 {
	padding: 20px 20px 20px 40px;
	border-left: 1px solid var(--c-text);
}

.ac-menu__col li {
	padding: 10px;
	border-bottom: 1px solid #eeeeee;
}

.ac-menu__col li a {
	display: block;
	color: var(--c-text);
	font-family: var(--f-inter);
	font-size: 28px;
	font-weight: 400;
	line-height: 1;
}

.ac-menu__col li.ac-menu__sub {
	margin-left: 15px;
}

.ac-menu__col li.ac-menu__sub a {
	font-size: 15px;
}

.ac-menu__contact {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	width: 212px;
	height: 50px;
	margin-top: 40px;
	padding: 13px 10px 10px;
	border: 1px solid var(--c-text);
	background-color: var(--c-white);
	color: var(--c-text);
	font-family: var(--f-inter);
	font-size: 18px;
	line-height: 1;
	letter-spacing: 0.12em;
}

.ac-menu.is-open .ac-menu__contact {
	animation: acBounce 1.25s both;
	transform-origin: center bottom;
}

.ac-menu__sns {
	display: flex;
	justify-content: flex-end;
	margin-top: 60px;
}

.ac-menu__sns-item {
	align-self: center;
	padding: 4px;
}

.ac-menu__sns-item a {
	display: inline-block;
	color: #3e3e3e;
	font-size: 40px;
	line-height: 1;
}

.ac-menu__sns-item--x a {
	font-size: 43px;
}

.ac-menu__sns-item--tiktok a {
	font-size: 35px;
}

.ac-menu__close {
	position: absolute;
	top: 7px;
	right: 7px;
	z-index: 2;
	min-width: 1em;
	height: 18px;
	padding: 0;
	border: 0;
	background: none;
	color: #000000;
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	cursor: pointer;
}

@media (min-width: 1024px) {
	.ac-menu__panel {
		width: 80%;
	}
}

@media (max-width: 767px) {
	.ac-menu__panel {
		margin-top: 0;
	}

	.ac-menu__body {
		max-width: 767px;
		padding: 80px 0 120px;
	}

	.ac-menu__logo img {
		width: 245px;
	}

	.ac-menu__cols {
		flex-direction: column;
		margin-top: 20px;
		padding: 14px;
	}

	.ac-menu__col,
	.ac-menu__col--2 {
		width: 100%;
		padding: 0;
		border-left: 0;
	}

	.ac-menu__col li {
		margin-top: 5px;
	}

	.ac-menu__col--1 li:nth-child(-n+2) {
		margin-top: 0;
	}

	.ac-menu__col li a {
		font-size: 20px;
		line-height: 1.2em;
	}

	.ac-menu__col li.ac-menu__sub {
		align-self: flex-end;
		width: 95%;
		margin: 0;
		padding: 10px 0;
	}

	.ac-menu__col li.ac-menu__sub a {
		font-size: 16px;
	}

	.ac-menu__contact {
		align-self: center;
		width: 192px;
		font-size: 16px;
		letter-spacing: 0.06em;
	}

	.ac-menu__sns {
		justify-content: center;
		align-items: center;
		margin-top: 20px;
	}

	.ac-menu__sns-item a {
		font-size: 32px;
	}

	.ac-menu__sns-item--x a {
		font-size: 35px;
	}

	.ac-menu__sns-item--tiktok a {
		font-size: 30px;
	}
}

/* --------------------------------------------------------------------------
   フッター
   -------------------------------------------------------------------------- */
.site-footer {
	margin-top: 110px;
	padding: 40px;
	background-color: var(--c-footer);
	color: var(--c-white);
}

.ft-inner {
	display: flex;
	flex-direction: column;
	max-width: 1380px;
	margin: 0 auto;
}

.ft-sns {
	display: flex;
	justify-content: flex-end;
}

.ft-sns__item {
	align-self: center;
	padding: 4px;
}

.ft-sns__item a {
	display: inline-block;
	color: var(--c-white);
	font-size: 40px;
	line-height: 1;
}

.ft-sns__item--youtube a {
	font-size: 50px;
}

.ft-sns__item--x a {
	font-size: 43px;
}

.ft-sns__item--tiktok a {
	font-size: 35px;
}

.ft-row {
	display: flex;
}

.ft-brand {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	width: 50%;
	padding: 20px;
}

.ft-brand__logo {
	display: block;
	align-self: flex-start;
}

.ft-brand__logo img {
	width: 240px;
}

.ft-brand__copy {
	padding-top: 20px;
	color: var(--c-white);
	font-family: var(--f-inter);
	font-size: 12px;
	line-height: 1;
}

.ft-office {
	align-self: flex-end;
	width: 50%;
	padding: 20px;
	text-align: right;
}

.ft-office__name {
	color: var(--c-white);
	font-size: 16px;
	line-height: 1;
}

.ft-office__name--2 {
	padding-top: 20px;
}

.ft-office__text {
	padding-top: 10px;
	font-size: 12px;
}

.ft-office__text a {
	color: #ffffff;
}

@media (max-width: 1024px) {
	.site-footer {
		padding: 20px;
	}
}

@media (max-width: 767px) {
	.site-footer {
		padding: 10px 10px 40px;
	}

	.ft-sns__item a {
		font-size: 32px;
	}

	.ft-sns__item--x a {
		font-size: 35px;
	}

	.ft-sns__item--tiktok a {
		font-size: 30px;
	}

	.ft-row {
		flex-direction: column-reverse;
	}

	.ft-brand {
		width: 100%;
		margin-top: 10px;
		padding: 10px;
		text-align: center;
	}

	.ft-brand__logo {
		align-self: center;
	}

	.ft-brand__copy {
		font-size: 11px;
		line-height: 1.4em;
	}

	.ft-office {
		width: 100%;
		padding: 10px;
		text-align: left;
	}

	.ft-office__name {
		line-height: 1.2em;
	}
}

/* --------------------------------------------------------------------------
   赤いボタン（元サイトの「Read More」。マウスを乗せると「詳細はコチラ」に切り替わる）
   -------------------------------------------------------------------------- */
.c-more {
	display: flex;
	width: 100%;
}

.c-more a {
	position: relative;
	z-index: 0;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	padding: 20px 0;
	overflow: hidden;
	border-radius: 3px;
	background-color: var(--c-red);
	color: var(--c-white);
	font-family: var(--f-en);
	font-size: 20px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 2.5px;
	text-align: center;
	vertical-align: middle;
	backface-visibility: hidden;
	transition: border-color 0.3s cubic-bezier(0.2, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.2, 1, 0.3, 1);
}

.c-more a > span {
	display: block;
}

.c-more a::after {
	content: attr(data-text);
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	padding: 20px 0;
	border-radius: 3px;
	color: var(--c-white);
	opacity: 0;
	transform: translate3d(0, 25%, 0);
}

.c-more a > span,
.c-more a::after {
	transition: transform 0.3s, opacity 0.3s;
	transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
}

.c-more a:hover::after {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.c-more a:hover > span {
	opacity: 0;
	transform: translate3d(0, -25%, 0);
}

@media (max-width: 767px) {
	.c-more {
		justify-content: center;
	}

	.c-more a {
		font-size: 15px;
	}
}

/* --------------------------------------------------------------------------
   共通パーツ（見出し横の赤いアイコンつきラベル）
   -------------------------------------------------------------------------- */
.c-label {
	position: relative;
	display: flex;
	align-items: center;
	color: var(--c-text);
	font-size: 18px;
	font-weight: 600;
}

.c-label .ac-icon {
	position: relative;
	top: 2.5px;
	flex-shrink: 0;
	width: 14px;
	height: 14px;
	margin: 0 1.75px;
	color: var(--c-red);
}

.c-label span {
	padding-left: 5px;
}

@media (max-width: 767px) {
	.c-label {
		font-size: 12px;
	}

	.c-label .ac-icon {
		width: 13px;
		height: 13px;
		margin: 0 1.625px;
	}
}

/* ==========================================================================
   トップページ
   ========================================================================== */
.site-main {
	overflow-x: clip;
}

/* メインビジュアル（3枚を 2.5秒ごとにフェードで切り替え） */
.tp-hero {
	position: relative;
	height: calc(95vh + 10px);
	padding: 5px;
}

.tp-hero__slides {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.tp-hero__slide {
	position: absolute;
	inset: 0;
	background-position: center center;
	background-size: cover;
	opacity: 0;
	transition: opacity 0.5s;
}

.tp-hero__slide.is-active {
	opacity: 1;
}

/* セクション共通 */
.tp-sec {
	position: relative;
	display: flex;
	flex-direction: column;
	background-color: var(--c-bg);
}

.tp-sec__inner {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
}

.tp-title {
	position: relative;
	z-index: 25;
	color: var(--c-text);
	font-family: var(--f-en);
	font-size: 182px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.03em;
}

.tp-num {
	position: absolute;
	z-index: 0;
	margin: 0;
	color: var(--c-bg-2);
	font-family: var(--f-num);
	font-size: 500px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -5px;
	pointer-events: none;
}

.tp-text {
	position: relative;
	width: 750px;
	max-width: 100%;
	font-size: 16px;
	line-height: 1.8em;
	letter-spacing: 0.04em;
}

/* 01 COMPANY */
.tp-company {
	min-height: 950px;
	padding-bottom: 120px;
}

.tp-company .tp-sec__inner {
	justify-content: center;
}

.tp-company__num {
	right: 0;
	bottom: 0;
}

.tp-company__box {
	position: relative;
	z-index: 20;
	display: flex;
	flex-direction: column;
	align-self: center;
	width: 100%;
	padding: 60px 40px 20px;
}

.tp-company__text {
	position: relative;
	z-index: 10;
	margin: 40px 0;
	padding: 8px;
	font-size: 20px;
	line-height: 2.5em;
	letter-spacing: 0.04em;
	text-align: center;
}

.tp-company__title {
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	color: var(--c-bg-2);
	text-align: center;
}

.tp-company__more {
	position: relative;
	z-index: 10;
	align-self: center;
	width: 50%;
}

/* 02 NEWS */
.tp-news {
	min-height: 930px;
	padding: 120px 0;
}

.tp-news .tp-sec__inner {
	justify-content: center;
}

.tp-news__title {
	text-align: right;
}

.tp-news__row {
	position: relative;
	display: flex;
	padding-top: 40px;
}

.tp-news__list {
	position: relative;
	z-index: 20;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	width: 50%;
	padding-top: 50px;
}

.tp-posts {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	margin-bottom: 30px;
}

.tp-posts__card {
	border-top: 1px solid;
}

.tp-posts__content {
	padding: 20px;
}

.tp-posts__title {
	margin-bottom: 5px;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2em;
}

.tp-posts__title a {
	color: var(--c-text);
}

.tp-posts__meta {
	margin-bottom: 15px;
	color: #7c7c7c;
	font-size: 14px;
	line-height: 1.3;
}

.tp-news__lead {
	position: relative;
	z-index: 20;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 50%;
}

.tp-news__text {
	margin: 30px 0 40px;
	padding: 8px 40px 8px 15px;
}

.tp-news__num {
	top: 0;
	left: 100px;
}

/* 03 SERVICE */
.tp-service {
	min-height: 950px;
	padding-bottom: 120px;
	background-color: var(--c-bg-2);
}

.tp-service__title {
	align-self: flex-start;
	padding: 5px 0;
	color: var(--c-white);
	letter-spacing: 0.02em;
}

.tp-service__num {
	top: 0;
	right: 20px;
	color: #dddddd;
}

.tp-service__label {
	align-self: flex-start;
	padding-left: 15px;
}

.tp-service__body {
	position: relative;
	display: flex;
	flex-direction: column;
}

.tp-service__text {
	z-index: 100;
	margin-top: 40px;
	padding: 8px;
}

.tp-service__cards {
	position: relative;
	z-index: 20;
	display: flex;
	align-items: center;
}

.tp-service__card {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	gap: 25px;
	min-width: 0;
	padding: 20px;
}

.tp-service__name {
	font-family: var(--f-en);
	font-size: 34px;
	line-height: 1.2em;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.tp-service__card--event .tp-service__name {
	padding: 5px;
}

.tp-service__img {
	text-align: center;
}

.tp-service__img img {
	display: inline-block;
}

/* 04 FLOW */
.tp-flow {
	min-height: 950px;
	padding-bottom: 120px;
	background-color: var(--c-bg-2);
}

.tp-flow__title {
	align-self: flex-end;
	padding: 5px 0;
	color: var(--c-bg);
	letter-spacing: 0.02em;
}

.tp-flow__num {
	top: 0;
	left: 20px;
	color: #dddddd;
}

.tp-flow__label {
	z-index: 10;
	align-self: flex-end;
	padding: 0 15px;
}

.tp-flow__body {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.tp-flow__text {
	z-index: 10;
	align-self: flex-end;
	margin-top: 40px;
	padding: 8px;
	text-align: right;
}

.tp-flow__visual {
	height: 50vh;
	background-size: cover;
}

/* 05 RECRUIT ／ 06 CONTACT（写真＋文章の横並び） */
.tp-recruit,
.tp-contact {
	min-height: 950px;
	padding: 120px 0;
}

.tp-recruit .tp-sec__inner,
.tp-contact .tp-sec__inner {
	justify-content: center;
}

.tp-contact__title {
	text-align: right;
}

.tp-media {
	position: relative;
	z-index: 20;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 50px;
	margin-top: 40px;
}

.tp-media__img {
	flex: 0 1 auto;
	min-width: 0;
	text-align: center;
}

.tp-media__img img {
	display: inline-block;
}

.tp-media__col {
	position: relative;
	z-index: 20;
	display: flex;
	flex-direction: column;
	flex: 0 1 50%;
	min-width: 0;
}

.tp-media__text {
	margin: 40px 0;
	padding: 8px;
}

.tp-recruit__num {
	top: 0;
	right: 20px;
}

.tp-contact__num {
	top: 0;
	left: 20px;
}

/* トップ：タブレット */
@media (max-width: 1024px) {
	.tp-title {
		font-size: 48px;
	}

	.tp-text,
	.tp-company__text {
		font-size: 15px;
		line-height: 1.5em;
	}

	.tp-service__name {
		font-size: 28px;
		letter-spacing: 0.06em;
	}

	.tp-service__img {
		margin-top: 20px;
	}

	.tp-posts {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* トップ：スマホ */
@media (max-width: 767px) {
	.tp-hero {
		height: calc(70vh + 10px);
		margin-top: 55px;
	}

	.tp-title {
		font-size: 56px;
		line-height: 1.2em;
		letter-spacing: 0.05em;
	}

	.tp-num {
		font-size: 300px;
		line-height: 1.2em;
	}

	.tp-text,
	.tp-company__text {
		font-size: 14px;
	}

	.c-more {
		width: 100%;
	}

	/* 01 */
	.tp-company {
		min-height: 585px;
		padding: 0;
	}

	.tp-company__box {
		padding: 30px 20px;
	}

	.tp-company__text {
		margin: 0;
		padding: 0;
		line-height: 2em;
	}

	.tp-company__more {
		width: 100%;
		margin-top: 20px;
	}

	/* 02 */
	.tp-news {
		min-height: 770px;
		padding: 80px 20px;
	}

	.tp-news__row {
		flex-direction: column-reverse;
		padding-top: 0;
	}

	.tp-news__list,
	.tp-news__lead {
		width: 100%;
	}

	.tp-news__list {
		padding-top: 0;
	}

	.tp-news__text {
		width: 100%;
		margin: 32px 0;
		padding: 0;
	}

	.tp-posts {
		grid-template-columns: repeat(1, 1fr);
	}

	.tp-posts__title {
		font-size: 14px;
	}

	.tp-posts__meta {
		font-size: 10px;
	}

	.tp-news__num {
		left: 0;
	}

	/* 03 */
	.tp-service {
		padding: 80px 20px;
	}

	.tp-service__title,
	.tp-flow__title {
		padding: 0 0 5px;
		font-size: 63px;
	}

	.tp-service__num {
		right: 0;
		z-index: 0;
	}

	.tp-service__label {
		align-self: flex-end;
		padding-left: 0;
	}

	.tp-service__body {
		z-index: 20;
		margin-top: 30px;
	}

	.tp-service__text {
		margin: 0 0 32px;
		padding: 0;
	}

	.tp-service__cards {
		flex-wrap: wrap;
		gap: 30px 0;
	}

	.tp-service__card {
		flex: 0 1 48%;
		gap: 10px;
		padding: 10px;
	}

	.tp-service__card--event {
		gap: 0;
		border-right: 1px solid var(--c-text);
	}

	.tp-service__card--event .tp-service__name {
		padding: 5px;
	}

	.tp-service__name {
		font-size: 22px;
	}

	.tp-service__img {
		margin-top: 0;
	}

	.tp-service__more {
		justify-content: center;
		margin-top: 20px;
	}

	.tp-service__more a {
		width: 145px;
	}

	/* 04 */
	.tp-flow {
		min-height: 0;
		padding: 80px 20px;
	}

	.tp-flow__num {
		left: 0;
	}

	.tp-flow__label {
		padding: 0 15px;
	}

	.tp-flow__body {
		z-index: 20;
		margin-top: 30px;
	}

	.tp-flow__text {
		margin: 0 0 32px;
		padding: 0;
	}

	.tp-flow__visual {
		height: 21vh;
	}

	.tp-flow__body .c-more {
		margin-top: 20px;
	}

	/* 05 / 06 */
	.tp-recruit,
	.tp-contact {
		min-height: 850px;
		padding: 80px 20px;
	}

	.tp-media {
		flex-direction: column;
		gap: 0;
		margin-top: 30px;
	}

	.tp-contact__row {
		flex-direction: column-reverse;
	}

	.tp-media__img,
	.tp-media__col {
		flex: 0 0 auto;
		width: 100%;
	}

	.tp-media__img img {
		width: 100%;
	}

	.tp-media__text {
		width: 100%;
		margin: 0 0 32px;
		padding: 20px 0 0;
	}

	.tp-contact__num {
		left: 0;
	}
}

/* ==========================================================================
   下層ページ共通
   ========================================================================== */

/* 「TOP ー 〇〇」＋大きな英字タイトル＋黄色い線 */
.pg-hero {
	display: flex;
	flex-direction: column;
	margin-top: 120px;
}

.pg-hero--mb {
	margin-bottom: 120px;
}

.pg-hero__inner {
	width: 100%;
	max-width: 1390px;
	margin: 0 auto;
	padding: 20px 20px 0;
}

.pg-hero__crumb {
	padding-left: 8px;
	font-family: var(--f-en);
	font-size: 14px;
	letter-spacing: 0.04em;
}

.pg-hero__crumb a {
	color: inherit;
}

.pg-hero__title {
	padding-top: 40px;
	font-family: var(--f-en);
	font-size: 140px;
	font-weight: 600;
	line-height: 1;
}

.pg-hero--news .pg-hero__title {
	font-weight: 500;
}

.pg-hero__line {
	display: flex;
	padding: 15px 0;
}

.pg-hero__line span {
	display: block;
	width: 65%;
	border-top: 2px solid #fff900;
}

.pg-hero--news .pg-hero__line span {
	width: 60%;
}

/* 本文エリア（左右 40px の余白で、中身は最大 1140px） */
.pg-body {
	padding: 40px;
}

.pg-body__inner {
	display: flex;
	flex-direction: column;
	max-width: 1140px;
	margin: 0 auto;
}

/* 表（会社概要・採用情報） */
.c-table-title {
	margin: 10px 0 40px;
	padding-left: 40px;
	font-size: 32px;
	letter-spacing: 0.02em;
}

.c-table__row {
	display: flex;
	padding: 40px;
	border-bottom: 1px solid var(--c-text);
}

.c-table__row:first-child {
	border-top: 1px solid var(--c-text);
}

.c-table__label {
	flex-shrink: 0;
	width: 20%;
	max-width: 20%;
	padding-top: 2px;
	color: var(--c-text);
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
}

.c-table__value {
	width: 80%;
	max-width: 80%;
	font-size: 18px;
	line-height: 1.6em;
}

.c-ext {
	display: inline-block;
	width: 1em;
	height: 1em;
	font-size: 0.875em;
	vertical-align: -0.0714em;
	overflow: visible;
}

/* 会社概要：所在地 */
.co-offices {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.co-office__line {
	font-size: 18px;
	line-height: 1.4em;
}

.co-office__map a {
	color: var(--c-red-dark);
	transition: color 0.5s;
}

.co-office__map a:hover {
	color: var(--c-text);
}

/* 会社概要：事業内容（黒い四角のリスト） */
.co-business {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.c-list li {
	display: flex;
	align-items: center;
}

.c-list__icon {
	position: relative;
	display: flex;
	flex-shrink: 0;
	justify-content: center;
	width: 17.5px;
	color: var(--c-text);
}

.c-list__icon .ac-icon {
	width: 14px;
	height: 14px;
}

.c-list__text {
	padding-left: 5px;
	color: var(--c-text);
	font-size: 18px;
	line-height: 1.6em;
}

.c-list--top li {
	align-items: flex-start;
}

.c-list--top .c-list__icon {
	top: 8px;
}

.c-list--small .c-list__text {
	font-size: 14px;
}

/* 採用：CONTACT の行 */
.rc-contact {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 75%;
}

.rc-contact__item {
	font-size: 18px;
	font-weight: 400;
	line-height: 1;
}

.rc-contact__item a {
	color: inherit;
}

.rc-more {
	display: flex;
	flex-direction: column;
	max-width: 1140px;
	margin: 0 auto;
	padding-top: 20px;
}

.c-more--recruit {
	justify-content: center;
}

.c-more--recruit a {
	width: 450px;
	border: 1px solid;
	border-radius: 8px;
	background-color: #910106;
}

.c-more--recruit a::after {
	border-radius: 8px;
	color: #910106;
}

.c-more--recruit a:hover {
	border-color: #000000;
	background-color: #ffffff;
}

/* 下層共通：タブレット */
@media (max-width: 1024px) {
	.pg-hero__inner {
		padding: 20px 20px 40px;
	}

	.pg-hero__title {
		margin-top: 20px;
		padding-top: 0;
		font-size: 80px;
	}

	.c-table-title {
		margin: 8px 0 40px;
		font-size: 30px;
	}

	.c-table__value {
		font-size: 16px;
	}
}

/* 下層共通：スマホ */
@media (max-width: 767px) {
	.pg-hero {
		margin-top: 80px;
	}

	.pg-hero--mb {
		margin-bottom: 120px;
	}

	.pg-hero__inner {
		padding: 16px 16px 20px;
	}

	.pg-hero__crumb {
		font-size: 12px;
	}

	.pg-hero__title {
		margin-top: 12px;
		font-size: 55px;
		line-height: 1.2em;
	}

	.pg-body {
		padding: 18px;
	}

	.c-table-title {
		margin: 2px 0 22px;
		padding-left: 4px;
		font-size: 24px;
		line-height: 1.2em;
	}

	.c-table__row {
		flex-direction: column;
		justify-content: center;
		padding: 20px 10px 28px;
	}

	.c-table__label {
		width: 100%;
		max-width: 100%;
		padding: 12px 0 12px 5px;
		font-size: 18px;
		line-height: 1.3em;
	}

	.c-table__value,
	.rc-contact {
		width: 100%;
		max-width: 100%;
		padding-top: 2px;
	}

	.c-table__value--sp15 {
		font-size: 15px;
	}

	.c-table__value--sp15lh {
		font-size: 15px;
		line-height: 1.8em;
	}

	.c-table__value--sp14 {
		font-size: 14px;
		line-height: 1.8em;
	}

	.co-office__line {
		font-size: 14px;
	}

	.c-list__text {
		font-size: 14px;
	}

	.c-list--top .c-list__icon {
		top: 5px;
	}

	.c-list--sp-top li {
		align-items: flex-start;
	}

	.c-list--sp-top .c-list__icon {
		top: 5px;
	}

	.c-list--small li {
		align-items: flex-start;
	}

	.c-list--small .c-list__icon {
		top: 3px;
	}

	.c-list--small .c-list__text {
		font-size: 12px;
	}

	.rc-contact,
	.co-offices,
	.co-business {
		padding-top: 0;
	}

	.rc-contact__item {
		font-size: 15px;
		line-height: 1.2em;
	}

	.c-more--recruit a {
		width: 250px;
	}
}

/* 元サイトで画像用 CSS が無いページのロゴ（inc/setup.php の ac-logo-inline） */
.ac-logo-inline .hd-pc__logo img,
.ac-logo-inline .hd-sp__logo img,
.ac-logo-inline .ft-brand__logo img,
.ac-logo-inline .ac-menu__logo img {
	display: inline;
	vertical-align: baseline;
}

/* ==========================================================================
   お問い合わせ
   ========================================================================== */
.ct-intro {
	display: flex;
	justify-content: center;
}

.ct-intro p {
	padding: 30px 0 50px;
	font-size: 16px;
	line-height: 1.8em;
	letter-spacing: 0.4px;
}

.ct-body {
	max-width: 1140px;
	margin: 0 auto;
}

.ct-tabs {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ct-tabs__heading {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}

.ct-tabs__title {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	padding: 20px;
	border: 0;
	border-radius: 3px;
	background-color: #888888;
	color: #ffffff;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	text-align: center;
	cursor: pointer;
	transition: background-color 0.3s;
}

.ct-tabs__title span {
	display: flex;
	align-items: center;
}

.ct-tabs__title[aria-selected="true"],
.ct-tabs__title:hover {
	background-color: #ba0101;
}

.ct-tabs__title:focus-visible {
	outline: 2px solid var(--c-text);
	outline-offset: 2px;
}

.ct-tabs__panel {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 80px 0;
}

.ct-tabs__panel[hidden] {
	display: none;
}

.ct-form {
	width: 55%;
	max-width: 55%;
}

/* フォーム（元サイトの追加 CSS と同じ指定） */
.ct-form input[type="email"],
.ct-form input[type="tel"],
.ct-form input[type="text"],
.ct-form select,
.ct-form textarea {
	width: 100%;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid #cccccc;
	border-radius: 4px;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.5;
	transition: all 0.3s;
}

.ct-form input,
.ct-form select,
.ct-form textarea,
.ct-form button {
	margin: 0;
}

.ct-form select {
	display: block;
	line-height: normal;
}

/* ご利用日は元サイトでも追加 CSS の対象外で、テーマ標準の見た目のまま */
.ct-form input[type="date"] {
	width: 100%;
	padding: 8px 16px;
	border: 1px solid #666666;
	border-radius: 3px;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.5;
	transition: all 0.3s;
}

.ct-form label {
	display: inline-block;
	line-height: 1;
	vertical-align: middle;
}

.ct-form .wpcf7-form p {
	margin: 0 0 20px;
}

.ct-form .wpcf7-form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
}

.ct-form .c-label-text {
	display: inline-flex;
	align-items: center;
}

.ct-form .wpcf7-form .wpcf7-list-item label {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: 4px;
	font-weight: normal;
}

.ct-form .c-optional {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 6px;
	border-radius: 2px;
	background: #e0e0e0;
	color: #555555;
	font-size: 11px;
	line-height: 1.4;
}

.ct-form .wpcf7-form textarea {
	min-height: 160px;
	overflow: auto;
	resize: vertical;
}

.ct-form .wpcf7-form .wpcf7-list-item {
	display: inline-block;
	margin-right: 16px;
}

.ct-form .c-terms {
	font-size: 13px;
}

.ct-form .c-terms .wpcf7-list-item label {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: 6px;
	font-weight: normal;
}

.ct-form .c-submit-wrap {
	margin-top: 30px;
}

.ct-form .wpcf7 form .wpcf7-submit {
	display: block;
	width: 100%;
	padding: 16px 0;
	border: none;
	border-radius: 3px;
	background: #000000;
	color: #ffffff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.1em;
	text-align: center;
	white-space: nowrap;
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.1s ease;
}

.ct-form .wpcf7 form .wpcf7-submit:hover {
	opacity: 0.9;
	transform: translateY(1px);
}

.ct-form .wpcf7 form .wpcf7-submit:active {
	transform: translateY(2px);
}

.ct-form a {
	color: var(--c-text);
}

@media (max-width: 767px) {
	.ct-intro p {
		margin: 0 10px;
	}

	.ct-tabs__heading {
		gap: 20px;
	}

	.ct-tabs__title {
		padding: 15px;
		border-radius: 2px;
	}

	.ct-form .wpcf7-form label {
		font-size: 13px;
	}
}

/* ==========================================================================
   投稿カード一覧（NEWS：acp ／ EVENT の施工事例：acr）
   元サイトの自作ウィジェットと同じ指定
   ========================================================================== */
.acp-root,
.acr-root {
	--acp-red: #b8272c;
	--acp-card-bg: #f5f4f2;
	--acp-tab-bg: #eeedeb;
	--acp-text: #333333;
	--acp-muted: #9a9a9a;
	--acp-gap: 26px;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 16px;
}

/* カテゴリータブ */
.acp-tabs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	min-height: 46px;
	margin: 0 0 34px;
	padding: 0;
}

.acp-tab {
	display: inline-block;
	margin: 0;
	padding: 15px 26px;
	border-radius: 4px;
	background-color: var(--acp-tab-bg);
	color: var(--acp-red);
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.acp-tab:hover,
.acp-tab:focus {
	background-color: #e4e2df;
	color: var(--acp-red);
}

.acp-tab.is-active,
.acp-tab.is-active:hover,
.acp-tab.is-active:focus {
	background-color: var(--acp-red);
	color: #ffffff;
}

.acp-tab:focus-visible {
	outline: 2px solid var(--acp-red);
	outline-offset: 2px;
}

/* グリッド */
.acp-grid,
.acr-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--acp-gap);
	margin: 0;
	padding: 0;
}

.acp-card,
.acr-card {
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: var(--acp-card-bg);
}

.acp-link,
.acr-link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
}

.acp-link:hover,
.acr-link:hover {
	color: inherit;
}

.acp-thumb,
.acr-thumb {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #dedcd9;
}

.acp-thumb img,
.acr-thumb img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.acp-card:hover .acp-thumb img,
.acr-card:hover .acr-thumb img {
	transform: scale(1.05);
}

.acp-noimg,
.acr-noimg {
	position: absolute;
	inset: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #b3b0ac;
	font-size: 13px;
	letter-spacing: 0.08em;
}

.acp-body,
.acr-body {
	flex: 1 1 auto;
	padding: 24px 22px 28px;
}

.acp-title,
.acr-title {
	margin: 0 0 10px;
	padding: 0;
	color: var(--acp-red);
	font-size: 21px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: normal;
	word-spacing: normal;
	text-transform: none;
	transition: opacity 0.2s ease;
}

.acp-card:hover .acp-title,
.acr-card:hover .acr-title {
	opacity: 0.75;
}

.acp-date,
.acr-date {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 0;
	padding: 0;
	color: var(--acp-muted);
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: normal;
}

.acp-date {
	margin-bottom: 16px;
}

.acp-date .ac-icon,
.acr-date .ac-icon {
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
}

.acp-excerpt {
	margin: 0;
	padding: 0;
	color: var(--acp-text);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: normal;
}

.acp-msg,
.acr-msg {
	grid-column: 1 / -1;
	margin: 0;
	padding: 60px 20px;
	color: #777777;
	font-size: 15px;
	line-height: 1.9;
	text-align: center;
}

/* ページ送り */
.acp-pager,
.acr-pager {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin: 44px 0 0;
}

.acp-pager:empty,
.acr-pager:empty {
	min-height: 0;
	margin: 0;
}

.acp-page,
.acr-page {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	min-width: 44px;
	height: 44px;
	margin: 0;
	padding: 0 14px;
	border-radius: 4px;
	background-color: var(--acp-tab-bg);
	color: var(--acp-red);
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	transition: background-color 0.2s ease, color 0.2s ease;
}

a.acp-page:hover,
a.acr-page:hover {
	background-color: #e4e2df;
	color: var(--acp-red);
}

.acp-page.is-current,
.acr-page.is-current {
	background-color: var(--acp-red);
	color: #ffffff;
}

.acp-page[aria-disabled="true"],
.acr-page[aria-disabled="true"] {
	opacity: 0.35;
}

.acp-dots,
.acr-dots {
	padding: 0 4px;
	color: var(--acp-muted);
	font-size: 15px;
	line-height: 1;
	user-select: none;
}

@media (max-width: 1024px) {
	.acp-grid,
	.acr-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.acp-title,
	.acr-title {
		font-size: 19px;
	}
}

@media (max-width: 600px) {
	.acp-root,
	.acr-root {
		--acp-gap: 20px;
		padding: 0 12px;
	}

	.acp-grid,
	.acr-grid {
		grid-template-columns: 1fr;
	}

	.acp-tabs {
		gap: 8px;
		margin-bottom: 26px;
	}

	.acp-tab {
		padding: 12px 18px;
		font-size: 14px;
	}

	.acp-body,
	.acr-body {
		padding: 20px 18px 24px;
	}

	.acp-title,
	.acr-title {
		font-size: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.acp-card:hover .acp-thumb img,
	.acr-card:hover .acr-thumb img {
		transform: none;
	}

	.acp-thumb img,
	.acr-thumb img {
		transition: none;
	}
}

/* ==========================================================================
   EVENT
   ========================================================================== */
.ev-body {
	padding: 40px;
}

.ev-body__inner {
	display: flex;
	flex-direction: column;
	max-width: 1300px;
	margin: 0 auto;
}

.ev-heading {
	font-size: 22px;
	line-height: 1.2em;
	letter-spacing: 0.02em;
}

.ev-heading--center {
	text-align: center;
}

.ev-text {
	width: 750px;
	max-width: 100%;
	padding: 20px 0;
	font-size: 16px;
	line-height: 1.7em;
	letter-spacing: 0.02em;
}

.ev-intro {
	position: relative;
	display: flex;
	padding: 20px 0;
}

.ev-intro__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 50%;
	padding: 40px 20px;
}

.ev-intro__visual {
	display: flex;
	flex-direction: column;
	width: 50%;
	padding: 40px;
}

.ev-intro__img {
	height: 70vh;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
}

.ev-points {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 20px 0;
	border-top: 1px solid;
}

.ev-points__head {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 40px 20px;
}

.ev-points__cards {
	display: flex;
	gap: 0 25px;
	padding: 40px;
}

.ev-card {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	justify-content: flex-start;
	min-width: 0;
	padding: 20px;
	border-radius: 5px;
	background-color: #ffffff;
	box-shadow: 5px 5px 1px 0 #000000;
}

.ev-card--1 {
	box-shadow: 5px 5px 0 0 #000000;
}

.ev-card__title {
	align-self: center;
	width: 100%;
	padding: 20px 0;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.7em;
	letter-spacing: 0.02em;
	text-align: center;
}

.ev-card__img img {
	display: block;
	width: 100%;
}

.ev-card__text {
	align-self: center;
	width: 100%;
	padding: 20px 0;
	font-size: 16px;
	line-height: 1.7em;
	letter-spacing: 0.02em;
}

.ev-cases {
	position: relative;
	display: flex;
	padding: 20px 0;
	border-top: 1px solid;
}

.ev-cases__visual {
	display: flex;
	flex-direction: column;
	width: 50%;
	padding: 40px;
}

.ev-cases__img {
	height: 275px;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}

.ev-cases__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 50%;
	padding: 40px 20px;
}

.ev-list {
	display: flex;
	flex-direction: column;
	padding: 20px 0;
}

@media (max-width: 1024px) {
	.ev-body {
		padding: 20px;
	}

	.ev-heading {
		margin: 8px 0 20px;
		font-size: 24px;
	}

	.ev-points__head .ev-heading {
		margin: 8px 0 12px;
	}

	.ev-text,
	.ev-card__title,
	.ev-card__text {
		padding: 0;
		font-size: 15px;
		line-height: 1.5em;
	}

	.ev-intro__text,
	.ev-cases__text,
	.ev-points__head {
		justify-content: flex-start;
		padding: 20px;
	}

	.ev-intro__visual,
	.ev-cases__visual,
	.ev-points__cards {
		padding: 20px;
	}

	.ev-intro__img {
		height: 221px;
	}

	.ev-points,
	.ev-cases {
		flex-direction: row;
		align-items: center;
	}

	.ev-cases__img {
		height: 400px;
	}

	.ev-cases__text .ev-heading {
		margin: 8px 0 12px;
	}

	/* 元サイトのタブレット表示と同じく、見出しと3枚のカードを左右に半分ずつ並べる */
	.ev-points__head,
	.ev-points__cards {
		width: 100%;
		min-width: 0;
	}

	/* 施工事例一覧は中身の幅まで縮む（元サイトと同じ） */
	.ev-list {
		flex-direction: row;
		align-items: center;
	}

	.ev-list .acr-root {
		width: auto;
		margin: 0;
	}
}

@media (max-width: 767px) {
	.ev-body {
		padding: 10px;
	}

	.ev-heading,
	.ev-points__head .ev-heading,
	.ev-cases__text .ev-heading {
		margin: 2px 0 18px;
		padding-left: 4px;
		font-size: 18px;
	}

	.ev-text {
		padding: 4px 4px 28px;
		font-size: 14px;
		line-height: 1.8em;
	}

	.ev-intro {
		flex-direction: column-reverse;
		padding: 0;
	}

	.ev-intro__text {
		width: 100%;
		padding: 28px 0 0;
	}

	.ev-intro__visual {
		width: 100%;
		padding: 20px 0 0;
	}

	.ev-intro__img {
		height: 70vh;
		background-size: cover;
	}

	.ev-points,
	.ev-cases {
		flex-direction: column;
		align-items: stretch;
		padding: 0;
	}

	.ev-points__head {
		padding: 28px 0 0;
	}

	.ev-points__cards {
		flex-direction: column;
		gap: 15px 0;
		padding: 30px 0 0;
	}

	.ev-card__title {
		padding: 15px 4px 5px;
		font-size: 16px;
		line-height: 1.8em;
	}

	.ev-card--3 .ev-card__title {
		padding: 15px 4px 4px;
	}

	.ev-card__text {
		padding: 4px 4px 28px;
		font-size: 14px;
		line-height: 1.8em;
	}

	.ev-cases__visual {
		width: 100%;
		padding: 30px 0 0;
	}

	.ev-cases__img {
		height: 180px;
	}

	.ev-cases__text {
		width: 100%;
		padding: 28px 0 0;
	}

	.ev-list {
		flex-direction: column;
		align-items: center;
		margin-top: 30px;
		padding: 0;
	}

	.ev-list .acr-root {
		width: 100%;
		margin: 0 auto;
	}
}

/* ==========================================================================
   投稿の詳細
   ========================================================================== */
.sg {
	display: flex;
	flex-direction: column;
	min-height: 360px;
	margin-top: 120px;
	padding-top: 100px;
}

.sg__inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
}

.sg__title {
	padding-left: 30px;
	font-size: 26px;
	font-weight: 600;
	line-height: 1;
}

.sg__title a {
	color: var(--c-text);
}

.sg__line {
	display: flex;
	padding: 15px 0;
}

.sg__line span {
	display: block;
	width: 100%;
	border-top: 1px solid #000000;
}

.sg__text {
	padding: 50px;
	font-size: 18px;
	font-weight: 600;
	line-height: 1;
}

/* 写真の上に文章がある記事（入力画面の「文章」） */
.sg__text--lead {
	padding: 30px 30px 40px;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.9;
}

.sg__text--lead p + p {
	margin-top: 1em;
}

/* 行の高さをそろえて敷き詰めるギャラリー（配置は main.js が計算する） */
.c-jg {
	position: relative;
	margin: 0 -10px;
	overflow: hidden;
}

.c-jg:not(.is-ready) {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	padding: 10px;
}

.c-jg:not(.is-ready) .c-jg__item {
	flex: 1 1 200px;
	height: 145px;
}

.c-jg__item {
	position: absolute;
	display: block;
	overflow: hidden;
	border-radius: 3px;
}

.c-jg:not(.is-ready) .c-jg__item {
	position: relative;
}

.c-jg__item img {
	position: absolute;
	top: 50%;
	left: 50%;
	max-width: none;
	border-radius: 3px;
	transition: transform 0.3s;
}

.c-jg:not(.is-ready) .c-jg__item img {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.c-jg__item:hover img {
	transform: scale(1.1);
}

/* 拡大表示 */
.c-lightbox {
	position: fixed;
	inset: 0;
	z-index: 2000000000;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: rgba(11, 11, 11, 0.8);
}

.c-lightbox[hidden] {
	display: none;
}

.c-lightbox__figure {
	margin: 0;
	text-align: right;
}

.c-lightbox__img {
	display: block;
	max-width: 90vw;
	max-height: 85vh;
	box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
}

.c-lightbox__count {
	padding-top: 6px;
	color: #cccccc;
	font-size: 12px;
	line-height: 18px;
}

.c-lightbox__close,
.c-lightbox__prev,
.c-lightbox__next {
	position: absolute;
	border: 0;
	background: none;
	color: #ffffff;
	line-height: 1;
	opacity: 0.65;
	cursor: pointer;
}

.c-lightbox__close:hover,
.c-lightbox__prev:hover,
.c-lightbox__next:hover {
	opacity: 1;
}

.c-lightbox__close {
	top: 10px;
	right: 14px;
	font-size: 36px;
}

.c-lightbox__prev,
.c-lightbox__next {
	top: 50%;
	padding: 20px;
	font-size: 60px;
	transform: translateY(-50%);
}

.c-lightbox__prev {
	left: 0;
}

.c-lightbox__next {
	right: 0;
}

@media (max-width: 767px) {
	.sg {
		margin-top: 80px;
		padding: 0 20px;
	}

	.sg__title {
		line-height: 1.2em;
	}

	.sg__text {
		line-height: 1.2em;
	}

	.sg__text--lead {
		padding: 20px 0 30px;
		font-size: 15px;
		line-height: 1.8;
	}
}

/* ==========================================================================
   FLOW・STUDIO 共通パーツ
   ========================================================================== */
.c-anchor {
	height: 0;
}

/* 上下に線のある見出し */
.c-boxhead {
	display: flex;
	flex-direction: column;
	padding: 20px;
	border-top: 1px solid var(--c-text);
	border-bottom: 1px solid var(--c-text);
}

.c-boxhead h2 {
	font-size: 32px;
	letter-spacing: 0.02em;
}

.c-boxhead--center {
	align-items: center;
	margin-bottom: 10px;
}

/* 左に赤い線のある小見出し */
.c-barhead {
	margin-bottom: 15px;
	padding-left: 5px;
	border-left: 3px solid #910106;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
}

/* 赤いボタン（右に矢印アイコン） */
.c-rbtns {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 10px;
}

.c-rbtn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	width: 350px;
	height: 70px;
	padding: 10px;
	border-radius: 2px;
	background-color: var(--c-red);
	color: var(--c-white);
	font-family: var(--f-inter);
	font-size: 20px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.12em;
	text-align: center;
	transition: transform 0.3s;
}

.c-rbtn:hover,
.c-rbtn:focus {
	color: var(--c-white);
	transform: scale(0.9);
}

.c-rbtn .ac-icon {
	flex-shrink: 0;
	width: 1em;
	height: 1em;
}

.c-bluelink {
	color: #0000ff;
	text-decoration: underline;
}

/* タイムライン（STEP 1, 2, 3 …） */
.c-timeline {
	--tl-line: #e9e9e9;
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.c-timeline--light {
	--tl-line: #f7f7f7;
}

.c-timeline__item {
	position: relative;
	display: flex;
	margin-bottom: 60px;
}

.c-timeline__item:nth-child(even) {
	flex-direction: row-reverse;
}

/* 縦線（次の STEP の点までつなぐ） */
.c-timeline__item:not(:last-child)::before {
	content: "";
	position: absolute;
	top: 0;
	left: calc(50% - 2px);
	width: 4px;
	height: calc(100% + 60px);
	background-color: var(--tl-line);
}

.c-timeline__card {
	flex: 1 1 0;
	min-width: 0;
	padding-right: 15px;
}

.c-timeline__item:nth-child(even) .c-timeline__card {
	padding-right: 0;
	padding-left: 15px;
}

.c-timeline__content {
	padding: 30px;
	border-radius: 5px;
	background-color: #f7f7f7;
}

.c-timeline__point {
	position: relative;
	z-index: 1;
	flex: 0 0 12px;
	height: 12px;
}

.c-timeline__point span {
	display: block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background-color: #393939;
}

.c-timeline__side {
	display: flex;
	flex: 1 1 0;
	min-width: 0;
	padding: 0 10px;
}

.c-timeline__item:nth-child(even) .c-timeline__side {
	justify-content: flex-end;
}

.c-timeline__meta {
	margin: 0 10px;
	font-size: 16px;
	line-height: 16.8px;
}

.c-timeline__item:nth-child(even) .c-timeline__side .c-timeline__meta {
	margin: 0 10px 0 0;
	text-align: right;
}

.c-timeline__meta--sp {
	display: none;
}

/* FLOW */
.c-nav-sec {
	margin-bottom: 60px;
}

.c-nav-sec__inner {
	display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	align-items: center;
	gap: 10px;
	max-width: 1300px;
	margin: 0 auto;
}

.c-nav-sec__inner > .c-boxhead {
	width: 100%;
}

.fl-sec {
	padding: 0 40px 40px;
}

.fl-sec__inner {
	display: flex;
	flex-direction: column;
	max-width: 1300px;
	margin: 0 auto;
}

.fl-sec__body {
	display: flex;
	flex-direction: column;
	padding-top: 50px;
}

@media (max-width: 1024px) {
	.c-boxhead h2 {
		margin: 8px 0 10px;
		font-size: 30px;
	}

	.c-rbtn {
		width: 212px;
		height: 50px;
		margin-top: 40px;
		padding: 13px 10px 10px;
		font-size: 18px;
	}

	.fl-sec {
		padding: 20px;
	}

	/* タイムライン：タブレット以下は点を左、枠は中身の幅（元サイトと同じ） */
	.c-timeline__item,
	.c-timeline__item:nth-child(even) {
		flex-direction: row;
	}

	.c-timeline__item:not(:last-child)::before {
		left: 18px;
	}

	.c-timeline__point {
		order: -1;
	}

	.c-timeline__card,
	.c-timeline__item:nth-child(even) .c-timeline__card {
		flex: 0 1 auto;
		padding: 0;
	}

	.c-timeline__side {
		display: none;
	}

	.c-timeline__meta--sp {
		display: block;
		margin: 0;
	}
}

@media (max-width: 767px) {
	.pg-hero--mb {
		margin-bottom: 0;
	}

	.c-boxhead h2 {
		margin: 0;
		font-size: 24px;
		line-height: 1.2em;
	}

	.c-boxhead--center {
		width: 80% !important;
		padding: 10px;
	}

	.c-boxhead--center h2 {
		font-size: 18px;
	}

	.c-barhead {
		font-size: 14px;
		line-height: 1.2em;
	}

	.c-rbtns {
		flex-direction: column;
		gap: 0;
		width: 100%;
	}

	.c-rbtn {
		width: 192px;
		margin-top: 0;
		font-size: 16px;
		letter-spacing: 0.06em;
	}

	.c-rbtn + .c-rbtn {
		margin-top: 10px;
	}

	.fl-sec {
		padding: 10px;
	}

	.fl-sec__body {
		padding-top: 40px;
	}

	.c-timeline__point {
		margin: 0 14px;
	}

	.c-timeline__content {
		padding: 20px;
	}
}

/* ==========================================================================
   RENTAL
   ========================================================================== */
.ev-intro--rental .ev-intro__img {
	height: 275px;
	background-size: cover;
}

.ev-cases--rental {
	align-items: center;
}

.ev-text--mt {
	align-self: center;
	margin-top: 30px;
}

/* 紺のボタン（施工事例一覧の Read More） */
.c-more--navy a {
	width: 450px;
	border-radius: 8px;
	background-color: #0f172b;
}

.c-more--navy a::after {
	border-radius: 8px;
}

.c-more--navy a:hover {
	background-color: #910106;
}

/* LINE UP */
.rt-lineup {
	padding: 60px 0;
}

.rt-lineup__inner {
	display: flex;
	flex-direction: column;
	max-width: 1140px;
	margin: 0 auto;
}

.rt-lineup__title {
	font-family: var(--f-inter);
	font-size: 58px;
	line-height: 1.2em;
	letter-spacing: 0.12em;
	text-align: center;
}

.c-boxhead--lineup {
	margin-top: 60px;
	padding: 28px;
}

.c-boxhead--lineup h2 {
	font-size: 28px;
	text-align: center;
}

.rt-lineup__lead {
	align-self: center;
	margin-top: 30px;
	text-align: center;
}

.rt-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: repeat(3, 1fr);
	grid-auto-flow: row;
	gap: 20px;
	margin-top: 30px;
}

.rt-item {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 12px;
}

.rt-item__img {
	text-align: center;
}

.rt-item__img img {
	display: inline-block;
	width: 300px;
	border: 1px solid #d2d2d2;
}

.rt-item__cat {
	padding: 8px;
	color: #969696;
	font-family: var(--f-inter);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.2em;
	letter-spacing: 0.04em;
}

.rt-item__cat--l {
	font-size: 14px;
}

.rt-item__name {
	padding: 0 8px 8px;
	font-family: var(--f-inter);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.2em;
	letter-spacing: 0.04em;
}

.rt-item__name--solo {
	padding: 10px 8px 8px;
}

/* よくある質問 */
.rt-faq {
	margin-top: 80px;
}

.rt-faq__inner {
	display: flex;
	flex-direction: column;
	max-width: 1140px;
	margin: 0 auto;
}

.rt-faq__head {
	padding: 32px 20px;
	background-color: #efefef;
}

.rt-faq__head h2 {
	font-size: 28px;
	line-height: 1.4em;
	letter-spacing: 0.04em;
	text-align: center;
}

.rt-faq__body {
	padding: 32px 20px;
}

.rt-faq__item {
	position: relative;
	overflow: hidden;
}

.rt-faq__q {
	padding: 15px 20px;
	border-top: 1px solid #e1e1e1;
	border-bottom: 1px solid #e1e1e1;
	background-color: var(--c-white);
}

.rt-faq__q h3 {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2em;
}

.rt-faq__a {
	padding: 20px;
}

@media (max-width: 1024px) {
	.ev-intro--rental .ev-intro__img {
		height: 221px;
	}

	.rt-lineup__inner {
		padding: 12px;
	}

	.rt-lineup__title {
		font-size: 48px;
	}

	.c-boxhead--lineup {
		padding: 18px;
	}

	.c-boxhead--lineup h2 {
		font-size: 24px;
	}

	.rt-lineup__lead {
		padding: 0;
	}

	.rt-grid {
		gap: 10px;
	}

	.rt-item {
		padding: 10px;
	}

	.rt-item__img img {
		width: 260px;
	}

	.rt-item__cat {
		font-size: 12px;
	}
}

@media (max-width: 767px) {
	.ev-intro--rental .ev-intro__img {
		height: 180px;
	}

	.ev-text--mt {
		margin-top: 0;
	}

	.c-more--navy {
		justify-content: center;
	}

	.c-more--navy a {
		width: 250px;
	}

	.rt-lineup {
		padding: 0;
	}

	.rt-lineup__inner {
		margin-top: 40px;
	}

	.rt-lineup__title {
		font-size: 36px;
		letter-spacing: 0.05em;
	}

	.c-boxhead--lineup {
		margin-top: 20px;
		padding: 14px 12px;
	}

	.c-boxhead--lineup h2 {
		margin: 0;
		font-size: 20px;
	}

	.rt-lineup__lead {
		margin-top: 0;
		padding: 4px 4px 28px;
	}

	.rt-grid {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: repeat(1, 1fr);
		gap: 1px;
		margin-top: 20px;
	}

	.rt-item {
		padding: 8px;
	}

	.rt-item__img img {
		width: 200px;
	}

	.rt-item__cat,
	.rt-item__cat--l {
		font-size: 14px;
	}

	.rt-item__cat--sp-a {
		padding: 8px 0 0;
		font-size: 12px;
	}

	.rt-item__cat--sp-b {
		padding: 4px;
		font-size: 11px;
	}

	.rt-item__cat--sp-c {
		padding: 8px 4px 4px;
		font-size: 12px;
	}

	.rt-item__name,
	.rt-item__name--solo {
		padding: 4px 0 0;
		font-size: 16px;
	}

	.rt-faq {
		margin-top: 0;
	}

	.rt-faq__head {
		margin-top: 20px;
		padding: 20px 0;
	}

	.rt-faq__head h2 {
		font-size: 17px;
		letter-spacing: 0.02em;
	}

	.rt-faq__body {
		margin-top: 20px;
		padding: 0;
	}

	.rt-faq__q h3 {
		font-size: 16px;
		line-height: 1.4em;
	}

	.rt-faq__a {
		font-size: 14px;
		line-height: 1.4em;
	}
}

/* ==========================================================================
   PRODUCTS
   ========================================================================== */
.ev-intro--full .ev-intro__text {
	width: 100%;
}

.ev-text--full {
	width: 100%;
}

.c-ext--xs {
	font-size: 0.75em;
	vertical-align: 0.125em;
}

.pd-lineup {
	padding: 60px 0;
}

.pd-lineup__inner {
	display: flex;
	flex-direction: column;
	max-width: 1140px;
	margin: 0 auto;
}

.pd-lineup__title {
	font-family: var(--f-en);
	font-size: 58px;
	line-height: 1.2em;
	letter-spacing: 0.12em;
	text-align: center;
}

.pd-row {
	display: flex;
	justify-content: center;
	gap: 20px;
	margin-top: 40px;
}

.pd-row--start {
	justify-content: flex-start;
}

.pd-card {
	display: flex;
	flex-direction: column;
	width: 33%;
	min-width: 0;
	padding: 20px;
}

.pd-card__url {
	padding-right: 5px;
	color: var(--c-red-dark);
	font-family: var(--f-inter);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2em;
	letter-spacing: 0.04em;
	text-align: right;
}

.pd-card__url a {
	color: inherit;
	transition-duration: 0.5s;
}

.pd-card__url a:hover {
	color: var(--c-text);
}

.pd-card__img {
	height: 200px;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}

.pd-card__name {
	padding: 14px 8px 8px;
	font-family: var(--f-inter);
	font-size: 24px;
	font-weight: 500;
	line-height: 1.2em;
	letter-spacing: 0.04em;
}

.pd-card__note {
	padding: 14px 0 8px;
	color: #910106;
	font-size: 16px;
	line-height: 1.2em;
	letter-spacing: 0.04em;
	text-align: center;
}

/* 紺の小さいボタン（Download / Pick up） */
.c-more--file {
	align-self: center;
	justify-content: center;
	width: auto;
	margin-top: 20px;
}

.c-more--first {
	margin-top: 5px;
}

.c-more--file a {
	width: 220px;
	padding: 15px 0;
	border-radius: 8px;
	background-color: #0f172b;
	font-size: 15px;
}

.c-more--file a::after {
	padding: 15px 10px;
	border-radius: 8px;
	color: #fff;
	letter-spacing: 1.5px;
}

.c-more--file a:hover {
	background-color: #910106;
}

@media (max-width: 1024px) {
	.pd-lineup__title {
		font-size: 48px;
	}

	.pd-card {
		padding: 10px;
	}

	.pd-card__url {
		font-size: 18px;
	}

	.pd-card__img {
		height: 130px;
	}

	.pd-card__name,
	.pd-card__note {
		font-size: 18px;
	}
}

@media (max-width: 767px) {
	.pd-lineup {
		padding: 0;
	}

	.pd-lineup__inner {
		margin-top: 40px;
	}

	.pd-lineup__title {
		font-size: 36px;
		letter-spacing: 0.05em;
	}

	.pd-row {
		flex-wrap: wrap;
		margin-top: 20px;
	}

	.pd-card {
		width: 100%;
		padding: 20px;
	}

	.pd-card__url {
		font-size: 12px;
	}

	.pd-card__img {
		height: 190px;
	}

	.pd-card__name {
		font-size: 24px;
	}

	.pd-card__note {
		font-size: 16px;
	}

	.c-more--file {
		width: auto;
	}

	.c-more--file a {
		width: 250px;
	}
}

/* ==========================================================================
   STUDIO
   ========================================================================== */
.c-boxhead--flow {
	margin-top: 40px;
}

.c-more--flow {
	justify-content: center;
}

.c-more--flow a {
	width: 710px;
}

.c-more--flow a::after {
	color: #fff;
}

/* 拠点ごとのセクション */
.st-sec {
	padding: 100px 40px 40px;
}

.st-sec--gray {
	background-color: var(--c-bg-2);
}

.st-sec__inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	max-width: 1300px;
	margin: 0 auto;
}

.st-intro {
	position: relative;
	display: flex;
	padding: 20px 0;
}

.st-intro__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 50%;
	padding: 40px 20px;
}

.st-intro__visual {
	display: flex;
	flex-direction: column;
	width: 50%;
	padding: 40px;
}

.st-intro__visual--imgs {
	justify-content: flex-start;
}

.st-intro__img {
	height: 370px;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}

.st-intro__pic {
	text-align: center;
}

.st-intro__pic img {
	display: inline-block;
	vertical-align: middle;
}

.st-intro__pic + .st-intro__pic {
	padding-top: 5px;
}

/* 写真の帯 */
.st-slider {
	display: flex;
	padding: 40px 0;
	border-top: 1px solid;
}

.st-slider__inner {
	width: 100%;
	min-width: 0;
	padding: 40px 0;
}

.c-marquee {
	position: relative;
	max-width: 100%;
	margin: 0 auto;
	padding: 4px 0 16px;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);
	mask-image: linear-gradient(to right, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);
}

.c-marquee__track {
	display: flex;
	gap: 14px;
	width: max-content;
	animation: acMarquee var(--mq-duration, 134s) linear infinite;
}

.c-marquee:hover .c-marquee__track {
	animation-play-state: paused;
}

@keyframes acMarquee {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

.c-marquee__item {
	position: relative;
	flex: 0 0 auto;
	width: 260px;
	height: 190px;
	margin: 0;
	overflow: hidden;
	border-radius: 4px;
	cursor: pointer;
}

.c-marquee__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.c-marquee__item:hover img {
	transform: scale(1.06);
}

.c-marquee__zoom {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 52px;
	height: 52px;
	border-radius: 2px;
	background: #b8272c;
	color: #ffffff;
	font-size: 20px;
	opacity: 0;
	transform: translate(-50%, -50%);
	transition: opacity 0.25s ease;
	pointer-events: none;
}

.c-marquee__item:hover .c-marquee__zoom {
	opacity: 1;
}

/* 写真の拡大表示（ファイル名つき） */
.c-zoom {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	justify-content: center;
	align-items: center;
	padding: 64px 24px 24px;
	background: rgba(10, 10, 10, 0.92);
}

.c-zoom.is-open {
	display: flex;
}

.c-zoom__inner {
	position: relative;
	max-width: 90vw;
	max-height: 90vh;
	text-align: center;
}

.c-zoom__inner img {
	display: block;
	max-width: 90vw;
	max-height: 74vh;
	margin: 0 auto;
	border-radius: 2px;
}

.c-zoom__name {
	margin-top: 14px;
	color: #eeeeee;
	font-family: monospace;
	font-size: 14px;
	letter-spacing: 0.02em;
}

.c-zoom__close {
	position: absolute;
	top: -44px;
	right: -8px;
	z-index: 2;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	color: #ffffff;
	font-family: inherit;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
}

@media (max-width: 640px) {
	.c-marquee__item {
		width: 200px;
		height: 150px;
	}

	.c-marquee__track {
		animation-duration: var(--mq-duration-sp, 100.5s);
	}
}

@media (prefers-reduced-motion: reduce) {
	.c-marquee__track {
		animation: none;
	}

	.c-marquee {
		overflow-x: auto;
	}
}

/* 設備情報 */
.st-facility {
	display: flex;
	flex-direction: column;
	padding: 40px 0 0;
	border-top: 1px solid;
}

.st-facility--pb {
	padding-bottom: 40px;
}

.st-flabel {
	align-self: flex-start;
	margin: 0;
	padding: 5px 20px;
	background-color: #910106;
	color: var(--c-white);
	font-size: 22px;
	line-height: 1.3em;
	letter-spacing: 0.02em;
}

.st-facility__cols {
	display: flex;
}

.st-facility__col {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 10px;
	width: 50%;
	padding: 40px 20px;
}

.st-bar {
	margin: 0;
	padding-left: 5px;
	border-left: 3px solid #910106;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
}

.st-ftext {
	padding: 5px 0 20px;
}

.st-line-link {
	padding-left: 5px;
	color: #0070ff;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
}

.st-line-link a {
	color: inherit;
}

.st-line-link a:hover {
	color: var(--c-text);
}

.st-qr {
	padding-top: 20px;
	text-align: center;
}

.st-qr img {
	display: inline-block;
	width: 45%;
	vertical-align: middle;
}

/* 料金・注意事項 */
.st-price {
	padding: 0 40px;
}

.st-price--gray {
	background-color: var(--c-bg-2);
}

.st-price__inner {
	display: flex;
	flex-direction: column;
	gap: 25px;
	max-width: 1300px;
	margin: 0 auto;
	padding: 20px 0;
}

.st-price--flush .st-price__inner {
	padding: 0;
}

.st-note {
	height: 0;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
}

.st-row {
	display: flex;
	justify-content: center;
	gap: 20px;
}

.st-col {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.st-box {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	gap: 15px;
	min-width: 0;
	padding: 20px;
	border: 1px solid;
}

.st-box--mb {
	margin-bottom: 40px;
}

.st-box__text {
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6em;
}

/* こんな方にオススメ・住所・リンクの枠 */
.st-frame {
	display: flex;
	flex-direction: column;
	padding: 40px;
	border: 1px solid var(--c-text);
}

.st-label {
	width: 450px;
	max-width: 100%;
	padding: 8px;
	background-color: #910106;
	color: var(--c-white);
	font-size: 28px;
	line-height: 1.2em;
	text-align: center;
}

.st-label--dark {
	background-color: #222222;
	font-family: var(--f-en);
}

.st-reco {
	margin-bottom: 40px;
	padding: 0 40px;
}

.st-reco__inner,
.st-addr__inner,
.st-link__inner {
	display: flex;
	flex-direction: column;
	max-width: 1300px;
	margin: 0 auto;
}

.st-reco__body {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.st-reco__lists {
	display: flex;
	width: 100%;
	margin-top: 20px;
}

.st-check {
	width: 50%;
	max-width: 50%;
	padding: 20px;
}

.st-check li {
	display: flex;
	align-items: center;
}

.st-check--2 li {
	align-items: flex-start;
}

.st-check li:not(:last-child) {
	padding-bottom: 5px;
}

.st-check li:not(:first-child) {
	margin-top: 5px;
}

.st-check .ac-icon {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	margin-right: 5px;
	color: #910106;
}

.st-check span {
	padding-left: 5px;
	color: var(--c-text);
	font-size: 16px;
	line-height: 1.4em;
	letter-spacing: 0.04em;
}

.st-check--2 span {
	line-height: 1.6em;
}

/* スナックヤグチの料金（セクションの中に入っていて、指定が少し違う） */
.st-note--yaguchi {
	height: auto;
	margin-bottom: 10px;
}

.st-note--in {
	height: auto;
	text-align: right;
}

.st-row--yaguchi {
	padding-bottom: 25px;
}

.st-box--y1 {
	gap: 20px;
}

.st-box__extra {
	width: 750px;
	max-width: 100%;
	padding-top: 40px;
	font-size: 16px;
	line-height: 1.7em;
	letter-spacing: 0.02em;
}

.st-addr {
	padding: 0 40px 100px;
}

.st-addr--gray {
	background-color: var(--c-bg-2);
}

.st-addr--light {
	padding-bottom: 80px;
	background-color: #ececec;
}

.st-addr .st-frame {
	gap: 20px;
}

.st-frame__head {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.st-map iframe {
	width: 100%;
	max-width: 100%;
	height: 450px;
}

.st-link {
	margin-top: 100px;
	padding: 0 40px;
}

.st-link__body {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 50px;
}

.st-banners {
	display: flex;
	justify-content: space-evenly;
	gap: 15px;
	width: 100%;
	margin-top: 28px;
	padding-bottom: 15px;
}

.st-banner {
	display: block;
	text-align: center;
}

.st-banner img {
	display: inline-block;
	vertical-align: middle;
}

.st-banner--2 img {
	width: 184px;
}

.st-banner--3 img {
	width: 252px;
}

/* ページ上部へ戻るボタン */
.c-totop {
	position: fixed;
	right: 0;
	bottom: 0;
	z-index: 80;
	display: flex;
	padding: 10px;
	background-color: var(--c-red);
	color: var(--c-white);
	font-size: 35px;
	line-height: 1;
}

.c-totop:hover,
.c-totop:focus {
	color: var(--c-white);
}

@media (max-width: 1024px) {
	.st-sec {
		padding: 20px;
	}

	.st-intro__text {
		justify-content: flex-start;
		padding: 20px;
	}

	.st-intro__visual {
		padding: 20px;
	}

	.st-intro__img {
		height: 221px;
	}

	.st-intro__pic + .st-intro__pic {
		padding-top: 3px;
	}

	.st-text,
	.st-ftext {
		padding: 0;
	}

	.st-slider__inner {
		padding: 20px;
	}

	.st-flabel {
		margin: 8px 0 20px;
		font-size: 24px;
	}

	.st-facility__col {
		padding: 20px;
	}

	.st-reco {
		padding: 12px;
	}

	.st-frame {
		padding: 30px;
	}

	.st-label {
		width: 350px;
		font-size: 24px;
	}

	.st-reco__lists {
		flex-direction: column;
		margin-top: 28px;
	}

	.st-check {
		width: 100%;
		max-width: 100%;
		padding: 0;
	}

	.st-check--2 {
		padding-top: 10px;
	}

	.st-addr,
	.st-link {
		padding: 12px;
	}

	.st-banners {
		justify-content: space-around;
		padding-bottom: 0;
	}

	.st-banner {
		padding: 4px;
	}

	.st-box__extra {
		padding-top: 0;
		font-size: 15px;
		line-height: 1.5em;
	}

	.c-totop {
		padding: 13px 10px 10px;
		font-size: 18px;
	}
}

@media (max-width: 767px) {
	.st-sec {
		padding: 10px;
	}

	.st-intro {
		flex-direction: column;
		padding: 0;
	}

	.st-intro__text,
	.st-intro__visual {
		width: 100%;
	}

	.st-intro__text {
		padding: 28px 0 0;
	}

	.st-intro__visual {
		padding: 20px 0 0;
	}

	.st-intro__visual--imgs {
		padding: 28px 0 0;
	}

	.st-intro__img {
		height: 180px;
	}

	.st-h--2 {
		margin: 18px 0 13px;
	}

	.st-text,
	.st-ftext {
		padding: 4px;
	}

	.st-text--y {
		padding: 4px 4px 14px;
	}

	.st-slider {
		margin-top: 40px;
		padding: 0;
	}

	.st-slider__inner {
		padding: 20px 0 0;
	}

	.st-facility {
		margin-top: 40px;
		padding: 28px 0 0;
	}

	.st-flabel {
		margin: 2px 0 18px;
		padding: 3px 10px;
		font-size: 18px;
	}

	.st-facility__cols {
		flex-direction: column;
	}

	.st-facility__col {
		width: 100%;
		padding: 0;
	}

	.st-facility__col--2 {
		padding-top: 15px;
	}

	.st-bar {
		font-size: 14px;
		line-height: 1.2em;
	}

	.st-line-link {
		min-height: 17.8px;
		font-size: 14px;
		line-height: 1.2em;
	}

	.st-price {
		padding: 0;
	}

	.st-price__inner {
		gap: 30px;
		padding: 10px;
	}

	.st-price--flush .st-price__inner {
		padding: 10px;
	}

	.st-row {
		flex-direction: column;
		gap: 30px;
	}

	.st-box__text {
		font-size: 14px;
	}

	.c-boxhead--flow {
		margin-top: 30px;
	}

	.c-more--flow a {
		width: 192px;
	}

	.st-frame {
		padding: 20px 0;
	}

	.st-reco__body,
	.st-frame__head {
		padding: 12px;
	}

	.st-label {
		width: 190px;
		font-size: 18px;
	}

	.st-reco__lists {
		margin-top: 18px;
	}

	.st-check--2 {
		padding-top: 8px;
	}

	.st-check li {
		align-items: flex-start;
	}

	.st-check span {
		font-size: 14px;
		line-height: 1.6em;
	}

	.st-note {
		line-height: 1.2em;
	}

	.st-note--yaguchi {
		margin-top: 40px;
	}

	.st-box--y1 {
		padding: 10px;
	}

	.st-box__extra {
		padding: 12px 4px 4px;
		font-size: 14px;
		line-height: 1.8em;
	}

	.st-qr {
		margin-bottom: -4.5px;
	}

	.st-link .st-frame {
		margin-top: 40px;
		padding: 20px 0;
	}

	.st-link__body {
		padding: 0;
	}

	.st-banners {
		flex-wrap: wrap;
		margin-top: 18px;
	}

	.st-banner--2 img {
		width: 227px;
	}

	.st-banner--3 img {
		width: 226px;
	}

	.c-totop {
		font-size: 16px;
	}
}

/* ==========================================================================
   汎用の固定ページ・404
   ========================================================================== */
.c-entry {
	font-size: 16px;
	line-height: 1.8em;
	letter-spacing: 0.02em;
}

.c-entry > * + * {
	margin-top: 1em;
}

.c-entry h2 {
	margin-top: 2em;
	padding: 20px 0;
	border-top: 1px solid var(--c-text);
	border-bottom: 1px solid var(--c-text);
	font-size: 24px;
	line-height: 1.3;
}

.c-entry h3 {
	margin-top: 1.5em;
	padding-left: 5px;
	border-left: 3px solid #910106;
	font-size: 18px;
	line-height: 1.3;
}

.c-entry ul {
	padding-left: 1.5em;
	list-style: disc;
}

.c-entry ol {
	padding-left: 1.5em;
	list-style: decimal;
}

.c-entry a {
	color: var(--c-red-dark);
	text-decoration: underline;
}

.c-entry--center {
	text-align: center;
}

.c-more--404 {
	justify-content: center;
	margin-top: 40px;
}

.c-more--404 a {
	width: 350px;
	max-width: 100%;
}

@media (max-width: 767px) {
	.c-entry {
		font-size: 14px;
	}
}
