body {
    font-family: 'Inter', sans-serif;
    background-color: #FFFFFF;
    background-image: url("../img/bg.png");
    background-size: 100%;
}

body * {
    color: #242424;
}

:root {
    --black: #2B2B2B;
    --accent: #7D7557;
}

.font-alata {
    font-family: "Alata", sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.3em;
}

.font-inter {
    font-family: 'Inter', sans-serif;
    font-weight: 300;
}

.font-poppins {
    font-family: "Poppins", sans-serif;
}



h1 {
    transition: all 0.3s;
}

h1:hover {
    opacity: 0.6;
}

header {
    display: flex;
    justify-content: space-between;
    padding: 48px 48px;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 10;
	transition: background 0.4s ease;
}

header.active {
    background: linear-gradient(360deg, #ffffff00 0%, #ffffffdb 100%);
}

ul.header-nav.font-alata {
    display: flex;
    gap: 40px;
}

ul.header-nav li a {
    transition: all 0.3s;
    color: var(--black);
}

ul.header-nav li a:hover {
    color: #ada587;
}

main.top {
    padding-bottom: 0;
}

.mv-bg {
    width: 80%;
    margin-left: auto;
    position: relative;
}

.mv-bg:after {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background: #ffffff;
    opacity: 0.2;
    left: 0;
    top: 0;
}

.mv-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    /* top, right, bottom, left = 0 */
    background: #ada587;
    transform-origin: left;
    /* 左端を起点に縮む */
    transform: scaleX(1);
    /* 最初は幅100% */
    transition: transform 1s ease;
    /* 1秒で変化 */
}

/* 消すとき */
.mv-bg.is-hide::before {
    transform: scaleX(0);
    /* 幅0%に → 左から右に消える */
}


.mv {
    position: relative;
    max-width: 1800px;
    margin-left: auto;
    margin-top: 140px;
}

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

.js-fade-item {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .6s ease, transform .6s ease;
}

.js-fade-item.is-in {
    opacity: 1;
    transform: none;
}

h2.catch {
    position: absolute;
    top: 30%;
    left: 9%;
    font-size: 42px;
    letter-spacing: 0.2em;
    font-weight: normal;
    line-height: 1.5em;

    opacity: 0;
    /* 最初は透明 */
    transform: translateY(40px);
    /* 下に40pxずらす */
    animation: fadeUp 1s ease forwards;
    /* アニメーションを適用 */
}

@keyframes fadeUp {
    to {
        opacity: 1;
        /* 最終的に表示 */
        transform: translateY(0);
        /* 元の位置に */
    }
}



span.font-alata.scroll:before {
    content: "";
    position: absolute;
    width: 220%;
    height: 1px;
    background: var(--black);
    bottom: -10px;
    right: 0;

    /* アニメーション設定 */
    animation: shrinkLoop 2s infinite linear;
}

@keyframes shrinkLoop {
    0% {
        opacity: 0;
        width: 220%;
    }

    70% {
        opacity: 1;
        width: 0%;
    }

    100% {
        width: 0%;
    }
}

span.font-alata.scroll {
    position: absolute;
    font-size: 16px;
    left: 0px;
    bottom: -150px;
    transform: rotate(90deg);
    line-height: 1.3em;
    letter-spacing: 0.2em;
}

main {
    padding-bottom: 120px;
}

section {
    padding: 140px 120px;
}

section.intro p {
    text-align: center;
    line-height: 3.6em;
    letter-spacing: 0.1em;
}

.intro-image {
    display: flex;
    width: 100%;
}

.intro-image img {
    width: calc(100% / 3);
    aspect-ratio: 3 / 2;
    object-fit: cover;
}

section.intro {
    padding: 180px 120px;
}

.top-service-item {
    position: relative;
    background: var(--black);
    padding: 40px 28px;
    padding-top: 60px;
    padding-bottom: 20px;
    width: calc(100% / 4 - 9px);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

section.top-service {
    background-size: cover;
    padding-bottom: 160px;
}

.top-service-inner {
    display: flex;
    gap: 12px;
    max-width: 1440px;
    margin: auto;
}

.top-service-item__image {
    padding: 0 10px;
}

.top-service-item__image img {
    width: 100%;
}

.top-service-item p {
    font-size: 15px;
    letter-spacing: 0.05em;
    line-height: 1.8em;
    color: white;
}

section.top-service h3:before {
    content: "";
    position: absolute;
    width: 1px;
    height: 50px;
    background: var(--black);
    left: 50%;
    bottom: -70px;
}

section.top-service h3 {
    font-size: 42px;
    letter-spacing: 0.14em;
    text-align: center;
    font-weight: normal;
    line-height: 1.5em;
    position: relative;
    margin-bottom: 200px;
    font-weight: 600;
}

span.top-service-item__num {
    font-size: 42px;
    position: absolute;
    color: var(--accent);
    letter-spacing: 0.05em;
    top: -35px;
    background: var(--black);
    width: 90px;
    height: 90px;
    display: flex;
    justify-content: center;
    border-radius: 100px;
    left: calc(50% - 45px);
    padding-top: 14px;
    font-family: "oswald";
}

section.top-about {
    position: relative;
}

section.top-about:after {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    position: absolute;
    background: black;
    top: 0;
    left: 0;
    opacity: 0.5;
}

.top-about-inner h2 {
    font-size: 104px;
    font-weight: normal;
    letter-spacing: 0.1em;
    opacity: 0.7;
    color: white;
}


p.top-about-inner__desc {
    font-size: 15px;
    letter-spacing: 0.1em;
    line-height: 3em;
    padding-top: 60px;
    color: white;
}

section.top-about {
    background: url("../img/about01.jpg");
    background-size: cover;
    background-position: center;
}

.top-about-inner {
    position: relative;
    z-index: 2;
    max-width: 1440px;
    margin: auto;
}


.more-circle a:before {
    content: "";
    position: absolute;
    width: 94px;
    height: 94px;
    background: #ffffff;
    border-radius: 100px;
    z-index: -1;
    left: -50px;
    top: -32px;
    opacity: 0.2;
    transition: all 0.3s;
}

.more-circle {
    padding-top: 60px;
    padding-left: 50px;
    position: relative;

}

.more-circle p {
    color: white;
}

.more-circle a:after {
    width: 140%;
    height: 1px;
    content: "";
    position: absolute;
    bottom: -10px;
    background: white;
    transition: all 0.3s;
}

.more-circle a {
    font-size: 15px;
    letter-spacing: 0.1em;
    font-weight: normal;
    position: relative;
    display: inline-block;
    font-weight: 300;
}

section.top-about {
    padding-bottom: 180px;
}

.more-circle a:hover:before {
    transform: scale(1.2);
    background: var(--accent);
    opacity: 1;
}

.more-circle a:hover:after {
    width: 0%;
}


.top-work-inner h2 {
    font-size: 104px;
    font-weight: normal;
    letter-spacing: 0.1em;
    opacity: 0.7;
    padding-bottom: 80px;
}



.c-work-list {
    display: flex;
    flex-direction: column;
    gap: 80px;
    padding: 0 40px;
    max-width: 1440px;
    margin: auto;
}

.c-work-item {
    display: flex;
    gap: 64px;
    align-items: center;
}

.c-work-item__image {
    width: 40%;
    aspect-ratio: 362 / 241;
}

.c-work-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.c-work-body {
    width: 60%;
}

p.c-work-body__desc {
    line-height: 1.4em;
}

.c-work-body h4 span:before {
    content: "";
    position: absolute;
    width: 16px;
    height: 1px;
    background: var(--black);
    left: 11px;
    top: 50%;
}

.c-work-body h4 span {
    font-size: 14px;
    position: relative;
    padding-left: 40px;
}

.c-work-body h4 {
    font-size: 20px;
    letter-spacing: 0.1em;
    line-height: 2.4em;
    font-weight: normal;
    border-bottom: 1px solid #717171;
    margin-bottom: 16px;
}

p.font-inter.c-work-body__desc {
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.8em;
}


.more-btn a:after {
    width: 20px;
    height: 1px;
    content: "";
    position: absolute;
    background: white;
    right: 0;
    top: 50%;
    transition: all 0.3s;
}

.more-btn a:hover:after {
    width: 36px;
}

.more-btn a:hover {
    background: var(--accent);
}

.more-btn {
    padding-top: 20px;
}

.more-btn a {
    display: inline-block;
    background: #171717;
    color: white;
    font-size: 14px;
    letter-spacing: 0.1em;
    padding: 12px 60px 12px 20px;
    line-height: 1.3em;
    position: relative;
    font-weight: 300;
    transition: all 0.3s;
}

.work-bottom {
    width: 100%;
    aspect-ratio: 1280 / 350;
}

.work-bottom img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


section.gallery:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background: white;
    left: 0;
    top: 0;
    opacity: 0.4;
}

section.gallery {
    background: url(../img/bg01.jpg);
    background-size: cover;
    position: relative;
}

.gallery-list div img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery-list div {
    width: calc(100% / 3 - 14px);
    aspect-ratio: 335 / 224;
}

.gallery-list {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    max-width: 1440px;
    margin: auto;
    position: relative;
}

.contact-banner a {
    width: 100%;
    height: 360px;
    background: #242424;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 68px;
    letter-spacing: 0.2em;
    transition: all 0.3s;
    font-weight: 500;
    color: white;
}


.contact-banner a:hover {
    background: var(--accent);
}


footer {
    background: #EFEFEF;
}
footer * {
    color: var(--black);
}

.footer-inner {
    display: flex;
    justify-content: space-between;
    padding: 80px 120px;
    max-width: 1440px;
    margin: auto;
}

p.copyright.font-alata {
    text-align: center;
    padding: 60px 120px;
    font-size: 14px;
}

.footer-logo {
    display: flex;
    flex-direction: column;
    gap: 36px;
}

.footer-nav ul li a:hover {
    opacity: 0.6;
}

.footer-nav ul li a {
    font-size: 16px;
    letter-spacing: 0.1em;
    font-weight: 500;
    transition: all 0.3s;
}

.footer-nav ul {
    display: flex;
    gap: 40px;
    justify-content: flex-end;
}

.footer-nav ul:last-of-type {
    padding-top: 40px;
}

a.grobal {
    display: flex;
    align-items: center;
    gap: 6px;
}


.page-heading {
    padding: 240px 120px 48px 120px;
}

.page-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    max-width: 1580px;
    margin: auto;
}

.page-title h2 {
    font-size: 104px;
    font-weight: normal;
    letter-spacing: 0.1em;
}

.pankuzu {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-bottom: 20px;
    letter-spacing: 0.14em;
    font-size: 14px;
}

.pankuzu span {
    display: inline-block;
    width: 6px;
    height: 20px;
}

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

.heading-image {
    width: 100%;
    aspect-ratio: 1280 / 338;
    position: relative;
}

.heading-image:after {
    width: 100%;
    height: 100%;
    content: "";
    position: absolute;
    background: #000000;
    left: 0;
    opacity: 0.3;
}

main.page {
    max-width: 1440px;
    margin: auto;
}

section.message {
    padding-bottom: 0;
}

.message-image img {
    width: 100%;
}

.message-image {
    width: 80%;
}

.message-body h3 {
    font-size: 78px;
    font-weight: 200;
    padding-bottom: 40px;
}

.message-body {
    background-color: #FFFFFF;
    background-image: url(../img/bg.png);
    background-size: 100%;
    width: 75%;
    padding: 80px;
    margin-right: 0;
    margin-left: auto;
    position: relative;
    top: 0;
}

.message-body p {
    line-height: 2em;
    letter-spacing: 0.03em;
    font-weight: normal;
}

span.border-first {
    position: absolute;
    width: 160px;
    height: 1px;
    background: #585858;
    right: -30px;
    top: 0;
}

span.border-second {
    position: absolute;
    width: 160px;
    height: 1px;
    background: #585858;
    right: -70px;
    top: 40px;
    transform: rotate(90deg);
}

span.border-third {
    position: absolute;
    width: 160px;
    height: 1px;
    background: #585858;
    left: -30px;
    bottom: 0;
}

span.border-forth {
    position: absolute;
    width: 160px;
    height: 1px;
    background: #585858;
    left: -70px;
    bottom: 40px;
    transform: rotate(90deg);
}

section.service h3 {
    font-size: 104px;
    font-weight: normal;
    letter-spacing: 0.1em;
}

.service-list {
    width: calc(100% - 80px);
    margin: auto;
    display: flex;
    flex-direction: column;
    gap: 80px;
    padding-top: 100px;
}

.service-item {
    display: flex;
    gap: 60px;
    padding-top: 40px;
    border-top: 1px solid var(--accent);
    position: relative;
}

.service-body h4 {
    font-size: 26px;
    font-weight: normal;
    letter-spacing: 0.05em;
    padding-bottom: 40px;
    padding-left: 120px;
}

.service-body p {
    line-height: 1.8em;
    letter-spacing: 0.03em;
}

.service-item__num {
    position: absolute;
    background: var(--accent);
    font-size: 44px;
    width: 72px;
    height: 74px;
    display: flex;
    justify-content: center;
    align-items: center;
    top: -10px;
    padding-top: 10px;
    font-family: "oswald";
    font-weight: 300;
    letter-spacing: 0.04em;
    color: white;
}

.service-item__num:before {
    content: "";
    position: absolute;
    top: 0px;
    left: -10px;
    width: 0;
    height: 0;
    border-left: 0 solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid #5b512d;
    transform: rotate(180deg);
}

.service-item__num:after {
    content: "";
    position: absolute;
    bottom: -16px;
    left: 0;
    width: 0;
    height: 0;
    border-left: 36px solid transparent;
    border-right: 36px solid transparent;
    border-top: 16px solid #7d7557;
}

.service-item__image {
    padding-top: 30px;
    padding-right: 20px;
}

.service-item:before {
    width: 1920px;
    height: 1px;
    content: "";
    position: absolute;
    top: -1px;
    z-index: -1;
    border-top: 1px solid #cfcfcf;
    left: -35%;
}

.consulting-inner {
    max-width: 1440px;
    margin: auto;
    background: white;
    padding: 80px 90px;
    box-shadow: 0 0 15px #00000014;
}

.consulting-inner h4 {
    font-size: 28px;
    text-align: center;
    font-weight: normal;
    letter-spacing: 0.05em;
    padding-bottom: 48px;
}

p.consulting__desc span {
    color: var(--black);
    font-weight: bold;
}

p.consulting__desc {
    background: #F0F0F0;
    padding: 20px 32px;
    color: var(--black);
    font-size: 16px;
    letter-spacing: 0.03em;
    font-weight: 400;
    line-height: 1.8em;
}

.consulting-list {
    padding-top: 48px;
    display: flex;
    gap: 10px;
    justify-content: center;
}

.consulting-list ul li:before {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    background: url("../img/consulting-icon.svg");
    background-size: contain;
    background-repeat: no-repeat;
    left: 2px;
    top: 3px;
}

.consulting-list ul li {
    border-bottom: 1px solid #8E8E8E;
    padding-bottom: 10px;
    padding-left: 30px;
    display: inline-block;
    padding-right: 10px;
    position: relative;
    line-height: 1.6em;
    letter-spacing: 0.03em;
    font-weight: 500;
}

.consulting-list ul {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
}

.consulting-list ul li:after {
    content: "";
    position: absolute;
    width: 30px;
    height: 1px;
    background: #8E8E8E;
    left: -25px;
    transform: rotate(313deg);
    bottom: -12px;
}

.consulting-list ul li:nth-child(2) {
    margin-left: 20px;
}

.consulting-list ul li:nth-child(3) {
    margin-left: 40px;
}

.consulting-list ul li:nth-child(4) {
    margin-left: 60px;
}

section.consulting {
    padding-top: 40px;
}


.consulting-banner {
    background: url(../img/bg02.png);
    background-size: cover;
    background-position: center;
    margin-top: 24px;
}

.consulting-banner a {
    display: flex;
    align-items: center;
    padding: 100px;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    letter-spacing: 0.1em;
    position: relative;
    transition: all 0.3s;
    color: #E8E8E8;
    box-shadow: 0 0 15px #00000014;
}

.consulting-banner a span:before {
    content: "";
    position: absolute;
    width: 20px;
    height: 1px;
    background: white;
    top: -7px;
    transform: rotate(45deg);
    right: -2px;
}

.consulting-banner a span {
    width: 180px;
    height: 1px;
    background: white;
    position: absolute;
    bottom: 20px;
    right: 40px;
    transition: all 0.3s;
}

.consulting-banner a:hover {
    letter-spacing: 0.1em;
}

.consulting-banner a:hover span {
    width: 100px;
}



.system-item h4 {
    font-size: 24px;
    letter-spacing: 0.05em;
    font-weight: normal;
    border-bottom: 1px solid white;
    padding-bottom: 10px;
    margin-bottom: 24px;
    color: white;
}

.system-item__image img {
    width: 100%;
}

.system-item__image {
    width: 150px;
}

.system-item {
    display: flex;
    align-items: center;
    gap: 40px;
    padding: 60px 74px;
    background: #3b3b3b;
    border: 1px solid #6c6c6c;
}

.system-list {
    display: flex;
    flex-direction: column;
    gap: 40px;
    max-width: 1440px;
    margin: auto;
}

.system-item__body p {
    line-height: 1.8em;
    letter-spacing: 0.03em;
    color: white;
}

.system-item__body {
    width: calc(100% - 190px);
}

.system-item.system-item--third {
    flex-direction: column;
}

.system-item-inner {
    display: flex;
    align-items: center;
    gap: 40px;
    width: 100%;
}


.support {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.support-item h5 {
    font-size: 22px;
    letter-spacing: 0.05em;
    font-weight: normal;
    background: #ADA587;
    color: white;
    padding: 10px 16px;
    border-left: 3px solid var(--accent);
}

.support-item {
    width: 100%;
    background: #ffffff;
    padding: 40px 44px;
}

.support-item p {
    line-height: 1.8em;
    padding-top: 20px;
    letter-spacing: 0.03em;
    color: var(--black);
    font-weight: 400;
}

.support-item p span {
    font-weight: bold;
    color: var(--black);
}

section.road {
    padding-top: 20px;
}

.road-inner {
    max-width: 1080px;
    margin: auto;
}

.road-inner h3 {
    letter-spacing: 0.05em;
    text-align: center;
    font-weight: normal;
    line-height: 1.5em;
    position: relative;
    margin-bottom: 100px;
    font-size: 32px;
    font-weight: 600;
}

.road-inner h3:before {
    content: "";
    position: absolute;
    width: 1px;
    height: 50px;
    background: white;
    left: 50%;
    bottom: -70px;
}

.road-item__body {
    width: calc(100% - 60px);
    background: #ffffff;
    padding: 30px 52px;
    border: 1px solid #ebebeb;
}



.road-item {
    display: flex;
    gap: 50px;
    align-items: center;
    padding-left: 30px;
}

.road-item__body p {
    line-height: 1.8em;
    letter-spacing: 0.03em;
    color: var(--black);
    font-weight: 400;
    font-size: 15px;
}

.road-item__body h5 {
    font-size: 18px;
    letter-spacing: 0.05em;
    color: var(--black);
    font-weight: normal;
    border-bottom: 1px solid var(--black);
    padding-bottom: 14px;
    margin-bottom: 14px;
    font-weight: 600;
}

.road-item__period p {
    font-weight: 500;
    letter-spacing: 0.05em;
}

.road-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    position: relative;
    margin-top: 60px;
}

.road-list.road-list--first {
    margin-top: 0;
}

.road-item__period {
    justify-content: center;
    width: 15px;
    height: 15px;
    border-radius: 15px;
    background: var(--black);
    position: relative;
}

.road-item__period span {
    width: 60px;
    height: 1px;
    background: var(--black);
    position: absolute;
    top: 50%;
    left: 5px;
    z-index: -1;
}


.road-item__period:before {
    content: "";
    position: absolute;
    width: 2px;
    height: 120px;
    background: var(--black);
    top: -120px;
    left: 50%;
}

.road-item__period:after {
    content: "";
    position: absolute;
    width: 2px;
    height: 180px;
    background: var(--black);
    bottom: -180px;
    left: 50%;
}

.road-list.road-list--second {
    margin-top: 100px;
}

.road-title h4 {
    font-size: 24px;
    letter-spacing: 0.05em;
    font-family: 'Poppins';
    font-weight: 600;
}

.road-title {
    display: flex;
    align-items: center;
    gap: 40px;
}

.road-title p {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 80px;
    height: 80px;
    border: 2px solid var(--black);
    border-radius: 124px;
    background-color: white;
    background-image: url(../img/bg.png);
    background-size: cover;
    color: var(--black);
    position: relative;
    flex-direction: column;
    gap: 4px;
    font-size: 24px;
    font-family: "oswald";
    letter-spacing: 0.1em;
    z-index: 2;
}


.road-list:last-of-type .road-item:last-of-type:before {
    content: "";
    position: absolute;
    bottom: -105px;
    left: 28px;

    /* 三角形 */
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    /* 左の透明部分 */
    border-right: 10px solid transparent;
    /* 右の透明部分 */
    border-top: 20px solid var(--black);
    /* 下向き三角形の色と高さ */
}



.profile-inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.profile-image {
    width: 40%;
    position: relative;
}

.profile-image:before {
    content: "";
    position: absolute;
    width: 80%;
    height: 80%;
    background: #ada587;
    opacity: 0.2;
    bottom: -100px;
    right: -50px;
    z-index: -1;
}

.profile-image img {
    width: 100%;
}

.profile-body {
    width: 60%;
    border-bottom: 1px solid #585858;
    padding: 0 80px 30px 100px;
    max-width: 480px;
}

p.profile-body__position {
    font-size: 18px;
    letter-spacing: 0.04em;
    color: var(--black);
    padding-bottom: 16px;
}

p.profile-body__name {
    font-size: 54px;
    letter-spacing: 0.05em;
    color: #ADA587;
}



.history-inner {
    padding-top: 220px;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.history-item {
    display: flex;
    gap: 40px;
    align-items: center;
    position: relative;
    padding-left: 280px;
}

.history-item__image {
    position: absolute;
    top: calc(50% - 77px);
    left: 0;
}


.history-item-body {
    position: relative;
}

.history-item-body:before {
    width: 13px;
    height: 13px;
    content: "";
    position: absolute;
    background: var(--black);
    border-radius: 13px;
    top: 15px;
    left: -34px;
}

.history-item-body:after {
    content: "";
    position: absolute;
    width: 1px;
    height: 120px;
    background: #585858;
    left: -28px;
    top: -30px;
    z-index: -1;
}

.history-item-body p:first-of-type {
    font-size: 14px;
    letter-spacing: 0.03em;
    color: #868686;
}

.history-item-body p:last-of-type {
    font-size: 15px;
    line-height: 1.6em;
    letter-spacing: 0.03em;
    padding-top: 4px;
    font-weight: 400;
}

section.history-message {
    background: url("../img/bg01.jpg");
    background-size: cover;
}

.history-message__inner p {
    line-height: 2em;
    letter-spacing: 0.02em;
    color: white;
    font-weight: 300;
}

.history-message__inner {
    max-width: 1280px;
    margin: auto;
}

section.history-message {
    padding: 200px 120px;
}


.work-image {
    width: 70%;
    aspect-ratio: 646 / 430;
    position: relative;
}

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

.work-body {
    background-color: #FFFFFF;
    background-image: url(../img/bg.png);
    background-size: 100%;
    width: 70%;
    padding: 60px 100px 60px 60px;
    margin-right: 0;
    margin-left: auto;
    position: relative;
    top: -150px;
}

.work-body h3 {
    font-size: 20px;
    letter-spacing: 0.1em;
    line-height: 2.4em;
    font-weight: normal;
    border-bottom: 1px solid #717171;
    margin-bottom: 16px;
}

.work-body h3 span {
    font-size: 14px;
    position: relative;
    padding-left: 40px;
}

.work-body h3 span:before {
    content: "";
    position: absolute;
    width: 16px;
    height: 1px;
    background: var(--black);
    left: 11px;
    top: 50%;
}

.work-body p {
    font-size: 15px;
    letter-spacing: 0.05em;
    line-height: 1.8em;
}

.work-image:before {
    width: 360px;
    height: 360px;
    content: "";
    position: absolute;
    background: #ADA587;
    opacity: 0.4;
    left: -70px;
    bottom: -130px;
    z-index: -1;
}

.attempt h4 {
    font-size: 24px;
    font-weight: normal;
    border-bottom: 1px solid white;
    padding-bottom: 16px;
    color: white;
    letter-spacing: 0.1em;
}

.attempt {
    padding: 60px 90px;
    background: #3b3b3b;
    border: 1px solid #6c6c6c;
}

.attempt ol {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding-top: 40px;
    font-size: 17px;
    letter-spacing: 0.05em;
}

.attempt ol li {
    color: white;
}

.attempt {
    padding: 60px 90px;
    background: #3b3b3b;
    border: 1px solid #6c6c6c;
}

.attempt p {
    padding: 40px;
    background: #e9e9e9;
    color: var(--black);
    font-weight: 400;
    line-height: 1.8em;
    margin-top: 40px;
}

.work-gallery img {
    width: calc(50% - 20px);
    aspect-ratio: 470 / 315;
    object-fit: cover;
	height: 100%;
}

.work-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    padding-top: 60px;
}

.hamburger-menu,
.nav-menu {
    display: none;
}

.tb_block {
    display: none;
}

p.coming.font-alata {
    text-align: center;
    font-size: 28px;
    letter-spacing: 0.1em;
    opacity: 0.3;
}


.privacy-item p {
    line-height: 1.6em;
    letter-spacing: 0.03em;
}

.privacy-list {
    display: flex;
    flex-direction: column;
    gap: 60px;
}

.privacy-item h4 {
    font-size: 24px;
    letter-spacing: 0.05em;
    font-weight: normal;
    color: #ada587;
    border-bottom: 1px solid var(--accent);
    padding-bottom: 12px;
    margin-bottom: 20px;
}

.privacy-item ul li {
    list-style: disc;
}

.privacy-item ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 14px;
    padding-left: 20px;
}

p.privacy-item__mail a {
    text-decoration: underline;
}

p.privacy-item__mail {
    padding-top: 10px;
}


/*--------------------フォーム-----------------------*/
/*--------------------------------------------*/
/*フォーム*/
/*--------------------------------------------*/
.form-step ul {
    display: flex;
    justify-content: center;
    padding: 50px 0;
    gap: 10px;
}

.form-step ul li {
    color: white;
    padding: 12px 20px;
    width: 100%;
    text-align: center;
    max-width: 220px;
    background: #d4debc;
}

.form-step ul li.active {
    background: var(--main);
}

input[type=text],
input[type=email],
dd.form__input.form-input.form-input--tel input,
dd.form__input.form-input.form-input--pt3 input,
textarea {
    border: 1px solid;
    font-size: 16px;
    line-height: 2em;
    background: white;
    border-color: #d9d9d9;
    width: 100%;
    padding: 5px;
    font-weight: normal;
    color: var(--black);
}

textarea {
    height: 200px;
}


.form__submit {
    margin-top: 50px;
    text-align: center;
}

label {
    line-height: 0;
}

dt,
dd {
    font-weight: 500;
}

.form {
    margin: auto;
    max-width: 800px;
}

dl.form__item {
    display: flex;
    align-items: center;
    border-bottom: 1px solid #d7d7d7;
    padding: 28px 10px;
    margin: 0;
    position: relative;
}

dl.form__item:before {
    content: "";
    position: absolute;
    width: 200px;
    background: #7D7557;
    bottom: -1px;
    left: 0;
    z-index: 2;
    height: 1px;
}

dl.form__item dt {
    width: 230px;
}

dl.form__item dd {
    width: calc(100% - 230px);
    margin: 0;
    font-weight: normal;
    line-height: 1.6em;
    letter-spacing: 0.1em;
}

dt.form__label span {
    background: var(--main);
    color: white;
    font-size: 12px;
    padding: 2px 5px;
    margin-left: 10px;
    font-weight: normal;
}

.form-radio label {
    display: inline-block;
}

.form-radio label:not(:first-of-type) {
    margin-left: 15px;
}

dt.form__label p {
    display: inline-block;
    position: relative;
    letter-spacing: 0.05em;
}

dt.form__label span {
    background: var(--main);
    color: #D92D2D;
    font-size: 12px;
    padding: 2px 5px;
    font-weight: normal;
    position: absolute;
    top: -6px;
    right: -21px;
}

.form-radio input+span {
    position: relative;
    display: block;
    font-size: 0.9375rem;
    line-height: 1;
    cursor: pointer;
    padding: 0px 0px 0px 1.5em;
}

.form-radio input+span::before {
    content: "";
    width: 0.9375rem;
    height: 0.9375rem;
    display: block;
    position: absolute;
    top: 50%;
    left: 0px;
    transform: translateY(-50%);
    background: rgb(255, 255, 255);
    border-width: 1px;
    border-style: solid;
    border-color: rgb(204, 204, 204);
    -o-border-image: initial;
    border-image: initial;
    border-radius: 50%;
}

.form-radio input+span::after {
    content: "";
    width: 0.4375rem;
    height: 0.4375rem;
    position: absolute;
    top: 50%;
    left: 0.25rem;
    transform: translateY(-50%);
    opacity: 0;
    padding: 0.125rem;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    -o-border-image: initial;
    border-image: initial;
    border-radius: 50%;
    background: rgb(0, 0, 0);
    transition: all 0.3s ease 0s;
}

.form-radio input:checked+span:after {
    opacity: 1;
}

dd.form__input.form-input.form-input--pt2 {
    display: flex;
    gap: 10px;
    max-width: 340px;
    justify-content: flex-start;
    font-weight: normal;
}

dd.form__input.form-input.form-input--pt3 {
    max-width: 200px;
}

.form-container {
    max-width: 800px;
    margin: auto;
}



.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
    max-width: 800px;
    margin: auto;
    margin-top: 30px;
    border-color: var(--sub) !important;
}


.wpcf7-not-valid-tip {
    color: #dc3232;
    font-size: 1em;
    font-weight: normal;
    display: block;
    margin-top: 6px;
}

section.contact a.retry {
    text-decoration: underline;
    color: var(--main);
}

.contact-thanks {
    background: white;
    padding: 40px;
}

.contact-thanks h4 {
    font-size: 24px;
    color: var(--main);
    padding-bottom: 20px;
}

section.contact.contact--thanks {
    padding-top: 0;
}

section.contact.contact--thanks .inner-wrap {
    max-width: 980px;
}

/*  フォーム用ボタン　*/
.more-btn.more-btn--content a {
    padding: 14px 32px;
    font-size: 16px
}


.more-btn button {
    display: flex;
    background: var(--accent);
    border: 0;
    font-size: 14px;
    letter-spacing: 0.1em;
    padding: 16px 20px 16px 20px;
    line-height: 1.3em;
    position: relative;
    font-weight: 300;
    transition: all 0.3s;
    margin: auto;
    width: 200px;
    color: white;
    justify-content: center;
}

.more-btn button:after {
    width: 20px;
    height: 1px;
    content: "";
    position: absolute;
    background: white;
    right: 0;
    top: 50%;
    transition: all 0.3s;
}

.more-btn button:hover:after {
    width: 36px;
}

.more-btn button:hover {
    opacity: 0.8;
}

.more-btn.more-btn--confirm button {
    margin: 0;
}

.more-btn.more-btn--confirm p {
    display: flex;
    justify-content: center;
    gap: 10px;
}

button.back-btn {
    background: #575757;
    max-width: 150px;
    width: 120px;
    text-align: center;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

button.back-btn:after {
    display: none;
}

section.contact.contact--confirm dl.form__item {
    padding: 40px 10px;
}

@media screen and (max-width:520px) {
    dl.form__item {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    dl.form__item dt {
        width: 100%;
    }

    dl.form__item dd {
        width: 100%;
        margin: 0;
    }

    dd.form__input.form-input.form-input--pt3 {
        max-width: none;
    }

    dl.form__item:before {
        display: none;
    }

    .form__submit {
        margin-top: 20px;
    }
}



.thanks p {
    line-height: 1.6em;
    letter-spacing: 0.1em;
    color: white;
    font-weight: 300;
}

.thanks h4 {
    font-size: 28px;
    letter-spacing: 0.1em;
    text-align: center;
    font-weight: normal;
    margin-bottom: 30px;
    color: white;
}

.thanks {
    background: #3b3b3b;
    padding: 60px 75px;
    border: 1px solid #6c6c6c;
    margin: auto;
    max-width: 860px;
    margin-top: 80px;
}




/*タブレット以下*/
@media screen and (max-width:1080px) {
    .privacy-item h4 {
        font-size: 20px;
    }

    section.message {
        padding-bottom: 100px;
    }

    .tb_block {
        display: block;
    }

    main {
        padding-bottom: 80px;
    }

    .hamburger-menu,
    .nav-menu {
        display: block;
    }

    .hamburger-menu {
        position: absolute;
        width: 50px;
        height: 50px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        cursor: pointer;
        border: none;
        background: transparent;
        padding: 15px 12px;
        z-index: 1000;
        right: 24px;
        top: 24px;
        background: #7d7557;
    }

    /* 共通の線 */
    .hamburger-menu span {
        display: block;
        height: 2px;
        width: 100%;
        background: #ffffff;
        border-radius: 2px;
        transition: all 0.4s ease;
        transform-origin: center;
    }

    /* active時に×に変形 */
    .hamburger-menu.active span:nth-child(1) {
        transform: rotate(45deg) translate(6px, 6px);
    }

    .hamburger-menu.active span:nth-child(2) {
        opacity: 0;
    }

    .hamburger-menu.active span:nth-child(3) {
        transform: rotate(-45deg) translate(6px, -6px);
    }

    /* メニューの開閉 */
    .nav-menu {
        opacity: 0;
        transform: translateY(-8px);
        pointer-events: none;
        transition: opacity .25s ease, transform .25s ease;
    }

    .nav-menu.active {
        opacity: 1;
        transform: none;
        pointer-events: auto;
    }

    /* 順番表示用 */
    .nav-menu a {
        display: block;
        opacity: 0;
        transform: translateY(6px);
        transition: opacity .3s ease, transform .3s ease;
        font-size: 16px;
        letter-spacing: 0.2em;
        font-weight: normal;
        color: var(--black);
    }

    .nav-menu a.show {
        opacity: 1;
        transform: none;
    }

    .nav-menu {
        width: 60%;
        height: 100vh;
        position: fixed;
        top: 0;
        left: 0;
        background: #ffffffe0;

        padding-top: 100px;
        padding-left: 50px;
    }

    .nav-menu ul {
        display: flex;
        flex-direction: column;
        /* align-items: center; */
        gap: 38px;
    }

    a.grobal {
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .tb_none {
        display: none;
    }

    nav.pc-nav {
        display: none;
    }

    h1 img {
        width: 130px;
        height: auto;
    }

    h1 {
        transition: all 0.3s;
    }

    h1:hover {
        opacity: 0.6;
    }

    header {
        padding: 26px 24px;
    }

    section {
        padding: 80px 24px;
    }

    .mv-bg {
        width: 100%;
    }

    h2.catch {
        position: absolute;
        top: 110%;
        font-size: 32px;
        letter-spacing: 0.1em;
        font-weight: normal;
        line-height: 1.5em;
        left: 24px;
    }

    span.font-alata.scroll {
        font-size: 13px;
        left: 0px;
        bottom: -110px;
    }

    .mv {
        margin-top: 90px;
    }

    section.intro {
        padding: 280px 24px 80px;
    }

    section.intro p {
        line-height: 2.6em;
        font-size: 15px;
        text-align: left;
    }

    section.top-service h3 {
        font-size: 28px;
        margin-bottom: 140px;
    }

    .top-service-inner {
        flex-direction: column;
        align-items: center;
        gap: 70px;
    }

    .top-service-item {
        width: 90%;
    }

    section.top-service {
        background-size: 100%;
        padding-bottom: 100px;
    }

    .top-about-inner h2 {
        font-size: 64px;
    }

    p.top-about-inner__desc {
        line-height: 2em;
        padding-top: 30px;
    }

    section.top-about {
        padding-bottom: 120px;
    }

    .top-work-inner h2 {
        font-size: 64px;
        padding-bottom: 40px;
    }

    .c-work-item {
        flex-direction: column;
        gap: 32px;
    }

    .c-work-item__image {
        width: 100%;
    }

    .c-work-body {
        width: 100%;
    }

    .c-work-list {
        padding: 0 20px;
        gap: 60px;
    }



    .c-work-body h4 span {
        font-size: 14px;
        position: relative;
        padding-left: 40px;
        display: block;
        width: 100%;
        text-align: right;
        line-height: 1em;
        padding-bottom: 20px;
    }

    .c-work-body h4 span:before {
        display: none;
    }

    .work-bottom {
        width: 100%;
        aspect-ratio: 680 / 350;
    }

    .gallery-list div {
        width: calc(100% / 2 - 10px);
    }

    .contact-banner a {
        height: 280px;
        font-size: 38px;
    }

    .footer-inner {
        padding: 80px 40px;
    }

    .footer-inner {
        flex-direction: column;
        gap: 60px;
    }

    .footer-nav ul {
        gap: 40px;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .footer-nav ul:last-of-type {
        padding-top: 80px;
    }

    p.copyright.font-alata {
        padding: 60px 20px;
    }


    .page-heading {
        padding: 120px 24px 20px 23px;
    }

    .page-title h2 {
        font-size: 60px;
    }

    .page-title {
        flex-direction: column;
        gap: 40px;
        align-items: flex-start;
    }

    .heading-image {
        aspect-ratio: 680 / 338;
    }

    .pankuzu {
        padding-bottom: 0;
        width: 100%;
        justify-content: flex-end;
    }

    .message-image {
        width: 100%;
    }

    .message-body {
        width: 100%;
        padding: 30px 16px;
        margin-right: 0;
        margin-left: auto;
        position: static;
    }

    .message-body h3 {
        font-size: 48px;
    }

    .message-body span {
        display: none;
    }

    .message-body p {
        font-size: 15px;
    }

    section.service h3 {
        font-size: 48px;
    }

    section.service {
        padding-top: 0;
    }

    .service-item {
        display: flex;
        flex-direction: column;
        gap: 30px;
        padding-top: 40px;
    }

    .service-item__num {
        position: absolute;
        background: var(--accent);
        font-size: 34px;
        width: 62px;
        height: 64px;
        display: flex;
        justify-content: center;
        align-items: center;
        top: -10px;
        padding-top: 10px;
        font-family: "oswald";
        font-weight: 300;
        letter-spacing: 0.04em;
    }

    .service-item__num:after {
        content: "";
        position: absolute;
        bottom: -12px;
        left: 0;
        width: 0;
        height: 0;
        border-left: 31px solid transparent;
        border-right: 31px solid transparent;
        border-top: 12px solid #7d7557;
    }

    .service-body {
        order: 2;
    }

    .service-body h4 {
        font-size: 20px;
        padding-left: 0;
        text-align: center;
        padding-bottom: 30px;
    }

    .service-body p {
        font-size: 15px;
    }

    .service-item__image {
        text-align: center;
        order: 1;
        padding-right: 0;
        padding-top: 50px;
    }

    .service-list {
        width: 100%;
    }

    .service-item:first-of-type .service-item__image {
        padding-left: 30px;
    }

    .service-item:last-of-type .service-item__image {
        padding-left: 50px;
    }

    .consulting-inner {
        padding: 40px 24px;
    }

    .consulting-inner h4 {
        font-size: 20px;
        line-height: 1.6em;
        padding-bottom: 20px;
    }

    p.consulting__desc {
        padding: 20px;
        font-size: 15px;
    }

    .service-item:before {
        display: none;
    }

    .consulting-list {
        flex-direction: column;
    }

    .consulting-list__image img {
        width: 100%;
    }

    .consulting-list__image {
        order: 2;
        width: 60%;
        display: none;
    }

    .consulting-list ul li:nth-child(2),
    .consulting-list ul li:nth-child(3),
    .consulting-list ul li:nth-child(4) {
        margin-left: 0;
    }

    .consulting-list ul li:after {
        display: none;
    }

    .consulting-list ul li {
        font-size: 15px;
    }

    .consulting-list ul {
        gap: 30px;
    }

    .consulting-banner a {
        padding: 80px 20px;
        font-size: 20px;
    }

    .consulting-banner a span {
        width: 110px;
        right: 20px;
    }

    .footer-nav ul li a {
        font-size: 15px;
    }

    .profile-inner {
        flex-direction: column;
    }

    .profile-image {
        width: 80%;
    }

    .profile-image p {
        font-size: 42px;
        position: absolute;
        right: 30px;
    }

    .profile-body {
        width: 80%;
        padding: 0 0px 30px 0px;
        max-width: 480px;
        padding-top: 30px;
        border: 0;
    }

    p.profile-body__position {
        font-size: 16px;
    }

    p.profile-body__name {
        font-size: 42px;
    }

    .history-inner {
        padding-top: 40px;
        display: flex;
        flex-direction: column;
        gap: 10px;
        position: relative;
    }

    .history-item {
        flex-direction: column;
        padding: 0 0px 0 50px;
        align-items: flex-start;
        gap: 20px;
    }

    .history-item__image {
        position: static;
    }

    .history-item-body {
        position: relative;
        width: 100%;
    }

    .history-item-body p:last-of-type {
        font-size: 14px;
    }

    .history-item-body:after {
        display: none;
    }

    .history-inner:after {
        content: "";
        width: 1px;
        height: 100%;
        position: absolute;
        background: #585858;
        left: 22px;
        z-index: -1;
    }

    section.history-message {
        padding: 80px 24px;
    }

    .history-message__inner p {
        font-size: 15px;
    }

    section.history-message {
        background-size: 100%;
    }


    .system-item h4 {
        font-size: 22px;
    }

    .system-item,
    .system-item-inner {
        flex-direction: column;
        gap: 40px;
        padding: 50px 30px;
    }

    .system-item__image {
        width: 65%;
    }

    .system-item__body {
        width: 100%;
    }

    .system-item-inner {
        padding: 0;
    }

    .support-item {
        padding: 24px;
    }

    .support-item h5 {
        font-size: 18px;
        line-height: 1.6em;
    }

    .support-item p {
        padding-top: 14px;
    }

    .road-inner h3 {
        font-size: 28px;
    }

    .road-title h4 {
        font-size: 18px;
        width: calc(100% - 90px);
        line-height: 1.4em;
    }

    .road-title {
        gap: 30px;
    }

    .road-title p {
        width: 60px;
        height: 60px;
    }

    .road-item {
        gap: 20px;
        padding-left: 21px;
    }

    .road-item__body {
        padding: 24px;
        width: calc(100% - 30px);
    }

    .road-item__body h5 {
        font-size: 18px;
        line-height: 1.4em;
    }

    .road-item__period:before {
        height: 200px;
        top: -200px;
    }

    .road-item__period:after {
        height: 300px;
        bottom: -300px;
    }

    .road-item__body p {
        font-size: 15px;
    }

    .road-item:last-of-type .road-item__period:after {
        height: 200px;
        bottom: -200px;
    }

    .road-item__period:before,
    .road-item__period:after {
        display: none;
    }

    .road-inner {
        position: relative;
    }

    .road-inner:before {
        content: "";
        position: absolute;
        width: 1px;
        height: calc(100% - 150px);
        background: var(--black);
        left: 28px;
        top: 200px;
    }

    .road-inner:after {
        content: "";
        position: absolute;
        bottom: -70px;
        left: 19px;
        width: 0;
        height: 0;
        border-left: 10px solid transparent;
        border-right: 10px solid transparent;
        border-top: 20px solid var(--black);
    }

    .road-list:last-of-type .road-item:last-of-type:before {
        display: none;
    }

    .work-image {
        width: 100%;
    }

    .work-body {
        background: none;
        width: 100%;
        padding: 30px 20px 60px 20px;
        margin-right: 0;
        margin-left: auto;
        position: static;
        top: -150px;
    }

    .work-body h3 span {
        font-size: 14px;
        position: relative;
        padding-left: 40px;
        display: block;
        width: 100%;
        text-align: right;
        line-height: 1em;
        padding-bottom: 20px;
    }

    .work-body h3 span:before {
        display: none;
    }

    .attempt {
        padding: 50px 30px;
    }

    .attempt h4 {
        font-size: 20px;
    }

    .attempt ol {
        padding-top: 10px;
        padding-left: 20px;
    }

    .attempt ol li {
        line-height: 1.4em;
        font-size: 15px;
    }

    .attempt p {
        font-size: 15px;
        padding: 20px;
    }

    .work-gallery {
        gap: 14px;
    }

    .work-gallery img {
        width: calc(50% - 7px);
    }

    .thanks {
        padding: 60px 24px;
        margin-top: 20px;
    }

    .thanks h4 {
        font-size: 24px;
    }

    .work-gallery img {
        aspect-ratio: 300 / 200;
        height: 100%;
        object-fit: cover;
    }

    section.top-about:after {
        opacity: 0.8;
    }

}