@charset "UTF-8";

/*Base setting*/

:where(:not(iframe, canvas, img, svg, video):not(svg*)) {
    all: unset;
    display: revert
}

*, ::after, ::before {
    box-sizing: border-box
}

ol, ul {
    list-style: none
}

img {
    width: 100%;
    max-width: 100%;
    height: auto;
}

table {
    border-collapse: collapse
}

textarea {
    white-space: revert
}

*, ::after, ::before {
    box-sizing: border-box
}

blockquote, body, dd, dl, figure, h1, h2, h3, h4, p {
    margin: 0
}

ol[role=list], ul[role=list] {
    list-style: none
}

html:focus-within {
    scroll-behavior: smooth
}

html {
    overflow-y: scroll;
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    text-rendering: optimizeSpeed;
    line-height: 1.5
}

a:not([class]) {
    -webkit-text-decoration-skip: ink;
    text-decoration-skip-ink: auto
}

button, input, select, textarea {
    font: inherit
}

a {
    text-decoration: none
}

button {
    padding: 0;
    margin: 0;
    cursor: pointer;
    background-color: transparent;
    border: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none
}

input[type=button], input[type=submit] {
    -webkit-appearance: none;
    border-radius: 0
}

/*custom properties*/

:root {
    --max-rayout-width: 12;/*最大幅1200px*/
    --bg-color: #ffffff;
    --text-color: #333333;
    --text-sub-color: #555555;
    --main-color: var(--purple);
    --sub-color: var(--green);
    --white: #ffffff;
    --black: #000000;
    --red: #D13C36;
    --pink: #FC5195;
    --green: #00A458;
    --orange: #ED7100;
    --purple: #A63480;
    --yellow: #FFF462;
    --midium-green: #7EBF41;
    --midium-purple: #CA67A4;
    --midium-orange: #F3981C;
    --light-green:#dfefcf;
    --light-yellow:#FFFDE5;
    --light-blue:#E0F1F4;
    --light-pink: #f7d9e3;

    /*最小ビューポート幅320px、最大ビューポート幅800px*/
    --font-xxx-large: clamp(2rem, 1rem + 5vw, 3.5rem);/*最小32px、最大56px*/
    --font-xx-large: clamp(1.5rem, 1.167rem + 1.67vw, 2rem);/*最小24px、最大32px*/
    --font-x-large: clamp(1.25rem, 1.083rem + 0.83vw, 1.5rem);/*最小20px、最大24px*/
    --font-large: clamp(1.125rem, 0.958rem + 0.83vw, 1.375rem);/*最小18px、最大22px*/
    --font-midium: clamp(1rem, 0.833rem + 0.83vw, 1.25rem);/*最小16px、最大20px*/
    --font-small: clamp(0.875rem, 0.708rem + 0.83vw, 1.125rem);/*最小14px、最大18px*/
    --font-x-small: clamp(0.75rem, 0.667rem + 0.42vw, 0.875rem);/*最小12px、最大14px*/
    --font-xx-small: clamp(0.625rem, 0.542rem + 0.42vw, 0.75rem);/*最小10px、最大12px*/
}

/*Design setting*/

.bk-sky-gradient {
    background: linear-gradient(180deg, #CBF4FF 0%, #FFFFFF 25%, #FFFFFF 100%);
}

.bk-white {
    background-color: var(--white);
}

.bk-green {
    background-color: var(--green);
}

.bk-purple {
    background: var(--midium-purple);
}

.bk-light-blue {
    background-color: var(--light-blue);
}

.bk-midium-green {
    background-color: var(--green);
}

.border-top-midium-green {
    border-top: 16px solid var(--midium-green);
}

.border-top-orange {
    border-top: 16px solid var(--midium-orange);
}

/*Font setting*/

.font-xxx-large {
    font-size: var(--font-xxx-large);
}

.font-xx-large {
    font-size: var(--font-xx-large);
}

.font-x-large {
    font-size: var(--font-x-large);
}

.font-large {
    font-size: var(--font-large);
}

.font-midium {
    font-size: var(--font-midium);
}

.font-small {
    font-size: var(--font-small);
}

.font-x-small {
    font-size: var(--font-x-small);
}

.font-xx-small {
    font-size: var(--font-xx-small);
}

/*Text setting*/

.block {
    display: block;
}

.inline-block {
    display: inline-block;
}

.inline {
    display: inline;
}
.text {
    margin-top: 1rem;
    line-height: 1.75;
}

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

.text-x-small {
    font-size: 0.5em;
}

.text-small {
    font-size: 0.75em;
}

.text-large {
    font-size: 1.5em;
}

.text-list {
    list-style: disc;
}

.text-red {
    color: var(--red);
}

.text-green {
    color: var(--green);
}

.width-marker {
    background: linear-gradient(transparent 80%, var(--yellow) 20%);
}

.link-text {
    display: inline-block;
    text-decoration: underline;
}

.link-text:hover {
    background-color: var(--sub-color);
}

a:not(.site-name),
a:not(.site-name):hover,
a:not(.site-name):active,
a:not(.site-name):visited {
    color: var(--text-color);
}

/*-----------Btn setting-----------*/

.btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #ccc;
    padding-block: 1rem;
    min-height: min(80vw / var(--max-rayout-width), 80px);
    transition: 0.3s;
    
    img {
        display: inline-block;
        height: auto;
        margin: 0 auto;
        filter: drop-shadow(2px 2px 0px rgba(0,0,0,0.5));
    }
}

.btn:hover {
    box-shadow: none;
    transform: translate(2px, 2px);
    img {
        filter: none;
    }
}

.btn::after {
    display: block;
    width: 24px;
    height: 24px;
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: .5rem;
    margin: auto;
    background: url(../img/btn_arrow.svg) no-repeat center center / contain;
}

@media (width >= 768px) {
    .btn::after {
        width: min(64vw / var(--max-rayout-width), 64px);
        height: min(64vw / var(--max-rayout-width), 64px);
    }
  }

.btn-type-a {
    padding-block: 1.5rem;
    border-radius: 2.5rem;
    box-shadow: 
        2px 4px 0px 0px rgba(0,0,0,0.25) inset,
        2px 4px 0px 0px rgba(255,255,255,1);
    
    img {
        width: 70%;
        height: auto;
        margin: 0 auto;
        transform: translateX(-0.5rem);
    }
}

@media (width >= 768px) {
    .btn-type-a {
        img {
            
            width: min(360vw / var(--max-rayout-width), 360px);
            transform: translateX(-1.5rem);
            
        }
    }
  }

.btn-type-b {
    padding-block: 1.5rem;
    min-height: min(96vw / var(--max-rayout-width), 96px);
    border:2px solid #000;
    border-radius: 1rem;
    box-shadow: 
        2px 4px 0px 0px rgba(0,0,0,0.25) inset,
        2px 4px 10px 0px rgba(0,0,0,0.5);
    
    img {
        width: 70%;
        height: auto;
        margin: 0 auto;
    }
}

@media (width >= 768px) {
    .btn-type-b {
        padding-block: 0;
        border:4px solid #000;

        img {
            width: min(520vw / var(--max-rayout-width), 520px);
        }
    }
  }

.plan1 {
    .btn {
        background-color: var(--green);
    }
    .btn-type-b {
        border-color: var(--midium-green);
    }
}

.plan2 {
    .btn {
        background-color: var(--orange);
    }
    .btn-type-b {
            border-color: var(--midium-orange);
        }
}

.plan3 {
    .btn {
        background-color: var(--purple);
    }
    .btn-type-b {
            border-color: var(--midium-purple);
        }
}

/*-----------Page setting-----------*/

body, html {
    font-family: "Zen Maru Gothic", sans-serif;
    color: var(--text-color);
    word-break: break-word
}

body {
    background-color: var(--bg-color);
    position: relative;
    display: flex;
    flex-flow: column;
    min-height: 100vh;
}

/*Header setting*/

.header {
    width: 100%;
    background-color: var(--white);
    display: flex;
    justify-content: center;
    padding: 0.75rem;

    .headerlogo {
        width: 80vw;
        max-width: 540px;
        height: auto;
    }
}

/*Section setting*/

.section {
    position: relative;
    padding-block-end: 3rem;
    text-align: center;
}

@media (width >= 768px) {
    .section {
        padding-block-end: 8rem;
    }
  }

.inner {
    position: relative;
    width: min(95vw, calc(var(--max-rayout-width) * 100px));
    margin: auto;
    text-align: center;
}

/*Top Section*/

.section-top {
    width: 100%;
    position: relative;
    padding-block-end: 0;
}

.section-top::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100vh;
    background-color:rgba(142, 210, 244, 1);
    z-index:10;
    animation: Makuake .75s ease-out;
    animation-delay: .5s;
    animation-fill-mode: forwards;
    transform-origin: left top;
}

@keyframes Makuake {
    0% {
        animation-timing-function: linear;
		opacity: 1.0;
    }

    100% {
        animation-timing-function: linear;
		opacity: 0;
    }
}

.top-title {
    position: relative;
    width: 100%;
    background: linear-gradient(0deg,rgba(178, 210, 87, 0.5) 27%, rgba(178, 210, 87, 0.5) 36%, rgba(230, 229, 195, 1) 45%, rgba(142, 210, 244, 0.5) 70%, rgba(142, 210, 244, 0.5) 100%);
}

.top-title-wrap {
    position: relative;
    width: 100vw;
    height: 100vw;
    margin: 0 auto;
    background: url(../img/kv_bk_pc.png) no-repeat center center / cover;
}

@media (width >= 768px) {
    .top-title-wrap {
        max-width: 1440px;
        height: 68.333vw;
        max-height: 984px;
        background: url(../img/kv_bk_pc.png) no-repeat center center / contain;
    }
  }

.site-title {
    position: absolute;
    top: min(100vw / 14.4, 100px);
    right: 0;
    left: 0;
    margin: auto;
    width:70%;
    height: auto;
    z-index: 2;
    animation: titleIn .5s ease-out;
    animation-delay: 2s;
    animation-fill-mode: forwards;
    opacity: 0;
    transform-origin: left top;
}

@media (width >= 768px) {
    .site-title {
        width:min(750vw / 14.4, 750px);
    }
  }

@keyframes titleIn {
    0% {
        animation-timing-function: linear;
		transform: translate(0px,0px) scale(1,0) rotate(0deg) skew(0deg,0deg);
		opacity: 0;
    }

    100% {
        animation-timing-function: linear;
		transform: translate(0px,0px) scale(1,1) rotate(0deg) skew(0deg,0deg);
		opacity: 1.0;
    }
}

.site-catch {
    position: absolute;
    bottom:56px;
    right:16px;
    width: 60%;
    height: auto;
    z-index: 4;
    animation: catchIn 1.5s ease-out;
    animation-delay: 0.5s;
    transform-origin: left bottom;
}

@media (width >= 768px) {
    .site-catch {
        width: min(750vw / 14.4, 750px);
        bottom: min(96vw / 14.4, 96px);
        right: min(80vw / 14.4, 80px);
    }
  }

@keyframes catchIn {
    0% {
        transform: scale(0);
        opacity: 0;
    }

    50% {
        opacity: 0;
    }

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

.top-talent {
    position: absolute;
    bottom:16px;
    left:8px;
    width: 48vw;
    height: auto;
    z-index: 2;
    animation: talentIn .5s ease-out;
    animation-delay: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@media (width >= 768px) {
    .top-talent {
        bottom: min(48vw / 14.4, 48px);
        left: min(80vw / 14.4, 80px);
        width: min(576vw / 14.4, 576px);
    }
  }

@keyframes talentIn {
    0% {
        transform: translateX(-100px);
        opacity: 0;
    }
    100% {
    transform: translateX(0);
    }
    40%,100% {
    opacity: 1;
    }
}

/*Map Section*/

.section-map {    
    .map {
        position: relative;
        padding: 2rem 1rem;
        background: var(--white);
        transform: translateY(40px);
        animation: mapIn 1.5s ease-out;
        animation-delay: 2s;
        animation-fill-mode: forwards;
        opacity: 0;
    }
    .map-talent {
        position: absolute;
        top:220px;
        left:16px;
        width: 132px;
        height: auto;
    }
    .map-chara {
        width: 90%;
        height: auto;
        margin: 1rem auto 0 auto;
    }
    .map-illust-patlight {
        position: absolute;
        top:-24px;
        left:0;
        right:0;
        width: 80px;
        height: auto;
        margin: auto;
        z-index: 2;
    }  
    .map-map {
        margin-block-start: 2rem;
        margin-inline: auto;
        max-width: 1094px;
        height: auto;
    }
    .map-lead {
        top:1rem;
        left:0;
        right:0;
        margin: auto;
    }
    .map-heading {
        font-size: clamp(1.25rem, -0.386rem + 3.41vw, 2rem);
        color: var(--red);
        line-height: 1.4;
        text-align: center;
    }
    .map-text {
        font-size: clamp(1.125rem, -4.875rem + 12.5vw, 1.375rem);
        font-weight: 700;
        text-align: center;
    }
    @media (width >= 768px) {
        padding-block-end: 4rem;

        .map { 
            padding: 3rem 3rem 3rem 3rem;
            box-shadow: 16px 16px 0px 0px rgba(0, 0, 0, 0.25);
            transform: translateY(-32px);
        }
        .map-talent {
            top: min(48vw / var(--max-rayout-width), 48px);
            left: min(48vw / var(--max-rayout-width), 48px);
            width: min(300vw / var(--max-rayout-width), 300px);
        }
        .map-chara {
            position: absolute;
            top: min(48vw / var(--max-rayout-width), 48px);
            left: min(376vw / var(--max-rayout-width), 376px);
            width: min(480vw / var(--max-rayout-width), 480px);
        }
        .map-illust-patlight {
            top: min(256vw / var(--max-rayout-width), 256px);
            left: min(16vw / var(--max-rayout-width), 16px);
            width: min(184vw / var(--max-rayout-width), 184px);
            margin: 0 0 0 0;
        }
        .map-map {
            margin-block-start: 7rem;
        }
        .map-lead {
            position: absolute;
            top: min(352vw / var(--max-rayout-width), 352px);
            left: min(48vw / var(--max-rayout-width), 48px);
            margin: 0 0 0 0;
        }
        .map-heading {
            margin-block-start: .75rem;
            text-align: left;
        }
        .map-text {
            height: 5em;
            margin-block-start: .5rem;
            text-align: left;
        }
    }
}

@keyframes mapIn {
    0% {
        transform: translateY(80px);
        opacity: 0;
    }

    50% {
        opacity: 0;
    }

    100% {
        transform: translateY(40px);
        opacity: 1;
    }
}

@media (width >= 768px) {
    @keyframes mapIn {
    0% {
        transform: translateY(80px);
        opacity: 0;
    }

    50% {
        opacity: 0;
    }

    100% {
        transform: translateY(-32px);
        opacity: 1;
    }
}           
}

/*Plan Title*/

.plan-icon {
    display: block;
    width: auto;
    margin: 0 auto;
    height: 80px;
}
@media (width >= 768px) {
    .plan-icon {
        height: min(128vw / var(--max-rayout-width), 128px);
    }   
  }

.plan-title {
    position: relative;
    font-size: var(--font-xx-large);
    line-height: 1.4;
    white-space: nowrap;
}

.plan1 {
    .plan-title {
        color: var(--midium-green);
    }
}
.plan2 {
    .plan-title {
        color: var(--midium-orange);
    }
}
.plan3 {
    .plan-title {
        color: var(--midium-purple);
    }
}

/*Lead Section*/

.section-lead {
    .section-lead-title {
        padding-block-start: 1rem;
        padding-block-end: 4rem;
        
    }
    @media (width >= 768px) {
        .section-lead-title {
            padding-block-start: 0;
            padding-block-end: 7rem;    
        }
    }
    .lead-title {
        width: 100%;
        margin: 0 auto 0 auto;
    }
    @media (width >= 768px) {
        .lead-title {
            width: 90%;    
            max-width: 904px;
        }
    }
    .lead-point {
        width: 80%;
        max-width: 520px;
        margin: 0 auto 0 auto;
        transform: translateY(-48px);
        
    }
    @media (width >= 768px) {
        .lead-point {
            transform: translateY(-92px);    
        }        
    }
    .plan-index {
        display: block;
    }
    @media (width >= 768px) {
        .plan-index {
            
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            gap:3rem;
        }
    }
    .plan-index-card {
        margin-block-start: 3rem;
        background: var(--white);
        border-radius: 1rem;
    }
    @media (width >= 768px) {
        .plan-index-card {
            width: calc(50% - 1.5rem);    
        }
    }
    .plan-index-card.plan1 {
        margin-block-start: 0;
    }
    @media (width >= 768px) {
        .plan-index-card.plan1 {
            margin-block-start: 3rem;
        }
        .plan-index-card.plan3 {
            margin-block-start: 1rem;
        }
    }
    .plan-tag {
        width: 196px;
        height: auto;
        transform: translateY(-1.5rem);
    }
    .plan-icon {
        height: 64px;
    }
    @media (width >= 768px) {
        .plan-icon {
            height: min(98vw / var(--max-rayout-width), 98px);
        }
    }
    .plan-card-text {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-block-start: 1rem;
        font-size: var(--font-large);
        font-weight: 700;
        line-height: 1.4;
    }
    @media (width >= 768px) {
        .plan-card-text {
            height: 5rem;
        }
    }
    .plan-card-btn {
        margin-block-start: 1rem;
        padding: 1rem;
        background: var(--yellow);
        border-radius: 0 0 1rem 1rem;
    }
    @media (width >= 768px) {
        .plan-card-btn {
            padding: 1.5rem;
        }
    }
    .plan-card-exp {
        width: 90%;
        max-width: 528px;
        height: auto;
        margin-block-start: 1rem;;
    }
    .plan1 {
        border:4px solid var(--midium-green);
    }
    .plan2 {
        border:4px solid var(--midium-orange);
    }
    .plan3 {
        width: 100%;
        border:8px solid var(--midium-purple);

        .plan-card-text {
            color: var(--red);
        }
        @media (width < 1160px) {
            .plan-card-text br {
                display: none;
            }
        }
    }
    .plan3-wrap {
        margin-block-start: 0;
        margin-inline: 2rem;
        display: grid;
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    @media (width >= 768px) {
        .plan3-wrap {
            min-height: 320px;
            margin-block-start: -5rem;
            grid-template-columns: 1fr 1fr 1fr;
            align-items: end;
        }
    }
    @media (width < 768px) {
        .plan3-talent {
            width: 70%;
            height: auto;
            margin: 0 auto 0 auto;
        }
        .plan3-lead {
            padding-block-start: 2rem;;
            border-top:4px dotted var(--midium-purple);
        }
    }
}

/*Movie*/

.movie {
    position:relative;
    aspect-ratio: 16 / 9;
    margin: -1rem auto 4rem auto;
    border:1px solid var(--black);
}
.movie iframe {
    width: 100%;
    height: 100%;
}

@media (width >= 1024px) {
    .movie {
        width: 75%;
    }
            
}

/*Plan Section*/

.section-plan-tag {
    display: block;
    margin: 2rem auto;
    width: 50%;
    height: auto;
}

@media (width >= 768px) {
    .section-plan-tag {
        margin: 4rem auto;    
        width: 240px;
    }
  }

.section-plan {
    .plan-title {
        font-size: var(--font-xxx-large);
    }
}

.section-plan-text {
    margin-block-start: 1rem;
    padding-inline: 1rem;
    font-size: var(--font-medium);
    font-weight: 700;
    line-height: 1.6;
    text-align: left;

    br {
        display: none;
    }
}
@media (width >= 768px) {
    .section-plan-text {
        padding-inline: 0;
        font-size: var(--font-large);
        text-align: center;

        br {
            display: block;
        }
    }
}

.section-plan-btn {
    margin-block-start: 3rem;
}
    
.section-plan.plan3 {
    margin-block-start: 4rem;
}

/*ご加入条件*/

.condition {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    width: 90%;
    max-width: 960px;
    margin: 2rem auto 3rem auto;
    padding: 1rem;
    border:4px solid #000;
    border-radius: 1rem;
}
@media (width >= 768px) {
    .condition {
        margin-block-start: 4rem;
        flex-direction: row;
    }   
  }
.condition::after {
    display: block;
    content: "";
    position: absolute;
}

.plan1 {
    .condition {
        border-color: var(--midium-green);
    }
    .condition::after {
        top: 16px;
        right: -16px;
        width: 112px;
        height: 68px;
        background:url(../img/illust_bicycle.png) no-repeat center center / contain;
    }
    @media (width >= 768px) {
        .condition::after {
            top: min(-32vw / var(--max-rayout-width), -32px);
            right: min(8vw / var(--max-rayout-width), 8px);
            width: min(210vw / var(--max-rayout-width), 210px);
            height: min(127vw / var(--max-rayout-width), 127px); 
        }
    }
}
.plan2 {
    .condition {
        margin-block-start: 3rem;
        border-color: var(--midium-orange);
    }
    @media (width >= 768px) {
        .condition {
            margin-block-start: 6rem;
        }
    }
    .condition::after {
        background:url(../img/illust_couple.png) no-repeat center center / contain;
    }  
    @media (width < 768px) {
        .condition::after {
            top: -32px;
            right: -4px;
            width: 112px;
            height: 121px;
        }   
    }
    @media (width >= 768px) {
        .condition::after {
            bottom: 0;
            right: min(8vw / var(--max-rayout-width), 8px);
            width: min(225vw / var(--max-rayout-width), 225px);
            height: min(243vw / var(--max-rayout-width), 243px);  
        }
    }
}

.condition-title {
    min-width: 80px;
    max-width: 128px;
    margin-block-end: 1rem;
    margin-inline-end: 0.5rem;
    position: relative;
    font-size: var(--font-large);
    font-weight: 700;
    line-height: 1.4;
}
@media (width >= 768px) {
    .condition-title {
        margin-block-end: 0;
    }
  }

.condition-icon {
    display: block;
    margin: 0 auto 0.25rem auto;
    width: 64px;
    height: auto;
}
.condition-list {
    list-style-type: decimal;
    text-align: left;
    font-size: var(--font-midium);
    line-height: 1.4;
    margin: 0 0 0 0;
}
.condition-list-item:not(:first-child) {
    margin-block-start: 0.75em;
}
.condition-age {
    width: 100%;
}
.condition-age dl {
    font-size: var(--font-midium);
    line-height: 1.4;
}
.condition-age dt {
    padding: .5rem 0;
    text-align: center;
    background-color: var(--orange);
    color:var(--white);
}

.condition-age dd {
    padding: .5rem 0;
    text-align: center;
}
@media (width >= 768px) {
    .condition-age {
        width: auto;
        margin-inline-start: 1rem;
    }
    .condition-age dl {
        width: min(584vw / var(--max-rayout-width), 584px);
        display: flex; 
        justify-content: space-between;
        align-items: center;
        background-image : linear-gradient(to right, rgb(0, 0, 0), rgb(0, 0, 0) 2px, transparent 2px, transparent 5px); 
        background-size: 4px 2px;  
        background-position: center;
        background-repeat: repeat-x;
    }
    .condition-age dt {
        background-color:var(--white);
        color:var(--text-color)
    }
    .condition-age dt::before {
        content:"●";
        color:var(--orange);
    }
    .condition-age dd {
        width: 200px;
        white-space: nowrap;
        padding-inline-start: 0.5em;
        text-align: left;
        background-color:var(--white);
    }
  }

/*Heading setting*/

.heading-title {
    margin: 4rem auto 2rem auto;
    padding-block-end: 1rem;
    border-bottom:5px solid var(--green);
    font-size: var(--font-xx-large);
    text-align: center;
}

@media (width >= 768px) {
    .heading-title { 
        margin: 4rem auto 4rem auto;
    }
}

/*キャライラスト*/
.chara-illust {
    margin-block-start: 1rem;
    height: auto;        
}
.plan1 .chara-illust {
    width: 50%;
}
.plan2 .chara-illust {
    width: 60%;
}

@media (width >= 768px) {
    .chara-illust {
        position: absolute;
        height: auto;
        z-index: 2;
        margin-block-start: 0;
    }
    .plan1 .chara-illust {
        position: absolute;
        top: min(64vw / var(--max-rayout-width), 64px);
        left: min(128vw / var(--max-rayout-width), 128px);
        width: min(316vw / var(--max-rayout-width), 316px);
    }
    .plan2 .chara-illust {
        position: absolute;
        top: min(80vw / var(--max-rayout-width), 80px);
        right: min(24vw / var(--max-rayout-width), 24px);
        width: min(384vw / var(--max-rayout-width), 384px);
    }    
  }

.plan-guide-note {
    width: 90%;
    margin: 1rem auto 0 auto;
    padding-inline-start: 1em;
    font-size: var(--font-small);
    text-align: left;
    text-indent: -1em;
}

.plan-table {

    table {
        margin: 1rem auto 0 auto;
        border-collapse: separate;
        border-spacing: 0;
        width: 90%;
        border: 4px solid #000;
    }

    th,
    td {
        padding: 1em 0.5em;
        border-top: 2px solid #ccc;
        text-align: center;
        font-weight: normal;
        font-size: clamp(0.875rem, 0.739rem + 0.68vw, 1.25rem);
    }

    th:not(:last-child),
    td:not(:last-child) {
        border-right: 2px solid #ccc;
    }
    thead th {
        font-weight: 700;
        background: #f5f5f5;
        border-top: none;
        color: var(--black);
    }

    td {
        height: 3em;
    }

    .small {
        font-size: 0.75em;
    }

    .period {
        display: inline-block;
        margin-right: 0.5em;
        font-size: 0.75em;
    }

    .vertical_text {
        writing-mode: vertical-rl;
        white-space: pre;
        display: inline-block;
    }

    .plan-guide-note {
        margin-block-start: 1rem;
    }
}

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

    dt {
        width: 120px;
        height: 120px;
    }
    dt img {
        width: 100%;
        height: auto;
    }

    dd {
        width: calc(100% - 136px);
        text-align: left;
        /*最小ビューポート幅768px、最大ビューポート幅1180px、最小13px、最大22px*/
        font-size: clamp(0.813rem, -0.236rem + 2.18vw, 1.375rem);
    }
}

.plan1 {
    .plan-table {
        table {
            border: 4px solid var(--midium-green);
        }
        th,
        td {
            border-top: none;
        }
        thead th {
            background: var(--midium-green);
        }
        
        tbody tr:nth-child(odd) th,
        tbody tr:nth-child(odd) td {
            background: var(--light-green);
        }
    }
    @media (width >= 768px) {
        thead th:nth-child(1) {
            width: 70%;
        }
    }
    @media (width < 768px) {
        thead th:nth-child(1) {
            width: 60%;
        }
    }
    @media (width < 768px) {
        .plan-table-dl {
            width: 100%;
            display: block;
            text-align: center;

            dt {
                width: 100%;
                height: auto;
                text-align: center;
            }
            dt img {
                width: 64px;
                height: 64px;
                margin: auto;
            }
            dd {
                display: block;
                width: 100%;
                font-size: var(--font-midium);
            }
            dd p {
                margin-block-start: .5rem;
            }
            dd br {
                display: none;
            }
        }
    }
}

.plan2 {
    @media (width < 768px) {
        .plan-table {
            overflow-x:auto;
        }
        table {
            width: 600px;
        }
      }
    table {
        border: 4px solid var(--midium-orange);
    }
    tbody th,
    tbody td {
        padding: 0 0;
    }
    tbody th p {
        text-align: center;
    }
    thead tr:nth-child(2) th  {
        border-top: 2px solid #ccc;
    }
    thead tr:nth-child(1) th:nth-child(1) {
        width: 50%;
    }
    thead th {
        background: var(--midium-orange);
    }
    tbody tr:nth-child(odd) th,
    tbody tr:nth-child(odd) td {
        background: var(--light-yellow);
    }
    .sub-border {
        height: 5rem;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-block-start:-2px ;
        border:2px dashed #ccc;
        text-align: center;
    }
    td .sub-border {
        border-left:none;
        border-right:none;
    }
    th .sub-border {
        border-right:none;
    }
    th .sub-border:last-child,
    td .sub-border:last-child {
        border-bottom:none;
    }
    tr:nth-child(2) th p:first-child,
    tr:nth-child(2) td p:first-child {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 4rem;
        text-align: center;
    }
    .plan-table-dl {
        margin: 1rem;
    }
    @media (width < 768px) {
        .plan-table-dl {
            dt {
                width: 80px;
                height: 80px;
            }
            dd {
                width: calc(100% - 96px);
            }
        }
    }
    tr:nth-child(2) .plan-table-dl {
        margin-block: 0;
        margin-inline-end: 0;
    }
    .price {
        vertical-align: baseline;
        font-size: var(--font-xx-large);
        font-weight: 700;
    }
}


.section-plan3-lead {
    position: relative;
    width: min(95vw, calc(var(--max-rayout-width) * 100px));
    margin: auto;
    padding-block: 2rem;
    text-align: center;

    .section-lead-title {
        font-size: var(--font-xx-large);
        color:var(--yellow);
        z-index: 3;
    }
    @media (width < 1024px) {
        .section-lead-title {
            font-size: var(--font-x-large);
        }
      }
    .plan3-lead-talent {
        position: absolute;
        width: 60%;
        top: -11rem;
        left: 0;
        right:0;
        margin: auto;
        height: auto;
        z-index:2;
    }
    @media (width >= 768px) {
        .plan3-lead-talent {
            width: min(400vw / var(--max-rayout-width), 400px);
            top: -4rem;
            left: -4rem;
            margin: 0;
        }
      }
}

.section-plan.plan3 {
    @media (width < 768px) {
        margin-block-start: 14rem;
    }
    .inner {
        padding: 2rem 1rem;
    }
    @media (width >= 768px) {
        .inner {
            padding: 4rem 2rem;
            box-shadow: 16px 16px 0px 0px rgba(0, 0, 0, 0.25);
        }
    }
    .section-plan-tag {
        margin-block: 0 1rem;
    }
    @media (width >= 768px) {
        .plan3-set {
            width: 1186px;
            height: auto;
            margin-inline: auto;
            margin-block-start: min(-48vw / var(--max-rayout-width), -48px);
        }
        .plan3-illust {
            max-width: 674px;
            height: auto;
            margin: 2rem auto 1rem auto;
        }
    }
}

/*あんしん倶楽部*/

.club-content {
    width: 100%;
    margin: 2rem auto 0 auto;
}

@media (width >= 768px) {
    .club-content {
        width: 90%;
    }
  }

.club-lead {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    margin-block-end: 2rem;
}

@media (width >= 768px) {
    .club-lead {
        flex-direction: row;
    }
  }

.club-card {
    width: 360px;
    height: auto;
}

.club-lead-text {
    width: 100%;
    margin-block-start: 1rem;
    font-size: var(--font-large);
    font-weight: 700;
    text-align: left;
}

@media (width >= 768px) {
    .club-lead-text {
        width: calc(100% - 380px);
        margin-block-start: 0;    
    }
  }

@media (width < 768px) {
    .club-lead-text br {
        display: none;
    }    
  }

.club-lead-note {
    display: block;
    margin-block-start: 0.5rem;
    padding-inline-start: 1em;
    text-indent: -1em;
    font-weight: normal;
    font-size: var(--font-small);
    color:var(--pink);
}

.club-menu {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap:1rem;
}

@media (width >= 768px) {
    .club-menu {
        grid-template-columns: 1fr 1fr 1fr;
        gap:2rem;
    }
  }

.club-menu-list {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
}

.club-menu-title {
    display: flex;
    align-items: center;
    justify-content: center;
    padding:1rem;
    border-radius: 1rem;
    background: var(--light-pink);
    font-size: var(--font-midium);
    
    font-weight: 700;
}

@media (width >= 768px) {
    .club-menu-title {
        font-size: var(--font-large);
    }
}

.club-menu-text {
    margin-block-start: 1rem;
    font-size: var(--font-midium);
    text-align: left;
}

@media (width >= 768px) {
    .club-menu-text {
        text-align: center;
    }
}

@media (width < 768px) {
    .club-menu-text br {
        display: none;
    }
}

/*FAQ*/

.faq-box {
    width: 98%;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
    margin-block-start: 1rem;
    margin-inline: auto;
	padding:1rem;
    border: 2px solid var(--green);
    border-radius: 1rem;	
	text-align: left;
}

@media (width >= 768px) {
    .faq-box {
        margin-block-start: 2rem;
    }
  }

.faq-box .faq-question {
    position: relative;
	display:inline-block;
    width:calc(100% - 40px);
	margin:10px 0px;
	padding:0px 0px 0px 48px;
    font-size: var(--font-midium);
}

@media (width >= 768px) {
    .faq-box .faq-question {
        width:calc(100% - 56px);
        padding:0px 0px 0px 80px;    
        font-size: var(--font-large);    
    }
}

.faq-box .faq-question:before {
	content:"";
	display:block;
    width:32px;
	height:32px;
	position:absolute;
	left:3px;
	top:0;
	bottom:0;
	margin:auto;
	background:url(../img/faq-q.svg) no-repeat center center / contain;
}

@media (width >= 768px) {
    .faq-box .faq-question:before {
        width:64px;
	    height:64px;
    }
}

.faq-box label {
	display:inline-block;
	border-radius: 15px;
	cursor :pointer;
	transition: .5s;
}
.faq-box label:before {
	content: '＋';
    font-weight: 700;
    font-size: var(--font-xx-large);
    color:var(--green);
	transition: 0.2s;
}
.faq-box input:checked ~ label:before {
    content: '−';
}
.faq-box input {
	display: none;
}
.faq-box .faq-answer {
    width: 100%;
	height: 0;
	padding:0 0 0 0;
	overflow: hidden;
	opacity: 0;
	transition: 0.8s;
	position: relative;
	clear:both;
    font-size: var(--font-midium);
}

.faq-box input:checked ~ .faq-answer {
	padding:1rem;
	min-height: 60px;
	height: auto;
	opacity: 1;
}

.faq-box .faq-answer small {
    color:var(--pink)
}
.faq-box .faq-answer small a {
    color:var(--pink);
    text-decoration: underline;
}

/*パンフレットダウンロード*/

.download-list {
    width: 98%;
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap:1rem;
    margin: 3rem auto 8rem auto;
    padding: 0 0 0 0;
}

.download-list-item {
    padding: 0 0 0 0;
}

@media (width < 1024px) {
    .download-list {
        width: 100%;
        grid-template-columns: repeat(1, 1fr);
    }
  }

.download-list-item a {
    position: relative;
    display: block;
    margin: auto;
    padding-block: 2rem ;
    padding-inline-start: 5.5rem;
    padding-inline-end: 1rem;
    border:3px solid var(--green);
    border-radius: 1rem;
    text-align: left;
    font-size: var(--font-large);
    /*text-indent: 88px;*/
}

@media (width < 1024px) {
    .download-list-item a {
        width: 98%;
        padding-inline-start: 4rem;
    }
  }

.download-list-item a::before {
    content: "";
    display: block;
    width: 32px;
    height: 38px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 16px;
    margin: auto;
    background: url(../img/icon-pdf.svg) no-repeat center center / contain;
}

@media (width >= 768px) {
    .download-list-item a::before {
        width: min(53vw / var(--max-rayout-width), 53px);
        height: min(63vw / var(--max-rayout-width), 63px);
        left: 1rem;
    }
  }

/*Footer Setting*/

.footer {
    padding-block: 3rem;
    border-top:5px solid var(--green);
    text-align: center;
}

.footer-menu {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    padding:0 0 0 0;
}

.footer-menu li {
    margin-block-end: 1rem;
    margin-inline: 0 ;
    margin-inline-start: -1px;
    padding-inline: 0.5rem;
    border-left: 1px solid var(--black);
    border-right: 1px solid var(--black);
    font-size: var(--font-small);

    @media (width < 768px) {
            font-size: var(--font-xx-small);
      }
}

.footer-menu li:last-child{
    width: 100%;
    flex-wrap: wrap;
    border-left: none;
    border-right: none;
    font-size: var(--font-midium);
    font-weight: 700;
}

.footer-menu li a:hover{
    text-decoration: underline;
}

.copyright {
    font-size: var(--font-small);
    color:var(--green);
}