@charset "UTF-8";

html,
body,
p,
h1,
h2,
h3,
h4,
ul,
ol {
    margin: 0;
    padding: 0;
}

* {
    box-sizing: border-box;
}

body {
    min-width: 960px;
    background-attachment: fixed;
    background-image: url(/v2/img/static_page/media/daraketai/kv_bg.png);
    background-position: center;
    background-size: cover;
    color: #454545;
    font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
    font-size: 16px;
    line-height: 1;
    text-size-adjust: 100%;
}

img {
    max-width: 100%;
    max-height: 100%;
    vertical-align: top;
}

.icon:before {
    display: inline-block;
    margin-right: 3px;
    color: #999999;
    font-family: 'FontAwesome';
}

a.arrow:before {
    content: '\f0a9';
}

a:hover {
    opacity: 0.8;
}

.break {
    display: none;
}

.button {
    display: inline-block;
    width: 246px;
    height: 40px;
    padding: 11px;
    background-image: linear-gradient(to bottom, #5fc647, #1f9a1f);
    box-shadow: 1px 1px 4px 0 rgba(0, 0, 0, 0.16);
    color: #ffffff;
    font-size: 18px;
    font-weight: bold;
    text-decoration: none;
}

.button:hover {
    opacity: 0.8;
}

.button--amazon {
    width: 270px;
    border: solid 1px #ff7600;
    border-radius: 3px;
    background-image: linear-gradient(to bottom, #ffad3e, #ea911a 58%, #db7d00);
    box-shadow: 1px 1px 4px 0 rgba(0, 0, 0, 0.16), inset 1px 1px 2px 0 #ffdb14;
    text-align: center;
}

.buttons {
    display: flex;
    justify-content: center;
    gap: 16px;
    text-align: center;
}

.float-character {
    display: block;
    position: fixed;
    z-index: 4;
    width: 100%;
    min-width: 1280px;
    pointer-events: none;
}

.float-character__image {
    position: fixed;
    top: calc(100vw / 1280 * 110);
    left: calc(100vw / 1280 * 51);
    width: calc(100vw / 1280 * 205);
    min-width: 205px;
    height: calc(100vw / 1280 * 252);
    min-height: 252px;
    animation: floating 3s ease-in-out infinite alternate;
}

@keyframes floating {

    0%,
    100% {
        transform: translate(0, 0);
    }

    50% {
        transform: translate(0, -10px);
    }
}

.float-character__image--kohaku {
    top: calc(100vw / 1280 * 361);
    left: calc(100vw / 1280 * 215);
    width: calc(100vw / 1280 * 82);
    min-width: 82px;
    height: calc(100vw / 1280 * 82);
    min-height: 82px;
    animation-duration: 4s;
    animation-delay: 0.5s;
}

.float-character__image--hotaru {
    top: calc(100vw / 1280 * 452);
    left: calc(100vw / 1280 * 98);
    width: calc(100vw / 1280 * 96);
    min-width: 96px;
    height: calc(100vw / 1280 * 92);
    min-height: 92px;
}

.float-character__image--zakuro {
    top: calc(100vw / 1280 * 588);
    left: calc(100vw / 1280 * 174);
    width: calc(100vw / 1280 * 69);
    min-width: 69px;
    height: calc(100vw / 1280 * 59);
    min-height: 59px;
    animation-duration: 4s;
    animation-delay: 0.5s;
}

.float-character__image--ruri {
    top: calc(100vw / 1280 * 186);
    right: calc(100vw / 1280 * 217);
    left: unset;
    width: calc(100vw / 1280 * 79);
    min-width: 79px;
    height: calc(100vw / 1280 * 73);
    min-height: 73px;
}

.float-character__image--tenga {
    top: calc(100vw / 1280 * 253);
    right: calc(100vw / 1280 * 81);
    left: unset;
    width: calc(100vw / 1280 * 161);
    min-width: 161px;
    height: calc(100vw / 1280 * 156);
    min-height: 156px;
    animation-duration: 4s;
    animation-delay: 0.5s;
}

.float-character__image--randou {
    top: calc(100vw / 1280 * 402);
    right: calc(100vw / 1280 * 204);
    left: unset;
    width: calc(100vw / 1280 * 71);
    min-width: 71px;
    height: calc(100vw / 1280 * 86);
    min-height: 86px;
}

.float-character__image--kokuyou {
    top: calc(100vw / 1280 * 493);
    right: calc(100vw / 1280 * 108);
    left: unset;
    width: calc(100vw / 1280 * 167);
    min-width: 167px;
    height: calc(100vw / 1280 * 124);
    min-height: 124px;
    animation-duration: 4s;
    animation-delay: 0.5s;
}

.nav {
    position: relative;
    top: 0;
    right: 0;
    width: 100%;
    min-width: 1280px;
    padding: 9px 0 24px calc(100vw / 1280 * 332);
    animation-delay: 2s;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
    white-space: nowrap;
}

.nav--menu {
    padding-left: 0;
}

.nav__link {
    display: inline-block;
    position: relative;
    z-index: 11;
    width: 96px;
    height: 43px;
    padding: 0 8px;
    transform-style: preserve-3d;
    transition: transform 0.7s;
    color: #5d3111;
    font-size: 14px;
    font-weight: bold;
    line-height: 1em;
    text-align: center;
    text-decoration: none;
    vertical-align: bottom;
}

.nav__link:hover {
    transform: rotateY(180deg);
    opacity: 1;
}

.nav__link--character {
    width: 138px;
}

.nav__link--special {
    width: 100px;
}

.nav__link--book {
    width: 85px;
}

.nav__link--message {
    width: 112px;
    margin-right: 8px;
}

.nav__link--news {
    width: 86px;
}

.nav__image {
    display: block;
    position: absolute;
    left: 0;
    width: 100%;
    backface-visibility: hidden;
}

.nav__image:last-of-type {
    transform: rotateY(180deg);
}

.sns-buttons {
    display: inline-block;
    position: relative;
    z-index: 11;
    vertical-align: bottom;
}

.x-share,
.facebook-share {
    margin-right: 6px;
}

.x-share,
.facebook-share,
.line-share {
    width: 23px;
    height: 23px;
}

.kv {
    position: relative;
    z-index: 5;
    width: 100%;
    min-width: 1280px;
    height: calc(100vw / 1280 * 800);
    min-height: 800px;
    background: url('/v2/img/static_page/media/daraketai/kv_bg.png') no-repeat;
    background-size: cover;
}

.kv__title {
    position: absolute;
    z-index: 3;
    top: calc(100vw / 1280 * 98);
    left: calc(50% - (100vw / 1280 * 225));
    width: calc(100vw / 1280 * 451);
    min-width: 451px;
    height: calc(100vw / 1280 * 172);
    min-height: 172px;
    animation: fadeInMove 1s cubic-bezier(0.25, 1, 0.5, 1);
    animation-delay: 1.5s;
    opacity: 0;
    animation-fill-mode: forwards;
}

.kv__link:hover {
    opacity: 1;
}

@keyframes fadeInMove {

    0%,
    25%,
    75% {
        transform: scale(0.5);
    }

    0%,
    25%,
    75% {
        transform: scale(1);
    }

    50% {
        transform: scale(0.95);
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

.kv__main {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    min-width: 1280px;
    height: calc(100vw / 1280 * 800);
    min-height: 800px;
    animation-duration: 2s;
    animation-delay: 0s;
    pointer-events: none;
}

.kv__hisui {
    position: absolute;
    top: calc(100vw / 1280 * 58);
    right: 0;
    width: calc(100vw / 1280 * 881);
    min-width: 881px;
    height: calc(100vw / 1280 * 722);
    min-height: 722px;
    animation-delay: 1s;
}

.kv__copy {
    position: absolute;
    bottom: calc(100vw / 1280 * 20);
    left: calc(100vw / 1280 * 150);
    width: calc(100vw / 1280 * 213);
    min-width: 213px;
    height: calc(100vw / 1280 * 212);
    min-height: 212px;
    transform: rotate(-10deg);
    animation-delay: 2.5s;
}

.kv__credit {
    position: absolute;
    bottom: calc(100vw / 1280 * 8);
    left: calc(100vw / 1280 * 160);
    width: calc(100vw / 1280 * 140);
    min-width: 140px;
    height: calc(100vw / 1280 * 14);
    min-height: 14px;
    animation-delay: 2.5s;
}

.kv__frame-comic {
    position: absolute;
    right: calc(100vw / 1280 * 116);
    bottom: 0;
    width: calc(100vw / 1280 * 356);
    min-width: 356px;
    height: calc(100vw / 1280 * 376);
    min-height: 376px;
    animation-delay: 2.5s;
}

.fade-in {
    animation-name: fadeIn;
    animation-duration: 1s; /* アニメーションの再生時間 */
    animation-fill-mode: forwards; /* アニメーション終了後もスタイルを維持 */
    opacity: 0;
}

@keyframes fadeIn {

    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.main {
    min-width: 1280px;
    margin: auto;
}

.heading {
    position: relative;
    margin-bottom: 40px;
    text-align: center;
}

.heading:after {
    content: '';
    position: absolute;
    bottom: -24px;
    left: 0;
    width: 100%;
    height: 37px;
    background: url('/v2/img/static_page/media/daraketai/heading_line.svg') center bottom no-repeat;
}

.heading__character {
    margin-bottom: 60px;
}

.heading__books {
    width: 670px;
    margin-bottom: 48px;
}

.heading__image {
    width: 151.5px;
    height: 36px;
}

.heading__image--character {
    width: 175.5px;
    height: 37.5px;
}

.heading__image--special {
    width: 155.5px;
    height: 35.5px;
}

.heading__image--books {
    width: 133px;
    height: 39.5px;
}

.heading__image--news {
    width: 105.5px;
    height: 33.5px;
}

.heading__image--message {
    width: 156.5px;
    height: 37px;
}

.section {
    padding: 60px 0;
}

.menu {
    display: none;
    text-align: center;
}

.menu--following {
    display: block;
    position: sticky;
    z-index: 5;
    top: 0;
    width: 100%;
    height: 0;

    .nav--menu {
        background-color: white;
    }
}

.menu__content {
    position: relative;
}

.menu__title {
    display: inline-block;
    width: 140px;
    margin-bottom: -10px;
}

.story {
    padding-top: 42px;
    background-color: #8ed5ff;
}

.story__content {
    width: 670px;
    margin: 0 auto;
}

.story__detail {
    width: 582px;
    height: 353px;
    margin: 0 auto;
    padding: 24px;
    border-radius: 16px;
    background-color: white;
}

.story__image {
    width: 534px;
    height: 305px;
}

.character {
    position: relative;
}

.character__content {
    width: 697px;
    margin: 0 auto;
    padding: 24px;
    border-radius: 24px;
    background-color: white;
}

.character__main {
    position: relative;
}

.character__main-image {
    width: 648px;
    height: 451px;
    margin-bottom: 24px;
}

.character__main-text {
    position: absolute;
    top: 174px;
    right: 54px;
    width: 280px;
    color: black;
    line-height: 1.25;
}

.character__heading {
    margin-bottom: 22px;
    padding-bottom: 4px;
    border-bottom: 2px solid #1e6f1e;
    color: #349634;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
}

.character__summon {
    display: flex;
    flex-wrap: wrap;
    gap: 24px 16px;
    margin-bottom: 24px;
}

.character__summon-content {
    width: 150px;
}

.character__summon-image {
    width: 150px;
    height: 150px;
    margin-bottom: 8px;
}

.character__summon-name {
    margin-bottom: 8px;
    color: #79432a;
    font-weight: bold;
    text-align: center;
}

.character__summon-introduce {
    color: black;
    line-height: 1.25;
}

.character__subcharacter {
    display: flex;
    justify-content: space-between;
}

.character__subcharacter-wrap {
    width: 313px;
}

.character__family,
.character__friend {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 14px;
}

.character__family-content,
.character__friend-content {
    width: 93px;
}

.character__friend-content:nth-child(1) {
    margin-left: 56px;
}

.character__family-image,
.character__friend-image {
    width: 93px;
    height: 93px;
    margin-bottom: 8px;
}

.character__family-name,
.character__friend-name {
    color: #79432a;
    font-weight: bold;
    text-align: center;
}

.character__family-detail,
.character__friend-detail {
    color: black;
    line-height: 1.5;
}

.special {
    background-color: #ffec81;
    background-image: url('/v2/img/static_page/media/daraketai/special_bg.png');
    background-repeat: repeat;
    background-size: 364px;
}

.special__content {
    width: 670px;
    margin: 0 auto;
    text-align: center;
}

.special__text {
    height: 61px;
    margin: 0 11px 24px;
    padding: 4px;
    background-color: white;
    color: #349634;
    font-size: 24px;
    font-weight: bold;
    line-height: 1.2;
}

.special__image {
    width: 580px;
    height: 852px;
    margin-bottom: 24px;
}

.special__button {
    display: block;
    width: 500px;
    height: 62px;
    margin: 0 auto;
    border-radius: 18px;
    background-color: #ff9d00;
    color: white;
    font-size: 24px;
    font-weight: bold;
    line-height: 62px;
}

.books {
    display: flex;
    position: relative;
    flex-direction: column;
    align-items: center;
    max-width: 800px;
    margin-right: auto;
    margin-left: auto;
}

.books__subhead {
    margin-bottom: 24px;
    padding-bottom: 4px;
    border-bottom: 1px solid #1e6f1e;
    color: #349634;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
}

.books__content {
    width: 720px;
    padding: 24px 58px;
    border-radius: 24px;
    background-color: white;
}

.books__content:not(:last-child) {
    margin-bottom: 32px;
}

.books__novel {
    margin-bottom: 40px;
}

.books__comic {
    margin-bottom: 24px;
}

.book-slider {
    margin-bottom: 24px;
}

.book {
    display: flex;
    justify-content: center;
    padding-right: 48px;
    padding-left: 48px;
    gap: 23px;
}

img.book__cover {
    width: 215px;
    margin-bottom: 8px;
}

.book__volume {
    display: flex;
    justify-content: center;
}

.book__volume-recently {
    width: 62px;
    height: 22px;
    margin: auto 16px auto 0;
    background-color: #ff0f0f;
    color: white;
    font-size: 14px;
    font-weight: bold;
    line-height: 22px;
    text-align: center;
}

.book__volume-number {
    font-size: 34px;
    font-weight: bold;
}

.book__volume-text {
    font-size: 24px;
}

.book__info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 270px;
    margin-right: auto;
    gap: 16px;
    color: black;
}

.book__author,
.book__text {
    font-size: 14px;
    line-height: 1.5;
}

.slider-thumbnails {
    margin-bottom: 16px;
}

.slick-arrow {
    width: 0;
    height: 0;
    border-top: 17px solid transparent;
    border-right: 18px solid #d4e8cd;
    border-bottom: 17px solid transparent;
    border-left: 0;
}

.slick-next {
    border-right: 0;
    border-left: 18px solid #d4e8cd;
}

.thumbnail-book {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 105px;
    padding: 0 8px;
    text-align: center;
    gap: 8px;
}

.thumbnail-book__cover {
    width: 100%;
}

.comic {
    position: relative;
}

.comic__title {
    margin-bottom: 16px;
    padding-left: 8px;
    border-left: 4px solid #349634;
    color: #349634;
    font-size: 18px;
    font-weight: bold;
}

.comic__wrap {
    display: flex;
}

.comic__list {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-bottom: 24px;
}

.comic__cover {
    display: block;
    width: 100px;
    height: 141.5px;
    border: solid 1px #5c4338;
}

.comic__author {
    width: 332px;
    margin: 0 auto 8px;
    color: black;
    font-size: 14px;
    line-height: 1.5;
}

.comic__author--gakuen {
    width: 448px;
}

.news {
    background-color: #b7e4ff;
    font-family: 'M PLUS 1p', sans-serif;
}

.news__content {
    width: 670px;
    margin: 0 auto;
}

.news__list {
    width: 624px;
    max-height: 162px;
    margin: 0 auto;
    padding: 20px 25px;
    overflow: scroll;
    border-radius: 16px;
    background-color: white;
}

.news__text {
    color: #5c4338;
    line-height: 1.4;
}

.news__text:not(:last-child) {
    margin-bottom: 16px;
}

.news__date {
    margin-right: 16px;
}

a.news__link {
    color: #000099;
}

a.news__link:hover {
    opacity: 0.7;
    color: #000099;
}

.message {
    background-color: #b7e4ff;
    font-family: 'M PLUS 1p', sans-serif;
}

.message__content {
    width: 670px;
    margin: 0 auto;
}

.message__detail {
    width: 604px;
    margin: 0 auto;
    padding: 24px;
    border-radius: 16px;
    background-color: white;
}

.message__subhead {
    margin-bottom: 16px;
    padding-bottom: 6px;
    background-image: repeating-linear-gradient(90deg, #a7865f, #a7865f 12px, transparent 12px, transparent 16px);
    background-repeat: repeat-x;
    background-position: left bottom;
    background-size: 100% 2px;
    color: #ff802c;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
}

.message__role {
    display: block;
    margin-bottom: 8px;
    color: #5c4338;
    font-size: 14px;
    font-weight: normal;
}

.message__name {
    font-size: 26px;
}

.message__text {
    color: #5c4338;
    line-height: 1.5;
}

.message__text--break {
    margin-bottom: 16px;
}

.footer {
    min-width: 1280px;
    padding: 30px 20px 45px;
    background-color: #5c4338;
    color: #ffffff;
    font-size: 11px;
    line-height: 1.4;
    text-align: center;
}

.footer img {
    max-width: 100%;
    margin-bottom: 8px;
}

.page-top-icon {
    display: none;
    position: fixed;
    z-index: 5;
    right: 0;
    bottom: -200px;
    width: 140px;
    height: 198px;
    animation: appearance 0.5s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes appearance {

    0% {
        transform: translate(180px, 30px);
        opacity: 0;
    }

    100% {
        transform: translate(0, 0);
    }

    20%,
    100% {
        opacity: 1;
    }
}

.page-top-icon:hover {
    opacity: 0.8;
}

.page-top-icon--scroll {
    display: block;
    bottom: 0;
}

@media screen and (max-width: 1279px) {

    .float-character__image {
        position: absolute;
        top: 110px;
        left: 51px;
    }

    .float-character__image--kohaku {
        top: 361px;
        left: 215px;
    }

    .float-character__image--hotaru {
        top: 452px;
        left: 98px;
    }

    .float-character__image--zakuro {
        top: 588px;
        left: 174px;
    }

    .float-character__image--ruri {
        top: 186px;
        right: 217px;
        left: unset;
    }

    .float-character__image--tenga {
        top: 253px;
        right: 81px;
        left: unset;
    }

    .float-character__image--randou {
        top: 402px;
        right: 204px;
        left: unset;
    }

    .float-character__image--kokuyou {
        top: 493px;
        right: 108px;
        left: unset;
    }

    .kv > .nav {
        padding-left: 332px;
    }

    .kv__title {
        top: 98px;
        left: calc(50% - 225px);
    }

    .kv__hisui {
        top: 58px;
    }

    .kv__copy {
        bottom: 20px;
        left: 150px;
    }

    .kv__credit {
        bottom: 8px;
        left: 160px;
    }

    .kv__frame-comic {
        right: 116px;
    }
}
