/* SmartOps 年末調整 LP — brand recolor (overrides template/module CSS) + page layout */
:root {
	--ax-ink: #352681;
	--ax-text: #262626;
	--ax-muted: #555;
	--ax-green: #3EB489;
	--ax-blue: #352681;
	--ax-mint: #FFFDF7;
	--ax-orange: #7467F0;
	--p: #7467F0;
	--p2: #e7eaff;
	--pd: #352681;
	--m: #3EB489;
	--ml: #dbf3ea;
	--mp: #FFFDF7;
	--y: #fffdd5;
	--y2: #fffdd7;
	--cr: #FFFDF7;
	--ln: #e4e0f5
}

.ax-main {
	font-size: 16px
}

.ax-section {
	padding: 96px 0
}

.ax-section--cream {
	background: var(--cr)
}

.ax-section--mint {
	background: var(--mp)
}

.ax-container {
	max-width: 1200px
}

h2.t {
	font-size: clamp(26px, 3vw, 40px);
	font-weight: 900;
	line-height: 1.45;
	letter-spacing: .02em;
	color: var(--pd)
}

.lead {
	font-size: 16px;
	line-height: 1.95;
	margin-top: 16px
}

.header__plan a,
.menu__plan p {
	color: var(--ax-muted)
}

.header__plan a:after,
.header__nav-sep {
	background: white
}

.header__contact {
	background: linear-gradient(135deg, #7467F0, #5E50EE);
	border: 0;
	color: #fff;
	box-shadow: 0 6px 16px rgba(116, 103, 240, .35)
}

.header__contact:hover {
	background: #fff;
	color: var(--p);
	box-shadow: inset 0 0 0 2px var(--p)
}
html body .smartops-header.smartops-global-header {
    box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
}

.logo-img {
	width: auto;
	height: 30px
}

.hamburger-menu-button__line__inner {
	background: var(--pd)
}

.menu .menu__contact p {
	color: var(--p)
}

.hover_blue1:hover {
	background: var(--p)
}

.ax-btn--primary {
	background: linear-gradient(135deg, #7467F0, #5E50EE);
	border: 0;
	box-shadow: 0 10px 24px rgba(116, 103, 240, .38);
	color: #fff !important
}

.ax-btn--primary:hover {
	background: #fff;
	box-shadow: inset 0 0 0 2px var(--p);
	color: var(--p) !important
}

.ax-btn--ghost {
	background: #fff;
	border: 2px solid var(--pd);
	color: var(--pd) !important
}

.ax-btn--ghost:hover {
	background: var(--pd);
	color: #fff !important
}

.pill {
	display: inline-block;
	background: #fdf54f;
	color: var(--pd);
	font-weight: 700;
	font-size: 15px;
	padding: 5px 16px;
	border-radius: 999px;
	margin-bottom: 20px
}

.ck {
	list-style: none;
	display: grid;
	gap: 12px;
	margin-top: 24px
}

.ck li {
	display: flex;
	gap: 12px;
	font-weight: 700;
	align-items: flex-start
}

.ck li:before {
	content: "";
	flex: none;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--m) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 12.5l3.2 3.2L17 9' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain;
	margin-top: 2px
}

.ui {
	background: #fff;
	border: 1px solid var(--ln);
	border-radius: 14px;
	box-shadow: 0 18px 44px rgba(53, 38, 129, .16);
	overflow: hidden
}

.ui img {
	display: block;
	width: 100%;
	height: auto
}

.hero {
	position: relative;
	overflow: hidden;
	background: var(--cr);
	padding: 120px 0 72px
}

.hero:before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(60% 80% at 85% 20%, rgba(213, 243, 255, 0.3), transparent 70%), radial-gradient(35% 45% at 10% 85%, rgba(255, 253, 213, .9), transparent 70%);
}

.hero__in {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: 40px;
	align-items: center
}

.hero h1 {
	font-weight: 900;
	color: var(--pd);
	font-size: clamp(34px, 4.3vw, 58px);
	line-height: 1.25
}

.hero h1 span {
	display: block;
	color: var(--ax-text);
	font-size: clamp(22px, 2.4vw, 32px);
	margin-top: 12px;
	line-height: 1.4
}

.hero p.lead {
	max-width: 520px
}

.acts {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 30px
}

.hero .ck {
	gap: 8px;
	font-size: 15px
}

.hv {
	position: relative;
	aspect-ratio: 1/.92
}

.hv__photo {
position: absolute;
    left: 0;
    top: 0;
    width: 92%;
    height: 74%;
    border-radius: 24px 124px 24px 024px;
    overflow: hidden;
    background: #FFFDF7;
    border: 1px solid var(--ln);
}

.hv__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover
}

.hv__dash {
    position: absolute;
    left: 15%;
    bottom: 2%;
    width: 66%;
}

.hv__sp {
	position: absolute;
    right: 0;
    bottom: -3%;
    width: 24%;
    border-radius: 18px;
}

.tag {
	position: absolute;
	z-index: 2;
	background: var(--pd);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	padding: 4px 14px;
	border-radius: 999px;
	white-space: nowrap
}

.hv__dash .tag {
	top: -14px;
	left: 16px
}

.hv__sp .tag {
	top: -14px;
	right: 0
}

.prob__h {
	width: 100%
}

.ax-main .prob__h .lead {
	max-width: none;
	width: 100%;
	margin: 18px 0 0
}

.prob {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	margin-top: 48px
}

.pr {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 20px 20px 28px;
	background: #fff;
	border: 1px solid var(--ln);
	border-radius: 24px;
	box-shadow: 0 12px 30px rgba(53, 38, 129, .08)
}

.pr__img,
.st__img {
	aspect-ratio: 10/7;
	border-radius: 16px;
	overflow: hidden;
	background: var(--cr);
	border: 1px solid var(--ln)
}

.pr__img img,
.st__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover
}

.pr h3 {
	font-size: 21px;
	font-weight: 700;
	color: var(--pd);
	line-height: 1.5
}

.pr p {
	margin-top: 8px
}

.ba {
	display: grid;
	grid-template-columns: 1fr 64px 1.1fr;
	margin-top: 48px;
	align-items: stretch
}

.ba__b,
.ba__a {
	padding: 28px;
	border-radius: 24px
}

.ba__b {
	border: 2px dashed #b9b4d6;
	background: rgba(255, 255, 255, .55)
}

.ba__a {
	background: #fff;
	border: 2px solid var(--p);
    box-shadow: 0 18px 40px rgb(177 177 177 / 18%);
}

.ba h3 {
	font-size: 19px;
	font-weight: 700;
	color: var(--pd);
	line-height: 1.5
}

.ba small {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: #555;
	margin-bottom: 4px
}

.ba ul {
	list-style: none;
	margin-top: 18px;
	display: grid;
	gap: 16px;
	position: relative
}

.ba li {
	padding: 16px 18px;
	border-radius: 14px;
	font-weight: 700
}

.ba__b li {
	background: #fff;
	border: 1px solid #d9d5ec;
	color: #444
}

.ba__a ul:before {
	content: "";
	position: absolute;
	left: 21px;
	top: 30px;
	bottom: 30px;
	width: 3px;
	background: var(--m)
}

.ba__a li {
	background: var(--ml);
	padding-left: 50px;
	position: relative
}

.ba__a li:before {
	content: "";
	position: absolute;
	left: 14px;
	top: 50%;
	margin-top: -8px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--m);
	border: 3px solid #fff
}

.ba__arr {
	display: grid;
	place-items: center;
	color: var(--m);
	font-size: 34px;
	font-weight: 900
}

.f {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 56px;
	align-items: center
}

.f--r {
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr)
}

.f--r .f__t {
	order: 2
}

.fl {
	font-weight: 700;
	color: var(--pd);
	font-size: 15px;
	margin-bottom: 10px
}

.panel {
	position: relative;
	padding: 40px 40px 48px;
	border-radius: 28px 28px 28px 28px;
	background: var(--y2);
	/* border: 1px solid var(--ax-mint) */
}

.panel--y {
	background: var(--y);
	border-radius: 28px 28px 28px 28px
}

.f1 .ui {
	max-width: 92%
}

.f1 .sp {
	position: absolute;
	right: 28px;
	bottom: 20px;
	width: 27%;
	border-radius: 20px
}

.dash {
	position: relative;
	margin-top: 44px
}

.mk {
	position: absolute;
	z-index: 2;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--p);
	color: #fff;
	font-weight: 900;
	display: grid;
	place-items: center;
	box-shadow: 0 0 0 5px rgba(116, 103, 240, .28)
}

.dn {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 32px
}

.dn div {
	display: flex;
	gap: 14px;
	font-weight: 700;
	align-items: flex-start
}

.dn b {
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--p);
	color: #fff;
	display: grid;
	place-items: center
}

.tl {
	list-style: none;
	margin-top: 26px;
	position: relative;
	display: grid;
	gap: 22px
}

.tl:before {
	content: "";
	position: absolute;
	left: 15px;
	top: 12px;
	bottom: 12px;
	width: 3px;
	background: var(--m)
}

.tl li {
	position: relative;
	padding-left: 52px;
	font-weight: 700
}

.tl li:before {
	content: "";
	position: absolute;
	left: 5px;
	top: 3px;
	width: 21px;
	height: 21px;
	border-radius: 50%;
	background: var(--m);
	border: 4px solid #fff;
	box-shadow: 0 0 0 2px var(--m)
}

.ab {
	display: grid;
	grid-template-columns: 5fr 7fr;
	gap: 56px;
	align-items: center
}

.fn {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px
}

.fn div {
	background: #fff;
	border: 2px solid var(--ln);
	border-radius: 16px;
	padding: 18px 8px;
	text-align: center;
	font-weight: 700;
	color: var(--pd);
	position: relative
}

.fn div:after {
	content: "";
	position: absolute;
	left: 50%;
	top: 100%;
	height: 32px;
	width: 3px;
	background: var(--m);
	margin-left: -1px
}

.fn .me {
	background: var(--p);
	border-color: var(--p);
	color: #fff
}

.base {
	margin-top: 32px;
	background: var(--ml);
	border: 2px solid var(--m);
	border-radius: 20px;
	padding: 24px;
	text-align: center;
	font-weight: 900;
	font-size: 19px;
	color: var(--pd)
}

.note {
	font-size: 14px;
	color: #555;
	margin-top: 16px
}

.bn {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 20px;
	margin-top: 44px
}

.bn>div {
	background: #fff;
	border: 1px solid var(--ln);
	border-radius: 22px;
	padding: 28px;
	overflow: hidden
}

.bn h3 {
	font-size: 19px;
	font-weight: 700;
	color: var(--pd);
	margin: 12px 0 8px
}

.bn p {
	font-size: 15px
}

.bn .a {
	grid-column: span 5;
	background: var(--p2)
}

.bn .b {
	grid-column: span 3
}

.bn .c {
	grid-column: span 4
}

.bn .d {
	grid-column: span 7
}

.bn .e {
	grid-column: span 5;
	background: var(--ml);
	border: 0
}

.bn .g {
	grid-column: span 12;
	display: flex;
	gap: 20px;
	align-items: center
}

.bn .g h3 {
	margin: 0 0 4px
}

.ic {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--p);
	display: grid;
	place-items: center;
	color: #fff;
	font-weight: 900
}

.chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px
}

.chips span {
	background: #fff;
	border-radius: 999px;
	padding: 4px 14px;
	font-weight: 700;
	font-size: 15px;
	color: var(--pd)
}

.crop {
	height: 120px;
	margin-top: 16px;
	border-radius: 12px;
	border: 1px solid var(--ln);
	overflow: hidden
}

.crop img {
	width: 100%;
	display: block
}

.st {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	margin-top: 48px;
	position: relative
}

.st:before {
	content: "";
	position: absolute;
	left: 16%;
	right: 16%;
	top: 28px;
	height: 3px;
	background: var(--m)
}

.st div {
	position: relative;
	text-align: center
}

.st b {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: var(--m);
	color: #fff;
	font-size: 22px;
	box-shadow: 0 0 0 8px var(--mp)
}

.st .st__img {
	margin: 0 0 18px
}

.st h3 {
	font-size: 19px;
	color: var(--pd)
}

.st p {
	margin-top: 8px;
	text-align: left
}

.fq {
	max-width: 860px;
	margin: 40px auto 0
}

.fq details {
	border-bottom: 1px solid var(--ln)
}

.fq summary {
	cursor: pointer;
	list-style: none;
	padding: 22px 40px 22px 0;
	font-weight: 700;
	font-size: 18px;
	color: var(--pd);
	position: relative
}

.fq summary::-webkit-details-marker {
	display: none
}

.fq summary:after {
	content: "+";
	position: absolute;
	right: 6px;
	top: 18px;
	font-size: 26px;
	color: var(--p)
}

.fq details[open] summary:after {
	content: "−"
}

.fq p {
	padding: 0 0 24px
}

.cta {
	position: relative;
	overflow: hidden;
	background: var(--cr)
}

.cta:before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(40% 60% at 5% 10%, rgba(255, 253, 213, .4), transparent 70%), radial-gradient(40% 60% at 88% 85%, rgba(255, 253, 213, .9), transparent 70%)
}

.cta .ax-container {
	position: relative
}

.cta__in {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: center;
	text-align: left
}

.cta__img {
	aspect-ratio: 4/3;
	border-radius: 24px;
	overflow: hidden;
	background: var(--cr);
	border: 1px solid var(--ln)
}

.cta__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover
}

.cta .lead {
	max-width: 560px
}

.footer {
	background: var(--cr);
	border-top: 1px solid var(--ln)
}

.footer .footer__contents {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 28px;
	padding: 32px 48px
}

.footer__logo {
	justify-self: start;
	display: inline-flex
}

.footer__logo img {
	display: block;
	height: 30px;
	width: auto
}

.footer__links {
	display: flex;
	gap: 32px;
	justify-self: center
}

.footer__contents a {
	color: var(--pd);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	text-transform: none
}

.footer__contents a:hover {
	text-decoration: underline
}

.footer .footer__copy {
	justify-self: end;
	margin: 0;
	font-size: 12px;
	color: #555;
	white-space: nowrap
}

@media(max-width:1023px) {

	.hero__in,
	.f,
	.f--r,
	.ab {
		grid-template-columns: 1fr;
		gap: 40px
	}

	.f--r .f__t {
		order: 0
	}

	.bn .a,
	.bn .b,
	.bn .c,
	.bn .d,
	.bn .e {
		grid-column: span 6
	}
}

@media(max-width:767px) {
	.ax-section {
		padding: 64px 0
	}

	.ax-container {
		padding: 0 20px
	}

	.hero {
		padding-top: 96px
	}

	.hv {
		aspect-ratio: 1/1.05
	}

	.hv__photo {
		border-radius: 80px 20px 20px 20px
	}

	.prob {
		grid-template-columns: 1fr;
		gap: 20px
	}

	.ba {
		grid-template-columns: 1fr
	}

	.ba__arr {
		padding: 10px;
		transform: rotate(90deg)
	}

	.panel {
		padding: 24px 18px 40px;
		border-radius: 70px 20px 20px 20px
	}

	.panel--y {
		border-radius: 20px 70px 20px 20px
	}

	.f1 .ui {
		max-width: 100%
	}

	.f1 .sp {
		width: 34%;
		right: 10px
	}

	.dn {
		grid-template-columns: 1fr
	}

	.mk {
		width: 26px;
		height: 26px;
		font-size: 13px
	}

	.fn {
		grid-template-columns: 1fr 1fr;
		gap: 34px 14px
	}

	.bn>div {
		grid-column: span 12 !important
	}

	.bn .g {
		flex-direction: column;
		align-items: flex-start
	}

	.st {
		grid-template-columns: 1fr
	}

	.st:before {
		display: none
	}

	.ax-btn {
		width: 100%
	}
}

/* specificity fixes vs template reset (.ax-main p/ul/h2 {margin:0}) */
.ax-main .lead {
	margin-top: 18px
}

.ax-main .ck {
	margin-top: 24px
}

.ax-main .hero .ck {
	margin-top: 28px
}

.ax-main .acts {
	margin-top: 32px
}

.ax-main .pr p {
	margin-top: 8px
}

.ax-main .note {
	margin-top: 16px
}

.ax-main .fl {
	margin-bottom: 10px
}

.ax-main .pill {
	margin-bottom: 20px
}

.ax-main .tl {
	margin-top: 26px
}

.ax-main .cta .lead {
	margin: 18px 0 32px
}

.ax-main .bn h3 {
	margin: 12px 0 8px
}

.ax-main .bn .g h3 {
	margin: 0 0 4px
}

.ax-main .ba ul {
	margin-top: 18px
}

.ax-main .st p {
	margin-top: 8px
}

.hv .ui {
	overflow: visible
}

.hv .ui img {
	border-radius: 13px
}

@media(min-width:1024px) {
	.ab {
		grid-template-columns: 6fr 6fr
	}
}

h2.t {
	text-wrap: balance
}

@media(max-width:767px) {
	.hv {
		aspect-ratio: 1/1.1
	}

	.hv__dash {
		width: 82%
	}

	.hv__sp {
		width: 32%
	}

	.hv__photo {
		width: 88%;
		height: 78%
	}
}
@media(max-width:1023px) {
	.cta__in {
		grid-template-columns: 1fr;
		gap: 40px
	}
}

@media(max-width:767px) {
	.footer .footer__contents {
		grid-template-columns: 1fr;
		justify-items: center;
		gap: 20px;
		padding: 28px 20px
	}

	.footer__logo,
	.footer__links,
	.footer .footer__copy {
		justify-self: center
	}

	.footer__links {
		gap: 24px
	}
}
