/*
Theme Name: SpaceBlast 2026
Theme URI:
Description: 2026年4月リニューアル
Author: SpaceBlast
Author URI: https://spaceblast.co.jp/
Version: 1.0.0
*/

/* =============================================
Root
============================================= */
:root {
    --white: #FFFFFF;
    --black: #2C2D2E;
    --gray: #5D5F61;
    --mdeium-gray: #8F8F8F;
    --medium-light-gray: #808182;
    --light-gray: #E8E8E8;
    --light-blue: #F0F4F7;
    --shadow: -2px -2px 15px 0 rgba(0, 0, 0, 0.05), 2px 2px 15px 0 rgba(0, 0, 0, 0.05);
    --shadow-elevate: -1px -1px 12px rgba(0,0,0,0.04), 6px 10px 24px rgba(0,0,0,0.12);
}

html[lang="en-US"] .section-subtitle,
html[lang="en-US"] .footer-links-subtitle {
    display: none;
}
.pc {
    display: block;
}
.sptablet {
    display: none;
}
@media screen and (max-width: 768px) {
    .pc {
        display: none;
    }
    .sptablet {
        display: block;
    }
}

.grecaptcha-badge {
    display: none!important;
}

/* =============================================
Reset & Others
============================================= */
* {
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    line-height: 1.6!important;

}
html, body {
    overflow-x: hidden;
}
body {
    min-height: 100svh;
}
ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
ul.list-numbers {
    list-style: decimal;
    padding-left: 1.4em;
}
ul.list-numbers > li {
    margin-bottom: 0.4rem;
}
ul.list-disc {
    list-style: disc;
    padding-left: 1em;
}
.ul.list-disc > li {
    margin-bottom: 0.4rem;
}
ul.list-alphabet {
    list-style: upper-latin;
    padding-left: 1.4em;
    text-align: left;
}
a {
    font-size: 1.4rem;
    text-decoration: none;
    transition: all ease .2s;
    color: var(--black);
}
a:hover {
    cursor: pointer;
    opacity: .8;
}
ul > li > a {
    font-size: 1.4rem;
    text-decoration: none;
    display: block;
}
ul > li > a:hover {
    opacity: .8;
}
p {
    margin-bottom: 0;
}

.pc {
    display: block;
}
.sp {
    display: none;
}
.xs {
    display: none;
}
@media screen and (max-width: 768px) {
    .pc {
        display: none!important;
    }
    .sp {
        display: block!important;
    }
}
@media screen and (max-width: 410px) {
    .xs {
        display: block!important;
    }
}

/* =============================================
Fonts & Colors
============================================= */
html {
    font-size: 62.5%;
}
* {
    font-family: "aktiv-grotesk-extended", "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 1.4rem;
    line-height: 1.5;
    font-feature-settings: "palt";
}
.text-bold {
    font-family: "aktiv-grotesk-extended","Noto Sans JP", sans-serif;
    font-weight: 700;
    font-style: normal;
}
.section-title {
    font-size: 3.6rem;
}
.content-title {
    font-size: 2rem;
}
p {
    font-family: "aktiv-grotesk-extended","Noto Sans JP", sans-serif;
    font-style: normal;
}
img {
    display: block;
    width: 100%;
}
@media screen and (max-width: 576px) {
    .number {
        margin: 8px 0;
    }
}

/* =============================================
Button
============================================= */
.btn {
    display: inline-flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    border-radius: 999px;
    transition: all ease .2s;
    font-size: 1.4rem;
    text-wrap: nowrap;
    padding: 8px 12px 8px 20px;
}
.btn img {
    width: 32px;
    height: 32px;
}
.btn:hover {
    opacity: .8;
}
.btn:hover,
.btn:hover * {
    cursor: pointer;
}
/*サイズ*/
.btn.wide {
    width: 100%;
    border-radius: 8px;
    padding: 36px;
    font-size: 1,8rem;
}
/*カラー*/
.solid.black {
    background-color: var(--black);
    color: var(--white);
}
.solid.gray {
    background-color: var(--gray);
    color: var(--white);
}
.solid.white {
    background-color: var(--white);
    color: var(--black);
}
/*ラッパー*/
.button-wrapper {
    margin-top: 36px;
}
@media screen and (max-width: 768px) {
    .btn {
        width: 60%;
        margin: 0 auto;
    }
}
@media screen and (max-width: 576px) {
    .btn {
        width: 80%;
    }
}

/* =============================================
Header / Gnav
============================================= */
.site-header {
    position: fixed;
    top: 36px;
    left: 50%;
    transform: translateX(-50%);
    width: 95%;
    z-index: 100;
}
.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 40px;
    background: var(--white);
    border-radius: 999px;
    box-shadow: var(--shadow);
}
.header-logo img,
.custom-logo {
    display: block;
    height: 20px;
    width: auto;
}
.pc-nav {
    display: flex;
    justify-content: center;
    align-items: center;
}
.pc-nav ul {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}
.pc-nav ul.nav-links {
    gap: 20px;
    margin-right: 20px;
}
.pc-nav ul.nav-buttons {
    gap: 12px;
}
.pc-nav a {
    text-decoration: none;
}
.hamburger {
    display: none;
    position: relative;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.hamburger span {
    position: absolute;
    left: 10px;
    width: 24px;
    height: 1px;
    background: rgba(44,45,46,.6);
    transition: transform 0.3s ease, top 0.3s ease, opacity 0.3s ease;
}
.hamburger span:nth-child(1) {
    top: 16px;
}
.hamburger span:nth-child(2) {
    top: 24px;
}
.hamburger.is-open span:nth-child(1) {
    top: 20px;
    transform: rotate(45deg);
}
.hamburger.is-open span:nth-child(2) {
    top: 20px;
    transform: rotate(-45deg);
}
.sp-nav {
    position: fixed;
    top: 124px;
    right: 7%;
    margin-left: 7%;
    padding: 20px;
    background: #fff;
    border-radius: 16px;
    box-shadow: var(--shadow);
    z-index: 99;
    width: calc(70% - 14%);
    max-height: calc(100dvh - 150px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.sp-nav-list li.menu-item {
    margin-bottom: 12px;
}
.sp-nav-list ul.sub-menu > li.menu-item {
    margin-bottom: 0px;
}

.sp-nav-list ul.sub-menu ul.sub-menu {
    padding-left: 1em;
}

.sp-nav-list li.menu-item > a {
    border-bottom: solid 1px var(--light-gray);
    padding: 8px;
    margin-bottom: 8px;
}
.sp-nav-list ul.sub-menu > li.menu-item > a {
    border-bottom: none;
    position: relative;
    padding-left: 1em;
}
.sp-nav-list ul.sub-menu > li.menu-item > a::before {
    content: "";
    width: 4px;
    height: 4px;
    background-color: var(--black);
    border-radius: 100px;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0,-50%);
}
body.menu-open {
    overflow: hidden;
    height: 100dvh;
}
@media (max-width: 925px) {
    .pc-nav {
        display: none;
    }
    .hamburger {
        display: block;
    }
    .header-inner {
        padding: 12px 20px;
    }
}
@media (max-width: 576px) {
    .sp-nav {
        width: calc(100% - 10%);
        right: 5%;
        max-height: 78svh;
    }
}

/* Lang Switch */
.lang-switch {
    display: flex;
    gap: 6px;
}
.lang-switch > span:hover {
    cursor: default;
}
.lang-switch > a {
    opacity: .8;
}

/* =============================================
Section / Conatiner
============================================= */
#news, #ourbusiness, #company {
    margin: 120px 0;
}
.section-title-wrapper {
    margin-bottom: 36px;
}
.section-title {
    position: relative;
    padding-left: 18px;
}
.section-title::before {
    content: "";
    background-color: var(--black);
    width: 10px;
    height: 10px;
    border-radius: 100px;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0, -50%);
}
.container.blue-wrapper {
    background-color: var(--light-blue);
    border-radius: 16px;
    padding-top: 64px;
    padding-bottom: 64px;
}
.container.blue-wrapper > .row {
    justify-content: center;
    align-items: center;
}
@media screen and (max-width: 576px) {
    #news, #ourbusiness, #company {
        margin: 64px 0;
    }
}

/* =============================================
KV
============================================= */
.kv-section {
    position: relative;
    width: 100%;
    height: 100svh;
    background-image: url(./assets/img/kv_visual.jpg);
    background-size: cover;
    background-position: right top;
}
.kv-visual {
    position: absolute;
    top: 0;
    right: 0;
    width: 60svw;
    z-index: 2;
}
.kv-object {
    position: absolute;
    top: 0;
    right: 0;
    opacity: 0;
    transition: opacity 1.8s ease;
    z-index: 3;
    display: block;
}
.kv-object.active {
    opacity: 1;
}
.kv-copy {
    position: absolute;
    left: calc((100svw - 1140px) / 2);
    bottom: 36px;
    left: 5%;
    width: 70svw;
    z-index: 3;
}
@media screen and (max-width: 768px) {
    .kv-section {
        background-image: url(./assets/img/kv_visual_sp.jpg);
        background-position: right bottom;
    }
    .kv-visual {
        width: 80svw;
    }
}
@media screen and (max-width: 576px) {
    .kv-visual {
        top: 7%;
    }
    .kv-copy {
        left: auto;
        width: 100%;
        padding: 5% 5% 0 5%;
        bottom: 2svh;
    }
}


/* =============================================
News
============================================= */
.news-list.swiper {
    padding: 16px;
    margin: -16px;
}
.swiper-wrapper {
    display: flex;
    align-items: stretch;
}
.news-card {
    background-color: var(--white);
    border-radius: 12px;
    box-shadow: var(--shadow);
}
.news-list .swiper-slide.news-card {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    height: auto;
    background-color: var(--white);
    border-radius: 12px;
    box-shadow: var(--shadow);
    overflow: hidden;
}
.news-card-body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex-grow: 1;
    padding: 16px;
}
.news-card img {
    border-radius: 12px 12px 0 0;
    aspect-ratio: 16/9;
    object-fit: cover;
}
.news-card-title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    margin-bottom: 12px;
}
.news-card-date {
    color: var(--mdeium-gray);
}
@media screen and (max-width: 576px) {
    .news-list.swiper {
        margin-right: calc(50% - 50vw);
    }
}

/* =============================================
Our Business
============================================= */
#ourbusiness .section-title-wrapper {
    margin-bottom: 56px;
}
.content-list {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 64px;
}
.content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.content-text-wrapper {
    width: 50%;
}
.content-text {
    margin: 28px 0;
}
.content-img-wrapper {
    width: 40%;
}
.content-img-wrapper img {
    border-radius: 12px;
}
@media screen and (max-width: 768px) {
    .content {
        flex-direction: column;
        justify-content: flex-start;
        flex-direction: column-reverse;
    }
    .content-text-wrapper {
        width: 100%;
        display: flex;
        flex-direction: column;
    }
    .content-img-wrapper {
        width: 100%;
        margin-bottom: 28px;
    }
}
@media screen and (max-width: 576px) {
    .container.blue-wrapper {
        border-radius: 0;
    }
}

/* =============================================
Company
============================================= */
#company img {
    border-radius: 12px;
}
#company .row {
    justify-content: space-between;
}
.company-content-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.company-content-button {
    display: flex;
    align-items: center;
}
.company-content-text-inner a {
    margin-top: 36px;
}
@media screen and (max-width: 768px) {
    .company-content-text {
        order: 1;
        margin-bottom: 28px;
    }
    .company-content-img {
        order: 2;
        margin-bottom: 28px;
    }
    .company-content-button-wrapper {
        order: 3;
        text-align: center;
    }
    .company-content-text-inner {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .company-content-text-inner {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
}

/* =============================================
Footer Links
============================================= */
.footerlinks-section {
    background-color: var(--light-blue);
    padding: 36px;
    margin-top: 64px;
}
.footer-links-card {
    background-color: var(--white);
    border-radius: 12px;
    box-shadow: var(--shadow);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 36px;
    transition: all ease .2s;
}
.footer-links-card:hover {
    box-shadow: var(--shadow-elevate);
}
.footer-links-card:hover,
.footer-linis-card:hover * {
    cursor: pointer;
}
.footer-links-title {
    font-size: 2.4rem;
}
.footer-links-img {
    width: 56px;
    height: 56px;
}
@media screen and (max-width: 576px) {
    .footerlinks-section {
        padding: 36px 0;
    }
    .footerlinks-section .col-12:first-of-type {
        margin-bottom: 12px;
    }
    .footer-links-card {
        padding: 24px;
    }
}

/* =============================================
Footer
============================================= */
.site-footer {
    background-color: var(--black);
    color: var(--white);
}
footer * {
    color: var(--white);
}
.footer-inner {
    width: 95%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
}
.footer-inner:first-of-type {
    padding-top: 36px;
}
.footer-logo {
    height: 24px;
    width: auto;
}
.footer-nav {
    display: flex;
    gap: 36px;
}
.footer-nav li.menu-item a {
    padding: 8px 8px 8px 0;
    border-bottom: solid 1px rgba(255,255,255,.4);
}
.footer-nav ul.sub-menu ul.sub-menu {
    padding-left: 1em;
}
.footer-nav li.menu-item .sub-menu li a {
    padding: 8px 8px 8px 0;
    border-bottom: none;
    display: inline-flex;
    align-items: center;
    gap: 12px;
}
.footer-nav ul.sub-menu > li.menu-item > a::before {
    content: "";
    width: 4px;
    height: 4px;
    border-radius: 100px;
    background-color: var(--white);
    flex-shrink: 0;
}
.footer-nav-left > ul {
    display: flex;
    gap: 36px;
}
.footer-nav-right ul li a {
    border-bottom: none!important;
    display: inline-flex;
    align-items: center;
    gap: 12px;
}
.footer-nav-right ul li a::before {
    content: "";
    width: 4px;
    height: 4px;
    border-radius: 100px;
    background-color: var(--white);
    flex-shrink: 0;
}
.footer-inner:last-of-type {
    padding: 64px 0 24px 0;
}
.footer-policy-links a {
    padding: 4px;
    font-size: 1.2rem;
    margin-right: 12px;
}
.footer-copyright {
    font-size: 1.2rem;
}
@media screen and (max-width: 768px) {
    .footer-inner {
        flex-direction: column;
        align-items: flex-start;
    }
    .footer-nav {
        width: 100%;
        flex-direction: column;
        gap: 24px;
        margin-top: 24px;
    }
    .footer-nav ul.sub-menu > li.menu-item > a::before {
        bottom: 0.6em;
    }
    .footer-nav-left {
        width: 100%;
    }
    .footer-nav-left .footer-nav-list {
        width: 100%;
    }
    .footer-nav-left .footer-nav-list > .menu-item {
        width: 50%;
    }
    .footer-nav li.menu-item .sub-menu li a {
        padding: 16px 16px 0 0;
    }
    .footer-nav-right .footer-nav-list {
        display: flex;
        gap: 0px 16px;
        flex-wrap: wrap;
    }
    .footer-inner:last-of-type {
        padding: 0 0 24px 0;
    }
    .footer-policy-links a {
        display: inline-block;
        font-size: 1.4rem;
        padding: 8px 8px 8px 0;
        position: relative;
        padding-left: 1em;
    }
    .footer-policy-links a::before {
        content: "";
        width: 4px;
        height: 4px;
        border-radius: 100px;
        background-color: var(--white);
        display: block;
        position: absolute;
        top: 50%;
        left: 0;
    }
    .footer-policy-links a:first-of-type {
        margin-right: 24px;
    }
    .footer-copyright {
        margin-top: 48px;
    }
}
