@charset "utf-8";

/* ===============================================
   トップページ（SP：390px 基準）
   =============================================== */
@media (max-width: 767.98px) {

	/* --- ヒーロー --- */
	.top-hero::before,
	.top-hero::after {
		display: none;
	}
	/* 画面の高さ − ヘッダー（最低 680px） */
	body .top-hero.wp-block-cover {
		min-height: max(680px, calc(100svh - 62px));
		padding: 72px 20px 24px;
	}
	.top-hero .wp-block-cover__inner-container {
		padding: 0;
	}
	.top-hero__title {
		margin: 0;
		font-size: 46px;
		line-height: 1.1;
		letter-spacing: -.5px;
	}
	/* 英語：見出しの改行は使わず、幅で折り返す */
	html[lang^="en"] .top-hero__title br {
		display: none;
	}
	.top-hero .ct-top-width {
		margin-top: 16px !important;
		padding: 8px 4px 8px 8px;
		border-radius: 8px;
		background: rgba(255, 255, 255, .5);
	}
	.top-hero .top-hero__lead {
		font-size: 18px;
		font-weight: 600;
		line-height: 1.5;
	}
	.top-hero .top-hero__lead:last-child {
		margin-bottom: 0;
	}
	.top-hero .top-hero__actions {
		margin-top: 26px !important;
	}
	.top-hero__btn .wp-block-button__link {
		gap: 8px;
		padding: 16px 26px;
		border-radius: 4px;
		font-size: 16px;
		line-height: 22px;
		letter-spacing: .6px;
	}
	.top-hero__btn .wp-block-button__link::after {
		font-size: 16px;
	}

	/* --- News & Insights --- */
	.top-news {
		padding: 60px 20px;
	}
	.top-news .top-news__head {
		flex-wrap: nowrap;
		align-items: flex-end;
		margin-bottom: 32px;
	}
	.top-news__title {
		margin: 0 0 8px;
		font-size: 32px;
		line-height: 32px;
	}
	/* 日本語：セクション見出しは 24px にそろえる */
	html[lang^="ja"] :is(.top-news__title, .svc-exp__title, .lp-members h2, .top-cs__title, .cf7-band h2) {
		font-size: 24px;
	}
	.top-news__sub {
		max-width: 220px;
		font-size: 15px;
		font-weight: 500;
		line-height: 22px;
		color: #555;
	}
	.top-news__viewall {
		flex: 0 0 auto;
		margin-left: 16px;
	}
	.top-news__viewall a {
		gap: 4px;
		padding-bottom: 8px;
		font-size: 13px;
		font-weight: 600;
		line-height: 20px;
	}
	.top-news__list .wp-block-post-template {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.top-news__list .wp-block-post {
		padding-top: 16px;
		border-top: 1.5px solid hsl(from var(--tn-cat-color, var(--line)) h s l / .2);
	}
	.top-news__img {
		aspect-ratio: 350 / 200;
		margin-bottom: 16px;
	}
	.top-news__img img {
		aspect-ratio: 350 / 200;
	}
	.top-news__cat {
		margin-bottom: 8px;
		font-size: 12px;
		font-weight: 600;
		line-height: 18px;
	}
	.top-news__cat a {
		padding: 4px 8px;
	}
	.top-news__card-title {
		margin: 0;
		font-size: 17px;
		line-height: 24px;
	}
	.top-news__date {
		margin: 0;
		padding: 8px 0 12px;
		font-family: "Open Sans", sans-serif;
		font-size: 14px;
		line-height: 21px;
		color: #999;
	}
	.top-news__more,
	a.top-news__more {
		gap: 4px;
		font-size: 14px;
		font-weight: 600;
		line-height: 21px;
	}

	/* --- 実績の数字（2 × 2） --- */
	.lp-results:not(.cf7-band) {
		padding: 60px 20px !important;
	}
	/* 帯の中の入れ子の箱は余白なし */
	.lp-results .lp-results:not(.cf7-band) {
		margin: 0;
		padding: 0 !important;
	}
	body .lp-results.wp-block-group:not(.cf7-band) > .lp-results-cols {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 40px 16px;
		max-width: none !important;
	}
	.lp-results:not(.cf7-band) > .lp-results-cols > .wp-block-column {
		height: auto;
		margin: 0;
		padding: 0;
		border: 0;
	}
	.lp-results:not(.cf7-band) > .lp-results-cols > .wp-block-column:nth-child(even) {
		padding-left: 16px;
		border-left: 1px solid rgba(255, 255, 255, .2);
	}
	.lp-results:not(.cf7-band) .lp-results__num {
		font-size: 58px;
		line-height: 58px;
	}
	.lp-results:not(.cf7-band) .lp-results__unit {
		padding-top: 4px;
		font-size: 20px;
		line-height: 20px;
		white-space: normal;
	}
	.lp-results:not(.cf7-band) .lp-results__label {
		padding-top: 4px;
		font-size: 14px;
		line-height: 20px;
		white-space: normal;
	}

	/* --- Services and Expertise --- */
	.svc-exp {
		padding: 60px 20px;
	}
	.svc-exp .svc-exp__head {
		gap: 16px;
		margin-bottom: 32px;
	}
	.svc-exp .svc-exp__head > .wp-block-column:last-child {
		padding-top: 0;
	}
	.svc-exp__title {
		font-size: 32px;
		line-height: 1.1;
	}
	.svc-exp__lead {
		font-size: 16px;
		line-height: 1.8;
		color: #555;
	}
	.svc-label,
	.exp-label {
		margin-bottom: 16px;
		font-size: 16px;
		line-height: 22px;
	}
	.svc-label::before,
	.exp-label::before {
		width: 24px;
		opacity: .8;
	}
	.svc-exp .svc-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
	.svc-card .wp-block-button__link {
		aspect-ratio: auto;
		min-height: 120px;
		padding: 16px 20px 16px 16px;
		border-radius: 6px;
		font-size: 18px;
		line-height: 1.2;
	}
	.svc-card .wp-block-button__link::after {
		right: 20px;
		bottom: 16px;
		font-size: 14px;
	}
	.svc-exp .svc-more,
	.svc-exp .exp-more {
		margin-top: 24px;
	}
	.svc-more .wp-block-button,
	.exp-more .wp-block-button {
		width: 100%;
	}
	.svc-more .wp-block-button__link,
	.exp-more .wp-block-button__link {
		justify-content: center;
		gap: 8px;
		width: 100%;
		padding: 16px 24px;
		font-size: 16px;
		line-height: 1;
		letter-spacing: .5px;
	}
	.svc-exp__sep {
		margin: 40px 0 32px;
		border-top-color: #d8d8d8;
	}
	/* Services のカードと同じ形（2列） */
	.svc-exp .exp-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
	.exp-item .wp-block-button__link {
		min-height: 120px;
		padding: 16px 20px 16px 16px;
		font-size: 18px;
		line-height: 1.2;
	}
	.exp-item .wp-block-button__link::after {
		right: 20px;
		bottom: 16px;
		font-size: 14px;
	}
	.exp-more .wp-block-button__link {
		padding: 12px 24px;
	}

	/* --- Meet the Leadership Team --- */
	.lp-members {
		padding: 60px 20px !important;
	}
	body .lp-members > .wp-block-columns {
		gap: 32px;
	}
	.lp-members h2,
	.lp-members h2.wp-block-heading {
		max-width: 280px;
		padding-top: 0;
		font-size: 32px;
		line-height: 35px;
	}
	.lp-members p {
		max-width: none;
		padding: 16px 0 24px;
		font-size: 15px;
		line-height: 1.8;
	}
	.lp-members .svc-btn .wp-block-button__link {
		gap: 8px;
		padding: 16px 24px;
		border-radius: 4px;
		font-size: 16px;
		line-height: 22px;
		letter-spacing: .6px;
	}
	.lp-members .lp-member-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 4px;
	}
	.lp-member-card {
		border: 0;
		border-radius: 7px;
	}
	.lp-member-photo {
		background: rgba(0, 0, 0, .18);
	}
	.lp-member-photo img {
		aspect-ratio: 173 / 170;
		object-position: 50% 20%;
	}
	.lp-member-card p {
		padding: 12px 16px;
		font-size: 15px;
		line-height: 15px;
	}

	/* --- Case Studies --- */
	.top-cs {
		padding: 60px 20px;
		background: #f6f5f2;
	}
	.top-cs .top-cs__head {
		flex-wrap: nowrap;
		align-items: flex-end;
		margin-bottom: 24px;
		padding-bottom: 24px;
		border-bottom-color: #d8d8d8;
	}
	.top-cs__title {
		font-size: 32px;
		line-height: 32px;
	}
	.top-cs__sub {
		padding-top: 8px;
		font-size: 15px;
		font-weight: 500;
		line-height: 21px;
		color: #555;
	}
	.top-cs__viewall {
		flex: 0 0 auto;
		margin-left: 16px;
	}
	.top-cs__viewall a {
		gap: 4px;
		padding-bottom: 8px;
		font-size: 13px;
		font-weight: 600;
		line-height: 20px;
	}
	.top-cs__list .wp-block-post-template {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.top-cs__list .wp-block-post {
		padding-bottom: 20px;
		border-color: #e0e0e0;
		border-radius: 6px;
	}
	.top-cs__img {
		aspect-ratio: 350 / 200;
		margin-bottom: 20px;
	}
	.top-cs__img img {
		aspect-ratio: 350 / 200;
	}
	.top-cs__cat {
		margin: 0 20px;
		font-size: 12px;
		font-weight: 600;
		line-height: 18px;
		letter-spacing: 1px;
	}
	.top-cs__cat,
	.top-cs__cat a {
		color: #a67c00;
	}
	.top-cs__card-title {
		margin: 0 20px;
		padding: 8px 0 16px;
		font-size: 17px;
		line-height: 24px;
	}
	.top-cs__more,
	a.top-cs__more {
		gap: 4px;
		margin: 0 20px;
		font-size: 14px;
		font-weight: 600;
		line-height: 21px;
	}

	/* --- Stay Updated --- */
	.cf7-band {
		padding: 56px 20px !important;
	}
	body .cf7-band > .lp-results-cols {
		gap: 32px;
	}
	body .lp-results.wp-block-group.cf7-band > .lp-results-cols {
		max-width: none !important;
	}
	/* 実績の数字用の列の余白・区切り線を外す */
	.cf7-band > .lp-results-cols > .wp-block-column {
		padding: 0;
		border-top: 0;
	}
	/* 説明文 → フォーム：32px */
	.cf7-band > .lp-results-cols > .wp-block-column:last-child {
		padding-top: 32px;
	}
	.cf7-band h2,
	.cf7-band h2.wp-block-heading {
		font-size: 32px;
		line-height: 32px;
	}
	.cf7-band .lp-results-cols > .wp-block-column:first-child p {
		margin-top: 16px;
		font-size: 16px;
		line-height: 27px;
		color: rgba(255, 255, 255, .8);
	}
	.cf7-news__row {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.cf7-news__label {
		margin-bottom: 6px;
		font-family: "Open Sans", sans-serif;
		font-weight: 400;
		line-height: 18px;
		letter-spacing: 1px;
		text-transform: uppercase;
	}
	.cf7-news .cf7-news__input {
		display: block;
		margin: 0;
		height: 56.5px;
		padding: 0 16px;
		border-color: rgba(255, 255, 255, .25);
		border-radius: 8px;
		font-family: "Open Sans", sans-serif;
		line-height: 20px;
		color: rgba(255, 255, 255, .8);
	}
	body .cf7-news p.cf7-news__required {
		margin: 0 0 16px;
		font-family: "Open Sans", sans-serif;
		line-height: 18px;
		color: rgba(255, 255, 255, .8);
	}
	.cf7-news__policy {
		margin-bottom: 24px;
	}
	.cf7-news__policy label {
		font-size: 16px;
		line-height: 24px;
		color: rgba(255, 255, 255, .8);
	}
	.cf7-news__policy input[type="checkbox"] {
		margin-top: 4px;
	}
	.cf7-news .cf7-news__btn {
		height: 64px;
		border-radius: 4px;
		font-size: 16px;
		line-height: 1;
		letter-spacing: .6px;
	}
	.cf7-news .cf7-news__note {
		margin-top: 16px;
		font-family: "Open Sans", sans-serif;
		font-size: 14px;
		line-height: 20px;
		color: rgba(255, 255, 255, .8);
	}
}
