/* ==========================================================================
   FAQ archive
   ========================================================================== */
.faq-layout {
	display: flex;
	align-items: flex-start;
	gap: 0;
}

.faq-sidebar {
	flex: 0 0 260px;
	position: sticky;
	top: 40px;
	align-self: flex-start;
	display: flex;
	flex-direction: column;
	border: 2px solid var(--color-navy);
	border-right: none;
	border-top: 0;
}

.faq-sidebar__item {
	position: relative;
	padding: 18px 20px;
	font-size: 14px;
	font-weight: 500;
	color: var(--color-navy);
	border-bottom: 2px solid var(--color-navy);
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}

.faq-sidebar__item::before {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: 40px;
	height: 40px;
	background: var(--color-green);
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.faq-sidebar__item-icon {
	position: absolute;
	right: 6px;
	bottom: 5px;
	width: 12px;
	height: auto;
}

.faq-sidebar__item:last-child {
	border-bottom: none;
}

.faq-sidebar__item:hover {
	background: var(--color-bg-gray);
}

.faq-main {
	flex: 1;
	width: 100%;
	min-width: 0;
	border: 2px solid var(--color-navy);
}

.faq-main__empty {
	padding: 32px;
}

.faq-section__head {
	background: var(--color-navy);
	color: var(--color-white);
	padding: 16px 16px 25px 16px;
}

.faq-section + .faq-section .faq-section__head {
	border-top: 2px solid var(--color-navy);
}

.faq-section__eyebrow {
	font-family: var(--font-en);
	font-weight: 500;
	font-size: 12px;
	margin-bottom: 8px;
	color: var(--color-white);
}

.faq-section__title {
	font-size: 44px;
	font-weight: 500;
}

.faq-list__empty {
	padding: 24px 32px;
	color: var(--color-text-light);
}

.faq-item {
	position: relative;
	border-bottom: 2px solid var(--color-navy);
}

/* Closed: the icon sticks to the Q row's own corner (visually the item's
   corner too, since the answer is hidden). Open: .faq-item__q switches to
   static so the icon's absolute positioning escapes up to .faq-item instead,
   landing at the bottom-right of the whole expanded item. */
.faq-item[open] .faq-item__q {
	position: static;
}

.faq-item:last-child {
	border-bottom: none;
}

.faq-item__q {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0;
	padding: 0;
	cursor: pointer;
	list-style: none;
	background: #f2f2f2;
	font-size: 18px;
}

.faq-item__q::-webkit-details-marker {
	display: none;
}

.faq-item__label {
	flex: 0 0 auto;
	width: 41px;
	align-self: stretch;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-en);
	font-size: 16px;
	font-weight: 700;
	color: var(--color-navy);
	padding: 4px 14px;
	border-right: 2px solid var(--color-navy);
}

.faq-item__q-text {
	flex: 1;
	font-weight: 500;
	font-size: 18px;
	color: var(--color-navy);
	padding: 10px 60px 10px 12px;
}

.faq-item__icon {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 2;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	padding: 4px 8px;
	background: var(--color-green);
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.faq-item__icon-img {
	width: 14px;
	height: auto;
}

.faq-item__icon-img--minus {
	display: none;
}

.faq-item[open] .faq-item__icon-img--plus {
	display: none;
}

.faq-item[open] .faq-item__icon-img--minus {
	display: block;
}

.faq-item__a {
	display: flex;
	gap: 12px;
	padding: 0;
	background: var(--color-bg-gray);
	position: relative;
}

.faq-item__a-text {
	flex: 1;
	font-weight: 500;
	font-size: 14px;
	line-height: 1.9;
	color: var(--color-navy);
	padding: 12px 60px 12px 0;
}

.faq-item__a-text > * + * {
	margin-top: 1em;
}

/* ==========================================================================
   Contact form
   ========================================================================== */
.contact-page .container {
	max-width: none;
	margin: 0;
	padding: 0;
}

.contact-lead {
	padding: 13px 23px;
	font-size: 14px;
	font-weight: 500;
	color: var(--color-navy);
	background-color: #f2f2f2;
}

.form-errors {
	margin-bottom: 24px;
	padding: 16px 20px;
	border: 2px solid #c0392b;
	background: #fdf0ee;
}

.form-errors ul {
	margin: 0;
	padding-left: 1.2em;
	list-style: disc;
}

.form-errors li {
	color: #c0392b;
	font-size: 14px;
}

.contact-form__honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.contact-form,
.confirm-table {
	border: 2px solid var(--color-navy);
	border-bottom: none;
}

.contact-form {
	margin-bottom: 0;
}

.confirm-table {
	margin-bottom: 56px;
}

.form-row,
.confirm-row {
	display: flex;
	flex-wrap: wrap;
	border-bottom: 2px solid var(--color-navy);
}

.form-row__label,
.confirm-row__label {
	flex: 0 0 280px;
	display: flex;
	align-items: center;
	padding: 16px 24px;
	background: var(--color-green);
	font-size: 14px;
	font-weight: 500;
	color: var(--color-navy);
	border-right: 2px solid var(--color-navy);
}

.form-row__field,
.confirm-row__value {
	flex: 1 1 400px;
	display: flex;
	align-items: center;
	padding: 10px 14px;
	background: var(--color-white);
	font-size: 14px;
	color: var(--color-navy);
}

.confirm-row__value--pre {
	white-space: pre-wrap;
}

.form-row__field input[type="text"],
.form-row__field input[type="email"],
.form-row__field input[type="tel"],
.form-row__field select,
.form-row__field textarea {
	width: 100%;
	padding: 0;
	font-size: 14px;
	font-family: inherit;
	border: none;
	background: var(--color-white);
	color: var(--color-text);
}

.form-row__field textarea {
	resize: vertical;
}

.checkbox-list {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 28px;
}

.checkbox-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--color-navy);
}

.checkbox-item input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--color-navy);
}

.form-agree,
.confirm-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: var(--color-bg-gray);
}

.form-agree,
.confirm-actions {
	padding: 20px 24px;
}

.contact-page .form-agree {
	padding: 0;
}

.form-agree__note {
	font-size: 12px;
	color: var(--color-text-light);
}

.form-agree__note a {
	text-decoration: underline;
	color: var(--color-navy);
}

.form-agree__submit {
	margin-left: auto;
}

/* Contact page action buttons — full-width navy/outline block with a
   diagonal-cut green corner + plus icon, matching the corner-plus language
   used elsewhere on the site (project-card__link, type-card__link, etc.).
   A dedicated component so it doesn't touch the shared .btn-plus used
   throughout the rest of the theme. */
.corner-submit-btn {
	position: relative;
	display: block;
	flex: 1 1 260px;
	border: none;
	padding: 0;
	background: var(--color-navy);
	color: var(--color-white);
	text-align: left;
	cursor: pointer;
}

.corner-submit-btn--outline {
	background: var(--color-white);
	color: var(--color-navy);
	border: 2px solid var(--color-navy);
}

.corner-submit-btn__label {
	display: block;
	padding: 24px 100px 24px 32px;
	font-size: 18px;
	font-weight: 700;
	font-family: inherit;
}

.corner-submit-btn__icon {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 73px;
	height: 73px;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	padding: 16px;
	background: var(--color-green);
	color: var(--color-navy);
	line-height: 1;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.corner-submit-btn__icon-img {
	width: 14px;
	height: auto;
}

.confirm-actions__agree {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--color-navy);
}

.confirm-actions__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* ==========================================================================
   Contact complete
   ========================================================================== */
.contact-complete {
	padding: 0;
}

.contact-complete .container {
	max-width: none;
	padding: 0;
}

.contact-complete__box {
	border: 2px solid var(--color-navy);
	border-top: none;
	padding: 32px;
	background-color: #f2f2f2;
}

.contact-complete__text {
	font-size: 15px;
	font-weight: 500;
	line-height: 2;
	color: var(--color-navy);
	margin-bottom: 24px;
}

.contact-complete__text:last-of-type {
	margin-bottom: 0;
}

.contact-complete__actions {
	display: flex;
	justify-content: flex-end;
	margin-top: 32px;
}

.contact-complete__back {
	display: inline-block;
	flex: 0 0 auto;
	width: auto;
}

/* ==========================================================================
   倉庫タイプ詳細 (page-warehouse-type.php)
   ========================================================================== */
.wtype-hero {
	position: relative;
	display: flex;
	align-items: stretch;
	background: var(--color-bg-gray);
	border-bottom: 2px solid var(--color-navy);
}

.wtype-hero__intro {
	flex: 0 0 555px;
	padding: 40px var(--container-padding);
}

.wtype-hero__eyebrow {
	font-family: var(--font-en);
	font-size: 14px;
	font-weight: 500;
	color: var(--color-navy);
	margin-bottom: 16px;
}

.wtype-hero__title {
	font-size: 96px;
	font-weight: 500;
	line-height: 1.1;
	color: var(--color-navy);
}

.wtype-hero__media {
	position: relative;
	flex: 1 1 470px;
	min-height: 400px;
}

.wtype-hero__media-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wtype-hero-info {
	margin-top: 50px;
}

.wtype-hero-info__tag {
	display: inline-block;
	background: var(--color-green);
	color: var(--color-navy);
	font-weight: 700;
	font-size: 34px;
	padding: 8px 12px;
	margin-bottom: 18px;
}

.wtype-hero-info__text {
	font-size: 14px;
	font-weight: 500;
	color: var(--color-navy);
}

.wtype-reasons {
	padding: 0;
}

.wtype-reasons__box {
	margin: 0 auto;
}

.wtype-reasons__intro {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 24px 40px;
	padding: 40px 16px;
	background: var(--color-bg-gray);
	border-bottom: 2px solid var(--color-navy);
}

.wtype-reasons__intro-text {
	flex: 1 1 400px;
	max-width: 559px;
	align-self: flex-end;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.9;
	color: var(--color-navy);
}

.wtype-reasons__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-bottom: 2px solid var(--color-navy);
}

.wtype-reasons__item {
	position: relative;
	padding: 24px;
	background: #f2f2f2;
	border-right: 2px solid var(--color-navy);
}

.wtype-reasons__item:last-child {
	border-right: none;
}

.wtype-reasons__no {
	position: absolute;
	top: 0;
	right: 0;
	background: var(--color-green);
	color: var(--color-navy);
	font-family: var(--font-en);
	font-weight: 700;
	font-size: 13px;
	padding: 4px 10px;
}

.wtype-reasons__title {
	font-size: 26px;
	font-weight: 500;
	color: var(--color-navy);
	margin-bottom: 20px;
}

.wtype-reasons__text {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.8;
	color: var(--color-navy);
}

.wtype-reasons__photos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.wtype-reasons__photo {
	width: 100%;
	height: 220px;
	object-fit: cover;
	border-right: 2px solid var(--color-navy);
}

.wtype-reasons__photo:last-child {
	border-right: none;
}

.wtype-variation {
	padding: 0;
	background-color: #f2f2f2;
}

.wtype-variation .container {
	max-width: none;
	padding: 16px 16px 40px;
}

.wtype-variation__grid {
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border: 2px solid var(--color-navy);
}

.wtype-variation__item {
	display: flex;
	border-right: 2px solid var(--color-navy);
	border-bottom: 2px solid var(--color-navy);
}

.wtype-variation__item:nth-child(2n) {
	border-right: none;
}

.wtype-variation__item:nth-last-child(-n+2) {
	border-bottom: none;
}

.wtype-variation__media {
	flex: 0 0 40%;
	position: relative;
	border-right: 2px solid var(--color-navy);
}

.wtype-variation__media-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wtype-variation__soon {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-bg-gray);
	color: var(--color-text-light);
	font-family: var(--font-en);
	font-size: 13px;
}

.wtype-variation__body {
	flex: 1 1 auto;
	padding: 20px 24px;
}

.wtype-variation__title {
	font-size: 26px;
	font-weight: 500;
	color: var(--color-navy);
	margin-bottom: 8px;
}

.wtype-variation__text {
	font-size: 14px;
	line-height: 1.8;
	color: var(--color-navy);
}

.wtype-projects {
	padding-bottom: 0;
}

.wtype-projects .container {
	max-width: none;
	padding: 0;
}

.wtype-projects .project-archive__grid {
	border-top: none;
}

.wtype-projects .project-archive__grid .project-card {
	border-bottom: none;
}

.wtype-projects__head {
	background: var(--color-bg-gray);
	border-bottom: 2px solid var(--color-navy);
	margin-bottom: 0;
}

.wtype-projects__head .section-head {
	margin: 0;
	padding: 32px 16px;
}

.wtype-projects__empty {
	color: var(--color-text-light);
}

.wtype-flow-teaser {
	display: flex;
	flex-wrap: wrap;
	border-top: 2px solid var(--color-navy);
	border-bottom: 2px solid var(--color-navy);
}

.wtype-flow-teaser__intro {
	flex: 1 1 340px;
	padding: 16px;
	border-right: 2px solid var(--color-navy);
}

.wtype-flow-teaser__links {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: 32px;
	align-items: flex-start;
}

.wtype-flow-teaser__list {
	flex: 1.4 1 427px;
	display: flex;
	flex-direction: column;
}

.wtype-flow-teaser__row {
	display: flex;
	align-items: stretch;
	border-bottom: 2px solid var(--color-navy);
	background: var(--color-green);
}

.wtype-flow-teaser__row:last-child {
	border-bottom: none;
}

.wtype-flow-teaser__no {
	flex: 0 0 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-bg-gray);
	color: var(--color-navy);
	font-family: var(--font-en);
	font-weight: 700;
	border-right: 2px solid var(--color-navy);
}

.wtype-flow-teaser__label {
	flex: 1;
	display: flex;
	align-items: center;
	padding: 16px 24px;
	font-weight: 500;
	color: var(--color-navy);
}

.wtype-flow-teaser__tag {
	display: flex;
	align-items: center;
	align-self: center;
	margin-right: 24px;
	padding: 4px 10px;
	background: var(--color-white);
	border: 1px solid var(--color-navy);
	color: var(--color-navy);
	font-size: 12px;
}

.wtype-map-teaser {
	display: flex;
	flex-wrap: wrap;
	background: var(--color-navy);
	color: var(--color-white);
}

.wtype-map-teaser__intro {
	flex: 1 1 240px;
	padding: 40px 16px;
	border-right: 1px solid rgba(255, 255, 255, 0.3);
}

.wtype-map-teaser__eyebrow {
	font-family: var(--font-en);
	font-size: 13px;
	font-weight: 500;
	margin-bottom: 16px;
}

.wtype-map-teaser__title {
	font-size: 40px;
	font-weight: 500;
	color: var(--color-white);
	margin-bottom: 32px;
}

.wtype-map-teaser__text {
	flex: 1.2 1 120px;
	display: flex;
	align-items: center;
	padding: 40px 32px;
	border-right: 1px solid rgba(255, 255, 255, 0.3);
	font-size: 14px;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.9);
}

.wtype-map-teaser__media {
	flex: 1 1 580px;
	position: relative;
	min-height: 280px;
}

.wtype-map-teaser__media-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.9;
}

.wtype-others {
	padding: 0;
}

.wtype-others .container {
	padding: 16px;
}

.wtype-others__grid {
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	border: 2px solid var(--color-navy);
}

.wtype-others__item {
	position: relative;
	border-right: 2px solid var(--color-navy);
}

.wtype-others__item:last-child {
	border-right: none;
}

.wtype-others__item-img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
}

.wtype-others__item-stretched-link {
	position: absolute;
	inset: 0;
	z-index: 3;
}

.wtype-others__item-eyebrow {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	font-family: var(--font-en);
	font-size: 12px;
	font-weight: 500;
	color: var(--color-white);
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

.wtype-others__item-title {
	position: absolute;
	left: 12px;
	bottom: 12px;
	z-index: 2;
	font-size: 22px;
	font-weight: 500;
	color: var(--color-white);
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

.wtype-others__item-link {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 2;
	width: 56px;
	height: 56px;
	display: block;
}

.wtype-others__item-link::before,
.wtype-others__item-link::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	clip-path: polygon(100% 0, 100% 100%, 0 0);
}

.wtype-others__item-link::before {
	width: 56px;
	height: 56px;
	background: var(--color-navy);
	z-index: 0;
}

.wtype-others__item-link::after {
	width: 52px;
	height: 52px;
	background: var(--color-green);
	z-index: 1;
}

.wtype-others__item-link-icon {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 2;
	width: 12px;
	height: auto;
}

/* ==========================================================================
   倉庫建設の流れ (page-flow.php)
   ========================================================================== */
.flow-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 0;
	border-left: 2px solid var(--color-navy);
}

.flow-steps__intro {
	grid-column: span 1;
	min-height: 280px;
	padding: 16px;
	background: var(--color-white);
	border-right: 2px solid var(--color-navy);
	border-bottom: 2px solid var(--color-navy);
}

.flow-steps__intro-en {
	font-family: var(--font-en);
	font-size: 13px;
	font-weight: 500;
	color: var(--color-navy);
	margin-bottom: 16px;
}

.flow-steps__intro-title {
	font-size: 37px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--color-navy);
	margin-bottom: 16px;
}

.flow-steps__intro-note {
	font-size: 13px;
	font-weight: 500;
	color: var(--color-navy);
}

.flow-step {
	position: relative;
	min-height: 280px;
	padding: 16px;
	background: var(--color-green);
	border-right: 2px solid var(--color-navy);
	border-bottom: 2px solid var(--color-navy);
}

.flow-step__no {
	position: absolute;
	top: 0;
	left: 0;
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background-color: var(--color-white);
	font-family: var(--font-en);
	font-weight: 700;
	color: var(--color-navy);
}

.flow-step__en {
	font-family: var(--font-en);
	font-size: 12px;
	font-weight: 500;
	color: var(--color-navy);
	margin: 28px 0 8px;
}

.flow-step__title {
	font-size: 30px;
	font-weight: 500;
	color: var(--color-navy);
}

.flow-step__more {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 90px;
	height: 90px;
	display: block;
	border: none;
	background: none;
	cursor: pointer;
}

.flow-step__more::before,
.flow-step__more::after {
	content: "";
	position: absolute;
	bottom: 0;
	right: 0;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.flow-step__more::before {
	width: 77px;
	height: 77px;
	background: var(--color-navy);
	z-index: 0;
}

.flow-step__more::after {
	width: 73px;
	height: 73px;
	background: var(--color-white);
	z-index: 1;
}

.flow-step__more-icon {
	position: absolute;
	bottom: 12px;
	right: 12px;
	z-index: 2;
	width: 14px;
	height: auto;
}

.flow-gantt {
	margin: 0;
	padding: 0;
}

.flow-gantt__box {
	border: 2px solid var(--color-navy);
}

.flow-gantt__intro {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 34px;
	padding: 16px;
	background: var(--color-bg-gray);
	border-bottom: 2px solid var(--color-navy);
}

.flow-gantt__intro-en {
	font-family: var(--font-en);
	font-size: 13px;
	font-weight: 500;
	color: var(--color-navy);
	margin-bottom: 8px;
}

.flow-gantt__intro-title {
	font-size: 37px;
	font-weight: 500;
	color: var(--color-navy);
}

.flow-gantt__intro-note {
	flex: 1;
	font-size: 13px;
	font-weight: 500;
	color: var(--color-navy);
}

.flow-gantt__table {
	overflow-x: auto;
}

.flow-gantt__row {
	display: grid;
	grid-template-columns: 90px 20px repeat(7, 1fr);
	background-color: #f2f2f2;
	border-bottom: 1px solid var(--color-border);
}

.flow-gantt__row:last-child {
	border-bottom: none;
}

.flow-gantt__row--head {
	background: var(--color-navy);
	color: var(--color-white);
	border-bottom: none;
}

.flow-gantt__cell {
	padding: 12px 5px;
	font-size: 15px;
	font-weight: 500;
	display: flex;
	align-items: center;
	justify-content: center;
	border-right: 1px solid var(--color-border);
}

.flow-gantt__row--head .flow-gantt__cell {
	border-right: 2px solid var(--color-white);
}

.flow-gantt__cell:last-child {
	border-right: none;
}

.flow-gantt__cell--label {
	position: relative;
	justify-content: flex-start;
	background: var(--color-white);
	color: var(--color-navy);
	font-weight: 500;
	border-right: 2px solid var(--color-navy);
}

.flow-gantt__row--head .flow-gantt__cell--label {
	background: transparent;
	border-right: 2px solid var(--color-navy);
}

.flow-gantt__cell--spacer {
	padding: 0;
}

.flow-gantt__cell--corner {
	background: linear-gradient(to top left, transparent calc(50% - 1px), var(--color-border), transparent calc(50% + 1px)) !important;
}

.flow-gantt__more {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: none;
	background: var(--color-green);
	color: var(--color-navy);
	cursor: pointer;
	flex-shrink: 0;
}

.flow-gantt__more-icon {
	width: 14px;
	height: 14px;
}

.flow-gantt__track {
	position: relative;
	min-height: 56px;
	padding: 10px 4px;
	background-image: repeating-linear-gradient(to right,
			transparent 0,
			transparent calc(100% / 7 - 2px),
			var(--color-white) calc(100% / 7 - 2px),
			var(--color-white) calc(100% / 7));
}

.flow-gantt__bar {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	box-sizing: border-box;
	border: 2px solid var(--color-navy);
	background: var(--color-green);
	color: var(--color-navy);
	font-size: 18px;
	font-weight: 500;
	padding: 6px 8px;
	text-align: left;
	cursor: pointer;
}

.flow-gantt__bar--point {
	width: 28px;
	height: 28px;
	padding: 0;
}

.flow-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	align-items: center;
	justify-content: center;
}

/* The [hidden] attribute is how flow.js opens/closes this modal; without
   scoping display:flex to the non-hidden state, it would override the
   browser's default [hidden]{display:none} and stay visible permanently. */
.flow-modal:not( [hidden] ) {
	display: flex;
}

.flow-modal__backdrop {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: rgba(0, 0, 0, 0.6);
}

.flow-modal__panel {
	position: relative;
	z-index: 1;
	max-width: 1040px;
	width: calc(100% - 48px);
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	background: var(--color-white);
	border: 2px solid var(--color-navy);
}

.flow-modal__head {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 24px 32px;
	border-bottom: 2px solid var(--color-navy);
}

.flow-modal__no {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	background: var(--color-green);
	color: var(--color-navy);
	font-family: var(--font-en);
	font-size: 24px;
	font-weight: 700;
}

.flow-modal__en {
	font-family: var(--font-en);
	font-size: 13px;
	font-weight: 500;
	color: var(--color-navy);
	margin-bottom: 4px;
}

.flow-modal__title {
	font-size: 30px;
	font-weight: 700;
	color: var(--color-navy);
}

.flow-modal__body-wrap {
	padding: 24px 32px;
}

.flow-modal__body {
	font-size: 15px;
	line-height: 1.9;
	color: var(--color-navy);
}

.flow-modal__actions {
	position: relative;
	min-height: 84px;
	border-top: 2px solid var(--color-navy);
}

.flow-modal__action--prev {
	position: absolute;
	left: 24px;
	top: 50%;
	transform: translateY(-50%);
}

.flow-modal__action--prev[hidden] {
	display: none;
}

.flow-modal__close {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}

.flow-modal__action--next {
	position: absolute;
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
}

.flow-modal__action--next[hidden] {
	display: none;
}

.flow-modal__action {
	display: inline-flex;
	align-items: stretch;
	padding: 0;
	border: 2px solid var(--color-navy);
	background: var(--color-white);
	cursor: pointer;
}

.flow-modal__action-label {
	display: flex;
	align-items: center;
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 500;
	color: var(--color-navy);
	white-space: nowrap;
}

.flow-modal__action-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	font-weight: 500;
	flex-shrink: 0;
	background: var(--color-green);
	border-left: 2px solid var(--color-navy);
}

.flow-modal__action--prev .flow-modal__action-icon {
	border-left: none;
}

.flow-modal__action-icon-img {
	width: 13px;
	height: auto;
}

.flow-modal__close-icon {
	width: 14px;
	height: 14px;
}

.flow-modal__close {
	flex-shrink: 0;
}

body.flow-modal-open {
	overflow: hidden;
}

/* ==========================================================================
   会社情報 (page-company.php)
   ========================================================================== */
.company-message {
	padding: 0;
}

.company-message__inner {
	display: flex;
	align-items: stretch;
	border: 2px solid var(--color-navy);
	border-top: 0;
}

.company-message__col {
	padding: 16px;
}

.company-message__col--head {
	flex: 0 0 385px;
	border-right: 2px solid var(--color-navy);
}

.company-message__col--sub {
	flex: 0 0 470px;
	padding: 29px 32px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.company-message__col--text {
	flex: 1;
}

.company-message__title {
	font-family: var(--font-message);
	font-size: 30px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--color-navy);
}

.company-message__text {
	font-family: var(--font-message);
	font-size: 14px;
	line-height: 2;
	color: var(--color-navy);
}

.company-message__text > * + * {
	margin-top: 1em;
}

.company-message__sign {
	font-family: var(--font-message);
	font-size: 12px;
	color: var(--color-navy);
}

.company-message__sign-space {
	display: inline-block;
	width: 1em;
}

.company-message__sign-name {
	font-size: 19px;
}

.company-overview,
.company-history,
.company-access {
	padding: 0;
}

.company-overview {
	background-color: #f2f2f2;
}

.company-section-inner {
	max-width: none;
	margin: 0;
	padding: 0;
}

.company-section-inner .section-eyebrow {
	padding-top: 16px;
	padding-left: 16px;
}

.company-section-inner .section-title {
	padding-left: 16px;
}

.company-overview__grid {
	margin-top: 24px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	border: 2px solid var(--color-navy);
}

.company-table:first-child {
	border-right: 2px solid var(--color-navy);
}

.company-table {
	width: 100%;
	border-collapse: collapse;
}

.company-table th,
.company-table td {
	padding: 16px 24px;
	font-size: 14px;
	font-weight: 500;
	border-bottom: 2px solid var(--color-navy);
}

.company-table tr:last-child th,
.company-table tr:last-child td {
	border-bottom: none;
}

.company-table th {
	width: 140px;
	background: var(--color-navy);
	color: var(--color-white);
	font-weight: 500;
	border-bottom: 2px solid white;
}

.company-table td {
	background: var(--color-white);
	color: var(--color-navy);
	line-height: 1.8;
}

.company-history__inner {
	display: flex;
	align-items: stretch;
	margin-top: 0;
	border: 2px solid var(--color-navy);
	border-top: none;
}

.company-history__intro {
	flex: 0 0 280px;
	padding: 16px;
	background: var(--color-bg-gray);
	border-right: 2px solid var(--color-navy);
}

.company-history__grid {
	flex: 1;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.company-history__item {
	position: relative;
	border-right: 2px solid var(--color-navy);
	border-bottom: 2px solid var(--color-navy);
	padding: 16px;
}

.company-history__item:nth-child(3n) {
	border-right: none;
}

.company-history__item:nth-child(n+4) {
	border-bottom: none;
}

.company-history__date {
	font-size: 12px;
	font-weight: 500;
	color: var(--color-navy);
	margin-bottom: 8px;
}

.company-history__no {
	position: absolute;
	top: 0;
	right: 0;
	background: var(--color-green);
	color: var(--color-navy);
	font-family: var(--font-en);
	font-weight: 700;
	font-size: 12px;
	padding: 3px 11px;
}

.company-history__text {
	font-size: 18px;
	font-weight: 500;
	line-height: 1.8;
	color: var(--color-navy);
}

.company-access__inner {
	display: flex;
	align-items: stretch;
	margin-top: 0;
	min-height: 320px;
	border: 2px solid var(--color-navy);
	border-top: none;
}

.company-access__intro {
	flex: 0 0 320px;
	padding: 16px;
	font-weight: 500;
	background: var(--color-bg-gray);
	border-right: 2px solid var(--color-navy);
}

.company-access__map {
	position: relative;
	flex: 1;
}

.company-access__map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.company-access__info {
	margin-top: 136px;
	font-size: 14px;
	line-height: 2;
	color: var(--color-navy);
}

/* ==========================================================================
   資料請求 (page-document-request.php)
   ========================================================================== */
.document-request-page .container {
	max-width: none;
	padding: 0;
}

.document-request-page .checkbox-item {
	font-weight: 500;
}

.document-request-page .form-row__field input::placeholder,
.document-request-page .form-row__field textarea::placeholder {
	font-weight: 500;
}

.document-hero {
	margin-bottom: 0;
}

.document-hero__inner {
	display: flex;
	align-items: stretch;
	border: 2px solid var(--color-navy);
	border-top: none;
}

.document-hero__intro {
	flex: 0 0 400px;
	padding: 16px;
	background: var(--color-bg-gray);
	border-right: 2px solid var(--color-navy);
}

.document-hero__note {
	margin-top: 16px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.8;
	color: var(--color-navy);
}

.document-list {
	flex: 1;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.document-list__item {
	position: relative;
	display: flex;
	flex-direction: row;
	border-right: 2px solid var(--color-navy);
	cursor: pointer;
}

.document-list__item:last-child {
	border-right: none;
}

.document-list__checkbox {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
}

.document-list__thumb {
	position: relative;
	flex: 0 0 120px;
	align-self: stretch;
	overflow: hidden;
}

.document-list__thumb-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.document-list__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
}

.document-list__title {
	padding: 16px 40px 0 16px;
	font-size: 18px;
	font-weight: 700;
	color: var(--color-navy);
}

.document-list__note {
	padding: 4px 16px 0;
	font-family: var(--font-en);
	font-size: 11px;
	color: #adadad;
}

.document-list__text {
	flex: 1;
	padding: 8px 40px 40px 16px;
	font-size: 13px;
	line-height: 1.8;
	color: var(--color-navy);
}

.document-list__check {
	position: absolute;
	right: 16px;
	bottom: 16px;
	width: 22px;
	height: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-white);
	border: 2px solid var(--color-navy);
	color: var(--color-white);
}

.document-list__check svg {
	display: block;
	width: 12px;
	height: 12px;
}

.document-list__checkbox:checked ~ .document-list__check {
	background: var(--color-navy);
}

.document-list__checkbox:focus-visible ~ .document-list__check {
	outline: 2px solid var(--color-green);
	outline-offset: 2px;
}

.document-form-layout {
	display: flex;
	align-items: flex-start;
	border: 2px solid var(--color-navy);
	border-top: none;
}

.document-form-layout__side {
	flex: 0 0 400px;
	position: sticky;
	top: 40px;
	align-self: flex-start;
	background: var(--color-bg-gray);
}

.document-form-layout__intro {
	padding: 16px;
}

.document-form-layout__selected {
	padding: 24px;
	border-top: 2px solid var(--color-navy);
	border-bottom: 2px solid var(--color-navy);
}

.document-form-layout__main {
	flex: 1 1 auto;
	min-width: 0;
	border-left: 2px solid var(--color-navy);
}

.document-selected-label {
	font-size: 13px;
	font-weight: 500;
	color: var(--color-navy);
	margin-bottom: 16px;
}

.document-selected {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 0;
	list-style: none;
}

.document-selected__empty {
	font-size: 13px;
	color: var(--color-text-light);
}

.document-selected__item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.document-selected__thumb {
	flex: 0 0 64px;
	height: 64px;
	overflow: hidden;
}

.document-selected__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.document-selected__title {
	font-size: 13px;
	font-weight: 500;
	color: var(--color-navy);
}

.document-request-page .form-row__label {
	background: var(--color-green);
}

.document-request-page .form-row__field {
	background: var(--color-white);
}

.document-address-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
}

.document-complete {
	padding: 40px 16px 72px;
	background-color: #f2f2f2;
	border-bottom: 2px solid var(--color-navy);
}

.document-complete__text {
	font-size: 15px;
	line-height: 2;
	color: var(--color-navy);
	margin-bottom: 24px;
}

/* ==========================================================================
   倉庫施工マップ (page-warehouse-map.php)
   ========================================================================== */
.warehouse-map-page .category-filter {
	border-bottom: 2px solid var(--color-navy);
}

.warehouse-map-page .category-filter__item {
	font-family: inherit;
	cursor: pointer;
}

.map-embed {
	position: relative;
	border-bottom: 2px solid var(--color-navy);
}

.map-embed__frame {
	display: block;
	width: 100%;
	height: 720px;
	border: none;
}

.map-embed__placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 480px;
	background: var(--color-bg-gray);
	color: var(--color-text-light);
	font-size: 15px;
	text-align: center;
	padding: 24px;
}

.map-embed__placeholder-note {
	max-width: 640px;
	font-size: 13px;
}

/* ==========================================================================
   参考価格 (page-price.php)
   ========================================================================== */
.price-tabs {
	display: flex;
	flex-wrap: wrap;
	border-left: 2px solid var(--color-navy);
}

.price-tabs__item {
	position: relative;
	flex: 1 1 calc(100% / 6);
	min-width: 90px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	min-height: 56px;
	padding: 8px 12px;
	background: var(--color-white);
	border: none;
	border-right: 2px solid var(--color-navy);
	border-bottom: 2px solid var(--color-navy);
	font-family: inherit;
	color: var(--color-navy);
	cursor: pointer;
}

.price-tabs__item.is-active {
	background: var(--color-navy);
	color: var(--color-white);
}

.price-tabs__area {
	font-size: 15px;
	font-weight: 700;
}

.price-tabs__code {
	font-family: var(--font-en);
	font-size: 11px;
}

.price-tabs__icon {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 20px;
	height: 20px;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	padding: 2px 3px;
	background: var(--color-green);
	color: var(--color-navy);
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.price-tabs__icon-img {
	width: 10px;
	height: auto;
}

.price-detail {
	display: flex;
	align-items: flex-start;
	gap: 0;
	border-left: 2px solid var(--color-navy);
	border-right: 2px solid var(--color-navy);
	border-bottom: 2px solid var(--color-navy);
}

.price-detail__media {
	flex: 1 1 480px;
	position: sticky;
	top: 40px;
	align-self: flex-start;
}

.price-detail__img {
	min-height: 400px;
}

.price-detail__img-photo {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}

.price-detail__body {
	flex: 1 1 600px;
	width: 100%;
	padding: 0;
	background-color: #f2f2f2;
}

.price-detail__panel {
	padding-top: 24px;
	border-left: 2px solid var(--color-navy);
}

.price-detail__tag {
	display: inline-block;
	background: var(--color-navy);
	color: var(--color-white);
	font-size: 14px;
	font-weight: 500;
	padding: 6px 16px;
	margin-bottom: 0;
	margin-left: 24px;
}

.price-detail__price-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 60px;
	margin: 0;
	padding: 24px;
}

.price-detail__price {
	font-family: var(--font-en);
	font-size: 42px;
	font-weight: 700;
	color: var(--color-navy);
}

.price-detail__price-yen {
	font-size: 22px;
}

.price-detail__sub {
	font-weight: 500;
	color: var(--color-navy);
}

.price-detail__sub p + p {
	margin-top: 4px;
}

.price-detail__sub-label,
.price-detail__sub-yen {
	font-size: 14px;
	color: var(--color-navy);
}

.price-detail__sub-num {
	font-size: 20px;
	color: var(--color-navy);
}

.price-detail__meta {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border: 2px solid #adadad;
	margin: 0 0 12px;
}

.price-detail__meta-item {
	display: flex;
	align-items: center;
	gap: 22px;
	padding: 12px;
	border-left: 2px solid #adadad;
}

.price-detail__meta-item:first-child {
	border-left: none;
}

.price-detail__meta-item span {
	font-size: 14px;
	color: #adadad;
	margin-bottom: 0;
}

.price-detail__meta-item strong {
	font-size: 14px;
	color: var(--color-navy);
}

.price-detail__disclaimer {
	padding: 0 24px;
	font-size: 12px;
	color: var(--color-text-light);
	margin-bottom: 32px;
}

.price-detail__heading {
	font-size: 22px;
	font-weight: 500;
	color: var(--color-navy);
	padding: 0 24px;
	margin-bottom: 6px;
}

.price-detail__heading:not(:first-of-type) {
	margin-top: 32px;
}

.price-spec-table {
	width: 100%;
	border-collapse: collapse;
}

.price-spec-table th,
.price-spec-table td {
	text-align: left;
	vertical-align: top;
	padding: 14px 8px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.8;
	border-bottom: 2px solid #adadad;
}

.price-spec-table th {
	width: 140px;
	padding: 14px 8px 14px 24px;
	font-size: 14px;
	color: #adadad;
	font-weight: 500;
}

.price-spec-table td {
	color: var(--color-navy);
}

.price-gallery[hidden] {
	display: none;
}

.price-gallery {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	border: 2px solid var(--color-navy);
	border-top: none;
}

.price-gallery__item {
	position: relative;
}

.price-gallery__photo {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.price-gallery__label {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	background: var(--color-navy);
	color: var(--color-white);
	font-size: 12px;
	font-weight: 500;
	padding: 4px 10px;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media screen and (max-width: 1024px) {
	.faq-layout {
		flex-direction: column;
	}

	.faq-sidebar {
		position: static;
		flex-direction: row;
		flex-wrap: wrap;
		width: 100%;
		border-right: 2px solid var(--color-navy);
	}

	.faq-sidebar__item {
		flex: 1 1 33%;
		border-right: 2px solid var(--color-navy);
	}

	.wtype-reasons__photos,
	.wtype-variation__grid,
	.company-overview__grid,
	.document-list {
		grid-template-columns: 1fr 1fr;
	}

	.wtype-others__grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.wtype-others__item:nth-child(3n) {
		border-right: none;
	}

	.wtype-others__item:nth-child(n+4) {
		border-top: 2px solid var(--color-navy);
	}

	.company-message__inner,
	.company-history__inner,
	.company-access__inner {
		flex-direction: column;
	}

	.company-message__col--head,
	.company-history__intro {
		border-right: none;
		border-bottom: 2px solid var(--color-navy);
	}

	.company-message__col--head {
		flex: 1;
	}

	.company-message__col--sub {
		flex: 1;
		padding: 29px 16px;
		border-right: none;
	}

	.company-table th,
	.company-table td {
		padding: 16px;
	}

	.company-history__intro {
		flex: 1;
	}

	.company-access__intro {
		flex: none;
		border-right: none;
		border-bottom: 2px solid var(--color-navy);
	}

	.company-access__inner {
		min-height: 500px;
	}

	.company-access__info {
		margin-top: 16px;
	}

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

	.flow-gantt__box {
		border: none;
	}

	.price-detail {
		flex-direction: column;
	}

	.price-detail__media {
		position: static;
		width: 100%;
		border-bottom: 2px solid var(--color-navy);
	}

	.price-detail__panel {
		border-left: none;
	}

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

	.document-hero__inner,
	.document-form-layout {
		flex-direction: column;
	}

	.document-hero__intro {
		flex: 1;
		border-right: none;
		border-bottom: 2px solid var(--color-navy);
	}

	.document-form-layout__side {
		position: static;
		width: 100%;
		flex: 1;
		border-bottom: none;
	}

	.document-form-layout__main {
		border-left: none;
	}

	.wtype-hero {
		flex-direction: column;
	}

	.wtype-hero__title {
		font-size: 64px;
	}

	.wtype-flow-teaser,
	.wtype-map-teaser {
		flex-direction: column;
	}

	.wtype-flow-teaser__intro,
	.wtype-map-teaser__intro,
	.wtype-map-teaser__text {
		border-right: none;
	}
}

@media screen and (max-width: 767px) {
	.document-list {
		grid-template-columns: 1fr;
	}

	.document-list__item {
		border-right: none;
		border-bottom: 2px solid var(--color-navy);
	}

	.document-list__item:last-child {
		border-bottom: none;
	}

	.form-row,
	.confirm-row {
		flex-direction: column;
	}

	.form-row__label,
	.confirm-row__label {
		flex: 1 1 auto;
		padding: 16px;
	}

	.form-row__field,
	.confirm-row__value {
		flex: 1;
	}

	.form-row__field input[type="text"],
	.form-row__field input[type="email"],
	.form-row__field input[type="tel"],
	.form-row__field select,
	.form-row__field textarea {
		padding: 12px;
	}

	.corner-submit-btn {
		flex: 1;
		width: 100%;
		padding: 20px;
	}

	.faq-sidebar__item {
		flex: 1 1 50%;
	}

	.faq-section__head {
		padding-left: 20px;
		padding-right: 20px;
	}

	.faq-section__title {
		font-size: 34px;
	}

	.form-agree,
	.confirm-actions {
		flex-direction: column;
		align-items: flex-start;
	}

	.form-agree__submit {
		margin-left: 0;
	}

	.wtype-hero__intro {
		flex: 1 1 100%;
	}

	.wtype-flow-teaser__intro {
		flex: 1;
	}

	.wtype-flow-teaser__list {
		flex: 1;
		border-top: 2px solid var(--color-navy);
	}

	.wtype-flow-teaser__label {
		padding: 12px;
	}

	.wtype-reasons__photo {
		height: 100%;
	}

	.wtype-map-teaser__text {
		flex: 1;
		padding: 0 16px;
	}

	.wtype-map-teaser__media {
		flex: 1;
		min-height: 320px;
	}

	.wtype-variation__grid,
	.wtype-others__grid,
	.company-overview__grid,
	.company-history__grid,
	.document-list {
		grid-template-columns: 1fr;
	}

	/* Pair each reason card with its own photo side by side: .wtype-reasons__grid
	   and .wtype-reasons__photos loop over the same $reasons array independently,
	   so at this width we flatten both into .wtype-reasons__box's own grid and
	   interleave them via order, instead of two disconnected stacked lists. */
	.wtype-reasons__box {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.wtype-reasons__grid,
	.wtype-reasons__photos {
		display: contents;
	}

	.wtype-reasons__intro {
		grid-column: 1 / -1;
	}

	.wtype-reasons__item:nth-child(1) {
		order: 1;
	}

	.wtype-reasons__photo:nth-child(1) {
		order: 2;
	}

	.wtype-reasons__item:nth-child(2) {
		order: 3;
	}

	.wtype-reasons__photo:nth-child(2) {
		order: 4;
	}

	.wtype-reasons__item:nth-child(3) {
		order: 5;
	}

	.wtype-reasons__photo:nth-child(3) {
		order: 6;
	}

	.wtype-reasons__item {
		border-right: 2px solid var(--color-navy);
		border-bottom: 2px solid var(--color-navy);
	}

	.wtype-reasons__item:last-child {
		border-bottom: none;
	}

	.wtype-reasons__photo {
		border-right: none;
		border-bottom: 2px solid var(--color-navy);
	}

	.wtype-reasons__photo:last-child {
		border-bottom: none;
	}

	.wtype-variation__item,
	.wtype-variation__item:nth-child(2n) {
		border-right: none;
	}

	.wtype-variation__item:last-child {
		border-bottom: none;
	}

	.wtype-others__item {
		border-right: none;
		border-top: none;
		border-bottom: 2px solid var(--color-navy);
	}

	.wtype-others__item:last-child {
		border-bottom: none;
	}

	.company-history__item {
		border-right: none !important;
		border-bottom: 2px solid var(--color-navy) !important;
	}

	.company-history__item:last-child {
		border-bottom: none !important;
	}

	.flow-steps {
		grid-template-columns: 1fr;
	}

	.flow-steps__intro {
		border-right: 2px solid var(--color-navy);
	}

	.flow-step {
		min-height: 170px;
	}

	.flow-gantt__intro {
		flex-direction: column;
		align-items: flex-start;
	}

	.flow-gantt__cell--label,
	.flow-gantt__row--head .flow-gantt__cell--label,
	.flow-gantt__cell--spacer {
		display: none;
	}

	/* .flow-gantt__row auto-places its cells (no explicit grid-column per
	   cell), so with the label + spacer cells above removed from the grid,
	   the remaining 7 month cells need their own 7-track row — otherwise
	   they'd slide into the label/spacer tracks and leave a stray blank
	   column where the label used to sit. */
	.flow-gantt__row {
		grid-template-columns: repeat(7, 1fr);
	}

	/* page-flow.php inlines "grid-column: 3 / span 7" on this element,
	   assuming the desktop 9-track row (label + spacer + 7 months). With
	   the label/spacer tracks gone above, that placement now starts 2
	   tracks too late and spills into implicit tracks past the visible
	   header — shifting every bar out of alignment with its month column.
	   !important is needed to win over the inline style. */
	.flow-gantt__track {
		grid-column: 1 / -1 !important;
	}

	.flow-gantt__bar {
		font-size: 14px;
	}

	.document-address-field {
		gap: 8px;
	}

	.map-embed__frame,
	.map-embed__placeholder {
		height: 380px;
	}

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

	.price-detail__meta-item:nth-child(2) {
		border-left: 2px solid #adadad;
	}

	.price-detail__meta-item:nth-child(3) {
		border-left: none;
	}

	.price-spec-table th {
		width: 90px;
	}

	.price-gallery {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 480px) {
	/* 資料請求ページ */
	.document-hero__inner {
		border: none;
	}

	.document-list__item:last-child {
		border-bottom: 2px solid var(--color-navy);
	}

	.form-row__field,
	.confirm-row__value {
		padding: 10px 4px;
	}

	.form-agree,
	.confirm-actions {
		padding: 16px;
	}

	/* 参考価格ページ */
	.price-tabs__icon-img {
		width: 6px;
	}

	.price-detail__media {
		flex: 1;
	}

	.price-detail__img {
		min-height: auto;
	}

	.price-detail__price-row {
		gap: 12px;
		padding: 0 16px 16px;
	}

	.price-detail__tag {
		margin-left: 16px;
	}

	.price-detail__meta-item:nth-child(1),
	.price-detail__meta-item:nth-child(2) {
		border-bottom: 2px solid #adadad;
	}

	.price-detail__meta-item {
		justify-content: center;
	}

	.price-detail__disclaimer {
		padding: 0 16px;
	}

	.price-detail__heading {
		padding: 0 16px;
	}

	.price-spec-table th {
		padding: 14px 8px 14px 16px;
	}

	.price-gallery {
		border: none;
	}

	.price-gallery__item {
		border-bottom: 2px solid var(--color-navy);
	}

	/* 倉庫建設の流れページ */
	.flow-steps__intro {
		min-height: auto;
	}

	/* Keep each month column at a fixed, readable width instead of letting
	   the 1fr tracks compress illegibly — .flow-gantt__table already has
	   overflow-x:auto, so the row now scrolls horizontally instead. Setting
	   an explicit width (matching the 7*80px track total) alongside the
	   .flow-gantt__track grid-column fix above guarantees every row —
	   header and data alike — spans the same scrollable width, so the
	   row's own background/border never falls short of where the bars
	   (positioned by % of the now-correctly-spanning track) can reach. */
	.flow-gantt__row {
		grid-template-columns: repeat(7, 80px);
		width: 560px;
	}

	.flow-gantt__bar {
		font-size: 10px;
		padding: 6px 7px;
	}

	/* The prev/close/next buttons are absolutely positioned (prev at
	   left:24, close centered, next at right:24) with nowrap labels, so at
	   this width prev/next collide with the centered close button — drop
	   their text and keep icon-only to free up room. */
	.flow-modal__action--prev .flow-modal__action-label,
	.flow-modal__action--next .flow-modal__action-label {
		display: none;
	}

	/* With the label hidden above, only the icon shows — its border-left
	   (meant to divide it from the now-gone label) would otherwise double
	   up with .flow-modal__action's own left border. */
	.flow-modal__action-icon {
		padding: 11px;
		border-left: none;
	}

	/* 施工実績一覧ページ */
	.category-filter {
		padding: 16px;
	}

	/* よくあるご質問ページ */
	.faq-section__head {
		padding: 16px 16px 18px 16px;
	}

	.faq-sidebar {
		border-right: none;
		border-left: none;
	}

	/* 会社概要ページ */
	.company-message__col--sub {
		padding: 19px 16px;
	}

	.company-table th {
		width: 112px;
	}

	.company-message__inner {
		border: none;
		border-bottom: 2px solid var(--color-navy);
	}

	/* お問い合わせページ */
	.contact-page .form-agree {
		padding: 16px;
	}

	.form-row__label,
	.confirm-row__label {
		border-right: none;
	}

	.corner-submit-btn__label {
		padding: 0px 100px 0px 0;
	}

	.corner-submit-btn__icon {
		width: 66px;
		height: 66px;
		padding: 10px;
	}

	/* 倉庫タイプ詳細ページ */
	.wtype-hero__intro {
		padding: 16px var(--container-padding);
	}

	.wtype-hero-info {
		margin-top: 30px;
	}

	.wtype-hero-info__tag {
		font-size: 28px;
		padding: 2px 12px;
		margin-bottom: 12px;
	}

	.wtype-hero__media {
		flex: 1;
		min-height: 230px;
	}

	.wtype-reasons__intro {
		padding: 16px;
	}

	.wtype-reasons__item {
		padding: 27px 16px;
	}

	.speed-estimate__media {
		display: none;
	}

	.wtype-variation__body {
		padding: 16px;
	}

	/* Every item gets a border-bottom except the last one. The base
	   :nth-last-child(-n+2) rule (which assumed the desktop 2-col grid,
	   dropping the border from the last ROW of 2) has the same specificity
	   as a plain .wtype-variation__item rule and sits earlier in the file,
	   so it still wins for the second-to-last item unless matched here. */
	.wtype-variation__item:nth-last-child(-n+2) {
		border-bottom: 2px solid var(--color-navy);
	}

	.wtype-variation__item:last-child {
		border-bottom: none;
	}

	.wtype-projects__head .section-head {
		padding: 16px;
	}

	.wtype-projects .project-archive__grid .project-card:last-child {
		border-bottom: none;
	}

	.wtype-map-teaser__intro {
		padding: 18px 16px;
	}

	.wtype-others__item:nth-child(n+4) {
		border-top: none;
	}

	.wtype-flow-teaser {
		margin-bottom: 0;
	}

	.wtype-map-teaser {
		margin-top: 0;
	}
}

@media screen and (min-width: 1024px) {
	/* :nth-last-child(-n+2) assumes the last row always has exactly 2 items,
	   which only holds when the total count is even. With an odd count
	   (e.g. 3 items in this 2-col grid) it also strips the border from the
	   2nd-to-last item even though that item is still in the row above the
	   true last row. :nth-last-child(2):nth-child(odd) only matches the
	   2nd-to-last item when the total count is even (its position is odd
	   iff the count is even), so it correctly leaves odd-count grids alone. */
	.wtype-variation__item:nth-last-child(-n+2) {
		border-bottom: 2px solid var(--color-navy);
	}

	.wtype-variation__item:last-child,
	.wtype-variation__item:nth-last-child(2):nth-child(odd) {
		border-bottom: none;
	}
}
