/* ===========================
Base
=========================== */
*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 400;
    color: #333;
    line-height: 1.7;
}

img {
    max-width: 100%;
    height: auto;
}

.block-1400,
.block-1024,
.block-768,
.block-450 {
    display: none;
}

.inner {
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
}

/* =================
セクション共通
================= */
.section-title {
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 10px;
}

.section-title::after {
    content: '';
    display: block;
    width: 40px;
    height: 8px;
    background: linear-gradient(to right, #E5312A, #EB6E56);
    margin: 10px auto 0;
}

.section-sub {
    text-align: center;
    font-size: 22px;
    font-weight: 700;
}

.section-desc {
    text-align: center;
    margin-top: 40px;
    line-height: 2;
}

.section-desc span {
    font-weight: 700;
}

/* ボタン */
.btn {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    position: relative;
    z-index: 0;
    width: 300px;
    height: 60px;
    margin: 0 auto;
}

.btn::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 2px;
    background-color: #fff;
}

.btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #E5312A, #EB6E56);
    transition: opacity 0.3s;
    z-index: -1;
}

.btn:hover::before {
    opacity: 0;
}

.btn:hover {
    background: #E5312A;
}

.btn-maker {
    width: 200px;
    height: 40px;
    margin: 0;
}

.btn-maker::after {
    width: 40px;
}

.btn-service {
    width: 200px;
    height: 40px;
    margin: 0;
}

.btn-service::after {
    content: none;
}


/* ===========================
ヘッダー
=========================== */
.site-header {
    width: 100%;
    background-color: #fff;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
    position: fixed;
    top: 0;
    z-index: 100;
}

.site-header__inner {
    margin: 0 auto;
    padding: 0 0 0 100px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 80px;
}

/* ロゴ */
.site-logo a {
    display: block;
}

.site-logo img {
    height: 50px;
    width: auto;
}

/* スクリーンリーダー専用テキスト */
.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

/* 右側まとめ */
.site-header__right {
    display: flex;
    align-items: center;
    height: 100%;
    gap: 50px;
}

/* ナビゲーション */
.global-nav ul {
    display: flex;
    gap: 40px;
}

.global-nav a {
    font-size: 18px;
    font-weight: 700;
    color: #333;
    position: relative;
}

.global-nav a::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(to right, #E5312A, #EB6E56);
    opacity: 0;
    transition: opacity 0.2s;
}

.global-nav a:hover::after {
    opacity: 1;
}

/* 会社案内ダウンロード */
.site-header__download a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
    padding: 0 5px;
    height: 80px;
    font-size: 18px;
    font-weight: 700;
    white-space: nowrap;
    position: relative;
    z-index: 0;
}

.site-header__download a::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #EB6E56, #E5312A);
    transition: opacity 0.3s;
    z-index: -1;
}

.site-header__download a::after {
    content: '';
    position: absolute;
    inset: 0;
    background: #E5312A;
    opacity: 0;
    transition: opacity 0.3s;
    z-index: -1;
}

.site-header__download a:hover::before {
    opacity: 0;
}

.site-header__download a:hover::after {
    opacity: 1;
}

.site-header__download img {
    width: 26px;
    height: auto;
    position: relative;
    z-index: 1;
    margin-bottom: 2px;
}

.site-header__download span {
    position: relative;
    z-index: 1;
}

/* ハンバーガー・スマホナビ（PC非表示） */
.hamburger {
    display: none;
}

.sp-nav {
    display: none;
}


/* ===========================
フッター
=========================== */

.site-footer {
    background-color: #fff;
    border-top: 20px solid transparent;
    border-image: linear-gradient(to right, #EB6E56, #E5312A) 1;
}

.site-footer__inner {
    padding: 45px 20px 60px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    text-align: center;
}

.site-footer__logo img {
    height: 62px;
    width: auto;
}

.site-footer__info {
    font-size: 20px;
    line-height: 1.6;
}

.site-footer__tel {
    margin-top: 16px;
    font-size: 20px;
    color: #333333;
    display: block;
}

.site-footer__tel span {
    font-size: 26px;
}

.site-footer__copy {
    background-color: #333333;
    text-align: center;
    padding: 10px 20px;
}

.site-footer__copy p {
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
}


/* ===========================
template-parts テンプレート
=========================== */
/* =================
技術サポート
================= */
.support {
    padding: 80px 0 0 0;
}

/* =================
対応エリア
================= */
.area {
    padding: 100px 0 80px;
    background-image: url(../img/bg-map.png);
    background-size: 28% auto;
    background-position: right 5% bottom 5px;
    background-repeat: no-repeat;
}

.area__box {
    border: 1px solid #EB6E56;
    background-color: rgba(255, 255, 255, 0.6);
    padding: 30px 70px;
    margin-top: 60px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    border-radius: 10px;
}

.area__item {
    display: flex;
    gap: 40px;
}

.area__item dt {
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 20px;
    font-weight: 700;
    padding-left: 30px;
    position: relative;
}

.area__item dt::before {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    width: 20px;
    height: 20px;
    background-image: url(../img/icon-triangle.svg);
    background-size: contain;
    background-repeat: no-repeat;
}

.area__item dd {
    font-size: 18px;
}

.area__item dd span {
    font-weight: 700;
}

.area__item-body {
    display: flex;
    flex-direction: column;
}

/* =================
お問い合わせCTA
================= */
.cta {
    padding: 100px 0;
}

.cta__wrapper {
    display: flex;
    gap: 16px;
    margin: 40px auto 0;
}

.cta__box {
    flex: 1;
    background-color: #D8D4D4;
}

.cta__tel,
.cta__mail {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 130px;
    width: 100%;
}

.cta__tel-main,
.cta__mail-main {
    display: flex;
    align-items: center;
    gap: 14px;
}

.cta__tel {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cta__tel:hover .cta__tel-num {
    color: #E5312A;
}

.cta__tel img {
    width: 28px;
    height: auto;
}

.cta__tel-num {
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    font-size: 40px;
    font-weight: 700;
    color: #333;
    line-height: 1;
}

.cta__tel-note {
    font-size: 16px;
    line-height: 1.5;
    text-align: center;
    color: #333;
}

.cta__mail {
    display: flex;
    align-items: center;
    gap: 5px;
}

.cta__mail:hover .cta__mail-text {
    color: #E5312A;
}

.cta__mail img {
    width: 45px;
    height: auto;
}

.cta__mail-text {
    font-size: 22px;
    font-weight: 700;
    color: #333;
    line-height: 1;
}

.cta__mail-note {
    font-size: 20px;
    text-align: center;
    color: #333;
}


/* ===========================
トップページ
=========================== */

/* =================
FV
================= */
.fv {
    margin-top: 80px;
}

.fv__top {
    display: flex;
    align-items: stretch;
}

.fv__text {
    flex-shrink: 0;
    width: fit-content;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 90px 80px 80px 200px;
    background-color: #fff;
    background-image: url(../img/fv-hex-bg.png);
    background-size: auto 100%;
    background-position: left center;
    background-repeat: no-repeat;
}

.fv__title {
    font-size: 34px;
    font-weight: 700;
    line-height: 1.6;
    margin-bottom: 20px;
}

.fv__title span {
    font-size: 44px;
}

.fv__title--red {
    color: #E5312A;
}

.fv__desc {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.6;
}

.fv__main-img {
    flex: 1;
    min-height: 0;
}

.fv__main-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left center;
    display: block;
}

.fv__band {
    background: linear-gradient(to right, #EB6E56, #E5312A);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    height: 82px;
}

.fv__band-left {
    height: 69px;
    width: auto;
}

.fv__band-right {
    height: 70px;
    width: auto;
}

.fv__sub {
    display: flex;
}

.fv__sub-img {
    flex: 1;
}

.fv__sub-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* =================
取扱メーカー
================= */
.makers {
    padding: 80px 0 0;
    overflow-x: hidden;
}

.makers__cards {
    margin: 70px auto 60px;
}

.makers__card {
    width: auto;
    position: relative;
}

.makers__card-deco {
    position: absolute;
    top: 0;
    left: 0;
    width: 42px;
    height: 42px;
    z-index: 10;
}

.makers__card--left .makers__card-deco {
    right: 0;
    left: auto;
    transform: scaleX(-1);
}

.makers__card+.makers__card {
    margin-top: 40px;
}

.makers__card--right {
    background: linear-gradient(to right, #EBE2CD, #fff);
    margin-right: calc(50% - 50vw);
    padding-right: calc(50vw - 50%);
}

.makers__card--left {
    background: linear-gradient(to left, #EBE2CD, #fff);
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 50%);
}

.makers__card-inner {
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    padding: 40px 0;
}

.makers__card-body {
    flex: 1;
    padding-right: 40px;
}

.makers__card-head {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 20px;
}

.makers__card-head img {
    height: 60px;
    width: auto;
}

.makers__card-head h3 {
    font-size: 30px;
    font-weight: 700;
}

.makers__card-body p {
    margin-bottom: 24px;
    max-width: 560px;
}

.makers__card-img {
    width: 380px;
    flex-shrink: 0;
}

.makers__card-img img {
    width: 100%;
    height: auto;
    display: block;
}

/* =================
製品一覧
================= */
.products {
    padding: 100px 0;
}

.products__list {
    display: flex;
    flex-direction: column;
    gap: 55px;
    margin: 70px auto 60px;
}

.products__category {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.products__category-title {
    font-size: 20px;
    font-weight: 700;
}

.products__items {
    display: flex;
    gap: 60px;
}

.products__item {
    flex: 1;
}

.products__item figure {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.products__item img {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
}

.products__item figcaption {
    font-size: 16px;
    text-align: center;
}

.products__category-row {
    display: flex;
    gap: 60px;
}

.products__category-row .products__category {
    flex: 1;
}

/* =================
事業内容
================= */
.business {
    padding: 100px 0 120px;
    background-color: #D8D4D4;
    background-image: url(../img/bg-business.png);
    background-size: 40% auto;
    background-position: right top 100px;
    background-repeat: no-repeat;
}

.business .section-desc {
    text-align: center;
    margin-bottom: 60px;
}

.business .section-desc span {
    font-weight: 700;
}

.business__venn {
    position: relative;
    width: 700px;
    height: 668px;
    margin: 40px auto 50px;
}

.business__circle--sales {
    background-color: rgba(235, 110, 86, 0.3);
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
}

.business__circle--manufacturing {
    background-color: rgba(136, 165, 190, 0.3);
    bottom: 0;
    left: 0;
    z-index: 2;
}

.business__circle--construction {
    background-color: rgba(102, 155, 122, 0.3);
    bottom: 0;
    right: 0;
    z-index: 1;
}

.business__circle {
    position: absolute;
    width: 380px;
    height: 380px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 15px 30px 30px;
    gap: 7px;
}

.business__circle img {
    width: 124px;
    height: auto;
}

.business__label {
    display: inline-block;
    color: #fff;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.2em;
    border-radius: 20px;
    width: 144px;
    height: 40px;
}

.business__circle--sales .business__label {
    background-color: #EB6E56;
}

.business__circle--manufacturing .business__label {
    background-color: #758EA3;
}

.business__circle--construction .business__label {
    background-color: #528465;
}

.business__circle p {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
}

/* ご注文から納品までの流れ */
.business__flow-wrapper {
    margin: 100px 0 0;
}

.business__flow {
    list-style: none;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 760px;
    margin: 40px auto 0;
}

.business__flow-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    padding: 20px 75px;
    position: relative;
}

.business__flow-item+.business__flow-item {
    margin-top: 35px;
}

.business__flow-item::after {
    content: '';
    position: absolute;
    bottom: -24px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 25px solid #fff;
    z-index: 1;
}

.business__flow-item:last-child::after {
    display: none;
}

.business__flow-left {
    display: flex;
    align-items: center;
    gap: 16px;
}

.business__flow-left img {
    width: 56px;
    height: auto;
}

.business__flow-num {
    display: flex;
    align-items: center;
    gap: 12px;
}

.business__flow-num-text {
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    font-size: 34px;
    font-weight: 700;
    color: #E5312A;
}

.business__flow-title {
    font-size: 20px;
    font-weight: 700;
    color: #E5312A;
    /* white-space: nowrap; */
}

.business__flow-desc {
    font-size: 18px;
    font-weight: 700;
}

/* =================
導入・納入実績
================= */
.works {
    padding: 100px 0 0 0;
}

.works .inner {
    padding: 0 0 100px 0;
}

.works__list {
    margin: 40px auto 56px;
}

.works__item {
    position: relative;
    height: 150px;
    background-size: cover;
    background-position: center;
    overflow: hidden;

    display: flex;
    align-items: center;
    justify-content: center;
}

.works__item+.works__item {
    margin-top: 40px;
}

.works__item::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.4);
}

.works__item--factory {
    background-image: url(../img/works-factory.jpg);
}

.works__item--school {
    background-image: url(../img/works-school.jpg);
}

.works__item--house {
    background-image: url(../img/works-house.jpg);
}

.works__item--office {
    background-image: url(../img/works-office.jpg);
}

.works__item span {
    color: #fff;
    font-size: 36px;
    font-weight: 700;
    z-index: 1;
}

.separator {
    width: 100%;
    height: auto;
}

/* =================
会社案内
================= */
.company {
    padding: 100px 0;
    background-color: #EBE2CD;
}

.company__catch {
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    color: #E5312A;
    margin: 40px 0;
}

.company__wrapper {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 70px;
}

.company__table {
    display: flex;
    flex-direction: column;
    width: 540px;
}

.company__table-row {
    display: flex;
    gap: 40px;
    padding: 20px 0;
    border-bottom: 1px solid #707070;
}

.company__table-row:first-child {
    border-top: 1px solid #707070;
}

.company__table dt {
    width: 100px;
    flex-shrink: 0;
    font-weight: 700;
    font-size: 20px;
}

.company__table dd {
    font-size: 20px;
}

.company__table dd a {
    color: #333333;
}

.company__table-row--partners dd a {
    border-bottom: 1px solid #333;
}

.company__right {
    width: 480px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ご挨拶 */
.company__greeting {
    display: flex;
    background-color: #fff;
    color: #333;
    position: relative;
    height: 180px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.company__greeting::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 42px;
    height: 42px;
    background-image: url('../img/icon-triangle.svg');
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 1;
    transform: rotate(90deg);
}

.company__greeting:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.company__greeting-text {
    padding: 10px 0 0 30px;
    flex: 1;
    border-bottom: 20px solid transparent;
    border-image: linear-gradient(to right, #EB6E56, #E5312A) 1;
}

.company__greeting-en {
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    font-size: 30px;
    font-weight: 700;
    color: rgba(235, 110, 86, 0.5);
    opacity: 0.5;
}

.company__greeting-title {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 8px;
}

.company__greeting-name {
    font-size: 20px;
    font-weight: 700;
}

.company__greeting-name span {
    font-size: 16px;
    font-weight: 400;
    margin-right: 10px;
}

.company__greeting img {
    width: auto;
    height: 100%;
}

/* 会社案内パンフレットダウンロード */
.company__pamphlet {
    display: flex;
    align-items: center;
    background-color: #fff;
    color: #333;
    height: 180px;
    padding: 0 20px 0 30px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.company__pamphlet:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.company__pamphlet-text {
    flex: 1;
}

.company__pamphlet-en {
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    font-size: 30px;
    font-weight: 700;
    color: rgba(235, 110, 86, 0.5);
    opacity: 0.5;
}

.company__pamphlet-title {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 10px;
}

.company__pamphlet-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    width: 190px;
    height: 34px;
    position: relative;
    z-index: 0;
}

.company__pamphlet-btn span {
    position: relative;
    z-index: 1;
}

.company__pamphlet-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #E5312A, #EB6E56);
    transition: opacity 0.3s;
    z-index: -1;
}

.company__pamphlet-btn:hover::before {
    opacity: 0;
}

.company__pamphlet-btn:hover {
    background: #E5312A;
}

.company__pamphlet-btn-icon {
    width: 18px;
    height: auto;
    position: relative;
    z-index: 1;
}

.company__pamphlet-img {
    width: 40%;
    height: auto;
}

.company__parent a {
    display: block;
    transition: transform 0.3s, box-shadow 0.3s;
}

.company__parent a:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.company__parent-label {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 5px;
}

.company__parent-label span {
    font-weight: 400;
}

.company__parent img {
    width: 100%;
    height: auto;
    display: block;
}


/* ===========================
下層ページ共通
=========================== */
.sub-fv {
    height: 390px;
    background-color: #D8D4D4;
    position: relative;
    margin-top: 80px;
}

.sub-fv__text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 16px;
    flex-shrink: 0;
    height: 100%;
}

.sub-fv__en {
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    font-size: 20px;
    padding-left: 20vw;
}

.sub-fv__title {
    font-size: 38px;
    font-weight: 700;
    color: #E5312A;
    padding-left: 20vw;
}

.sub-fv__divider {
    width: 100%;
    height: 4px;
    background: linear-gradient(to right, #E5312A, #EB6E56);
}

.breadcrumb {
    padding-left: 20vw;
}

.breadcrumb ol {
    list-style: none;
    display: flex;
    gap: 6px;
    font-size: 16px;
}

.breadcrumb li+li::before {
    content: '＞';
    margin-right: 6px;
}

.breadcrumb li a {
    color: #333;
}

.sub-fv__img {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
}

.sub-fv__img img {
    width: auto;
    height: 100%;
    object-fit: cover;
    object-position: left center;
    display: block;
}


/* ===========================
事業内容 business
=========================== */
/* =================
サービス
================= */
.business-service {
    padding: 100px 0 140px;
}

.business-service__list {
    display: flex;
    flex-direction: column;
    gap: 90px;
    margin-top: 60px;
}

.business-service__item {
    position: relative;
}

.business-service__item .inner {
    display: flex;
    align-items: center;
    gap: 76px;
}

.business-service__item--sales::before {
    content: 'Sales';
    position: absolute;
    right: 0;
    top: -120px;
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    font-size: 168px;
    font-weight: 700;
    color: rgba(235, 110, 86, 0.2);
    z-index: 0;
    pointer-events: none;
}

.business-service__item--manufacturing::before {
    content: 'Manufacturing';
    position: absolute;
    right: 0;
    top: -120px;
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    font-size: 168px;
    font-weight: 700;
    color: rgba(117, 142, 163, 0.2);
    z-index: 0;
    pointer-events: none;
}

.business-service__item--construction::before {
    content: 'Construction';
    position: absolute;
    right: 0;
    top: -120px;
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    font-size: 168px;
    font-weight: 700;
    color: rgba(82, 132, 101, 0.2);
    z-index: 0;
    pointer-events: none;
}

.business-service__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
    position: relative;
    z-index: 1;
}

.business-service__label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.2em;
    border-radius: 20px;
    width: 144px;
    height: 40px;
    color: #fff;
}

.business-service__label--sales {
    background-color: #EB6E56;
}

.business-service__label--manufacturing {
    background-color: #758EA3;
}

.business-service__label--construction {
    background-color: #528465;
}

.business-service__title {
    font-size: 28px;
    font-weight: 700;
}

.business-service__img {
    width: 450px;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.business-service__img img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 20px;
}

/* =================
ご注文から納品までの流れ
================= */
.business-flow {
    padding: 80px 0;
    background-color: #EBE2CD;
}

.business-flow__list {
    list-style: none;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 760px;
    margin: 36px auto 0;
}

.business-flow__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    padding: 20px 75px;
    position: relative;
}

.business-flow__item+.business-flow__item {
    margin-top: 35px;
}

.business-flow__item::after {
    content: '';
    position: absolute;
    bottom: -24px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 25px solid #fff;
    z-index: 1;
}

.business-flow__item:last-child::after {
    display: none;
}

.business-flow__left {
    display: flex;
    align-items: center;
    gap: 16px;
}

.business-flow__left img {
    width: 56px;
    height: auto;
}

.business-flow__num {
    display: flex;
    align-items: center;
    gap: 12px;
}

.business-flow__num-text {
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    font-size: 34px;
    font-weight: 700;
    color: #E5312A;
}

.business-flow__title {
    font-size: 20px;
    font-weight: 700;
    color: #E5312A;
    white-space: nowrap;
}

.business-flow__desc {
    font-size: 18px;
    font-weight: 700;
}


/* ===========================
サービスページ共通
=========================== */
.service-intro {
    padding: 100px 0 80px;
    text-align: center;
}

.service-intro__title {
    font-size: 30px;
    font-weight: 700;
    margin-bottom: 30px;
}

.sales-page .service-intro__title {
    color: #EB6E56;
}

.manufacturing-page .service-intro__title {
    color: #758EA3;
}

.construction-page .service-intro__title {
    color: #528465;
}

.service-intro__desc {
    line-height: 2;
}

/* =================
特徴
================= */
.feature {
    padding: 60px 0 80px;
    background-color: #EBE2CD;
    position: relative;
}

.feature::after {
    content: 'Sales';
    position: absolute;
    right: 20px;
    bottom: 0;
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    font-size: 168px;
    font-weight: 700;
    color: rgba(235, 110, 86, 0.2);
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);
    line-height: 1;
    pointer-events: none;
    z-index: 0;
}

.feature .section-title {
    letter-spacing: 0.2em;
}

.feature__list {
    display: flex;
    flex-direction: column;
    gap: 50px;
    margin-top: 40px;
}

.feature__item {
    background-color: #fff;
    padding: 24px 36px 30px;
    display: flex;
    align-items: center;
    gap: 60px;
}

.feature__content {
    display: flex;
    align-items: flex-start;
    gap: 40px;
    flex: 1;
}

.feature__num {
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    font-size: 60px;
    font-weight: 700;
    color: #EB6E56;
    flex-shrink: 0;
    line-height: 1;
    margin-top: 20px;
}

.feature__body {
    flex: 1;
}

.feature__title {
    font-size: 22px;
    font-weight: 700;
    color: #EB6E56;
    margin-bottom: 10px;
}

.feature__body p span {
    font-weight: 700;
}

.feature__img {
    width: 240px;
    flex-shrink: 0;
}

.feature__img img {
    width: 100%;
    height: auto;
    display: block;
}


/* ===========================
製造 manufacturing
=========================== */
.manufacturing-feature .feature__num {
    color: #88A5BE;
}

.manufacturing-feature .feature__title {
    color: #88A5BE;
}

.manufacturing-feature::after {
    content: 'Manufacturing';
    color: rgba(117, 142, 163, 0.2);
}


/* ===========================
工事 construction
=========================== */
.construction-feature .feature__num {
    color: #528465;
}

.construction-feature .feature__title {
    color: #528465;
}

.construction-feature::after {
    content: 'Construction';
    color: rgba(82, 132, 101, 0.2);
}


/* ===========================
製品一覧
=========================== */
.products-list {
    padding: 100px 0 70px;
}

.products-list__box {
    background-color: #E6E6E6;
    padding: 65px 60px 50px;
}

.products-list__box+.products-list__box {
    margin-top: 50px;
}

.products-list__title {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 20px;
}

.products-list__items {
    display: flex;
    gap: 60px;
    padding: 0 46px;
}

.products-list__item {
    flex: 1;
    max-width: calc(50% - 30px);
}

.products-list__item figure {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.products-list__item img {
    width: 100%;
    height: auto;
    display: block;
}

.products-list__item figcaption {
    font-size: 16px;
    text-align: center;
}


/* ===========================
取扱メーカー
=========================== */
/* =================
主要メーカー
================= */
.makers-list {
    padding: 100px 0 0;
}

.makers-list__wrapper {
    display: flex;
    flex-direction: column;
    margin-top: 40px;
    gap: 50px;
}

.makers-list__box {
    background-color: #E6E6E6;
    position: relative;
    padding: 0 60px 50px;
}

.makers-list__inner {
    display: flex;
    gap: 60px;
    align-items: center;
    padding-top: 70px;
}

.makers-list__logo {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 270px;
    height: auto;
}

.makers-list__body {
    flex: 1;
}

.makers-list__body p {
    line-height: 1.8;
}

.makers-list__img {
    width: 370px;
    flex-shrink: 0;
}

.makers-list__img img {
    width: 100%;
    height: auto;
    display: block;
}

.makers-list__box--fuji {
    padding: 42px 60px 46px;
}

.makers-list__box--fuji h3 {
    font-size: 30px;
    font-weight: 700;
    margin-bottom: 8px;
}

/* =================
その他取扱メーカー
================= */
.makers-other {
    padding: 100px 0 0;
}

.makers-other__group {
    margin-top: 50px;
}

.makers-other__heading {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.makers-other__heading::after {
    content: '';
    flex: 1;
    height: 1px;
    background-color: #E5312A;
}

.makers-other__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 16px;
}

.makers-other__list li a {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #E6E6E6;
    color: #333;
    padding: 20px 16px;
    font-size: 22px;
    font-weight: 700;
    text-align: center;
    line-height: 1.4;
    transition: background-color 0.2s;
    height: 90px;
}

.makers-other__list li a:hover {
    background-color: #d0d0d0;
}


/* ===========================
導入・納入実績
=========================== */
.achievements-list {
    padding: 100px 0 120px;
}

.achievements-list__wrapper {
    margin-top: 40px;
}

.achievements-list__item+.achievements-list__item {
    margin-top: 100px;
}

.achievements-list__img {
    position: relative;
    height: 200px;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 30px;
}

.achievements-list__img::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.45);
}

.achievements-list__img--factory {
    background-image: url(../img/achievements-factory.jpg);
}

.achievements-list__img--school {
    background-image: url(../img/achievements-school.jpg);
}

.achievements-list__img--house {
    background-image: url(../img/achievements-house.jpg);
}

.achievements-list__img--office {
    background-image: url(../img/achievements-office.jpg);
}

.achievements-list__img span {
    position: relative;
    z-index: 1;
    color: #fff;
    font-size: 36px;
    font-weight: 700;
}

.achievements-list__detail {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.achievements-list__row {
    display: flex;
    align-items: flex-start;
}

.achievements-list__row dt {
    display: flex;
    gap: 30px;
    flex-shrink: 0;
    width: 300px;
}

.achievements-list__row dd ul {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.achievements-list__row dd li {
    font-weight: 700;
    line-height: 1.6;
}

.achievements-list__tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    width: 90px;
    height: 25px;
    letter-spacing: 0.3em;
    line-height: 1;
}

.achievements-list__tag--construction {
    background-color: #528465;
}

.achievements-list__tag--manufacturing {
    background-color: #758EA3;
}

.achievements-list__tag--sales {
    background-color: #EB6E56;
}

/* =================
電気に関することなら何でも対応します！
================= */
.achievements-appeal {
    padding: 60px 0;
    background-color: #EBE2CD;
    text-align: center;
}

.achievements-appeal__title {
    font-size: 30px;
    font-weight: 700;
    color: #EB6E56;
    margin-bottom: 30px;
}

.achievements-appeal__desc {
    line-height: 2;
}


/* ===========================
会社案内 company
=========================== */
/* =================
代表挨拶
================= */
.company-greeting {
    padding: 100px 0 0;
}

.company-greeting__wrapper {
    display: flex;
    gap: 54px;
    align-items: flex-start;
    margin-top: 40px;
}

.company-greeting__body {
    flex: 1;
}

.company-greeting__catch {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.6;
    margin-bottom: 26px;
}

.company-greeting__body p {
    line-height: 2;
}

.company-greeting__president {
    width: 300px;
    flex-shrink: 0;
    text-align: right;
}

.company-greeting__president img {
    width: 100%;
    height: auto;
    margin-bottom: 12px;
}

.company-greeting__position {
    font-size: 20px;
}

.company-greeting__name {
    font-size: 26px;
    font-weight: 700;
}

/* =================
理念
================= */
.company-philosophy {
    padding: 50px 0 0;
}

.company-philosophy__catch {
    font-size: 28px;
    font-weight: 700;
    color: #E5312A;
    text-align: center;
    margin: 40px 0 20px;
}

.company-philosophy__box {
    border: 10px solid #FADCDA;
    padding: 30px 20px;
    max-width: 930px;
    margin: 0 auto;
}

.company-philosophy__box-title {
    font-size: 22px;
    font-weight: 700;
    text-align: center;
    margin-bottom: 30px;
    letter-spacing: 0.3em;
}

.company-philosophy__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: fit-content;
    margin: 0 auto;
}

.company-philosophy__list li {
    font-size: 18px;
    padding-left: 24px;
    position: relative;
}

.company-philosophy__list li::before {
    content: '●';
    position: absolute;
    left: 0;
    color: #EB6E56;
    font-size: 14px;
    top: 4px;
}

/* =================
雄喜の強み
================= */
.company-strength {
    padding: 120px 0 0;
}

.company-strength .section-desc {
    text-align: center;
    margin-top: 20px;
}

.company-strength .business__venn {
    margin: 40px auto 0;
}

/* =================
会社情報
================= */
.company-info {
    padding: 110px 0 0;
}

.company-info__table {
    display: flex;
    flex-direction: column;
    border-top: 1px solid #707070;
    max-width: 840px;
    width: 100%;
    margin: 40px auto 50px;
}

.company-info__row {
    display: flex;
    border-bottom: 1px solid #707070;
}

.company-info__row dt {
    width: 175px;
    flex-shrink: 0;
    font-weight: 700;
    background-color: #D8D4D4;
    padding: 20px 30px;
    font-size: 20px;
}

.company-info__row dd {
    padding: 20px 50px;
    font-size: 20px;
    line-height: 1.6;
}

.company-info__row dd a {
    color: #333;
    border-bottom: 1px solid #333;
}

/* パンフレットダウンロード */
.company-info__pamphlet {
    background-color: #EBE2CD;
    padding: 30px 28px 25px;
    display: flex;
    align-items: center;
    gap: 16px;
    max-width: 840px;
    width: 100%;
    margin: 0 auto;
}

.company-info__pamphlet-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.company-info__pamphlet-title {
    font-size: 26px;
    font-weight: 700;
}

.company-info__pamphlet-body p {
    font-size: 16px;
    line-height: 1.8;
}

.company-info__pamphlet-img {
    width: 160px;
    flex-shrink: 0;
}

.company-info__pamphlet-img img {
    width: 100%;
    height: auto;
    display: block;
}

/* =================
アクセス
================= */
.company-access {
    padding: 110px 0 0;
}

.company-access__map {
    margin: 40px auto 24px;
}

.company-access__map iframe {
    display: block;
    width: 100%;
    height: 320px;
}

.company-access__photos {
    display: flex;
    gap: 16px;
}

.company-access__photos li {
    flex: 1;
}

.company-access__photos li img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


/* ===========================
お問い合わせ contact
=========================== */
/* =================
お電話でお問い合わせ
================= */
.contact-tel {
    padding: 100px 0 0;
    text-align: center;
}

.contact-tel__desc {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 60px;
}

.contact-tel__box {
    background-color: #EBE2CD;
    padding: 30px 0 46px;
    max-width: 914px;
    margin: 30px auto 0;
}

.contact-tel__number {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 44px;
    font-weight: 700;
    font-family: 'Oswald', 'Noto Sans JP', sans-serif;
    color: #333;
}

.contact-tel__number img{
    width: 34px;
    height: auto;
}

.contact-tel__hours {
    font-size: 18px;
}

/* =================
お問い合わせフォーム
================= */
.contact-section {
    padding: 100px 0 200px;
}

.contact-form {
    max-width: 930px;
    margin: 40px auto 0;
}

.contact-form__row {
    display: flex;
    align-items: flex-start;
    gap: 40px;
    margin-bottom: 30px;
}

.contact-form__label {
    width: 234px;
    flex-shrink: 0;
    font-size: 20px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 20px;
}

.contact-form__required {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #EB6E56;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    width: 54px;
    height: 20px;
    flex-shrink: 0;
}

.contact-form__field {
    flex: 1;
}

.contact-form__field input[type="text"],
.contact-form__field input[type="tel"],
.contact-form__field input[type="email"] {
    width: 100%;
    height: 56px;
    border: 1px solid #707070;
    padding: 5px 16px;
    font-size: 18px;
    font-family: 'Noto Sans JP', sans-serif;
}

.contact-form__field textarea {
    width: 100%;
    height: 220px;
    border: 1px solid #707070;
    padding: 16px;
    font-size: 18px;
    font-family: 'Noto Sans JP', sans-serif;
    resize: vertical;
}

/* ラジオボタン */
.contact-form__field .wpcf7-radio {
    display: flex;
    gap: 40px;
}

.contact-form__field .wpcf7-radio .wpcf7-list-item {
    margin: 0;
}

.contact-form__field .wpcf7-radio .wpcf7-list-item label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 20px;
    cursor: pointer;
}

/* プライバシーポリシー */
.contact-form__privacy {
    text-align: center;
    margin: 30px 0;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact-form__privacy a {
    color: #333;
    font-weight: 700;
    border-bottom: 1px solid #333;
}

.wpcf7-list-item {
    margin: 0;
}

/* チェックボックスのカスタマイズ */
.contact-form__privacy input[type="checkbox"] {
    width: 24px;
    height: 24px;
    border-radius: 0;
    cursor: pointer;
    flex-shrink: 0;
    vertical-align: middle;
    margin-right: 10px;
}

/* turnstile */
.cf7-cf-turnstile {
    display: flex;
    justify-content: center;
    margin-bottom: 20px !important;
}

/* 送信ボタン */
.contact-form__submit {
    text-align: center;
}

.contact-form__submit input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 260px;
    height: 60px;
    background: linear-gradient(to right, #E5312A, #EB6E56);
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.3em;
    border: none;
    cursor: pointer;
    font-family: 'Noto Sans JP', sans-serif;
    transition: background 0.3s;
}

.contact-form__submit input[type="submit"]:hover {
    background: #E5312A;
}

.btn-contact-submit {
    width: 300px;
    height: 60px;
    margin: 0 auto;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-contact-submit span {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    z-index: 2;
}

.btn-contact-submit::after {
    z-index: 2;
}

.btn-contact-submit:hover {
    background: #E5312A;
}

.btn-contact-submit input[type="submit"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    border: none;
    cursor: pointer;
    z-index: 1;
    opacity: 0;
    font-size: 0;
}

/* デフォルトメッセージ非表示 */
.wpcf7-form.sent .wpcf7-response-output {
    display: none;
}


/* ===========================
サンクスページ
=========================== */
.thanks-section {
    padding: 100px 0 200px;
    text-align: center;
}

.thanks-page .sub-fv {
    height: 30px;
    background-color: transparent;
    padding-top: 20px;
}

.thanks-page .breadcrumb {
    padding-left: 0;
}

.thanks-section__title {
    font-size: 28px;
    font-weight: 700;
    color: #E5312A;
    margin-bottom: 40px;
}

.thanks-section__text {
    margin-bottom: 70px;
    line-height: 2;
}


/* ===========================
404ページ
=========================== */
.notfound-section {
    padding: 100px 0 70px;
    text-align: center;
}

.notfound-page .sub-fv {
    height: 30px;
    background-color: transparent;
    padding-top: 20px;
}

.notfound-page .breadcrumb {
    padding-left: 0;
}

.notfound-section__title {
    font-size: 28px;
    font-weight: 700;
    color: #E5312A;
    margin-bottom: 40px;
}

.notfound-section__text {
    margin-bottom: 70px;
    line-height: 2;
}


/* ===========================
プライバシーポリシー
=========================== */
.privacy-section {
    padding: 100px 0 60px;
}

.privacy-block+.privacy-block {
    margin-top: 46px;
}

.privacy-block__title {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 30px;
}

.privacy-block p {
    font-size: 16px;
    line-height: 1.8;
}

.privacy-block p a {
    color: #333;
}

.privacy-block__list {
    font-size: 16px;
    margin-top: 10px;
    padding-left: 1.5em;
}

.privacy-block__list li {
    list-style: disc;
}

.privacy-block__list li+li {
    margin-top: 6px;
}