@charset "UTF-8";

/* About page. Mobile styles are the base; larger widths build on them. */

/* Common */

#page_about {
    margin: 0;
    /*overflow: hidden;*/
    color: var(--page-black)!important;
}
#page_about p,
#page_about span{
    color: var(--page-black);
}

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

#page_about h2, #page_about h3, #page_about p {
    margin-top: 0;
}



/* Greeting */

#page_about .about-message {
    position: relative;
    padding: 65px 0 85px;
}

#page_about .about-message__inner {
    position: relative;
    z-index: 1;
    display: block;
    width: calc(100% - 40px);
    margin: auto;
}

#page_about .about-message__english {
    position: absolute;
    z-index: 0;
    top: 0;
    left: -13px;
    writing-mode: vertical-rl;
    color: #e8e8e8;
    font: italic 95px/1 Georgia, serif;
    pointer-events: none;
}

#page_about .about-message__visual {
    position: relative;
    width: min(300px, 75%);
    margin: 0 auto 52px;
}

#page_about .about-message__portrait {
    display: block;
    width: 100%;
    z-index: 1;
    position: relative;
}

#page_about .about-message__leaf {
    position: absolute;
    width: 80%;
    max-width: none;
    right: -30%;
    bottom: -10%;
}

#page_about .about-message__content {
    position: relative;
}

#page_about .about-message__label {
    margin-bottom: 15px;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .08em;
    color: var(--page-black);
}

#page_about .about-message h2 {
    margin-bottom: 25px;
    color: var(--page-main-color);
    font: 500 24px/1.8 var(--font-mincho);
    letter-spacing: .03em;
}

#page_about .about-message__content > p:not(.about-message__label):not(.about-message__signature) {
    margin-bottom: 20px;
    font-size: 1rem;
    line-height: 2.15;
    letter-spacing: .035em;
    color: var(--page-black);
    /* Mobile font-size: 14px; was intentionally disabled. */
}

#page_about .about-message__signature {
    margin: 28px 0 0;
    text-align: right;
    font-weight: 700;
    line-height: 2;
    color: var(--page-black);
    font-size: 14px;
}

#page_about .about-message__bird {
    position: absolute;
    z-index: -1;
    width: 54px;
    top: 0;
    right: 0;
}

@media (min-width: 701px) {
    #page_about .about-message {
        padding: clamp(100px, 10vw, 160px) 0 clamp(120px, 12vw, 190px);
    }

    #page_about .about-message__inner {
        display: grid;
        grid-template-columns: 36% minmax(0, 1fr);
        align-items: center;
        gap: 6%;
        width: 88%;
    }

    #page_about .about-message__english {
        top: 4%;
        left: -1.5%;
        font: italic clamp(100px, 11vw, 180px)/1 Georgia, serif;
    }

    #page_about .about-message__visual {
        width: unset;
        margin: unset;
    }

    #page_about .about-message__label {
        margin-bottom: 30px;
    }

    #page_about .about-message h2 {
        font-size: unset;
        margin-bottom: 38px;
        font: 500 clamp(26px, 2.2vw, 36px)/1.8 var(--font-mincho);
    }

    #page_about .about-message__content > p:not(.about-message__label):not(.about-message__signature) {
        margin-bottom: 31px;
    }

    #page_about .about-message__signature {
        margin: 52px 0 0;
        font-size: 1rem
    }

    #page_about .about-message__bird {
        width: 62px;
        top: -4px;
    }
}

@media (min-width: 1001px) {
    #page_about .about-message__inner {
        grid-template-columns: 32% minmax(0, 1fr);
        gap: 7%;
        width: min(1260px, 82%);
    }

    #page_about .about-message__bird {
        width: 100px;
        right: 8%;
    }
}

/* Philosophy */

#page_about .about-philosophy {
    display: grid;
    place-items: stretch center;
    min-height: 590px;
    background: url('../img/about/about_bg.png') center/cover no-repeat;
    background-position: center;
}

#page_about .about-philosophy__panel {
    position: relative;
    width: calc(100% - 32px);
    padding: 72px 14px 45px;
    background: rgba(255,255,255,.88);
    text-align: center;
    color: var(--page-main-color);
}

#page_about .about-philosophy__butterfly {
    position: absolute;
    width: 60px;
    top: 25px;
    left: 56%;
}

#page_about .about-philosophy h2 {
    margin: 5px 0 45px;
    color: var(--page-main-color);
    font: 500 34px/1.5 var(--font-mincho);
    letter-spacing: .13em;
}

#page_about .about-philosophy__statement {
    font-family: var(--font-mincho);
}

#page_about .about-philosophy__statement p {
    margin: 0 0 50px;
    font-size: clamp(13px,3.5vw,17px);
    line-height: 2.35;
    letter-spacing: .06em;
}

#page_about .about-philosophy__statement p:last-child {
    margin-bottom: 0;
}

#page_about .about-philosophy__statement span {
    display: inline;
    border-bottom: 1px dotted var(--page-main-color);
    padding-bottom: 6px;
}

@media (min-width: 701px) {
    #page_about .about-philosophy {
        min-height: clamp(610px, 51vw, 790px);
        background: url('../img/about/about_bg.png') center/cover no-repeat;
    }

    #page_about .about-philosophy__panel {
        width: 60%;
        padding: 90px 30px 70px;
    }

    #page_about .about-philosophy__butterfly {
        width: 78px;
        top: 55px;
    }

    #page_about .about-philosophy h2 {
        margin: 5px 0 70px;
        font: 500 clamp(34px, 3.2vw, 52px)/1.5 var(--font-mincho);
    }

    #page_about .about-philosophy__statement p {
        font-size: clamp(17px, 1.45vw, 24px);
        line-height: 2.25;
        margin: 0 0 72px;
    }
}

@media (min-width: 1001px) {
    #page_about .about-philosophy__panel {
        width: min(700px, 48%);
    }
}

/* Vision */

#page_about .about-vision {
    position: relative;
    padding: 85px 20px 105px;
}

#page_about .about-vision__inner {
    display: block;
    /*width: min(1440px, 100%);*/
    margin: auto;
}

#page_about .about-vision__photo img {
    display: block;
    width: 100%;
}

#page_about .about-vision__content {
    position: relative;
    z-index: 1;
    padding: 0;
    margin: 45px auto 0;
    max-width: 550px;
}

#page_about .about-vision h2 {
    margin: 0 0 40px;
    color: var(--page-main-color);
    font: 500 30px/1.5 var(--font-mincho);
    letter-spacing: .07em;
    text-align: center;
}

#page_about .about-vision__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

#page_about .about-vision__card {
    position: relative;
    min-height: 230px;
    padding: 17px 11px;
    background: #fff;
    text-align: center;
}

#page_about .about-vision__card::before {
    content: "";
    position: absolute;
    inset: 0;
    border: 24px solid transparent;
    border-image: url("../img/about/card-frame.svg") 24 / 24px stretch;
    pointer-events: none;
}

#page_about .about-vision__number {
    display: block;
    color: var(--page-main-color);
    font: italic 700 24px/1.3 Georgia,serif;
}

#page_about .about-vision__card h3 {
    margin: 9px 0 12px;
    color: var(--page-main-color);
    font: 500 16px/1.55 var(--font-mincho);
    white-space: normal;
}

#page_about .about-vision__card h3::after {
    display: block;
    content: '';
    width: 50px;
    height: 1px;
    margin: 14px auto 0;
    background: #9e9e9e;
}

#page_about .about-vision__card p {
    margin: 0;
    text-align: left;
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: .02em;
}

#page_about .about-vision__english {
    position: absolute;
    z-index: 0;
    top: 45%;
    right: -1%;
    writing-mode: vertical-rl;
    color: #e8e8e8;
    font: italic 105px/1 Georgia,serif;
    pointer-events: none;
}

#page_about .about-vision__berries {
    position: absolute;
    width: 130px;
    top: -5%;
    right: -2%;
}

#page_about .about-vision__squirrel {
    position: absolute;
    z-index: 2;
    width: 80px;
    top: 42%;
    right: 3%;
}

#page_about .about-vision__photo {
    width: min(430px,100%);
    margin: auto;
}

@media (min-width: 431px) {
    #page_about .about-vision__cards {
        gap: 12px;
    }

    #page_about .about-vision__card {
        min-height: 235px;
        padding: 18px 14px;
    }

    #page_about .about-vision__number {
        font: italic 700 30px/1.3 Georgia,serif;
    }

    #page_about .about-vision__card h3 {
        margin: 12px 0 18px;
        white-space: nowrap;
        font: 500 clamp(18px, 1.5vw, 24px)/1.55 var(--font-mincho);
    }

    /*#page_about .about-vision__card p {
        font-size: 12px;
    }*/
}

@media (min-width: 701px) {
    #page_about .about-vision {
        padding: clamp(105px, 10vw, 155px) 0 clamp(95px, 9vw, 140px);
    }

    #page_about .about-vision__inner {
        display: grid;
        grid-template-columns: 42% minmax(0, 1fr);
        align-items: center;
        gap: 5%;
    }

    #page_about .about-vision__content {
        padding: unset;
        padding-right: 5%;
        margin: unset;
        max-width: unset;
    }

    #page_about .about-vision h2 {
        text-align: unset;
        font: 500 clamp(30px, 2.6vw, 42px)/1.5 var(--font-mincho);
    }

    #page_about .about-vision__english {
        top: 15%;
        font: italic clamp(100px, 11vw, 180px)/1 Georgia,serif;
    }

    #page_about .about-vision__berries {
        width: clamp(130px, 15vw, 340px);
    }

    #page_about .about-vision__squirrel {
        width: clamp(88px, 9vw, 245px);
        top: 11%;
        right: 8%;
    }

    #page_about .about-vision__photo {
        width: unset;
        margin: unset;
    }
}

@media (min-width: 1001px) {
    #page_about .about-vision__inner {
        grid-template-columns: 43% 35%;
        gap: 7%;
    }

    #page_about .about-vision__content {
        padding-right: 10%;
    }

    #page_about .about-vision__cards {
        gap: 24px;
    }

    #page_about .about-vision__card {
        min-height: 270px;
        padding: 24px 25px 27px;
    }

    #page_about .about-vision__squirrel {
        top: 14%;
        right: 14%;
    }
}

/* Staff */

#page_about .about-staff {
    padding: 75px 0 95px;
    background: #fffbf5;
     position: relative
}

#page_about .about-staff__inner {
    position: relative;
    width: calc(100% - 40px);
    margin: auto;
}

#page_about .about-staff .about-section-en {
    text-align: center;
}

#page_about .about-staff h2 {
    margin: 0 0 38px;
    color: var(--page-main-color);
    text-align: center;
    font: 500 32px/1.5 var(--font-mincho);
    letter-spacing: .1em;
}

#page_about .about-staff__photo {
    position: relative;
    z-index: 1;
}

#page_about .about-staff__photo img {
    display: block;
    width: 100%;
    border-radius: 9px;
}

#page_about .about-staff__text {
    position: relative;
    z-index: 2;
    margin: 28px 0 0;
}

#page_about .about-staff__text h3 {
    margin: 0 0 28px;
    color: var(--page-main-color);
    font: 700 23px/1.6 var(--main-font);
    letter-spacing: .03em;
}

#page_about .about-staff__text p {
    margin: 0;
    font-size: 14px;
    line-height: 2;
    letter-spacing: .02em;
}

#page_about .about-staff__branch {
    position: absolute;
    z-index: 0;
    width: 25%;
    pointer-events: none;
}

#page_about .about-staff__branch--left {
    top: 70px;
    left: 0;
}

#page_about .about-staff__branch--right {
    top: 43%;
    right: 0;
}

#page_about .about-staff__rabbits {
    position: absolute;
    z-index: 2;
    width: 22%;
    right: -5px;
    top: 32%;
}

@media (min-width: 701px) {
    #page_about .about-staff {
        padding: 100px 0 125px;
       
    }

    #page_about .about-staff__inner {
        width: min(1120px, 80%);
    }

    #page_about .about-staff h2 {
        margin: 0 0 65px;
        font: 500 clamp(32px, 2.8vw, 46px)/1.5 var(--font-mincho);
    }

    #page_about .about-staff__text {
        margin: 33px 12px 0;
    }

    #page_about .about-staff__text h3 {
        font: 700 clamp(24px, 2vw, 33px)/1.6 var(--main-font);
    }

    #page_about .about-staff__text p {
        font-size: 16px;
    }

    #page_about .about-staff__rabbits {
        width: 19%;
        right: 0;
        top: 68%;
    }
}
