@charset 'UTF-8';
/*==========================================================================

   mixin

===========================================================================*/
/*!
 * ress.css • v2.0.4
 * MIT License
 * github.com/filipelinhares/ress
 */
/* # =================================================================
   # Global selectors
   # ================================================================= */
@import url('//fonts.googleapis.com/earlyaccess/notosansjapanese.css');
@import url('//cdn.jsdelivr.net/npm/yakuhanjp@3.0.0/dist/css/yakuhanjp.min.css');
html {
	box-sizing: border-box;
	/* Prevent adjustments of font size after orientation changes in iOS */
	word-break: normal;
	-moz-tab-size: 4;
	     tab-size: 4;

	-webkit-text-size-adjust: 100%;
}

*,
::before,
::after {
	/* Set `background-repeat: no-repeat` to all elements and pseudo elements */
	box-sizing: inherit;
	background-repeat: no-repeat;
}

::before,
::after {
	/* Inherit text-decoration and vertical align to ::before and ::after pseudo elements */
	vertical-align: inherit;
	text-decoration: inherit;
}

* {
	/* Reset `padding` and `margin` of all elements */
	margin: 0;
	padding: 0;
}

/* # =================================================================
   # General elements
   # ================================================================= */
hr {
	overflow: visible;
	/* Show the overflow in Edge and IE */
	height: 0;
	/* Add the correct box sizing in Firefox */
}

details,
main {
	display: block;
	/* Render the `main` element consistently in IE. */
}

summary {
	display: list-item;
	/* Add the correct display in all browsers */
}

small {
	font-size: 80%;
	/* Set font-size to 80% in `small` elements */
}

[hidden] {
	display: none;
	/* Add the correct display in IE */
}

abbr[title] {
	border-bottom: none;
	/* Remove the bottom border in Chrome 57 */
	/* Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari */
	text-decoration: underline;
	text-decoration: underline dotted;
}

a {
	background-color: transparent;
	/* Remove the gray background on active links in IE 10 */
}

a:active,
a:hover {
	outline-width: 0;
	/* Remove the outline when hovering in all browsers */
}

code,
kbd,
pre,
samp {
	font-family: monospace, monospace;
	/* Specify the font family of code elements */
}

pre {
	font-size: 1em;
	/* Correct the odd `em` font sizing in all browsers */
}

b,
strong {
	font-weight: bolder;
	/* Add the correct font weight in Chrome, Edge, and Safari */
}

/* https://gist.github.com/unruthless/413930 */
sub,
sup {
	position: relative;
	vertical-align: baseline;
	font-size: 75%;
	line-height: 0;
}

sub {
	bottom: -.25em;
}

sup {
	top: -.5em;
}

/* # =================================================================
   # Forms
   # ================================================================= */
input {
	border-radius: 0;
}

/* Replace pointer cursor in disabled elements */
[disabled] {
	cursor: default;
}

[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
	height: auto;
	/* Correct the cursor style of increment and decrement buttons in Chrome */
}

[type='search'] {
	/* Correct the odd appearance in Chrome and Safari */
	outline-offset: -2px;
	-webkit-appearance: textfield;
	/* Correct the outline style in Safari */
}

[type='search']::-webkit-search-decoration {
	-webkit-appearance: none;
	/* Remove the inner padding in Chrome and Safari on macOS */
}

textarea {
	overflow: auto;
	/* Internet Explorer 11+ */
	resize: vertical;
	/* Specify textarea resizability */
}

button,
input,
optgroup,
select,
textarea {
	font: inherit;
	/* Specify font inheritance of form elements */
}

optgroup {
	font-weight: bold;
	/* Restore the font weight unset by the previous rule */
}

button {
	overflow: visible;
	/* Address `overflow` set to `hidden` in IE 8/9/10/11 */
}

button,
select {
	text-transform: none;
	/* Firefox 40+, Internet Explorer 11- */
}

/* Apply cursor pointer to button elements */
button,
[type='button'],
[type='reset'],
[type='submit'],
[role='button'] {
	color: inherit;
	cursor: pointer;
}

/* Remove inner padding and border in Firefox 4+ */
button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
	padding: 0;
	border-style: none;
}

/* Replace focus style removed in the border reset above */
button:-moz-focusring,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
	outline: 1px dotted ButtonText;
}

button,
html [type='button'],
[type='reset'],
[type='submit'] {
	-webkit-appearance: button;
	/* Correct the inability to style clickable types in iOS */
}

/* Remove the default button styling in all browsers */
button,
input,
select,
textarea {
	border-style: none;
	background-color: transparent;
}

/* Style select like a standard input */
select {
	/* Firefox 36+ */
	-webkit-appearance: none;

	   -moz-appearance: none;
	/* Chrome 41+ */
}

select::-ms-expand {
	display: none;
	/* Internet Explorer 11+ */
}

select::-ms-value {
	color: currentColor;
	/* Internet Explorer 11+ */
}

legend {
	/* Correct the color inheritance from `fieldset` elements in IE */
	display: table;
	/* Correct the text wrapping in Edge and IE */
	max-width: 100%;
	/* Correct the text wrapping in Edge and IE */
	max-width: 100%;
	border: 0;
	/* Correct the text wrapping in Edge and IE */
	white-space: normal;
	/* Correct `color` not being inherited in IE 8/9/10/11 */
	color: inherit;
	/* Correct the text wrapping in Edge 18- and IE */
}

::-webkit-file-upload-button {
	color: inherit;
	font: inherit;
	/* Correct the inability to style clickable types in iOS and Safari */
	-webkit-appearance: button;
	/* Change font properties to `inherit` in Chrome and Safari */
}

/* # =================================================================
   # Specify media element style
   # ================================================================= */
img {
	border-style: none;
	/* Remove border when inside `a` element in IE 8/9/10 */
}

/* Add the correct vertical alignment in Chrome, Firefox, and Opera */
progress {
	vertical-align: baseline;
}

svg:not([fill]) {
	fill: currentColor;
}

/* # =================================================================
   # Accessibility
   # ================================================================= */
/* Hide content from screens but not screenreaders */
@media screen {
	[hidden~='screen'] {
		display: inherit;
	}
	[hidden~='screen']:not(:active):not(:focus):not(:target) {
		position: absolute !important;
		clip: rect(0 0 0 0) !important;
	}
}

/* Specify the progress cursor of updating elements */
[aria-busy='true'] {
	cursor: progress;
}

/* Specify the pointer cursor of trigger elements */
[aria-controls] {
	cursor: pointer;
}

/* Specify the unstyled cursor of disabled, not-editable, or otherwise inoperable elements */
[aria-disabled] {
	cursor: default;
}

/* webfont */
/* local */
/*==========================================================================

   mixin

===========================================================================*/
/*--------------------------------------------------------------------------
   Noto Serif CJK JP
---------------------------------------------------------------------------*/
@font-face {
	font-family: 'Noto Serif Japanese';
	font-weight: 400;
	font-style: normal;

	src: url(../font/NotoSerifJP/NotoSerifJP-Regular.woff2) format('woff2'), url(../font/NotoSerifJP/NotoSerifJP-Regular.woff) format('woff'), url(../font/NotoSerifCJKjp/NotoSerifCJKjp-Regular.otf) format('opentype');
	font-display: swap;
}

@font-face {
	font-family: 'Noto Serif Japanese';
	font-weight: 700;
	font-style: normal;

	src: url(../font/NotoSerifJP/NotoSerifJP-Bold.woff2) format('woff2'), url(../font/NotoSerifJP/NotoSerifJP-Bold.woff) format('woff'), url(../font/NotoSerifCJKjp/NotoSerifCJKjp-Bold.otf) format('opentype');
	font-display: swap;
}

body {
	/*font-family: 'Noto Serif Japanese', serif, sans-serif;*/
}

/* Slider */
.slick-slider {
	display: block;
	box-sizing: border-box;
	position: relative;
	-webkit-user-select: none;
	    -ms-user-select: none;
	        user-select: none;

	-webkit-touch-callout: none;
	-ms-touch-action: pan-y;
	    touch-action: pan-y;
	-webkit-tap-highlight-color: transparent;
}

.slick-list {
	display: block;
	overflow: hidden;
	position: relative;
	margin: 0;
	padding: 0;
}

.slick-list:focus {
	outline: none;
}

.slick-list.dragging {
	cursor: pointer;
	cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
	transform: translate3d(0, 0, 0);
}

.slick-track {
	display: block;
	position: relative;
	top: 0;
	left: 0;
	margin-right: auto;
	margin-left: auto;
}

.slick-track:before,
.slick-track:after {
	display: table;
	content: '';
}

.slick-track:after {
	clear: both;
}

.slick-loading .slick-track {
	visibility: hidden;
}

.slick-slide {
	display: none;
	float: left;
	height: 100%;
	min-height: 1px;
}

[dir='rtl'] .slick-slide {
	float: right;
}

.slick-slide img {
	display: block;
}

.slick-slide.slick-loading img {
	display: none;
}

.slick-slide.dragging img {
	pointer-events: none;
}

.slick-initialized .slick-slide {
	display: block;
}

.slick-loading .slick-slide {
	visibility: hidden;
}

.slick-vertical .slick-slide {
	display: block;
	height: auto;
	border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
	display: none;
}

/*
 * Container style
 */
.ps {
	overflow: hidden !important;

	overflow-anchor: none;
	-ms-overflow-style: none;
	    touch-action: auto;
	-ms-touch-action: auto;
}

/*
 * Scrollbar rail styles
 */
.ps__rail-x {
	display: none;
	/* please don't change 'position' */
	position: absolute;
	/* there must be 'bottom' or 'top' for ps__rail-x */
	bottom: 0;
	height: 15px;
	-webkit-transition: background-color .2s linear, opacity .2s linear;
	        transition: background-color .2s linear, opacity .2s linear;
	opacity: 0;
}

.ps__rail-y {
	display: none;
	/* please don't change 'position' */
	position: absolute;
	/* there must be 'right' or 'left' for ps__rail-y */
	right: 0;
	width: 15px;
	-webkit-transition: background-color .2s linear, opacity .2s linear;
	        transition: background-color .2s linear, opacity .2s linear;
	opacity: 0;
}

.ps--active-x > .ps__rail-x,
.ps--active-y > .ps__rail-y {
	display: block;
	background-color: transparent;
}

.ps:hover > .ps__rail-x,
.ps:hover > .ps__rail-y,
.ps--focus > .ps__rail-x,
.ps--focus > .ps__rail-y,
.ps--scrolling-x > .ps__rail-x,
.ps--scrolling-y > .ps__rail-y {
	opacity: .6;
}

.ps .ps__rail-x:hover,
.ps .ps__rail-y:hover,
.ps .ps__rail-x:focus,
.ps .ps__rail-y:focus,
.ps .ps__rail-x.ps--clicking,
.ps .ps__rail-y.ps--clicking {
	background-color: #eee;
	opacity: .9;
}

/*
 * Scrollbar thumb styles
 */
.ps__thumb-x {
	/* please don't change 'position' */
	position: absolute;
	/* there must be 'bottom' for ps__thumb-x */
	bottom: 2px;
	height: 6px;
	border-radius: 6px;
	background-color: #aaa;
	-webkit-transition: background-color .2s linear, height .2s ease-in-out;
	        transition: background-color .2s linear, height .2s ease-in-out;
}

.ps__thumb-y {
	/* please don't change 'position' */
	position: absolute;
	/* there must be 'right' for ps__thumb-y */
	right: 2px;
	width: 6px;
	border-radius: 6px;
	background-color: #aaa;
	-webkit-transition: background-color .2s linear, width .2s ease-in-out;
	        transition: background-color .2s linear, width .2s ease-in-out;
}

.ps__rail-x:hover > .ps__thumb-x,
.ps__rail-x:focus > .ps__thumb-x,
.ps__rail-x.ps--clicking .ps__thumb-x {
	height: 11px;
	background-color: #999;
}

.ps__rail-y:hover > .ps__thumb-y,
.ps__rail-y:focus > .ps__thumb-y,
.ps__rail-y.ps--clicking .ps__thumb-y {
	width: 11px;
	background-color: #999;
}

/* MS supports */
@supports (-ms-overflow-style: none) {
	.ps {
		overflow: auto !important;
	}
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
	.ps {
		overflow: auto !important;
	}
}

/*!
 * FullCalendar v3.9.0
 * Docs & License: https://fullcalendar.io/
 * (c) 2018 Adam Shaw
 */
.fc {
	text-align: left;

	direction: ltr;
}

.fc-rtl {
	text-align: right;
}

body .fc {
	/* extra precedence to overcome jqui */
	font-size: 1em;
}

/* Colors
--------------------------------------------------------------------------------------------------*/
.fc-highlight {
	/* when user is selecting cells */
	background: #bce8f1;
	opacity: .3;
}

.fc-bgevent {
	/* default look for background events */
	background: #8fdf82;
	opacity: .3;
}

.fc-nonbusiness {
	/* default look for non-business-hours areas */
	/* will inherit .fc-bgevent's styles */
	background: #d7d7d7;
}

/* Buttons (styled <button> tags, normalized to work cross-browser)
--------------------------------------------------------------------------------------------------*/
.fc button {
	/* force height to include the border and padding */
	box-sizing: border-box;
	height: 2.1em;
	/* dimensions */
	margin: 0;
	padding: 0 .6em;
	/* normalize */
	white-space: nowrap;
	/* text & cursor */
	font-size: 1em;
	cursor: pointer;
}

/* Firefox has an annoying inner border */
.fc button::-moz-focus-inner {
	margin: 0;
	padding: 0;
}

.fc-state-default {
	/* non-theme */
	border: 1px solid;
}

.fc-state-default.fc-corner-left {
	/* non-theme */
	border-top-left-radius: 4px;
	border-bottom-left-radius: 4px;
}

.fc-state-default.fc-corner-right {
	/* non-theme */
	border-top-right-radius: 4px;
	border-bottom-right-radius: 4px;
}

/* icons in buttons */
.fc button .fc-icon {
	/* non-theme */
	position: relative;
	top: -.05em;
	/* seems to be a good adjustment across browsers */
	margin: 0 .2em;
	vertical-align: middle;
}

/*
  button states
  borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)
*/
.fc-state-default {
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05);
	border-color: #e6e6e6 #e6e6e6 #bfbfbf;
	border-color: rgba(0, 0, 0, .1) rgba(0, 0, 0, .1) rgba(0, 0, 0, .25);
	background-color: #f5f5f5;
	background-image: linear-gradient(to bottom, #fff, #e6e6e6);
	background-repeat: repeat-x;
	color: #333;
	text-shadow: 0 1px 1px rgba(255, 255, 255, .75);
}

.fc-state-hover,
.fc-state-down,
.fc-state-active,
.fc-state-disabled {
	background-color: #e6e6e6;
	color: #333;
}

.fc-state-hover {
	background-position: 0 -15px;
	text-decoration: none;
	color: #333;
	transition: background-position .1s linear;
}

.fc-state-down,
.fc-state-active {
	box-shadow: inset 0 2px 4px rgba(0, 0, 0, .15), 0 1px 2px rgba(0, 0, 0, .05);
	background-color: #ccc;
	background-image: none;
}

.fc-state-disabled {
	box-shadow: none;
	background-image: none;
	cursor: default;
	opacity: .65;
}

/* Buttons Groups
--------------------------------------------------------------------------------------------------*/
.fc-button-group {
	display: inline-block;
}

/*
every button that is not first in a button group should scootch over one pixel and cover the
previous button's border...
*/
.fc .fc-button-group > * {
	/* extra precedence b/c buttons have margin set to zero */
	float: left;
	margin: 0 0 0 -1px;
}

.fc .fc-button-group > :first-child {
	/* same */
	margin-left: 0;
}

/* Popover
--------------------------------------------------------------------------------------------------*/
.fc-popover {
	position: absolute;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}

.fc-popover .fc-header {
	/* TODO: be more consistent with fc-head/fc-body */
	padding: 2px 4px;
}

.fc-popover .fc-header .fc-title {
	margin: 0 2px;
}

.fc-popover .fc-header .fc-close {
	cursor: pointer;
}

.fc-ltr .fc-popover .fc-header .fc-title,
.fc-rtl .fc-popover .fc-header .fc-close {
	float: left;
}

.fc-rtl .fc-popover .fc-header .fc-title,
.fc-ltr .fc-popover .fc-header .fc-close {
	float: right;
}

/* Misc Reusable Components
--------------------------------------------------------------------------------------------------*/
.fc-divider {
	border-width: 1px;
	border-style: solid;
}

hr.fc-divider {
	height: 0;
	margin: 0;
	padding: 0 0 2px;
	/* height is unreliable across browsers, so use padding */
	border-width: 1px 0;
}

.fc-clear {
	clear: both;
}

.fc-bg,
.fc-bgevent-skeleton,
.fc-highlight-skeleton,
.fc-helper-skeleton {
	/* these element should always cling to top-left/right corners */
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}

.fc-bg {
	bottom: 0;
	/* strech bg to bottom edge */
}

.fc-bg table {
	height: 100%;
	/* strech bg to bottom edge */
}

/* Tables
--------------------------------------------------------------------------------------------------*/
.fc table {
	box-sizing: border-box;
	width: 100%;
	font-size: 1em;
	/* fix scrollbar issue in firefox */
	table-layout: fixed;
	border-spacing: 0;
	border-collapse: collapse;
	/* normalize cross-browser */
}

.fc th {
	text-align: center;
}

.fc th,
.fc td {
	padding: 0;
	border-width: 1px;
	border-style: solid;
	vertical-align: top;
}

.fc td.fc-today {
	border-style: double;
	/* overcome neighboring borders */
}

/* Internal Nav Links
--------------------------------------------------------------------------------------------------*/
a[data-goto] {
	cursor: pointer;
}

a[data-goto]:hover {
	text-decoration: underline;
}

/* Fake Table Rows
--------------------------------------------------------------------------------------------------*/
.fc .fc-row {
	border-width: 0;
	/* extra precedence to overcome themes w/ .ui-widget-content forcing a 1px border */
	/* no visible border by default. but make available if need be (scrollbar width compensation) */
	border-style: solid;
}

.fc-row table {
	border-right: 0 hidden transparent;
	/* no bottom borders on rows */
	border-bottom: 0 hidden transparent;
	/* don't put left/right border on anything within a fake row.
     the outer tbody will worry about this */
	border-left: 0 hidden transparent;
}

.fc-row:first-child table {
	border-top: 0 hidden transparent;
	/* no top border on first row */
}

/* Day Row (used within the header and the DayGrid)
--------------------------------------------------------------------------------------------------*/
.fc-row {
	position: relative;
}

.fc-row .fc-bg {
	z-index: 1;
}

/* highlighting cells & background event skeleton */
.fc-row .fc-bgevent-skeleton,
.fc-row .fc-highlight-skeleton {
	bottom: 0;
	/* stretch skeleton to bottom of row */
}

.fc-row .fc-bgevent-skeleton table,
.fc-row .fc-highlight-skeleton table {
	height: 100%;
	/* stretch skeleton to bottom of row */
}

.fc-row .fc-highlight-skeleton td,
.fc-row .fc-bgevent-skeleton td {
	border-color: transparent;
}

.fc-row .fc-bgevent-skeleton {
	z-index: 2;
}

.fc-row .fc-highlight-skeleton {
	z-index: 3;
}

/*
row content (which contains day/week numbers and events) as well as "helper" (which contains
temporary rendered events).
*/
.fc-row .fc-content-skeleton {
	position: relative;
	z-index: 4;
	padding-bottom: 2px;
	/* matches the space above the events */
}

.fc-row .fc-helper-skeleton {
	z-index: 5;
}

.fc .fc-row .fc-content-skeleton table,
.fc .fc-row .fc-content-skeleton td,
.fc .fc-row .fc-helper-skeleton td {
	/* in case <td>s are globally styled */
	border-color: transparent;
	/* see-through to the background below */
	/* extra precedence to prevent theme-provided backgrounds */
	background: none;
}

.fc-row .fc-content-skeleton td,
.fc-row .fc-helper-skeleton td {
	/* don't put a border between events and/or the day number */
	border-bottom: 0;
}

.fc-row .fc-content-skeleton tbody td,
.fc-row .fc-helper-skeleton tbody td {
	/* don't put a border between event cells */
	border-top: 0;
}

/* Scrolling Container
--------------------------------------------------------------------------------------------------*/
.fc-scroller {
	-webkit-overflow-scrolling: touch;
}

/* TODO: move to agenda/basic */
.fc-scroller > .fc-day-grid,
.fc-scroller > .fc-time-grid {
	position: relative;
	/* re-scope all positions */
	width: 100%;
	/* hack to force re-sizing this inner element when scrollbars appear/disappear */
}

/* Global Event Styles
--------------------------------------------------------------------------------------------------*/
.fc-event {
	/* for resize handle and other inner positioning */
	display: block;
	position: relative;
	border: 1px solid #3a87ad;
	border-radius: 3px;
	/* make the <a> tag block */
	font-size: .85em;
	line-height: 1.3;
	/* default BORDER color */
}

.fc-event,
.fc-event-dot {
	background-color: #3a87ad;
	/* default BACKGROUND color */
}

.fc-event,
.fc-event:hover {
	/* default TEXT color */
	text-decoration: none;
	color: #fff;
	/* if <a> has an href */
}

.fc-event[href],
.fc-event.fc-draggable {
	cursor: pointer;
	/* give events with links and draggable events a hand mouse pointer */
}

.fc-not-allowed,
.fc-not-allowed .fc-event {
	/* to override an event's custom cursor */
	cursor: not-allowed;
}

.fc-event .fc-bg {
	/* the generic .fc-bg already does position */
	z-index: 1;
	background: #fff;
	opacity: .25;
}

.fc-event .fc-content {
	position: relative;
	z-index: 2;
}

/* resizer (cursor AND touch devices) */
.fc-event .fc-resizer {
	position: absolute;
	z-index: 4;
}

/* resizer (touch devices) */
.fc-event .fc-resizer {
	display: none;
}

.fc-event.fc-allow-mouse-resize .fc-resizer,
.fc-event.fc-selected .fc-resizer {
	/* only show when hovering or selected (with touch) */
	display: block;
}

/* hit area */
.fc-event.fc-selected .fc-resizer:before {
	position: absolute;
	/* user of this util can scope within a lower z-index */
	top: 50%;
	left: 50%;
	z-index: 9999;
	width: 40px;
	height: 40px;
	margin-top: -20px;
	margin-left: -20px;
	/* 40x40 touch area */
	content: '';
}

/* Event Selection (only for touch devices)
--------------------------------------------------------------------------------------------------*/
.fc-event.fc-selected {
	z-index: 9999 !important;
	/* overcomes inline z-index */
	box-shadow: 0 2px 5px rgba(0, 0, 0, .2);
}

.fc-event.fc-selected.fc-dragging {
	box-shadow: 0 2px 7px rgba(0, 0, 0, .3);
}

/* Horizontal Events
--------------------------------------------------------------------------------------------------*/
/* bigger touch area when selected */
.fc-h-event.fc-selected:before {
	position: absolute;
	/* below resizers */
	top: -10px;
	bottom: -10px;
	left: 0;
	right: 0;
	z-index: 3;
	content: '';
}

/* events that are continuing to/from another week. kill rounded corners and butt up against edge */
.fc-ltr .fc-h-event.fc-not-start,
.fc-rtl .fc-h-event.fc-not-end {
	margin-left: 0;
	padding-left: 1px;
	border-left-width: 0;
	/* replace the border with padding */
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.fc-ltr .fc-h-event.fc-not-end,
.fc-rtl .fc-h-event.fc-not-start {
	margin-right: 0;
	padding-right: 1px;
	border-right-width: 0;
	/* replace the border with padding */
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

/* resizer (cursor AND touch devices) */
/* left resizer  */
.fc-ltr .fc-h-event .fc-start-resizer,
.fc-rtl .fc-h-event .fc-end-resizer {
	left: -1px;
	cursor: w-resize;
	/* overcome border */
}

/* right resizer */
.fc-ltr .fc-h-event .fc-end-resizer,
.fc-rtl .fc-h-event .fc-start-resizer {
	right: -1px;
	cursor: e-resize;
	/* overcome border */
}

/* resizer (mouse devices) */
.fc-h-event.fc-allow-mouse-resize .fc-resizer {
	top: -1px;
	/* overcome top border */
	bottom: -1px;
	width: 7px;
	/* overcome bottom border */
}

/* resizer (touch devices) */
.fc-h-event.fc-selected .fc-resizer {
	/* vertically center */
	top: 50%;
	width: 6px;
	height: 6px;
	margin-top: -4px;
	border-width: 1px;
	border-style: solid;
	border-color: inherit;
	/* 8x8 little dot */
	border-radius: 4px;
	background: #fff;
}

/* left resizer  */
.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,
.fc-rtl .fc-h-event.fc-selected .fc-end-resizer {
	margin-left: -4px;
	/* centers the 8x8 dot on the left edge */
}

/* right resizer */
.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,
.fc-rtl .fc-h-event.fc-selected .fc-start-resizer {
	margin-right: -4px;
	/* centers the 8x8 dot on the right edge */
}

/* DayGrid events
----------------------------------------------------------------------------------------------------
We use the full "fc-day-grid-event" class instead of using descendants because the event won't
be a descendant of the grid when it is being dragged.
*/
.fc-day-grid-event {
	margin: 1px 2px 0;
	/* spacing between events and edges */
	padding: 0 1px;
}

tr:first-child > td > .fc-day-grid-event {
	margin-top: 2px;
	/* a little bit more space before the first event */
}

.fc-day-grid-event.fc-selected:after {
	position: absolute;
	/* same z-index as fc-bg, behind text */
	/* overcome the borders */
	top: -1px;
	bottom: -1px;
	left: -1px;
	right: -1px;
	z-index: 1;
	/* darkening effect */
	background: #000;
	content: '';
	opacity: .25;
}

.fc-day-grid-event .fc-content {
	overflow: hidden;
	/* force events to be one-line tall */
	white-space: nowrap;
}

.fc-day-grid-event .fc-time {
	font-weight: bold;
}

/* resizer (cursor devices) */
/* left resizer  */
.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,
.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer {
	margin-left: -2px;
	/* to the day cell's edge */
}

/* right resizer */
.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,
.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer {
	margin-right: -2px;
	/* to the day cell's edge */
}

/* Event Limiting
--------------------------------------------------------------------------------------------------*/
/* "more" link that represents hidden events */
a.fc-more {
	margin: 1px 3px;
	text-decoration: none;
	font-size: .85em;
	cursor: pointer;
}

a.fc-more:hover {
	text-decoration: underline;
}

.fc-limited {
	/* rows and cells that are hidden because of a "more" link */
	display: none;
}

/* popover that appears when "more" link is clicked */
.fc-day-grid .fc-row {
	z-index: 1;
	/* make the "more" popover one higher than this */
}

.fc-more-popover {
	z-index: 2;
	width: 220px;
}

.fc-more-popover .fc-event-container {
	padding: 10px;
}

/* Now Indicator
--------------------------------------------------------------------------------------------------*/
.fc-now-indicator {
	position: absolute;
	border: 0 solid red;
}

/* Utilities
--------------------------------------------------------------------------------------------------*/
.fc-unselectable {
	-webkit-user-select: none;
	    -ms-user-select: none;
	        user-select: none;

	-webkit-touch-callout: none;
	-webkit-tap-highlight-color: transparent;
}

/*
TODO: more distinction between this file and common.css
*/
/* Colors
--------------------------------------------------------------------------------------------------*/
.fc-unthemed th,
.fc-unthemed td,
.fc-unthemed thead,
.fc-unthemed tbody,
.fc-unthemed .fc-divider,
.fc-unthemed .fc-row,
.fc-unthemed .fc-content,
.fc-unthemed .fc-popover,
.fc-unthemed .fc-list-view,
.fc-unthemed .fc-list-heading td {
	border-color: #ddd;
}

.fc-unthemed .fc-popover {
	background-color: #fff;
}

.fc-unthemed .fc-divider,
.fc-unthemed .fc-popover .fc-header,
.fc-unthemed .fc-list-heading td {
	background: #eee;
}

.fc-unthemed .fc-popover .fc-header .fc-close {
	color: #666;
}

.fc-unthemed td.fc-today {
	background: #fcf8e3;
}

.fc-unthemed .fc-disabled-day {
	background: #d7d7d7;
	opacity: .3;
}

/* Icons (inline elements with styled text that mock arrow icons)
--------------------------------------------------------------------------------------------------*/
.fc-icon {
	display: inline-block;
	overflow: hidden;
	height: 1em;
	text-align: center;
	font-family: 'Courier New', Courier, monospace;
	font-size: 1em;
	line-height: 1em;
	-webkit-user-select: none;
	    -ms-user-select: none;
	        user-select: none;
	/* don't allow browser text-selection */

	-webkit-touch-callout: none;
}

/*
Acceptable font-family overrides for individual icons:
  "Arial", sans-serif
  "Times New Roman", serif

NOTE: use percentage font sizes or else old IE chokes
*/
.fc-icon:after {
	position: relative;
}

.fc-icon-left-single-arrow:after {
	top: -7%;
	font-size: 200%;
	font-weight: bold;
	content: '\2039';
}

.fc-icon-right-single-arrow:after {
	top: -7%;
	font-size: 200%;
	font-weight: bold;
	content: '\203A';
}

.fc-icon-left-double-arrow:after {
	top: -7%;
	font-size: 160%;
	content: '\AB';
}

.fc-icon-right-double-arrow:after {
	top: -7%;
	font-size: 160%;
	content: '\BB';
}

.fc-icon-left-triangle:after {
	top: 3%;
	font-size: 125%;
	content: '\25C4';
}

.fc-icon-right-triangle:after {
	top: 3%;
	font-size: 125%;
	content: '\25BA';
}

.fc-icon-down-triangle:after {
	top: 2%;
	font-size: 125%;
	content: '\25BC';
}

.fc-icon-x:after {
	top: 6%;
	font-size: 200%;
	content: '\D7';
}

/* Popover
--------------------------------------------------------------------------------------------------*/
.fc-unthemed .fc-popover {
	border-width: 1px;
	border-style: solid;
}

.fc-unthemed .fc-popover .fc-header .fc-close {
	margin-top: 2px;
	font-size: .9em;
}

/* List View
--------------------------------------------------------------------------------------------------*/
.fc-unthemed .fc-list-item:hover td {
	background-color: #f5f5f5;
}

/* Colors
--------------------------------------------------------------------------------------------------*/
.ui-widget .fc-disabled-day {
	background-image: none;
}

/* Popover
--------------------------------------------------------------------------------------------------*/
.fc-popover > .ui-widget-header + .ui-widget-content {
	border-top: 0;
	/* where they meet, let the header have the border */
}

/* Global Event Styles
--------------------------------------------------------------------------------------------------*/
.ui-widget .fc-event {
	/* default TEXT color */
	text-decoration: none;
	/* overpower jqui's styles on <a> tags. TODO: more DRY */
	color: #fff;
	/* if <a> has an href */
	/* undo ui-widget-header bold */
	font-weight: normal;
}

/* TimeGrid axis running down the side (for both the all-day area and the slot area)
--------------------------------------------------------------------------------------------------*/
.ui-widget td.fc-axis {
	font-weight: normal;
	/* overcome bold */
}

/* TimeGrid Slats (lines that run horizontally)
--------------------------------------------------------------------------------------------------*/
.fc-time-grid .fc-slats .ui-widget-content {
	background: none;
	/* see through to fc-bg */
}

.fc.fc-bootstrap3 a {
	text-decoration: none;
}

.fc.fc-bootstrap3 a[data-goto]:hover {
	text-decoration: underline;
}

.fc-bootstrap3 hr.fc-divider {
	border-color: inherit;
}

.fc-bootstrap3 .fc-today.alert {
	border-radius: 0;
}

/* Popover
--------------------------------------------------------------------------------------------------*/
.fc-bootstrap3 .fc-popover .panel-body {
	padding: 0;
}

/* TimeGrid Slats (lines that run horizontally)
--------------------------------------------------------------------------------------------------*/
.fc-bootstrap3 .fc-time-grid .fc-slats table {
	/* some themes have background color. see through to slats */
	background: none;
}

.fc.fc-bootstrap4 a {
	text-decoration: none;
}

.fc.fc-bootstrap4 a[data-goto]:hover {
	text-decoration: underline;
}

.fc-bootstrap4 hr.fc-divider {
	border-color: inherit;
}

.fc-bootstrap4 .fc-today.alert {
	border-radius: 0;
}

.fc-bootstrap4 a.fc-event:not([href]):not([tabindex]) {
	color: #fff;
}

.fc-bootstrap4 .fc-popover.card {
	position: absolute;
}

/* Popover
--------------------------------------------------------------------------------------------------*/
.fc-bootstrap4 .fc-popover .card-body {
	padding: 0;
}

/* TimeGrid Slats (lines that run horizontally)
--------------------------------------------------------------------------------------------------*/
.fc-bootstrap4 .fc-time-grid .fc-slats table {
	/* some themes have background color. see through to slats */
	background: none;
}

/* Toolbar
--------------------------------------------------------------------------------------------------*/
.fc-toolbar {
	text-align: center;
}

.fc-toolbar.fc-header-toolbar {
	margin-bottom: 1em;
}

.fc-toolbar.fc-footer-toolbar {
	margin-top: 1em;
}

.fc-toolbar .fc-left {
	float: left;
}

.fc-toolbar .fc-right {
	float: right;
}

.fc-toolbar .fc-center {
	display: inline-block;
}

/* the things within each left/right/center section */
.fc .fc-toolbar > * > * {
	/* extra precedence to override button border margins */
	float: left;
	margin-left: .75em;
}

/* the first thing within each left/center/right section */
.fc .fc-toolbar > * > :first-child {
	/* extra precedence to override button border margins */
	margin-left: 0;
}

/* title text */
.fc-toolbar h2 {
	margin: 0;
}

/* button layering (for border precedence) */
.fc-toolbar button {
	position: relative;
}

.fc-toolbar .fc-state-hover,
.fc-toolbar .ui-state-hover {
	z-index: 2;
}

.fc-toolbar .fc-state-down {
	z-index: 3;
}

.fc-toolbar .fc-state-active,
.fc-toolbar .ui-state-active {
	z-index: 4;
}

.fc-toolbar button:focus {
	z-index: 5;
}

/* View Structure
--------------------------------------------------------------------------------------------------*/
/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */
/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */
.fc-view-container *,
.fc-view-container *:before,
.fc-view-container *:after {
	box-sizing: content-box;
}

.fc-view,
.fc-view > table {
	/* so dragged elements can be above the view's main element */
	position: relative;
	z-index: 1;
}

/* BasicView
--------------------------------------------------------------------------------------------------*/
/* day row structure */
.fc-basicWeek-view .fc-content-skeleton,
.fc-basicDay-view .fc-content-skeleton {
	/* there may be week numbers in these views, so no padding-top */
	padding-bottom: 1em;
	/* ensure a space at bottom of cell for user selecting/clicking */
}

.fc-basic-view .fc-body .fc-row {
	min-height: 4em;
	/* ensure that all rows are at least this tall */
}

/* a "rigid" row will take up a constant amount of height because content-skeleton is absolute */
.fc-row.fc-rigid {
	overflow: hidden;
}

.fc-row.fc-rigid .fc-content-skeleton {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}

/* week and day number styling */
.fc-day-top.fc-other-month {
	opacity: .3;
}

.fc-basic-view .fc-week-number,
.fc-basic-view .fc-day-number {
	padding: 2px;
}

.fc-basic-view th.fc-week-number,
.fc-basic-view th.fc-day-number {
	padding: 0 2px;
	/* column headers can't have as much v space */
}

.fc-ltr .fc-basic-view .fc-day-top .fc-day-number {
	float: right;
}

.fc-rtl .fc-basic-view .fc-day-top .fc-day-number {
	float: left;
}

.fc-ltr .fc-basic-view .fc-day-top .fc-week-number {
	float: left;
	border-radius: 0 0 3px 0;
}

.fc-rtl .fc-basic-view .fc-day-top .fc-week-number {
	float: right;
	border-radius: 0 0 0 3px;
}

.fc-basic-view .fc-day-top .fc-week-number {
	min-width: 1.5em;
	background-color: #f2f2f2;
	text-align: center;
	color: #808080;
}

/* when week/day number have own column */
.fc-basic-view td.fc-week-number {
	text-align: center;
}

.fc-basic-view td.fc-week-number > * {
	/* work around the way we do column resizing and ensure a minimum width */
	display: inline-block;
	min-width: 1.25em;
}

/* AgendaView all-day area
--------------------------------------------------------------------------------------------------*/
.fc-agenda-view .fc-day-grid {
	position: relative;
	z-index: 2;
	/* so the "more.." popover will be over the time grid */
}

.fc-agenda-view .fc-day-grid .fc-row {
	min-height: 3em;
	/* all-day section will never get shorter than this */
}

.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton {
	padding-bottom: 1em;
	/* give space underneath events for clicking/selecting days */
}

/* TimeGrid axis running down the side (for both the all-day area and the slot area)
--------------------------------------------------------------------------------------------------*/
.fc .fc-axis {
	padding: 0 4px;
	/* .fc to overcome default cell styles */
	vertical-align: middle;
	white-space: nowrap;
}

.fc-ltr .fc-axis {
	text-align: right;
}

.fc-rtl .fc-axis {
	text-align: left;
}

/* TimeGrid Structure
--------------------------------------------------------------------------------------------------*/
.fc-time-grid-container,
.fc-time-grid {
	/* so slats/bg/content/etc positions get scoped within here */
	position: relative;
	z-index: 1;
}

.fc-time-grid {
	min-height: 100%;
	/* so if height setting is 'auto', .fc-bg stretches to fill height */
}

.fc-time-grid table {
	/* don't put outer borders on slats/bg/content/etc */
	border: 0 hidden transparent;
}

.fc-time-grid > .fc-bg {
	z-index: 1;
}

.fc-time-grid .fc-slats,
.fc-time-grid > hr {
	/* the <hr> AgendaView injects when grid is shorter than scroller */
	position: relative;
	z-index: 2;
}

.fc-time-grid .fc-content-col {
	position: relative;
	/* because now-indicator lives directly inside */
}

.fc-time-grid .fc-content-skeleton {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 3;
}

/* divs within a cell within the fc-content-skeleton */
.fc-time-grid .fc-business-container {
	position: relative;
	z-index: 1;
}

.fc-time-grid .fc-bgevent-container {
	position: relative;
	z-index: 2;
}

.fc-time-grid .fc-highlight-container {
	position: relative;
	z-index: 3;
}

.fc-time-grid .fc-event-container {
	position: relative;
	z-index: 4;
}

.fc-time-grid .fc-now-indicator-line {
	z-index: 5;
}

.fc-time-grid .fc-helper-container {
	/* also is fc-event-container */
	position: relative;
	z-index: 6;
}

/* TimeGrid Slats (lines that run horizontally)
--------------------------------------------------------------------------------------------------*/
.fc-time-grid .fc-slats td {
	height: 1.5em;
	border-bottom: 0;
	/* each cell is responsible for its top border */
}

.fc-time-grid .fc-slats .fc-minor td {
	border-top-style: dotted;
}

/* TimeGrid Highlighting Slots
--------------------------------------------------------------------------------------------------*/
.fc-time-grid .fc-highlight-container {
	/* a div within a cell within the fc-highlight-skeleton */
	position: relative;
	/* scopes the left/right of the fc-highlight to be in the column */
}

.fc-time-grid .fc-highlight {
	position: absolute;
	left: 0;
	right: 0;
	/* top and bottom will be in by JS */
}

/* TimeGrid Event Containment
--------------------------------------------------------------------------------------------------*/
.fc-ltr .fc-time-grid .fc-event-container {
	/* space on the sides of events for LTR (default) */
	margin: 0 2.5% 0 2px;
}

.fc-rtl .fc-time-grid .fc-event-container {
	/* space on the sides of events for RTL */
	margin: 0 2px 0 2.5%;
}

.fc-time-grid .fc-event,
.fc-time-grid .fc-bgevent {
	position: absolute;
	z-index: 1;
	/* scope inner z-index's */
}

.fc-time-grid .fc-bgevent {
	/* background events always span full width */
	left: 0;
	right: 0;
}

/* Generic Vertical Event
--------------------------------------------------------------------------------------------------*/
.fc-v-event.fc-not-start {
	padding-top: 1px;
	/* events that are continuing from another day */
	/* replace space made by the top border with padding */
	border-top-width: 0;
	/* remove top rounded corners */
	border-top-left-radius: 0;
	border-top-right-radius: 0;
}

.fc-v-event.fc-not-end {
	padding-bottom: 1px;
	/* replace space made by the top border with padding */
	border-bottom-width: 0;
	border-bottom-right-radius: 0;
	/* remove bottom rounded corners */
	border-bottom-left-radius: 0;
}

/* TimeGrid Event Styling
----------------------------------------------------------------------------------------------------
We use the full "fc-time-grid-event" class instead of using descendants because the event won't
be a descendant of the grid when it is being dragged.
*/
.fc-time-grid-event {
	overflow: hidden;
	/* don't let the bg flow over rounded corners */
}

.fc-time-grid-event.fc-selected {
	/* need to allow touch resizers to extend outside event's bounding box */
	/* common fc-selected styles hide the fc-bg, so don't need this anyway */
	overflow: visible;
}

.fc-time-grid-event.fc-selected .fc-bg {
	display: none;
	/* hide semi-white background, to appear darker */
}

.fc-time-grid-event .fc-content {
	overflow: hidden;
	/* for when .fc-selected */
}

.fc-time-grid-event .fc-time,
.fc-time-grid-event .fc-title {
	padding: 0 1px;
}

.fc-time-grid-event .fc-time {
	white-space: nowrap;
	font-size: .85em;
}

/* short mode, where time and title are on the same line */
.fc-time-grid-event.fc-short .fc-content {
	/* don't wrap to second line (now that contents will be inline) */
	white-space: nowrap;
}

.fc-time-grid-event.fc-short .fc-time,
.fc-time-grid-event.fc-short .fc-title {
	/* put the time and title on the same line */
	display: inline-block;
	vertical-align: top;
}

.fc-time-grid-event.fc-short .fc-time span {
	display: none;
	/* don't display the full time text... */
}

.fc-time-grid-event.fc-short .fc-time:before {
	content: attr(data-start);
	/* ...instead, display only the start time */
}

.fc-time-grid-event.fc-short .fc-time:after {
	content: '\A0-\A0';
	/* seperate with a dash, wrapped in nbsp's */
}

.fc-time-grid-event.fc-short .fc-title {
	/* make the title text the same size as the time */
	padding: 0;
	font-size: .85em;
	/* undo padding from above */
}

/* resizer (cursor device) */
.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer {
	overflow: hidden;
	bottom: 0;
	left: 0;
	right: 0;
	height: 8px;
	text-align: center;
	font-family: monospace;
	font-size: 11px;
	line-height: 8px;
	cursor: s-resize;
}

.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer:after {
	content: '=';
}

/* resizer (touch device) */
.fc-time-grid-event.fc-selected .fc-resizer {
	/* center on the bottom edge */
	bottom: -5px;
	/* horizontally center */
	left: 50%;
	width: 8px;
	height: 8px;
	margin-left: -5px;
	border-width: 1px;
	border-style: solid;
	border-color: inherit;
	/* 10x10 dot */
	border-radius: 5px;
	background: #fff;
}

/* Now Indicator
--------------------------------------------------------------------------------------------------*/
.fc-time-grid .fc-now-indicator-line {
	left: 0;
	right: 0;
	border-top-width: 1px;
}

/* arrow on axis */
.fc-time-grid .fc-now-indicator-arrow {
	margin-top: -5px;
	/* vertically center on top coordinate */
}

.fc-ltr .fc-time-grid .fc-now-indicator-arrow {
	left: 0;
	/* triangle pointing right... */
	border-width: 5px 0 5px 6px;
	border-top-color: transparent;
	border-bottom-color: transparent;
}

.fc-rtl .fc-time-grid .fc-now-indicator-arrow {
	right: 0;
	/* triangle pointing left... */
	border-width: 5px 6px 5px 0;
	border-top-color: transparent;
	border-bottom-color: transparent;
}

/* List View
--------------------------------------------------------------------------------------------------*/
/* possibly reusable */
.fc-event-dot {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 5px;
}

/* view wrapper */
.fc-rtl .fc-list-view {
	direction: rtl;
	/* unlike core views, leverage browser RTL */
}

.fc-list-view {
	border-width: 1px;
	border-style: solid;
}

/* table resets */
.fc .fc-list-table {
	table-layout: auto;
	/* for shrinkwrapping cell content */
}

.fc-list-table td {
	padding: 8px 14px;
	border-width: 1px 0 0;
}

.fc-list-table tr:first-child td {
	border-top-width: 0;
}

/* day headings with the list */
.fc-list-heading {
	border-bottom-width: 1px;
}

.fc-list-heading td {
	font-weight: bold;
}

.fc-ltr .fc-list-heading-main {
	float: left;
}

.fc-ltr .fc-list-heading-alt {
	float: right;
}

.fc-rtl .fc-list-heading-main {
	float: right;
}

.fc-rtl .fc-list-heading-alt {
	float: left;
}

/* event list items */
.fc-list-item.fc-has-url {
	cursor: pointer;
	/* whole row will be clickable */
}

.fc-list-item-marker,
.fc-list-item-time {
	width: 1px;
	white-space: nowrap;
}

/* make the dot closer to the event title */
.fc-ltr .fc-list-item-marker {
	padding-right: 0;
}

.fc-rtl .fc-list-item-marker {
	padding-left: 0;
}

.fc-list-item-title a {
	/* every event title cell has an <a> tag */
	text-decoration: none;
	color: inherit;
}

.fc-list-item-title a[href]:hover {
	/* hover effect only on titles with hrefs */
	text-decoration: underline;
}

/* message when no events */
.fc-list-empty-wrap2 {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

.fc-list-empty-wrap1 {
	display: table;
	width: 100%;
	height: 100%;
}

.fc-list-empty {
	display: table-cell;
	vertical-align: middle;
	text-align: center;
}

.fc-unthemed .fc-list-empty {
	/* theme will provide own background */
	background-color: #eee;
}

/*--------------------------------------------------------------------------
   html
---------------------------------------------------------------------------*/
/* media query -> sp
=================================================================*/
@media only screen and (max-width: 767px) {
	width: 100%;
	height: 100%;
}

/*--------------------------------------------------------------------------
   head
---------------------------------------------------------------------------*/
head {
	font-family: 'pc';
}

/* media query -> sp
=================================================================*/
@media only screen and (max-width: 767px) {
	head {
		font-family: 'sp';
	}
}

/*--------------------------------------------------------------------------
   body
---------------------------------------------------------------------------*/
body {
	min-width: 1024px;
	background-color: #fcf7ec;
	color: #5d370c;
	font-family: 'Noto Sans Japanese', 'Hiragino Sans', 'ヒラギノ角ゴシック', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', 'Meiryo', 'ＭＳ Ｐゴシック', Osaka, Verdana, sans-serif;
	font-size: 14px;
	font-weight: 300;
	line-height: 1.9;
	letter-spacing: .05em;

	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.os-mac body {
	font-weight: 400;
}

/* media query -> sp
=================================================================*/
@media only screen and (max-width: 767px) {
	body {
		width: 100%;
		min-width: 320px;
		height: auto;
		font-size: 12px;
		line-height: 1.5;
	}
}

/*--------------------------------------------------------------------------
   a
---------------------------------------------------------------------------*/
a {
	color: inherit;
	outline: none;

	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

a:link,
a:visited {
	text-decoration: none;
}

/*--------------------------------------------------------------------------
   reset
---------------------------------------------------------------------------*/
* {
	word-wrap: break-word;
	outline: none;
}

img {
	vertical-align: top;
}

ul,
ol {
	list-style: none;
}

/* Placeholder
-----------------------------------------------*/
::-webkit-input-placeholder {
	color: rgba(255, 255, 255, .6);
}

::-moz-placeholder {
	color: rgba(255, 255, 255, .8);
}

:-ms-input-placeholder {
	color: rgba(255, 255, 255, .6);
}

:-moz-placeholder {
	color: rgba(255, 255, 255, .6);
}

/*--------------------------------------------------------------------------
   selection
---------------------------------------------------------------------------*/

::selection {
	background-color: #b3d4fc;
	color: #fff;
	text-shadow: none;
}

/* ----------------------------------------------------------------------------------------------------

Super Form Reset

A couple of things to watch out for:

- IE8: If a text input doesn't have padding on all sides or none the text won't be centered.
- The default border sizes on text inputs in all UAs seem to be slightly different. You're better off using custom borders.
- You NEED to set the font-size and family on all form elements
- Search inputs need to have their appearance reset and the box-sizing set to content-box to match other UAs
- You can style the upload button in webkit using ::-webkit-file-upload-button
- ::-webkit-file-upload-button selectors can't be used in the same selector as normal ones. FF and IE freak out.
- IE: You don't need to fake inline-block with labels and form controls in IE. They function as inline-block.
- By turning off ::-webkit-search-decoration, it removes the extra whitespace on the left on search inputs

----------------------------------------------------------------------------------------------------*/
input,
label,
select,
button,
textarea {
	display: inline-block;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	vertical-align: middle;
	white-space: normal;
	-webkit-appearance: none;

	   -moz-appearance: none;
	        appearance: none;
}

/* Remove the stupid outer glow in Webkit */
input:focus,
select:focus,
textarea:focus {
	outline: 0;
}

/* Box Sizing Reset
-----------------------------------------------*/
/* All of our custom controls should be what we expect them to be */
input,
textarea {
	box-sizing: content-box;
}

/* These elements are usually rendered a certain way by the browser */
button,
input[type=reset],
input[type=button],
input[type=submit],
input[type=checkbox],
input[type=radio],
select {
	box-sizing: border-box;
}

/* Text Inputs
-----------------------------------------------*/
/* Button Controls
-----------------------------------------------*/
input[type=checkbox],
input[type=radio] {
	width: 13px;
	height: 13px;
}

/* File Uploads
-----------------------------------------------*/
/* Search Input
-----------------------------------------------*/
/* Make webkit render the search input like a normal text field */
input[type=search] {
	-webkit-box-sizing: content-box;
	-webkit-appearance: textfield;
}

/* Turn off the recent search for webkit. It adds about 15px padding on the left */
::-webkit-search-decoration {
	display: none;
}

/* Buttons
-----------------------------------------------*/
button,
input[type='reset'],
input[type='button'],
input[type='submit'] {
	/* Fix IE7 display bug */
	overflow: visible;
	width: auto;
}

/* IE8 and FF freak out if this rule is within another selector */
::-webkit-file-upload-button {
	padding: 0;
	border: 0;
	background: none;
}

/* Textarea
-----------------------------------------------*/
textarea {
	/* Turn off scroll bars in IE unless needed */
	overflow: auto;
	/* Move the label to the top */
	vertical-align: top;
}

/* Selects
-----------------------------------------------*/
select[multiple] {
	/* Move the label to the top */
	vertical-align: top;
}

/*--------------------------------------------------------------------------
   l-page
---------------------------------------------------------------------------*/
.l-page-wrapper {
	overflow: hidden;
	visibility: hidden;
}

@media only screen and (max-width: 767px) {
	.l-page-wrapper {
		width: 100%;
		height: 100%;
	}
}

.is-loading .l-page-wrapper {
	overflow: hidden;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.load-complete .l-page-wrapper {
	visibility: visible;
}

@media only screen and (max-width: 767px) {
	.l-page {
		overflow-x: hidden;
		width: 100%;
		height: 100%;

		-webkit-overflow-scrolling: touch;
	}
}

.l-page__main {
	padding: 220px 0 100px;
}

@media only screen and (max-width: 767px) {
	.l-page__main {
		padding: 75px 0 50px;
	}
}

@media only screen and (max-width: 767px) {
	.is-loading .l-page {
		overflow-y: hidden;
	}
}

/*--------------------------------------------------------------------------
   l-wrap
---------------------------------------------------------------------------*/
.l-wrap {
	position: relative;
	width: 1024px;
	margin: 0 auto;
	padding-right: 12px;
	padding-left: 12px;
}

/* media query -> sp
=================================================================*/
@media only screen and (max-width: 767px) {
	.l-wrap {
		width: auto;
		padding-right: 25px;
		padding-left: 25px;
	}
}

/*--------------------------------------------------------------------------
   l-grid
---------------------------------------------------------------------------*/
.l-grid {
	box-sizing: border-box;
}

.l-grid::after {
	display: table;
	clear: both;
	content: '';
}

.l-grid__item {
	display: block;
	box-sizing: inherit;
	float: left;
}

.l-grid__item--1of2 {
	width: 50%;
}

.l-grid__item--1of3 {
	width: 33.33333333%;
}

.l-grid__item--1of4 {
	width: 25%;
}

.l-grid__item--1of5 {
	width: 20%;
}

.l-grid__item--1of6 {
	width: 16.66666666%;
}

/*--------------------------------------------------------------------------
   l-grid
---------------------------------------------------------------------------*/
.l-inline-grid {
	box-sizing: border-box;
	white-space: nowrap;
}

.l-inline-grid__item {
	display: inline-block;
	box-sizing: inherit;
}

.l-inline-grid__item--1of2 {
	width: 50%;
}

.l-inline-grid__item--1of3 {
	width: 33.33333333%;
}

.l-inline-grid__item--1of4 {
	width: 25%;
}

.l-inline-grid__item--1of5 {
	width: 20%;
}

.l-inline-grid__item--1of6 {
	width: 16.66666666%;
}

/*--------------------------------------------------------------------------
   l-flex-grid
---------------------------------------------------------------------------*/
.l-flex-grid {
	display: -ms-flexbox;
	display: flex;
	box-sizing: border-box;

	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
}

.l-flex-grid__item {
	box-sizing: inherit;
}

.l-flex-grid__item--full {
	width: 100%;
}

.l-flex-grid__item--1of2 {
	width: 50%;
}

.l-flex-grid__item--1of3 {
	width: 33.33333333%;
}

.l-flex-grid__item--1of4 {
	width: 25%;
}

.l-flex-grid__item--1of5 {
	width: 20%;
}

.l-flex-grid__item--1of6 {
	width: 16.66666666%;
}

/*--------------------------------------------------------------------------
   c-white-box
---------------------------------------------------------------------------*/
.c-white-box {
	padding: 55px 0 60px;
	border-radius: 18px;
	background-color: #fff;
}

@media only screen and (max-width: 767px) {
	.c-white-box {
		padding: 40px 0 48px;
		border-radius: 10px;
	}
}

.c-white-box__hdg {
	text-align: center;
	font-size: 15px;
	font-weight: 600;
}

@media only screen and (max-width: 767px) {
	.c-white-box__hdg {
		font-size: 13px;
	}
}

.c-white-box__lead {
	margin-top: 20px;
	text-align: justify;
	text-justify: inter-ideograph;
	font-size: 13px;
}

@media only screen and (max-width: 767px) {
	.c-white-box__lead {
		font-size: 12px;
		line-height: 1.9;
	}
}

/*--------------------------------------------------------------------------
   c-btn
---------------------------------------------------------------------------*/
.c-btn {
	width: 200px;
	margin: 0 auto;
	text-align: center;
}

.c-btn a {
	display: block;
	width: 100%;
	padding: 8px 0;
	border-radius: 8px;
	background-color: #abcd03;
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	transition: .3s;
}

@media only screen and (max-width: 767px) {
	.c-btn a {
		padding: 9px 0;
		border-radius: 6px;
		font-size: 12px;
	}
}

.mode-pc .c-btn a:hover {
	opacity: .8;
}

/*--------------------------------------------------------------------------
   c-hdg
---------------------------------------------------------------------------*/
.c-hdg {
	display: inline-block;
	position: relative;
	padding-bottom: 10px;
	text-align: center;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .1em;
}

@media only screen and (max-width: 767px) {
	.c-hdg {
		font-size: 16px;
	}
}

.c-hdg::before {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 7px;
	border-radius: 2px;
	background-color: #abcd03;
	content: '';
}

@media only screen and (max-width: 767px) {
	.c-hdg::before {
		height: 5px;
	}
}

.c-hdg-line {
	position: relative;
	padding-bottom: 10px;
	border-bottom: 7px solid #abcd03;
	font-size: 15px;
	font-weight: 600;
}

@media only screen and (max-width: 767px) {
	.c-hdg-line {
		padding-bottom: 6px;
		border-bottom: 3px solid #abcd03;
		font-size: 13px;
	}
}

.c-hdg-line span {
	display: block;
	font-size: 12px;
}

@media only screen and (max-width: 767px) {
	.c-hdg-line span {
		margin-top: 5px;
		font-size: 11px;
	}
}

/*--------------------------------------------------------------------------
   m-slide
---------------------------------------------------------------------------*/
.m-slide {
	position: relative;
	height: 100%;
}

.m-slide__item {
	overflow: hidden;
	border-radius: 18px;
	background-position: 50% 50%;
	background-size: cover;
}

@media only screen and (max-width: 767px) {
	.m-slide__item {
		border-radius: 10px;
	}
}

.m-slide__item img {
	display: none;
}

.m-slide__thumb .slick-dots {
	display: -ms-flexbox;
	display: flex;
	position: absolute;
	bottom: 40px;
	left: 50%;
	transform: translateX(-50%);

	-ms-flex-pack: center;
	justify-content: center;
}

@media only screen and (max-width: 767px) {
	.m-slide__thumb .slick-dots {
		bottom: 10px;
	}
}

.m-slide__thumb .slick-dots li button {
	display: block;
	width: 14px;
	height: 14px;
	margin: 0 6px;
	border-radius: 50%;
	background-color: #fcf7ec;
	text-indent: -9999px;
	transition: .3s;
}

@media only screen and (max-width: 767px) {
	.m-slide__thumb .slick-dots li button {
		width: 10px;
		height: 10px;
	}
}

.mode-pc .m-slide__thumb .slick-dots li button:hover {
	background-color: #abcd03;
}

.m-slide__thumb .slick-dots li.slick-active button {
	background-color: #abcd03;
}

/*--------------------------------------------------------------------------
   m-orthodontics
---------------------------------------------------------------------------*/
.m-orthodontics {
	display: -ms-flexbox;
	display: flex;

	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	-ms-flex-pack: center;
	justify-content: left;
	margin-left: 50px;
}

/*
.m-orthodontics {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: repeat(3, 1fr);
}
@media only screen and (max-width: 767px) {
	.m-orthodontics {
		padding: 0 16px;
	}
}
*/

@media only screen and (max-width: 767px) {
	.m-orthodontics {
		padding: 0 16px;
		margin-left: 0;
	}
}


.m-orthodontics__item {
	width: 180px;
	margin: 0 22px;
	text-align: center;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item {
		width: 44%;
		margin: 0 3%;
	}
	.m-orthodontics__item:nth-child(n + 4) {
		margin-top: 10px;
	}
}

.m-orthodontics__item:nth-child(n + 6) {
	margin-top: 20px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item:nth-child(n + 6) {
		margin-top: 10px;
	}
}

.m-orthodontics__item a {
	display: block;
	transition: .3s;
}

.mode-pc .m-orthodontics__item a:hover {
	opacity: .7;
}

.m-orthodontics__item--alignment img {
	width: 84px;
	height: 67px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item--alignment img {
		width: 50px;
		height: 40px;
	}
}

.m-orthodontics__item--adults img {
	width: 160px;
	height: 106px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item--adults img {
		width: 96px;
		height: 63px;
	}
}

.m-orthodontics__item--child .m-orthodontics__ico {
	padding-top: 14px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item--child .m-orthodontics__ico {
		padding-top: 6px;
	}
}

.m-orthodontics__item--child img {
	width: 130px;
	height: 88px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item--child img {
		width: 78px;
		height: 53px;
	}
}

.m-orthodontics__item--partial .m-orthodontics__ico {
	padding-top: 30px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item--partial .m-orthodontics__ico {
		padding-top: 0;
	}
}

.m-orthodontics__item--partial img {
	width: 95px;
	height: 60px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item--partial img {
		width: 58px;
		height: 37px;
	}
}

.m-orthodontics__item--bscured img {
	width: 89px;
	height: 75px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item--bscured img {
		width: 53px;
		height: 45px;
	}
}

.m-orthodontics__item--surgery img {
	width: 64px;
	height: 74px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item--surgery img {
		width: 38px;
		height: 45px;
	}
}

.m-orthodontics__item--mft img {
	width: 110px;
	height: 73px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item--mft img {
		width: 66px;
		height: 44px;
	}
}

.m-orthodontics__item--equipment img {
	width: 144px;
	height: 60px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item--equipment img {
		width: 67px;
		height: 36px;
	}
}

.m-orthodontics__item--risk img {
	width: 89px;
	height: 75px;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__item--risk img {
		width: 53px;
		height: 45px;
	}
}
.m-orthodontics__ico {
	display: -ms-flexbox;
	display: flex;
	height: 140px;

	-ms-flex-align: center;
	align-items: center;
	-ms-flex-pack: center;
	justify-content: center;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__ico {
		height: 64px;
	}
}

.m-orthodontics__btn {
	display: -ms-flexbox;
	display: flex;
	height: 50px;
	border-radius: 10px;
	background-color: #fcf7ec;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .1em;

	-ms-flex-align: center;
	align-items: center;
	-ms-flex-pack: center;
	justify-content: center;
}

@media only screen and (max-width: 767px) {
	.m-orthodontics__btn {
		height: 64px;
		margin-top: 10px;
		font-size: 11px;
	}
}
@media only screen and (max-width: 440px) {
	.m-orthodontics__btn br.none {
		display: none;
	}
}
/*--------------------------------------------------------------------------
   m-fee-list
---------------------------------------------------------------------------*/
.m-fee-list {
	width: 800px;
	margin: 0 auto;
}

@media only screen and (max-width: 767px) {
	.m-fee-list {
		width: auto;
	}
}

.m-fee-list__item {
	display: -ms-flexbox;
	display: flex;
	padding: 15px 0;
	border-bottom: 4px solid #abcd03;
	font-size: 15px;
	font-weight: 600;

	-ms-flex-pack: justify;
	justify-content: space-between;
}

@media only screen and (max-width: 767px) {
	.m-fee-list__item {
		padding: 10px 0;
		border-bottom: 2px solid #abcd03;
		font-size: 12px;
	}
}

@media only screen and (max-width: 374px) {
	.m-fee-list__item {
		font-size: 9px;
	}
}

@media only screen and (max-width: 767px) {
	.m-fee-list__item span:first-of-type {
		min-width: 120px;
	}
}

@media only screen and (max-width: 374px) {
	.m-fee-list__item span:first-of-type {
		min-width: 100px;
	}
}

.m-fee-list__caption {
	margin-top: 20px;
	text-align: center;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .1em;
}

@media only screen and (max-width: 767px) {
	.m-fee-list__caption {
		margin-top: 15px;
		font-size: 10px;
	}
}

/*--------------------------------------------------------------------------
   m-page-heading
---------------------------------------------------------------------------*/
.m-page-heading {
	padding-top: 50px;
}

@media only screen and (max-width: 767px) {
	.m-page-heading {
		padding-top: 30px;
	}
}

/* animation
-----------------------------------------------------------------*/
.is-animate .m-page-heading .c-hdg::before {
	transform: scale(0, 1);
}

.is-animated .m-page-heading .c-hdg::before {
	transition: transform .6s cubic-bezier(.175, .885, .32, 1.275);
	transition-delay: .8s;
	transform: scale(1, 1);
}

/*--------------------------------------------------------------------------
   m-flow
---------------------------------------------------------------------------*/
.m-flow__hdg {
	text-align: center;
	font-size: 15px;
	font-weight: 600;
}

@media only screen and (max-width: 767px) {
	.m-flow__hdg {
		font-size: 13px;
	}
}

.m-flow__period {
	display: -ms-flexbox;
	display: flex;
	margin-top: 30px;
	text-align: center;

	-ms-flex-pack: center;
	justify-content: center;
}

@media only screen and (max-width: 767px) {
	.m-flow__period {
		display: block;
		margin-top: 20px;
	}
}

.m-flow__period .choice {
	width: 200px;
	margin: 0 15px;
	text-align: center;
}

@media only screen and (max-width: 767px) {
	.m-flow__period .choice {
		margin: 0 auto;
	}
	.m-flow__period .choice + .choice {
		margin-top: 15px;
	}
}

.m-flow__period .choice__hdg {
	font-size: 12px;
}

.m-flow__period .choice__period {
	width: 200px;
	margin-top: 10px;
	padding: 10px 0;
	border-radius: 6px;
	background-color: #fcf7ec;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .1em;
}

@media only screen and (max-width: 767px) {
	.m-flow__period .choice__period {
		font-size: 13px;
	}
}

.m-flow__period .txt {
	display: inline-block;
	padding: 10px 50px;
	border-radius: 6px;
	background-color: #fcf7ec;
	text-align: center;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .1em;
}

@media only screen and (max-width: 767px) {
	.m-flow__period .txt {
		padding: 10px;
		font-size: 13px;
		letter-spacing: .05em;
	}
}

.m-flow__flow {
	width: 500px;
	margin: 30px auto 0;
	text-align: center;
}

@media only screen and (max-width: 767px) {
	.m-flow__flow {
		width: 84%;
	}
}

.m-flow .flow {
	position: relative;
	margin-bottom: 16px;
	padding-bottom: 40px;
}

@media only screen and (max-width: 767px) {
	.m-flow .flow {
		margin-bottom: 12px;
		padding-bottom: 28px;
	}
}

.m-flow .flow:last-of-type {
	margin-bottom: 0;
	padding-bottom: 0;
}

.m-flow .flow:last-of-type::after {
	content: none;
}

.m-flow .flow::after {
	position: absolute;
	bottom: 0;
	left: calc(50% - 5px);
	width: 11px;
	height: 21px;
	background: url('../../assets/img/orthodontics/img_arrow.svg') no-repeat;
	background-size: 11px 21px;
	content: '';
}

@media only screen and (max-width: 767px) {
	.m-flow .flow::after {
		width: 9px;
		height: 17px;
		background: url('../../assets/img/orthodontics/img_arrow.svg') no-repeat;
		background-size: 9px 17px;
	}
}

.m-flow .flow__txt {
	padding: 18px 0;
	border-radius: 6px;
	background-color: #fcf7ec;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .1em;
}

@media only screen and (max-width: 767px) {
	.m-flow .flow__txt {
		padding: 12px 0;
		font-size: 13px;
	}
}

.m-flow .flow__caption {
	display: block;
	margin-top: 5px;
	font-size: 12px;
}

@media only screen and (max-width: 767px) {
	.m-flow .flow__caption {
		text-align: justify;
		text-justify: inter-ideograph;
		font-size: 11px;
	}
}

/*--------------------------------------------------------------------------
   m-checklist
---------------------------------------------------------------------------*/
.m-checklist__hdg {
	font-size: 15px;
}

@media only screen and (max-width: 767px) {
	.m-checklist__hdg {
		font-size: 13px;
	}
}

.m-checklist__list {
	display: -ms-flexbox;
	display: flex;
	margin-top: 30px;

	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
}

@media only screen and (max-width: 767px) {
	.m-checklist__list {
		display: block;
		margin-top: 20px;
	}
}

.m-checklist__item {
	position: relative;
	width: 370px;
	margin-bottom: 39px;
	padding-left: 60px;
	font-size: 15px;
}

@media only screen and (max-width: 767px) {
	.m-checklist__item {
		width: auto;
		margin-bottom: 15px;
		padding-left: 30px;
		font-size: 13px;
	}
}

.m-checklist__item::before {
	position: absolute;
	top: calc(50% - 22px);
	left: 0;
	width: 40px;
	height: 37px;
	background: url('../../../assets/img/common/ico_checkbox.svg') no-repeat;
	background-size: 40px 37px;
	content: '';
}

@media only screen and (max-width: 767px) {
	.m-checklist__item::before {
		top: 0;
		width: 20px;
		height: 19px;
		background: url('../../../assets/img/common/ico_checkbox.svg') no-repeat;
		background-size: 20px 19px;
	}
}

.m-checklist__item:nth-child(even) {
	margin-left: 60px;
}

@media only screen and (max-width: 767px) {
	.m-checklist__item:nth-child(even) {
		margin-left: 0;
	}
}

/*--------------------------------------------------------------------------
   m-equipment
---------------------------------------------------------------------------*/
.m-equipment {
	display: -ms-flexbox;
	display: flex;

	-ms-flex-pack: justify;
	justify-content: space-between;
}

@media only screen and (max-width: 767px) {
	.m-equipment {
		display: block;
		margin-top: 35px;
	}
}

.m-equipment + .m-equipment {
	margin-top: 50px;
}

@media only screen and (max-width: 767px) {
	.m-equipment + .m-equipment {
		margin-top: 35px;
	}
}

.m-equipment__img {
	width: 400px;
}

@media only screen and (max-width: 767px) {
	.m-equipment__img {
		width: auto;
	}
}

.m-equipment__img img {
	width: 100%;
	height: auto;
}

.m-equipment__img figcuption {
	font-size: 12px;
}

@media only screen and (max-width: 767px) {
	.m-equipment__img figcuption {
		font-size: 11px;
	}
}

.m-equipment__body {
	width: 340px;
}

@media only screen and (max-width: 767px) {
	.m-equipment__body {
		width: auto;
		margin-top: 15px;
	}
}

.m-equipment__hdg {
	margin-top: -.5em;
	font-size: 15px;
	font-weight: 600;
}

@media only screen and (max-width: 767px) {
	.m-equipment__hdg {
		margin-top: 0;
		font-size: 12px;
		line-height: 1.9;
	}
}

.m-equipment__hdg + .m-equipment__txt {
	margin-top: 15px;
}

@media only screen and (max-width: 767px) {
	.m-equipment__hdg + .m-equipment__txt {
		margin-top: 5px;
	}
}

.m-equipment__txt {
	text-align: justify;
	text-justify: inter-ideograph;
	font-size: 13px;
}

@media only screen and (max-width: 767px) {
	.m-equipment__txt {
		font-size: 12px;
		line-height: 1.9;
	}
}

.m-equipment__btn {
	margin: 20px 0 0;
}

@media only screen and (max-width: 767px) {
	.m-equipment__btn {
		margin: 10px 0 0;
	}
}

/*--------------------------------------------------------------------------
   cf
---------------------------------------------------------------------------*/
.cf {
	*zoom: 1;
}

.cf:after {
	display: table;
	clear: both;
	content: '';
}

/**
 *
 *  LOADER
 *
 */
/*--------------------------------------------------------------------------
   loader
---------------------------------------------------------------------------*/
#Loader {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99999;
	width: 100%;
	height: 100%;
	background: #fcf7ec;
}

#Loader #progress {
	display: block;
	position: fixed;
	top: 0;
	left: 0;
	width: 0;
	height: 3px;
	background: #abcd03;
}

/* trans
-------------------------------------------*/
#Loader {
	transition: all 1s ease;
}

/* anima
-------------------------------------------*/
.load-complete #Loader {
	opacity: 0;
}

/*--------------------------------------------------------------------------
   SHOW / HIDE
---------------------------------------------------------------------------*/
/*
 show / hide
 -- レスポンシブ用 表示/非表示
*/
.mi-pc {
	display: block;
}

/*img.mi-pc{
  display: inline;
}*/
.mi-sp {
	display: none;
}

/* media query -> sp
========================================*/
@media only screen and (max-width: 767px) {
	.mi-pc,
	img.mi-pc {
		display: none;
	}
	.mi-sp {
		display: block;
	}
	/*img.mi-sp{
    display: inline;
  }*/
}

/*--------------------------------------------------------------------------
   TEXT
---------------------------------------------------------------------------*/
/*
 note
 -- 改行時、一文字目に余白を持たせる
*/
.mi-note,
.mi-list-note li {
	padding-left: 1em;
	text-indent: -1em;
}

.mi-center {
	text-align: center;
}

/*--------------------------------------------------------------------------
   IMAGE
---------------------------------------------------------------------------*/
/*
 max
 -- 横幅に合わせて画像を最大化
*/
.mi-img-max {
	width: 100%;
	height: auto;
}

/*--------------------------------------------------------------------------
   HOVER
---------------------------------------------------------------------------*/
/*
 hov01
 -- 透過
*/
/* setting */
/* core */
.mi-hov01 {
	transition: all .2s ease-in-out;
}

.mi-hov01:hover {
	opacity: .7;
}

.mi-hov01-all > * {
	transition: all .2s ease-in-out;
}

.mi-hov01-all > *:hover {
	opacity: .7;
}

/*--------------------------------------------------------------------------
   init
---------------------------------------------------------------------------*/
.is-animate.is-fadein {
	opacity: 0;
}

.is-animate.is-fadeup {
	transform: translateY(30px);
	opacity: 0;
}

/*--------------------------------------------------------------------------
   animated
---------------------------------------------------------------------------*/
.is-animated.is-fadein {
	transition: opacity 1.5s ease-in-out;
	transition-delay: 0s;
	opacity: 1;
}

.is-animated.is-fadeup {
	transition: opacity 1.5s ease-in-out, transform 1s cubic-bezier(.175, .885, .32, 1.275);
	transition-delay: 0s;
	transform: translateY(0);
	opacity: 1;
}

/*==========================================================================

   keyframes

===========================================================================*/
/*--------------------------------------------------------------------------
   .g-header
---------------------------------------------------------------------------*/
.g-header {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 999;
	width: 100%;
	min-width: 1024px;
	height: 220px;
	background-color: #fcf7ec;
	transition: transform .4s, 	box-shadow .4s;
}

@media only screen and (max-width: 767px) {
	.g-header {
		min-width: auto;
		min-width: initial;
		height: 75px;
	}
}

.g-header.is-fixed {
	position: fixed;
}

.g-header__inner {
	position: relative;
	max-width: 1000px;
	margin: 0 auto;
}

@media only screen and (max-width: 767px) {
	.g-header__inner {
		max-width: none;
	}
}

.g-header__logo {
	position: absolute;
	top: 73px;
	left: 0;
}

@media only screen and (max-width: 767px) {
	.g-header__logo {
		top: 25px;
		left: 25px;
	}
}

.g-header__logo img {
	width: 412px;
	height: auto;
	transition: .2s;
}

@media only screen and (max-width: 767px) {
	.g-header__logo img {
		width: 246px;
	}
}

@media only screen and (max-width: 374px) {
	.g-header__logo img {
		width: 222px;
	}
}

.g-header__menubtn {
	display: none;
}

@media only screen and (max-width: 767px) {
	.g-header__menubtn {
		display: block;
		position: absolute;
		top: 0;
		right: 0;
		z-index: 999;
		width: 74px;
		height: 70px !important;
		cursor: pointer;
	}
	.g-header__menubtn .lines {
		display: block;
		overflow: hidden;
		position: absolute;
		top: 27px;
		left: 24px;
		width: 22px;
		height: 19px;
		margin: 0;
		padding: 0;
		box-shadow: none;
		border: none;
		border-radius: none;
		text-indent: -9999px;
		font-size: 0;
		-webkit-appearance: none;

		   -moz-appearance: none;
		        appearance: none;
	}
	.g-header__menubtn .lines span {
		display: inline-block;
		box-sizing: border-box;
		position: absolute;
		left: 0;
		width: 100%;
		height: 3px;
		background-color: #5d370c;
		transition: all .4s;
	}
	.g-header__menubtn .lines span:nth-of-type(1) {
		top: 0;
		animation: menu-bar01 .75s forwards;
	}
	.g-header__menubtn .lines span:nth-of-type(2) {
		top: 8px;
		transition: all .25s linear;
		opacity: 1;
	}
	.g-header__menubtn .lines span:nth-of-type(3) {
		bottom: 0;
		animation: menu-bar02 .75s forwards;
	}
	.g-header__menubtn .lines:focus {
		outline: none;
	}
}

@media only screen and (max-width: 767px) {
	.g-header__wrap {
		overflow: hidden;
		position: absolute;
		top: 0;
		right: 0;
		width: 0;
		height: 100vh;
		background-color: #fcf7ec;
		transition: .4s;
		transform: translateX(100%);
		pointer-events: none;
	}
}

@media only screen and (max-width: 767px) {
	.g-header__body {
		overflow: auto;
		height: 100%;
		padding: 80px 0 20px 16%;
	}
}

.g-header__gnav {
	display: -ms-flexbox;
	display: flex;
	padding-top: 140px;
}

@media only screen and (max-width: 767px) {
	.g-header__gnav {
		display: block;
		padding-top: 0;
	}
}

/* gnav */
.g-header .gnav {
	display: -ms-flexbox;
	display: flex;

	-ms-flex-pack: end;
	justify-content: flex-end;
}

@media only screen and (max-width: 767px) {
	.g-header .gnav {
		display: block;
		opacity: 0;
	}
}

.g-header .gnav__item {
	margin-right: 30px;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .1em;
}

@media only screen and (max-width: 767px) {
	.g-header .gnav__item {
		margin-right: 0;
		font-size: 14px;
	}
}

.g-header .gnav__item a {
	display: block;
	position: relative;
}

@media only screen and (max-width: 767px) {
	.g-header .gnav__item a {
		margin-bottom: 20px;
	}
}

.g-header .gnav__item a:after {
	display: block;
	width: 0;
	height: 7px;
	margin: 5px auto 0;
	border-radius: 4px;
	background-color: #abcd03;
	content: '';
	transition: width .2s linear;
}

@media only screen and (max-width: 767px) {
	.g-header .gnav__item a:after {
		content: none;
	}
}

.mode-pc .g-header .gnav__item a:hover::after,
.mode-pc .g-header .gnav__item a.current::after {
	width: 100%;
}

/* contact */
.g-header .contact {
	position: absolute;
	top: 60px;
	right: 0;
	width: 285px;
	padding: 20px 30px;
	border-radius: 8px;
	background-color: #fff;
}

@media only screen and (max-width: 767px) {
	.g-header .contact {
		position: relative;
		top: inherit;
		right: inherit;
		width: 100%;
		max-width: 214px;
		margin-top: 50px;
		padding: 16px 20px;
		opacity: 0;
	}
}

.g-header .contact__txt {
	font-size: 12px;
	font-weight: 600;
}

@media only screen and (max-width: 767px) {
	.g-header .contact__txt {
		font-size: 10px;
	}
}

.g-header .contact__tel {
	margin-top: 5px;
	font-weight: 600;
	letter-spacing: .1em;
}

.g-header .contact__line {
	position: absolute;
	top: 25px;
	right: 30px;
	text-align: center;
}

@media only screen and (max-width: 767px) {
	.g-header .contact__line {
		top: 18px;
		right: 18px;
	}
	.g-header .contact__line img {
		width: 50px;
		height: 50px;
	}
}

.g-header .contact__line-hdg {
	line-height: 1;
}

.g-header .contact__line-qr {
	margin-top: 5px;
}

/*menu open*/
@media only screen and (max-width: 767px) {
	.is-menuopen .g-header .g-header__menubtn .lines span:nth-of-type(1) {
		transform: translateY(8px) rotate(-45deg);
	}
	.is-menuopen .g-header .g-header__menubtn .lines span:nth-of-type(2) {
		opacity: 0;
	}
	.is-menuopen .g-header .g-header__menubtn .lines span:nth-of-type(3) {
		transform: translateY(-8px) rotate(45deg);
	}
	.is-menuopen .g-header .g-header__wrap {
		overflow: auto;
		width: 100%;
		transition-timing-function: liner;
		transition-duration: .4s;
		transition-property: all;
		transform: translateX(0);
		pointer-events: all;
	}
	.is-menuopen .g-header .g-header__gnav .gnav {
		transition: opacity .6s;
		transition-delay: .2s;
		opacity: 1;
	}
	.is-menuopen .g-header .contact {
		transition: opacity .6s;
		transition-delay: .4s;
		opacity: 1;
	}
}

/*smaller*/
.g-header.is-scroll {
	height: 170px;
	box-shadow: 0 0 15px rgba(0, 0, 0, .1);
	transform: translateY(-55px);
}

@media only screen and (max-width: 767px) {
	.g-header.is-scroll {
		height: 75px;
		box-shadow: 0 0 15px rgba(0, 0, 0, .1);
		transform: translateY(0);
	}
}

.g-header.is-scroll .g-header__logo {
	top: 72px;
}

@media only screen and (max-width: 767px) {
	.g-header.is-scroll .g-header__logo {
		top: 25px;
	}
}

.g-header.is-scroll .g-header__logo img {
	width: 330px;
}

@media only screen and (max-width: 767px) {
	.g-header.is-scroll .g-header__logo img {
		width: 246px;
	}
}

@media only screen and (max-width: 374px) {
	.g-header.is-scroll .g-header__logo img {
		width: 222px;
	}
}

.g-header.is-scroll .g-header__gnav {
	padding-top: 120px;
}

@media only screen and (max-width: 767px) {
	.g-header.is-scroll .g-header__gnav {
		padding-top: 0;
	}
}

.g-header.is-scroll .contact {
	top: 64px;
	padding: 10px 30px;
}

@media only screen and (max-width: 767px) {
	.g-header.is-scroll .contact {
		top: inherit;
		padding: 16px 20px;
	}
}

.g-header.is-scroll .contact__line {
	top: 14px;
}

@media only screen and (max-width: 767px) {
	.g-header.is-scroll .contact__line {
		top: 18px;
	}
}

/*--------------------------------------------------------------------------
   .g-footer
---------------------------------------------------------------------------*/
.g-footer {
	padding: 85px 0 70px;
	background-color: #fff;
	text-align: center;
}

@media only screen and (max-width: 767px) {
	.g-footer {
		padding: 62px 0 38px;
	}
}

@media only screen and (max-width: 767px) {
	.g-footer__logo img {
		width: 241px;
	}
}

.g-footer__hdg {
	margin-top: 55px;
	font-size: 22px;
	font-weight: 600;
	letter-spacing: .1em;
}

@media only screen and (max-width: 767px) {
	.g-footer__hdg {
		margin-top: 45px;
		font-size: 15px;
	}
}

.g-footer__tel {
	margin-top: 16px;
	font-size: 38px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .1em;
}

@media only screen and (max-width: 767px) {
	.g-footer__tel {
		font-size: 26px;
	}
}

.g-footer__tel a {
	cursor: text;
}

.g-footer__tel span {
	vertical-align: 7%;
}

.g-footer__sns {
	display: -ms-flexbox;
	display: flex;
	margin-top: 30px;

	-ms-flex-align: center;
	align-items: center;
	-ms-flex-pack: center;
	justify-content: center;
}

@media only screen and (max-width: 767px) {
	.g-footer__sns {
		margin-top: 20px;

		-ms-flex-pack: center;
		justify-content: center;
	}
}

.g-footer__sns-item {
	margin: 0 15px;
	line-height: 1;
}

.g-footer__sns-item img {
	width: 60px;
	height: auto;
}

@media only screen and (max-width: 767px) {
	.g-footer__sns-item img {
		width: 55px;
	}
}

.mode-pc .g-footer__sns-item a:hover img {
	animation: t_bounce 2s ease-in-out;
}

@keyframes t_bounce {
	5% {
		transform: scale(1.2, .7);
	}
	10% {
		transform: scale(.7, 1.2) translateY(-2px);
	}
	15% {
		transform: scale(1, 1);
	}
}

.g-footer__txt {
	margin-top: 60px;
	font-weight: 600;
	letter-spacing: .1em;
}

@media only screen and (max-width: 767px) {
	.g-footer__txt {
		margin-top: 45px;
		font-size: 10px;
		line-height: 2;
	}
}

.g-footer__copy {
	margin-top: 10px;
	font-weight: 600;
	letter-spacing: .2em;
}

@media only screen and (max-width: 767px) {
	.g-footer__copy {
		margin-top: 15px;
		font-size: 10px;
	}
}
