@charset "utf-8";

/*------------------------------------------------------------
 * ソフロロジーの解析・歴史・展望
 *------------------------------------------------------------*/

/* --------------------
 * Common Styles
 * --------------------*/
.content {
    max-width: 103.2rem;
}

.storyBox {
    padding: 3rem;
    margin-bottom: 3rem;
    border: 1px solid #cfb092;
    border-radius: 10px;
    background-color: rgb(255, 255, 255, 0.3);
}

.storyBox a {
    color: #bd512d;
    text-decoration: underline;
}

.headLine01 .num {
    display: block;
    margin-bottom: 1.1rem;
    font-size: 4.9rem;
    font-style: italic;
    line-height: 1;
}

p {
    margin-bottom: 3.4rem;
    line-height: 2.125;
}

p:last-child {
    margin-bottom: 0;
}

strong {
    font-size: 1.8rem;
    font-weight: 700;
}

.subBox {
    margin-bottom: 14.3rem;
}

.txtUl {
    max-width: 40rem;
    margin: 0 auto;
    padding: 0.8rem 0 2.7rem 11.6rem;
    font-size: 2rem;
}

.txtUl li {
    position: relative;
    margin-bottom: 0.4rem;
    padding-left: 2.1rem;
}

.txtUl li:last-child {
    margin-bottom: 0;
}

.txtUl li::before {
    position: absolute;
    top: 0.8rem;
    left: 0;
    width: 1.6rem;
    height: 1.6rem;
    background-color: #754c24;
    content: "";
}

.listDl dt {
    margin-bottom: 1.6rem;
}

.listDl dt span {
    display: inline-block;
    padding: 0.6rem 1.3rem 0.9rem;
    font-size: 1.6rem;
    vertical-align: top;
    background-color: #ece4d9;
}

.listDl dd {
    margin-bottom: 4.2rem;
    font-size: 1.8rem;
    line-height: 1.88;
}

.listDl dd:last-child {
    margin-bottom: 0;
}

.listDl ul li {
    position: relative;
    margin-bottom: 1.1rem;
    padding-left: 4.2rem;
}

.listDl ul li:last-child {
    margin-bottom: 0;
}

.listDl ul li::before {
    position: absolute;
    top: 0.9rem;
    left: 0.7rem;
    width: 1.3rem;
    height: 1.5rem;
    background: url("../img/about/icon01.png") no-repeat left top / 100% 100%;
    content: "";
}

.photoBox img {
    display: block;
    width: 80%;
    max-width: 584px;
    margin-left: auto;
    margin-right: auto;
}

.bgBox {
    padding-bottom: 2rem;
}


/* --------------------
 * Section Styles
 * --------------------*/

/* sec01 */
.sec01 {
    margin-bottom: 10.7rem;
    background: url("../img/about/bg01.jpg") no-repeat left top / cover;
}

.sec01 .bgBox {
    padding: 6.1rem 0 7.4rem;
}

.sec01 .headLine01 {
    margin-bottom: 3.6rem;
}

.sec01 .txtUl {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 1.2rem;
}

.sec01 .txtUl li {
    position: relative;
    width: 33.33%;
    font-size: 2rem;
    line-height: 1.4;
    text-align: center;
}

.sec01 .txtUl li::after {
    position: absolute;
    right: -0.4rem;
    bottom: 0.6rem;
    font-size: 3rem;
    color: #bd512d;
    content: "～";
}

.sec01 .txtUl li:last-child::after {
    display: none;
}

.sec01 .txtUl .col {
    margin-top: 0.1rem;
    font-size: 3rem;
    color: #bd512d;
}

/* sec02 */
.sec02 {
    /* ここに共通のスタイルがあれば追加 */
}

/* sec03 */
.sec03 {
    background: linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)) 0 0 / cover no-repeat, url("../img/about/bg04.png") right top 20% / 53.3rem auto no-repeat, url("../img/about/bg06.png") left top 80% / 30.3rem auto no-repeat, url("../img/about/bg05.jpg") left top 50% / 100% auto no-repeat;
}

.sec03 .borBox {
    display: block;
    max-width: inherit;
    margin: 3.5rem auto 3.6rem;
    padding: 2.8rem 7.8rem 2.6rem;
}

.sec03 .bgBox {
    margin-top: -13.2rem;
    padding-top: 17.8rem;
}

.sec03 .flex .storyBox {
    flex: 1;
    margin: 1rem;
}

/* sec04 */

.sec04 {
    background: url("../img/about/bg03.png") no-repeat left center / 47.4rem auto;
}

/* sec06 */
.sec06 {
    background: url("../img/about/bg07.png") no-repeat right center / 47.4rem auto;
}


/*------------------------------------------------------------
 * Media Queries
 *------------------------------------------------------------*/

/* Larger screens (min-width: 896.98px) */
@media all and (min-width: 896.98px) {

    .sec03 .box03 .borBox02 {
        padding: 3.8rem 4.8rem 5.6rem;
        margin-bottom: 1.5rem;
    }

    .sec03 .box03 .borBox02 .photoBox {
        width: 29.2rem;
    }

    .sec03 .box03 .borBox02 p {
        margin-bottom: 0;
        line-height: 2.42;
    }

    .borBox02 .rightBox {
        font-size: 1.4rem;
        margin: 3rem 0rem;
    }
}

/* 画面幅が896.98px以下のスタイル */
@media all and (max-width: 896.98px) {

    /* 共通 */

    .photoBox img {
        width: 100%;
    }

    .headLine02 {
        font-size: 2rem;
    }

    .subBox {
        margin-bottom: 9rem;
        padding: 0 1.8rem;
        letter-spacing: -0.05em;
    }

    p {
        text-shadow: 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff;
    }

    p {
        line-height: 1.9;
        text-align: left;
    }

    strong {
        font-size: 1.6rem;
    }

    /* sec01 */
    .sec01 {
        margin-bottom: 7.7rem;
    }

    .sec01 .bgBox {
        padding: 5.1rem 0 5.4rem;
        background-position: center top;
    }

    .sec01 .txtUl {
        display: block;
        margin-bottom: 0;
    }

    .sec01 .txtUl li {
        position: relative;
        width: auto;
        margin-bottom: 5rem;
        font-size: 1.8rem;
        text-align: center;
        border: 0;
        border-radius: 0;
    }

    .sec01 .txtUl li:last-child {
        margin-bottom: 0;
    }

    .sec01 .txtUl li::after {
        display: none;
    }

    .sec01 .txtUl .col {
        font-size: 2.3rem;
        text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 5px #fff, 0 0 10px #fff, 0 0 15px #fff, 0 0 20px #fff;
    }

    .sec01 .txtUl .image {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    .sec01 .txtUl .image::before {
        position: absolute;
        top: 0;
        left: 0.05rem;
        z-index: 1;
        width: 100%;
        height: 124%;
        background-color: rgba(255, 255, 255, 0.2);
        content: '';
        box-shadow: inset 0 0 20px 10px #fff;
    }

    .sec01 .txtUl .image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .sec01 .txtUl li p {
        position: relative;
        z-index: 2;
    }

    .sec01 .txtUl li:not(:last-child)::after {
        position: absolute;
        left: 50%;
        z-index: 10;
        display: block;
        font-size: 2.5rem;
        color: #BD512D;
        content: '▼';
        transform: translateX(-50%) translateY(11rem);
    }

    /* sec02 */
    .sec02 {
        margin: 0 1.8rem 50px;
    }

    .sec02 p {
        font-size: 1.6rem;
        text-align: left;
    }

    .sec02 .movieBox {
        margin: 4rem -1.8rem 2.5rem;
    }

    /* sec03 */
    .sec03 .borBox {
        display: block;
        max-width: inherit;
        padding: 3rem 2rem;
        text-shadow: none;
    }

    .sec03 .borBox .photoBox {
        width: auto;
    }

    .borBox .rightBox {
        width: 100%;
        margin: 2rem 0 0;
    }

    .sec03 .txtUl {
        padding: 0.8rem 0 2.7rem 8.6rem;
        font-size: 1.8rem;
    }

    .sec03 .txtUl li::before {
        width: 1.4rem;
        height: 1.4rem;
    }

    .sec03 .marTxt {
        margin-bottom: 3.4rem;
    }

    .sec03 .listDl dt span {
        font-size: 1.4rem;
    }

    .sec03 .listDl dd {
        margin-bottom: 4.2rem;
        font-size: 1.4rem;
        line-height: 1.6;
    }

    .sec03 .listDl ul li {
        padding-left: 2rem;
    }

    .sec03 .listDl ul li::before {
        top: 0.6rem;
        width: 1.1rem;
        height: 1.2rem;
    }

    .sec03 .flex {
        display: block;
    }

    /* sec04 */
    .sec04 {
        background-size: 25rem auto;
    }

    /* sec05 */

    .sec05 .borBox {
        padding: 3rem 2rem;
    }

    .sec05 .bgBox {
        margin: 0 -1.8rem;
        padding: 5.8rem 1.8rem 0;
        background-position: left top 14.8rem;
    }

    .sec05 .borBox02 .headLine02 {
        margin-bottom: 2.7rem;
        font-size: 1.6rem;
    }

    .sec05 .bgBox02 {
        margin: 0 -1.8rem;
        padding: 5.8rem 1.8rem 0;
        background-size: 13rem auto;
    }

    .sec05 .borBox02 .flex {
        display: block;
    }
}