/* home */

.intro__side {
	position: sticky;
}

@media (max-width: 1100px) {
	.intro__side {
		position: absolute;
	}
}

.modelhouse__body {
	grid-template-columns: calc(850 * var(--u) - 10px) 1fr;
}

/* コンセプト */

.concept-case__story {
	.sideLabel {
		display: none;
	}
}

.h-scroll {
	scroll-snap-type: none;
}

.faq__sticky {
	gap: 200px;
}

.faq__nav a::before {
	border-top-color: #A9A29A;
}

.faq__nav a.is-current::before {
	border-top-color: #847E76;
}

@media (max-width: 1100px) {
	.faq__sticky {
		gap: 30px;
	}
}

.concept-point {
	flex: 0 0 420px;
	padding: 71px 43px 0;
}

@media (max-width: 767px) {
	.concept-lead__inner {
		display: grid;
		grid-template-rows: 1fr;
		grid-template-columns: 1fr;
		gap: 0;
		width: 100%;
		margin-top: 77px;
		padding-right: 50px;
		padding-left: 50px;
	}

	.concept-lead__title {
		grid-area: 1/1;
		justify-self: end;
	}

	.concept-lead__text {
		grid-area: 1/1;
		margin-top: 80px;
		gap: 120px;
	}

	.concept-lead__text div:nth-child(odd) {
		align-self: flex-start;
	}

	.concept-process {
		display: grid;
		grid-template-rows: repeat(6, auto);
		grid-template-columns: 1fr 45px;
		gap: 40px 35px;
	}

	.concept-process .side-label {
		display: block;
		grid-row: 3/6;
		grid-column: 2/3;
		right: 0;
	}

	.concept-process .side-label__inner {
		padding: 0;
	}

	.concept-process .side-label br {
		display: none;
	}

	.concept-process .concept-process__title {
		grid-row: 1/2;
		grid-column: 1/3;
	}

	.concept-process .concept-process__text--a {
		grid-row: 2/3;
		grid-column: 1/3;
	}

	.concept-process .concept-process__img--a {
		grid-row: 3/4;
		grid-column: 1/2;
		width: auto;
	}

	.concept-process .concept-process__text--b {
		grid-row: 4/5;
		grid-column: 1/2;
	}

	.concept-process .concept-process__text--b br {
		display: none;
	}

	.concept-process .concept-process__img--b {
		grid-row: 5/6;
		grid-column: 1/2;
		width: auto;
	}

	.concept-process .concept-process__img--c {
		grid-row: 6/7;
		grid-column: 1/3;
		margin: 0 -20px 0 auto;
	}

	.concept-point {
		flex-basis: 330px;
		padding: 50px 30px 0 38px;
	}

	.concept-point__text {
		font-size: 12px;
	}

	.concept-case__main {
		width: calc(100% + 20px);
		margin-right: -20px;
	}

	.concept-case__main img {
		aspect-ratio: 360/203;
	}

	.concept-case__story {
		display: grid;
		grid-template-rows: auto auto;
		grid-template-columns: 1fr 45px;
		gap: 40px 35px;
		width: calc(100% + 20px);
		margin-right: -20px;
	}

	.concept-case__story div {
		grid-column: 1/2;
	}

	.concept-case__story .sideLabel {
		grid-row: 1/3;
		grid-column: 2/3;
		align-self: start;
		display: flex;
		flex-direction: row;
		gap: 30px;
		position: sticky;
		top: 70px;
		left: 0;
		font-size: 10px;
		line-height: 45px;
		writing-mode: vertical-rl;
	}

	.faq__nav a.is-current::before {
		border-top-color: #A9A29A;
	}
}

/* 会社案内 */

@media (max-width: 767px) {
	.company-message {
		flex-direction: column;
		gap: 46px;
	}
}

@media (max-width: 767px) {
	.company-message__ceo {
		display: flex;
		align-items: center;
		gap: 0 calc(100% * 40 / 330);
		width: 100%;
	}

	.company-message__ceo picture {
		width: calc(100% * 180 / 330);
	}

	.company-message__ceo img {
		aspect-ratio: 1;
	}
}

/* オフィス */

.office-top {
	display: grid;
	grid-template-rows: auto auto;
	grid-template-columns: 1fr calc(840 * var(--u));
	gap: 0 40px;
	margin-top: 68px;
}

@media (max-width: 767px) {
	.office-top {
		display: block;
		margin-top: 53px;
	}
}

.office-top .page-title {
	grid-row: 1/2;
	grid-column: 1/2;
	margin: 0;
}

@media (max-width: 767px) {
	.office-top .page-title {
		padding: 0 20px;
	}
}

.office-top .office-top__slider {
	grid-row: 1/3;
	grid-column: 2/3;
	margin: 10px 0 0;
}

@media (max-width: 767px) {
	.office-top .office-top__slider {
		margin: 32px 0 0;
	}
}

.office-top .office-top__info {
	grid-row: 2/3;
	grid-column: 1/2;
}

.office-map iframe {
	width: 100%;
	height: 360px;
	border: none;
}

@media (max-width: 767px) {
	.office-map {
		height: auto;
	}
}

/* モデルハウス */

.mh-hero {
	position: relative;
	z-index: +1;
}

/* 家づくりの流れ */

html:has(.flow) {
	scroll-behavior: smooth;
}

.flow {
	max-width: 1220px;
}


/* 投稿 */

.article--news .article__body,
.article--column .article__body,
.article--blog .article__body {
	gap: 0;
}

.article--news .article__body .wp-block-image,
.article--column .article__body .wp-block-image,
.article--blog .article__body .wp-block-image {
	margin: 40px 0;
}

@media (max-width: 767px) {

	.article--news .article__body .wp-block-image,
	.article--column .article__body .wp-block-image,
	.article--blog .article__body .wp-block-image {
		margin: 30px 0;
	}
}

.blog-index .blog-side__cat ul {
	max-width: calc((14.7px * 8) + 30px);
}

@media (max-width: 767px) {
	.blog-index .blog-side__cat ul {
		max-width: none;
	}
}

.article--blog #toc_container {
	border: none;
	margin: 10px 0 40px;
	padding: 20px 30px;
	background: rgba(221, 218, 215, .5);
	border-radius: 10px;
}

@media (max-width: 767px) {
	.article--blog #toc_container {
		margin: 0 0 30px;
	}
}

.article--blog #toc_container .toc_title {
	font-size: 16px;
	line-height: 2;
	text-align: left;
}

.article--blog #toc_container .toc_list {
	margin: 10px 0 0;
	font-size: 14px;
	line-height: 2;
}

@media (max-width: 767px) {
	.article--blog .related ul {
		gap: 0;
	}

	.article--blog .related li {
		border-top: 1px solid #A9A29A;
		padding: 15px 0;
	}

	.article--blog .related a {
		flex-direction: row-reverse;
		gap: 10px;
	}

	.article--blog .related img {
		width: 140px;
	}

	.article--blog .related .blog-tag {
		background: var(--c-gray40);
	}

	.article--blog .related__heading {
		font-size: 14px;
		line-height: 1.6;
	}

	.article--blog .related__heading br {
		display: none;
	}

}

.column-index .column-item__body {
	gap: 5px;
}

@media (max-width: 767px) {
	.column-index .column-item__body {
		gap: 10px;
	}
}

.event-head__date {
	border-radius: 3px;
}

.event-head__place {
	color: #202020;
}

.event-detail {
	gap: 0;
}

.event-detail .wp-block-image {
	margin: 50px 0;
}

.event-detail .wp-block-columns .wp-block-image {
	margin: 0;
}

@media (max-width: 767px) {
	.event-detail .wp-block-columns .wp-block-image {
		margin: 50px 0;
	}
}

.event-detail .wp-block-buttons {
	margin: 46px 0 0;
}

.event-detail .wp-block-buttons .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 300px;
	height: 70px;
	border-radius: 45px;
	background: var(--c-charcoal);
	color: #fff;
	transition: opacity .3s;
}

.event-detail .wp-block-buttons .wp-block-button__link:hover {
	opacity: .85;
}

@media (max-width: 767px) {

	.event-detail~#contact .wpcf7-form-control-wrap:has(#date),
	.event-detail~#contact .wpcf7-form-control-wrap:has(#time) {
		box-sizing: border-box;
		width: 100%;
	}

	#reserve-form .wpcf7-form-control-wrap:has(#date),
	#reserve-form .wpcf7-form-control-wrap:has(#time) {
		box-sizing: border-box;
		width: 100%;
	}
}

.voice-detail-head__body {
	padding-top: 0;
	align-self: end;
}

@media (max-width: 767px) {
	.voice-detail-head__body {
		padding-top: 30px;
	}
}

.interview {
	width: 800px;
}

@media (max-width: 767px) {
	.interview {
		width: calc(100% - 40px);
	}
}

.interview .concept-banner {
	width: 900px;
	margin-inline: -50px;
}

@media (max-width: 767px) {
	.interview .concept-banner {
		width: 100%;
		margin-inline: 0;
	}
}

@media (max-width: 767px) {
	.voice-spec div {
		gap: 0;
	}
}

.voice-head__lead {
	max-width: 490px;
	margin-left: 140px;
}

@media (max-width: 767px) {
	.voice-head__img1 {
		left: auto;
		width: calc(100% * 264 / 390);
		aspect-ratio: 264 / 330;
		margin: 53px 0 0;
	}

	.voice-head__img2 {
		top: calc(100vw * 375 / 390);
		right: 0;
		left: auto;
		width: calc(100% * 154 / 390);
	}

	.voice-head__lead {
		margin-left: 20px;
	}
}

@media (max-width: 767px) {
	.writer {
		display: grid;
		grid-template-rows: auto auto;
		grid-template-columns: 120px 1fr;
		gap: 20px 30px;
		padding: 30px 35px;
	}

	.writer img {
		grid-row: 1/2;
		grid-column: 1/2;
	}

	.writer div {
		display: contents;
	}

	.writer .writer__name {
		grid-row: 1/2;
		grid-column: 2/3;
		flex-direction: column;
		gap: 0;
		align-self: center;
	}

	.writer p {
		grid-row: 2/3;
		grid-column: 1/4;
	}
}

/* ページネーション */

.pagination:has(.pagination) {
	display: block;
}

.pagination .pagination {
	display: block;
	padding: 0;
}

.pagination .pagination .nav-links {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 20px;
}

.pagination .pagination .nav-links .page-numbers.next,
.pagination .pagination .nav-links .page-numbers.prev {
	width: 12px;
	align-self: stretch;
	background: center / contain no-repeat;
}

.pagination .pagination .nav-links .page-numbers.next {
	background-image: url(../img/pagination-next.svg);
}

.pagination .pagination .nav-links .page-numbers.page-numbers.prev {
	background-image: url(../img/pagination-prev.svg);
}

.column-index .pagination .pagination .nav-links {
	justify-content: flex-end;
}

.pager__prev.dummy,
.pager__next.dummy {
	visibility: hidden;
	pointer-events: none;
}

/* フォーム */

.form-section__lead .req {
	display: inline-block;
	font-size: 6px;
	vertical-align: middle;
}

.form .req {
	display: inline-block;
	font-size: 6px;
	vertical-align: middle;
}

.form__row {
	align-items: flex-start;
}

.form__row--zip>span:has(input) {
	flex: 0 0 138px;
}

.form__row--zip>span:not(:has(input)) {
	align-self: center;
}

.form__row--zip>span input {
	width: 100%;
}

@media (max-width: 767px) {
	.form__row:has(input[type="date"]) {
		flex-direction: column;
		gap: 8px;
	}

	.form__row input[type="date"],
	.form__row select {
		flex-basis: auto;
	}

	.form__row--zip>span:has(input) {
		flex-basis: 110px;
	}
}

.form__choices:has(.wpcf7-form-control-wrap) {
	display: block;
}

.form__choices .wpcf7-form-control-wrap {
	display: block;
}

.form__choices .wpcf7-form-control.wpcf7-radio {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 5px 0;
}

.form__choices .wpcf7-form-control.wpcf7-radio .wpcf7-list-item {
	display: block;
	margin: 0;
}

.form__choices .wpcf7-form-control.wpcf7-radio label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
}

@media (max-width: 767px) {
	.form__choices .wpcf7-form-control.wpcf7-radio {
		grid-template-columns: 1fr 1fr;
		gap: 8px 10px;
	}
}

.form__choices .wpcf7-form-control.wpcf7-radio input {
	flex: none;
	width: 20px;
	height: 20px;
	margin: 0;
	border: 1px solid var(--c-gray);
	border-radius: 50%;
	appearance: none;
	background: transparent;
	cursor: pointer;
}

.form__choices .wpcf7-form-control.wpcf7-radio input:checked {
	background: radial-gradient(circle, var(--c-sub) 0 4px, transparent 4.5px);
}

.form__choices .wpcf7-form-control.wpcf7-radio input:focus-visible {
	outline: 1px solid var(--c-sub);
	outline-offset: 2px;
}

/* その他 */

.gnav__main {
	height: 2em;
	overflow: hidden;
}

.gnav__main span {
	display: block;
	transition: translate .3s;
}

.gnav__main span::after {
	content: attr(data-text);
	display: block;
}

.gnav__main:hover span {
	translate: 0 -50%;
}

.gnav__sub a {
	display: block;
	width: fit-content;
	height: 2em;
	overflow: hidden;
}

.gnav__sub a span {
	display: block;
	transition: translate .3s;
}

.gnav__sub a span::after {
	content: attr(data-text);
	display: block;
}

.gnav__sub a:hover span {
	translate: 0 -50%;
}

.gnav__cta a {
	overflow: hidden;
}

.gnav__cta a span {
	display: block;
	transition: translate .3s;
}

.gnav__cta a span::after {
	content: attr(data-text);
	display: block;
}

.gnav__cta a:hover span {
	translate: 0 -50%;
}

.gnav__recruit {
	height: 2em;
	overflow: hidden;
}

.gnav__recruit span {
	display: block;
	transition: translate .3s;
	align-self: start;
}

.gnav__recruit span::after {
	content: attr(data-text);
	display: block;
}

.gnav__recruit:hover span {
	translate: 0 -50%;
}

.breadcrumb li+li::before {
	width: 6px;
	height: 3px;
	rotate: 90deg;
}

.btn-arrow {
	display: grid;
	grid-template-columns: auto 48px;
	width: fit-content;
	height: 28px;
	overflow: hidden;
	align-items: start;
}

.btn-arrow span {
	grid-row: 1/2;
	grid-column: 1/2;
	display: block;
	transition: translate .3s;
}

.btn-arrow span::after {
	content: attr(data-text);
	display: block;
}

.btn-arrow::before,
.btn-arrow::after {
	content: '';
	display: block;
	grid-row: 1/2;
	grid-column: 2/3;
	width: 48px;
	height: 24px;
}

.btn-arrow::before {
	background: #202020;
	border-radius: 50%;
}

.btn-arrow::after {
	background: url(../img/arrow-transparent.svg) 0 0 / contain no-repeat;
	animation: none;
}

.btn-arrow:hover span {
	translate: 0 -50%;
}

.btn-arrow:hover::after {
	transform: none;
	animation: btnArrow .3s linear;
}

@keyframes btnArrow {

	0%,
	100% {
		background-position: 0 0;
	}

	49% {
		background-position: 48px 0;
	}

	50% {
		opacity: 0;
		background-position: 48px 0;
	}

	51% {
		opacity: 0;
		background-position: -48px 0;
	}

	52% {
		opacity: 1;
		background-position: -48px 0;
	}

}

@media (max-width: 767px) {
	.know__list {
		gap: 0;
	}

	.know__list li {
		width: calc(100% / 3);
		flex: 0 0 auto;
	}
}

@media (max-width: 767px) {
	.concept-banner .sp-center {
		display: block;
		width: 100%;
		text-align: center;
	}
}

/* ========================================
   LINE / FORM 共通CTA
======================================== */

.ikka-contact-cta {
	box-sizing: border-box;
	width: calc(100% - 40px);
	max-width: 820px;
	margin: 50px auto;
	padding: 32px 40px 28px;
	background-color: #f4f3ef;
	background-image: url(img/common/bg-washi.jpg);
	background-repeat: repeat;
	background-size: cover;
	text-align: center;
}

.ikka-contact-cta__lead {
	margin: 0 0 24px;
	color: #333;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.7;
	letter-spacing: .12em;
}

.ikka-contact-cta__buttons {
	display: flex;
	gap: 20px;
	width: 100%;
}

.ikka-contact-cta__button {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: calc(50% - 10px);
	min-height: 58px;
	padding: 10px 45px;

	background: #333;
	color: #fff;

	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: .12em;
	text-decoration: none;

	transition: opacity .3s ease;
}

.ikka-contact-cta__button--line {
	background: #61c35f;
}

.ikka-contact-cta__button::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 22px;

	width: 8px;
	height: 8px;

	border-top: 1px solid #fff;
	border-right: 1px solid #fff;

	transform: translateY(-50%) rotate(45deg);
}

.ikka-contact-cta__button:hover {
	color: #fff;
	opacity: .75;
}

.ikka-contact-cta__tel {
	margin: 22px 0 0;
	font-size: 18px;
	line-height: 1.5;
	letter-spacing: .08em;
}

.ikka-contact-cta__tel a {
	color: #333;
	text-decoration: none;
}

.ikka-contact-cta__hours {
	margin: 5px 0 0;
	color: #595757;
	font-size: 12px;
	line-height: 1.6;
	letter-spacing: .04em;
}

@media screen and (max-width: 767px) {

	.ikka-contact-cta {
		width: calc(100% - 30px);
		margin: 35px auto;
		padding: 28px 18px 24px;
	}

	.ikka-contact-cta__lead {
		margin-bottom: 20px;
		font-size: 14px;
		line-height: 1.8;
		letter-spacing: .08em;
	}

	.ikka-contact-cta__buttons {
		flex-direction: column;
		gap: 10px;
	}

	.ikka-contact-cta__button {
		width: 100%;
		min-height: 54px;
		padding: 10px 40px;
		font-size: 13px;
	}

	.ikka-contact-cta__button::after {
		right: 20px;
		width: 7px;
		height: 7px;
	}

	.ikka-contact-cta__tel {
		margin-top: 18px;
		font-size: 17px;
	}

	.ikka-contact-cta__hours {
		margin-top: 5px;
		font-size: 11px;
	}
}

.know__list {
	display: flex;
	justify-content: center;
}

.know__list li {
	width: 390px;
}

.know__list:has(li:nth-child(3)) {
	display: grid;
}

.know__list:has(li:nth-child(3)) li {
	width: auto;
}

@media (max-width: 767px) {
	.know__list li {
		width: 50%;
	}

	.know__list:has(li:nth-child(3)) li {
		width: calc(100%/3);
	}
}

/* ========================================
   reCAPTCHA
======================================== */

/* reCAPTCHA */
.grecaptcha-badge {
	visibility: hidden;
}

.form__submit-area {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.form__submit-area .form__submit {
	width: 100%;
}

.form__submit-area .wpcf7-spinner {
	position: absolute;
	top: 32px;
	right: 20px;
	margin: 0;
}

.recaptcha-notice {
	font-size: 12px;
	line-height: 1.8;
	color: #666;
	text-align: center;
	margin: 0;
}

@media (max-width: 767px) {
	.form__submit-area .wpcf7-spinner {
		top: 23px;
	}
}