@charset "utf-8";

/* dummy
.tc_header:empty::after {
	content: "ヘッダーが入ります。";
}
.tc_footer:empty::after {
	content: "フッターが入ります。";
}
.tc_header:empty,
.tc_footer:empty {
	display: flex;
	justify-content: center;
	align-items: center;
}
.tc_footer:empty {
	min-height: 500px;
	color: white;
}
.arrow-sm::after {
	background-image: url(https://www.takenaka.co.jp/cmn/img/arrow-sm.svg);
} */

.phrase {
	display: inline-block;
}

/**
 * Smart Community
 * -------------------------------------------------- */
/*main {
	margin-bottom: 0;
}*/
@media print, screen and (min-width: 768px) {
	.under h1.index--title::after {
		content: attr(data-sub);
	}
}
.main.under img {
	max-width: 100%;
	height: auto;
	min-height: 1px;
}

.smart-community__inner {
	margin: 120px 0;
}
@media print, screen and (max-width: 767px) {
	.smart-community__inner {
		margin: 96px 0;
	}
}

@media print, screen and (min-width: 768px) {
	.v-mb { display: none; }
}
@media print, screen and (max-width: 767px) {
	.v-dt { display: none; }
}

.smart-community__visual img {
	width: 100%;
}
.under .topics--title01 {
	font-size: 30px;
}
.under > .container > .topics--title01 {
	margin: 40px 0;
}
@media print, screen and (max-width: 767px) {
	.under .topics--title01 {
		font-size: 22px;
	}
}

/* :::::: 私たちが目指す未来 :::::: */
.smart-community__intro .visual {
	position: relative;
	padding: 3.2em 0 3em;
	font-size: 22px;
	text-align: center;
}
.smart-community__intro .visual span {
	position: absolute;
	font-weight: 700;
	white-space: nowrap;
}
.smart-community__intro .visual .t1 {
	top: 0;
	right: 0;
	left: 0;
	color: #ec5e3c;
}
.smart-community__intro .visual .t2 {
	left: 5%;
	bottom: 0;
	color: #4b97df;
}
.smart-community__intro .visual .t3 {
	right: 5%;
	bottom: 0;
	color: #19940b;
}
.smart-community__intro .content h2 {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: 0;
	font-size: 32px;
	font-family: "Yu Mincho", "YuMincho";
	font-weight: 500;
	white-space: nowrap;
}
.smart-community__intro .content h2::after {
	display: none;
}
.smart-community__intro .content h2 b {
	font-weight: inherit;
}
.smart-community__intro .content p {
	margin-top: 1.5em;
	line-height: 1.6;
}
.smart-community__intro .content .link {
	margin-top: 3em;
}
@media print, screen and (min-width: 768px) {
	.smart-community__intro {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.smart-community__intro .visual {
		flex-basis: 52%;
	}
	.smart-community__intro .visual .t2 {
		width: 40%;
	}
	.smart-community__intro .visual .t3 {
		width: 40%;
	}
	.smart-community__intro .content {
		flex-basis: 45%;
	}
	.smart-community__intro .content h2 {
		letter-spacing: .04em;
	}
}
@media print, screen and (max-width: 767px) {
	.smart-community__intro .visual {
		padding-bottom: 2.8em;
		font-size: calc(12vw / 3.75);
	}
	.smart-community__intro .visual img {
		width: calc(180vw / 3.75);
	}
	.smart-community__intro .visual .t2 {
		left: calc(12vw / 3.75);
	}
	.smart-community__intro .visual .t3 {
		right: calc(12vw / 3.75);
	}
	.smart-community__intro .content {
		margin-top: 40px;
		padding: 0 calc(12vw / 3.75);
	}
	.smart-community__intro .content h2 {
		font-size: calc(26vw / 3.75);
	}
}
@media print, screen and (max-width: 480px) {
	.smart-community__intro .content {
		padding: 0;
	}
}

/* :::::: 新着情報 :::::: */
.smart-community__info {
	margin-top: 80px;
}
.smart-community__info li {
	margin-top: .7em;
}
.smart-community__info .date {
	color: #777;
}
@media print, screen and (min-width: 481px) {
	.smart-community__info .detail {
		margin-left: 2em;
	}
}
@media print, screen and (max-width: 767px) {
	.smart-community__info {
		margin-top: 64px;
	}
}
@media print, screen and (max-width: 480px) {
	.smart-community__info li {
		margin-top: 1em;
		line-height: 1.8;
	}
	.smart-community__info a {
		display: block;
		padding: 0;
	}
	.smart-community__info a::after {
		display: none;
	}
	.smart-community__info .date {
		display: block;
	}
}

/* :::::: ともにつくる 未来のまちづくり :::::: */
.project__list {
	display: flex;
	flex-wrap: wrap;
	margin: 32px auto 0;
}
.project__item {
	text-align: center;
}
.project__item a {
	display: block;
}
.project__item a[aria-current="page"] {
	opacity: .3;
	pointer-events: none;
}
.project__thumb {
	margin-bottom: 12px;
}
@media print, screen and (min-width: 768px) {
	.smart-community__project .project__item {
		flex-basis: calc(25% - 96px / 4);
		max-width: calc(25% - 96px / 4);
	}
	.smart-community__project .project__item:not(:nth-child(4n+1)) {
		margin-left: 32px;
	}
	.smart-community__project .project__item:nth-child(n+5) {
		margin-top: 32px;
	}
}
@media print, screen and (max-width: 767px) {
	.project__list {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		margin-top: 32px;
	}
	.project__item {
		flex-basis: calc(50% - 40px);
	}
	.project__item a {
		max-width: 9em;
		margin: 0 auto;
		text-align: left;
	}
	.project__item:nth-child(2n) {
		margin-left: 40px;
	}
	.project__item:nth-child(n+3) {
		margin-top: 24px;
	}
	.project__thumb {
		margin-bottom: 8px;
	}
}

/* :::::: 未来へ向けたロードマップ :::::: */
.smart-community__loadmap .mod-text--main {
	margin: 0;
}
.smart-community__loadmap .mod-text--main + .mod-text--main {
	margin: 8px 0 30px;
}
.smart-community__loadmap .icon_zoom {
	cursor: pointer;
	font-size: 1em;
	line-height: 1.3;
	font-family: inherit;
	margin-top: 10px;
	padding-left: 24px;
}
.smart-community__loadmap .icon_zoom::before {
	top: calc(50% - 9px);
	width: 17px;
	height: 17px;
}
.viewer img {
	max-width: none !important;
}
.l-zoom {
	z-index: 10000001;
	position: fixed;
}
.l-zoom:not(.is-active) {
	pointer-events: none;
	opacity: 0;
	transform: scale(.94);
}
.l-zoom.is-anim {
	transition: opacity .3s, transform .3s;
}
.l-zoom .close {
	cursor: pointer;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 8px;
	right: 8px;
	width: 72px;
	height: 72px;
	fill: none;
	stroke: currentcolor;
	stroke-width: 2;
	background: rgba(255,255,255,.9);
	backface-visibility: hidden;
}

.l-zoom,
.l-zoom .viewer,
.l-zoom .fs-viewer-wrapper {
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}
.l-zoom .viewer,
.l-zoom .fs-viewer-wrapper,
.l-zoom .fs-viewer-controls {
	position: absolute;
}
.l-zoom .fs-viewer-wrapper {
	height: auto;
}
.l-zoom .fs-viewer-viewport {
	top: 10vw;
	right: 10vw;
	bottom: 10vw;
	left: 10vw;
}
.l-zoom .fs-viewer-controls {
	display: flex;
	justify-content: space-between;
	left: 0;
	bottom: 8px;
	width: 100%;
	height: 0;
}
.l-zoom .fs-viewer-control {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	bottom: 0;
	width: 154px;
	height: 72px;
	text-transform: uppercase;
	background: rgba(255,255,255,.9);
	backface-visibility: hidden;
}
.l-zoom .fs-viewer-control::before {
	content: "";
	display: inline-block;
	position: relative;
	top: -.1em;
	width: 1.6em;
	height: 1.6em;
	margin-right: .5em;
	vertical-align: middle;
	background: center / cover no-repeat;
}
.l-zoom .fs-viewer-control_zoom_out {
	cursor: pointer;
	left: 8px;
}
.l-zoom .fs-viewer-control_zoom_out::before {
	background-image: url(../img/ico_zoomout.svg);
}
.l-zoom .fs-viewer-control_zoom_in {
	cursor: pointer;
	right: 8px;
}
.l-zoom .fs-viewer-control_zoom_in::before {
	background-image: url(../img/ico_zoomin.svg);
}
.l-zoom .fs-viewer-control_previous,
.l-zoom .fs-viewer-control_next {
	display: none;
}
:focus,
:focus-visible {
	outline: -webkit-focus-ring-color auto 1px !important;
}
area {
	outline: 1px solid red;
}
area:-webkit-any-link {
	background: rgba(255,0,0,.5);
}
.viewer_note {
	position: absolute;
	right: 168px;
	bottom: 8px;
	left: 168px;
	height: 72px;
	padding: 0 8px;
	backface-visibility: hidden;
	pointer-events: none;
}
@media print, screen and (min-width: 768px) {
	.l-zoom .fs-viewer-control::before {
		top: -.1em;
	}
	.viewer_note {
		display: flex;
		justify-content: center;
		align-items: center;
	}
}
@media print, screen and (max-width: 767px) {
	.l-zoom .close {
		width: 56px;
		height: 56px;
		color: #4b97df;
	}
	.l-zoom .fs-viewer-control {
		bottom: 56px;
		width: 120px;
		height: 48px;
		color: #4b97df;
	}
	.viewer_note {
		align-items: flex-end;
		right: 8px;
		bottom: 8px;
		left: 8px;
		height: 48px;
		font-size: 10px;
	}
}

/* :::::: 竹中工務店のまちづくり事例 :::::: */
.case__list {
	display: flex;
	flex-wrap: wrap;
	margin-top: 64px;
}
.case__item {
	text-align: center;
}
.case__item a {
	display: block;
}
.case__thumb {
	margin-bottom: 32px;
}
.case__text {
	margin-top: 12px;
	font-size: 14px;
	line-height: 1.5;
	text-align: left;
}
.case__item .case-value__link {
	font-size: 14px;
}
.case__item .case-value__link b {
	font-size: 16px;
}
@media print, screen and (min-width: 768px) {
	.case__item {
		flex-basis: calc(33.333% - 200px / 3);
		max-width: 280px;
	}
	.smart-community__section .case__list {
		justify-content: flex-start;
	}
	.smart-community__section .case__item {
		flex-basis: calc(25% - 72px);
		max-width: 210px;
	}
	.smart-community__inner .case__item:not(:nth-child(3n+1)) {
		margin-left: 100px;
	}
	.smart-community__section .case__item:not(:nth-child(4n+1)) {
		margin-left: 96px;
	}
	.smart-community__inner .case__item:nth-child(n+4),
	.smart-community__section .case__item:nth-child(n+5) {
		margin-top: 64px;
	}
}
@media print, screen and (max-width: 767px) {
	.smart-community__inner .case__list {
		justify-content: space-between;
		margin-top: 40px;
	}
	.smart-community__inner .case__item {
		flex-basis: calc(50% - 16px);
	}
	.smart-community__section .case__list {
		justify-content: space-between;
	}
	.smart-community__section .case__item {
		flex-basis: calc(50% - 16px);
	}
	.smart-community__section .case__item img {
		max-width: 210px;
	}
	.smart-community__inner .case__item:nth-child(n+3),
	.smart-community__section .case__item:nth-child(n+3) {
		margin-top: 32px;
	}
	.case__thumb {
		margin-bottom: 16px;
	}
}
@media print, screen and (max-width: 480px) {
	.smart-community__section .case__item img {
		max-width: 140px;
	}
}

/* :::::: 竹中工務店と創る超スマートシティについて :::::: */
.smart-community__about {
	margin-top: 120px;
	padding: 40px;
	border: 1px solid #e5e5e5;
}
.smart-community__about h2 {
	margin: 0;
	border: 0;
	font-size: 25px;
	font-weight: 500;
}
.smart-community__about h2::after {
	display: none;
}
.smart-community__about p {
	margin-top: .7em;
	font-size: 14px;
	line-height: 1.5;
}
.smart-community__about .link {
	text-align: right;
	font-size: 16px;
}
.smart-community__about .link .arrow-md::after {
	top: .5em;
}
@media print, screen and (min-width: 768px) {
	.smart-community__about::after {
		content: "";
		display: block;
		clear: both;
	}
	.smart-community__about .about__image {
		float: left;
		width: 336px;
	}
	.smart-community__about h2,
	.smart-community__about p {
		float: right;
		width: calc(100% - 373px);
	}
}
@media print, screen and (max-width: 767px) {
	.smart-community__about {
		padding: 16px;
	}
	.smart-community__about .about__image {
		margin-top: 1em;
	}
	.smart-community__about .about__image img {
		width: 100%;
	}
	.smart-community__about p {
		margin-top: 1em;
	}
}


/**
 * 下層
 * -------------------------------------------------- */
.smart-community__section {
	margin: 80px 0 160px;
	padding-top: 80px;
	text-align: center;
}
.smart-community__section h1 {
	padding-bottom: 0;
	border-bottom: 0;
	font-size: 24px;
}
.smart-community__section h1::after {
	display: none;
}
.smart-community__section h2,
.smart-community__section p {
	text-align: left;
}
.smart-community__section .mod-text--main {
	max-width: 700px;
	margin: 0 auto;
}
.smart-community__section .visual {
	margin-top: 56px;
}
.smart-community__section h2 {
	font-size: 20px;
}
@media print, screen and (max-width: 767px) {
	.smart-community__section {
		margin: 80px 0;
		padding-top: 80px;
	}
	.smart-community__section .visual {
		margin-top: 32px;
	}
}

/* :::::: 吹き出し :::::: */
.smart-community__user {
	max-width: 1000px;
	margin: 80px auto;
}
.smart-community__user li {
	margin-top: 56px;
}
.smart-community__user figure {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	max-width: 172px;
}
.smart-community__user figure img {
	border-radius: 172px;
}
.smart-community__user figcaption {
	position: relative;
	min-width: 96px;
	margin: -2em -1em 0;
	padding: .5em 1.5em;
	color: #fff;
	font-size: 14px;
	white-space: nowrap;
	text-align: center;
}
.smart-community__user .u1 figcaption { background: #ec5e3c; }
.smart-community__user .u2 figcaption { background: #19940b; }
.smart-community__user .u3 figcaption { background: #4b97df; }
.smart-community__user .balloon {
	display: flex;
	align-items: center;
	position: relative;
	border: 2px solid;
	border-radius: 26px;
}
.smart-community__user .u1 .balloon { border-color: #ec5e3c; }
.smart-community__user .u2 .balloon { border-color: #19940b; }
.smart-community__user .u3 .balloon { border-color: #4b97df; }
.smart-community__user .tail {
	position: absolute;
	bottom: 48px;
}
.smart-community__user .stroke {
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.smart-community__user .u1 .stroke { stroke: #ec5e3c; }
.smart-community__user .u2 .stroke { stroke: #19940b; }
.smart-community__user .u3 .stroke { stroke: #4b97df; }
.smart-community__user dl {
	padding: 1em 3em;
}
.smart-community__user dt {
	font-size: 18px;
	font-weight: 700;
}
.smart-community__user .u1 dt { color: #ec5e3c; }
.smart-community__user .u2 dt { color: #19940b; }
.smart-community__user .u3 dt { color: #4b97df; }
.smart-community__user dd {
	margin-top: 1.2em;
	line-height: 1.6;
	text-align: left;
}
@media print, screen and (min-width: 768px) {
	.smart-community__user li {
		display: flex;
		justify-content: space-between;
		text-align: left;
	}
	.smart-community__user .u1,
	.smart-community__user .u3 {
		margin-left: 3%;
	}
	.smart-community__user .u2 {
		margin-right: 3%;
	}
	.smart-community__user figure {
		flex-basis: 172px;
	}
	.smart-community__user .balloon {
		flex-basis: 70%;
		height: 204px;
	}
	.smart-community__user .u2 .balloon {
		order: -1;
	}
	.smart-community__user .u1 .tail,
	.smart-community__user .u3 .tail {
		right: calc(100% - 2px);
	}
	.smart-community__user .u2 .tail {
		left: calc(100% - 2px);
		transform: scaleX(-1);
	}
}
@media print, screen and (max-width: 767px) {
	.smart-community__user li {
		margin-top: 40px;
	}
	.smart-community__section-img {
		margin-top: 40px;
	}
	.smart-community__user {
		margin-top: 48px;
	}
	.smart-community__user figure {
		max-width: 140px;
	}
	.smart-community__user figcaption {
		margin-right: -3em;
		margin-left: -3em;
	}
	.smart-community__user .balloon {
		margin-top: 40px;
	}
	.smart-community__user .tail {
		bottom: calc(100% - 4px);
		left: 64px;
		width: 24px;
		height: 32px;
		transform: rotate(90deg);
	}
	.smart-community__user dl {
		margin-top: 1.2em;
		padding-bottom: 1.5em;
	}
	.smart-community__user dd {
		margin-top: .8em;
	}
}

/* :::::: 他のシーンをみる :::::: */
.smart-community__relation {
	padding: 64px 0;
	text-align: center;
}
.smart-community__relation h3 {
	margin: 0;
	padding: 0;
	border: 0;
}
@media print, screen and (min-width: 768px) {
	.smart-community__relation .project__item {
		fiex-basis: calc(25% - 120px / 4);
		width: calc(25% - 120px / 4);
	}
	.smart-community__relation .project__item {
		margin-top: 0;
		margin-left: 40px;
	}
	.smart-community__relation .project__item:nth-child(4n+1) {
		margin-left: 0;
	}
	.smart-community__relation .project__item:nth-child(n+5) {
		margin-top: 32px;
	}
	.smart-community__relation .project__thumb {
		margin-bottom: 16px;
	}
}
.title--arrowAfter {
	display: inline-block;
	overflow: hidden;
	padding: 0 40px 12px 0;
}
.title--arrowAfter::after {
	height: 5px;
}
.title--arrowAfter::before {
	content: "";
	position: absolute;
	border-bottom: solid 1px #8d8b8b;
	bottom: 0px;
	left: 0px;
	content: "";
	display: block;
	-webkit-transition: .5s;
	transition: .5s;
	width: 100%;
	height: 1px;
}
.title--arrowAfter:hover::before {
	animation: lineLink .5s;
	width: 100%;
	border-color: #3e3a39;
}
.smart-community__relation .title--arrowAfter {
	margin-top: 64px;
}
@keyframes lineLink {
	50% { transform: translateX(100%); animation-timing-function: cubic-bezier(.19,1,.22,1); }
	51% { opacity: 0; }
	52% { transform: translateX(-100%); }
	53% { opacity: 1; }
	to { transform: none; }
}
@media print, screen and (max-width: 767px) {
	.smart-community__relation {
		padding: 64px 0 80px;
	}
	.smart-community__relation .title--arrowAfter {
		display: block;
		margin: 40px 8px 0;
		text-align: left;
	}
}


/**
 * in-view.min.js
 * -------------------------------------------------- */
.js-inview:not(.is-inview) {
	opacity: 0;
	transform: translateY(24px);
}
.js-inview.is-anim {
	transition: opacity 1s, transform 1s cubic-bezier(.3,1,.7,1);
}





/* 保留 */
.smart-community__section-detail {
	margin-top: 80px;
	text-align: left;
}
.smart-community__section-detail .topics--title02 {
	padding-bottom: .5em;
	border-bottom: 2px solid #d0d0d0;
}
.smart-community__section-detail li {
	margin-top: .7em;
}
@media print, screen and (min-width: 768px) {
	.smart-community__section-detail {
		max-width: 565px;
	}
}
@media print, screen and (max-width: 767px) {
	.smart-community__section-detail {
		margin-top: 40px;
	}
}