﻿@charset "UTF-8";

:root {
	--modern-ink: #16202a;
	--modern-muted: #5f6f7f;
	--modern-line: #d9e1e8;
	--modern-paper: #ffffff;
	--modern-soft: #f5f7f9;
	--modern-deep: #10283a;
	--modern-accent: #1688bd;
	--modern-accent-dark: #0b678f;
}


html {
	scroll-behavior: smooth;
}

@media only screen and (min-width: 680px) {
	body:not(.modern-home) {
		color: var(--modern-ink);
		background: var(--modern-soft);
		font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
		letter-spacing: 0;
	}

	body:not(.modern-home) a:link,
	body:not(.modern-home) a:visited {
		color: var(--modern-accent-dark);
	}

	body:not(.modern-home) a:hover {
		color: var(--modern-accent);
	}

	body:not(.modern-home) #main {
		width: 100%;
		max-width: none;
		border: 0;
		background: var(--modern-soft);
		text-align: left;
	}

	body:not(.modern-home) #header {
		border-bottom: 1px solid var(--modern-line);
		background: var(--modern-paper);
	}

	body:not(.modern-home) #header h1 {
		width: min(1180px, calc(100% - 40px));
		margin: 0 auto;
		padding: 8px 0 0;
		color: var(--modern-muted);
		font-size: 12px;
		letter-spacing: 0;
	}

	body:not(.modern-home) #header #header_inner {
		width: min(1180px, calc(100% - 40px));
		height: auto;
		min-height: 72px;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 24px;
	}

	body:not(.modern-home) #h_logo,
	body:not(.modern-home) #h_info {
		float: none;
	}

	body:not(.modern-home) #h_logo h2 {
		padding: 0;
		font-size: 23px;
		line-height: 1.2;
	}

	body:not(.modern-home) #h_logo a,
	body:not(.modern-home) #h_logo a:hover {
		color: var(--modern-ink);
		font-size: inherit;
		font-weight: 800;
		letter-spacing: 0;
	}

	body:not(.modern-home) #h_info {
		padding: 0;
		display: flex;
		align-items: center;
		gap: 18px;
		font-size: 14px;
	}

	body:not(.modern-home) #h_info > span {
		height: 34px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 3px;
		color: var(--modern-ink);
		line-height: 1;
	}

	body:not(.modern-home) #h_info > span a {
		display: inline-flex;
		align-items: center;
		gap: 3px;
		color: var(--modern-ink);
		text-decoration: none;
		line-height: 1;
	}

	body:not(.modern-home) #h_info > span img {
		width: 26px;
		height: auto;
		display: block;
		box-shadow: 0 1px 3px rgba(16, 43, 59, 0.16);
	}

	body:not(.modern-home) #h_info > span sup {
		position: static;
		top: auto;
		margin-left: 1px;
		color: var(--modern-muted);
		font-size: 12px;
		line-height: 1;
		vertical-align: baseline;
	}

	body:not(.modern-home) #h_info p {
		letter-spacing: 0;
	}

	body:not(.modern-home) #h_info .sns,
	body:not(.modern-home) #h_info .sns a,
	body:not(.modern-home) #h_info .sns a:hover {
		color: var(--modern-accent-dark);
		font-size: 15px;
		line-height: 1;
	}

	body:not(.modern-home) #h_info .sns {
		display: inline-flex;
		align-items: center;
		gap: 16px;
	}

	body:not(.modern-home) #h_info .sns a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 34px;
		height: 34px;
		color: #8a94a6;
		text-decoration: none;
		transition: color 0.18s ease, transform 0.18s ease;
	}

	body:not(.modern-home) #h_info .sns a:hover {
		color: var(--modern-accent-dark);
		transform: translateY(-1px);
	}

	body:not(.modern-home) #h_info .sns-icon {
		display: block;
		fill: currentColor;
	}

	body:not(.modern-home) #h_info .sns-icon-x {
		width: 28px;
		height: 28px;
	}

	body:not(.modern-home) #h_info .sns-icon-fb {
		width: 19px;
		height: 30px;
	}

	body:not(.modern-home) #h_info .sns-separator {
		color: rgba(138, 148, 166, 0.32);
		font-size: 24px;
		line-height: 1;
	}

	.inline-x-icon {
		display: inline-grid;
		place-items: center;
		width: 1.1em;
		height: 1.1em;
		margin-right: 0.2em;
		border-radius: 0.18em;
		background: currentColor;
		color: #fff;
		font-family: Arial, sans-serif;
		font-size: 0.82em;
		font-weight: 900;
		line-height: 1.1em;
		vertical-align: -0.08em;
	}

	body:not(.modern-home) #container {
		width: min(1180px, calc(100% - 40px));
		margin: 32px auto 0;
		display: grid;
		grid-template-columns: minmax(0, 1fr) 270px;
		gap: 28px;
		background: transparent;
	}

	body:not(.modern-home) #contents {
		width: auto;
		float: none;
		margin: 0;
		padding: 34px 38px;
		border: 1px solid var(--modern-line);
		border-radius: 8px;
		background: var(--modern-paper);
		box-sizing: border-box;
	}

	body:not(.modern-home) #header-img {
		height: auto;
		margin: -34px -38px 28px;
		overflow: hidden;
		border-radius: 8px 8px 0 0;
	}

	body:not(.modern-home) #header-img img,
	body:not(.modern-home) #header-img .main_photo {
		width: 100%;
		max-height: 300px;
		object-fit: cover;
		display: block;
	}

	body:not(.modern-home) #contents h1 {
		margin: 0 0 8px;
		padding: 0 0 16px;
		border-bottom: 1px solid var(--modern-line);
		color: var(--modern-ink);
		font-size: 32px;
		line-height: 1.25;
		letter-spacing: 0;
	}

	body:not(.modern-home) #contents span.byline {
		display: block;
		margin: 0 0 28px;
		color: var(--modern-muted);
		font-size: 15px;
		letter-spacing: 0;
	}

	body:not(.modern-home) #contents h2,
	body:not(.modern-home) #contents h2.fit,
	body:not(.modern-home) #contents h2.page_title,
	body:not(.modern-home) #contents h2.txt,
	body:not(.modern-home) #contents h2.txt2 {
		margin: 38px 0 18px;
		padding: 0 0 0 14px;
		border-left: 4px solid var(--modern-accent);
		border-radius: 0;
		background: transparent;
		color: var(--modern-ink);
		font-size: 24px;
		line-height: 1.35;
		letter-spacing: 0;
	}

	body:not(.modern-home) #contents h3,
	body:not(.modern-home) #contents h3.beta,
	body:not(.modern-home) #contents h3.point {
		margin: 28px 0 12px;
		padding: 0 0 8px;
		border: 0;
		border-bottom: 1px solid var(--modern-line);
		background: transparent;
		color: var(--modern-ink);
		font-size: 19px;
		letter-spacing: 0;
	}

	body:not(.modern-home) #contents p,
	body:not(.modern-home) #contents li,
	body:not(.modern-home) #contents dd,
	body:not(.modern-home) #contents td {
		color: #334455;
		font-size: 15px;
		line-height: 1.85;
		letter-spacing: 0;
	}

	body:not(.modern-home) ul.default,
	body:not(.modern-home) ol.default {
		margin: 14px 0 24px 1.4em;
	}

	body:not(.modern-home) ul.default li,
	body:not(.modern-home) ol.default li {
		margin: 0 0 8px;
	}

	body:not(.modern-home) figure {
		margin: 24px auto;
		padding: 0;
	}

	body:not(.modern-home) figure img,
	body:not(.modern-home) img.picture {
		border-radius: 6px;
	}

	body:not(.modern-home) figcaption {
		margin-top: 8px;
		color: var(--modern-muted);
		font-size: 13px;
		line-height: 1.6;
		letter-spacing: 0;
	}

	body:not(.modern-home) #contents figure:not(.no_border) {
		padding: 12px;
		border: 1px solid var(--modern-line);
		border-radius: 8px;
		background: #fff;
		box-shadow: 0 8px 18px rgba(16, 40, 58, 0.06);
		box-sizing: border-box;
	}

	body:not(.modern-home) #contents figure > a.group1 {
		display: block;
	}

	body:not(.modern-home) #contents figure img:not(.textimg):not(.textimg_v):not(.textimg_large):not(.textimg_large_v) {
		display: block;
		max-width: 100%;
		height: auto;
		margin: 0 auto;
		background: #fff;
	}

	body:not(.modern-home) #contents p + figure,
	body:not(.modern-home) #contents ul + figure,
	body:not(.modern-home) #contents ol + figure {
		margin-top: 18px;
	}

	body:not(.modern-home) table,
	body:not(.modern-home) table.t01,
	body:not(.modern-home) table.table_line {
		width: 100%;
		border-collapse: collapse;
		border: 1px solid var(--modern-line);
		background: var(--modern-paper);
	}

	body:not(.modern-home) table th,
	body:not(.modern-home) table td,
	body:not(.modern-home) td.table_head,
	body:not(.modern-home) td.table_left,
	body:not(.modern-home) td.table_right,
	body:not(.modern-home) td.table_line {
		border-color: var(--modern-line);
		padding: 10px 12px;
	}

	body:not(.modern-home) td.table_head,
	body:not(.modern-home) table th {
		background: var(--modern-soft);
		color: var(--modern-ink);
		font-weight: 800;
	}

	body:not(.modern-home) #contents table {
		margin: 18px 0 28px;
	}

	body:not(.modern-home) #contents table tr:nth-child(even) td {
		background: #fbfcfd;
	}

	body:not(.modern-home) #contents table a {
		word-break: break-word;
	}

	body:not(.modern-home) .license-purchase-figure {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		margin-top: 28px;
		text-align: left;
	}

	body:not(.modern-home) .license-purchase-panel {
		display: block !important;
		width: min(100%, 572px);
		max-width: 572px;
		margin: 0 auto !important;
	}

	body:not(.modern-home) .license-purchase-intro {
		max-width: 840px;
		margin: 0 auto 28px;
		padding: 22px 24px;
		border: 1px solid var(--modern-line);
		border-left: 4px solid var(--modern-accent);
		border-radius: 8px;
		background: linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
		box-sizing: border-box;
	}

	body:not(.modern-home) .license-purchase-intro h3 {
		margin-top: 0;
		font-size: 21px;
	}

	body:not(.modern-home) .license-page-eyebrow {
		margin: 0 0 8px;
		color: #1686bc;
		font-size: 12px;
		font-weight: 800;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	body:not(.modern-home) .license-step-grid {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 12px;
		margin: 18px 0;
	}

	body:not(.modern-home) .license-step-grid div {
		display: flex;
		gap: 10px;
		align-items: flex-start;
		padding: 12px;
		border: 1px solid var(--modern-line);
		border-radius: 8px;
		background: #fff;
	}

	body:not(.modern-home) .license-step-grid span {
		display: inline-flex;
		flex: 0 0 auto;
		align-items: center;
		justify-content: center;
		width: 24px;
		height: 24px;
		border-radius: 999px;
		background: var(--modern-accent);
		color: #fff;
		font-weight: 800;
		line-height: 1;
	}

	body:not(.modern-home) .license-step-grid p {
		margin: 0;
		font-size: 14px;
		line-height: 1.65;
	}

	body:not(.modern-home) .license-notice {
		margin: 0;
		padding: 12px 14px;
		border-radius: 8px;
		background: #eef6fa;
		color: #244255;
		font-size: 14px;
		line-height: 1.75;
	}

	body:not(.modern-home) table.license-purchase-table {
		width: 100%;
		border: 0;
		border-collapse: separate;
		border-spacing: 0 14px;
		background: transparent;
	}

	body:not(.modern-home) table.license-purchase-table td {
		border: 0;
		padding: 6px 14px 6px 0;
		background: transparent;
		vertical-align: middle;
	}

	body:not(.modern-home) table.license-purchase-table hr.line {
		display: none;
	}

	body:not(.modern-home) table.license-purchase-table .license-option {
		width: 52%;
		white-space: nowrap;
	}

	body:not(.modern-home) table.license-purchase-table .license-price {
		width: 48%;
		white-space: nowrap;
		color: #15345a;
	}

	body:not(.modern-home) .license-action-separator {
		margin: 8px 0 12px;
	}

	body:not(.modern-home) #paypal-button-container,
	body:not(.modern-home) #student-button-container {
		width: 312px;
		max-width: 100%;
		box-sizing: border-box;
		margin-left: auto;
		margin-right: auto;
	}

	body:not(.modern-home) #early-discount-button-container {
		display: block;
		width: 100% !important;
		max-width: 572px;
		box-sizing: border-box;
		margin: 18px auto 0 !important;
		clear: both;
	}

	body:not(.modern-home) .early-discount-form {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 10px;
		margin: 18px auto 0;
	}

	body:not(.modern-home) .early-discount-form input[type="text"] {
		width: min(360px, 68%);
		margin: 0;
	}

	body:not(.modern-home) .early-discount-form input[type="submit"] {
		width: auto;
		min-width: 86px;
		margin: 0;
	}

	body:not(.modern-home) form input[type="email"] {
		-moz-transition: background-color 0.25s ease-in-out;
		-webkit-transition: background-color 0.25s ease-in-out;
		-ms-transition: background-color 0.25s ease-in-out;
		transition: background-color 0.25s ease-in-out;
		-webkit-appearance: none;
		width: 100%;
		padding: 0.30em;
		font-size: 1.2em;
		line-height: 1em;
		font-family: "Lato", sans-serif;
		font-weight: 400;
		border-radius: 6px;
		background: #fafafa;
		border: 1px solid #c6c6c6;
		outline: none;
		box-sizing: border-box;
	}

	body:not(.modern-home) form input[type="email"]:focus {
		background: #f0f2f5;
	}

	body:not(.modern-home) #menu {
		width: auto;
		float: none;
		margin: 0;
	}

	body:not(.modern-home) .menulist,
	body:not(.modern-home) .menu_free {
		width: 100%;
		margin: 0 0 28px;
		padding: 0;
		border: 1px solid var(--modern-line);
		border-radius: 8px;
		background: var(--modern-paper);
		box-sizing: border-box;
		overflow: hidden;
		text-align: left;
	}

	body:not(.modern-home) .menulist h2,
	body:not(.modern-home) .menulist h3,
	body:not(.modern-home) .menu_free h2 {
		margin: 0;
		padding: 14px 16px;
		border: 0;
		background: var(--modern-deep);
		color: #fff;
		font-size: 15px;
		letter-spacing: 0;
	}

	body:not(.modern-home) .menulist ul,
	body:not(.modern-home) .menu_free ul {
		margin: 0;
		padding: 8px 0;
	}

	body:not(.modern-home) .menulist li,
	body:not(.modern-home) .menu_free li {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	body:not(.modern-home) .menulist li a,
	body:not(.modern-home) .menu_free li a {
		display: block;
		width: 100%;
		padding: 13px 18px;
		border: 0;
		border-top: 1px solid var(--modern-line);
		background: transparent;
		box-sizing: border-box;
		color: var(--modern-ink);
		font-size: 14px;
		line-height: 1.65;
		text-decoration: none;
	}

	body:not(.modern-home) .menulist li:first-child a,
	body:not(.modern-home) .menu_free li:first-child a {
		border-top: 0;
	}

	body:not(.modern-home) .menulist li a:hover,
	body:not(.modern-home) .menu_free li a:hover {
		background: var(--modern-soft);
		color: var(--modern-accent-dark);
	}

	body:not(.modern-home) .menulist li a strong,
	body:not(.modern-home) .menu_free li a strong {
		display: block;
		margin: -13px -18px;
		padding: 13px 18px;
		border-left: 4px solid var(--modern-accent);
		background: #eef7fb;
		color: var(--modern-accent-dark);
		font-weight: 800;
		box-sizing: border-box;
	}

	body:not(.modern-home) .menulist li a strong em,
	body:not(.modern-home) .menu_free li a strong em {
		font-style: normal;
	}

	body:not(.modern-home) .button,
	body:not(.modern-home) form .button {
		border: 1px solid var(--modern-accent);
		border-radius: 6px;
		background: var(--modern-accent);
		color: #fff !important;
		box-shadow: 0 10px 20px rgba(16, 40, 58, 0.16);
	}

	body:not(.modern-home) .button:hover,
	body:not(.modern-home) form .button:hover {
		background: var(--modern-accent-dark);
		border-color: var(--modern-accent-dark);
	}

	body:not(.modern-home) #footer {
		width: 100%;
		margin: 36px 0 0;
		padding: 28px max(20px, calc((100vw - 1180px) / 2));
		box-sizing: border-box;
		background: var(--modern-deep);
		color: #d8e5ed;
		text-align: center;
	}

	body:not(.modern-home) #footer a,
	body:not(.modern-home) #footer a:visited {
		color: #fff !important;
	}
}

@media only screen and (max-width: 900px) and (min-width: 680px) {
	body:not(.modern-home) #header #header_inner {
		align-items: flex-start;
		flex-direction: column;
		padding: 12px 0;
		gap: 10px;
	}

	body:not(.modern-home) #h_info {
		width: 100% !important;
		align-self: stretch !important;
		display: flex !important;
		justify-content: space-between !important;
	}

	body:not(.modern-home) #container {
		grid-template-columns: 1fr;
	}
}

@media only screen and (max-width: 679px) {
	body:not(.modern-home) {
		color: var(--modern-ink);
		background: var(--modern-soft);
		font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
		letter-spacing: 0;
	}

	body:not(.modern-home) #main {
		background: var(--modern-soft);
		text-align: left;
	}

	body:not(.modern-home) #header {
		padding: 0;
		background: var(--modern-paper);
		border-bottom: 1px solid var(--modern-line);
	}

	body:not(.modern-home) #header #header_inner {
		width: min(1180px, calc(100% - 40px)) !important;
		margin: 0 auto !important;
		align-items: flex-start !important;
		flex-direction: column !important;
		padding: 12px 0 !important;
		gap: 10px !important;
	}

	body:not(.modern-home) #h_logo h2 {
		padding: 0;
		line-height: 1.25;
	}

	body:not(.modern-home) #h_logo a,
	body:not(.modern-home) #h_logo a:hover {
		color: var(--modern-ink) !important;
		font-size: 20px;
		font-weight: 800;
		letter-spacing: 0;
		text-decoration: none;
	}

	body:not(.modern-home) #h_info {
		width: 100% !important;
		align-self: stretch !important;
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		padding: 0 !important;
		margin: 0 !important;
		text-align: left !important;
	}

	body:not(.modern-home) #h_info > span {
		margin: 0 !important;
	}

	body:not(.modern-home) #h_info .sns {
		margin: 0 !important;
		color: var(--modern-accent-dark);
	}

	body:not(.modern-home) #h_info .sns {
		display: inline-flex;
		align-items: center;
		gap: 16px;
	}

	body:not(.modern-home) #h_info .sns a,
	body:not(.modern-home) #h_info .sns a:hover {
		width: 34px;
		height: 34px;
		color: #8a94a6;
		font-size: 15px;
		line-height: 1;
	}

	body:not(.modern-home) #h_info .sns-icon {
		display: block;
		max-width: none;
		fill: currentColor;
		flex: 0 0 auto;
	}

	body:not(.modern-home) #h_info .sns-icon-x {
		width: 28px;
		height: 28px;
	}

	body:not(.modern-home) #h_info .sns-icon-fb {
		width: 19px;
		height: 30px;
	}

	body:not(.modern-home) #h_info .sns-separator {
		color: rgba(138, 148, 166, 0.32);
		font-size: 24px;
		line-height: 1;
	}

	body:not(.modern-home) #container {
		margin: 18px 12px 0;
		background: transparent;
	}

	body:not(.modern-home) #contents {
		padding: 22px 18px;
		border: 1px solid var(--modern-line);
		border-radius: 8px;
		background: var(--modern-paper);
		box-sizing: border-box;
	}

	body:not(.modern-home) #header-img {
		margin: -22px -18px 22px;
		overflow: hidden;
		border-radius: 8px 8px 0 0;
	}

	body:not(.modern-home) #header-img img,
	body:not(.modern-home) #header-img .main_photo {
		width: 100%;
		max-height: 220px;
		object-fit: cover;
		display: block;
	}

	body:not(.modern-home) #contents h1 {
		margin: 0 0 8px;
		padding: 0 0 14px;
		border-bottom: 1px solid var(--modern-line);
		color: var(--modern-ink);
		font-size: 27px;
		line-height: 1.25;
		letter-spacing: 0;
	}

	body:not(.modern-home) #contents span.byline {
		display: block;
		margin: 0 0 22px;
		color: var(--modern-muted);
		font-size: 14px;
		letter-spacing: 0;
	}

	body:not(.modern-home) #contents h2,
	body:not(.modern-home) #contents h2.txt,
	body:not(.modern-home) #contents h2.txt2,
	body:not(.modern-home) #contents h2.page_title {
		margin: 32px 0 16px;
		padding: 0 0 0 12px;
		border-left: 4px solid var(--modern-accent);
		background: transparent;
		color: var(--modern-ink);
		font-size: 22px;
		line-height: 1.35;
		letter-spacing: 0;
	}

	body:not(.modern-home) #contents h3,
	body:not(.modern-home) #contents h3.beta,
	body:not(.modern-home) #contents h3.point {
		margin: 24px 0 12px;
		padding: 0 0 8px;
		border: 0;
		border-bottom: 1px solid var(--modern-line);
		background: transparent;
		color: var(--modern-ink);
		font-size: 18px;
		letter-spacing: 0;
	}

	body:not(.modern-home) #contents p,
	body:not(.modern-home) #contents li,
	body:not(.modern-home) #contents dd,
	body:not(.modern-home) #contents td {
		color: #334455;
		line-height: 1.8;
		letter-spacing: 0;
	}

	body:not(.modern-home) ul.default,
	body:not(.modern-home) ol.default {
		margin-left: 1.25em;
	}

	body:not(.modern-home) table,
	body:not(.modern-home) table.t01,
	body:not(.modern-home) table.table_line {
		width: 100%;
		display: block;
		overflow-x: auto;
		border-collapse: collapse;
		border: 1px solid var(--modern-line);
		background: var(--modern-paper);
	}

	body:not(.modern-home) table th,
	body:not(.modern-home) table td,
	body:not(.modern-home) td.table_head,
	body:not(.modern-home) td.table_left,
	body:not(.modern-home) td.table_right,
	body:not(.modern-home) td.table_line {
		border-color: var(--modern-line);
		padding: 9px 10px;
	}

	body:not(.modern-home) td.table_head,
	body:not(.modern-home) table th {
		background: var(--modern-soft);
		color: var(--modern-ink);
		font-weight: 800;
	}

	body:not(.modern-home) #contents figure:not(.no_border) {
		padding: 10px;
		border: 1px solid var(--modern-line);
		border-radius: 8px;
		background: #fff;
		box-shadow: 0 6px 14px rgba(16, 40, 58, 0.05);
		box-sizing: border-box;
	}

	body:not(.modern-home) #contents figure img:not(.textimg):not(.textimg_v):not(.textimg_large):not(.textimg_large_v) {
		display: block;
		max-width: 100%;
		height: auto;
		margin: 0 auto;
	}

	body:not(.modern-home) #contents table {
		margin: 16px 0 24px;
	}

	body:not(.modern-home) #contents table tr:nth-child(even) td {
		background: #fbfcfd;
	}

	body:not(.modern-home) .license-purchase-figure {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		margin-top: 24px;
		text-align: left;
	}

	body:not(.modern-home) .license-purchase-panel {
		display: block !important;
		width: 100%;
		max-width: 572px;
		margin: 0 auto !important;
	}

	body:not(.modern-home) .license-purchase-intro {
		margin: 0 0 24px;
		padding: 18px;
		border: 1px solid var(--modern-line);
		border-left: 4px solid var(--modern-accent);
		border-radius: 8px;
		background: linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
		box-sizing: border-box;
	}

	body:not(.modern-home) .license-purchase-intro h3 {
		margin-top: 0;
		font-size: 19px;
	}

	body:not(.modern-home) .license-page-eyebrow {
		margin: 0 0 8px;
		color: #1686bc;
		font-size: 12px;
		font-weight: 800;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	body:not(.modern-home) .license-step-grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: 10px;
		margin: 16px 0;
	}

	body:not(.modern-home) .license-step-grid div {
		display: flex;
		gap: 10px;
		align-items: flex-start;
		padding: 11px;
		border: 1px solid var(--modern-line);
		border-radius: 8px;
		background: #fff;
	}

	body:not(.modern-home) .license-step-grid span {
		display: inline-flex;
		flex: 0 0 auto;
		align-items: center;
		justify-content: center;
		width: 24px;
		height: 24px;
		border-radius: 999px;
		background: var(--modern-accent);
		color: #fff;
		font-weight: 800;
		line-height: 1;
	}

	body:not(.modern-home) .license-step-grid p {
		margin: 0;
		font-size: 14px;
		line-height: 1.65;
	}

	body:not(.modern-home) .license-notice {
		margin: 0;
		padding: 12px;
		border-radius: 8px;
		background: #eef6fa;
		color: #244255;
		font-size: 14px;
		line-height: 1.75;
	}

	body:not(.modern-home) table.license-purchase-table {
		width: 100%;
		border: 0;
		border-collapse: separate;
		border-spacing: 0 12px;
		background: transparent;
	}

	body:not(.modern-home) table.license-purchase-table td {
		border: 0;
		padding: 5px 10px 5px 0;
		background: transparent;
		vertical-align: middle;
	}

	body:not(.modern-home) table.license-purchase-table hr.line {
		display: none;
	}

	body:not(.modern-home) table.license-purchase-table .license-option,
	body:not(.modern-home) table.license-purchase-table .license-price {
		width: auto;
		white-space: normal;
	}

	body:not(.modern-home) table.license-purchase-table .license-price {
		color: #15345a;
	}

	body:not(.modern-home) .license-action-separator {
		margin: 8px 0 12px;
	}

	body:not(.modern-home) #paypal-button-container,
	body:not(.modern-home) #student-button-container {
		width: 312px;
		max-width: 100%;
		box-sizing: border-box;
		margin-left: auto;
		margin-right: auto;
	}

	body:not(.modern-home) #early-discount-button-container {
		display: block;
		width: 100% !important;
		max-width: 572px;
		box-sizing: border-box;
		margin: 18px auto 0 !important;
		clear: both;
	}

	body:not(.modern-home) .early-discount-form {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 10px;
		margin: 18px auto 0;
	}

	body:not(.modern-home) .early-discount-form input[type="text"] {
		width: min(300px, 64%);
		margin: 0;
	}

	body:not(.modern-home) .early-discount-form input[type="submit"] {
		width: auto;
		min-width: 82px;
		margin: 0;
	}

	body:not(.modern-home) form input[type="email"] {
		-moz-transition: background-color 0.25s ease-in-out;
		-webkit-transition: background-color 0.25s ease-in-out;
		-ms-transition: background-color 0.25s ease-in-out;
		transition: background-color 0.25s ease-in-out;
		-webkit-appearance: none;
		width: 100%;
		padding: 0.30em;
		font-size: 1.2em;
		line-height: 1em;
		font-family: "Lato", sans-serif;
		font-weight: 400;
		border-radius: 6px;
		background: #fafafa;
		border: 1px solid #c6c6c6;
		outline: none;
		box-sizing: border-box;
	}

	body:not(.modern-home) form input[type="email"]:focus {
		background: #f0f2f5;
	}

	body:not(.modern-home) #menu {
		margin: 18px 0 0;
	}

	body:not(.modern-home) .menulist,
	body:not(.modern-home) .menu_free {
		width: 100%;
		margin: 0 0 20px;
		padding: 0;
		border: 1px solid var(--modern-line);
		border-radius: 8px;
		background: var(--modern-paper);
		box-sizing: border-box;
		overflow: hidden;
		text-align: left;
	}

	body:not(.modern-home) .menulist h2,
	body:not(.modern-home) .menulist h3,
	body:not(.modern-home) .menu_free h2 {
		margin: 0;
		padding: 13px 16px;
		border: 0;
		background: var(--modern-deep);
		color: #fff;
		font-size: 15px;
		letter-spacing: 0;
	}

	body:not(.modern-home) .menulist li a,
	body:not(.modern-home) .menu_free li a {
		display: block;
		width: 100%;
		padding: 12px 18px;
		border: 0;
		border-top: 1px solid var(--modern-line);
		background: transparent;
		box-sizing: border-box;
		color: var(--modern-ink);
		font-size: 14px;
		line-height: 1.7;
		text-decoration: none;
	}

	body:not(.modern-home) .menulist li:first-child a,
	body:not(.modern-home) .menu_free li:first-child a {
		border-top: 0;
	}

	body:not(.modern-home) .menulist li a strong,
	body:not(.modern-home) .menu_free li a strong {
		display: block;
		margin: -12px -18px;
		padding: 12px 18px;
		border-left: 4px solid var(--modern-accent);
		background: #eef7fb;
		color: var(--modern-accent-dark);
		font-weight: 800;
		box-sizing: border-box;
	}

	body:not(.modern-home) .menulist li a strong em,
	body:not(.modern-home) .menu_free li a strong em {
		font-style: normal;
	}

	body:not(.modern-home) .button,
	body:not(.modern-home) form .button {
		border: 1px solid var(--modern-accent);
		border-radius: 6px;
		background: var(--modern-accent);
		color: #fff !important;
	}

	body:not(.modern-home) #footer {
		margin: 28px 0 0;
		padding: 24px 18px;
		background: var(--modern-deep);
		color: #d8e5ed;
	}

	body:not(.modern-home) #footer a,
	body:not(.modern-home) #footer a:visited {
		color: #fff !important;
	}
}

/* Shared site chrome.
   Header markup is generated by menu.php and is common to the home and lower pages. */
@media only screen and (max-width: 900px) {
	body.modern-home,
	body:not(.modern-home) {
		margin: 0;
		background: var(--modern-soft, var(--soft, #f5f7f9));
		color: var(--modern-ink, var(--ink, #16202a));
		font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
		letter-spacing: 0;
		-webkit-text-size-adjust: 100%;
	}

	body.modern-home #main,
	body:not(.modern-home) #main {
		width: 100%;
		max-width: none;
		margin: 0;
		border: 0;
		background: var(--modern-paper, var(--paper, #ffffff));
		overflow: hidden;
		text-align: left;
		box-sizing: border-box;
	}

	body.modern-home #header,
	body:not(.modern-home) #header {
		width: 100%;
		height: auto;
		margin: 0;
		padding: 0;
		border-bottom: 1px solid var(--modern-line, var(--line, #d9e1e8));
		background: var(--modern-paper, var(--paper, #ffffff));
		line-height: 1.6;
		box-sizing: border-box;
	}

	body.modern-home #header h1,
	body:not(.modern-home) #header h1 {
		display: none;
	}

	body.modern-home #header #header_inner,
	body:not(.modern-home) #header #header_inner {
		width: min(1180px, calc(100% - 40px));
		height: auto;
		min-height: 0;
		margin: 0 auto;
		padding: 12px 0;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 10px;
		background: transparent;
		box-sizing: border-box;
	}

	body.modern-home #h_logo,
	body:not(.modern-home) #h_logo,
	body.modern-home #h_info,
	body:not(.modern-home) #h_info {
		float: none;
		box-sizing: border-box;
	}

	body.modern-home #h_logo,
	body:not(.modern-home) #h_logo {
		width: 100%;
		padding: 0;
		text-align: left;
		color: var(--modern-ink, var(--ink, #16202a));
	}

	body.modern-home #h_logo h2,
	body:not(.modern-home) #h_logo h2 {
		margin: 0;
		padding: 0;
		font-size: 20px;
		line-height: 1.25;
		letter-spacing: 0;
	}

	body.modern-home #h_logo a,
	body.modern-home #h_logo a:hover,
	body:not(.modern-home) #h_logo a,
	body:not(.modern-home) #h_logo a:hover {
		color: var(--modern-ink, var(--ink, #16202a)) !important;
		font-size: inherit;
		font-weight: 800;
		line-height: 1.25;
		text-decoration: none;
		letter-spacing: 0;
	}

	body.modern-home #h_info,
	body:not(.modern-home) #h_info {
		width: 100%;
		min-height: 34px;
		margin: 0;
		padding: 0 !important;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 18px;
		text-align: left;
	}

	body.modern-home #h_info > span,
	body:not(.modern-home) #h_info > span {
		height: 34px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 3px;
		color: var(--modern-ink, var(--ink, #16202a));
		line-height: 1;
	}

	body.modern-home #h_info > span a,
	body:not(.modern-home) #h_info > span a {
		display: inline-flex;
		align-items: center;
		gap: 3px;
		color: var(--modern-ink, var(--ink, #16202a));
		text-decoration: none;
		line-height: 1;
	}

	body.modern-home #h_info > span img,
	body:not(.modern-home) #h_info > span img {
		width: 26px;
		height: auto;
		display: block;
		box-shadow: none;
	}

	body.modern-home #h_info > span sup,
	body:not(.modern-home) #h_info > span sup {
		position: static;
		top: auto;
		margin-left: 1px;
		color: var(--modern-muted, var(--muted, #5f6f7f));
		font-size: 12px;
		line-height: 1;
		vertical-align: baseline;
	}

	body.modern-home #h_info p,
	body:not(.modern-home) #h_info p {
		margin: 0;
		padding: 0;
		letter-spacing: 0;
	}

	body.modern-home #h_info .sns,
	body:not(.modern-home) #h_info .sns {
		height: 34px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 16px;
		line-height: 1;
	}

	body.modern-home #h_info .sns a,
	body.modern-home #h_info .sns a:hover,
	body:not(.modern-home) #h_info .sns a,
	body:not(.modern-home) #h_info .sns a:hover {
		width: 34px;
		height: 34px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		color: #8a94a6;
		text-decoration: none;
		line-height: 1;
	}

	body.modern-home #h_info .sns-icon,
	body:not(.modern-home) #h_info .sns-icon {
		display: block;
		fill: currentColor;
	}

	body.modern-home #h_info .sns-icon-x,
	body:not(.modern-home) #h_info .sns-icon-x {
		width: 28px;
		height: 28px;
	}

	body.modern-home #h_info .sns-icon-fb,
	body:not(.modern-home) #h_info .sns-icon-fb {
		width: 19px;
		height: 30px;
	}

	body.modern-home #h_info .sns-separator,
	body:not(.modern-home) #h_info .sns-separator {
		color: rgba(138, 148, 166, 0.32);
		font-size: 24px;
		line-height: 1;
	}

	body.modern-home #header-menu,
	body:not(.modern-home) #header-menu {
		height: auto;
		margin: 0;
		background: var(--modern-deep, var(--deep, #10283a));
	}

	body.modern-home #header-menu ul,
	body:not(.modern-home) #header-menu ul {
		width: 100%;
		margin: 0;
		padding: 0;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		background: transparent;
	}

	body.modern-home #header-menu li,
	body:not(.modern-home) #header-menu li {
		float: none;
		display: block;
		margin: 0;
		padding: 0;
		border: 0;
		text-align: center;
	}

	body.modern-home #header-menu li a,
	body:not(.modern-home) #header-menu li a {
		width: 100%;
		min-height: 64px;
		padding: 10px 8px !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		border: 0;
		border-top: 1px solid rgba(255,255,255,0.12);
		background: transparent;
		color: #fff !important;
		font-size: 13px;
		line-height: 1.25;
		letter-spacing: 0;
		text-align: center;
		text-decoration: none;
		box-sizing: border-box;
	}

	body.modern-home #header-menu li a:hover,
	body:not(.modern-home) #header-menu li a:hover {
		background: rgba(255,255,255,0.08);
	}
}
