@charset "utf-8";

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

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}

/* ============================================================
   Base
   ============================================================ */
*, *::before, *::after {
    box-sizing: border-box;
}

html, body {
    width: 100%;
    background-color: #fff !important;
    color: #333;
    line-height: 1;
    font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
}

/* ============================================================
   LP styles
   ============================================================ */
.lp {
    width: 100%;
}

.lp h1 {
    line-height: 1;
}

.lp img {
    max-width: 100%;
    vertical-align: bottom;
    height: auto;
    display: block;
}

.lp .relative {
    position: relative;
}

.lp .cart-btn {
    display: block;
    position: absolute;
    z-index: 10;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 845px;
    height: 205px;
}

.trial_wrap {
    position: relative;
}

.trial_wrap a {
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 7%;
    width: 48%;
    z-index: 10;
    margin: auto;
}

#ukokkei-landing-page-form{
    max-width: 960px;
}

/* ============================================================
   Terms page
   ============================================================ */
.terms {
    width: 960px;
    margin: 0 auto 60px;
}

.terms .bold {
    font-weight: bold;
}

.terms h1 {
    font-size: 30px;
    padding-top: 54px;
    margin-bottom: 54px;
    text-align: center;
}

.terms h2 {
    font-size: 18px;
    margin-top: 40px;
    margin-bottom: 20px;
}

.terms h3 {
    margin-top: 24px;
    font-weight: bold;
}

.terms h2,
.terms h3,
.terms p,
.terms li {
    line-height: 1.6;
}

.terms h3,
.terms p,
.terms li,
.terms table {
    margin-bottom: 12px;
    font-size: 15px;
}

.terms ul {
    list-style: none;
}

.terms ul.dot {
    list-style: disc;
    margin-left: 24px;
}

.terms ol {
    margin-left: 24px;
}

.terms ol.decimal {
    margin-left: 24px;
    list-style-type: decimal;
}

.terms ul li > ul li,
.terms ul li > ol li,
.terms ol li > ul li,
.terms ol li > ol li {
    margin-top: 8px;
    margin-bottom: 8px;
}

.terms table {
    border-collapse: collapse;
    width: 100%;
}

.terms table th {
    font-weight: bold;
}

.terms table th,
.terms table td {
    border: 1px solid #333;
    padding: 12px 16px;
    text-align: left;
    font-size: 15px;
    line-height: 1.6;
}

/* ============================================================
   Footer
   ============================================================ */
.footer-area {
    width: 920px;
    margin: 0 auto;
    padding: 32px 24px 28px;
}

.footer-menu {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-around;
}

.footer-menu li {
    text-align: center;
}

.footer-menu li a {
    color: #333;
    text-decoration: none;
    font-size: 15px;
    cursor: pointer;
}

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

.footer-area p:last-child {
    text-align: center;
    margin-top: 32px;
    color: #333;
    font-size: 12px;
}

@media screen and (max-width: 768px) {
    .footer-area {
        width: 100%;
        padding: 16px 0 12px;
    }

    .footer-menu {
        display: block;
    }

    .footer-menu li {
        margin-bottom: 10px;
    }

    .footer-area p:last-child {
        margin-top: 24px;
    }
}

/* ============================================================
   Count up
   ============================================================ */
#my-count-element {
    position: absolute;
    top: 9%;
    left: 10%;
    right: 10%;
    margin: 0 auto;
    text-align: center;
    color: #b51942;
    font-weight: bold;
    line-height: 1.2;
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: clamp(0.2em, 1vw, 0.5em);
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
    font-feature-settings: "palt";
}

.large-text {
    font-size: 1.4em;
    font-weight: bold;
}

#count-number {
    font-size: clamp(32px, 5vw, 64px);
}

.count-unit {
    font-size: clamp(18px, 2.8vw, 36px);
    display: inline-flex;
    align-items: baseline;
}

@media screen and (max-width: 600px) {
    #count-number {
        font-size: clamp(28px, 10vw, 49px);
    }

    .count-unit {
        font-size: clamp(16px, 5vw, 27px);
    }
}

@media screen and (min-width: 601px) and (max-width: 960px) {
    #count-number {
        font-size: clamp(36px, 8.5vw, 78px);
    }

    .count-unit {
        font-size: clamp(20px, 5vw, 44px);
    }
}

@media screen and (min-width: 961px) {
    #count-number {
        font-size: 100px;
    }

    .count-unit {
        font-size: 51px;
    }
}

/* ============================================================
   Overlay button
   ============================================================ */
#overlay-btn {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    text-align: center;
    z-index: 30;
}

#overlay-btn a {
    display: block;
    transition: .2s all ease;
    overflow: hidden;
    position: relative;
}

#overlay-btn a img {
    max-width: 100%;
}

@keyframes flash-btn-1 {
    0%   { left: -100%; opacity: 0; }
    25%  { opacity: 1; }
    55%  { left: 200%; opacity: 0; }
    100% { left: 210%; opacity: 0; }
}

.sp_flash_btn_1:before {
    content: '';
    display: block;
    width: 70px;
    height: 280px;
    margin-top: 7px;
    transform: rotate(20deg);
    background-image: linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.3) 50%, rgba(255,255,255,0) 100%);
    position: absolute;
    top: -40px;
    left: -100%;
    animation-duration: 2.6s;
    animation-name: flash-btn-1;
    animation-iteration-count: infinite;
}

/* ============================================================
   Utilities
   ============================================================ */
.relative {
    position: relative;
}

.absolute {
    position: absolute;
}

.btn-circle {
    position: absolute;
    z-index: 10;
    right: 10%;
    top: 36%;
    width: 30%;
    display: block;
    animation: animScale 2s ease infinite;
}

@keyframes animScale {
    0%   { transform: scale(0.9, 0.9); }
    25%  { transform: scale(1, 1); }
    50%  { transform: scale(0.9, 0.9); }
    75%  { transform: scale(1, 1); }
    100% { transform: scale(0.9, 0.9); }
}

@keyframes animScale2 {
    0%   { transform: scale(0.95, 0.95); }
    25%  { transform: scale(1, 1); }
    50%  { transform: scale(0.95, 0.95); }
    75%  { transform: scale(1, 1); }
    100% { transform: scale(0.95, 0.95); }
}

.btn-back-bg {
    background: #fff;
    padding: 38px 0 56px;
    overflow: hidden;
}

.btn-back-bg a {
    display: block;
    width: 99%;
    max-width: 886px;
    margin: 0 auto;
    animation: animScale2 2s ease infinite;
}

.btn-back-bg a:hover {
    opacity: 0.8;
}

/* ============================================================
   Soldout / SP・PC 表示切り替え
   ============================================================ */
.soldout {
    display: none !important;
}

.sp_cart,
.sp_view {
    display: none;
}

@media screen and (max-width: 960px) {
    .sp_cart,
    .sp_view {
        display: block;
    }

    .pc_cart,
    .pc_view {
        display: none;
    }
}

/* ============================================================
   Cart
   ============================================================ */
.sp_cart {
    background: url(https://shop.gb-life.jp/img/onecle-choice-lp/sp-choice-no-teiki-bg.jpg) no-repeat center top / 100% auto;
    width: 100%;
    aspect-ratio: 960 / 1075;
    text-align: center;
    position: relative;
}

.sp_cart .set-berry-btn {
    width: 86%;
    position: absolute;
    right: 0;
    left: 0;
    margin: 0 auto;
    top: 15%;
}

.sp_cart .set-banana-btn {
    width: 86%;
    position: absolute;
    right: 0;
    left: 0;
    margin: 0 auto;
    top: 56%;
}

.pc_cart {
    background: url(https://shop.gb-life.jp/img/onecle-choice-lp/pc-choice-no-teiki-bg.jpg) no-repeat center top / 960px auto;
    text-align: center;
    position: relative;
    aspect-ratio: 96 / 87;
}

.pc_cart .set-berry-btn {
    position: absolute;
    right: 0;
    left: 0;
    margin: 0 auto;
    top: 23.5%;
    width: 83%;
}

.pc_cart .set-banana-btn {
    position: absolute;
    right: 0;
    left: 0;
    margin: 0 auto;
    top: 60%;
    width: 83%;
}

.pc_cart a:hover {
    opacity: 0.8;
}

/* ============================================================
   Calendar
   ============================================================ */
.calendar_btn {
    position: absolute;
    top: 18.5%;
    left: 0;
    right: 0;
    margin: auto;
    width: 81% !important;
}

.click {
    position: absolute;
    top: 15%;
    left: 12%;
    font-size: 1.5rem;
    font-weight: bold;
}

.yellow {
    background: linear-gradient(transparent 60%, #ffff00 60%);
}

@media screen and (max-width: 960px) {
    .click {
        top: 16%;
        left: 0;
        right: 0;
        margin: auto;
        text-align: center;
        font-size: 1rem;
    }

    .set_btn {
        width: 38% !important;
        position: absolute;
        right: 18%;
        top: 70%;
    }
}

/* ============================================================
   Flavor select
   ============================================================ */
#flavor-select {
    border: 2px solid #0e893b;
    padding: 2rem;
}

#flavor-select p {
    color: #0e893b;
    font-size: 1.7rem;
    text-align: center;
    font-weight: bold;
    line-height: 2.3rem;
}

#flavor-select .sp_view {
    display: none !important;
}

@media (max-width: 768px) {
    #flavor-select {
        padding: 1rem;
    }

    #flavor-select p {
        font-size: 1.2rem;
        line-height: 1.6rem;
    }

    #flavor-select .sp_view {
        display: block !important;
    }
}

/* ============================================================
   Coupon
   ============================================================ */
.coupon_area_wrapper {
    padding: 30px 0;
}

.coupon_area {
    position: relative;
    border: medium solid #a9a9a9;
    width: 86%;
    margin: auto;
    padding: 40px 20px;
    text-align: center;
    background: #ffffff;
}

.bg-coupon {
    background: #ffff00;
}

.coupon {
    left: -1px;
    top: -1px;
    position: absolute;
    width: 18% !important;
}

.coupon_area p:nth-child(2),
.coupon_area p:nth-child(3) {
    font-size: 1.8rem;
    font-weight: bold;
}

.emphasis {
    font-size: 3rem;
    color: #d4145a;
}

.copy_btn {
    width: 80% !important;
    padding: 12px 0;
    margin: 20px auto 30px;
    color: #ffffff;
    font-weight: bold;
    background: #ee6495;
    border: solid 2px #ee6495;
    border-radius: 3px;
    transition: .4s;
    text-align: center;
    display: block;
}

.copy_btn:hover {
    cursor: pointer;
}

.note {
    line-height: 1.5rem;
}

.marker_y {
    background: linear-gradient(transparent 0%, #d1ffa3 0%);
}

@media (max-width: 575.98px) {
    .coupon_area_wrapper {
        padding: 10px 0;
    }

    .coupon_area {
        width: 80%;
        padding: 20px 20px 10px;
    }

    .coupon_area p:nth-child(2) {
        font-size: 1rem;
    }

    .coupon_area .emphasis {
        font-size: 1.6rem;
    }

    .coupon_area p:nth-child(3) {
        font-size: 1rem;
        margin-top: 10px;
    }

    .coupon_area .note {
        font-size: 0.8rem;
    }

    .copy_btn {
        margin-top: 10px;
        margin-bottom: 10px;
        padding: 5px 0;
    }
}

/* ============================================================
   Misc
   ============================================================ */
.br_sm {
    display: none;
}

@media (max-width: 575.98px) {
    .br_sm {
        display: block;
    }
}

.cv_1 {
    position: absolute;
    width: 89%;
    top: 67.8%;
    left: 6%;
}

.uk-domain-suggestable-email-field-wrapper:after {
    content: "iCloudドメイン以外のメールアドレスのご登録をお願いいたします。";
    font-size: 85%;
}

.uk-input-wrapper {
    margin-bottom: 5px;
}

#ukokkei-landing-page-form .invalid-fields-notice-box {
    display: none;
}

/* ============================================================
   FAQ
   ============================================================ */
.faq-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0 2rem 2rem;
    background-color: #fcfcfc;
}

.faq-item {
    background-color: #fff;
    border-radius: 0.5rem;
    box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.1);
    overflow: hidden;
    transition: box-shadow 0.3s;
    margin: auto;
}

.faq-item:hover {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.faq-question-button {
    width: 100%;
    padding: 1rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    text-align: left;
    background: none;
    border: none;
    cursor: pointer;
    transition: background-color 0.2s;
}

.faq-question-button:hover {
    background-color: #f9fafb;
}

.faq-question-content {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    flex: 1;
}

.faq-badge {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    border-radius: 9999px;
    font-size: 0.875rem;
    color: #ffffff;
}

.faq-badge-q {
    background-color: #402f18;
}

.faq-badge-a {
    background-color: #02893d;
}

.faq-question-text {
    color: #1f2937;
    font-weight: 500;
    padding-top: 0.25rem;
    font-size: 0.875rem;
}

.faq-icon-wrapper {
    flex-shrink: 0;
    margin-left: 1rem;
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #4b5563;
    transition: transform 0.5s ease-in-out;
}

.faq-icon-wrapper.open {
    transform: rotate(45deg);
}

.faq-icon {
    width: 20px;
    height: 20px;
}

.faq-answer-wrapper {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out;
}

.faq-answer-wrapper.open {
    max-height: 1000px;
    opacity: 1;
}

.faq-answer-content {
    padding: 1rem 1rem 1.25rem;
}

.faq-answer-inner {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.faq-answer-text {
    color: #374151;
    padding-top: 0.25rem;
    line-height: 1.625;
    font-size: 0.875rem;
}

@media (min-width: 640px) {
    .faq-question-button {
        padding: 1.25rem 1.5rem;
    }

    .faq-question-content {
        gap: 1rem;
    }

    .faq-question-text {
        font-size: 1rem;
    }

    .faq-answer-content {
        padding: 1rem 1.5rem 1.25rem;
    }

    .faq-answer-inner {
        gap: 1rem;
    }

    .faq-answer-text {
        font-size: 1rem;
    }
}

/* ============================================================
   Main
   ============================================================ */
.main {
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
    overflow: hidden;
}

.main img {
    vertical-align: bottom;
}

.w-100 {
    width: 100%;
}

img.sec-fv_bg {
    width: 100%;
}

/* ============================================================
   Video
   ============================================================ */
.oncle_video {
    background-color: #ccc;
    text-align: center;
    padding: 30px 0;
}

.oncle_video video {
    width: 90%;
    filter: drop-shadow(0px 0px rgba(0, 0, 0, 0));
    outline: none;
    border: none;
}

@media (max-width: 768px) {
    .oncle_video {
        padding: 10px 0;
    }

    .oncle_video video {
        width: 95%;
    }
}

/* ============================================================
   About onecle
   ============================================================ */
.about_onecle {
    z-index: 1;
    position: relative;
    background-color: #fff;
    width: 100%;
}

img.sec01_bg {
    width: 100%;
}

.about_onecle .set {
    position: absolute;
    top: 17.5%;
    left: 0;
    height: 23%;
    z-index: 10;
    width: 100%;
}

.about_onecle .set_01 {
    position: absolute;
    width: 41%;
    top: 51%;
    left: 1%;
}

.about_onecle .set_02 {
    position: absolute;
    width: 30%;
    top: 36%;
    left: 41%;
}

.about_onecle .set_03 {
    position: absolute;
    width: 28%;
    top: 66%;
    left: 71%;
}

.about_onecle .package {
    position: absolute;
    top: 53.5%;
    left: 0;
    width: 100%;
    opacity: 0;
    display: inline-block;
}

.about_onecle .text-01 {
    position: absolute;
    top: 84.5%;
    left: 0;
    width: 100%;
    display: inline-block;
}

/* ============================================================
   Section 02
   ============================================================ */
.sec-02 {
    z-index: 1;
    position: relative;
    width: 100%;
}

img.sec02_bg {
    width: 100%;
}

.sec-02 .sec02-01 {
    position: absolute;
    top: 23%;
    left: 0;
    width: 100%;
    display: inline-block;
}

.sec-02 .sec02-02 {
    position: absolute;
    top: 36%;
    left: 0;
    width: 100%;
    display: inline-block;
}

.sec-02 .sec02-1-2 {
    position: absolute;
    top: 18%;
    left: 0;
    width: 100%;
    display: inline-block;
}

.sec-02 .sec02-2-2 {
    position: absolute;
    top: 25.7%;
    left: 0;
    width: 100%;
    display: inline-block;
}

.sec-02 .sec02-3-2 {
    position: absolute;
    top: 33.3%;
    left: 0;
    width: 100%;
    display: inline-block;
}

.sec-02 .sec02-4-2 {
    position: absolute;
    top: 41%;
    left: 0;
    width: 100%;
    display: inline-block;
}

.sec-02 .sec02-5-2 {
    position: absolute;
    top: 48.6%;
    left: 0;
    width: 100%;
    display: inline-block;
}

.sec-02 .btn-01 {
    position: absolute;
    top: 89%;
    left: 5%;
    width: 90%;
    display: inline-block;
    animation: anime_btn-01 0.6s ease 0s infinite alternate;
    transform-origin: center;
}

@keyframes anime_btn-01 {
    from { transform: scale(0.95, 0.95); }
    to   { transform: scale(1, 1); }
}

img.sec03_bg {
    width: 100%;
}

/* ============================================================
   Section 04
   ============================================================ */
.sec-04 {
    z-index: 1;
    position: relative;
    width: 100%;
}

img.sec04_bg {
    width: 100%;
}

.sec-04 .circle_btn {
    position: absolute;
    width: 31%;
    top: 48%;
    left: 61%;
    display: inline-block;
    animation: anime_circle_btn 0.5s ease 0s infinite alternate;
    transform-origin: center;
}

@keyframes anime_circle_btn {
    from { transform: scale(0.95, 0.95); }
    to   { transform: scale(1, 1); }
}

img.sec05_bg {
    width: 100%;
}

/* ============================================================
   Section 06
   ============================================================ */
.sec-06 {
    z-index: 1;
    position: relative;
    width: 100%;
}

img.sec06_bg {
    width: 100%;
}

.sec-06 .point_01 {
    position: absolute;
    width: 57.3%;
    top: 16%;
    left: 31.8%;
    display: inline-block;
    z-index: 5;
    opacity: 0;
}

.sec-06 .point_02 {
    position: absolute;
    width: 57.3%;
    top: 30%;
    right: 44%;
    display: inline-block;
    z-index: 4;
    opacity: 0;
}

.sec-06 .point_03 {
    position: absolute;
    width: 57.3%;
    top: 37.1%;
    left: 43%;
    display: inline-block;
    z-index: 3;
    opacity: 0;
}

.sec-06 .sec-06_package {
    position: absolute;
    width: 45.8%;
    bottom: 0;
    right: 27%;
    display: inline-block;
    z-index: 3;
}

/* ============================================================
   Animations
   ============================================================ */
.fadeIn_R-L {
    animation: fadeIn_R-L 1s ease 0.2s 1 normal forwards;
}

@keyframes fadeIn_R-L {
    from {
        opacity: 0;
        transform: translateX(70px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.fadeIn_L-R {
    animation: fadeIn_L-R 1s ease 0.2s 1 normal forwards;
}

@keyframes fadeIn_L-R {
    from {
        opacity: 0;
        transform: translateX(-70px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.fadeIn_B-T {
    animation: fadeIn_B-T 2s ease 0s 1 normal forwards;
}

@keyframes fadeIn_B-T {
    from {
        opacity: 0;
        transform: translateY(100px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.zoomIn-1 {
    animation-name: zoomInAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

@keyframes zoomInAnime {
    from {
        transform: scale(0.6);
        opacity: 0;
    }
    to {
        transform: scale(1);
        opacity: 1;
    }
}

/* ============================================================
   Section 07
   ============================================================ */
.sec-07 {
    z-index: 3;
    position: relative;
    width: 100%;
    aspect-ratio: 80 / 29;
}

img.sec-07-1 {
    width: 100%;
    position: absolute;
    top: -15%;
    right: 0;
    display: inline-block;
    z-index: 3;
}

.sec-07 .border_01 {
    z-index: 4;
}

.border_anim-L-R {
    content: '';
    position: absolute;
    left: 5%;
    bottom: 27%;
    width: 0;
    border-bottom: solid 17px #39b34a;
    animation: border_anim-L-R 1s linear forwards;
}

@keyframes border_anim-L-R {
    0%   { width: 0%; }
    100% { width: 90%; }
}

.border_anim-L-R-OR {
    content: '';
    position: absolute;
    left: 5%;
    bottom: 4%;
    width: 0;
    border-bottom: solid 43px #fdc672;
    animation: border_anim-L-R-OR 1s linear forwards;
    margin: 0;
}

@keyframes border_anim-L-R-OR {
    0%   { width: 0%; }
    100% { width: 90%; }
}

@media (max-width: 768px) {
    .border_anim-L-R {
        border-bottom: solid 8px #39b34a;
    }

    .border_anim-L-R-OR {
        border-bottom: solid 20px #fdc672;
    }
}

@media (max-width: 576px) {
    .border_anim-L-R {
        border-bottom: solid 5px #39b34a;
    }

    .border_anim-L-R-OR {
        border-bottom: solid 17px #fdc672;
    }
}

/* ============================================================
   Section 08
   ============================================================ */
.sec-08 {
    z-index: 1;
    position: relative;
    width: 100%;
}

img.sec08-bg {
    width: 100%;
}

.sec-08 .sec08-01 {
    position: absolute;
    width: 83.1%;
    top: 11%;
    left: 7.3%;
    display: inline-block;
    z-index: 3;
    opacity: 0;
}

.sec-08 .sec08-02 {
    position: absolute;
    width: 100%;
    top: 84.5%;
    left: 0;
    display: inline-block;
    z-index: 3;
}

/* ============================================================
   Kouso
   ============================================================ */
.kouso {
    z-index: 1;
    position: relative;
    width: 100%;
    aspect-ratio: 15 / 14.5;
}

.kouso img {
    position: absolute;
    top: -6.7%;
    right: 0;
    display: inline-block;
    z-index: 1;
}

/* ============================================================
   Section 09
   ============================================================ */
.sec-09 {
    z-index: 1;
    position: relative;
    width: 100%;
}

img.sec09-bg {
    width: 100%;
}

.sec-09 .sec09-01 {
    position: absolute;
    width: 100%;
    top: 11%;
    left: 0;
    z-index: 3;
}

.sec-09 .sec09-01 img {
    position: relative;
    z-index: 5;
    width: 100%;
}

.sec-09 .sec09-02 {
    position: absolute;
    width: 100%;
    top: 18.2%;
    left: 0;
    z-index: 3;
}

.sec-09 .sec09-02 .sec09-02-01 {
    position: relative;
    z-index: 5;
    width: 94.6%;
    left: 2.4%;
    opacity: 0;
}
