@charset "UTF-8";
:root {
    --max-width: 1280px; /*コンテンツ幅*/
    --header-color: #fff; /*ヘッダーカラー*/
    --background-gray: #f0f0f0; /*白以外の背景カラー*/
}
@font-face {
    font-family: "Shippori Mincho";
    font-style: normal;
    font-weight: 500;
    src: url("../fonts/ShipporiMincho-Medium.woff") format("woff");
    font-display: swap;
}
html {
    scrollbar-gutter: stable;
    overflow-x: hidden;
}
.mincho {
    font-family: "Shippori Mincho";
    font-weight: 500;
    color: #000;
}
.text-center {
    text-align: center;
}
body {
    font-family: "Helvetica Neue", Arial, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", Meiryo, sans-serif;
    margin: 0;
    padding: 0;
    background-color: var(--site-color);
    color: var(--text-color);
    font-size: 16px;
    line-height: 1.75;
    letter-spacing: .01em;
    overflow-x: hidden;
}
h1, h2, h3, h4, h5, h6 {
    font-weight: 500;
}
a {
    color: unset;
}
li a {
    text-decoration: none;
}
li {
    list-style: none;
}
a[href*="tel:"] {
    pointer-events: none;
}
img.attachment-post-thumbnail {
    transition: all .5s ease;
}
figcaption {
    font-size: .875em;
}
@media (any-hover: hover) {
    a:hover img.attachment-post-thumbnail {
        transform: scale(1.1);
    }
}
@media screen and (max-width: 600px) {
    body {
        font-size: 14px;
    }
    a[href*="tel:"] {
        pointer-events: auto;
    }
}
/* iPad(768px)などで Columns が縦積みになるのを抑止 */
@media (min-width: 768px) and (max-width: 781px) {
  .wp-block-columns {
    flex-wrap: nowrap !important;
  }
  .wp-block-column {
    flex-basis: 0 !important;
    flex-grow: 1 !important;
    min-width: 0;
  }
}
/* ----------------------------
ヘッダー
------------------------------*/
#site-header {
    display: flex;
    position: fixed;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 78px;
    margin: 0 auto;
    padding: 10px 50px;
    background-color: #fff;
    transition: .5s;
    z-index: 9999;
}
.home #site-header {
    color: #fff;
    background-color: rgba(255, 255, 255, 0);
}
header h1 {
    line-height: 1;
}
#site-header.is-show {
    background-color: var(--header-color);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .1);
    transition: .5s;
    color: var(--text-color);
}
.site-logo {
    z-index: 999;
}
.site-logo img {
    width: 100%;
    height: auto;
}
header .site-logo a {
    display: flex;
}
.home header .site-logo a {
    background: url(../img/logo-orawhite.webp) no-repeat;
    background-size: contain;
    background-position: top;
    transition: .5s;
}
#site-header.is-show .site-logo a, .nav-open #site-header .site-logo a {
    background: none;
    transition: .5s;
}
header .site-logo a img {
    width: 240px;
    height: auto;
}
.home header .site-logo a img {
    opacity: 0;
    transition: .5s;
}
.home #site-header.is-show .site-logo a img, .nav-open #site-header .site-logo a img {
    opacity: 1;
    transition: .5s;
}
.header-menu-container, #head-widget-area {
    display: flex;
    align-items: center;
    gap: 50px;
    z-index: 99;
}
.wp-block-social-links {
    display: flex;
    gap: 30px;
}
.wp-block-social-links .wp-social-link svg {
    height: 1.5em;
    width: 1.5em;
}
.home header .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg {
    color: #fff;
    fill: #fff;
}
.home #site-header.is-show .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg, .home.nav-open #site-header .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg {
    color: #000;
    fill: #000;
}
.wp-block-buttons {
    transition: .5s;
}
.modal-menu {
    display: flex;
    justify-content: space-between;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    padding: 200px 40px 0;
    background: var(--background-gray);
    color: var(--text-color);
    visibility: hidden;
    opacity: 0;
    transition: all .3s ease;
}
.nav-open {
    overflow: hidden;
}
.nav-open .modal-menu {
    visibility: visible;
    opacity: 1;
}
.menu-global-container {
    margin: 0 auto;
    overflow-y: scroll;
    scrollbar-width: none;
}
.main-menu {
    list-style-type: none;
    display: grid;
    grid-template-columns: 305px 220px;
    gap: 2em 15vw;
    margin-bottom: 10em;
}
.main-menu a {
    position: relative;
    display: block;
    padding: .5em .2em;
    width: fit-content;
}
.main-menu a::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 1px;
    top: calc(50% + .6em);
    left: 0;
    background: var(--text-color);
    opacity: 0;
    transition: opacity .2s ease;
}
#menu-global > li > a {
    font-size: 1.8em;
    font-family: "Shippori Mincho";
    font-weight: 500;
    color: #000;
}
.sub-menu li {
    display: flex;
    flex-direction: row;
    align-items: center;
}
.sub-menu li::before {
    content: '-';
    margin: 0 5px;
}
.hamburger {
    position: relative;
    width: 38px;
    height: 38px;
    cursor: pointer;
    z-index: 999;
}
.hamburger__line {
    position: absolute;
    left: 0;
    width: 38px;
    height: 1px;
    background-color: #000;
    transition: all .5s ease;
}
.home .hamburger__line {
    background-color: #fff;
}
.nav-open .hamburger__line, .home #site-header.is-show .hamburger__line {
    background-color: #000;
}
.hamburger__line--1 {
    top: 5px;
}
.hamburger__line--2 {
    top: 15px;
}
.nav-open .hamburger__line--1 {
    transform: rotate(30deg) translate(3px, 4px);
}
.nav-open .hamburger__line--2 {
    transform: rotate(-30deg) translate(3px, -4px);
}
.hamburger-description {
    display: inline-block;
    width: 38px;
    padding-top: calc(38px - 1em);
    text-align: center;
    line-height: 1;
    color: #000;
    font-size: .75em;
    transition: all .5s ease;
}
.home .hamburger-description {
    color: #fff;
}
.nav-open .hamburger-description, .home #site-header.is-show .hamburger-description {
    color: #000;
}
@media (any-hover: hover) {
    .wp-block-buttons:hover {
        filter: brightness(1.1);
    }
    .main-menu a:hover::after {
        opacity: 1;
    }
}
@media screen and (max-width: 1200px) {
    #site-header {
        padding: 10px 30px;
    }
    header .site-logo a img {
        width: 240px;
    }
    .wp-block-social-links {
        font-size: 20px;
        gap: 25px;
    }
    .header-menu-container, #head-widget-area {
        gap: 30px;
    }
}
@media screen and (max-width: 600px) {
    #site-header {
        padding: 10px 15px;
        height: auto;
    }
    header .site-logo a img {
        width: auto;
        height: 38px;
    }
    #head-widget-area {
        position: absolute;
        top: 70px;
        left: 0;
        width: 100%;
        flex-direction: column;
        justify-content: center;
        gap: 20px;
        font-size: 1.25em;
        opacity: 0;
        visibility: hidden;
        transition: all .3s ease;
    }
    #head-widget-area a.wp-element-button {
        width: 300px;
        height: 70px;
    }
    .nav-open #head-widget-area {
        opacity: 1;
        visibility: visible;
    }
    .wp-block-social-links {
        font-size: 24px;
        gap: 30px;
    }
    .modal-menu {
        padding: 220px 30px 0;
    }
    .main-menu {
        grid-template-columns: 1fr;
        gap: .5em;
        margin-bottom: 5em;
    }
    #menu-global > li > a {
        font-size: 1.5em;
    }
}
/* ----------------------------
スライド
------------------------------*/
.top-img .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100svh;
}
.swiper-image {
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% + 10vw);
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -2;
}
.swiper-slide-active .swiper-image {
    animation: bgPan 7s linear forwards;
}
.swiper-slide-prev > .swiper-image {
    left: unset;
    right: 0;
}
@keyframes bgPan {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-10vw);
    }
}
.swiper-image::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0px;
    right: 0px;
    bottom: 0;
    z-index: -1;
}
.swiper-slide[data-swiper-slide-index="0"] .swiper-image::before {
    background-color: var(--cover-color_1);
    opacity: var(--cover-opacity_1);
}
.swiper-slide[data-swiper-slide-index="1"] .swiper-image::before {
    background-color: var(--cover-color_2);
    opacity: var(--cover-opacity_2);
}
.swiper-slide[data-swiper-slide-index="2"] .swiper-image::before {
    background-color: var(--cover-color_3);
    opacity: var(--cover-opacity_3);
}
.top-slide-nav.swiper-button-next, .top-slide-nav.swiper-button-prev {
    display: none;
}
.swiper-button-next, .swiper-button-prev {
    color: #aaa;
}
.swiper-button-next {
    right: 40px;
}
.swiper-button-prev {
    left: 40px;
}
.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    width: 40px;
    height: 4px;
    margin: 7px;
    border-radius: unset;
}
.swiper-pagination-bullet {
    background: #aaa;
    opacity: .4;
}
.swiper-pagination-bullet-active {
    background: var(--main-color);
    opacity: 1;
}
.slide-content {
    width: fit-content;
}
.slide-content h2 {
    font-size: 4em;
    line-height: 1.3;
}
.slide-content p {
    font-size: 1.5em;
    margin-top: 1.5em;
}
.scroll-down {
    position: absolute;
    bottom: 40px;
    right: 50px;
    padding-top: 53px;
    z-index: 1;
}
.scroll-down span {
    font-size: .75em;
    color: #fff;
}
.scroll-down div {
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: 50px;
    z-index: 999;
    overflow: hidden;
}
.scroll-down div::before {
    content: '';
    position: absolute;
    width: 1px;
    height: 100%;
    background: #a1a1a1;
    top: 0;
    right: 0;
}
.scroll-down div::after {
    content: '';
    position: absolute;
    width: 1px;
    height: 100%;
    background: #fff;
    transform-origin: top;
    transform: translateY(120%);
    animation: scroll-anime 2s linear infinite;
    top: 0;
    right: 0;
}
@keyframes scroll-anime {
    0% {
        transform: translateY(-120%);
    }
    70% {
        transform: translateY(120%);
    }
}
@media screen and (max-width: 1000px) {
    .swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
        width: 30px;
        margin: 5px;
    }
}
@media screen and (max-width: 600px) {
    .slide-content h2 {
        font-size: 2.6em;
    }
    .slide-content p {
        font-size: 1.05em;
    }
    .swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
        width: 14px;
        height: 3px;
        margin: 3px;
    }
    .swiper-button-next {
        right: 10px;
    }
    .swiper-button-prev {
        left: 10px;
    }
    .swiper-button-next, .swiper-button-prev {
        width: 36px;
        height: 36px;
    }
    .swiper-button-next::after, .swiper-button-prev::after {
        font-size: 2rem;
    }
    .scroll-down {
        bottom: 20px;
        right: 20px;
        padding-top: 43px;
    }
    .scroll-down span {
        font-size: .7125em;
    }
    .scroll-down div {
        height: 45px;
    }
}
/* ----------------------------
トップページコンテンツ
------------------------------*/
#container {
    max-width: calc(var(--max-width) + 80px);
    margin: 0 auto;
    padding: 0 40px;
}
.section-title {
    position: relative;
    font-size: 2.5em;
    line-height: 1.5;
}
.home .section-title::before, .contact-text .section-title::before {
    position: absolute;
    top: -2em;
    left: 0;
    font-size: 1.5rem;
    color: var(--main-color);
}
.home .section-title.text-center::before {
    left: 50%;
    transform: translateX(-50%);
}
.wp-block-button.white {
    width: 100%;
}
.btn-w, .wp-block-button.white a {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 380px;
    height: 60px;
    background: unset;
    border: 1px solid var(--text-color);
    border-radius: unset;
    color: var(--text-color);
    font-size: 1.25em;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    margin: 60px auto 0;
    box-sizing: border-box;
}
.btn-w::before, .wp-block-button.white a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--text-color);
    transform: scale(0, 1);
    transform-origin: left top;
    transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
    z-index: -1;
}
.btn-w a {
    padding-right: 2em;
    padding-left: 2em;
    font-weight: 500;
}
.text-link-btn {
    position: absolute;
    font-weight: 500;
    text-decoration: none;
    padding-right: 30px;
    line-height: 1.2;
    border-bottom: 1px solid var(--text-color);
}
.btn-w::after, .text-link-btn::after, .wp-block-button.white a::after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translate(-4px, -5px);
    width: 10px;
    height: 10px;
    rotate: 45deg;
    border-top: 2px solid var(--text-color);
    border-right: 2px solid var(--text-color);
    transition: transform .2s;
    pointer-events: none;
}
.text-link-btn::after {
    right: 10px;
}
.btn-b {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 300px;
    height: 50px;
    margin: 60px auto 0;
    padding: 0 3em;
    background: #303030;
    color: #fff;
    border-radius: 3px;
    text-decoration: none;
    opacity: 1;
    transition: opacity .2s ease;
}
@media (any-hover: hover) {
    .btn-w:hover, .wp-block-button.white a:hover {
        color: #fff;
    }
    .btn-w:hover::before, .wp-block-button.white a:hover::before {
        transform: scale(1, 1);
    }
    .btn-w:hover::after, .wp-block-button.white a:hover::after {
        border-color: #fff;
    }
    .text-link-btn:hover::after {
        transform: translate(0px, -9px);
    }
    .text-link-btn:hover {
        opacity: .7;
    }
    .btn-b:hover {
        opacity: .8;
    }
}
@media screen and (max-width: 1000px) {
    .btn-w a {
        padding-right: 1.5em;
        padding-left: 1.5em;
    }
}
@media screen and (max-width: 600px) {
    #container {
        padding: 0 18px;
    }
    .section-title {
        font-size: 2em;
        text-align: center;
    }
    .home .section-title::before, .contact-text .section-title::before {
        font-size: 1rem;
        top: -1.5em;
        left: 50%;
        transform: translateX(-50%);
    }
    .btn-w, .wp-block-button.white a {
        font-size: 1.125em;
        margin-top: 40px;
    }
    .btn-w a {
        padding-right: 2em;
        padding-left: 2em;
    }
    .btn-b {
        margin-top: 30px;
    }
    .text-link-btn {
        padding-right: 20px;
    }
    .text-link-btn::after {
        right: 5px;
    }
}
/*お知らせ*/
.s-notice {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 50px 0;
}
.s-notice::before, .s-event::before {
    content: '';
    position: absolute;
    inset: 0;
    margin: 0 calc(50% - 50vw);
    background: var(--background-gray);
    z-index: -1;
}
.s-notice .section-title::before {
    content: 'NOTICE';
}
.notice-posts {
    width: calc(100% - 161px - 9%);
    border-top: 1px solid #fff;
}
.entry-header {
    border-bottom: 1px solid #fff;
}
.entry-link {
    display: flex;
    align-items: center;
    flex-direction: row;
    gap: 30px;
    position: relative;
    padding: 30px 40px 30px 0;
}
.entry-link::after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translate(-4px, -5px);
    width: 12px;
    height: 12px;
    rotate: 45deg;
    border-top: 2px solid var(--text-color);
    border-right: 2px solid var(--text-color);
    transition: transform .2s;
}
.post-date {
    opacity: 1;
    transition: opacity .2s;
}
.post-category {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 88px;
    height: 24px;
    background: #777;
    color: #fff;
    font-size: .9em;
    border-radius: 2px;
    opacity: 1;
    transition: opacity .2s;
}
.post-title {
    flex: 1;
}
.s-notice .text-link-btn {
    left: 0;
    bottom: 50px;
}
@media (any-hover: hover) {
    .entry-link:hover::after {
        transform: translate(2px, -11px);
    }
    .entry-link:hover .post-date, .entry-link:hover .post-category {
        opacity: .7;
    }
    .entry-link:hover .post-title {
        text-decoration: underline;
    }
}
@media screen and (max-width: 600px) {
    .s-notice {
        display: block;
        padding: 100px 0;
    }
    .notice-posts {
        width: 100%;
        margin-top: 30px;
    }
    .entry-link {
        gap: 0 15px;
        flex-direction: column;
        flex-wrap: wrap;
        height: 79px;
        justify-content: center;
        padding: 15px 20px 15px 0;
    }
    .post-category {
        font-size: .85em;
        width: 72px;
        height: 22px;
    }
    .post-title {
        flex: unset;
        width: calc(100% - 95px);
        max-height: 79px;
        overflow: hidden;
    }
    .entry-link::after {
        right: 5px;
    }
    .s-notice .text-link-btn {
        left: 50%;
        transform: translateX(-50%);
    }
}
/*コンセプト*/
.s-concept {
    padding: 50px 0;
}
.s-concept .swiper {
    width: 100vw;
    margin-left: 50%;
    transform: translateX(-50%);
    padding: 50px 0;
}
.s-concept .swiper-slide {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: clamp(40px, 5vw, 80px);
}
.concept-content {
    flex-shrink: 0;
    width: clamp(400px, 45%, 600px);
    margin-left: max(calc((100vw - 1280px) / 2), 40px);
}
.s-concept .section-title::before {
    content: 'CONCEPT';
}
.s-concept p, .s-commitment p {
    margin-top: 30px;
}
.concept-image {
    position: relative;
    flex: 1;
    height: 490px;
    background-size: cover;
    background-position: center;
}
.wp-singular figure.fadeitem {
    position: relative;
}
.concept-image.fadeitem::before, .wp-singular figure.fadeitem::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: #fff;
    transform: scale(1, 1);
    transform-origin: top right;
    transition: transform .6s ease;
}
.concept-image.fadein::before, .wp-singular figure.fadein::before {
    transform: scale(0, 1);
}
.s-concept .swiper-pagination-bullet-active {
    background-color: var(--main-color);
}
.CCswiper.is-single .swiper-pagination,
.CCswiper.is-single .swiper-button-prev,
.CCswiper.is-single .swiper-button-next {
  display: none;
}
@media screen and (max-width: 600px) {
    .s-concept .swiper-slide {
        display: block;
    }
    .concept-content {
        width: auto;
        margin: 0 25px;
    }
    .concept-image {
        height: 240px;
        margin-top: 50px;
    }
}
/*メインコンテンツメニュー*/
.main-content-ul {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 10px;
    margin: 0 calc(50% - 50vw);
}
.main-content-ul li {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1;
    height: 440px;
    overflow: hidden;
}
.main-content-ul .fadeitem, .category-block .fadeitem, .s-event .fadeitem, .contact.fadeitem {
    opacity: 0;
    transform: translateY(50px);
    transition: all .6s ease;
}
.main-content-ul .main-content2.fadeitem, .s-event .fadeitem:nth-child(2) {
    transition-delay: .15s;
}
.s-event .fadeitem:nth-child(3) {
    transition-delay: .3s;
}
.main-content-ul .fadein, .category-block .fadein, .s-event .fadein, .contact.fadein {
    transform: translateY(0);
    opacity: 1;
}
.main-content-ul h2 {
    position: relative;
    text-align: center;
    color: #fff;
    line-height: 1.4;
    font-size: 3rem;
    width: 100%;
    pointer-events: none;
    z-index: 2;
}
.main-content-ul a {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background-size: cover;
    background-position: center;
    position: absolute;
    inset: 0;
    z-index: 0;
    text-decoration: none;
    transition: transform .5s ease;
}
.main-content-ul a::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: #000;
    opacity: .4;
    z-index: -1;
    pointer-events: none;
    transition: opacity .5s ease;
}
.main-content1 a {
    background-image:url(../img/chumon-jutaku.webp);
}
.main-content2 a {
    background-image:url(../img/reform.webp);
}
.main-content1 h2::before, .main-content2 h2::before {
    position: absolute;
    top: -2em;
    left: 50%;
    width: 100%;
    transform: translateX(-50%);
    font-size: 1.5rem;
    color: rgba(255, 255, 255, .5);
    z-index: 3;
    pointer-events: none;
}
.main-content1 h2::before {
    content: 'CUSTOM-BUILT HOUSE';
}
.main-content2 h2::before {
    content: 'RENOVATION & REMODELING';
}
@media (any-hover: hover) {
    .main-content-ul a:hover {
        transform: scale(1.1);
    }
    .main-content-ul a:hover::after {
        opacity: .6;
    }
}
@media screen and (max-width: 1200px) {
    .concept-content h2.section-title br {
        display: none;
    }
}
@media screen and (max-width: 600px) {
    .main-content-ul {
        flex-direction: column;
        gap: 5px;
    }
    .main-content-ul li {
        height: 250px;
        flex: unset;
    }
    .main-content-ul h2 {
        font-size: 2rem;
    }
    .main-content1 h2::before, .main-content2 h2::before {
        font-size: 1rem;
    }
}
/*施工事例*/
.s-works {
    padding: 200px 0 150px;
}
.s-works .section-title::before {
    content: 'WORKS';
}
.category-block {
    position: relative;
}
.category-block .text-link-btn {
    top: 1.7em;
    right: 0;
}
.category-block .swiper {
    width: 100vw;
    margin: 2.5em calc(50% - 50vw) 0;
}
.works-list img {
    width: 100%;
    height: 345px;
    object-fit: cover;
}
.category-title {
    position: relative;
    font-size: 2em;
    margin-top: 3em;
    padding-top: 5px;
}
.category-title::before {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    font-size: 6rem;
    color: var(--background-gray);
    z-index: -1;
}
.category-j-modern .category-title::before {
    content: 'JAPANESE MODERN';
}
.category-modern .category-title::before {
    content: 'MODERN';
}
.category-natural .category-title::before {
    content: 'NATURAL';
}
.category-block .swiper-button-next, .category-block .swiper-button-prev {
    color: #fff;
    top: 173px;
}
.category-block .swiper-pagination {
    position: relative;
    margin-top: 2em;
}
.works-detail {
    display: grid;
    gap: .2em .5em;
    grid-template-columns: 88px 1fr;
    grid-template-rows: 24px 1fr;
    margin-top: .8em;
}
.post-label {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #777;
    color: #fff;
    font-size: .875em;
    line-height: 1;
    border-radius: 2px;
}
.works-list .post-location {
    font-size: .875em;
    white-space: nowrap;
    overflow: hidden;
}
.works-list .post-title {
    grid-column: 1 / 3;
    font-size: 1.25em;
    line-height: 1.5;
}
.works-list figure {
    display: flex;
    overflow: hidden;
}
@media screen and (max-width: 1200px) {
    .category-title::before {
        font-size: 5.2rem;
    }
    .works-detail {
        grid-template-columns: 70px 1fr;
    }
    .home .post-label {
        font-size: .75em;
        height: 22px;
    }
}
@media screen and (max-width: 1000px) {
    .category-title::before {
        font-size: 3.9rem;
    }
}
@media screen and (max-width: 600px) {
    .s-works {
        padding: 100px 0;
    }
    .category-title {
        font-size: 1.75em;
        text-align: left;
        width: 100vw;
        overflow: hidden;
        margin: 1em -20px 0;
        padding: 15px 20px 10px;
    }
    .category-title::before {
        font-size: 3rem;
        width: 200%;
        left: 0;
        transform: translate(0, -50%);
    }
    .category-block .text-link-btn {
        top: 2em;
    }
    .category-block .swiper {
        margin-top: .5em;
    }
    .works-list .post-title {
        width: 100%;
    }
    .category-block .swiper-pagination {
        margin-top: 1.5em;
    }
    .category-block .swiper-button-next, .category-block .swiper-button-prev {
        top: 150px;
    }
}
/*イベント*/
.s-event {
    position: relative;
    padding: 110px 0 70px;
    margin-bottom: 210px;
}
.s-event .section-title::before {
    content: 'EVENT';
}
.event-posts {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 80px 40px;
    margin-top: 60px;
}
.event-posts > li {
    position: relative;
    width: calc((100% - 80px) / 3);
}
.event-posts img {
    width: 100%;
    height: 260px;
    object-fit: cover;
}
.new-mark {
    position: absolute;
    top: .6em;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--main-color);
    font-family: "Shippori Mincho";
    font-weight: 500;
    line-height: 1;
    color: #fff;
    width: 70px;
    height: 24px;
    padding-bottom: .1em;
    z-index: 1;
}
.thumb-wrap {
    position: relative;
    display: flex;
    overflow: hidden;
}
.is-overlay::after {
    content: '終了しました';
    font-family: "Shippori Mincho";
    font-weight: 500;
    font-size: 1.25em;
    color: #fff;
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background: rgba(0, 0, 0, .7);
    z-index: 2;
}
.event-title {
    font-size: 1.5em;
    margin-top: .8em;
    line-height: 1.3;
}
.event-detail {
    margin-top: 1.25em;
}
.event-detail li {
    position: relative;
    padding-left: 2em;
    line-height: 1;
}
.event-detail li:not(:first-child) {
    margin-top: .7em;
}
.event-detail li::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 1em;
    height: 1em;
    background-size: contain;
}
.post-event-date::before {
    background: url(../img/calendar.svg) no-repeat;
}
.post-event-time::before {
    background: url(../img/clock.svg) no-repeat;
}
.post-event-location::before {
    background: url(../img/pin.svg) no-repeat;
}
@media screen and (max-width: 1200px) {
    .event-posts {
        gap: 80px 30px;
    }
    .event-posts > li {
        width: calc((100% - 60px) / 3);
    }
    .event-posts img {
        height: 180px;
    }
    .event-title {
        font-size: 1.25em;
    }
    .event-detail {
        font-size: .875em;
    }
}
@media screen and (max-width: 600px) {
    .s-event {
        padding: 100px 0 70px;
        margin-bottom: 100px;
    }
    .event-posts {
        gap: 30px;
        margin-top: 30px;
    }
    .event-posts > li {
        width: 100%;
    }
    .event-title {
        margin-top: .6em;
    }
    .event-detail {
        margin-top: 1em;
    }
    .event-detail li:not(:first-child) {
        margin-top: .5em;
    }
}
/*家づくり*/
.s-commitment {
    position: relative;
    display: flex;
    flex-direction: row;
    gap: 50px;
    padding: 0 0 220px;
}
.s-commitment::after {
    content: '';
    position: absolute;
    display: block;
    width: 25vw;
    max-width: 380px;
    height: 295px;
    left: 0;
    bottom: 65px;
    background: url(../img/201304-2_01-3.webp) no-repeat;
    background-size: contain;
    background-position: center;
    z-index: 1;
}
.commitment-link-blocks {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: 200px 200px;
    gap: 1px;
    width: 803px;
    margin-top: 110px;
}
.commitment-link-blocks.fadeitem::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: var(--background-gray);
    transform: scale(1, 1);
    transform-origin: top right;
    transition: transform .6s ease;
    z-index: 2;
}
.commitment-link-blocks.fadein::before {
    transform: scale(0, 1);
}
.commitment-link-blocks::after {
    content: '';
    display: block;
    position: absolute;
    width: calc(100vw + 250px);
    height: calc(100% + 160px);
    top: -80px;
    left: -250px;
    background: var(--background-gray);
    z-index: -2;
}
.commitment-block {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 200px;
    height: 100%;
    overflow: hidden;
}
.commitment-link-title {
    position: relative;
    z-index: 1;
    font-size: 1.25em;
    text-align: center;
    color: #fff;
    padding: .4em .8em;
    pointer-events: none;
}
.commitment-link {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    inset: 0;
    width: 200px;
    text-decoration: none;
    z-index: 0;
    background:
        var(--bg, none) center/cover no-repeat,
        linear-gradient(135deg, #4b5563, #1f2937);
    transition: transform .5s ease;
}
.commitment-link::after {
    content: '';
    position: absolute;
    inset: 0;
    background: #000;
    opacity: .6;
    z-index: -1;
    pointer-events: none;
    transition: opacity .5s ease;
}
@media (any-hover: hover) {
    .commitment-link:hover {
        transform: scale(1.1);
    }
    .commitment-link:hover::after {
        opacity: .8;
    }
}
@media screen and (max-width: 1320px) {
    .s-commitment {
        display: block;
    }
    .commitment-text {
        display: flex;
        align-items: center;
        gap: 20px;
    }
    .commitment-text > h2 {
        width: 9.5em;
    }
    .commitment-text > p {
        flex: 1;
        margin: 0;
    }
    .commitment-link-blocks {
        width: 100%;
        max-width: 803px;
        margin: 30px auto 0;
    }
    .commitment-block, .commitment-link {
        width: auto;
    }
    .s-commitment::after {
        display: none;
    }
}
@media screen and (max-width: 600px) {
    .s-commitment {
        padding: 0 0 120px;
    }
    .commitment-text {
        flex-wrap: wrap;
    }
    .commitment-text > h2 {
        width: fit-content;
        margin: 0 auto;
    }
    .commitment-text > p {
        flex: unset;
    }
    .commitment-link-blocks {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: repeat(4, 160px);
    }
    .commitment-link-blocks::after {
        top: -220px;
        height: calc(100% + 280px);
    }
}
/*インスタグラム*/
.s-insta {
    padding: 50px 0 150px;
}
.s-insta .section-title::before {
    content: 'Instagram';
}
#sb_instagram.sbi_width_resp {
    margin: 60px calc(50% - 50vw) 0;
    width: 100vw !important;
}
#sb_instagram #sbi_images {
    padding: 0;
}
#sb_instagram .sbi_follow_btn a {
    padding: 1em 3em;
    border-radius: 3px;
    margin-top: 60px;
}
@media screen and (max-width: 600px) {
    .s-insta {
        padding: 40px 0 80px;
    }
    #sb_instagram.sbi_width_resp, #sb_instagram .sbi_follow_btn a {
        margin-top: 30px;
    }
}
/*YouTube*/
.s-youtube {
    margin: -40px -40px 150px;
    padding: 40px;
    overflow: hidden;
}
.s-youtube a {
    position: relative;
    display: block;
    padding: 50px;
    width: 100%;
    text-decoration: none;
    border: 1px solid var(--text-color);
}
.s-youtube a::after {
    content: '';
    position: absolute;
    top: -40px;
    bottom: -40px;
    left: 0;
    right: -40px;
    background: url(../img/youtube_backimg.webp);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center right;
    transform: scale(1);
    transform-origin: right;
    transition: transform .5s ease;
    z-index: -1;
}
.s-youtube a:hover::after {
    transform: scale(1.05);
}
.s-youtube h2 span {
    font-size: 1.5rem;
}
.s-youtube .btn-b {
    margin-left: 0;
}
.tb-only {
    display: none;
}
@media screen and (max-width: 1000px) {
    .s-youtube {
        margin: -20px -40px 130px;
        padding: 20px 40px;
    }
    .s-youtube a {
        padding: 30px;
    }
    .s-youtube a::after {
        top: -20px;
        bottom: -20px;
        right: -50px;
    }
    .s-youtube h2.section-title {
        line-height: 1.3;
    }
    .s-youtube h2.section-title span {
        line-height: 1;
    }
    .s-youtube .btn-b {
        margin-top: 20px;
        padding: 0 1em;
        width: 200px;
    }
    .tb-only {
        display: block;
    }
}
@media screen and (max-width: 600px) {
    .s-youtube {
        margin-bottom: 80px;
    }
    .s-youtube a {
        padding: 10px;
    }
    .s-youtube a::after {
        position: relative;
        display: block;
        height: 200px;
        top: unset;
        bottom: unset;
        right: unset;
        left: unset;
        margin-top: -25px;
        background-size: cover;
    }
    .s-youtube h2 span {
        font-size: 1rem;
    }
    .s-youtube .btn-b {
        margin-top: 10px;
        margin-left: auto;
    }
    .tb-only {
        display: none;
    }
}
/*お客様の声・ブログ*/
.s-section-container {
    display: flex;
    flex-direction: row;
    gap: 2px;
    margin: 70px calc(50% - 50vw) 170px;
}
.s-section-container section {
    width: calc(50vw - 1px);
    padding: 0 40px;
    background: var(--background-gray);
}
.s-section-container h2 {
    margin-top: -.75em;
}
.s-voice .section-title::before {
    content: 'VOICE';
}
.s-blog .section-title::before {
    content: 'BLOG';
}
.vb-posts {
    max-width: 600px;
    margin: 60px auto 0;
}
.vb-posts li:not(:first-child) {
    margin-top: 30px;
}
.vb-posts a {
    display: flex;
    flex-direction: row;
    gap: 30px;
    align-items: center;
    background: rgba(255, 255, 255, 0);
    transition: all .3s ease;
}
.vb-title {
    display: block;
    font-size: 1.375em;
    margin-bottom: .3em;
}
.vb-posts figure {
    flex-shrink: 0;
    flex-basis: 120px;
    height: 120px;
    overflow: hidden;
}
.vb-posts img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.s-section-container .btn-b {
    margin-bottom: -25px;
}
@media (any-hover: hover) {
    .vb-posts a:hover {
        background: rgba(255, 255, 255, .4);
    }
}
@media screen and (max-width: 1200px) {
    .home .vb-posts span.vb-title {
        font-size: 1.25em;
    }
    .vb-posts a {gap: 20px;}
    .vb-posts figure {
        flex-basis: 100px;
        height: 100px;
    }
}
@media screen and (max-width: 600px) {
    .s-section-container {
        flex-wrap: wrap;
        gap: 5px;
        margin-top: 0;
        margin-bottom: 100px;
    }
    .s-section-container section {
        width: 100%;
        padding: 0 20px;
    }
    .s-section-container h2 {
        margin-top: 70px;
    }
    .vb-posts {
        margin-top: 30px;
        line-height: 1.5;
    }
    .vb-posts li:not(:first-child) {
        margin-top: 20px;
    }
    .vb-posts figure {
        flex-basis: 80px;
        height: 80px;
    }
    .s-section-container .btn-b {
        margin-bottom: 40px;
    }
}
/* ----------------------------
パンくず
------------------------------*/
.breadcrumb {
    width: 100%;
    margin: 0;
    padding: .9em 40px;
    background: #fff;
    font-size: 0.875em;
}
.breadcrumb ul {
    max-width: calc(var(--max-width) + 80px);
    margin: 0 auto;
}
.breadcrumb li {
    display: inline-flex;
}
.breadcrumb li + li::before{
    content: '＞';
    margin: 0 .5em;
}
@media (any-hover: hover) {
    .breadcrumb li a:hover {
        text-decoration: underline;
    }
}
@media screen and (max-width: 600px) {
    .breadcrumb {
        padding: .7em 20px;
    }
}
/* ----------------------------
コンタクト
------------------------------*/
.contact {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 450px;
    background-image: url(../img/contact021.webp);
    background-position: center;
    background-size: cover;
    z-index: 1;
}
.contact::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: #000;
    opacity: .7;
}
.contact h2, .contact p, .contact div {
    color: #fff;
    z-index: 2;
}
.contact .section-title::before {
    content: 'CONTACT US';
    left: 50%;
    transform: translateX(-50%);
}
.contact-text .section-title {
    text-align: center;
    margin-top: 1em;
}
.contact p {
    margin-top: 1.9em;
}
.contact-button {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-top: 2.5em;
}
.contact-form {
    display: block;
    background-color: var(--main-color);
    border-radius: 5px;
    color: #fff;
    line-height: 1;
    text-decoration: none;
    text-align: center;
    font-size: 1.25em;
    padding: 1em 2.5em;
}
.contact-tel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 1px solid #fff;
    border-radius: 5px;
    height: 100%;
    text-decoration: none;
    font-size: 0.875rem;
}
.contact-tel span {
    display: inline-block;
    margin-bottom: 3px;
    color: #fff;
    font-size: 1.375rem;
}
@media (any-hover: hover) {
    .contact-form:hover {
        filter: brightness(1.1);
    }
}
@media screen and (max-width: 600px) {
    .contact {
        padding: 30px;
        height: auto;
    }
    .contact p {
        margin: 20px auto 0;
        max-width: 310px;
    }
    .contact-text br {
        display: none;
    }
    .contact-button {
        grid-template-columns: 1fr;
        grid-template-rows: 1fr 1fr;
        gap: 1em;
        width: 100%;
        max-width: 310px;
        margin: 25px auto 0;
    }
}
/* ----------------------------
下層ページ
------------------------------*/
.wp-singular #container, .archive #container {
    padding-top: 78px;
}
.content {
    position: relative;
}
.article-title {
    max-width: 1280px;
    margin: 3em auto;
    padding: 0 40px;
    font-size: 3em;
    text-align: center;
}
.content > p:not(:first-child) {
    margin-top: 1em;
}
.content h2 {
    font-family: "Shippori Mincho";
    font-weight: 500;
    color: #000;
}
.wp-block-list li {
    list-style: inside;
}
.margin60 {
    margin-top: 60px;
}
.margin80 {
    margin-top: 80px;
}
.margin100 {
    margin-top: 100px;
}
.marginl0 {
    margin-left: 0 !important;
}
.fontsize1125 {
    font-size: 1.125em;
}
.fontsize125 {
    font-size: 1.25em;
}
.fontsize150 {
    font-size: 1.5em;
}
.fontsize175 {
    font-size: 1.75em;
}
.width50 {
    width: 50%;
}
.is-layout-flex > .neg-margin {
    margin-top: -3em;
}
body.page-template-page-contact {
    background-color: var(--background-gray);
}
.page-eyecatch, .page1-eyecatch {
    position: relative;
    display: flex;
    justify-content: center;
    width: 100vw;
    margin: 0 calc(50% - 50vw);
    background-size: cover;
    background-position: center;
}
.page-eyecatch {
    height: 700px;
    align-items: center;
}
.page1-eyecatch {
    height: 450px;
}
.page1-eyecatch::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: #000;
    opacity: .7;
}
.page1-eyecatch .article-title {
    height: fit-content;
    margin: 2.1em 0 0;
    font-size: 3.5em;
    color: #fff;
    z-index: 2;
}
.page-template-page-contact .content {
    max-width: 1060px;
    margin: -120px auto 130px;
    padding: 100px 140px;
    background: #fff;
}
.wp-block-list {
    padding: 0;
    border: none;
}
.wp-block-table {
    margin-top: .5em;
}
.wp-block-table td, .wp-block-table th {
    border: none;
    border-top: 1px solid #aaa;
    border-bottom: 1px solid #aaa;
    padding: 1.5em 3em;
    vertical-align: unset;
}
.section-w, .section-g {
    position: relative;
    padding: 130px 0 100px;
}
.section-g::before {
    content: '';
    display: block;
    position: absolute;
    inset: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    background: var(--background-gray);
    z-index: -1;
}
.post-btn-b a {
    opacity: 1;
    transition: opacity .2s ease;
}
@media (any-hover: hover) {
    .post-btn-b a:hover {
        opacity: .8;
    }
}
@media screen and (max-width: 1200px) {
    .article-title {
        font-size: 2.5em;
    }
    .page1-eyecatch .article-title {
        font-size: 3em;
        margin-top: 2.5em;
    }
    .fontsize1125 {
        font-size: 1em;
    }
    .fontsize125 {
        font-size: 1.125em;
    }
    .fontsize150 {
        font-size: 1.25em;
    }
    .fontsize175 {
        font-size: 1.3em;
    }
    .page-template-page-contact .content {
        padding: 80px;
    }
}
@media screen and (max-width: 600px) {
    .wp-singular #container, .archive #container {
        padding-top: 58px;
    }
    .page-eyecatch {
        height: 250px;
    }
    .page1-eyecatch {
        height: 320px;
    }
    .page1-eyecatch .article-title {
        font-size: 2em;
        margin-top: 2.5em;
    }
    .page-template-page-contact .content {
        padding: 50px 25px;
        margin-bottom: 100px;
    }
    .section-w, .section-g {
        padding: 80px 0 60px;
    }
    .article-title {
        padding: 0 20px;
        font-size: 2em;
    }
    .wp-block-table td, .wp-block-table th {
        padding: 1em 1.5em;
        vertical-align: middle;
    }
    .margin60 {
        margin-top: 30px;
    }
    .margin80 {
        margin-top: 50px;
    }
    .margin100 {
        margin-top: 80px;
    }
}
/* ----------------------------
PAGE：MAIN CONTENTS
------------------------------*/
.main-eyecatch {
    position: relative;
    width: calc(100vw - 360px);
    height: 700px;
    margin: 0 calc(50% - 50vw) 0 auto;
    background-size: cover;
    background-position: center;
}
.main-eyecatch .article-title {
    position: absolute;
    top: 50%;
    left: -223px;
    transform: translateY(-50%);
    background: none;
    margin: 0;
    padding: 0;
    height: 100%;
    font-size: 6em;
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: .05em;
    line-height: 1;
}
.page-new-construction .main-eyecatch .article-title {
    height: 4.4em;
}
.page-reform .main-eyecatch .article-title {
    font-size: 4.875em;
    letter-spacing: .05em;
}
.page-reform .main-eyecatch .article-title span:nth-child(2) {
    position: absolute;
    top: 2rem;
    left: .65em;
}
.page-reform .main-eyecatch .article-title span:nth-child(3) {
    position: absolute;
    bottom: 2rem;
    left: -.5em;
}
.choon {
    display: inline-block;
    transform: rotate(90deg);
    transform-origin: center;
}
.main-eyecatch .article-title .small {
    position: absolute;
    top: -3.5rem;
    left: 7.5rem;
    font-size: 2.25rem;
}
.page-reform .main-eyecatch .article-title .small {
    top: 2rem;
    left: 9rem;
}
@supports not (-webkit-touch-callout: none) {
    .main-eyecatch .article-title {
        letter-spacing: -.35em;
        margin: -.25em 0 0;
    }
    .page-reform .main-eyecatch .article-title {
        letter-spacing: -.5em;
    }
    .main-eyecatch .article-title .small {
        letter-spacing: -.35em;
    }
    .page-reform .main-eyecatch .article-title .small {
        letter-spacing: -.45em;
    }
    .choon {
        transform: rotate(90deg) translate(.37em, -.31em);
    }
}
@-moz-document url-prefix() {
    .main-eyecatch .article-title {
        letter-spacing: .05em;
        margin: 0;
    }
    .page-reform .main-eyecatch .article-title {
        letter-spacing: .02em;
    }
    .main-eyecatch .article-title .small {
        letter-spacing: .05em;
    }
    .page-reform .main-eyecatch .article-title .small {
        letter-spacing: .02em;
    }
    .choon {
        transform: rotate(90deg) translate(-.07em, .07em);
    }
}
.page-new-construction, .page-reform, .page-concept {
    margin-bottom: 150px;
}
.page-new-construction .content > div, .page-reform .content > div {
    margin-top: 11em;
}
.page-new-construction h2, .page-reform h2, .feature h2 {
    position: relative;
    font-size: 2.5em;
    text-align: center;
}
.page-new-construction h2::before, .page-reform h2::before, .feature h2::before {
    content: '';
    display: block;
    width: 50px;
    height: 2px;
    position: absolute;
    top: -.7em;
    left: 50%;
    transform: translateX(-50%);
    background: var(--main-color);
}
.fit-p {
    width: fit-content;
}
.build-materials div {
    position: relative;
}
.build-materials div:last-child {
    margin-top: -8.5em;
}
.build-materials h3 {
    position: absolute;
    top: 0;
    left: 3rem;
    font-size: 4em;
    writing-mode: vertical-lr;
    letter-spacing: .05em;
    line-height: 1;
}
@supports not (-webkit-touch-callout: none) {
    .build-materials h3 {
        top: -1rem;
        letter-spacing: -.35em;
    }
}
@-moz-document url-prefix() {
    .build-materials h3 {
        top: 0;
        letter-spacing: .05em;
    }
}
.build-materials figure {
    position: relative;
    width: 75%;
    margin: 0 0 0 auto;
}
.build-materials figcaption {
    position: absolute;
    background: #fff;
    margin: 0;
    padding: .8em 1.5em;
    font-size: 1rem;
    bottom: -2.5em;
    left: -9em;
}
.build-materials div:last-child figcaption {
    bottom: -3.5em;
    left: unset;
    right: 0;
}
.works-reason, .reform-flow {
    position: relative;
    max-width: 1200px;
    background: var(--background-gray);
    padding: 50px 50px 50px 60px;
    align-items: center !important;
}
.reform-flow::before {
    position: absolute;
    top: -.15em;
    left: 0;
    display: block;
    font-size: 6em;
    color: #d9d9d9;
    font-family: "Shippori Mincho";
    font-weight: 500;
    line-height: 1;
}
.reform-flow:first-child::before {
    content: '01';
}
.reform-flow:nth-child(2)::before {
    content: '02';
}
.reform-flow:nth-child(3)::before {
    content: '03';
}
.reform-flow:nth-child(4)::before {
    content: '04';
}
.reform-flow:nth-child(5)::before {
    content: '05';
}
.reform-flow:nth-child(6)::before {
    content: '06';
}
.reform-flow:nth-child(7)::before {
    content: '07';
}
.reform-flow > div {
    z-index: 1;
}
.reform-flow figure {
    height: 100%;
}
.reform-flow figure img {
    height: 100%;
    object-fit: cover;
}
@media screen and (max-width: 1200px) {
    .main-eyecatch {
        width: calc(100vw - 260px);
        height: 600px;
    }
    .main-eyecatch .article-title {
        left: -173px;
        font-size: 5.5em;
    }
    .page-reform .main-eyecatch .article-title {
        font-size: 4.25em;
    }
    .main-eyecatch .article-title .small {
        top: -2.5rem;
        left: 6.75rem;
        font-size: 1.875rem;
    }
    .page-reform .main-eyecatch .article-title .small {
        top: 2.5rem;
        left: 7.5rem;
        font-size: 1.75rem;
    }
    .page-new-construction h2, .page-reform h2, .feature h2 {
        font-size: 2em;
    }
    .build-materials h3 {
        left: 1.5rem;
        font-size: 3em;
    }
    .build-materials figcaption {
        font-size: .875rem;
        bottom: -5em;
        left: -7em;
    }
    .reform-g-text {
        font-size: 1.2em !important;
    }
    .reform-flow {
        padding: 30px;
        gap: 30px !important;
    }
    .reform-flow::before {
        font-size: 5em;
    }
    .reform-flow h3 {
        font-size: 1.375em !important;
    }
}
@media screen and (max-width: 1000px) {
    .works-reason {
        flex-direction: column;
    }
    .works-reason figure {
        max-width: 480px;
        margin: 0 auto;
    }
}
@media screen and (max-width: 600px) {
    .main-eyecatch {
        width: calc(100vw - 100px);
        height: 250px;
    }
    .page-new-construction .main-eyecatch .article-title {
        height: 100%;
    }
    .main-eyecatch .article-title {
        left: -70px;
        font-size: 2.6em;
    }
    .main-eyecatch .article-title .small {
        top: 1rem;
        left: 2.7rem;
        font-size: 1rem;
    }
    .page-reform .main-eyecatch .article-title {
        font-size: 2.2em;
    }
    .page-reform .main-eyecatch .article-title span:nth-child(2) {
        top: .5rem;
        left: .4em;
    }
    .page-reform .main-eyecatch .article-title span:nth-child(3) {
        bottom: .5rem;
        left: -.6em;
    }
    .page-reform .main-eyecatch .article-title .small {
        top: .3rem;
        left: 2.9rem;
        font-size: 1rem;
    }
    .page-new-construction h2, .page-reform h2, .feature h2 {
        font-size: 1.675em;
    }
    .page-new-construction h2::before, .page-reform h2::before, .feature h2::before {
        width: 35px;
    }
    .page-new-construction .content > div, .page-reform .content > div {
        margin-top: 6em;
    }
    .page-new-construction, .page-reform, .page-concept {
        margin-bottom: 100px;
    }
    .works-reason, .reform-flow {
        padding: 30px;
    }
    .works-reason h3, .reform-flow h3 {
        font-size: 1.5em !important;
    }
    .width50 {
        width: 100%;
    }
    .build-materials div:last-child {
        margin-top: 0;
    }
    .build-materials figcaption, .build-materials div:last-child figcaption  {
        position: relative;
        width: 100%;
        bottom: unset;
        left: unset;
        padding: .8em 0;
    }
    .build-materials figcaption br {
        display: none;
    }
    :root :where(.is-layout-flex) {
        gap: 2rem;
    }
}
/* ----------------------------
PAGE：FEATURE
------------------------------*/
.feature .article-title {
    margin: 0;
    padding: 1.1em 1.8em;
    font-size: 3.5em;
    line-height: 1.5;
    background: rgba(255, 255, 255, .75);
}
.page-mudanboujutaku .article-title {
    width: 12em;
    padding-top: .8em;
}
.page-mudanboujutaku .article-title span, .page-concept .article-title span {
    display: block;
    font-size: 1.5rem;
    margin-bottom: .5em;
}
.page-tour .article-title {
    width: 11em;
}
.page-hojyokin .article-title {
    width: 9em;
}
.forces {
    position: relative;
}
.forces::after {
    content: '';
    display: block;
    width: 41px;
    height: 41px;
    background: url(../img/cross.svg);
    background-position: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.is-layout-flow:has(>.lower-head) {
    margin-top: 3em;
}
.lower-head {
    position: relative;
    padding: .8em;
}
.lower-head::after {
    content: '';
    display: block;
    position: absolute;
    inset: 0;
    margin-right: -3em;
    background: var(--background-gray);
    z-index: -1;
}
.subsidy h3 {
    position: relative;
    font-size: 2em;
    width: 80%;
    padding: .6em 1em .6em 1.8em;
    margin-left: 0 !important;
    border: 2px solid #fff;
    z-index: 1;
}
.subsidy h3::before {
    content: '';
    display: block;
    position: absolute;
    inset: 0;
    width: 26px;
    background: #fff;
}
.subsidy p {
    width: 87%;
    padding: 3em;
    margin-top: -3.3em;
    margin-right: 0 !important;
    background: #fff;
}
@media screen and (max-width: 1200px) {
    .subsidy h3 {
        font-size: 1.675em;
        width: 95%;
        margin-bottom: .5em;
    }
    .is-layout-flow:has(>.lower-head) {
        margin-top: 1em;
    }
}
@media screen and (max-width: 600px) {
    .feature .article-title {
        font-size: 2em;
        padding: .8em 1.2em;
    }
    .page-mudanboujutaku .article-title span, .page-concept .article-title span {
        font-size: 1rem;
    }
    .page-mudanboujutaku .article-title {
        width: 10.5em;
    }
    .forces::after {
        width: 33px;
        height: 33px;
    }
    .mob-text {
        font-size: 1.75em !important;
        padding: .3rem !important;
    }
    .lower-head::after {
        margin: 0;
    }
    .is-layout-flow:has(>.lower-head) {
        margin: 0;
    }
    .subsidy h3 {
        font-size: 1.425em;
        padding-left: 1.5em;
    }
    .subsidy h3::before {
        width: 18px;
    }
    .page-hojyokin .article-title {
        width: 8em;
    }
    .page-tour .article-title {
        width: 10em;
    }
}
/* ----------------------------
PAGE：SEKOU-TEJYUN
------------------------------*/
.section-w:has(.sekou-flow) {
    position: relative;
    max-width: 1000px;
    margin: 0 auto;
    padding-left: 100px;
}
.section-w:has(.sekou-flow)::before {
    content: '';
    width: 15px;
    height: calc(100% - 230px);
    background-color: var(--background-gray);
    display: block;
    position: absolute;
    top: 130px;
    left: 0;
}
.sekou-flow {
    position: relative;
}
.sekou-flow::before, .sekou-flow::after {
    content: '';
    display: block;
    position: absolute;
    top: 23px;
}
.sekou-flow::before {
    width: 7px;
    height: 7px;
    margin-top: -3px;
    background: var(--main-color);
    border-radius: 50%;
    left: -96px;
}
.sekou-flow::after {
    width: 65px;
    border-bottom: 1px dashed var(--main-color);
    left: -87px;
}
.sekou-flow h3 {
    display: flex;
    align-items: center;
    font-size: 1.75em;
}
.sekou-flow:first-child h3::before {
    content: '1';
}
.sekou-flow:nth-child(2) h3::before {
    content: '2';
}
.sekou-flow:nth-child(3) h3::before {
    content: '3';
}
.sekou-flow:nth-child(4) h3::before {
    content: '4';
}
.sekou-flow:nth-child(5) h3::before {
    content: '5';
}
.sekou-flow:nth-child(6) h3::before {
    content: '6';
}
.sekou-flow:nth-child(7) h3::before {
    content: '7';
}
.sekou-flow h3::before {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: .5em;
    padding-bottom: .15em;
    width: 1.5em;
    height: 1.5em;
    background-color: var(--main-color);
    color: #fff;
}
@media screen and (max-width: 600px) {
    .section-w:has(.sekou-flow) {
        padding-left: 50px;
    }
    .section-w:has(.sekou-flow)::before {
        top: 80px;
        height: calc(100% - 140px);
    }
    .sekou-flow::before {
        left: -46px;
    }
    .sekou-flow::after {
        width: 30px;
        left: -42px;
    }
    .sekou-flow h3 {
        font-size: 1.375em;
    }
}

/* ----------------------------
PAGE：COMPANY
------------------------------*/
.p-company-eyecatch {
    display: flex;
    flex-direction: row;
    align-items: center;
    width: 100vw;
    height: 390px;
    margin: 0 calc(50% - 50vw);
}
.p-company-eyecatch h1.article-title {
    width: 500px;
    font-size: 3.5em;
    padding: 0 .5em;
    text-align: center;
}
.p-company-eyecatch div {
    flex: 1;
    height: 100%;
    background-position: center;
    background-size: cover;
}
.page-template-page-company .content{
    max-width: 1060px;
    margin: 150px auto;
}
.page-template-page-company .content h2 {
    font-size: 1.75rem;
}
.map-container {
    width: 100vw;
    height: 500px;
    margin: 100px calc(50% - 50vw);
    background: rgba(208, 132, 16, .4);
}
.company-map {
    width: 100%;
    height: 100%;
    filter: grayscale(1) opacity(.9);
}
.page-template-page-company .content.width800 {
    max-width: 800px;
}
.staff-block {
    font-size: .875em;
}
.staff-block .wp-block-image img {
    width: 100%;
    height: 280px;
    object-fit: cover;
}
.staff-dep {
    margin-top: 1em;
    font-size: 1.125rem;
    color: var(--main-color);
}
.staff-block h3 {
    font-size: 1.425rem;
    line-height: 1;
}
.staff-furigana {
    font-size: .875em;
}
.staff-block .wp-block-table td, .staff-block .wp-block-table th {
    border: none;
    padding: .2em 0 0;
}
.staff-block .wp-block-table th {
    width: 3em;
}
.p-company-eyecatch h1.title-width {
    padding: 0 1.5em;
}
.zeh-report {
    width: 100%;
    border-collapse: collapse;
}
.zeh-report th, .zeh-report td {
    border: 1px solid #aaa;
}
.zeh-report td {
    padding: 1.3em 2em;
}
.zeh-result {
    background: #d9d9d9;
}
.zeh-goal {
    background: #ededed;
}
.zeh-report .zeh-result, .zeh-report .zeh-goal {
    padding: .7em 2em;
}
@media screen and (max-width: 1200px) {
    .p-company-eyecatch {
        height: 340px;
    }
    .p-company-eyecatch h1.article-title {
        width: 350px;
        font-size: 2.5em;
    }
    .staff-grid {
        gap: 2.5em;
    }
}
@media screen and (max-width: 600px) {
    .page-template-page-company .content {
        margin: 100px auto;
    }
    .p-company-eyecatch {
        display: block;
        position: relative;
        height: 250px;
    }
    .p-company-eyecatch h1.article-title {
        position: absolute;
        font-size: 2em;
        line-height: 1.5;
        width: 220px;
        background: #fff;
        padding: .1em .8em .2em;
        margin: 0;
        left: 0;
        bottom: 20px;
    }
    .p-company-eyecatch div {
        width: 100%;
    }
    .page-template-page-company .content h2 {
        font-size: 1.5em;
    }
    .content .staff-grid {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }
    .staff-block {
        font-size: 1em;
        line-height: 1.5;
    }
    .staff-block img {
        height: 220px;
    }
    .staff-dep {
        font-size: 1em;
    }
    .mob-size {
        width: 240px;
        margin-right: auto;
        margin-left: auto;
    }
    .map-container {
        margin-top: 80px;
        margin-bottom: 80px;
    }
    .zeh-report .zeh-result, .zeh-report .zeh-goal {
        padding: .5em .1em;
    }
    .zeh-report td {
        padding: 1em .1em;
    }
}
/* ----------------------------
PAGE：CONTACT
------------------------------*/
.Form {
    margin-top: 80px;
}
.FormItem {
    margin-top: 30px;
}
.FormItem.disabled {
    pointer-events: none;
    opacity: .3;
}
.FormItemLabel {
    display: flex;
    align-items: center;
    gap: .8em;
    margin-bottom: 10px;
}
.FormItemRequired {
    display: flex;
    padding: 0 .5em;
    background: var(--main-color);
    color: #fff;
    font-size: .875em;
}
.wpcf7-list-item {
    margin: 0;
}
.wpcf7 input, .wpcf7 textarea, .wpcf7 select {
    width: 100%;
    padding: .75em 1.5em;
    background: #ededed;
    border: 2px solid #ededed;
    color: #000;
    transition: all .1s ease;
}
.wpcf7 select option {
    color: #000;
}
.wpcf7 input[type="date"] {
    -webkit-appearance: none;
    appearance: none;
    height: 58px;
}
.wpcf7 input[type="date"]::-webkit-date-and-time-value {
    text-align: left;
}
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus, .wpcf7-list-item input[type="checkbox"]:focus {
    outline: none;
    border: 2px solid rgba(208, 112, 16, .5);
    background: #fff;
}
.wpcf7 textarea {
    height: 200px;
    resize: none;
}
.wpcf7-radio#inquiry {
    display: flex;
    gap: 20px;
}
.wpcf7-radio#inquiry .wpcf7-list-item {
    flex: 1;
    margin: 0;
}
.wpcf7-list-item input[type="radio"] {
    display: none;
}
.wpcf7-radio#inquiry .wpcf7-list-item-label {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 80px;
    border: 1px solid #aaa;
    border-radius: 5px;
    font-family: "Shippori Mincho";
    font-weight: 500;
    font-size: 1.25em;
    cursor: pointer;
    transition: all .1s ease;
}
.wpcf7-radio#inquiry label:hover .wpcf7-list-item-label {
    border-width: 2px;
}
.wpcf7-radio#inquiry .wpcf7-list-item input[type="radio"]:checked + .wpcf7-list-item-label, .wpcf7-list-item input[type="checkbox"]:checked {
    background: rgba(208, 112, 16, .1);
    border: 2px solid rgba(208, 112, 16, .5);
}
.wpcf7-list-item input[type="checkbox"] {
    position: relative;
    width: 26px;
    height: 26px;
    margin-right: 1em;
    padding: 0;
    cursor: pointer;
    border: 1px solid #aaa;
    outline: none;
    background: #fff;
    appearance: none;
    transition: all .1s ease;
}
.wpcf7-list-item input[type="checkbox"]:checked::before {
    display: block;
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 20px;
    height: 15px;
    background: url(../img/checked.svg) no-repeat;
    background-size: contain;
    background-position: center;
}
input#zip {
    width: 11em;
}
input#tel {
    width: 17.5em;
}
select#e-date {
    width: 13em;
}
.FormItem p:has(#zip) {
    position: relative;
}
.FormItem p:has(#zip)::after {
    content: '※入力後、自動で住所が表示されます';
    position: absolute;
    top: 50%;
    left: 14em;
    transform: translateY(-50%);
    font-size: .875em;
}
input::placeholder {
    color: #aaa;
}
.confirm-area, .thanks-area {
    display: none;
}
.wpcf7-response-output {
    display: none;
}
#autozip {
    display: none !important;
}
.policy-check {
    display: flex;
    justify-content: center;
    margin-top: 50px;
}
.policy-check label {
    display: flex;
}
.privacy-policy-block {
    width: 100%;
    height: 250px;
    border: 1px solid #aaa;
    margin-top: 70px;
    padding: 2em 2em 0;
    overflow-y: scroll;
}
.FormButtonWrap p {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 400px;
    height: 80px;
    margin: 50px auto 0;
    font-size: 1.25em;
}
.FormSubmit p {
    justify-content: flex-start;
    width: 100%;
    gap: calc(390px - 320px);
}
.wpcf7 input.confirm-button, .wpcf7 input.wpcf7-submit {
    flex-grow: 1;
    height: 100%;
    background-color: var(--main-color);
    color: #fff;
    font-weight: 500;
    border: none;
    border-radius: 5px;
    transition: .5s;
}
.wpcf7 input.wpcf7-submit {
    flex-grow: unset;
    width: 400px;
}
.wpcf7 input.back-button {
    width: 120px;
    height: 50px;
    background: #fff;
    border: 1px solid #555;
    border-radius: 5px;
    font-size: 1rem;
}
.wpcf7-spinner {
    display: none;
}
.wpcf7 input.confirm-button:disabled, .wpcf7 input.confirm-button.is-disabled {
    background: #ededed;
    color: #aaa;
}
.confirm-area h2 {
    margin-top: 100px;
    text-align: center;
    font-size: 2.5em;
}
.confirm-text {
    margin: 20px 0 60px;
    text-align: center;
}
.ConfirmItem {
    display: grid;
    grid-template-columns: 12rem 1fr;
    border-bottom: 1px solid #ededed;
}
.ConfirmItem p {
    margin: 20px 0;
}
.ConfirmItem .FormItemLabel {
    font-weight: 700;
}
.cf-turnstile, .wpcf7-turnstile {
    display: none;
    position: absolute;
    left: -9999px;
}
.turnstile-error {
    margin-top: 20px;
}
.turnstile-error input {
    display: none;
}
@media (any-hover: hover) {
    input.confirm-button:not([disabled]):not(.is-disabled):hover, .wpcf7 input.wpcf7-submit:hover {
        filter: brightness(1.1);
    }
}
@media screen and (max-width: 600px) {
    .Form {
        margin-top: 50px;
    }
    .wpcf7-radio#inquiry .wpcf7-list-item-label {
        height: 70px;
    }
    .FormItem {
        margin-top: 25px;
    }
    .FormItemLabel {
        margin-bottom: 5px;
    }
    .FormButtonWrap p {
        width: auto;
        height: 70px;
        margin-top: 30px;
    }
    .confirm-area h2 {
        margin-top: 60px;
    }
    .confirm-text {
        margin: 10px 0 40px;
    }
    .ConfirmItem {
        grid-template-columns: 1fr;
        padding: 15px;
    }
    .ConfirmItem p {
        margin: 3px 0;
    }
    .FormSubmit p {
        gap: 20px;
    }
    .privacy-policy-block {
        margin-top: 50px;
    }
}
/* ----------------------------
PAGE：TEXT
------------------------------*/
.page-template-page-text .content, .error404 .content {
    width: fit-content;
    max-width: 800px;
    margin: 0 auto 150px;
}
.page-template-page-text .wp-block-list {
    margin: 1.5em 0;
    padding: 1em 2em;
    border: 1px solid #aaa;
}
@media screen and (max-width: 600px) {
    .page-template-page-text .content, .error404 .content {
        margin-bottom: 100px;
    }
}
/* ----------------------------
ARCHIVE
------------------------------*/
.archive #container {
    margin-bottom: 150px;
}
.cat-eyecatch {
    display: flex;
    align-items: center;
    width: 100vw;
    height: 420px;
    margin: 0 calc(50% - 50vw) 150px;
}
.cat-eyecatch .article-title {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 500px;
    height: 60%;
    margin: 0;
    background: var(--text-color);
    color: #fff;
    line-height: 1.2;
}
.event-backimage {
    background: url(../img/039tanaka.webp);
}
.works-backimage {
    background: url(../img/watanabetei.webp);
}
.event-backimage, .works-backimage {
    flex: 1;
    height: 100%;
    margin-left: -300px;
    background-size: cover;
    background-position: center;
    z-index: -1;
}
.cat-subtitle {
    font-size: 2rem;
}
.category-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 0;
    width: 894px;
    margin: 0 auto 100px;
    font-size: 1.25em;
}
.category-links a, .category-links .current-cat {
    padding: .7em 2em;
    text-decoration: none;
    border-right: 1px solid #d9d9d9;
    border-left: 1px solid #d9d9d9;
    background-color: rgba(51, 51, 51, 0);
    transition: background-color .2s ease;
}
.category-links *{
    margin-right: -1px;
}
.category-links .current-cat {
    background: var(--text-color);
    color: #fff;
}
.category .works-list {
    display: flex;
    flex-wrap: wrap;
    gap: 80px 30px;
}
.category .works-list li {
    position: relative;
    width: calc((100% - 90px) / 4);
}
.page-template-page-text .archive-notice, .archive .notice-posts {
    width: unset;
    max-width: 1060px;
}
.archive .notice-posts {
    margin: 0 auto;
}
.archive-notice .notice-posts {
    width: 100%;
}
.archive-notice .notice-posts, .archive-notice .entry-header, .archive .notice-posts, .archive .entry-header {
    border-color: #ededed;
}
.pagenation {
    display: flex;
    justify-content: center;
    margin-top: 100px;
    gap: 10px;
}
.pagenation a {
    text-decoration: none;
}
.page-numbers {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    padding-bottom: .1em;
    border-radius: 3px;
    line-height: 1;
    background-color: rgba(51, 51, 51, 0);
    transition: background-color .2s ease;
}
.page-numbers.current {
    background: var(--text-color);
    color: #fff;
}
.page-numbers.next, .page-numbers.prev {
    width: 72px;
}
.category-voice #container, .category-blog #container {
    margin-bottom: 0;
}
.category .vb-wrap {
    width: 100vw;
    margin: 0 calc(50% - 50vw);
    padding: 100px 0 150px;
    background: var(--background-gray);
}
.archive-select-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin: 0 auto 80px;
}
.archive-dropdown {
    position: relative;
    width: 400px;
    background: #fff;
}
.archive-dropdown::after {
    content: '▼';
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 44px;
    height: 100%;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    pointer-events: none;
}
.archive-dropdown select {
    width: 100%;
    padding: .5em 1em;
    cursor: pointer;
}
.category .vb-posts {
    max-width: 800px;
    margin: 0 auto;
}
.category .vb-posts li {
    margin: 0;
    border-bottom: 1px solid #d9d9d9;
}
.category .vb-posts a {
    padding: 30px;
}
.category-books h1.article-title {
    padding: 0 2.2em;
}
.books-backimage {
    flex: 1;
    height: 100%;
    background: url(../img/books.webp);
    background-position: center;
    background-size: cover;
}
.books-posts {
    display: flex;
    flex-wrap: wrap;
    margin-top: 150px;
    gap: 80px 40px;
}
.books-posts li {
    width: calc((100% - 120px) / 4);
}
.books-posts figure {
    width: 100%;
    height: 320px;
    overflow: hidden;
    margin-bottom: 1em;
}
.books-posts img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
@media (any-hover: hover) {
    a.page-numbers:hover, .category-links a:hover {
        background-color: rgba(51, 51, 51, .1);
    }
}
@media screen and (max-width: 1200px) {
    .category-links {
        font-size: 1.125em;
        width: 735px;
    }
    .category-links a, .category-links .current-cat {
        padding: .7em 1.5em;
    }
    .category .works-list {
        gap: 80px 20px;
    }
    .category .works-list li {
        width: calc((100% - 60px) / 4);
    }
    .works-list img {
        height: 250px;
    }
    .works-list .post-title {
        font-size: 1.125em;
    }
    .cat-eyecatch .article-title {
        width: 400px;
    }
    .cat-subtitle {
        font-size: 1.5rem;
    }
    .event-backimage, .works-backimage {
        margin-left: -250px;
    }
    .page-template-page-text .archive-notice, .archive .notice-posts {
        max-width: 800px;
    }
    .category .vb-posts {
        padding: 0 40px;
    }
    .books-posts li {
        width: calc((100% - 80px) / 3);
    }
}
@media screen and (max-width: 600px) {
    .archive #container {
        margin-bottom: 100px;
    }
    .cat-eyecatch {
        height: 250px;
        margin-bottom: 100px;
        align-items: baseline;
    }
    .cat-eyecatch .article-title {
        width: 70vw;
        height: 32%;
        padding: 0;
        line-height: 1;
    }
    .cat-subtitle {
        font-size: 1rem;
    }
    .event-backimage, .works-backimage {
        margin-left: -65vw;
    }
    .category-links {
        width: 100%;
        font-size: 1em;
        margin-bottom: 80px;
    }
    .category-links a, .category-links .current-cat {
        padding: .5em 1em;
    }
    .category .works-list {
        gap: 40px 10px;
    }
    .category .works-list li {
        width: calc(50% - 5px);
    }
    .works-list img {
        height: 220px;
    }
    .pagenation {
        margin-top: 60px;
    }
    .archive-select-wrap {
        margin-bottom: 40px;
    }
    .archive-select-wrap span {
        font-size: .875em;
    }
    .archive-dropdown {
        width: calc(100% - 130px);
    }
    .category .vb-posts {
        padding: 0 20px;
    }
    .category .vb-wrap {
        padding: 40px 0 60px;
    }
    .category .vb-posts a {
        padding: 20px 5px;
    }
    .vb-title {
        font-size: 1.25em;
    }
    .page-numbers {
        width: 36px;
        height: 36px;
    }
    .category-books h1.article-title {
        padding: .1em .8em .2em;
        width: 170px;
    }
    .books-posts {
        gap: 40px 20px;
        margin-top: 100px;
    }
    .books-posts li {
        width: calc(50% - 10px);
    }
    .books-posts figure {
        height: 210px;
    }
}
/* ----------------------------
シングルページ
------------------------------*/
.post-eyecatch {
    padding: 6em 0 9em;
}
.post-eyecatch.post-books, .post-eyecatch.post-voice, .post-eyecatch.post-works, .post-eyecatch.post-event {
    width: 100vw;
    margin: 0 calc(50% - 50vw);
    padding-bottom: 16em;
    background: var(--background-gray);
}
.works-cat-wrap {
    display: flex;
    align-items: center;
    gap: 20px;
    max-width: 1140px;
    margin: 0 auto 30px;
    padding: 0 40px;
}
.works-cat-wrap .post-label {
    width: 100px;
    height: 28px;
}
.post-cat-title {
    text-align: center;
    font-size: 1.5em;
    line-height: 1;
    margin-bottom: 1em;
}
.works-cat-wrap .post-cat-title {
    font-size: 2em;
    line-height: 1;
    margin: -.05em 0 0;
}
.works-cat {
    font-size: 1.125em;
    border-left: 1px solid var(--text-color);
    padding: 0 0 .1em 1em;
}
.post-works .post-location {
    display: block;
    width: fit-content;
    margin: 40px auto 0;
    font-size: 1.5em;
    font-weight: 700;
    color: var(--main-color);
}
.post-eyecatch .article-title {
    margin: 0 auto;
    line-height: 1.5;
}
.post-eyecatch.post-voice .article-title {
    font-size: 2.5em;
}
.post-eyecatch.post-works .article-title {
    max-width: 1140px;
}
.detail-table {
    width: 100%;
    max-width: 1060px;
    margin: 0 auto;
    padding: 2em;
    border-bottom: 1px solid #aaa;
}
.detail-table tbody {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px 50px;
}
.detail-table th, .detail-table td {
    padding: .5em 1em;
}
.detail-table th {
    border-right: 1px solid #aaa;
}
.thumb-books, .thumb-voice, .thumb-event {
    position: relative;
    height: 530px;
    margin: -12.5em auto 0;
}
.thumb-event {
    width: fit-content;
}
.thumb-books img, .thumb-voice img, .thumb-event img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.thumb-works {
    max-width: 1060px;
    max-height: 700px;
    margin: -12.5em auto 0;
    line-height: 1;
}
.thumb-works img {
    width: 100%;
    height: 100%;
    max-width: 1060px;
    max-height: 700px;
    object-fit: contain;
}
.owners-house-link {
    position: absolute;
    top: 0;
    right: -380px;
    width: 310px;
}
.owners-house-link figure {
    width: 100%;
    height: 310px;
    overflow: hidden;
}
.owners-house-link .btn-w {
    margin-top: 1em;
}
.text .owners-house-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
    transition: all .5s ease;
}
.text {
    position: relative;
    max-width: 900px;
    margin: 80px auto 0;
}
.text:has(.owners-house-link) {
    margin-left: 0;
}
.text p {
    margin-bottom: 2em;
}
.text *:not(.post-swiper) {
    max-width: 100%;
}
.text img {
    display: block;
    margin: 2em auto;
}
.pdfemb-viewer {
    width: 100%;
    max-width: 600px !important;
    margin: 2em auto !important;
}
.pdfemb-pagescontainer, .pdfemb-pagescontainer * {
    width: 100% !important;
    height: auto !important;
}
.post-link-wrap {
    position: relative;
    margin: 150px 0;
}
.post-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--background-gray);
    padding: 30px;
}
.post-link li {
    position: relative;
    width: calc(50% - 180px);
}
.next-post {
    margin-right: auto;
}
.prev-post {
    margin-left: auto;
}
.next-post::before {
    content: '＜ NEWER';
    left: 225px;
}
.prev-post::before {
    content: 'OLDER ＞';
    right: 225px;
}
.post-link li::before {
    position: absolute;
    top: -7px;
    font-family: "Shippori Mincho";
    font-weight: 500;
    color: var(--main-color);
    pointer-events: none;
}
.post-link a {
    display: flex;
    align-items: center;
    gap: 25px;
}
.prev-post a {
    flex-direction: row-reverse;
}
.post-link figure {
    overflow: hidden;
    width: 200px;
    height: 150px;
}
.post-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all .5s ease;
}
.post-link p {
    display: flex;
    flex: 1;
    font-size: 1.25em;
    line-height: 1.5;
    transition: all .2s ease;
}
.post-link .prev-post p {
    flex-direction: row-reverse;
}
.back-to-list {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 240px;
    margin: 0;
    background: #fff;
    transform: translate(-50%, -50%);
}
.back-to-list::after {
    display: none;
}
.back-to-list a {
    display: flex;
    height: 100%;
    width: 100%;
    justify-content: center;
    align-items: center;
    text-decoration: none;
}
figure.event-detail {
    margin: 4em 0;
}
.event-detail th {
    width: 10em;
}
.event-form {
    width: 100%;
    max-width: 780px;
    margin: 100px auto 0;
}
.event-form-title {
    display: block;
    width: fit-content;
    margin: 0 auto;
    font-size: 1.5em;
    font-weight: 700;
}
input[name="tour-date"] {
    width: 15em;
}
input[name="adult-number"], input[name="kids-number"] {
    width: 8em;
    margin: 0 .5em .5em;
}
.wp-block-image.aligncenter {
    margin: 0 auto;
}
@media (any-hover: hover) {
    .text .owners-house-link a:hover img, .post-link a:hover img {
        transform: scale(1.1);
    }
    .post-link a:hover p {
        opacity: .7;
    }
}
@media screen and (max-width: 1200px) {
    .works-cat-wrap .post-cat-title {
        font-size: 1.75em;
    }
    .works-cat {
        font-size: 1em;
    }
    .detail-table {
        padding: 2em 0;
        font-size: .875em;
    }
    .detail-table tbody {
        gap: 20px 10px;
    }
    .owners-house-link {
        position: relative;
        right: unset;
        width: 310px;
        margin: 50px auto 0;
    }
    .owners-house-link figure {
        height: 250px;
    }
    .post-link-wrap {
        margin: 100px 0;
    }
    .post-link {
        padding: 20px;
    }
    .post-link li {
        width: calc(50% - 110px);
    }
    .post-link a {
        gap: 15px;
    }
    .post-link figure {
        width: 120px;
        height: 100px;
    }
    .post-link p {
        font-size: 1em;
        line-height: 1.3;
    }
    .post-link li::before {
        font-size: .875em;
    }
    .next-post::before {
        left: 135px;
    }
    .prev-post::before {
        right: 135px;
    }
    .back-to-list {
        width: 150px;
        font-size: 1.125em;
    }
}
@media screen and (max-width: 1000px) {
    .thumb-books, .thumb-voice, .thumb-event {
        height: 360px;
    }
}
@media screen and (max-width: 600px) {
    .post-eyecatch {
        padding: 4em 0 0;
    }
    .works-cat-wrap {
        padding: 0 20px;
        margin-bottom: 20px;
        gap: 10px;
    }
    .works-cat-wrap .post-label {
        width: 80px;
        height: 22px;
    }
    .works-cat-wrap .post-cat-title {
        font-size: 1.375em;
    }
    .works-cat {
        padding-left: 10px;
    }
    .post-works .post-location {
        margin-top: 20px;
        font-size: 1.25em;
    }
    .post-eyecatch.post-books, .post-eyecatch.post-voice, .post-eyecatch.post-works, .post-eyecatch.post-event {
        padding-bottom: 14.5em;
    }
    .thumb-works {
        margin: -12.5em -12px 0;
    }
    .thumb-works img {
        max-height: 400px;
    }
    .detail-table {
        padding: 10px 12px;
        margin: 0 -12px;
        width: calc(100% + 24px);
    }
    .detail-table tbody {
        display: grid;
        grid-template-columns: 1fr 1fr;
        align-items: center;
        gap: 10px 5px;
    }
    .detail-table th, .detail-table td {
        padding: .5em;
    }
    .detail-table th {
        width: 5em;
        padding: .5em 0;
    }
    .text {
        margin-top: 60px;
    }
    .owners-house-link {
        width: 70vw;
        margin: 40px auto 0;
    }
    .owners-house-link figure {
        height: 200px;
    }
    .post-link {
        flex-direction: column;
        gap: 18px;
    }
    .post-link li {
        width: 100%;
    }
    .post-link li.next-post::before {
        top: unset;
        bottom: -19px;
        left: 0;
    }
    .post-link li.prev-post::before {
        top: -21px;
        right: 0;
    }
    .post-link figure {
        width: 100px;
        height: 85px;
    }
    .back-to-list {
        position: relative;
        top: unset;
        left: unset;
        transform: unset;
        width: 70vw;
        margin: 50px auto 0;
    }
    .post-cat-title {
        font-size: 1.25em;
    }
    .thumb-books, .thumb-voice, .thumb-event {
        height: 240px;
        margin: -12.5em -12px 0;
    }
    figure.event-detail {
        margin: 3em 0;
        font-size: 1em;
    }
    .event-detail th {
        width: 7em;
    }
    .post-eyecatch.post-voice .article-title {
        font-size: 2em;
    }
}
/*施工事例スライド*/
.text .post-swiper {
    width: 100vw;
    margin: 0 calc(50% - 50vw);
    padding: 120px 0
}
.post-swiper .swiper-wrapper {
    align-items: center;
}
.post-swiper .swiper-slide img {
    object-fit: contain !important;
    aspect-ratio: 5 / 4;
    transform: scale(1.0);
    transition: transform 1s ease;
}
.post-swiper .swiper-slide.swiper-slide-active img, .post-swiper .swiper-slide.swiper-slide-duplicate-active img {
    transform: scale(1.3);
}
.wp-block-gallery.has-nested-images.post-swiper figure.wp-block-image figcaption {
    background: unset;
    color: var(--text-color);
    text-shadow: none;
    position: absolute;
    bottom: -80px;
}
@media screen and (max-width: 1000px) {
    .text .post-swiper {
        padding: 80px 0 120px;
    }
    .post-swiper .swiper-slide.swiper-slide-active img, .post-swiper .swiper-slide.swiper-slide-duplicate-active img {
        transform: scale(1.4);
    }
    .text .swiper-button-prev, .text .swiper-button-next {
        top: calc(50% - 40px);
    }
    .text .swiper-button-prev {
        left: 10px;
    }
    .text .swiper-button-next {
        right: 10px;
    }
}
@media screen and (max-width: 600px) {
    .text .post-swiper {
        padding: 50px 0 100px;
    }
    .post-swiper .swiper-slide.swiper-slide-active img, .post-swiper .swiper-slide.swiper-slide-duplicate-active img {
        transform: scale(2.0);
    }
    .text .swiper-button-prev, .text .swiper-button-next {
        top: calc(50% - 35px);
    }
    .text .swiper-button-prev {
        left: 0;
    }
    .text .swiper-button-next {
        right: 0;
    }
}
/* ----------------------------
404
------------------------------*/
.error404 .article-title{
    position: relative;
    margin-top: 4em;
}
.error404 .article-title::before {
    content: '404 NOT FOUND';
    color: #ededed;
    font-size: 2rem;
    position: absolute;
    top: -2em;
    left: 50%;
    transform: translateX(-50%);
}
@media screen and (max-width: 600px) {
    .error404 .article-title::before {
        font-size: 1rem;
    }
}
/* ----------------------------
フッター
------------------------------*/
footer {
    position: relative;
    background-color: var(--background-gray);
    width: 100%;
    padding: 80px 0;
}
.floating-button {
    position: fixed;
    bottom: 40px;
    right: 50px;
    width: 100px;
    height: 100px;
    border-radius: 100vmax;
    background: #fff;
    box-shadow: 0 0 20px rgba(0, 0, 0, .2);
    z-index: 999;
    cursor: pointer;
    display: block;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .4s ease, transform .4s ease, bottom .3s ease;
}
.floating-button.show {
    opacity: 1;
    transform: translateY(0);
}
.floating-button.stop {
    position: absolute;
    top: -50px;
    bottom: unset;
}
.floating-button span {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    margin-top: 5px;
    text-align: center;
    line-height: 1.3;
    color: var(--text-color);
    position: relative;
}
.floating-button span::before {
    content: '';
    position: absolute;
    top: 15px;
    left: 50%;
    transform: translateX(-50%);
    width: 16px;
    height: 10px;
    background-image: url(../img/page-top.svg);
    animation: pagetop-anime 1.2s linear infinite;
}
@keyframes pagetop-anime {
    0% {
        opacity: 1;
        transform: translate(-50%, 0);
    }
    40% {
        opacity: 1;
        transform: translate(-50%, -50%);
    }
    60% {
        opacity: 0;
        transform: translate(-50%, -50%);
    }
    80% {
        opacity: 0;
        transform: translate(-50%, 0);
    }
}
.footer-container {
    max-width: calc(var(--max-width) + 80px);
    padding: 0 40px;
    margin: 0 auto;
}
#footbannar-widget-area {
    display: flex;
    gap: 20px;
    justify-content: center;
}
.footer-nav {
    display: flex;
    justify-content: space-between;
    margin-top: 80px;
}
.footer-company {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
}
.footer-company p {
    font-size: .9em;
}
.copyright a {
    margin-left: 2em;
}
#foot-widget-area {
    display: flex;
    gap: 30px;
    flex-direction: column;
}
#menu-footermenu {
    grid-template-columns: 6em 19em 11.5em;
    gap: 0 60px;
    margin-bottom: 0;
}
#menu-footermenu > li:nth-child(2) {
    grid-column: 2 / 3;
    grid-row: 1 / 10;
}
#menu-footermenu > li:nth-child(3) {
    grid-column: 3 / 4;
    grid-row: 1 / 7;
}
#menu-footermenu > li:last-child {
    grid-column: 3 / 4;
    grid-row: 7 / 8;
}
#menu-footermenu > li > a {
    font-weight: 700;
}
#menu-footermenu a {
    padding: .2em 0;
}
.copyright {
    color: #828282;
}
@media screen and (max-width: 1200px) {
    footer {padding: 60px 0;}
    .footer-company {
        font-size: .875em;
    }
    #foot-widget-area figure {
        width: 240px;
    }
    .floating-button {right: 40px;}
    #menu-footermenu {
        font-size: .875em;
        gap: 0 20px;
    }
}
@media screen and (max-width: 1000px) {
    #menu-footermenu {
        grid-template-columns: 19em 11.5em;
    }
    #menu-footermenu > li:nth-child(2) {
        grid-column: 1 / 2;
        grid-row: 3 / 12;
    }
    #menu-footermenu > li:nth-child(3) {
        grid-column: 2 / 3;
        grid-row: 4 / 10;
    }
    #menu-footermenu > li:nth-child(4) {
        grid-column: 1 / 2;
        grid-row: 2 / 3;
    }
    #menu-footermenu > li:last-child {
        grid-column: 2 / 3;
        grid-row: 10 / 11;
    }
}
@media screen and (max-width: 600px) {
    footer {
        padding: 50px 0;
    }
    .floating-button {
        width: 80px;
        height: 80px;
        right: 10px;
        bottom: 10px;
        font-size: .9em;
    }
    .floating-button span::before {
        top: 10px;
    }
    .floating-button.stop {
        top: -40px;
    }
    #footbannar-widget-area {
        flex-wrap: wrap;
        justify-content: start;
        max-width: 310px;
        margin: 0 auto;
        gap: 15px;
    }
    #footbannar-widget-area li {
        width: calc(50% - 10px);
    }
    .footer-nav {
        justify-content: center;
        margin-top: 50px;
    }
    .footer-company, #foot-widget-area {
        font-size: 1em;
        gap: 20px;
    }
    .wp-block-social-links {
        justify-content: center;
    }
    .menu-footermenu-container {
        display: none;
    }
}
.grecaptcha-badge { visibility: hidden; }