@charset 'UTF-8';
/* --- foudation _var.scss --- */
/* --- foudation _mixin.scss --- */
/* --- foudation _reset.scss --- */
body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    outline: 0;
    border: none;
    background: transparent; 
    vertical-align: baseline;
    font-weight: normal;
    font-size: 100%;
}

ul {
    list-style: none;
}

/*!
 * ress.css • v1.1.1
 * MIT License
 * github.com/filipelinhares/ress
 */
/* # =================================================================
   # Global selectors
   # ================================================================= */
html {
    overflow-y: scroll;
    box-sizing: border-box;
    /* All browsers without overlaying scrollbars */

    -webkit-text-size-adjust: 100%;
    /* iOS 8+ */
}

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

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

/* Remove margin, padding of all elements and set background-no-repeat as default */
* {
    /* Reset `padding` and `margin` of all elements */
    margin: 0; 
    /* Set `background-repeat: no-repeat` to all elements */
    padding: 0;
    background-repeat: no-repeat;
}

/* # =================================================================
   # General elements
   # ================================================================= */
/* Add the correct display in iOS 4-7.*/
audio:not([controls]) {
    display: none;
    height: 0;
}

hr {
    overflow: visible;
    /* Show the overflow in Edge and IE */
}

/*
* Correct `block` display not defined for any HTML5 element in IE 8/9
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox
* Correct `block` display not defined for `main` in IE 11
*/
article, aside, details, figcaption, figure, footer, header, main, menu, nav, section, summary {
    display: block;
}

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

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

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

abbr[title] {
    border-bottom: 1px dotted;
    /* Add a bordered underline effect in all browsers */
    text-decoration: none;
    /* Remove text decoration in Firefox 40+ */
}

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

    -webkit-text-decoration-skip: objects;
    /* Remove gaps in links underline in iOS 8+ and Safari 8+ */
}

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 */
}

b, strong {
    font-weight: bolder;
    /* Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+ */
}

dfn {
    font-style: italic;
    /* Address styling not present in Safari and Chrome */
}

/* Address styling not present in IE 8/9 */
mark {
    background-color: #ff0;
    color: #000;
}

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

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

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

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

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

[type='number'] {
    width: auto;
    /* Firefox 36+ */
}

[type='search'] {
    -webkit-appearance: textfield;
    /* Safari 8+ */
}

[type='search']::-webkit-search-cancel-button, [type='search']::-webkit-search-decoration {
    -webkit-appearance: none;
    /* Safari 8 */
}

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 */
}

/* 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: 0;
}

/* 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 */
}

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

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

/* Style select like a standard input */
select {
    -moz-appearance: none;
    /* Firefox 36+ */
    -webkit-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%;
    border: 0;
    /* Correct `color` not being inherited in IE 8/9/10/11 */
    color: inherit;
    /* Correct the text wrapping in Edge and IE */
    white-space: normal;
    /* Correct the text wrapping in Edge and IE */
}

::-webkit-file-upload-button {
    /* Correct the inability to style clickable types in iOS and Safari */
    font: inherit;

    -webkit-appearance: button;
    /* Change font properties to `inherit` in Chrome and Safari */
}

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

    -webkit-appearance: textfield;
    /* Correct the outline style in 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(:root) {
    overflow: hidden;
    /* Internet Explorer 11- */
}

audio, canvas, progress, video {
    display: inline-block;
    /* Internet Explorer 11+, Windows Phone 8.1+ */
}

/* # =================================================================
   # Accessibility
   # ================================================================= */
/* Hide content from screens but not screenreaders */

/* 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;
}

/* # =================================================================
   # Selection
   # ================================================================= */
/* Specify text selection background color and omit drop shadow */
::-moz-selection {
    background-color: #b3d4fc;
    /* Required when declaring ::selection */
    color: #000;
    text-shadow: none;
}

::selection {
    background-color: #b3d4fc;
    /* Required when declaring ::selection */
    color: #000;
    text-shadow: none;
}

/* --- foudation _base.scss --- */
/*doc
---
name: base button
category: module/button
---

## This is base button

* Base button style.
* Use `a` or `button` tag.

```html
<a class="btn">Button</a>
```
 */

body {
    position: relative;
    color: #5f3e0f;
    list-style: none;
    font-size: 12px;
    font-size: 1.2rem;
    font-family: '游明朝', YuMincho, 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
    line-height: 1.6;

    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    font-smoothing: antialiased;
    -webkit-font-feature-settings: 'palt';
    font-feature-settings: 'palt';
}

a {
    color: #50290c;
    text-decoration: none;
}
a:hover {
    color: #835c3f;
    text-decoration: underline;
}

img {
    vertical-align: bottom;
}

.red {
    color: #d40000;
}

#dmm-olgnavi {
    position: relative;
    z-index: 510;
}

/* --- layout _grid.scss --- */
.l_grid {
    margin: 0 -10px;
    padding: 0;
}
.l_grid:after {
    display: block;
    clear: both;
    content: '';
}
.l_grid.is-adjust {
    margin: 0;
}
.l_grid.is-adjust > [class*='grid-'] {
    padding: 0;
}
.l_grid.is-right > [class*='grid-'] {
    float: right;
}
.l_grid [class*='grid-'] {
    position: relative;
    float: left;
    min-height: 1px;
    padding: 0 10px;
    box-sizing: border-box;
}

/* --- layout _container.scss --- */
.l_container {
    position: relative;
    width: 900px;
    margin: 0 auto;
    box-sizing: border-box;
}

/* --- layout _header.scss --- */
.l_header {
    display: block;
}

/* --- layout _page.scss --- */
.l_page {
    background: url('../images/common/bg_page.jpg') left top repeat;
}
.l_page .page-inner {
    padding: 12px 0 36px;
    background: url('../images/common/bg_main.png') center top no-repeat;
    background-size: 768px auto;
}
.l_page .page-inner.is-light-background {
    background: url(../images/common/bg_page.jpg) 0 0 repeat;
}

/* --- layout _footer.scss --- */
.l_footer {
    padding: 24px 0;
    background: #1e1813;
    color: #fff;
    text-align: center;
}
.l_footer .footer-inner {
    padding-bottom: 24px;
    border-bottom: 1px solid #484644;
}
.l_footer .footer-inner:last-child {
    padding-top: 24px;
    padding-bottom: 0;
    border: none;
}
.l_footer .footer-upper {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: end;

    -webkit-box-align: end;
    -webkit-align-items: flex-end;
    align-items: flex-end;
}
.l_footer .game-description {
    padding: 0 16px;
    color: #f9ffe2;
    text-align: left;
    font-size: 0;
}
.l_footer .game-description:after {
    display: block;
    clear: both;
    content: '';
}
.l_footer .game-description .footer-gamelogo {
    display: inline-block;
    max-width: 195px;
    width: 30%;
    padding-right: 12px;
    vertical-align: middle;
    box-sizing: border-box;
}
.l_footer .game-description .descriptions {
    display: inline-block;
    width: 70%;
    vertical-align: middle;
    text-align: left; 
    font-size: 12px;
    font-size: 1.2rem;
}
.l_footer .game-description .gametitle {
    margin-bottom: 8px;
    font-size: 24px;
}
.l_footer .game-description .outlines th {
    padding-right: 6px;
}
.l_footer .game-description .outlines td {
    padding-left: 6px;
    border-left: 1px solid #cacdb4;
}
.l_footer .game-description .overview {
    overflow: hidden;
}
.l_footer .game-description .overview dl {
    font-size: 12px;
}
.l_footer .game-description .overview dl:after {
    display: block;
    clear: both;
    content: '';
}
.l_footer .game-description .overview dt {
    float: left;
    width: 6.5em;
    margin-right: 5px;
}
.l_footer .game-description .overview dt:after {
    display: block;
    clear: both;
    content: '';
}
.l_footer .game-description .overview dt:after {
    display: inline-block;
    float: right;
    content: '：'; 
    vertical-align: middle;
}
.l_footer .game-description .overview dd {
    display: block; 
    overflow: hidden;
}
.l_footer .game-description .overview a {
    color: #efddae;
}
.l_footer .game-description .overview a:hover {
    text-decoration: underline;
}
.l_footer .game-description .app-buttons:after {
    display: block;
    clear: both;
    content: '';
}
.l_footer .game-description .app-buttons img {
    width: 100%;
}
.l_footer .game-description .app-buttons .app-button-item {
    margin-top: 24px;
}
.l_footer .game-description .app-buttons .app-button-item:first-child {
    margin-top: 0;
}
.l_footer .game-description .app-buttons .app-button-item a {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
}
.l_footer .game-description .app-buttons .app-button-item a:hover {
    opacity: 0.7;
}
.l_footer .game-description .app-buttons .app-button-item .app-text {
    display: block;
    margin-bottom: 3px;
}
.l_footer .game-description .app-buttons .button {
    display: inline-block;
    width: 60%;
    vertical-align: bottom;
    text-align: left; 
    font-size: 12px;
    font-size: 1.2rem;
}
.l_footer .game-description .app-buttons .qrcode {
    display: inline-block;
    width: 40%;
    padding-left: 10px;
    vertical-align: bottom;
    box-sizing: border-box;
}
.l_footer .game-description .app-buttons .qrcode img {
    width: 65px;
    height: auto;
}
.l_footer .dmm-description {
    padding: 0 16px;
    text-align: left;
    font-size: 0;
    line-height: 1.3;
}
.l_footer .dmm-description .sns {
    text-align: right;
}
.l_footer .dmm-description .sns .item {
    display: inline-block;
    max-width: 34px; 
    margin: 0 3px;
}
.l_footer .dmm-description .sns .item a {
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.l_footer .dmm-description .sns .item a:hover {
    position: relative;
    top: 1px;
    opacity: 0.7;
}
.l_footer .dmm-description .sns .item.line {
    display: none;
}
.l_footer .dmm-description .sns .item img {
    width: 100%;
    height: auto;
}
.l_footer .dmm-description .logo {
    display: inline-block;
    width: 30%;
    padding-right: 12px;
    vertical-align: middle;
    box-sizing: border-box;
}
.l_footer .dmm-description .logo img {
    max-width: 233px;
    width: 100%;
}
.l_footer .dmm-description .sublinks {
    display: inline-block;
    width: 70%;
    vertical-align: middle; 
    font-size: 12px;
    font-size: 1.2rem;
}
.l_footer .dmm-description a {
    color: #efddae;
}
.l_footer .dmm-description .copyright {
    font-size: 12px;
    font-size: 1.2rem;
}

/* --- layout _section.scss --- */
.l_section {
    position: relative;
    width: 100%;
}
.l_section:before {
    display: block;
    height: 7px;
    background: url('../images/common/bg_hr.jpg') 0 0 repeat-x;
    content: '';
}
.l_section.is-overlap {
    z-index: 50;
}
.l_section.is-before-overlap:before {
    position: relative;
    z-index: 50;
}
.l_section.is-border {
    border-top: 1px solid #da9836;
    box-shadow: inset 0 -1px 0 #805e26;
}
.l_section.is-border:before {
    display: none;
}
.l_section.is-noborder:before {
    display: none;
}

/* --- layout _wrapper.scss --- */
.l_wrapper {
    position: relative; 
    overflow: hidden;
}

/* --- component _button-more.scss --- */

.c_button-more {
    position: relative;
    z-index: 10;
    display: inline-block;
    min-width: 11em;
    padding: 6px 30px;
    border-radius: 20px;
    background: #3e1d0c;
    color: #fffdd6;
    text-align: center; 
    font-size: 16px;
    font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    cursor: pointer;
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.c_button-more:hover {
    opacity: 0.7;
}
.c_button-more span {
    display: inline-block;
    vertical-align: baseline;
}

/* --- component _fill-box.scss --- */

.c_fill-box {
    position: relative;
    z-index: 40; 
    padding: 0;
}
.c_fill-box.is-no-caption .content {
    margin-top: 5px;
    padding: 10px 32px 0;
}
.c_fill-box.is-light .content {
    background: url('../images/common/bg_fill_middle_light.png') left top repeat-y;
    background-size: 100%;
}
.c_fill-box.is-caption .head {
    margin-bottom: -30px;
}
.c_fill-box .content {
    margin-bottom: 25px;
    padding: 40px 40px 25px;
    background: url('../images/common/bg_fill_middle.png') left top repeat-y;
    background-size: 100%;
}
.c_fill-box .head {
    display: block;
    margin-bottom: -30px;
}
.c_fill-box .head img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}
.c_fill-box .bottom {
    display: block;
    margin-top: -50px;
}
.c_fill-box .bottom img {
    width: 100%;
    height: auto;
    vertical-align: top;
}

/* --- component _global-navi.scss --- */

.c_global-navi {
    position: relative;
    top: 0;
    z-index: 510; 
    width: 100%;
    padding-bottom: 2px;
    border-bottom: 5px solid #2e2e2e;
    background: url('../images/common/bg_navi.png') 0 0 repeat;
}
.c_global-navi .inner {
    border-bottom: 2px solid #2e2e2e; 
    background: transparent;
    background: -webkit-linear-gradient(top, white 0%, rgba(255, 255, 255, 0) 100%);
    background: linear-gradient(to bottom, white 0%, rgba(255, 255, 255, 0) 100%);
}
.c_global-navi .navi-wrapper {
    position: relative;
}
.c_global-navi .navi:after {
    display: block;
    clear: both;
    content: '';
}
.c_global-navi .navi.is-pc {
    display: block;
}
.c_global-navi .navi.is-sp {
    display: none;
}
.c_global-navi .navi > .item {
    position: relative;
    float: left;
    border-right: 1px solid #a68d70;
    box-shadow: 1px 0 0 #fff2e1;
}
.c_global-navi .navi > .item.is-right {
    float: right;
}
.c_global-navi .navi > .item:first-child {
    border-left: 1px solid #a68d70;
    box-shadow: -1px 0 0 #fff2e1;
}
.c_global-navi .navi > .item > a, .c_global-navi .navi > .item > span {
    display: table-cell;
    width: 100%;
    height: 44px;
    padding: 0 17px;
    vertical-align: middle; 
    text-align: center;
}
.c_global-navi .navi > .item > a:hover, .c_global-navi .navi > .item > a.is-active {
    background: url('../images/common/bg_navi.png') 0 0 repeat;
    box-shadow: inset 0 3px 9px rgba(82, 42, 0, 0.2), inset 0 -3px 9px rgba(255, 255, 255, 0.3);
}
.c_global-navi .navi > .item > .tag {
    position: absolute;
    bottom: -14px;
    width: 100%;
    text-align: center;
}
.c_global-navi .navi .bt-slidedown {
    width: 115px;
    border-right: none;
}
.c_global-navi .navi .bt-slidedown .menu {
    width: 100%;
    height: auto;
    vertical-align: middle;
}
.c_global-navi .navi .bt-slidedown .open {
    display: block;
}
.c_global-navi .navi .bt-slidedown .close {
    display: none;
}
.c_global-navi .navi .bt-slidedown .is-open .open {
    display: none;
}
.c_global-navi .navi .bt-slidedown .is-open .close {
    display: block;
}
.c_global-navi .navi-slidedown {
    position: absolute;
    top: 52px;
    left: 0;
    z-index: 150; 
    display: none;
    width: 100%;
    background: #e6d29c;
    background: rgba(230, 210, 156, 0.9);
    text-align: left;
}
.c_global-navi .navi-slidedown > .item {
    border-top: 1px solid #fff2e1;
    box-shadow: 0 -1px 0 #a68d70;
}
.c_global-navi .navi-slidedown > .item:first-child {
    border-top: none;
    box-shadow: none;
}
.c_global-navi .navi-slidedown > .item a, .c_global-navi .navi-slidedown > .item span {
    position: relative;
    display: block;
    padding: 13px 30px;
}
.c_global-navi .navi-slidedown > .item a > .tag, .c_global-navi .navi-slidedown > .item span > .tag {
    position: absolute;
    right: 30px;
}
.c_global-navi .navi-slidedown .menu-top {
    width: 53px;
}
.c_global-navi .navi-slidedown .menu-news {
    width: 80px;
}
.c_global-navi .navi-slidedown .menu-world {
    width: 60px;
}
.c_global-navi .navi-slidedown .menu-chara {
    width: 39px;
}
.c_global-navi .navi-slidedown .menu-system {
    width: 73px;
}
.c_global-navi .navi-slidedown .menu-goods {
    width: 63px;
}
.c_global-navi .navi-slidedown .menu-special {
    width: 94px;
}
.c_global-navi .navi-slidedown .menu-serial {
    width: 116px;
}
.c_global-navi .sns {
    position: absolute;
    top: 0;
    right: 0;
}
.c_global-navi .sns .icons {
    display: inline-block;
    vertical-align: top;
}
.c_global-navi .sns .icons a:hover {
    opacity: 0.8;
}
.c_global-navi .sns .icons.line {
    display: none;
}
.c_global-navi .sns .icons.is-contact {
    margin-top: 2px;
}

/* --- component _head.scss --- */

.c_head {
    position: relative;
    margin: 40px 0 60px;
    letter-spacing: -0.5em; 
    font-size: 0;
}
.c_head > .logo {
    position: absolute;
    top: -25%;
    left: 0;
    width: 28%; 
    font-size: 12px;
    font-size: 1.2rem;
}
.c_head > .logo img {
    max-width: 463px;
    width: 100%;
    height: auto;
}
.c_head > .caption {
    margin: 0 auto;
    text-align: center; 
    font-size: 12px;
    font-size: 1.2rem;
}
.c_head > .caption img {
    width: 100%;
    height: auto;
}
.c_head > .caption.is-chara {
    max-width: 238px;
}
.c_head > .caption.is-world {
    max-width: 290px;
}
.c_head > .caption.is-system {
    max-width: 368px;
}
.c_head > .caption.is-special {
    max-width: 378px;
}
.c_head > .caption.is-news {
    max-width: 368px;
}

/* --- component _image-button.scss --- */

.c_image-button {
    position: relative;
    z-index: 10; 
    display: block;
    text-align: center;
}
.c_image-button.is-active .button-active {
    display: block;
    opacity: 1.0;
}
.c_image-button a, .c_image-button span {
    position: relative;
    display: inline-block;
    cursor: pointer;
}
.c_image-button a .button-normal, .c_image-button span .button-normal {
    position: relative;
    z-index: 140;
}
.c_image-button a .button-active, .c_image-button span .button-active {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 150;
    margin: auto;
    opacity: 0;
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.c_image-button a:hover .button-active, .c_image-button span:hover .button-active {
    display: block;
    opacity: 1.0;
}
.c_image-button a > img, .c_image-button span > img {
    width: 100%;
    height: auto;
}
.c_image-button.is-gear {
    margin: 45px 0 10px;
}
.c_image-button.is-gear a > img, .c_image-button.is-gear span > img {
    top: -5px;
    max-width: 479px;
    width: 100%;
    height: auto;
}
.c_image-button.is-gear .gear {
    position: absolute;
}
.c_image-button.is-gear .gear-left01 {
    top: -55px;
    left: 10px;
    z-index: 100;
    -webkit-animation: spinRight 40s linear infinite;
    animation: spinRight 40s linear infinite;
}
.c_image-button.is-gear .gear-left02 {
    top: 0;
    left: -20px;
    z-index: 90;
    -webkit-animation: spinLeft 20s linear infinite;
    animation: spinLeft 20s linear infinite;
}
.c_image-button.is-gear .gear-left03 {
    top: 35px;
    left: 130px;
    z-index: 80;
    -webkit-animation: spinLeft 30s linear infinite;
    animation: spinLeft 30s linear infinite;
}
.c_image-button.is-gear .gear-left04 {
    top: -15px;
    left: 120px;
    z-index: 70;
    -webkit-animation: spinLeft 20s linear infinite;
    animation: spinLeft 20s linear infinite;
}
.c_image-button.is-gear .gear-left05 {
    top: 0;
    left: 45px;
    z-index: 60;
    -webkit-animation: spinRight 30s linear infinite;
    animation: spinRight 30s linear infinite;
}
.c_image-button.is-gear .gear-right01 {
    top: 10px;
    right: 90px;
    z-index: 100;
    -webkit-animation: spinLeft 30s linear infinite;
    animation: spinLeft 30s linear infinite;
}
.c_image-button.is-gear .gear-right02 {
    top: -30px;
    right: -10px;
    z-index: 90;
    -webkit-animation: spinRight 30s linear infinite;
    animation: spinRight 30s linear infinite;
}
.c_image-button.is-gear .gear-right03 {
    top: 30px;
    right: 65px;
    z-index: 80;
    -webkit-animation: spinLeft 30s linear infinite;
    animation: spinLeft 30s linear infinite;
}
.c_image-button.is-gear .gear-right04 {
    top: -25px;
    right: 125px;
    z-index: 70;
    -webkit-animation: spinRight 20s linear infinite;
    animation: spinRight 20s linear infinite;
}
.c_image-button.is-gear .gear-right05 {
    top: -40px;
    right: 5px;
    z-index: 60;
    -webkit-animation: spinLeft 30s linear infinite;
    animation: spinLeft 30s linear infinite;
}
.c_image-button.is-gear .gear-right06 {
    top: -40px;
    right: 60px;
    z-index: 50;
    -webkit-animation: spinLeft 30s linear infinite;
    animation: spinLeft 30s linear infinite;
}

@-webkit-keyframes spinRight {
    0% {
        -webkit-transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes spinRight {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@-webkit-keyframes spinLeft {
    0% {
        -webkit-transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(-360deg);
    }
}

@keyframes spinLeft {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(-360deg);
        transform: rotate(-360deg);
    }
}

/* --- component _image-caption.scss --- */

.c_image-caption {
    position: relative;
    z-index: 50; 
    margin-bottom: 24px;
    text-align: center;
}
.c_image-caption.is-campaign img {
    max-width: 809px;
    width: 100%;
    height: auto;
}

/* --- component _list.scss --- */

.c_list {
    margin: 0 -10px -20px;
    font-size: 0;
}
.c_list .list-item {
    display: inline-block;
    width: 100%;
    margin-bottom: 20px;
    padding: 0 10px;
    font-size: 14px;
    box-sizing: border-box;
}
.c_list .image-full {
    width: 100%;
}
.c_list.is-col2 .list-item {
    width: 50%;
}
.c_list.is-col3 .list-item {
    width: 33.3%;
}
.c_list.is-col4 .list-item {
    width: 25%;
}
.c_list.is-col5 .list-item {
    width: 20%;
}
.c_list.is-col6 .list-item {
    width: 16.6%;
}

/* --- component _loader.scss --- */

.c_loader {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 500;
    background: #000;
    text-align: center;
}
.c_loader .inner {
    display: inline-block;
}
.c_loader img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
}

/* --- component _new.scss --- */

.c_new {
    display: inline-block;
    color: #cf0000;
    vertical-align: middle;
}

/* --- component _notice.scss --- */

.c_notice {
    margin-top: 15px;
    text-align: left;
    font-size: 14px;
    font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
}
.c_notice a {
    color: #d40000;
}
.c_notice a:hover {
    color: #f33;
}
.c_notice .big-lead {
    color: #b00000;
    text-align: center; 
    font-size: 36px;
}
.c_notice .sub-lead {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px dashed #50290c;
    text-align: center; 
    font-size: 18px;
}
.c_notice .sub-lead span {
    font-size: 14px;
}
.c_notice .sub-head {
    margin-bottom: 6px;
    font-weight: bold; 
    font-size: 18px;
}
.c_notice .data-head {
    margin-bottom: 6px;
    font-weight: bold; 
    font-size: 18px;
}
.c_notice .data-head.is-inline {
    float: left;
    min-width: 6.5em;
    text-align: right; 
    font-size: 14px;
}
.c_notice .data-content {
    overflow: hidden;
    margin-bottom: 20px;
    word-break: break-all;
}
.c_notice .data-content.is-inline {
    margin-bottom: 6px;
}
.c_notice .paragraph {
    margin-bottom: 12px;
    font-size: 14px;
}
.c_notice .type-disc {
    padding-left: 18px; 
    list-style-type: disc;
}
.c_notice .type-num {
    padding-left: 18px; 
    list-style-type: decimal;
}

/* --- component _pagetop.scss --- */
.c_pagetop {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 100; 
    font-size: 77%;
}
.c_pagetop a {
    display: block;
    width: 60px;
    height: 60px;
    border-radius: 5px;
    background: transparent;
    color: #fff;
    text-align: center; 
    text-decoration: none;
}

/* --- component _panel-preregist.scss --- */

.c_panel-preregist {
    position: relative;
    z-index: 10; 
    margin: 0 auto;
    text-align: center;
}
.c_panel-preregist img {
    max-width: 664px;
    width: 100%;
    height: auto;
}

/* --- component _popup.scss --- */

.c_popup {
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    opacity: 0;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
}
.c_popup.is-active {
    z-index: 400;
    opacity: 1;
}
.c_popup .overlay {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
    content: '';
    cursor: pointer;
}
.c_popup .popup-inner {
    position: relative;
}
.c_popup .popup-content {
    position: relative;
    z-index: 100;
}
.c_popup .popup-content .chara {
    max-width: 900px;
    width: 100%;
    margin: auto;
}
.c_popup .controller .prev, .c_popup .c_rotation-banner .controller .next, .c_rotation-banner .c_popup .controller .next {
    position: absolute;
    top: 50%;
    left: 16%;
    z-index: 510; 
    margin-top: -39px;
    cursor: pointer;
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.c_popup .controller .prev:hover, .c_popup .c_rotation-banner .controller .next:hover, .c_rotation-banner .c_popup .controller .next:hover {
    opacity: 0.7;
}
.c_popup .controller .prev:active, .c_popup .c_rotation-banner .controller .next:active, .c_rotation-banner .c_popup .controller .next:active {
    top: 51%;
}
.c_popup .controller .prev img, .c_popup .c_rotation-banner .controller .next img, .c_rotation-banner .c_popup .controller .next img {
    width: 100%;
    height: auto;
}
.c_popup .controller .next {
    position: absolute;
    top: 50%;
    right: 16%;
    z-index: 510; 
    margin-top: -39px;
    cursor: pointer;
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.c_popup .controller .next:hover {
    opacity: 0.7;
}
.c_popup .controller .next:active {
    top: 51%;
}
.c_popup .controller .next img {
    width: 100%;
    height: auto;
}
.c_popup .button-voice {
    position: absolute;
    top: auto;
    right: 10%;
    bottom: 7%;
    max-width: 224px;
    width: 30%;
    -webkit-transition: opacity 0.15s ease;
    transition: opacity 0.15s ease;
}
.c_popup .button-voice a:hover {
    opacity: 0.7;
}
.c_popup .button-voice a:active {
    margin-top: 1px;
}
.c_popup .button-voice a img, .c_popup .button-voice span img {
    width: 100%;
    height: auto;
}
.c_popup .button-close {
    position: absolute;
    top: -40px;
    right: 20%;
    z-index: 500;
    cursor: pointer;
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.c_popup .button-close:hover {
    opacity: 0.7;
}
.c_popup .list-content .item {
    text-align: center;
}
.c_popup .list-content .item-content {
    position: relative;
    max-width: 900px;
    margin: 0 auto;
}

/* --- component _rotation-banner.scss --- */
.c_rotation-banner {
    padding: 0 0 24px;
}
.c_rotation-banner .item a:hover img:not(.ico-new) {
    opacity: 0.7;
}
.c_rotation-banner .item .ico-new {
    position: absolute;
    top: 0;
    left: 0;
    width: 15.5%;
    height: auto;
}
.c_rotation-banner .controller .prev, .c_rotation-banner .controller .next {
    position: absolute;
    top: 50%;
    left: -3%;
    display: block;
    margin-top: -35px;
    cursor: pointer;
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.c_rotation-banner .controller .prev.is-disabled, .c_rotation-banner .controller .is-disabled.next {
    opacity: 0.3; 
    cursor: default;
}
.c_rotation-banner .controller .prev.is-disabled:hover, .c_rotation-banner .controller .is-disabled.next:hover {
    opacity: 0.3;
}
.c_rotation-banner .controller .prev.is-disabled:active, .c_rotation-banner .controller .is-disabled.next:active {
    margin-top: -35px;
}
.c_rotation-banner .controller .prev:hover, .c_rotation-banner .controller .next:hover {
    opacity: 0.7;
}
.c_rotation-banner .controller .prev:active, .c_rotation-banner .controller .next:active {
    margin-top: -33px;
}
.c_rotation-banner .controller .next {
    right: -3%; 
    left: auto;
}

/* --- component _tag.scss --- */

.c_tag {
    display: inline-block;
    min-width: 7em;
    padding: 3px 0;
    color: #fff;
    vertical-align: middle; 
    text-align: center;
    font-size: 12px;
    line-height: 1;
}
.c_tag.is-news {
    background: #842626;
}
.c_tag.is-special {
    background: #353d68;
}
.c_tag.is-goods {
    background: #234b28;
}
.c_tag.is-game {
    background: #223b7b;
}
.c_tag.is-event {
    background: #842626;
}
.c_tag.is-other {
    background: #715200;
}
.c_tag.is-collaboration {
    background: #482859;
}

/* --- component _title.scss --- */

.c_title {
    margin-bottom: 20px;
}
.c_title img {
    width: 100%;
    height: auto;
}

/* --- component _wrapper-button.scss --- */

.c_wrapper-button {
    width: 80%;
    margin: 0 auto;
    padding: 10px 0 20px;
}

/* --- component _wrapper-movie.scss --- */

.c_wrapper-movie {
    position: relative;
    overflow: hidden;
    width: 80%;
    height: 0;
    margin: 0 auto; 
    margin-bottom: 40px;
    padding-bottom: 45%;
}
.c_wrapper-movie.is-full {
    max-width: 720px;
    width: 100%;
    padding-bottom: 52%;
}
.c_wrapper-movie iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* --- project _chara.scss --- */
.page-chara {
    text-align: center;
}
.page-chara .filter-contents {
    position: relative;
    z-index: 100; 
    max-width: 640px;
    margin: 0 auto 20px;
}
.page-chara .filter-contents .filter-caption {
    margin-bottom: 12px;
    padding: 8px 0;
    border: 1px solid #bd8c36;
    border-radius: 5px;
    background: #680000;
    cursor: pointer;
}
.page-chara .filter-contents .filter-caption:hover {
    background: #8a2222;
}
.page-chara .filter-contents .filter-caption .ico-triangle {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 0;
    height: 0;
    border-width: 8px 6px 0 6px;
    border-style: solid;
    border-color: #d7bd6f transparent transparent transparent;
    content: '';
}
.page-chara .filter-contents .filter-items {
    padding: 12px;
    border: 1px solid #cda078;
    background: #fef4dd;
    background: url('../images/chara/bg_filter.jpg') center top repeat; 
    box-shadow: inset 0 0 16px #dec69b;
}
.page-chara .filter-contents .filter-item {
    margin-top: 12px;
}
.page-chara .filter-contents .filter-item:last-child {
    border-left: 1px solid #e8ca79;
    box-shadow: inset 1px 0 0 #fff7f2;
    box-sizing: border-box;
}
.page-chara .filter-contents .category {
    margin: 6px 0 12px;
}
.page-chara .filter-contents .category img {
    max-width: 138px;
    width: 100%;
    height: auto;
}
.page-chara .filter-contents .filters {
    margin: 0 auto;
    text-align: left;
    font-size: 13px; 
    font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
}
.page-chara .filter-contents .filters .filter {
    display: inline-block;
    margin-bottom: 4px;
    padding: 5px 8px;
    border: 1px solid #e7bea0;
    cursor: pointer;
}
.page-chara .filter-contents .filters .filter.is-active, .page-chara .filter-contents .filters .filter:hover {
    background: #734421;
    color: #fff;
}
.page-chara .error {
    position: relative;
    z-index: 10;
    display: none;
    max-width: 640px;
    margin: 0 auto 20px;
    padding: 40px 15px;
    border: 1px solid #89752c;
    background: #f5eed4;
    text-align: center;
    font-size: 16px;
    font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    line-height: 1;
}
.page-chara .chara-list {
    margin-bottom: 24px;
    text-align: left;
}
.page-chara .chara-list .item {
    display: block;
    margin-bottom: 16px;
    text-align: center;
    cursor: pointer;
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.page-chara .chara-list .item:hover {
    opacity: 0.7;
}
.page-chara .chara-list .item img {
    max-width: 194px;
    width: 100%;
    height: auto;
}
.page-chara .chara-list .error {
    display: none;
    padding: 20px;
}
.page-chara .text-top {
    position: relative;
    z-index: 10; 
    max-width: 814px;
    width: 100%;
    margin-bottom: 10px;
}
.page-chara .text-bottom {
    max-width: 680px;
    width: 100%;
    margin-bottom: 24px;
}
.page-chara .subchara {
    position: relative;
    z-index: 10;
    max-width: 811px;
    width: 100%;
    margin-bottom: 10px;
}
.page-chara .obj-flower {
    position: absolute;
    top: 6px;
    right: 1%;
}
.page-chara .niconico-bnr {
    position: relative;
    margin-bottom: 24px;
    padding: 6% 3%;
}
.page-chara .niconico-bnr .bg-panel {
    position: absolute;
    top: 0;
    left: 3px;
    width: 100%;
    height: auto;
}
.page-chara .niconico-bnr .tx-caption, .page-chara .niconico-bnr .bnr {
    position: relative;
    z-index: 10;
}
.page-chara .niconico-bnr .bnr {
    max-width: 630px;
    width: 90%;
    height: auto;
    margin-bottom: 10px;
}
.page-chara .niconico-bnr .bnr:hover {
    opacity: 0.8;
}
.page-chara .niconico-bnr .tx-caption {
    max-width: 662px;
    width: 90%;
    height: auto;
}

/* --- project _news.scss --- */
.page-news {
    display: block;
}
.page-news .error {
    position: relative;
    z-index: 10;
    display: none;
    padding: 40px 15px;
    border: 1px solid #89752c;
    background: #f5eed4;
    text-align: center;
    font-size: 16px;
    font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    line-height: 1;
}
.page-news .navi-news {
    position: relative;
    z-index: 10; 
    max-width: 820px;
    width: 100%;
    margin: 6px auto 20px;
    font-size: 0;
}
.page-news .navi-item {
    display: inline-block;
    width: 20%;
    font-size: 12px; 
    cursor: pointer;
    box-sizing: border-box;
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.page-news .navi-item img {
    width: 100%;
    height: auto;
}
.page-news .news-wrap {
    position: relative;
    z-index: 10; 
    margin-bottom: 20px;
    padding: 15px 25px;
    border: 1px solid #89752c;
    background: #f5eed4;
    font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
}
.page-news .news-header .main {
    margin-bottom: 12px;
    padding-bottom: 6px;
    border-bottom: 1px solid #8d722f;
    font-weight: bold; 
    font-size: 20px;
}
.page-news .news-header .main a {
    display: block;
}
.page-news .news-header .sub {
    margin-bottom: 3px;
    color: #77654f; 
    font-size: 12px;
}
.page-news .news-header .sub span {
    display: inline-block;
    vertical-align: middle;
}
.page-news .panel {
    margin-bottom: 24px;
    text-align: center;
}
.page-news .panel img {
    width: 100%;
    height: auto;
}
.page-news .buttons {
    margin: 20px 0;
    text-align: center;
}

/* --- project _top.scss --- */
.page-top {
    overflow: hidden;
}
.page-top [class^='section-'] {
    position: relative;
    padding: 24px 0;
}
.page-top .section-hero {
    position: relative;
    overflow: hidden;
    padding: 0;
    background: #381808;
    text-align: center;
    -webkit-transition: background 1.0s ease;
    transition: background 1.0s ease;
}
.page-top .section-hero .hero-backgrounds {
    position: relative;
}
.page-top .section-hero .background-item {
    position: absolute;
    top: 0;
    left: 50%;
    width: 2020px;
    opacity: 0;
    -webkit-transition: opacity 1.5s ease;
    transition: opacity 1.5s ease;
}
.page-top .section-hero .background-item.is-active {
    position: relative;
    opacity: 1;
}
.page-top .section-hero .bg_chara {
    display: block;
    width: 2020px;
}
.page-top .section-hero .rotation-controller {
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: 100;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    -ms-flex-align: center;
    width: 176px;
    height: 35px;
    background: url('../images/top/bg_dot.png') no-repeat;
    text-align: center; 
    -webkit-transform: translate3d(-50%, 0, 0);
    transform: translate3d(-50%, 0, 0);

    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
}
.page-top .section-hero .rotation-controller .bgDots {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    -ms-flex-align: center;

    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
}
.page-top .section-hero .rotation-controller .bgDots-item {
    width: 14px;
    height: 14px;
    margin: 0 6px;
    background: url('../images/top/dot.png') 0 0 no-repeat;
    cursor: pointer;
}
.page-top .section-hero .rotation-controller .bgDots-item.is-active {
    background-position: 0 100%;
}
.page-top .section-hero .hero-contents {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 20; 
    margin: 0 auto;
    text-align: center;
}
.page-top .section-hero .hero-contents .tx-hero {
    opacity: 0;
    -webkit-transition: opacity ease 1.0s;
    transition: opacity ease 1.0s; 
    pointer-events: none;
}
.page-top .section-hero .hero-contents .tx-hero.is-active {
    opacity: 1;
    pointer-events: auto;
}
.page-top .section-hero .hero-contents .tx-hero.is-first img {
    display: inline-block;
    width: 69px;
    margin-top: 20px; 
    margin-right: 70px;
}
.page-top .section-hero .hero-contents .tx-hero.is-second {
    position: absolute;
    top: 65px;
    right: 30%;
    z-index: 100;
}
.page-top .section-hero .hero-contents .ttl-hero {
    display: none;
}
.page-top .section-hero .hero-panel {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 20; 
    display: none;
    max-width: 950px;
    width: 100%;
    margin: 0 auto;
}
.page-top .section-hero .hero-panel .hero-panel-standard {
    position: relative;
    right: 0; 
    width: 100%;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper {
    position: absolute;
    top: 0;
    right: 0;
    width: 241px;
    padding: 10px 0;
    background: url('../images/top/bg_hero_panel.png') repeat-y;
    text-align: center; 
    box-sizing: border-box;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-ttl {
    margin: 6px 0 12px;
    padding: 0 16px;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-ttl img {
    width: 100%;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-ribbon {
    position: relative;
    left: -20px;
    margin-bottom: 10px;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-button {
    margin-bottom: 16px;
    padding: 0 23px;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-button img {
    width: 100%;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-button a {
    display: block;
    margin-bottom: 6px;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-button a:hover {
    opacity: 0.7;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-button a:last-child {
    margin-bottom: 0;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-banner {
    position: relative;
    z-index: 100;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-banner a {
    display: block;
    margin-top: 6px;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-banner a:first-child {
    margin-top: 0;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .panel-banner a:hover {
    opacity: 0.7;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper:after {
    position: absolute;
    bottom: -30px;
    left: 0;
    display: block;
    width: 241px;
    height: 30px;
    background: url('../images/top/bg_hero_panel_after.png') repeat-y; 
    content: '';
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .border-item {
    position: relative;
    margin: 0 15px; 
    border-top: 2px solid #876843;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .border-item img {
    width: 100%;
}
.page-top .section-hero .hero-panel .hero-panel-standard .hero-panel-wrapper .border-item:before {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    border-top: 1px solid #fff;
    content: '';
}
.page-top .section-play {
    background: url('../images/top/bg_play.jpg') repeat;
}
.page-top .section-play .pc-contents {
    position: relative;
    z-index: 100; 
    display: block;
}
.page-top .section-play .pc-contents .app-buttons a {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
}
.page-top .section-play .pc-contents .app-buttons a:hover {
    opacity: 0.7;
}
.page-top .section-play .pc-contents img {
    width: 100%;
}
.page-top .section-play .sp-contents {
    position: relative;
    z-index: 100; 
    display: none;
}
.page-top .section-play .caption {
    position: relative;
    z-index: 100; 
    text-align: center;
}
.page-top .section-play .caption.is-app {
    margin-bottom: 25px;
}
.page-top .section-play .caption.is-browser {
    margin-bottom: 12px;
}
.page-top .section-play .app-link {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;

    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
}
.page-top .section-play .app-link .thumb-app {
    width: 23%;
}
.page-top .section-play .app-link .thumb-app img {
    width: 100%;
}
.page-top .section-play .app-link .button-app {
    width: 77%;
    padding-left: 10px;
    box-sizing: border-box;
}
.page-top .section-play .app-link .button-app img {
    width: 100%;
}
.page-top .section-play .tx-browser img {
    width: 100%;
    margin-top: 10px;
}
.page-top .section-banner {
    background: url('../images/top/bg_banner_sp.jpg') 0 0 repeat;
}
.page-top .section-banner .banner-list li {
    display: block;
    margin-top: 10px; 
    padding: 0 30px;
}
.page-top .section-banner .banner-list li:first-child {
    margin: 0;
}
.page-top .section-banner .banner-list li img {
    width: 100%;
}
.page-top .section-world {
    position: relative;
    background: #120501 url('../images/top/bg_world.png') center top no-repeat;
    background-size: cover;
    text-align: center;
}
.page-top .section-world .l_container {
    z-index: 50;
}
.page-top .section-world .content {
    position: relative;
    z-index: 50;
}
.page-top .section-world .lead {
    max-width: 684px;
    width: 100%;
    margin-bottom: 20px;
    padding: 0 10px;
}
.page-top .section-world .text {
    max-width: 864px;
    width: 100%;
    margin-bottom: 40px;
    padding: 0 10px;
}
.page-top .section-world .title {
    margin-bottom: 20px;
}
.page-top .section-world .button {
    margin-bottom: 20px;
}
.page-top .section-world .button .is-pcview {
    display: block;
    letter-spacing: -0.5em;
}
.page-top .section-world .button .is-pcview .c_image-button {
    display: inline-block;
    padding: 0 10px; 
    letter-spacing: normal;
}
.page-top .section-world .button .is-spview {
    display: none;
}
.page-top .section-world .movie-button {
    outline: none;
    border: none;
}
.page-top .section-world .movie-button img {
    width: 100%;
}
.page-top .section-news {
    background: url('../images/top/bg_news.jpg');
}
.page-top .section-news .timelines {
    position: relative;
    z-index: 100; 
    margin-top: 10px;
    padding: 10px 20px 30px;
    box-sizing: border-box;
}
.page-top .section-news .timelines .is-pc-only {
    display: none;
}
.page-top .section-news .timelines .item {
    position: relative;
    margin: 0 12px;
    background: #f5ecde; 
    box-shadow: 0 0 0 4px #3f2502 inset;
}
.page-top .section-news .timelines .head {
    position: relative; 
    display: block;
}
.page-top .section-news .timelines .head img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}
.page-top .section-news .timelines .head .twitter-follow-button {
    position: absolute !important;
    top: 10px;
    right: 10px;
}
.page-top .section-news .timelines .news {
    overflow-y: auto;
    height: 326px;
    font-family: 'メイリオ', Meiryo, 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', sans-serif;
}
.page-top .section-news .timelines .news .info {
    position: relative;
    padding: 10px;
    border-top: 1px dashed #50290c;
    text-align: left;
}
.page-top .section-news .timelines .news .info:first-child {
    border-top: none;
}
.page-top .section-news .timelines .news .title {
    position: relative;
    overflow: auto;
    width: 100%;
    margin-top: 10px; 
    margin-left: 0;
    text-overflow: inherit;
    white-space: inherit;
}
.page-top .section-news .timelines .news .date {
    display: block;
    text-align: right;
}
.page-top .section-news .timelines .timeline {
    position: relative;
    z-index: 100;
    padding: 0 24px 35px;
    background-size: 100%;
    text-align: center;
}
.page-top .section-news .timelines .buttons {
    position: absolute;
    bottom: -4%;
    width: 100%;
}
.page-top .section-news .timelines .reserve {
    margin: 75px 0;
}
.page-top .section-news .timelines .object-pen {
    position: absolute;
    right: -135px;
    bottom: -30px;
    z-index: 150;
}
.page-top .section-chara {
    position: relative;
    padding: 24px 0 0;
    background: url('../images/top/bg_chara.jpg') 0 0 repeat;
    text-align: center;
}
.page-top .section-chara .overflow-wrap {
    overflow: hidden;
    padding-bottom: 24px;
}
.page-top .section-chara .text {
    position: relative;
    z-index: 100;
}
.page-top .section-chara .charas {
    position: relative;
    z-index: 30;
}
.page-top .section-chara .chara {
    position: absolute;
    top: 24%;
    left: -2%;
    max-width: 1045px; 
    width: 120%;
}
.page-top .section-chara .button {
    position: relative;
    z-index: 100; 
    margin-top: 54%;
}
.page-top .section-staff {
    padding-bottom: 48px;
    background: url('../images/top/bg_staff.jpg') 0 0 repeat;
}
.page-top .section-staff .staff-item {
    position: relative;
    z-index: 40; 
    margin-top: -60px;
}
.page-top .section-staff .staff {
    padding-left: 20px;
    background: url('../images/common/bg_staff_line.png') 0 0 repeat-y;
}
.page-top .section-staff .staff > .title {
    margin-bottom: 12px;
}
.page-top .section-staff .staff > .text {
    font-size: 13px;
    line-height: 1.6;
}
.page-top .section-staff .news {
    position: relative;
    z-index: 10;
    overflow-y: auto; 
    height: 6em;
}
.page-top .section-staff .news .item {
    position: relative;
    padding: 10px 0;
    border-top: 1px dashed #50290c;
}
.page-top .section-staff .news .item:after {
    display: block;
    clear: both;
    content: '';
}
.page-top .section-staff .news .item:first-child {
    border-top: none;
}
.page-top .section-staff .news .text {
    margin-left: 12px;
}
.page-top .section-staff .news .title {
    position: absolute;
    display: block;
    display: inline-block;
    overflow: hidden;
    width: 77%;
    margin-left: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: bold;
}
.page-top .section-staff .news .date {
    display: inline-block;
    float: right;
    color: #7d614c;
    vertical-align: middle;
}
.page-top .section-staff .cast {
    max-width: 814px;
}
.page-top .section-staff .cast img {
    width: 100%;
}
.page-top .section-contact {
    position: relative;
    background: url('../images/top/bg_news.jpg') 0 0 repeat;
    text-align: center;
}
.page-top .section-contact:before {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    background: #fff9c9;
    background: rgba(255, 249, 201, 0.6);
    content: '';
}
.page-top .section-contact .title {
    max-width: 655px; 
    width: 100%;
    margin-bottom: 20px;
}
.page-top .object-flower-right {
    position: absolute;
    right: 0;
    z-index: 10;
}
.page-top .object-flower-left {
    position: absolute;
    left: 0;
    z-index: 10;
}
.page-top .section-campaign .object-flower-left:last-child {
    top: 1000px;
}
.page-top .section-campaign .object-flower-right {
    top: 400px;
}
.page-top .flex-component {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;

    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
.page-top .flex-component .order_world {
    -ms-flex-order: 1;

    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    order: 1;
}
.page-top .flex-component .order_campaign {
    -ms-flex-order: 2;

    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
    order: 2;
}

/* --- project _rule.scss --- */
.page-rule {
    padding: 0 10px;
    font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
}
.page-rule a {
    color: #c20000;
}
.page-rule a:hover {
    color: #f53333;
}
.page-rule ol {
    padding-left: 1.5em;
}
.page-rule hr {
    height: 1px;
    margin-bottom: 30px;
    border: none;
    background: #ad936f;
}
.page-rule .caption {
    margin: 0 0 20px;
    font-weight: bold; 
    font-size: 20px;
}
.page-rule .sub-caption {
    margin-bottom: 25px;
    font-weight: bold; 
    font-size: 15px;
}
.page-rule .lead {
    font-weight: bold; 
    font-size: 13px;
}
.page-rule .paragraph {
    margin-bottom: 25px;
    font-size: 13px;
}

/* --- project _special.scss --- */
.page-special {
    text-align: center;
}
.page-special .special-item {
    position: relative;
    z-index: 10;
    margin-bottom: 24px;
}
.page-special .special-item-inner {
    padding: 0 43px;
}
.page-special .panel-special {
    display: inline-block;
    margin-bottom: 20px;
    box-shadow: 3px 3px 7px rgba(42, 29, 0, 0.4); 
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.page-special .panel-special img {
    max-width: 820px;
    width: 100%;
    height: auto;
}
.page-special .panel-special:hover {
    background: #fff;
    opacity: 0.9;
}
.page-special .twitter-icon {
    margin-top: 40px;
}
.page-special .inner-twitter-icon {
    padding: 0 20px;
}
.page-special .icon-list li {
    margin-bottom: 20px;
}
.page-special .icon-list a {
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.page-special .icon-list a:hover {
    opacity: 0.7;
}
.page-special .icon-list img {
    width: 100%;
    height: auto;
}
.page-special .paragraph {
    position: relative;
    z-index: 10; 
    margin-bottom: 16px;
    text-align: left;
    font-size: 14px;
    font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
}
.page-special .paragraph a {
    color: #c50000;
    text-decoration: underline; 
    font-size: 16px;
}
.page-special .paragraph a:hover {
    color: #f83333;
    text-decoration: none;
}
.page-special .button {
    margin-bottom: 10px;
}
.page-special .button img {
    max-width: 319px;
}

/* --- project _system.scss --- */
.page-system .sensyo, .page-system .kaisou, .page-system .kyouka, .page-system .food, .page-system .letter {
    position: relative;
    margin-bottom: 50px;
    text-align: right;
}
.page-system .sensyo .system-title, .page-system .kaisou .system-title, .page-system .kyouka .system-title, .page-system .food .system-title, .page-system .letter .system-title {
    position: relative;
    z-index: 10; 
    max-width: 789px;
    width: 100%;
    height: auto;
    margin-bottom: -30px;
}
.page-system .sensyo .system-text, .page-system .kaisou .system-text, .page-system .kyouka .system-text, .page-system .food .system-text, .page-system .letter .system-text {
    position: relative;
    z-index: 10; 
    display: block;
    max-width: 752px;
    width: 100%;
    height: auto;
    margin: 0 auto;
}
.page-system .sensyo .system-chara, .page-system .kaisou .system-chara, .page-system .kyouka .system-chara, .page-system .food .system-chara, .page-system .letter .system-chara {
    position: absolute;
    top: -10%;
    left: -10%;
    width: 100%;
}

.page-system .kaisou {
    margin-bottom: 30px !important; 
    text-align: left;
}
.page-system .kaisou .system-title {
    max-width: 799px;
}
.page-system .kaisou .system-chara {
    top: -30px !important;
    right: -21%;
    left: auto !important;
    max-width: 655px; 
    width: 100%;
}

.page-system .kyouka {
    margin-bottom: 50px;
}
.page-system .kyouka .system-title {
    max-width: 772px;
}
.page-system .kyouka .system-chara {
    top: -20px;
    left: -9%;
    max-width: 500px;
    width: 80%;
}
.page-system .kyouka .system-title {
    margin-left: 10%;
}

.page-system .food {
    text-align: left;
}
.page-system .food .system-title {
    max-width: 750px;
}
.page-system .food .system-chara {
    top: -5px;
    right: -8%;
    left: auto;
    max-width: 429px;
    width: 68%;
}

.page-system .letter {
    margin-bottom: 20px !important;
}
.page-system .letter .system-title {
    max-width: 776px;
}
.page-system .letter .system-chara {
    top: 0;
    left: -8%;
    max-width: 437px;
    width: 65%;
}

.page-system .system-notice {
    position: relative;
    z-index: 10;
    text-align: right;
}

/* --- project _world.scss --- */
.page-world {
    text-align: center;
}
.page-world .story {
    padding: 40px 0 90px;
    background: url('../images/world/bg_story_pc.png') center center no-repeat;
    background-size: 100%;
}
.page-world .story .text {
    max-width: 572px;
    width: 100%;
    height: auto;
}
.page-world .chara {
    margin-bottom: 40px;
}
.page-world .keyword {
    margin-bottom: 40px;
}
.page-world .movie {
    padding-bottom: 20px;
}
.page-world .content-items {
    padding: 0 15px;
}
.page-world .content-items .item {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px dashed #a68d70;
}
.page-world .content-items .item:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
    box-shadow: none;
}
.page-world .content-items .lead {
    font-size: 23px;
    font-size: 2.3rem;
}
.page-world .content-items .paragraph {
    color: #78521c; 
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.7;
}
.page-world .chara-content {
    position: relative;
    text-align: left;
}
.page-world .chara-content .chara-text {
    position: relative;
    z-index: 10; 
    width: 100%;
}
.page-world .chara-content .kantyo {
    position: absolute;
    top: -10px;
    right: -15%;
    width: 65%;
}
.page-world .movie-item {
    display: block;
    margin-bottom: 20px;
}
.page-world .movie-item img {
    width: 100%;
}
.page-world a.movie-item {
    -webkit-transition: all 0.15s ease;
    transition: all 0.15s ease;
}
.page-world a.movie-item:hover {
    opacity: 0.7;
}

/* --- utility _margin.scss --- */
.mg-t5 {
    margin-top: 5px !important;
}

.mg-t10 {
    margin-top: 10px !important;
}

.mg-t20 {
    margin-top: 20px !important;
}

.mg-t30 {
    margin-top: 30px !important;
}

.mg-t40 {
    margin-top: 40px !important;
}

.mg-r5 {
    margin-right: 5px !important;
}

.mg-r10 {
    margin-right: 10px !important;
}

.mg-r20 {
    margin-right: 20px !important;
}

.mg-r30 {
    margin-right: 30px !important;
}

.mg-r40 {
    margin-right: 40px !important;
}

.mg-b5 {
    margin-bottom: 5px !important;
}

.mg-b10 {
    margin-bottom: 10px !important;
}

.mg-b15 {
    margin-bottom: 15px !important;
}

.mg-b20 {
    margin-bottom: 20px !important;
}

.mg-b25 {
    margin-bottom: 25px !important;
}

.mg-b30 {
    margin-bottom: 30px !important;
}

.mg-b35 {
    margin-bottom: 35px !important;
}

.mg-b40 {
    margin-bottom: 40px !important;
}

.mg-l5 {
    margin-left: 5px !important;
}

.mg-l10 {
    margin-left: 10px !important;
}

.mg-l20 {
    margin-left: 20px !important;
}

.mg-l30 {
    margin-left: 30px !important;
}

.mg-l40 {
    margin-left: 40px !important;
}

.mg-0auto {
    margin: 0 auto !important;
}

/* --- utility _padding.scss --- */
.pd-t5 {
    padding-top: 5px !important;
}

.pd-t10 {
    padding-top: 10px !important;
}

.pd-t20 {
    padding-top: 20px !important;
}

.pd-t30 {
    padding-top: 30px !important;
}

.pd-t40 {
    padding-top: 40px !important;
}

.pd-r5 {
    padding-right: 5px !important;
}

.pd-r10 {
    padding-right: 10px !important;
}

.pd-r20 {
    padding-right: 20px !important;
}

.pd-r30 {
    padding-right: 30px !important;
}

.pd-r40 {
    padding-right: 40px !important;
}

.pd-b5 {
    padding-bottom: 5px !important;
}

.pd-b10 {
    padding-bottom: 10px !important;
}

.pd-b15 {
    padding-bottom: 15px !important;
}

.pd-b20 {
    padding-bottom: 20px !important;
}

.pd-b25 {
    padding-bottom: 25px !important;
}

.pd-b30 {
    padding-bottom: 30px !important;
}

.pd-b35 {
    padding-bottom: 35px !important;
}

.pd-b40 {
    padding-bottom: 40px !important;
}

.pd-l5 {
    padding-left: 5px !important;
}

.pd-l10 {
    padding-left: 10px !important;
}

.pd-l20 {
    padding-left: 20px !important;
}

.pd-l30 {
    padding-left: 30px !important;
}

.pd-l40 {
    padding-left: 40px !important;
}

.pd-0auto {
    padding: 0 auto !important;
}

/* --- utility _text-align.scss --- */
.left {
    text-align: left !important;
}

.center {
    text-align: center !important;
}

.right {
    text-align: right !important;
}

@media screen {
    [hidden~='screen'] {
        display: inherit;
    }
    [hidden~='screen']:not(:active):not(:focus):not(:target) {
        position: absolute !important;
        clip: rect(0 0 0 0) !important;
    }
}

@media screen and (min-width: 1px) {
    html {
        font-size: 62.5%;
    }
    .grid-base-half {
        width: 50%;
        margin-right: 25%; 
        margin-left: 25%;
    }
    .grid-base-1 {
        width: 8.33333%;
        margin: 0;
    }
    .grid-base-2 {
        width: 16.66667%;
        margin: 0;
    }
    .grid-base-3 {
        width: 25%;
        margin: 0;
    }
    .grid-base-4 {
        width: 33.33333%;
        margin: 0;
    }
    .grid-base-5 {
        width: 41.66667%;
        margin: 0;
    }
    .grid-base-6 {
        width: 50%;
        margin: 0;
    }
    .grid-base-7 {
        width: 58.33333%;
        margin: 0;
    }
    .grid-base-8 {
        width: 66.66667%;
        margin: 0;
    }
    .grid-base-9 {
        width: 75%;
        margin: 0;
    }
    .grid-base-10 {
        width: 83.33333%;
        margin: 0;
    }
    .grid-base-11 {
        width: 91.66667%;
        margin: 0;
    }
    .grid-base-12 {
        width: 100%;
        margin: 0;
    }
    .grid-base-offset-1 {
        margin-left: 8.33333%;
    }
    .grid-base-offset-2 {
        margin-left: 16.66667%;
    }
    .grid-base-offset-3 {
        margin-left: 25%;
    }
    .grid-base-offset-4 {
        margin-left: 33.33333%;
    }
    .grid-base-offset-5 {
        margin-left: 41.66667%;
    }
    .grid-base-offset-6 {
        margin-left: 50%;
    }
    .grid-base-offset-7 {
        margin-left: 58.33333%;
    }
    .grid-base-offset-8 {
        margin-left: 66.66667%;
    }
    .grid-base-offset-9 {
        margin-left: 75%;
    }
    .grid-base-offset-10 {
        margin-left: 83.33333%;
    }
    .grid-base-offset-11 {
        margin-left: 91.66667%;
    }
    .grid-base-offset-12 {
        margin-left: 100%;
    }
}

@media screen and (max-width: 960px) {
    .grid-xl-half {
        width: 50%;
        margin-right: 25%; 
        margin-left: 25%;
    }
    .grid-xl-1 {
        width: 8.33333%;
        margin: 0;
    }
    .grid-xl-2 {
        width: 16.66667%;
        margin: 0;
    }
    .grid-xl-3 {
        width: 25%;
        margin: 0;
    }
    .grid-xl-4 {
        width: 33.33333%;
        margin: 0;
    }
    .grid-xl-5 {
        width: 41.66667%;
        margin: 0;
    }
    .grid-xl-6 {
        width: 50%;
        margin: 0;
    }
    .grid-xl-7 {
        width: 58.33333%;
        margin: 0;
    }
    .grid-xl-8 {
        width: 66.66667%;
        margin: 0;
    }
    .grid-xl-9 {
        width: 75%;
        margin: 0;
    }
    .grid-xl-10 {
        width: 83.33333%;
        margin: 0;
    }
    .grid-xl-11 {
        width: 91.66667%;
        margin: 0;
    }
    .grid-xl-12 {
        width: 100%;
        margin: 0;
    }
    .grid-xl-offset-1 {
        margin-left: 8.33333%;
    }
    .grid-xl-offset-2 {
        margin-left: 16.66667%;
    }
    .grid-xl-offset-3 {
        margin-left: 25%;
    }
    .grid-xl-offset-4 {
        margin-left: 33.33333%;
    }
    .grid-xl-offset-5 {
        margin-left: 41.66667%;
    }
    .grid-xl-offset-6 {
        margin-left: 50%;
    }
    .grid-xl-offset-7 {
        margin-left: 58.33333%;
    }
    .grid-xl-offset-8 {
        margin-left: 66.66667%;
    }
    .grid-xl-offset-9 {
        margin-left: 75%;
    }
    .grid-xl-offset-10 {
        margin-left: 83.33333%;
    }
    .grid-xl-offset-11 {
        margin-left: 91.66667%;
    }
    .grid-xl-offset-12 {
        margin-left: 100%;
    }
    .c_fill-box {
        padding: 0 10px;
    }
    .c_global-navi .sns {
        display: none;
    }
    .c_rotation-banner {
        padding: 0 48px 24px;
    }
    .c_rotation-banner .controller .prev, .c_rotation-banner .controller .next {
        left: 10px;
    }
    .c_rotation-banner .controller .next {
        right: 10px; 
        left: auto;
    }
    .page-chara .obj-flower {
        right: 2.1%;
    }
    .page-top .section-staff .news {
        height: 15.5em;
    }
    .page-top .section-staff .news .title {
        position: relative;
        overflow: auto;
        width: 100%;
        margin-left: 0;
        text-overflow: inherit;
        white-space: inherit;
    }
    .page-system .kyouka .system-title {
        margin-left: 3%;
    }
}

@media screen and (max-width: 768px) {
    .grid-l-half {
        width: 50%;
        margin-right: 25%; 
        margin-left: 25%;
    }
    .grid-l-1 {
        width: 8.33333%;
        margin: 0;
    }
    .grid-l-2 {
        width: 16.66667%;
        margin: 0;
    }
    .grid-l-3 {
        width: 25%;
        margin: 0;
    }
    .grid-l-4 {
        width: 33.33333%;
        margin: 0;
    }
    .grid-l-5 {
        width: 41.66667%;
        margin: 0;
    }
    .grid-l-6 {
        width: 50%;
        margin: 0;
    }
    .grid-l-7 {
        width: 58.33333%;
        margin: 0;
    }
    .grid-l-8 {
        width: 66.66667%;
        margin: 0;
    }
    .grid-l-9 {
        width: 75%;
        margin: 0;
    }
    .grid-l-10 {
        width: 83.33333%;
        margin: 0;
    }
    .grid-l-11 {
        width: 91.66667%;
        margin: 0;
    }
    .grid-l-12 {
        width: 100%;
        margin: 0;
    }
    .grid-l-offset-1 {
        margin-left: 8.33333%;
    }
    .grid-l-offset-2 {
        margin-left: 16.66667%;
    }
    .grid-l-offset-3 {
        margin-left: 25%;
    }
    .grid-l-offset-4 {
        margin-left: 33.33333%;
    }
    .grid-l-offset-5 {
        margin-left: 41.66667%;
    }
    .grid-l-offset-6 {
        margin-left: 50%;
    }
    .grid-l-offset-7 {
        margin-left: 58.33333%;
    }
    .grid-l-offset-8 {
        margin-left: 66.66667%;
    }
    .grid-l-offset-9 {
        margin-left: 75%;
    }
    .grid-l-offset-10 {
        margin-left: 83.33333%;
    }
    .grid-l-offset-11 {
        margin-left: 91.66667%;
    }
    .grid-l-offset-12 {
        margin-left: 100%;
    }
    .l_footer .footer-inner {
        padding: 0;
        border: none;
    }
    .l_footer .footer-upper {
        display: block;
    }
    .l_footer .game-description {
        margin-bottom: 12px;
        padding: 0 6px;
        text-align: center;
    }
    .l_footer .game-description .footer-gamelogo {
        display: inline-block;
        width: auto;
    }
    .l_footer .game-description .descriptions {
        width: auto;
        margin-bottom: 20px;
    }
    .l_footer .game-description .app-buttons {
        width: 60%;
        margin: 0 auto;
    }
    .l_footer .game-description .app-buttons .app-button-item {
        float: left;
        width: 50%;
        margin-top: 0;
        text-align: center;
    }
    .l_footer .game-description .app-buttons .app-button-item .app-text {
        display: none;
    }
    .l_footer .game-description .app-buttons .button {
        width: 100%;
        padding: 0 12px;
        box-sizing: border-box;
    }
    .l_footer .game-description .app-buttons .qrcode {
        display: none;
    }
    .l_footer .dmm-description {
        text-align: center;
    }
    .l_footer .dmm-description .sns {
        margin-top: 20px;
        text-align: center;
    }
    .l_footer .dmm-description .logo {
        display: block;
        width: 100%;
        margin-bottom: 12px;
        text-align: center;
    }
    .l_footer .dmm-description .sublinks {
        display: block;
        width: 100%;
        text-align: center;
    }
    .c_button-more {
        font-size: 14px;
    }
    .c_global-navi .navi.is-pc {
        display: none;
    }
    .c_global-navi .navi.is-sp {
        display: block;
    }
    .c_head {
        margin-top: 0;
        margin-bottom: 12px;
        padding: 0 8%;
    }
    .c_head > .logo {
        position: relative;
        top: 0;
        left: 0;
        display: inline-block;
        width: 49%;
        vertical-align: middle;
    }
    .c_head > .caption {
        display: inline-block;
        width: 50%;
        vertical-align: middle;
    }
    .c_image-button a .button-active, .c_image-button span .button-active {
        display: none !important;
    }
    .c_image-button.is-follow img {
        max-width: 70%;
    }
    .c_image-button.is-contact img {
        max-width: 70%;
    }
    .c_image-button.is-gear .gear-left01 {
        top: -45%;
        left: 5%;
        width: 30%;
    }
    .c_image-button.is-gear .gear-left02 {
        top: 5%;
        left: -3%;
        width: 20%;
    }
    .c_image-button.is-gear .gear-left03 {
        top: 30%;
        left: 25%;
        width: 20%;
    }
    .c_image-button.is-gear .gear-left04 {
        top: -20%;
        left: 25%;
        width: 20%;
    }
    .c_image-button.is-gear .gear-left05 {
        top: 15%;
        left: 10%;
        width: 25%;
    }
    .c_image-button.is-gear .gear-right01 {
        top: 10%;
        right: 20%;
        width: 25%;
    }
    .c_image-button.is-gear .gear-right02 {
        top: -30%;
        right: -2%;
        width: 34%;
    }
    .c_image-button.is-gear .gear-right03 {
        top: 30%;
        right: 15%;
        width: 20%;
    }
    .c_image-button.is-gear .gear-right04 {
        top: -20%;
        right: 30%;
        width: 20%;
    }
    .c_image-button.is-gear .gear-right05 {
        top: -40%;
        right: 0;
        width: 20%;
    }
    .c_image-button.is-gear .gear-right06 {
        top: -40%;
        right: 15%;
        width: 25%;
    }
    .c_image-caption img {
        width: 60%;
        height: auto;
    }
    .c_image-caption.is-info img {
        max-width: 373px;
    }
    .c_image-caption.is-world img {
        max-width: 332px;
    }
    .c_image-caption.is-game img {
        max-width: 332px;
    }
    .c_image-caption.is-chara img {
        max-width: 238px;
    }
    .c_image-caption.is-staff img {
        max-width: 378px;
        width: 70%;
    }
    .c_image-caption.is-news img {
        max-width: 273px;
    }
    .c_image-caption.is-cast img {
        max-width: 313px;
    }
    .c_list.is-sp-flat .list-item {
        width: 100%;
    }
    .c_loader img {
        max-width: 463px;
        width: 70%;
    }
    .c_notice .big-lead {
        font-size: 16px;
    }
    .c_notice .sub-lead {
        font-size: 12px;
    }
    .c_notice .sub-lead span {
        font-size: 10px;
    }
    .c_notice .data-head {
        margin-bottom: 6px;
        font-size: 16px; 
        line-height: 1.3;
    }
    .c_notice .data-head.is-inline {
        min-width: 6em;
    }
    .c_notice .paragraph {
        font-size: 12px;
    }
    .c_popup .controller .prev, .c_popup .c_rotation-banner .controller .next, .c_rotation-banner .c_popup .controller .next {
        left: 16% !important;
    }
    .c_popup .controller .next {
        right: 16% !important;
    }
    .page-chara .error {
        font-size: 14px;
    }
    .page-chara .chara-list .item {
        margin-bottom: 8px;
    }
    .page-chara .text-top {
        max-width: 665px;
    }
    .page-chara .text-bottom {
        max-width: 650px;
    }
    .page-chara .subchara {
        max-width: 661px;
    }
    .page-chara .obj-flower {
        right: 2.7%;
    }
    .page-news .error {
        font-size: 14px;
    }
    .page-news .navi-news {
        max-width: 630px;
    }
    .page-news .news-wrap {
        padding: 10px;
    }
    .page-news .news-header .main {
        font-size: 16px;
        line-height: 1.3;
    }
    .page-top .section-play .pc-contents {
        display: none;
    }
    .page-top .section-play .sp-contents {
        display: block;
    }
    .page-top .section-world .lead {
        max-width: 663px;
        width: 90%;
        height: auto;
        padding: 0;
    }
    .page-top .section-world .text {
        max-width: 663px;
        width: 90%;
        height: auto;
        padding: 0;
    }
    .page-top .section-world .title {
        max-width: 715px;
        width: 95%;
        height: auto;
    }
    .page-top .section-world .button {
        margin-bottom: 0;
    }
    .page-top .section-world .button .is-pcview {
        display: none;
    }
    .page-top .section-world .button .is-spview {
        display: block;
    }
    .page-top .section-world .button img {
        max-width: 319px;
        height: auto;
    }
    .page-top .section-chara .text {
        max-width: 606px;
        width: 90%;
        height: auto;
    }
    .page-top .section-chara .chara {
        top: 23%;
        left: -13%;
        max-width: 1080px; 
        width: 140%;
    }
    .page-top .section-chara .button {
        margin-top: 95%;
    }
    .page-top .section-chara .button img {
        max-width: 319px;
        height: auto;
    }
    .page-top .section-staff .staff > .title.is-staff01 img {
        width: 132px;
    }
    .page-top .section-staff .staff > .title.is-staff02 img {
        width: 104px;
    }
    .page-top .section-staff .staff {
        margin: 10px 0;
    }
    .page-top .section-contact .title {
        max-width: 670px; 
        width: 90%;
    }
    .page-top .flex-component .order_world {
        -ms-flex-order: 2;

        -webkit-box-ordinal-group: 3;
        -webkit-order: 2;
        order: 2;
    }
    .page-top .flex-component .order_campaign {
        -ms-flex-order: 1;

        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
        order: 1;
    }
    .page-special .special-item-inner {
        padding: 0 12px;
    }
    .page-special .inner-twitter-icon {
        padding: 0 10px;
    }
    .page-system .sensyo, .page-system .kaisou, .page-system .kyouka, .page-system .food, .page-system .letter {
        margin-bottom: 40px;
    }
    .page-system .sensyo .system-title, .page-system .kaisou .system-title, .page-system .kyouka .system-title, .page-system .food .system-title, .page-system .letter .system-title {
        margin-bottom: -10px;
    }
    .page-system .system-notice img {
        width: 144px;
    }
    .page-world .story {
        padding: 40px 5% 40px; 
        background: url('../images/world/bg_story_sp.png') center center no-repeat;
        background-size: 100%;
    }
}

@media screen and (max-width: 600px) {
    .grid-m-half {
        width: 50%;
        margin-right: 25%; 
        margin-left: 25%;
    }
    .grid-m-1 {
        width: 8.33333%;
        margin: 0;
    }
    .grid-m-2 {
        width: 16.66667%;
        margin: 0;
    }
    .grid-m-3 {
        width: 25%;
        margin: 0;
    }
    .grid-m-4 {
        width: 33.33333%;
        margin: 0;
    }
    .grid-m-5 {
        width: 41.66667%;
        margin: 0;
    }
    .grid-m-6 {
        width: 50%;
        margin: 0;
    }
    .grid-m-7 {
        width: 58.33333%;
        margin: 0;
    }
    .grid-m-8 {
        width: 66.66667%;
        margin: 0;
    }
    .grid-m-9 {
        width: 75%;
        margin: 0;
    }
    .grid-m-10 {
        width: 83.33333%;
        margin: 0;
    }
    .grid-m-11 {
        width: 91.66667%;
        margin: 0;
    }
    .grid-m-12 {
        width: 100%;
        margin: 0;
    }
    .grid-m-offset-1 {
        margin-left: 8.33333%;
    }
    .grid-m-offset-2 {
        margin-left: 16.66667%;
    }
    .grid-m-offset-3 {
        margin-left: 25%;
    }
    .grid-m-offset-4 {
        margin-left: 33.33333%;
    }
    .grid-m-offset-5 {
        margin-left: 41.66667%;
    }
    .grid-m-offset-6 {
        margin-left: 50%;
    }
    .grid-m-offset-7 {
        margin-left: 58.33333%;
    }
    .grid-m-offset-8 {
        margin-left: 66.66667%;
    }
    .grid-m-offset-9 {
        margin-left: 75%;
    }
    .grid-m-offset-10 {
        margin-left: 83.33333%;
    }
    .grid-m-offset-11 {
        margin-left: 91.66667%;
    }
    .grid-m-offset-12 {
        margin-left: 100%;
    }
    .l_footer .game-description .footer-gamelogo {
        display: block;
        max-width: 200px; 
        width: 100%;
        margin: 0 auto 12px;
    }
    .l_footer .game-description .descriptions {
        width: 90%;
        margin: 0 auto 20px;
    }
    .l_footer .game-description .gametitle {
        text-align: center;
    }
    .l_footer .game-description .outlines {
        margin: 0 auto;
    }
    .l_footer .game-description .app-buttons {
        width: 90%;
        margin: 0 auto;
    }
    .c_fill-box.is-no-caption .content {
        padding: 0 10px;
    }
    .c_fill-box.is-caption .head {
        margin-bottom: -20px;
    }
    .c_fill-box .content {
        padding: 10% 30px 5%;
    }
    .c_fill-box .head {
        margin-bottom: -12px;
    }
    .c_fill-box .bottom {
        margin-top: -30px;
    }
    .c_popup .controller .prev, .c_popup .c_rotation-banner .controller .next, .c_rotation-banner .c_popup .controller .next {
        left: 0 !important; 
        width: 9%;
    }
    .c_popup .controller .next {
        right: 0 !important; 
        width: 9%;
    }
    .c_popup .button-close {
        top: -5%;
        right: 1%;
    }
    .page-chara .obj-flower {
        right: 2.5%;
    }
    .page-top .section-world .button {
        margin-bottom: 0;
    }
    .page-top .section-world .button img {
        max-width: 319px;
        width: 80%;
    }
    .page-top .section-news .timelines {
        padding-bottom: 0;
    }
    .page-top .section-news .timelines .item {
        margin-bottom: 50px;
        padding-bottom: 0;
    }
    .page-top .section-news .timelines .reserve {
        width: 10%;
        margin: 0;
        padding: 80px 0;
    }
    .page-top .section-chara .button {
        margin-top: 95%;
    }
    .page-top .section-chara .button img {
        max-width: 319px;
        width: 80%;
    }
    .page-top .section-staff .staff-item {
        margin-top: -15%;
    }
    .page-special .button img {
        position: relative; 
        max-width: 240px;
        width: 80%;
    }
}

@media screen and (max-width: 480px) {
    .grid-s-half {
        width: 50%;
        margin-right: 25%; 
        margin-left: 25%;
    }
    .grid-s-1 {
        width: 8.33333%;
        margin: 0;
    }
    .grid-s-2 {
        width: 16.66667%;
        margin: 0;
    }
    .grid-s-3 {
        width: 25%;
        margin: 0;
    }
    .grid-s-4 {
        width: 33.33333%;
        margin: 0;
    }
    .grid-s-5 {
        width: 41.66667%;
        margin: 0;
    }
    .grid-s-6 {
        width: 50%;
        margin: 0;
    }
    .grid-s-7 {
        width: 58.33333%;
        margin: 0;
    }
    .grid-s-8 {
        width: 66.66667%;
        margin: 0;
    }
    .grid-s-9 {
        width: 75%;
        margin: 0;
    }
    .grid-s-10 {
        width: 83.33333%;
        margin: 0;
    }
    .grid-s-11 {
        width: 91.66667%;
        margin: 0;
    }
    .grid-s-12 {
        width: 100%;
        margin: 0;
    }
    .grid-s-offset-1 {
        margin-left: 8.33333%;
    }
    .grid-s-offset-2 {
        margin-left: 16.66667%;
    }
    .grid-s-offset-3 {
        margin-left: 25%;
    }
    .grid-s-offset-4 {
        margin-left: 33.33333%;
    }
    .grid-s-offset-5 {
        margin-left: 41.66667%;
    }
    .grid-s-offset-6 {
        margin-left: 50%;
    }
    .grid-s-offset-7 {
        margin-left: 58.33333%;
    }
    .grid-s-offset-8 {
        margin-left: 66.66667%;
    }
    .grid-s-offset-9 {
        margin-left: 75%;
    }
    .grid-s-offset-10 {
        margin-left: 83.33333%;
    }
    .grid-s-offset-11 {
        margin-left: 91.66667%;
    }
    .grid-s-offset-12 {
        margin-left: 100%;
    }
    .page-chara .obj-flower {
        right: 3.5%;
        max-width: 136px;
    }
}

@media screen and (max-width: 900px) {
    .l_container {
        width: 100%;
        padding: 0;
    }
    .c_wrapper-movie.is-full {
        width: 100%;
        padding-bottom: 56%;
    }
    .page-top .section-play {
        padding: 24px;
    }
    .page-top .section-news .timelines .object-pen {
        display: none;
    }
}

@media screen and (min-width: 768px) {
    .l_page .page-inner {
        padding: 20px 0 36px;
        background-size: 1020px auto;
    }
    .c_image-button.is-gear {
        width: auto;
    }
    .c_image-button.is-gear img {
        width: auto;
    }
    .c_popup .button-voice {
        top: 23.5%;
        right: 8%;
        max-width: auto; 
        width: 74px;
    }
    .page-chara .niconico-bnr {
        padding: 3% 6%;
    }
    .page-rule .caption {
        margin: 10px 0 30px;
        font-size: 25px;
    }
    .page-rule .sub-caption {
        font-size: 18px;
    }
    .page-rule .lead {
        font-size: 14px;
    }
    .page-rule .paragraph {
        margin-bottom: 40px;
        font-size: 14px;
    }
    .page-system .sensyo .system-chara, .page-system .kaisou .system-chara, .page-system .kyouka .system-chara, .page-system .food .system-chara, .page-system .letter .system-chara {
        top: -30%;
        left: -220px;
        width: auto;
    }
    .page-system .kyouka .system-chara {
        top: -1%;
        left: -9%;
        max-width: 500px;
    }
    .page-system .food .system-chara {
        top: 0;
        right: -12%;
        left: auto;
        max-width: 537px;
    }
    .page-system .letter .system-chara {
        top: -1%;
        left: -18%;
        max-width: 575px;
    }
    .page-world .chara {
        margin-bottom: 80px;
    }
    .page-world .keyword {
        margin-bottom: 80px;
    }
    .page-world .content-items {
        padding: 0 30px;
    }
    .page-world .content-items .item {
        letter-spacing: -0.4em;
    }
    .page-world .content-items .lead {
        display: inline-block;
        width: 30%;
        vertical-align: middle;
        text-align: left;
        letter-spacing: normal;
    }
    .page-world .content-items .paragraph {
        display: inline-block;
        width: 70%;
        vertical-align: middle;
        text-align: left;
        letter-spacing: normal;
    }
    .page-world .chara-content .chara-text {
        max-width: 578px;
        width: 80%;
    }
    .page-world .chara-content .kantyo {
        top: 0;
        right: -13%;
        width: auto;
    }
}

@media screen and (min-width: 1020px) {
    .l_page .page-inner {
        padding: 20px 0 48px;
        background-size: 100% auto;
    }
}

@media screen and (min-width: 769px) {
    .l_section.is-spview {
        display: none;
    }
    .page-top .section-hero .background-item {
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        transform: translateX(-50%);
    }
    .page-top .section-hero .hero-panel {
        display: block;
    }
}

@media screen and (max-width: 320px) {
    .c_image-button a, .c_image-button span {
        display: block;
    }
}

@media screen and (max-width: 1020px) {
    .c_popup .controller .prev, .c_popup .c_rotation-banner .controller .next, .c_rotation-banner .c_popup .controller .next {
        left: 0;
    }
    .c_popup .controller .next {
        right: 0;
    }
    .page-top .object-flower-right {
        display: none;
    }
    .page-top .object-flower-left {
        display: none;
    }
}

@media screen and (min-width: 600px) and (max-width: 767px) {
    .c_popup .button-voice {
        top: auto;
        right: 16%;
        bottom: 7%;
        max-width: 224px;
        width: 26%;
    }
}

@media screen and (min-width: 1201px) and (max-width: 1600px) {
    .c_popup .button-close {
        top: -40px;
        right: 15%;
    }
}

@media screen and (min-width: 1021px) and (max-width: 1200px) {
    .c_popup .button-close {
        top: -30px;
        right: 15%;
    }
}

@media screen and (min-width: 961px) and (max-width: 1020px) {
    .c_popup .button-close {
        top: -30px;
        right: 5%;
    }
}

@media screen and (min-width: 769px) and (max-width: 960px) {
    .c_popup .button-close {
        top: -30px;
        right: 1%;
    }
}

@media screen and (min-width: 601px) and (max-width: 768px) {
    .c_popup .button-close {
        top: -5%;
        right: 20%;
    }
}

@media screen and (min-width: 600px) {
    .page-chara .filter-contents .filter-item {
        margin-top: 0;
    }
    .page-chara .filter-contents .category img {
        max-width: 276px;
    }
    .page-chara .filter-contents .filters {
        max-width: 276px;
    }
    .page-top .section-news .timelines .is-pc-only {
        display: block;
    }
}

@media screen and (min-width: 1px) and (max-width: 768px) {
    .page-top .section-hero .background-item {
        left: auto;
        width: 100%;
    }
    .page-top .section-hero .bg_chara {
        width: 100%;
    }
    .page-top .section-hero .rotation-controller {
        width: 134px;
        height: 25px;
        background: url('../images/top/bg_dot_sp.png') no-repeat;
        background-size: contain;
    }
    .page-top .section-hero .rotation-controller .bgDots-item {
        width: 13px;
        height: 13px;
        background: url('../images/top/dot_sp.png') no-repeat;
        background-size: cover;
    }
    .page-top .section-hero .hero-contents {
        height: 100%;
    }
    .page-top .section-hero .hero-contents .tx-hero.is-first {
        width: 100%;
    }
    .page-top .section-hero .hero-contents .tx-hero.is-first img {
        width: 10%;
        margin-right: 0;
    }
    .page-top .section-hero .hero-contents .tx-hero.is-second {
        top: 20px;
        right: 1%;
        width: 100%;
        text-align: right;
    }
    .page-top .section-hero .hero-contents .tx-hero.is-second img {
        width: 60%;
    }
    .page-top .section-hero .hero-contents .ttl-hero {
        position: absolute;
        right: 0;
        bottom: 40px;
        left: 0;
        display: block;
        width: 100%;
        margin: 0;
        padding: 0 50px;
        box-sizing: border-box;
    }
    .page-top .section-hero .hero-contents .ttl-hero img {
        width: 100%;
    }
}

@media screen and (min-width: 769px) and (max-width: 1200px) {
    .page-top .section-hero .hero-contents .tx-hero.is-first {
        margin-right: 100px;
    }
}

@media screen and (min-width: 1200px) {
    .page-top .section-hero .hero-contents .tx-hero.is-second {
        right: 35%;
    }
    .page-top .section-hero .hero-panel .hero-panel-standard {
        right: -100px;
    }
}

@media screen and (min-width: 960px) {
    .page-system .sensyo .system-chara, .page-system .kaisou .system-chara, .page-system .kyouka .system-chara, .page-system .food .system-chara, .page-system .letter .system-chara {
        top: -28%;
        left: -22%;
        max-width: 951px;
        width: auto;
    }
    .page-system .kaisou .system-chara {
        top: -3%;
        right: -14%;
        left: auto;
        max-width: 655px;
    }
    .page-system .kyouka .system-chara {
        top: -2%;
        left: -4%;
        max-width: 500px;
    }
    .page-system .food .system-chara {
        top: 0;
        right: -35px;
        left: auto;
        max-width: 537px;
    }
    .page-system .letter .system-chara {
        top: 0;
        left: -8%;
        max-width: 575px;
    }
    .page-world .chara-content .chara-text {
        width: auto;
    }
}
