@charset "UTF-8";
/*
Theme Name: ODS-LP
Description: 沖縄ドローンスクール LP用テーマ
Author: 株式会社Compass
Author URI: https://compass-okinawa.com/
Version: 20240613
*/

/*mvp.css 設定上書き*/
:root {
    --width-content: 100%;
    --color-scrollbar: #31b2e7;
    --justify-normal: center;
    --border-radius: 35px 35px 0 0;
}

/*slick-theme.css 設定上書き*/
.slick-prev, .slick-next {
    z-index: 1;
    top: 45%;
}

.slick-prev {
    left: 10px;
}

.slick-next {
    right: clamp(30px, calc(10px + 5vw), 70px);
}

.slick-prev:before, .slick-next:before {
    font-size: clamp(40px, calc(22.5px + 4.375vw), 75px);
    opacity: 1;
    color: #31b2e7;
}

/*base*/
* {
    scrollbar-color: var(--color-scrollbar) transparent;
    scrollbar-width: auto;
}

*:where(:not(#wpadminbar *)) { /*ログイン時に表示されるバーに影響を与えないようにする*/
    color: #707070;
    letter-spacing: .05em;
    font-family: "Zen Maru Gothic", sans-serif;
}

a {
    display: inline;
}

nav {
    margin-bottom: 0;
}

section[id] {
    display: block;
    position: relative;
    padding: 60px 0;

    & .container{
        margin: 0 auto;
        width: 100%;
        max-width: 1200px;
    }
}

section:where(#campaign, #ods-original, #ods-gakuwari) {
    & .container {
        padding: 50px;
    }

    & table {
        width: 100%;
        border: none;
        margin-bottom: 40px;
    }

    & td:first-child {
        border-left: 1px solid #aaaaaa;
    }

    & .table-price {
        width: 50%;
    }

    & tr .no-border-left {
        border-left: none;
    }

    & .table-blank td {
        border-left: none;
    }
}

.container > p {
    padding-bottom: 50px;
}

.container form {
    width: 100%;
    max-width: 1200px;
}

.sp-only {
    display: none;
}

img { /*参考: https://coliss.com/articles/build-websites/operation/css/sensible-defaults-for-img-elements.html */
    max-width: 100%;
    height: auto;
    vertical-align: middle;
    font-style: italic;
    background-repeat: no-repeat;
    background-size: cover;
    shape-margin: 0.75rem;
}

/*desktop*/

main {
    padding: 0;
}

h2 {
    text-align: center;
    margin: 0 auto 20px;
    font-size: clamp(24px, calc(-8px + 4vw), 40px);
    color: #007daf;
}

h3 {
    text-align: center;
}

p {
    font-size: clamp(16px, calc(8px + 1vw), 20px);
    line-height: 1.75;
    margin: 0;

    & small {
        display: inline-block;
    }
}

small {
    display: block;
    color: inherit;
}

table {
    border: 1px solid #aaaaaa;
    border-right: none;
    border-bottom: none;

    & tr {
        font-size: clamp(16px, calc(14px + 0.5vw), 20px);

        & th, td {
            border-right: 1px solid #aaaaaa;
            border-bottom: 1px solid #aaaaaa;
        }
    }

    & tr:nth-child(even) {
        background-color: transparent;
    }
}

thead {
    & * {
        color: #ffffff;
    }

    & th {
        font-size: clamp(18px, calc(16px + 0.5vw), 22px);
    }
}

header {
    padding: 0;

    & li {
        font-size: 18px;

        & a {
            text-decoration: none;
            color: #707070;
        }
    }

    & .header-catch {
        display: flex;
        justify-content: space-between;
        padding: 20px 30px;
        background-color: #31b2e7;

        & p {
            font-size: 16px;
            text-align: left;
            font-weight: bold;
            color: #ffffff;
            margin: 12px 0;
            width: auto;
        }

        & a {
            background-color: #ffffff;
            padding: 10px 60px;
            display: block;
        }
    }

    & .nav-box {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        padding: 0 30px;

        & h1 {
            align-self: center;
        }

        & img {
            max-width: 250px;
        }

        & nav {
            padding: 40px 0;
        }

    }
}

.marker { /*参考： https://doctor-martin.blog/2021/04/17/css-highlighter-pen-effect/ */
    line-height: normal;
    font-weight: bold;
    background: linear-gradient(rgba(0,0,0,0) 60%, #f9f871 0);
    color: inherit;
}

.marker::before, .marker::after {
    display: inline-block;
    content: "\A";
    white-space: pre;
    width: 0.41em;
    /*clip-path: inset(1px 0);*/
    transform-origin: bottom left;
    transform: skewX(-20deg) translateX(-0.41em);
    background: linear-gradient(rgba(0,0,0,0) 60%, #f9f871 0);
}

.marker::after {
    transform: skewX(-20deg);
}

small.marker {
    color: #f06060;
    font-size: 20px;
    font-weight: bold;
    display: inline;
    font-family: sans-serif;
}

small.marker::before, small.marker::after {
    clip-path: inset(2px 0);
}

.subtitle {
    font-size: clamp(22px, calc(-4px + 3.25vw), 35px);
    text-decoration: underline 2px;
    text-underline-offset: 10px;
    line-height: 100px;
}

#main-nav {

    & nav {
        width: 100%;
    }

    & ul {
        max-width: 1340px;
        width: 100%;
        margin: 0 auto;
        display: flex;
    }

    & li {
        width: 42%;
        display: inline-block;
    }

    & a {
        display: grid;
        width: 100%;
        height: 80px;
        max-width: 320px;
        font-size: 23px;
        text-align: center;
        text-decoration: none;
        background-color: #31b2e7;
        color: white;
        align-content: center;
    }

    /*& a:hover, a:active {
        filter: none;
    }*/
}

.header-nav .menu-check {
    display: none;
}

.header-nav .menu-button {
    display: none;
}

.intro {
    background-image: url(images/lp_kv.jpg);
    background-size: cover;
    background-position: center;
    height: clamp(360px, calc(0px + 45vw), 540px);

    & h2 {
        margin-top: clamp(150px, calc(-210px + 45vw), 300px);
        font-size: clamp(32px, calc(-4px + 4.5vw), 50px);
        font-weight: bold;
        text-align: left;
        color: #3e3a39;
    }
}

#banner img {
    margin: 0 auto;
}

#campaign, #ods-original, #ods-gakuwari {
    background-image: url(images/bg_pattern.png);
    background-repeat: repeat;

    & .container {
        background-color: #ffffff;
    }

    & h3 {
        margin-bottom: 25px;
    }

    & table thead {
        & *{
            border-color: #ffffff;
        }

        tr:first-child {
            border-right: none;
            
            & th:last-child {
                border-right: none;
            }
        }
    }
}

.table-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;

    & .table-waribiki {
        text-align: left;
    }
}

.table-kogaki {
    font-size: clamp(14px, calc(6px + 1vw), 18px);
    color: inherit;
}

.table-waribiki {
    color: #f06060;
}

.table-arrow {
    font-size: 20px;
    color: #f06060;
}

.table-blank {
    height: 40px;
    border-left: none;
    border-right: none;

    & td {
        border-left: none;
        border-right: none;    
    }
}

.table-mini {
    display: none;
}

.table-keiken thead {
    background-color: #ff8178;
}

.table-ods-orig {
    margin-bottom: 0;
}

.table-ods-orig thead {
    background-color: #2ac113;
}

.table-ods-gaku thead {
    background-color: #4e90d3;
}

div:is(.groupwari-1, .groupwari-2) {
    & h4 {
        display: inline-block;
        font-size: clamp(20px, calc(10px + 1.25vw), 25px);
        padding: 15px 25px;
        border-radius: 20px 20px 0 0;
    }

    & table {
        border: none;
        border-radius: 0;

        & * {
            border: none;
            text-align: left;
        }
    }

    & td[rowspan="8"] {
        align-content: baseline;
        min-width: 75px;
    }
}

.groupwari-1  {
    margin-bottom: 30px;

    & h4, table {
        background-color: rgba(49, 179, 231, 0.1);
    }
}

.groupwari-2  {
    & h4, table {
        background-color: rgba(255, 129, 120, 0.1);
    }
}

details {

    & h2 {
        font-size: clamp(24px, calc(2px + 2.75vw), 35px);
    }

    & p {
        padding: 50px;
    }
}

details > summary:first-of-type {
    list-style: none;
}

.detail-flex {
    display: flex;
    position: relative;
    align-items: flex-start;
    justify-content: space-evenly;
}

.shadow-box {
    box-shadow: 0px 0px 7px rgb(49, 178, 231, 0.35);
    background-color: #ffffff;
    padding: 35px 0;

    & p {
        padding: 30px 50px;
    }

    & img {
        padding: 0 25px;
    }

    & .dl-link {
        margin: 0 auto;
        display: block;
        width: fit-content;
    }

}

#jinzai-kaihatsu {
    display: none;
}

#jinzai-kaihatsu .shadow-box {
    margin-bottom: 50px;
}

.detail-flex > div {
    width: 45%;
}

.ikusei-shien {
    border: 1px solid #31b2e7;
}

.jinzai-box {
    border: 1px solid #31b2e7;
    border-radius: 10px;
    padding: 30px 50px;
    margin-bottom: 30px;

    & h3 {
        margin: auto;
        margin-top: -45px;
        margin-bottom: 30px;
        width: 180px;
        color: #ffffff;
        background-image: linear-gradient(to right, #31b2e7, #007daf);
    }
    
    & p {
        font-size: clamp(16px, calc(12px + 0.5vw), 18px);
        padding: 0;
    }

}

.juri-kingaku {
    font-size: clamp(18px, calc(6px + 1.5vw), 24px);
    padding: 30px 0;
    display: inline-block;
}

.chuui-box {
    background-color: rgb(49, 178, 231, 0.1);
    padding: 30px 20px;
    margin: 30px;
    
    & h2 {
        font-size: 24px;
        text-align: center;
        color: #ff8178;
        margin-bottom: 20px;
    }

    & li {
        font-size: clamp(16px, calc(12px + 0.5vw), 18px);
    }
}

.flow-shikaku-nav {
    & nav {
        width: 100%;
    }

    & ul {
        max-width: 1340px;
        width: 100%;
        margin: 0 auto;
        padding-top: 60px;
        display: flex;
        justify-content: space-evenly;
    }

    & li {
        width: 38%;
        display: inline-block;
    }

    & a {
        display: block;
        width: 100%;
        height: 96px;
        max-width: 465px;
        font-size: clamp(20px, calc(10px + 1.25vw), 25px);
        text-align: center;
        text-decoration: none;
        background-image: linear-gradient(to right, #31b2e7, #007daf);
        color: white;
        align-content: center;
        border-radius: 10px;
    }
}

.table-schedule {
    width: 100%;
    border-radius: 0;

    & tr {
        & th, td {
            padding: 20px;
        }
    }

    & .schedule-days {
        width: 90%;
    }

    & .schedule-waku, .schedule-boshu {
        width: 20%;
    }
}

.table-category {
    border-radius: 0;

    & thead {
        background-image: linear-gradient(to right, #31b2e7, #007daf);
    }

    & th {
        font-size: 22px;
        padding: 35px 0;
    }

    & tr td:has(h3):first-child p {
        text-align: left;
    }

    & td {
        background-color: rgba(255, 255, 255, 0.9);
    }

    & h3 {
        margin: 0 0 20px;
        font-size: clamp(20px, calc(10px + 1.25vw), 25px);
        color: #007daf;
        text-align: left;
    }

    & p {
        text-wrap: wrap;
    }

    & img {
        margin: 0 auto;
        min-width: 100px;
    }

    & .table-flex {
        justify-content: space-evenly;

        & h3 {
            font-size: 20px;
            text-align: left;
        }

        & .table-kogaki {
            text-align: left;
        }
    }

}

.table-cattext {
    width: 40%;
}

.table-minkan {
    width: 10%;
}

#flow-shikaku {
    background-image: url(images/bg_shikaku-flow.jpg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

#shikaku-merit {
    background-image: url(images/bg_merit.png);
    background-size: cover;
    padding: 100px 0;
    position: relative;

    & h2 {
        margin-bottom: 120px;
    }

    & h3 {
        font-size: 22px;
        margin-bottom: 20px;
    }

    & .subtitle {
        background-color: #ffffff;
        padding: 15px 40px 25px;
        border-radius: 50px;
    }

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

    & .merit-box {
        background-color: #ffffff;
        width: 32%;
        position: relative;
        padding: 40px 50px 25px;
    }

    & .merit-num {
        position: absolute;
        width: 100px;
        height: 100px;
        font-size: 60px;
        font-weight: bold;
        line-height: 1.5;
        color: #ffffff;
        background-color: #007daf;
        background-image: linear-gradient(to right, #31b2e7, #007daf);
        border-radius: 50%;
        align-content: baseline;
        text-align: center;
        left: 36%;
        top: -75px;
        box-shadow: 0px 0px 3px rgba(49, 178, 231, 0.25);
    }
}

#shikaku-category {
    background-image: url(images/bg_shikaku-category.jpg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.category-shinsei {
    padding: 5px 30px;
    border-radius: 10px;
    background-color: #31b2e7;
    color: white;
    font-weight: bold;
    display: inline-block;
    width: 145px;
}

#flow-kyoka, #flow-jukou {
    background-image: url(images/bg_pattern.png);
    background-repeat: repeat;
}

.flow-kyoka-title {
    font-size: clamp(30px, calc(0px + 3.75vw), 45px);
    color: white;
    background-color: #007daf;
    padding: 50px 0;
    margin-bottom: 100px;
    border-radius: 20px;
}

#drone-gassyuku {
    background-image: url(images/bg_pattern.png);
    background-repeat: repeat;
}

#drone-gassyuku h2 {
    margin-bottom: 80px;
}

.gassyuku-flex {
    display: flex;
    position: relative;
    justify-content: space-between;
    margin-bottom: 80px;

    & h3 {
        margin: 0 30px;
        font-size: clamp(20px, calc(0px + 2.5vw), 30px);
        font-weight: bold;
        text-align: left;
    }

    & p {
        padding: 30px;
    }

    & small {
        display: inline-block;
        text-align: left;
        font-size: clamp(14px, calc(6px + 1vw), 18px);
    }

    & .gassyuku-num {
        position: absolute;
        width: 100px;
        height: 100px;
        font-size: 60px;
        font-weight: bold;
        line-height: 1.5;
        color: #ffffff;
        background-color: #007daf;
        background-image: linear-gradient(to right, #31b2e7, #007daf);
        border-radius: 50%;
        align-content: baseline;
        text-align: center;
        left: -40px;
        top: -40px;
        box-shadow: 0px 0px 3px rgba(49, 178, 231, 0.25);
    }

    & .gassyuku-img {
        width: 40%;
    }

    & .gassyuku-text {
        /*border: 1px solid #007daf;*/
        width: 60%;
    }
}

.shisetsu-gaiyou {
    & p {
        padding: 30px 0;
    }

    & table {
        width: 100%;
        border-radius: 0;
        border: 1px solid #aaaaaa;
        border-collapse: collapse;
        margin-bottom: 50px;
        background-color: #ffffff;
    }

    & th,td {
        text-align: left;
        padding: 30px 50px;
    }

    & th {
        width: 30%;
        font-size: clamp(18px, calc(10px + 1vw), 22px);
    }

    & td {
        width: 60%;

        & p {
            font-size: clamp(18px, calc(10px + 1vw), 22px);
            text-indent: -1.6em;
            padding-left: 1.6em;
            padding-top: 0;
            padding-bottom: 0;
        }
    }
}

.shisetsu-name {
    text-align: left;
    font-size: clamp(18px, calc(6px + 1.5vw), 24px);
    margin-bottom: 30px;

    & img {
        display: inline-block;
        vertical-align: baseline;
        padding-right: 15px;
    }
}

.shisetsu-shosai {
    font-size: clamp(18px, calc(6px + 1.5vw), 24px);
    color: #ffffff;
    background-color: #2ac113;
    padding: 25px 50px;
    margin-bottom: 30px;
}

.slider {
    width: 100%;
    height: 100%;
}

.slider img {
    width: 100%;
    object-fit: cover;
}

#shisetsu-gaiyou {
    display: none;
    visibility: hidden;
}

#qanda {
    & details {
        border-radius: 10px;
        border: 1px solid rgba(49, 179, 231, 0.1);
        position: relative;
    }

    & summary {
        position: relative;
    }

    & .summary-qa {
        transition: 1s;
    }
    
    & .summary-qa summary::before,
    & .summary-qa summary::after{
        content: "";
        display: block;
        background: linear-gradient(to right, #31b2e7, #007daf);
        position: absolute;
        top: 45%;
        right: 10px;
        width: 20px;
        height: 4px;
    }
    
    & .summary-qa summary::before {
        width: 4px;
        height: 20px;
        margin: -8px 8px 0 0;
        transition: 0.4s;
    }
    
    & .summary-qa[open] summary::before {
        transform: rotate(90deg);
    }

    & h3 {
        text-align: left;
        font-size: clamp(18px, calc(16px + 0.5vw), 22px);
        padding: 10px 20px;
    }

    & .qa-q, .qa-a {
        font-size: clamp(18px, calc(16px + 0.5vw), 22px);
        font-weight: bold;
    }

    & .qa-q {
        color: #007daf;
    }

    & .qa-a  {
        color: #f06060;
    }
}

.answer-box {
    background-color: rgba(49, 179, 231, 0.1);
    padding: 10px 2em;
    text-indent: -1.8em;
    padding-left: 3.2em;
    
    & p {
        padding: 0;
    }

    & li {
        font-size: clamp(16px, calc(8px + 1vw), 20px);
        padding-left: 1.6em;
    }

    & li::marker {
        margin: 0;
    }
}

#moushikomi {
    background-image: linear-gradient(to left, #31b2e7, #007daf);

    & h2 {
        color: #ffffff;
        margin: 90px auto;
    }

    & .sub-midashi {
        text-align: center;
        color: #ffffff;
        font-size: clamp(30px, calc(0px + 3.75vw), 45px);
        font-weight: bold;
        margin-bottom: 100px;
    }
}

.shikiri {
    width: 100%;
    height: 100%;
    margin-top: -100px;
}

form  {
    padding: 30px 60px;
    border-radius: 15px;
    background-color: #ffffff;

    & p, label {
        font-size: clamp(16px, calc(8px + 1vw), 20px);
    }

    & p, label, small {
        text-align: left;
        font-weight: normal;
        line-height: 1.75;
    }
    
    & ul{
        list-style: none;
    }

    & input, button, select {
        border-radius: 10px;
        margin-bottom: 0;
    }

    & input[type="tel"], input[type="email"], input[type="date"], textarea, select {
        width: calc(100% - 1.6rem);
    }

    & .wpcf7-form-control-wrap {
        width: 100%;
        display: block;
    }
    
    & .wpcf7-radio .wpcf7-list-item {
        display: block;
    }
}


button, input[type="submit"] {
    font-family: "Zen Maru Gothic", var(--font-family);
}

.input-wrapper {
    display: flex;
    justify-content: flex-start;
    padding: 30px;
}

.input-wrapper:not(:first-of-type) {
    border-top: 1px solid;
}

.form-hissu {
    font-size: 16px;
    color: #ffffff;
    background-image: linear-gradient(to top, #31b2e7, #007daf);
    padding: 10px 15px;
    border-radius: 30px;
    margin: 0 10px;
}

.form-caption {
    text-wrap: nowrap;
    width: 50%;
    max-width: 320px;
}

.form-selector {
    max-width: 800px;
    width: 100%;
    text-align: left;
}

.form-kakunin {
    text-indent: -1.3em;
    padding-left: 1.3em;

    & label {
        max-width: 100%;
    }
}

.send-button input[type="submit"] {
    border-radius: 10px;
}

.jukou-box {
    background-color: #ffffff;
    padding-bottom: 50px;

    & h2 {
        font-size: clamp(24px, calc(12px + 1.5vw), 30px);
        color: #707070;
        text-align: left;
        padding-left: 50px;
        padding-top: 50px;

        & img {
            display: inline-block;
        }
    }

    & p {
        padding-top: 0;
    }
}

.jukou-flex {
    display: flex;
    position: relative;
    justify-content: flex-start;
    padding-left: 50px;

    & img {
        max-width: 280px;
    }
}



.flow-jukou-next {
    margin: 0 auto;
}

#otoiawase {
    background-image: url(images/bg_contact.jpg);
    background-size: cover;
    padding-top: 160px;
    padding-bottom: 100px;

    & h2 {
        padding: 40px 200px;
        margin-top: -110px;
        margin-bottom: 40px;
        color: #ffffff;
        background-image: linear-gradient(to right, #31b2e7, #007daf);
        border-radius: 15px;
    }

    & h3 {
        font-size: clamp(26px, calc(17px + 1.5vw), 35px);
        margin-bottom: 40px;
    }

    & .container {
        background-color: #ffffff;
        padding: 40px 100px;
        border-radius: 15px;
    }

    & .contact-tel {
        font-size: clamp(35px, calc(20px + 2.5vw), 50px);
        text-align: center;
        margin-bottom: 40px;

        & a {
            text-decoration: none;
            color: #4e90d3;
        }
    }
}

#contact-thanks {
    background-image: linear-gradient(to left, #31b2e7, #007daf);

    & .container  {
        padding: 30px 60px;
        border-radius: 15px;
        background-color: #ffffff;
    
        & p {
            font-size: clamp(16px, calc(8px + 1vw), 20px);
            text-align: left;
            font-weight: normal;
            line-height: 1.75;
        }
    }

    & .link-button {
        display: block;
        width: 100%;
        height: 96px;
        margin: 0 auto;
        max-width: 400px;
        font-size: clamp(20px, calc(10px + 1.25vw), 25px);
        text-align: center;
        text-decoration: none;
        background-image: linear-gradient(to right, #31b2e7, #007daf);
        color: white;
        align-content: center;
        border-radius: 10px;
    }
}

#privacy-policy {
    & h3 {
        text-align: left;
        padding-bottom: 20px;
        font-size: clamp(20px, calc(10px + 1.25vw), 25px);
    }

    & p ,ul, ol {
        padding-bottom: 25px;
    }

    & p, li {
        font-size: clamp(16px, calc(8px + 1vw), 20px);
    }
}

footer {
    padding: 40px 30px;
    background-color: #31b2e7;
    
    & * {
        color: #ffffff;
    }

    & hr {
        border: 2px solid #ffffff;
        margin: 30px 0;
    }

    & p, li {
        font-size: 16px;
        font-weight: bold;
        width: auto;
    }

    & a {
        text-decoration: none;
    }

    & img {
        max-width: 200px;
    }

    & .footer-bottom {
        display: flex;
        justify-content: space-between;
    }
}

@media screen and (max-width: 1200px) {
    section[id] {
        & .container{
            padding-left: 30px;
            padding-right: 30px;
        }
    }
}


/*tablet*/
@media screen and (max-width: 1024px) {
    .table-category {
        & .table-flex {
            justify-content: flex-start;
            min-width: 570px;

            & div:has(.table-kogaki) {
                padding-left: 20px;
            }
        }
    }

    .table-cattext {
        width: auto;
        min-width: 550px;
    }

    .gassyuku-flex {
        & .gassyuku-num {
            width: 60px;
            height: 60px;
            font-size: 50px;
            line-height: 1;
            left: -25px;
            top: -25px;
        }
    }    
}

@media screen and (max-width: 800px) {
    p {
        font-size: 16px;
        line-height: 1.75;
        margin: 0;
    }


    h2 {
        font-size: 24px;
    }

    table {
        & tr {
            font-size: 16px;
        }
    }
    
    thead {
        & * {
            font-size: 18px;
        }
    }

    header {
        & .nav-box {
            justify-content: center;
        }
    }

    .header-nav .menu-button {
        display: flex;
        justify-content: center;
        align-items: center;
        position: fixed;
        right: 30px;
        top: 40px;
        z-index: 100;
        cursor: pointer;

        & span, span::before, span::after {
            content: '';
            display: block;
            height: 3px;
            width: 25px;
            border-radius: 3px;
            background: #007daf;
            transition: 0.5s;
            position: absolute;      
        }

        & span::before {
            bottom: 8px;
        }

        & span::after {
            top: 8px;
        }
    }
    
    .mobile-menu nav {
        width: 100%;
        height: 100%;
        position: fixed;
        bottom: 100%;
        left: 0%;
        z-index: 99;
        transition: .5s;
        text-align: center;
        padding-top: 20px;

        & ul {
            display: block;
            width: 100%;
            background-color: rgb(255 255 255 / 100%);

            & li {
                display: block;
                text-align: center;
                padding: 30px 4em;
                margin: 0;
                border-bottom: 1px solid rgb(51 51 51 / 5%);
            }
        }
    }

    #menu-switch:checked ~ .menu-button span {
        background: rgb(255 255 255 / 0%);
    }
      
    #menu-switch:checked ~ .menu-button span::before {
        bottom: 0;
        transform: rotate(45deg);
    }
      
    #menu-switch:checked ~ .menu-button span::after {
        top: 0;
        transform: rotate(-45deg);
    }

    #menu-switch:not(:checked) ~ nav {
        bottom: 150%;
    }
    
    #menu-switch:checked ~ nav {
        bottom: 6%;
    }

    .intro {
        & h2 {
            margin-top: 23vw;
            font-size: 32px;
        }
    }

    #main-nav {
        & ul {
            flex-wrap: wrap;
            justify-content: center;
        }

        & li {
            margin: 0.5em;
        }

        & a {
            max-width: none;
            font-size: 20px;
        }
    }

    .subtitle {
        font-size: 22px;
        text-decoration: underline 2px;
        text-underline-offset: 7px;
        line-height: 70px;
    }

    div:is(.groupwari-1, .groupwari-2) {
        & h4 {
            font-size: 20px;
        }
    }

    details {
        & h2 {
            font-size: 24px;
        }
    }

    .table-mini {
        display: block;
        border-radius: 10px;
        border-collapse: collapse;
        border-bottom: 1px solid #aaaaaa;
        & tbody tr:last-of-type td {
            border-bottom: none;
        }
    }

    .table-kogaki {
        font-size: 14px;
    }

    .jinzai-box {
        padding: 30px;

        & h3 {
            font-size: 18px;
        }

        & p {
            font-size: 16px;
        }
    }

    .juri-kingaku {
        font-size: 18px;
        padding: 20px 0;
    }

    .chuui-box {
        margin: 30px 0 0;
        
        & h2 {
            font-size: 24px;
        }
    
        & li {
            font-size: 16px;
            text-indent: -1.2em;
            padding-left: 1.2em;
        }
    }

    .flow-shikaku-nav {
        & li {
            width: 50%;
        }

        & a {
            font-size: 20px;
        }
    }

    #shikaku-merit {
        & .merit-num {
            width: 75px;
            height: 75px;
            font-size: 50px;
            line-height: 1.3;
            left: 34%;
            top: -50px;
        }

        & .flex-frame {
            display: block;
        }

        & .merit-num {
            left: clamp(135px, calc(-65px + 50vw), 335px);
            top: -50px;
        }

        & .merit-box {
            width: 100%;
            padding: 40px 20px 25px;
            margin: 20px auto 120px;
        }

        & .merit-box:last-of-type {
            margin-bottom: 0;
        }

    }

    .table-category {
        & h3 {
            margin: 0 0 0px;
            font-size: 20px;
        }

        & th {
            font-size: 20px;
        }
    }

    .flow-kyoka-title {
        font-size: 30px;
        margin-bottom: 50px;
    }

    #drone-gassyuku h2 {
        margin-bottom: 50px;
    }

    /*.gassyuku-flex {
        & h3 {
            margin: 0px 26px;
            font-size: 20px;
        }

        & p {
            padding: 15px 30px;
        }
    }*/

    .gassyuku-flex {
        display: block;

        & h3 {
            margin: 20px 0;
        }

        & p {
            padding: 0;
        }

        & .gassyuku-img, .gassyuku-text {
            width: 100%;

            & img {
                margin: auto;
            }
        }

        & .gassyuku-num {
            width: 60px;
            height: 60px;
            font-size: 50px;
            line-height: 1;
            left: clamp(-30px, calc(-175px + 36.25vw), 115px);
            top: -25px;
        }
    }

    .gassyuku-flex:last-of-type {
        margin-bottom: 0;
    }

    .shisetsu-gaiyou {
        & table {
            display: grid;
        }
        
        & tr, th, td {
           display:block;
           width: 100%;
        }

        & th, td {
            padding: 30px;
        }

        & tr {
            padding: 0;
        }

        & th {
            font-size: 18px;
        }

        & td {
            & p {
                font-size: 16px;
            }
        }
    }

    .shisetsu-name {
        font-size: 18px;
        margin-bottom: 20px;

        & img {
            height: 18px;
        }
    }

    .shisetsu-shosai {
        font-size: 18px;
        padding: 20px 50px;
    }

    #qanda {
        & h3 {
            text-indent: -1.4em;
            padding-left: 2.5em;
        }
    }

    #moushikomi {
        & h2 {
            margin: 40px auto;
        }

        & .sub-midashi {
            font-size: 30px;
            margin-bottom: 40px;
        }
    }

    form {
        padding: 30px;

        & p, label {
            font-size: 16px;
        }
    }

    .input-wrapper {
        display: block;
        padding: 30px 0;
    }

    .form-caption {
        width: 100%;
        margin-bottom: 20px;
    }

    .send-button button {
        padding: 1em;
    }

    .form-hissu {
        padding: 5px 10px;
    }

    .jukou-box {
        & h2 {
            font-size: 24px;
        }
    }

    #otoiawase {
        padding: 160px 30px 100px;

        & h2 {
            padding: 40px 20px;
        }

        & .container {
            background-color: #ffffff;
            padding: 40px 30px;
            border-radius: 15px;
        }
    }
}

/*mobile*/
@media screen and (max-width: 600px) {

    header {
        & .header-catch {
            display: block;
        }
    }

    .sp-only {
        display: block;
    }

    .intro {
        height: 90vw;

        & h2 {
            margin-top: 40vw;
            font-size: 27px;
        }
    }

    details {
        & p {
            padding: 50px 0;
        }
    }

    #banner img {
        margin: 0 auto;
        padding: 0 2em;
    }

    #main-nav {
        & nav {
            width: 100%;
        }

        & ul {
            width: 100%;
            display: block;
            margin: 0 30px;
        }

        & li {
            width: 100%;
            display: block;
            margin: 0;
        }

        & a {
            display: block;
            width: 100%;
            margin: 15px auto;
        }
    }

    .shadow-box {
        & p {
            padding: 30px;
        }
    }

    .ikusei-shien {
        border: none;
    }

    .detail-flex {
        display: block;
    }

    .detail-flex > div {
        width: 100%;
    }

    .flow-shikaku-nav {
        & ul {
            display: block;
        }

        & li {
            width: 100%;
            margin: 0 0 20px;
            display: block;
        }
    }

    .table-category {
        & h3 {
            font-size: 20px;
        }

        & .table-flex {
            min-width: 500px;

            & h3 {
                font-size: 18px;
            }    
        }
    }

    .category-shinsei {
        padding: 5px;
        width: 120px;
    }

    .jukou-box {
        padding: 30px;

        & h2 {
            padding-left: 0px;
            font-size: 24px;

            & img {
                display: block;
            }
        }

        & p {
            padding: 0 0 50px;
        }
    }

    .jukou-flex {
        display: block;
        padding-left: 0px;

        & img {
            margin: 0 auto 20px;
            width: 100%;
        }
    }

    .jukou-flex:last-of-type p {
        padding-bottom: 0;
    }

    #shikaku-merit {
        & .subtitle {
            display: block;
            margin: 0.5em;
        }
    }

    .shikiri {
        height: 100%;
        margin-top: -75px;
    }

    #otoiawase {
        padding: 160px 30px 100px;

        & h2 {
            padding: 40px 20px;
        }

        & h3 {
            font-size: 26px;
        }

        & .container {
            background-color: #ffffff;
            padding: 40px 30px;
            border-radius: 15px;
        }

        & .contact-tel {
            font-size: 35px;
        }
    }

    footer {
        & .footer-bottom {
            display: block;
        }

        & p {
            margin-bottom: 20px;
        }

        & ul li {
            margin: 0;
            display: block;
        }
    }
}

@media screen and (max-width: 400px) {
    #menu-switch:checked ~ nav {
        bottom: 10%;
    }
}