*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: sans-serif;
	line-height: 1.7;
	overflow-wrap: anywhere;
}

img,
video {
	max-width: 100%;
	height: auto;
}

.container,
.site-header,
.site-main,
.site-footer {
	width: 100%;
	max-width: 72rem;
	margin-inline: auto;
	padding-inline: 1rem;
}

.site-header,
.site-main,
.site-footer {
	padding-block: clamp(1rem, 4vw, 1.5rem);
}

@media (min-width: 48rem) {
	.container,
	.site-header,
	.site-main,
	.site-footer {
		padding-inline: 1.5rem;
	}
}

@media (min-width: 64rem) {
	.container,
	.site-header,
	.site-main,
	.site-footer {
		padding-inline: 2rem;
	}
}

/* Header only: keep the main content and footer layout unchanged. */
.site-header {
	max-width: none;
	padding: 0;
	background: #0b0b0b;
	color: #f3f3f3;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.site-branding {
	min-width: 0;
}

.site-branding .custom-logo-link {
	display: block;
	max-width: 100%;
}

.site-branding .custom-logo {
	display: block;
	width: auto;
	height: auto;
	max-width: min(100%, 13rem);
	max-height: 40px;
}

.site-header__contact,
.menu-toggle {
	display: none;
}

.site-header__phones {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1rem;
	font-size: 0.8125rem;
	color: #dedede;
}

.site-header__phones a {
	white-space: nowrap;
}

.header-contact-button {
	display: inline-block;
	padding: 0.55rem 1.25rem;
	border: 1px solid #2165d6;
	border-radius: 4px;
	background: #2165d6;
	font-size: 0.875rem;
	font-weight: 600;
	white-space: nowrap;
}

.site-header__nav {
	border-block: 1px solid #303030;
}

.primary-navigation {
	padding-block: 0.375rem;
}

.primary-menu,
.primary-menu .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-menu > li {
	position: relative;
}

.primary-menu a {
	display: block;
	padding: 0.7rem 1rem;
	font-size: 0.9375rem;
}

/* All top-level links share one type rule, including both dropdown wrappers. */
.primary-menu > li > a,
.primary-menu > li > :is(.product-menu-trigger, .guide-menu-trigger) > a {
	display: flex;
	align-items: center;
	min-height: 44px;
	margin: 0;
	padding: 9px 16px;
	font: normal 600 15px/26px sans-serif;
	letter-spacing: normal;
}

.primary-menu > li > a :is(span, strong),
.primary-menu > li > :is(.product-menu-trigger, .guide-menu-trigger) > a :is(span, strong) {
	font: inherit;
}

.primary-menu .sub-menu {
	padding-inline-start: 1rem;
}

.product-menu-trigger {
	display: flex;
	align-items: stretch;
	position: relative;
}

.guide-menu-trigger {
	display: flex;
	align-items: stretch;
	position: relative;
}

.guide-menu-trigger > a {
	flex: 1 1 auto;
}

.guide-dropdown-menu[hidden] {
	display: none !important;
}

.product-menu-trigger > a {
	flex: 1 1 auto;
}

.product-menu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-width: 44px;
	min-height: 44px;
	padding: 0.5rem;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.product-dropdown-menu[hidden] {
	display: none !important;
}

.product-dropdown-menu a {
	padding: 0.4rem 0.75rem;
	font-size: 0.8125rem;
	line-height: 1.4;
}

@media (max-width: 767px) {
	.product-dropdown-menu {
		max-height: min(60vh, 32rem);
		overflow-y: auto;
		overscroll-behavior: contain;
		padding-inline-start: 0;
		margin-inline-start: 1rem;
		background: #171717;
	}

}

.site-header a {
	color: inherit;
	text-decoration: none;
}

.site-header__phones a:hover,
.site-header__phones a:focus-visible {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.site-header .header-contact-button {
	color: #fff;
}

.header-contact-button:hover,
.header-contact-button:focus-visible {
	background: #184fae;
	border-color: #184fae;
}

.primary-menu a:hover,
.primary-menu a:focus-visible,
.menu-toggle:hover,
.menu-toggle:focus-visible {
	background: #292929;
}

.header-contact-button--mobile {
	margin: 0.75rem 0 0.5rem;
}

.site-header :focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.menu-toggle {
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	min-width: 44px;
	min-height: 44px;
	padding: 0.5rem;
	border: 1px solid #777;
	border-radius: 4px;
	background: transparent;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.site-header .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

@media (max-width: 767px) {
	.has-menu-toggle .menu-toggle {
		display: inline-flex;
	}

	.has-menu-toggle .primary-navigation:not(.is-open) {
		display: none;
	}
}

@media (min-width: 768px) {
	.site-header__nav .primary-navigation {
		padding-block: 0;
	}

	.site-header__phones {
		font-size: 1rem;
		line-height: calc(0.8125rem * 1.7);
	}

	.primary-menu > li > a,
	.primary-menu > li > :is(.product-menu-trigger, .guide-menu-trigger) > a {
		min-height: 40px;
		padding-block: 7px;
		font-size: 13px;
	}

	.product-menu-toggle {
		position: absolute;
		inset-block: 0;
		right: 0;
		width: 1rem;
		min-width: 0;
		min-height: 0;
		padding: 0;
	}

	.site-branding .custom-logo {
		max-width: min(100%, 16rem);
		max-height: 50px;
	}

	.header-contact-button--mobile {
		display: none;
	}

	.site-header__contact {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		flex-wrap: wrap;
		gap: 0.75rem 1rem;
	}

	.primary-menu {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		column-gap: 0;
	}

	.primary-menu > .menu-item-has-children > .sub-menu {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 1;
		width: 22rem;
		max-width: calc(100vw - 4rem);
		max-height: 70vh;
		overflow-y: auto;
		padding: 0.25rem;
		border: 1px solid #d8d8d8;
		background: #fff;
		color: #222;
		box-shadow: 0 4px 12px rgb(0 0 0 / 15%);
	}

	.primary-menu > .guide-menu-item > .guide-dropdown-menu {
		width: 16rem;
	}

	.primary-menu .sub-menu a:hover,
	.primary-menu .sub-menu a:focus-visible {
		background: #edf2fa;
	}

	.primary-menu > .menu-item-has-children:last-child > .sub-menu {
		right: 0;
		left: auto;
	}

	.primary-menu > .menu-item-has-children:not(.product-menu-item):hover > .sub-menu,
	.primary-menu > .menu-item-has-children:not(.product-menu-item):focus-within > .sub-menu,
	.primary-menu > .product-menu-item.is-product-menu-open > .product-dropdown-menu {
		display: block;
	}

	.primary-menu > .product-menu-item > .product-dropdown-menu {
		max-height: calc(100vh - 90px);
		overscroll-behavior: contain;
	}
}

/* Compact desktop header; keep mobile navigation and its JS hooks. */
@media (max-width: 767px) {
	.site-header__inner > .site-branding {
		flex: 1;
	}

	.has-menu-toggle .site-header__nav:has(.primary-navigation:not(.is-open)) {
		display: none;
	}
}

.site-header {
	background: #000;
	border-bottom: 1px solid #777;
}

.site-header__inner {
	flex-wrap: wrap;
	padding-block: 14px;
}

.site-header__nav {
	order: 4;
	flex-basis: 100%;
	border: 0;
}

.site-header__nav .primary-navigation {
	padding-inline: 0;
}

@media (min-width: 1100px) {
	.site-header__inner {
		max-width: 1440px;
		flex-wrap: nowrap;
		gap: 20px;
		min-height: 66px;
		padding: 12px 24px;
	}

	.site-branding {
		flex: 0 0 256px;
	}

	.site-header__nav {
		order: 0;
		flex: 1 1 auto;
		min-width: 0;
	}

	.primary-menu {
		flex-wrap: nowrap;
		justify-content: space-between;
	}

	.primary-menu > li > a,
	.primary-menu > li > :is(.product-menu-trigger, .guide-menu-trigger) > a {
		padding-inline: 8px;
		white-space: nowrap;
	}

	.product-menu-toggle {
		padding: 0;
		width: 8px;
	}

	.site-header__contact {
		flex-wrap: nowrap;
		gap: 24px;
	}

	.site-header__phones {
		flex-wrap: nowrap;
		gap: 24px;
		font-weight: 600;
	}

	.site-header .header-contact-button {
		min-width: 180px;
		padding: 4px 24px;
		border-radius: 24px;
		border-color: #0095f7;
		background: #0095f7;
		font-size: 18px;
		text-align: center;
	}

	.site-header .header-contact-button:hover,
	.site-header .header-contact-button:focus-visible {
		background: #0078ce;
	}
}

/* Product mega menu: the invisible top-level toggle is removed from flex sizing. */
.product-menu-trigger {
	position: relative;
}

.product-menu-toggle {
	position: absolute;
	inset-block: 0;
	right: 0;
	z-index: 2;
	width: 18px;
	min-width: 0;
	min-height: 0;
	padding: 0;
}

.product-mega-menu__brand-toggle,
.product-mega-menu__group-toggle {
	width: 100%;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
}

.product-mega-menu__links {
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 768px) {
	.primary-menu > .product-menu-item > .product-mega-menu {
		position: fixed;
		top: var(--product-menu-top, 80px);
		left: max(16px, calc((100vw - 1180px) / 2));
		right: auto;
		display: none;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: clamp(18px, 2.2vw, 34px);
		width: min(1180px, calc(100vw - 32px));
		max-width: none;
		max-height: calc(100vh - var(--product-menu-top, 80px) - 8px);
		padding: 24px clamp(20px, 2.4vw, 34px) 28px;
		overflow-y: auto;
		overscroll-behavior: contain;
		border: 1px solid #d8d8d8;
		border-radius: 0 0 14px 14px;
		background: #fff;
		color: #20242a;
		box-shadow: 0 18px 40px rgb(0 0 0 / 20%);
	}

	.primary-menu > .product-menu-item.is-product-menu-open > .product-mega-menu {
		display: grid;
	}

	.product-mega-menu__column,
	.product-mega-menu__brand-panel {
		display: grid;
		align-content: start;
		gap: 22px;
		min-width: 0;
	}

	.product-mega-menu__brand {
		min-width: 0;
	}

	.product-mega-menu__brand-toggle {
		padding: 0 0 10px;
		border-bottom: 2px solid #171717;
		font-family: Montserrat, "Noto Sans JP", sans-serif;
		font-size: 15px;
		font-weight: 700;
		line-height: 1.45;
		pointer-events: none;
	}

	.product-mega-menu__group {
		display: grid;
		gap: 5px;
	}

	.product-mega-menu__group-toggle {
		padding: 0;
		color: #6b7178;
		font-size: 11px;
		font-weight: 700;
		line-height: 1.4;
		letter-spacing: .08em;
		pointer-events: none;
	}

	.product-mega-menu__links a {
		padding: 5px 7px;
		border-radius: 6px;
		font-size: 13px;
		line-height: 1.45;
		white-space: normal;
		word-break: keep-all;
		overflow-wrap: anywhere;
	}

	.product-mega-menu__links a:hover,
	.product-mega-menu__links a:focus-visible {
		background: #edf2fa;
	}
}

@media (min-width: 900px) {
	.primary-menu > .product-menu-item > .product-mega-menu {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.primary-menu > li > a,
	.primary-menu > li > :is(.product-menu-trigger, .guide-menu-trigger) > a {
		padding-right: 44px;
	}

	.product-menu-toggle {
		width: 44px;
	}

	.product-mega-menu {
		max-height: min(66vh, 40rem);
		margin: 0;
		padding: 6px 0 12px;
		overflow-y: auto;
		overscroll-behavior: contain;
		background: #111;
	}

	.product-mega-menu__column {
		display: contents;
	}

	.product-mega-menu__brand {
		border-top: 1px solid #343434;
	}

	.product-mega-menu__brand-toggle,
	.product-mega-menu__group-toggle {
		position: relative;
		cursor: pointer;
	}

	.product-mega-menu__brand-toggle {
		padding: 14px 42px 14px 16px;
		font-family: Montserrat, "Noto Sans JP", sans-serif;
		font-size: 15px;
		font-weight: 700;
	}

	.product-mega-menu__group-toggle {
		padding: 11px 42px 9px 26px;
		color: #c5c9ce;
		font-size: 12px;
		font-weight: 700;
	}

	.product-mega-menu__brand-toggle::after,
	.product-mega-menu__group-toggle::after {
		position: absolute;
		top: 50%;
		right: 18px;
		content: "+";
		font-size: 17px;
		font-weight: 400;
		line-height: 1;
		transform: translateY(-50%);
	}

	.product-mega-menu__brand-toggle[aria-expanded="true"]::after,
	.product-mega-menu__group-toggle[aria-expanded="true"]::after {
		content: "−";
	}

	.product-mega-menu__brand-panel {
		padding-bottom: 7px;
		background: #171717;
	}

	.product-mega-menu__group {
		border-top: 1px solid #292929;
	}

	.product-mega-menu__links {
		padding: 0 14px 9px 34px;
	}

	.product-mega-menu__links a {
		padding: 8px 10px;
		border-radius: 5px;
		font-size: 13px;
		line-height: 1.45;
		word-break: keep-all;
		overflow-wrap: anywhere;
	}
}

@media (min-width: 1100px) and (max-width: 1439px) {
	.site-header__inner {
		gap: 12px;
		padding-inline: 16px;
	}

	.site-branding {
		flex-basis: 190px;
	}

	.site-branding .custom-logo {
		max-width: 190px;
	}

	.primary-menu > li > a,
	.primary-menu > li > :is(.product-menu-trigger, .guide-menu-trigger) > a {
		padding-inline: 6px;
		font-size: 12px;
	}

	.product-menu-toggle {
		padding: 0;
		font-size: 12px;
		width: 6px;
	}

	.site-header__contact,
	.site-header__phones {
		gap: 12px;
	}

	.site-header__phones {
		font-size: 13px;
	}

	.site-header .header-contact-button {
		min-width: 130px;
		padding-inline: 16px;
		font-size: 15px;
	}
}

/* Header controls share the same vertical center; type is defined above. */
.site-header__phones a {
	display: flex;
	align-items: center;
}

@media (min-width: 768px) {
	.primary-menu,
	.primary-menu > li,
	.product-menu-trigger,
	.guide-menu-trigger,
	.site-header__contact,
	.site-header__phones {
		align-items: center;
	}

	.site-header__phones a,
	.site-header__contact .header-contact-button {
		min-height: 40px;
		line-height: 26px;
	}

	.site-header__contact .header-contact-button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
}

/* Shared footer. */
.site-footer {
	max-width: none;
	padding: 0;
	background: #1f1f1f;
	color: #f3f3f3;
	text-align: center;
}

.site-footer__main {
	padding-block: 2rem 1.25rem;
}

.site-footer__heading {
	margin: 0 0 1rem;
	font-size: 1.4375rem;
	font-weight: 700;
}

.site-footer a {
	color: inherit;
	text-decoration: none;
}

.site-footer a:hover {
	opacity: 0.8;
}

.site-footer a:focus-visible,
.site-footer iframe:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.site-footer__phones {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	margin-bottom: 1.5rem;
}

.site-footer__phones a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	max-width: 100%;
	min-height: 44px;
	padding-block: 0.5rem;
	font-size: 1.1875rem;
	font-weight: 600;
}

.site-footer__phones svg {
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	fill: currentColor;
}

.site-footer__phones span {
	min-width: 0;
}

.site-footer__map {
	max-width: 850px;
	margin-inline: auto;
}

.site-footer__map-frame {
	border-radius: 20px;
	overflow: hidden;
}

.site-footer__map iframe {
	display: block;
	width: 100%;
	height: 260px;
	border: 0;
}

.site-footer__map > a {
	display: inline-block;
	padding-block: 0.625rem;
	font-size: 0.75rem;
	color: #c8c8c8;
}

.site-footer__social ul {
	display: flex;
	justify-content: center;
	gap: clamp(1rem, 4vw, 2rem);
	margin: 1rem 0;
	padding: 0;
	list-style: none;
}

.site-footer__social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
}

.site-footer__social img {
	display: block;
	width: 36px;
	height: 36px;
	object-fit: contain;
}

.footer-menu,
.footer-menu .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0 1.5rem;
}

.footer-menu a {
	display: block;
	padding-block: 0.75rem;
	font-size: 0.8125rem;
}

.footer-menu .sub-menu a {
	padding-inline: 0.5rem;
}

.site-footer__bottom {
	border-top: 1px solid #333;
	padding-block: 0.875rem;
}

.site-footer__bottom small {
	display: block;
	font-size: 0.75rem;
	color: #aaa;
}

@media (min-width: 768px) {
	.site-footer__phones {
		flex-direction: row;
		justify-content: center;
		gap: 2.5rem;
	}

	.site-footer__phones a {
		font-size: 1.3125rem;
	}

	.site-footer__map iframe {
		height: 400px;
	}
}

/* Homepage hero. */
.site-main.lw-home {
	max-width: none;
	padding: 0;
}

.lw-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: grid;
	align-items: center;
	padding-block: 2.5rem;
	background: #050505;
	color: #fff;
	text-align: center;
}

.lw-hero__inner {
	min-width: 0;
}

.lw-hero__content {
	position: relative;
	z-index: 2;
	min-width: 0;
}

.lw-hero__title {
	margin: 0;
	font-size: clamp(1.875rem, 3.4vw, 3rem);
	font-weight: 700;
	line-height: 1.2;
}

.lw-hero__title > span,
.lw-hero__strengths > span {
	display: inline-block;
}

.lw-hero__subtitle {
	margin: 10px 0 0;
	font-size: 1rem;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

.lw-hero__strengths {
	margin: 12px 0 0;
	font-size: 1rem;
	line-height: 1.5;
	font-weight: 600;
	color: #d4d8dc;
}

.lw-hero__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	width: 265px;
	max-width: 100%;
	min-height: 70px;
	margin-top: 32px;
	padding: 1rem;
	border-radius: 8px;
	background: #00afa5;
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
}

.lw-hero__cta:hover {
	background: #008f88;
}

.lw-hero__cta:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 4px;
}

.lw-hero__video {
	display: block;
	width: calc(100% - 2rem);
	max-width: 600px;
	height: auto;
	aspect-ratio: 16 / 9;
	margin: 2rem auto 0;
	object-fit: contain;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.lw-home-intro {
	padding: 22px 1rem 26px;
	background: #fff;
}

.lw-home-intro__message {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 900px;
	min-height: 60px;
	margin: 0 auto;
	padding: 12px 24px;
	border-radius: 10px;
	background: #222;
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
}

@media (min-width: 769px) {
	.lw-hero {
		min-height: 450px;
		padding-block: 48px;
		text-align: left;
	}

	.lw-hero__inner {
		max-width: 1400px;
	}

	.lw-hero__content {
		width: min(600px, 100%);
	}

	.lw-hero__video {
		position: absolute;
		z-index: 1;
		width: min(750px, 100%);
		filter: brightness(0.68);
		max-width: none;
		margin: 0;
		right: max(0px, calc((100% - 1120px) / 2));
		top: calc(50% - 15px);
		transform: translateY(-50%);
		pointer-events: none;
		mask-image: linear-gradient(to right, transparent, #000 25%, #000 92%, transparent),
			linear-gradient(to bottom, #000 92%, transparent 100%);
		mask-composite: intersect;
	}

	.lw-hero__subtitle {
		font-size: 18px;
	}

	.lw-hero__strengths {
		font-size: 18px;
	}

	.lw-hero__cta {
		margin-top: 64px;
	}

	.lw-home-intro__message {
		font-size: 20px;
	}
}

@media (min-width: 1280px) {
	.lw-hero__inner {
		display: block;
		padding-left: clamp(32px, calc((100vw - 1280px) * 0.32), 205px);
	}

	.lw-hero__content {
		width: 600px;
	}

	.lw-hero__title {
		font-size: 48px;
		white-space: nowrap;
	}

	.lw-hero__subtitle {
		font-size: 20px;
	}

	.lw-hero__strengths {
		font-size: 20px;
	}
}

.lw-home-intro__subcopy {
	margin: 30px auto 0;
	color: #111;
	font-size: clamp(16px, 1.4vw, 18px);
	font-weight: 600;
	line-height: 1.6;
	text-align: center;
}

/* Laser series heading. */
.lw-series-intro {
	padding-block: 52px 42px;
	background: #fff;
	text-align: center;
}

.lw-series-intro__inner {
	max-width: 1120px;
	margin-inline: auto;
	padding-inline: 16px;
}

.lw-series-intro__title {
	margin: 0;
	color: #111;
	font-size: clamp(26px, 2.5vw, 36px);
	font-weight: 700;
	line-height: 1.25;
}

.lw-series-intro__title > span {
	display: inline-block;
}

.lw-series-intro__english {
	margin: 12px 0 0;
	color: #555;
	font-size: clamp(16px, 1.5vw, 20px);
	font-weight: 500;
	line-height: 1.5;
}

.lw-series-intro__lead {
	margin: 8px 0 0;
	color: #777;
	font-size: clamp(14px, 1.2vw, 16px);
	font-weight: 400;
	line-height: 1.5;
}

@media (min-width: 769px) {
	.lw-series-intro__inner {
		padding-inline: 24px;
	}
}

/* Laser series card skeleton. */
.lw-series-grid {
	padding-bottom: 48px;
	background: #fff;
}

.lw-series-grid__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-auto-rows: 1fr;
	gap: 24px;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 16px;
}

.lw-series-card {
	--series-accent: #235ea6;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	min-width: 0;
	padding: 24px;
	border: 1px solid #dce2e8;
	border-top: 4px solid var(--series-accent);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 6px 20px rgb(20 35 50 / 6%);
	text-align: left;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.lw-series-card:nth-child(2) { --series-accent: #68539b; }
.lw-series-card:nth-child(3) { --series-accent: #24756f; }
.lw-series-card:nth-child(4) { --series-accent: #91612f; }

.lw-series-card__title {
	text-align: center;
	margin: 0;
	color: var(--series-accent);
	font-size: 26px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.3;
}

.lw-series-card__text {
	margin: 12px 0 24px;
	color: #52606d;
	font-size: 15px;
	line-height: 1.8;
}

@media (min-width: 769px) {
	.lw-series-grid__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		padding-inline: 24px;
	}
}

@media (min-width: 1200px) {
	.lw-series-grid__inner {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.lw-series-card__media {
	flex-shrink: 0;
	height: 180px;
	margin: 0 0 24px;
	padding: 8px;
	border-bottom: 1px solid #edf0f3;
	background: #fff;
}

.lw-series-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

@media (min-width: 769px) {
	.lw-series-card__media {
		height: 200px;
	}
}

.lw-series-card__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin-top: auto;
	padding: 11px 20px;
	border: 1px solid transparent;
	border-radius: 6px;
	background: #2165d6;
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.6;
	text-decoration: none;
}

.lw-series-card__link:hover {
	background: #184fae;
	color: #fff;
}

.lw-series-card__link:focus-visible {
	outline: 2px solid #2165d6;
	outline-offset: 4px;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.lw-series-card:hover {
		transform: translateY(-3px);
		box-shadow: 0 12px 28px rgb(20 35 50 / 12%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.lw-series-card { transition: none; }
}

.lw-materials-link {
	margin-top: -12px;
	padding: 0 24px 36px;
	background: #fff;
}

.lw-materials-link__banner {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	max-width: 1232px;
	min-height: 280px;
	margin-inline: auto;
	padding: 36px 48px;
	overflow: hidden;
	border-radius: 10px;
	background: #24282c;
}

.lw-materials-link__image {
	position: absolute;
	z-index: -2;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.lw-materials-link__banner::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(90deg, transparent 35%, rgb(0 0 0 / 40%));
	pointer-events: none;
}

.lw-materials-link__anchor {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	min-height: 52px;
	padding: 12px 24px;
	border-radius: 6px;
	background: #2165d6;
	color: #fff;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.6;
	text-align: center;
	text-decoration: none;
}

.lw-materials-link__anchor:hover {
	background: #184fae;
	color: #fff;
}

.lw-materials-link__anchor:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 4px;
}

@media (max-width: 768px) {
	.lw-materials-link {
		padding-inline: 16px;
	}

	.lw-materials-link__banner {
		min-height: 240px;
		align-items: flex-end;
		justify-content: center;
		padding: 24px 16px;
	}

	.lw-materials-link__image {
		object-position: 36% center;
	}

	.lw-materials-link__banner::before {
		background: linear-gradient(transparent 40%, rgb(0 0 0 / 55%));
	}

	.lw-materials-link__anchor {
		padding-inline: 16px;
		font-size: 16px;
	}
}

.lw-metalfab {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: #100907;
	color: #fff;
	text-align: center;
}

.lw-metalfab__inner {
	min-height: max(420px, 28.125vw);
	max-width: 1440px;
	margin-inline: auto;
	padding: 32px 24px 40px;
}

.lw-metalfab__image {
	position: absolute;
	z-index: -1;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	/* Fade the image's baked-in title, without covering the product. */
	mask-image: linear-gradient(to bottom, transparent 0%, transparent 24%, #000 34%);
}

.lw-metalfab__title {
	margin: 0;
	color: #fff;
	font-size: clamp(30px, 2.5vw, 44px);
	font-weight: 700;
	line-height: 1.2;
}

.lw-metalfab__description {
	max-width: 900px;
	margin: 12px auto 0;
	font-size: clamp(16px, 1.2vw, 20px);
	line-height: 1.7;
	text-wrap: pretty;
}

.lw-metalfab__offer {
	width: 26%;
	margin: 90px 0 0 auto;
	text-shadow: 0 1px 8px rgb(0 0 0 / 60%);
}

.lw-metalfab__status {
	margin: 0;
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 600;
	line-height: 1.4;
}

.lw-metalfab__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin-top: 16px;
	padding: 10px 30px;
	border: 1px solid transparent;
	border-radius: 6px;
	background: #2165d6;
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
	text-shadow: none;
}

.lw-metalfab__link:hover {
	background: #184fae;
	color: #fff;
}

.lw-metalfab__link:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 4px;
}

@media (max-width: 768px) {
	.lw-metalfab__inner {
		min-height: 540px;
		padding: 32px 16px 28px;
	}

	.lw-metalfab__image {
		inset: 170px auto auto 50%;
		width: 960px;
		max-width: none;
		height: 270px;
		transform: translateX(-50%);
		object-fit: contain;
		mask-image: linear-gradient(to bottom, transparent 24%, #000 34%, #000 80%, transparent 100%);
	}

	.lw-metalfab__description {
		max-width: 520px;
	}

	.lw-metalfab__offer {
		width: auto;
		margin: 270px auto 0;
	}
}

.lw-xtool-showcase {
	padding: 48px 16px 60px;
	background: #000;
	color: #fff;
	text-align: center;
}

.lw-xtool-showcase__inner {
	max-width: 980px;
	margin-inline: auto;
}

.lw-xtool-showcase__title {
	margin: 0;
	font-size: clamp(26px, 2.5vw, 36px);
	font-weight: 700;
	line-height: 1.3;
}

.lw-xtool-showcase__movie-label {
	margin: 12px 0 28px;
	font-size: 18px;
}

.lw-xtool-showcase__gallery {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 22px;
}

.lw-xtool-showcase__item {
	position: relative;
	min-width: 0;
}

.lw-xtool-showcase__video {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: contain;
	border-radius: 14px;
}

.lw-xtool-showcase__image {
	position: absolute;
	right: 3%;
	bottom: 6%;
	width: 32%;
	height: 42%;
	object-fit: contain;
	pointer-events: none;
}

@media (max-width: 768px) {
	.lw-xtool-showcase__gallery {
		grid-template-columns: minmax(0, 1fr);
	}
}

.lw-news {
	padding: 60px 16px;
	background: #fff;
	color: #222;
}

.lw-news__inner {
	max-width: 1100px;
	margin-inline: auto;
}

.lw-news__title {
	margin: 0 0 30px;
	font-size: 36px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
}

.lw-news__list {
	border-top: 1px solid #e5e5e5;
}

.lw-news__item {
	display: grid;
	grid-template-columns: 140px minmax(0, 1fr);
	gap: 24px;
	padding: 18px 16px;
	border-bottom: 1px solid #e5e5e5;
	color: inherit;
	font-size: 15px;
	text-decoration: none;
}

.lw-news__date {
	color: #666;
}

.lw-news__item:hover .lw-news__text,
.lw-news__item:focus-visible .lw-news__text {
	color: #2165d6;
	text-decoration: underline;
}

.lw-news__item:focus-visible {
	outline: 2px solid #2165d6;
	outline-offset: 3px;
}

@media (max-width: 768px) {
	.lw-news__title {
		font-size: 30px;
	}

	.lw-news__item {
		grid-template-columns: minmax(0, 1fr);
		gap: 6px;
		padding-inline: 0;
	}
}

.lw-blog {
	padding: 64px 24px;
	background: #f5f7fa;
	color: #222;
}

.lw-blog__inner {
	max-width: 1232px;
	margin-inline: auto;
}

.lw-blog__title {
	margin: 0;
	font-size: 36px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
}

.lw-blog__lead {
	margin: 14px 0 32px;
	color: #52606d;
	font-size: 15px;
	line-height: 1.8;
	text-align: center;
}

.lw-blog__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: 1fr;
	gap: 24px;
}

.lw-blog-card {
	min-width: 0;
	border: 1px solid #dce2e8;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 4px 16px rgb(20 35 50 / 5%);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.lw-blog-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	border-radius: inherit;
	color: inherit;
	text-decoration: none;
}

.lw-blog-card__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 11px 11px 0 0;
	background: #edf0f3;
}

.lw-blog-card__body {
	padding: 22px 20px 26px;
}

.lw-blog-card__category {
	display: inline-block;
	margin-bottom: 12px;
	color: #235ea6;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.6;
}

.lw-blog-card__title {
	margin: 0;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.65;
	overflow-wrap: anywhere;
}

.lw-blog-card__link:hover .lw-blog-card__title {
	color: #2165d6;
}

.lw-blog-card__link:focus-visible,
.lw-blog__more:focus-visible {
	outline: 2px solid #2165d6;
	outline-offset: 4px;
}

.lw-blog__actions {
	margin-top: 36px;
	text-align: center;
}

.lw-blog__more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	min-height: 48px;
	padding: 12px 24px;
	border-radius: 6px;
	background: #2165d6;
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.6;
	text-decoration: none;
}

.lw-blog__more:hover { background: #184fae; color: #fff; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.lw-blog-card:hover {
		transform: translateY(-3px);
		box-shadow: 0 10px 24px rgb(20 35 50 / 10%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.lw-blog-card { transition: none; }
}

@media (max-width: 1100px) {
	.lw-blog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.lw-blog { padding: 48px 16px; }
	.lw-blog__title { font-size: 30px; }
	.lw-blog__grid { grid-template-columns: minmax(0, 1fr); }
	.lw-blog__more { padding-inline: 16px; }
}

/* Pre-footer consultation links. */
.lw-visit { padding: 64px 24px 72px; background: #142333; color: #fff; }
.lw-visit__inner { max-width: 1232px; margin-inline: auto; }
.lw-visit__title { margin: 0; font-size: 32px; line-height: 1.5; text-align: center; }
.lw-visit__lead { margin: 16px auto 36px; color: #c9d4df; font-size: 16px; line-height: 1.8; text-align: center; }
.lw-visit__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 24px; }
.lw-visit__card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 32px; border: 1px solid #405164; border-radius: 12px; background: #1d3044; }
.lw-visit__card h3 { margin: 0 0 12px; font-size: 26px; line-height: 1.4; }
.lw-visit__card p { margin: 0 0 28px; color: #dce4ec; font-size: 16px; line-height: 1.8; }
.lw-visit__link { display: inline-flex; align-items: center; justify-content: center; margin-top: auto; max-width: 100%; min-height: 52px; padding: 14px 28px; border-radius: 6px; background: #2165d6; color: #fff; font-size: 16px; font-weight: 600; line-height: 1.5; text-decoration: none; text-align: center; }
.lw-visit__link:hover { background: #184fae; color: #fff; }
.lw-visit__link:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
@media (max-width: 768px) {
	.lw-visit { padding: 48px 16px 56px; }
	.lw-visit__title { font-size: 26px; }
	.lw-visit__grid { grid-template-columns: minmax(0, 1fr); }
	.lw-visit__card { padding: 28px 24px; }
	.lw-visit__link { width: 100%; }
}

.lw-visit__media { display: flex; align-items: center; justify-content: center; width: 100%; height: 168px; margin-bottom: 24px; border-radius: 8px; background: #edf1f5; }
.lw-visit__media img { display: block; width: 160px; height: 160px; max-width: 100%; object-fit: contain; }
@media (max-width: 768px) {
	.lw-visit__media { height: 148px; margin-bottom: 20px; }
	.lw-visit__media img { width: 140px; height: 140px; }
}

.lw-visit__media--showroom { overflow: hidden; background: #142333; }
.lw-visit__media--showroom img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; transform: scale(1.06); }

.lw-visit__media--samples { overflow: hidden; }
.lw-visit__media--samples img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

/* Product lineup page. */
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/montserrat/montserrat-latin-600.woff2') format('woff2');
}
.lw-products__hero h1,
.lw-products__heading h2 span,
.lw-product-card h3 { font-family: 'Montserrat', Arial, sans-serif; font-weight: 600; letter-spacing: 0.02em; }
.lw-products { background: #fff; color: #222; }
.lw-products__hero { padding: 36px 24px; min-height: 320px; display: flex; flex-direction: column; justify-content: center; text-align: center; color: #fff; background: #050505 url('https://www.laserworks.jp/wp-content/themes/laserworks/assets/images/products/lineup-hero.jpg.webp') center / cover no-repeat; text-shadow: 0 2px 12px #000; }
.lw-products__hero h1 { margin: 0 0 14px; font-family: Montserrat, LWDisplayJapanese, sans-serif; font-size: clamp(34px, 4vw, 56px); font-weight: 700; line-height: 1.12; letter-spacing: normal; }
.lw-products__hero h1 span { display: block; }
.lw-products__hero p { margin: 0; font-size: 16px; line-height: 1.6; }
.lw-products__hero .lw-products__label { margin: 0 0 8px; font-size: 20px; font-weight: 600; }
.lw-products__nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; padding: 16px 24px; background: #f5f7fa; }
.lw-products__nav a { padding: 8px 14px; font-size: 14px; border: 1px solid #dce2e8; border-radius: 6px; color: #235ea6; background: #fff; text-decoration: none; font-weight: 600; }
.lw-products__nav a:hover { border-color: #235ea6; }
.lw-products__nav a:focus-visible { outline: 2px solid #2165d6; outline-offset: 3px; }
.lw-products__inner { max-width: 1040px; padding: 32px 24px 48px; margin-inline: auto; }
.lw-products__section { --product-accent: #235ea6; margin-bottom: 40px; }
.lw-products__section:last-child { margin-bottom: 0; }
.lw-products__section--co2 { --product-accent: #a75c26; }
.lw-products__section--uv { --product-accent: #68539b; }
.lw-products__section--xtool { --product-accent: #24756f; }
.lw-products__section--em-smart { --product-accent: #ef5b21; }
.lw-products__heading { border-left: 9px solid var(--product-accent); padding: 2px 0 6px 8px; margin-bottom: 20px; box-shadow: inset 0 -1px 0 var(--product-accent); }
.lw-products__heading > h2, .lw-products__heading > p { transform: translateX(10px); }
.lw-products__heading h2 { margin: 0 0 5px; font-size: 26px; line-height: 1.4; scroll-margin-top: 100px; }
.lw-products__heading h2 span { display: inline-block; margin-left: 12px; font-size: 14px; font-weight: 600; color: #596675; }
.lw-products__heading p { margin: 0; color: #52606d; font-size: 14px; line-height: 1.7; }
.lw-products__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; grid-auto-rows: 1fr; }
.lw-product-card { min-width: 0; display: flex; flex-direction: column; align-items: center; padding: 18px 14px; border: 1px solid #eceef1; border-radius: 3px; text-align: center; background: #fafbfc; }
.lw-product-card h3 { display: flex; align-items: center; justify-content: center; min-height: 54px; margin: 0 0 9px; font-size: 19px; line-height: 1.4; overflow-wrap: anywhere; }
.lw-product-card p { min-height: 63px; margin: 0 0 14px; font-size: 13px; line-height: 1.6; color: #52606d; }
.lw-product-card img { width: 100%; max-width: 180px; height: 145px; object-fit: contain; margin: 0 auto 14px; transform: scale(1.12); }
.lw-product-card__pending { display: block; color: #737b85; font-size: 12px; line-height: 1.6; }
.lw-product-card__button { display: inline-flex; align-items: center; justify-content: center; width: min(100%, 180px); min-height: 42px; margin-top: auto; padding: 9px 16px; border: 1px solid #2165d6; border-radius: 4px; background: #2165d6; color: #fff; font-size: 13px; font-weight: 700; line-height: 1.4; text-decoration: none; }
.lw-product-card__button:hover { border-color: #184fae; background: #184fae; color: #fff; }
.lw-product-card__button:focus-visible { outline: 3px solid #111; outline-offset: 3px; }
@media (max-width: 1100px) { .lw-products__inner { max-width: 760px; } .lw-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
	.lw-products__hero { min-height: 280px; padding: 32px 16px; }
	.lw-products__nav { gap: 8px; padding: 12px 16px; }
	.lw-products__nav a { font-size: 13px; padding: 8px 10px; }
	.lw-products__inner { padding: 28px 16px 40px; }
	.lw-products__heading h2 { font-size: 26px; }
	.lw-products__heading h2 span { display: block; margin: 4px 0 0; }
	.lw-products__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.lw-product-card h3,
	.lw-product-card p { min-height: 0; }
}

.lw-product-card__pending[href] { color: #235ea6; text-underline-offset: 3px; }
.lw-product-card__pending[href]:focus-visible { outline: 2px solid #2165d6; outline-offset: 4px; }
.lw-sculpfun-option-links{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;padding:32px 20px;background:#f5f7fb}.lw-sculpfun-option-links a{display:inline-flex;align-items:center;min-height:44px;padding:10px 20px;border:1px solid #dce2ef;border-radius:999px;background:#fff;color:#172033;font-weight:700;text-decoration:none}.lw-sculpfun-option-links a:hover,.lw-sculpfun-option-links a:focus-visible{border-color:#345ff2;color:#345ff2}

/* Shared navigation: flat product links, consistent type, brand-only accordions. */
.site-header .primary-menu > li > a,
.site-header .primary-menu > li > :is(.product-menu-trigger,.guide-menu-trigger) > a {
 font-size:13px;font-weight:600;line-height:1.6;
}
.site-header .primary-menu .sub-menu a {
 font-size:14px;font-weight:400;line-height:1.6;
}
.site-header .product-mega-menu__brand-toggle {
 font-size:14px;font-weight:700;line-height:1.6;
}
.site-header .product-mega-menu__brand-panel {gap:0}
.site-header .product-mega-menu__column {gap:12px}
.site-header .product-mega-menu__brand--unlabelled {border-top:0}
@media(min-width:768px){
 .site-header .product-mega-menu__links a {padding:6px 7px}
 .site-header .product-mega-menu__brand-toggle {padding-bottom:8px;margin-bottom:6px}
 .site-header .primary-menu > .product-menu-item > .product-mega-menu {padding-block:18px}
}
@media(max-width:767px){
 .site-header .primary-menu > li > a,
 .site-header .primary-menu > li > :is(.product-menu-trigger,.guide-menu-trigger) > a {font-size:14px;font-weight:600;line-height:1.6}
 .site-header .product-mega-menu__links {padding:4px 14px 6px 20px}
 .site-header .product-mega-menu__links a {padding:10px;min-height:44px}
 .site-header .product-mega-menu__brand--unlabelled .product-mega-menu__links {padding-left:6px}
}

/* Shared gallery arrows only: no font metrics or page-specific offsets. */
button.lw-gallery-arrow {
 display:inline-flex!important;align-items:center!important;justify-content:center!important;
 padding:0!important;line-height:0!important;box-sizing:border-box;
}
button.lw-gallery-arrow[hidden] {display:none!important;}
button.lw-gallery-arrow > svg.lw-gallery-arrow__icon {
 display:block!important;flex:0 0 24px;width:24px!important;height:24px!important;
 margin:0!important;padding:0!important;transform:none!important;pointer-events:none;
}
