.wp-block-group {
	&.is-style-main-visual {
		> .swiper-wrapper,
		> .swiper-text,
		> .swiper-scroll {
			margin: 0;
		}
		&:first-child {
			margin-block-start: calc(var(--masthead-height) * -1);
		}
		block-size: calc(100dvh - var(--spfloatmenu-height, 0px) - var(--wp-admin--admin-bar--height, 0px));
		margin-block-start: calc(var(--masthead-height)*-1);
		margin-inline-start: calc(50% - 50vw);
		position: relative;
		inline-size: 100vw;
		.swiper-scroll {
			border-left-width: 2px;
			border-left-style: solid;
			border-left-color: var(--wp--preset--color--white);
			border-top-width: 2px;
			border-top-style: solid;
			border-top-color: var(--wp--preset--color--white);
			bottom: 0;
			color: var(--wp--preset--color--light-01);
			font-family: var(--wp--preset--font-family--latin);
			letter-spacing: .2rem;
			overflow: hidden;
			padding-block: 0;
			padding-inline: 1rem;
			position: absolute;
			right: 0;
			text-transform: uppercase;
			writing-mode: vertical-rl;
			z-index: 1;
		}
		.swiper-scroll:before {
			animation-duration: 2s;
			animation-fill-mode: forwards;
			animation-iteration-count: infinite;
			animation-name: scrollbg;
			background-color: var(--wp--preset--color--secondary);
			content: "";
			block-size: 100%;
			inset-inline-start: 0;
			position: absolute;
			inset-block-start: 0;
			transform: translateY(-100%);
			inline-size: 100%;
			z-index: -1;
		}
		.swiper-slide img {
			block-size: 100%;
			object-fit: cover;
			opacity: .6;
			inline-size: 100%;
		}
		.swiper-text {
			align-items: center;
			display: flex;
			block-size: 100%;
			justify-content: center;
			inset-inline-start: 0;
			position: absolute;
			inset-block-start: 0;
			inline-size: 100%;
			z-index: 1;
		}
		.swiper-text .content {
			align-items: flex-start;
			display: flex;
			flex-flow: column;
			block-size: 100%;
			justify-content: flex-end;
			inline-size: 100%;
		}
		.swiper-text .content .catchcopy-english {
			border-block-end-width: 2px;
			border-block-end-style: solid;
			border-block-end-color: var(--wp--preset--color--white);
			color: var(--wp--preset--color--light-01);
			content: "Mobile Crane Pro Group";
			font-family: var(--wp--preset--font-family--latin);
			font-size: var(--wp--preset--font-size--lg);
			letter-spacing: .1rem;
			line-height: 1;
			margin-inline-start: 1rem;
			padding-block-end: .5rem;
			padding-inline-start: .5rem;
			padding-inline-end: .5rem;
			text-transform: uppercase;
		}
		.swiper-text .content .catchcopy {
			color: var(--wp--preset--color--light-01);
			font-size: var(--wp--preset--font-size--4-xl);
			font-style: italic;
			font-weight: 700;
			letter-spacing: .2rem;
			line-height: 1.2;
			margin-block-start: 1rem;
		}
		.swiper-text .content .primary {
			color: var(--wp--preset--color--primary);
		}
		.swiper-text .content .small {
			font-size: var(--wp--preset--font-size--3-xl);
		}
		.swiper-text .content .secondary {
			color: var(--wp--preset--color--secondary);
		}
		@media (width <= 781px) {
			.swiper-text .content {
				justify-content: center;
				margin-inline-end: 1rem;
				margin-inline-start: 1rem;
			}
		}
		@media (width <= 781px) {
			.swiper-text .content .catchcopy-english {
				margin-inline-start: 0;
			}
		}
		@media (width <= 781px) {
			.swiper-text .content .catchcopy {
				font-size: var(--wp--preset--font-size--xl);
			}
		}
		@media (width <= 781px) {
			.swiper-text .content .small {
				font-size: var(--wp--preset--font-size--lg);
			}
		}
		.swiper-wrapper {
			position: relative;
			block-size: 100%;
		}
		.swiper-slide {
			position: absolute;
			inset-block-start: 0;
			inset-inline-start: 0;
			inline-size: 100%;
			block-size: 100%;
			opacity: 0;
			transition-property: opacity;
			transition-duration: 1s;
			transition-timing-function: ease;
		}
		.swiper-slide.is-active {
			opacity: 1;
		}
		.swiper-text p {
			margin-block-start: 2rem;
			margin-block-end: 1rem;
		}
		.swiper-text .catchcopy {
			margin-block-start: 1rem;
		}
	}
	&.is-style-default,
	&:not([class*="is-style-"]) {
		>:first-child {
			margin-block-start: 0;
		}
		>:last-child {
			margin-block-end: 0;
		}
		&.has-background {
			padding: 4rem;
		}
		@media (width <= 781px) {
			&.has-background {
				padding: 0;
			}
		}
	}
	&.is-style-information {
		>:first-child {
			margin-block-start: 0;
		}
		>:last-child {
			margin-block-end: 0;
		}
		display: flex;
		justify-content: center;
		padding-block-end: 2rem;
		padding-block-start: 2rem;
		margin-block-start: 0;
		&.alignfull {
			inline-size: 100vw;
			max-inline-size: 100vw;
			margin-inline-start: calc(50% - 50vw);
			margin-inline-end: 0;
		}
	}
	&.is-style-information-inner {
		>:first-child {
			margin-block-start: 0;
		}
		>:last-child {
			margin-block-end: 0;
		}
		max-inline-size: var(--wp--style--global--wide-size);
		padding-inline-start: 2rem;
		padding-inline-end: 2rem;
		position: relative;
		inline-size: 100%;
		@media (width <= 781px) {
			max-inline-size: calc(100% - 2rem);
		}
	}
	&.is-style-about {
		>:first-child {
			margin-block-start: 0;
		}
		>:last-child {
			margin-block-end: 0;
		}
		display: flex;
		justify-content: center;
		padding-block-end: 6rem;
		padding-block-start: 6rem;
		&.alignfull {
			inline-size: 100vw;
			max-inline-size: 100vw;
			margin-inline-start: calc(50% - 50vw);
			margin-inline-end: 0;
		}
	}
	&.is-style-about-inner {
		>:first-child {
			margin-block-start: 0;
		}
		>:last-child {
			margin-block-end: 0;
		}
		max-inline-size: var(--wp--style--global--wide-size);
		position: relative;
		inline-size: 100%;
		@media (width <= 781px) {
			max-inline-size: calc(100% - 2rem);
		}
	}
	&.is-style-corporate {
		>:first-child {
			margin-block-start: 0;
		}
		>:last-child {
			margin-block-end: 0;
		}
		display: flex;
		justify-content: center;
		overflow: hidden;
		padding: 4rem;
		position: relative;
		&:before {
			background-image: url(../../images/corporate_01.jpg);
			background-position: 50%;
			background-size: cover;
			content: "";
			filter: brightness(40%);
			block-size: 100%;
			inset-inline-start: 0;
			position: absolute;
			inset-block-start: 0;
			inline-size: 100%;
			z-index: -1;
		}
		@media (width <= 781px) {
			padding: 2rem;
		}
		&.alignfull {
			inline-size: 100vw;
			max-inline-size: 100vw;
			margin-inline-start: calc(50% - 50vw);
			margin-inline-end: 0;
		}
	}
	&.is-style-corporate-inner {
		>:first-child {
			margin-block-start: 0;
		}
		>:last-child {
			margin-block-end: 0;
		}
		inline-size: 100%;
	}
	&.is-style-contact {
		>:first-child {
			margin-block-start: 0;
		}
		>:last-child {
			margin-block-end: 0;
		}
		display: flex;
		justify-content: center;
		overflow: hidden;
		padding-block-end: 6rem;
		padding-block-start: 6rem;
		position: relative;
		&:after {
			background-color: var(--wp--preset--color--secondary);
			content: "";
			block-size: 100%;
			position: absolute;
			transform: rotate(45deg);
			inline-size: .5rem;
			z-index: 1;
		}
		&:before {
			background-color: var(--wp--preset--color--secondary);
			content: "";
			block-size: 100%;
			position: absolute;
			transform: rotate(45deg);
			inline-size: .5rem;
			z-index: 1;
		}
		&:before {
			inset-inline-start: 0;
			inset-block-start: 0;
		}
		&:after {
			inset-block-end: 0;
			inset-inline-end: 0;
		}
		@media (width <= 781px) {
			&:after {
				block-size: 50%;
			}
		}
		@media (width <= 781px) {
			&:before {
				block-size: 50%;
			}
		}
		@media (width <= 781px) {
			&:before {
				inset-block-start: -6rem;
			}
		}
		@media (width <= 781px) {
			&:after {
				inset-block-end: -6rem;
			}
		}
		&.alignfull {
			inline-size: 100vw;
			max-inline-size: 100vw;
			margin-inline-start: calc(50% - 50vw);
			margin-inline-end: 0;
		}
	}
	&.is-style-contact-inner {
		>:first-child {
			margin-block-start: 0;
		}
		>:last-child {
			margin-block-end: 0;
		}
		max-inline-size: var(--wp--style--global--wide-size);
		inline-size: 100%;
		z-index: 2;
		@media (width <= 781px) {
			max-inline-size: calc(100% - 2rem);
		}
	}
	&.is-style-recruit {
		>:first-child {
			margin-block-start: 0;
		}
		>:last-child {
			margin-block-end: 0;
		}
		display: flex;
		justify-content: center;
		padding: 4rem;
		@media (width <= 781px) {
			padding: 2rem;
		}
		&.alignfull {
			inline-size: 100vw;
			max-inline-size: 100vw;
			margin-inline-start: calc(50% - 50vw);
			margin-inline-end: 0;
		}
	}
	&.is-style-recruit-inner {
		>:first-child {
			margin-block-start: 0;
		}
		>:last-child {
			margin-block-end: 0;
		}
		padding: 4rem;
		position: relative;
		inline-size: 100%;
		z-index: 1;
		&:before {
			background-image: url(../../images/recruit_01.jpg);
			background-position: 50%;
			background-size: cover;
			content: "";
			filter: brightness(40%);
			block-size: 100%;
			inset-inline-start: 0;
			position: absolute;
			inset-block-start: 0;
			inline-size: 100%;
			z-index: -1;
		}
		@media (width <= 781px) {
			padding: 2rem;
		}
		@media (width <= 781px) {
			&:before {
				background-position: 25%;
			}
		}
	}
	&.is-style-site-header {
		position: relative;
		inline-size: 100%;
		padding: 1rem;
		&::before {
			position: absolute;
			inset-block-start: 0;
			inset-inline-start: 0;
			z-index: -1;
			inline-size: 100%;
			block-size: 100%;
			background-color: var(--wp--preset--color--white);
			transform: scaleY(0);
			transform-origin: top;
			transition-property: transform;
			transition-duration: .3s;
			transition-timing-function: ease;
			content: "";
		}
		body:not(.home) &::before, body.is-header-background &::before {
			transform: scaleY(1);
		}
	}
	&.is-style-header-layout {
		display: grid;
		grid-template-areas: "logo nav conversion";
		grid-template-columns: 200px minmax(0,1fr) auto;
		align-items: center;
		gap: 1rem;
		inline-size: 100%;
		margin-inline: auto;
		padding-inline: 0;
		@media (781px < width <= 1050px) {
			grid-template-areas: "logo nav";
			grid-template-columns: 200px minmax(0,1fr);
		}
		@media (width <= 781px) {
			grid-template-areas: "logo nav";
			grid-template-columns: minmax(0,200px) auto;
		}
	}
	&.is-style-content {
		inline-size: min(100%,var(--wp--style--global--content-size));
		max-inline-size: var(--wp--style--global--content-size);
		min-block-size: 45vh;
		margin-inline: auto;
		body:not(.home) & {
			padding-block-end: 4rem;
		}
		@media (width <= 781px) {
			max-inline-size: calc(100% - 2rem);
		}
	}
	&.is-style-hero {
		position: relative;
		display: flex;
		flex-direction: column-reverse;
		inline-size: 100%;
		margin-block-end: 4rem;
		padding-inline: 0;
		border-block-end-width: 2px;
		border-block-end-style: solid;
		border-block-end-color: var(--wp--preset--color--line);
	}
	&.is-style-hero-title {
		display: flex;
		justify-content: center;
		padding-block: 6rem;
	}
	&.is-style-hero-title-inner {
		position: relative;
		z-index: 1;
		display: flex;
		flex-direction: column-reverse;
		inline-size: 100%;
		max-inline-size: var(--wp--style--global--content-size);
		margin-inline: auto;
		text-align: center;
		&::before {
			position: absolute;
			inset-block-start: 50%;
			inset-inline-start: 0;
			inset-inline-end: 0;
			z-index: -1;
			inline-size: 2rem;
			block-size: 200%;
			margin-inline: auto;
			border-inline-width: .5rem;
			border-inline-style: solid;
			border-inline-color: var(--wp--preset--color--secondary);
			transform: translateY(-50%) rotate(45deg);
			content: "";
		}
		@media (width <= 781px) {
			max-inline-size: calc(100% - 2rem);
		}
	}
	&.is-style-site-footer {
		margin-block-start: 0;
	}
	&.is-style-footer-branding {
		display: flex;
		justify-content: center;
	}
	&.is-style-footer-layout {
		display: flex;
		align-items: flex-start;
		gap: 4rem;
		inline-size: min(100%,1200px);
		margin-inline: auto;
		padding-block: 6rem;
		padding-inline: 2rem;
		@media (width <= 781px) {
			flex-direction: column;
			gap: 2rem;
			padding-block: 3rem;
			padding-inline: 1rem;
		}
	}
	&.is-style-footer-logo-column {
		flex: 0 0 250px;
		@media (width <= 781px) {
			flex-basis: auto;
		}
	}
	&.is-style-footer-address {
		flex: 1 1 auto;
		> :first-child {
			margin-block-start: 0;
		}
		> :last-child {
			margin-block-end: 0;
		}
	}
	&.is-style-footer-meta {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		justify-content: space-between;
		align-self: stretch;
		@media (width <= 781px) {
			align-items: flex-start;
		}
	}
	&.is-style-footer-menu {
		margin: 0;
	}
	&.is-style-entry-header {
		display: flex;
		flex-direction: column-reverse;
		align-items: flex-start;
		margin-block-end: 2rem;
	}
	&.is-style-error-content {
		padding-block: 4rem;
		text-align: center;
	}
	&.is-style-floating-menu {
		display: none;
		@media (width <= 781px) {
			position: sticky;
			inset-block-end: 0;
			z-index: 90;
			display: block;
			background-color: var(--wp--preset--color--primary);
		}
		@media print {
			display: none;
		}
	}
}

@keyframes scrollbg {
	from { transform: translateY(-100%); }
	to { transform: translateY(0); }
}
