@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400,600&family=Noto+Serif+JP:wght@600,700&display=swap');

        /* 基本スタイル */
        .industrial,.residential {
            font-family: 'Noto Sans JP', 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
            margin: 0;
            padding: 0;
            color: #333;
            line-height: 1.7;
        }

        section {
            padding: 48px 0;
        }

        .container {
            width: 90%;
            max-width: 1100px;
            margin: 0 auto;
            padding: 0 15px; /* 左右のパディング */
        }

        .industrial h2,.residential h2,.industrial h3,.residential h3 {
            font-family: "Noto Serif JP", serif;
            letter-spacing: .1em;
            color: #333;
            font-weight: 700;
        }
        
        p {
            font-weight: 400;
        }

        .serif {
            font-family: "Noto Serif JP", serif;
        }

        br.pc {
            display: none; /* PCの改行を隠して */
        }

        br.sp {
            display: block; /* SPを改行する */
        }

        .grid3 {
            display: grid;
            gap: 40px;
            grid-template-columns: repeat(1, 1fr);
        }

        /* 見出し共通スタイル */
        .section-title {
            font-family: "Noto Serif JP", serif;
            letter-spacing: .1em;
            font-size: clamp(2rem, 1.641rem + 1.53vw, 2.375rem);
            font-weight: 600; /* semibold */
            text-align: center;
            margin-bottom: 40px; /* mb-10 */
            color: #000;
        }

        /* 画像の角丸 */
        img.rounded-image {
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        }

        /* ボタン共通スタイル */
        .link_btn {
            background-color: #2583C8; /* 青色の背景 */
            color: white; /* 白色のテキスト */
            font-family: "Noto serif JP",serif;
            height: 80px;
            width: 90%;
            max-width: 450px;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* 薄い影 */
            font-size: clamp(1.375rem, 1.243rem + 0.56vw, 1.75rem); /* フォントサイズ16px */
            text-align: center; /* テキスト中央揃え */
            display: flex; /* テキストとアイコンを横並びにするため */
            align-items: center; /* テキストとアイコンを垂直方向に中央揃え */
            text-decoration: none; /* リンクの下線を削除 */
            cursor: pointer; /* カーソルをポインターに */
            transition: background-color 0.3s ease; /* ホバー時の背景色変化をアニメーション */
            border: none; /* ボタンのデフォルトの枠線を削除 */
            margin: 80px auto;
        }
        .link_btn:hover {
            background-color: #1c6397; /* ホバー時に少し濃い青色に */
        }
        .link_btn span {
            margin: 0 auto;
            letter-spacing: .1em;
        }
        .link_btn .arrow {
            /* 矢印のスタイル */
            border: solid white; /* 白色の線 */
            border-width: 0 2px 2px 0; /* 右と下に2pxの線 */
            display: inline-block;
            padding: 5px; /* 矢印のサイズ */
            transform: rotate(-45deg); /* 45度回転して右向きの矢印に */
            -webkit-transform: rotate(-45deg); /* Safari/Chrome用 */
            margin-right: 15px;
        }

        /* flex */
        .flex-c {
            display: flex;
            flex-direction: column;
            align-items: center;
        }
        .flex-r {
            display: flex;
            flex-direction: row;
            align-items: center;
        }

/* ===========================================================
　　　産業用太陽光
=========================================================== */
        /* --- Hero Section --- */
        .hero-section {
            background-image: url(../images/hero-image.jpeg);
            background-size: cover;
            background-position: center;
            color: white;
            text-align: center;
            padding: 80px 20px; /* py-20 md:py-32 */
            position: relative;
            height: 300px;
            margin-top: 60px;
        }
        .hero-section .overlay {
            position: absolute;
            inset: 0;
            background-color: #fff;
            opacity: 0.46;
        }
        .hero-section .hero-content {
            position: relative;
            z-index: 1;
            text-align: left;
        }
        .hero-section h1 {
            font-size: clamp(1.75rem, 0.557rem + 5.09vw, 3rem);
            font-weight: 700; /* bold */
            margin-bottom: 1rem; /* mb-4 */
            color: #000;
            letter-spacing: .1em;
            text-shadow: 0 0 20px #fff;
        }
        .hero-section p {
            font-size: 1.125em; /* text-lg */
            color: #000;
        }

        /* --- Introduction Section --- */
        .intro-section {
            background-color: white;
            padding: 0;
        }
        .intro-section h2 {
            font-size: clamp(1.125rem, 0.408rem + 3.06vw, 1.875rem);
            max-width: 1440px;
            margin: 0 auto 45px;
        }
        .intro-grid {
            display: grid;
            gap: 0;
            align-items: start;
             margin: 0 auto 40px;
             max-width: 1440px;
             width: 90%;
        }
        .intro-grid .text-content {
            text-align: center;
            box-shadow: -6px 6px 10px 6px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
            background: #fff;
            padding: 30px;
        }
        .intro-grid .text-content h3 {
            font-size: clamp(1.5rem, 1.022rem + 2.04vw, 2rem);
            font-weight: 600;
            margin-bottom: 2rem;
            text-align: center;
            color: #124062;
        }
        .intro-grid .text-content p {
            color: #333;
            text-align: left;
            font-size: 1rem;
        }
        .intro-grid .image-content img {
            width: 100%;
            height: auto;
        }
        .image-content.order-first-md {
            order: 2;
        }

        /* --- service Section --- */
        .service-section,.onayami-section,.onayami-section,.staff-section {
            background: #F5F5F5;
        }
        .service-section p {
            text-align: center;
            color: #DF482E;
            margin-bottom: 0;
            letter-spacing: .1em;
        }
        .service-section span {
            font-size: 1.5em; /* text-xl */
        }
        
        .service-grid {
            display: grid;
            gap: 24px; /* gap-6 */
            text-align: left;
        }
        .service-item {
            background-color: white;
            display: flex;
            align-items: flex-start;
        }
        .service-text.flex-c {
            padding-bottom: 30px;
        }
        .service-item .service-text div {
            padding: 30px;
        }
        .service-section h2 {
            margin-top: 0;
        }
        .service-section h2:nth-of-type(2) {
            margin-top: 60px;
        }
        .service-item .service-text h3 {
            font-size: clamp(1.5rem, 1.141rem + 1.53vw, 1.875rem);
            font-weight: 600; /* semibold */
            margin-top:0;
            margin-bottom: 0.25rem; /* mb-1 */
            color: #124062;
        }
        .service-item .service-text div p {
            font-size: 1em; /* text-sm */
            text-align: left;
            margin-bottom:0;
            color: #333;
        }
        .service-item .service-text img {
            width: 228px;
            height: 228px;
        }
        
        /* --- Option Section --- */
        .option-grid,.onayami-grid {
            display: grid;
            grid-template-columns: repeat(1, 1fr);
            gap: 40px;
        }
        .option-item,.onayami-item,.voice-item,.staff-item {
            background-color: #fff;
            text-align: center;
            padding: 30px;
        }
        .option-text h3,.onayami-text h3 {
            font-size: 1.5em;
            color: #124062;
            margin-bottom: 0;
        }
        .option-text p,.onayami-text p {
            color: #333;
            font-size: 1rem;
        }
        .option-text p:nth-of-type(2) {
            text-align: left;
            margin-top: 1.5em;
        }
        .option-text p.serif {
            margin-top: 0;
            font-size: 1.25em;
            letter-spacing: .1em;
            font-weight: 600;
        }
        .option-text p.serif span {
            font-size: .8em;
        }

        /* --- Works Section --- */
        .works-section, .instagram-section {
            background-color: #fff;
            margin-top: 0;
        }
        .works-grid {
            display: grid;
            gap: 24px; /* gap-6 */
        }
        .works-grid a {
            aspect-ratio: 1 / 1;
        }
        .work-item {
            position: relative;
            background-color: white;
            box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05); /* shadow-lg */
            overflow: hidden;
            text-align: center;
            width: 100%;
            height: 100%;
        }

        .works-grid a > .work-item:hover img {
            filter: none;
        }

        .work-item img {
            position: absolute;
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
            filter: brightness(0.5);
            object-fit: cover;
            transition: filter 0.3s ease;
        }
        .work-item h3 {
            padding: 1rem;
            color: #fff;
            margin: 0;
            position: absolute;
            bottom: 0;
            left: 0;
            font-size: 1.4em;
            z-index: 2;
        }
        .works-section .view-more-button-container {
            text-align: center;
            margin-top: 40px; /* mt-10 */
        }

        /* --- Contact Footer --- */
        .contact-footer {
            background: url(../images/footer-bg.png) no-repeat;
            background-size: cover;
            color: #d1d5db;
            padding: 100px 0; /* py-12 md:py-16 */
            text-align: center;
            margin-bottom: 50px;
        }
        .contact-footer h3 {
            font-size: clamp(1.188rem, 0.291rem + 3.83vw, 2.125rem);
            font-weight: 600; /* semibold */
            color: white;
            margin-top:0;
            margin-bottom: 1.5rem; /* mb-6 */
        }
        .contact-footer .contact-info {
            margin-bottom: 2rem; /* mb-8 */
        }
        .contact-footer .contact-info p {
            font-size: 1.125em; /* text-lg */
            margin-top:0;
        }
        .contact-footer .contact-info .tel {
            font-size: 2.25em; /* text-3xl */
            font-weight: 700; /* bold */
            color: #38bdf8; /* sky-400 */
            margin-top: 0.5rem; /* my-2 */
            margin-bottom: 0.5rem;
        }
        .contact-footer .contact-buttons {
            display: flex;
            flex-direction: column;
            gap: 1rem; /* space-y-4 */
            align-items: center;
        }
        .contact-footer .contact-buttons .button {
             padding: 12px 24px; /* py-3 px-6 */
        }
        .contact-footer .contact-buttons .button svg {
            width: 1.25rem; /* w-5 */
            height: 1.25rem; /* h-5 */
            display: inline-block;
            margin-right: 0.5rem; /* mr-2 */
            vertical-align: text-bottom;
        }
        .contact-grid {
            display: grid;
            align-items: center;
            justify-content: center;
            align-content: center;
            justify-items: center;
            grid-template-columns: repeat(1, 1fr);
            margin-top: 60px;
            gap: 15px;
        }
        .contact-grid img {
            max-width: 400px;
            width: 95%;
        }

        /* --- Copyright --- */
        .copyright-footer {
            background-color: #111827; /* gray-900 */
            color: #9ca3af; /* gray-500 */
            text-align: center;
            padding: 1rem 0; /* py-4 */
        }
        .copyright-footer p {
            font-size: 0.875em; /* text-sm */
            margin:0;
        }

/* ===========================================================
　　　住宅用太陽光
=========================================================== */
.residential .hero-section {
            background-image: url('../images/hero-image02.jpg');
            background-size: cover;
            background-position: center bottom 35%;
            color: white;
            text-align: center;
            padding: 80px 20px; /* py-20 md:py-32 */
            position: relative;
            height: 300px;
            z-index: inherit;
            margin-top: 60px;
        }
.residential .hero-section .overlay {
            position: absolute;
            inset: 0;
            background-color: #fff;
            opacity: 0.2;
        }

.residential .intro-section .container > h2 {
    margin: 0;
    padding: 0;
}
/* reasons-section */
.reasons-section {
    background: #fff;
    margin-top: 0;
}

/* onayami-section */
.onayami-section {
    position: relative;
}
.onayami-section::after {
    content: "";
    background: url(../images/polygon.png) no-repeat;
    display: block;
    background-size: contain;
    width: 100%;
    height: 150px;
    position: absolute;
    bottom: -149px;
    left: 0;
}
.onayami-section .container > p {
    text-align: center;
    margin: 0;
    font-weight: 600;
    font-family: "Noto serif JP",serif;
    color: #124062;
    font-size: clamp(1.25rem, 1.162rem + 0.38vw, 1.5rem);
}
.onayami-section h2 {
    margin-top: 0;
    font-size: clamp(1.438rem, 1.063rem + 1.6vw, 2.5rem);
}

.onayami-text img {
    width: 80px;
    height: 80px;
}
.onayami-text h3 {
    font-size: 1.5em;
    color: #124062;
    margin-top: .5em;
    margin-bottom: 0;
}

/* solve-section */
.solve-section {
    background: #fff;
    padding: 10px 0 0;
}
.solve-section img {
    width: 95%;
    max-width: 1060px;
    margin: 0;
    padding: 0;
    position: relative;
    top: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 0;
}

/* voice-section */
.voice-section {
    background: url(../images/voice-bg.png) no-repeat;
    background-size: cover;
    position: relative;
    z-index: 1;
    margin-top: 0;
}
.voice-section h2 {
    color: #fff;
}
.voice-text {
    text-align: left;
    padding-bottom: 1em;
    border-bottom: 1px solid #D9D9D9;
}
.voice-text p {
    font-size: 1rem;
}

.voice-profile img {
    width: 60px;
    height: 60px;
}
.voice-profile {
    gap: 20px;
    margin-top: 1em;
    justify-content: center;
}
.voice-info p {
    text-align: left;
    line-height: 2;
    font-size: 1rem;
}

/* plan-section */
.plan-section {
    background: #3675A5;
    margin-top: 0;
}
.plan-section .container > div {
    background: #fff;
    padding: 30px 40px;
    border-radius: 10px;
}
.plan-section .container > div > .flex-r {
    justify-content: center;
    gap: 3%;
}
.plan-section .container > div img {
    width: clamp(5rem, 3.239rem + 7.51vw, 10rem);
    height: auto;
}
.plan-section .container > div h2 {
    color: #124062;
    text-align: center;
    word-break: auto-phrase;
    font-size: clamp(1.125rem, 0.641rem + 2.07vw, 2.5rem);
    margin-bottom: 0;
}
.plan-section .container > div:nth-child(2) img {
    width: 100%;
    height: auto;
}

img.plan_img01,img.plan_img02 {
    width: 100%!important;
    height: auto!important;
    margin: 0 auto;
    display: block;
}
.plan-message {
    line-height: 2;
}
.plan-message span {
    color: #DF482E;
    font-weight: 700;
}
.fukidashi-wrap {
    margin-top: 50px;
    gap: 15px;
}
.fukidashi {
  position: relative;
  display: inline-block;
  width: 100%;
  max-width: 650px;
  margin-right: 0;
  padding: 20px;
  border: 1px solid #666666;
  border-radius: 15px;
  background-color: #ffffff;
}
.fukidashi::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  border-style: solid;
  border-width: 20px 10px 0 10px;
  border-color: #666666 transparent transparent;
  translate: -50% 100%;
}

.fukidashi::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  border-style: solid;
  border-width: 17.8px 8.9px 0 8.9px;
  border-color: #ffffff transparent transparent;
  translate: -50% 100%;
}

.fukidashi p {
  text-align: left;
  font-size: clamp(1rem, 0.956rem + 0.19vw, 1.125rem);
  font-weight: 400;
  line-height: 2;
  color: #000000;
  word-break: break-all;
}
/* staff-section */
.staff-section {
    margin-top: 0;
}

.staff-text img {
    width: 100px;
    height: auto;
}
.staff-text p,.staff-name p {
    color: #333;
    font-size: 1rem;
}

.staff-name {
    padding: 0 0 1em;
    margin: 1em auto;
    border-bottom: 1px solid #D9D9D9;
}
.staff-name p:nth-of-type(2) {
    font-size: 1.25em;
    margin-top: 0;
    font-weight: 500;
}

/* solar.css に以下を追記 */
.page-id-238 .contact_area,.page-id-240 .contact_area {
  display: none !important;
}

/* レスポンシブ対応 (基本的なもの) */
        @media (min-width: 768px) { /* md breakpoint */
            section {
                padding: 90px 0;
            }
            .link_btn {
                height: 100px;
            }

            .section-title {
                font-size: 40px;
            }

            .hero-section,.residential .hero-section {
                height: 500px;
                margin-top: 100px;
             }
            .hero-section h1 {
                font-size: 3em; /* md:text-5xl */
            }
            .hero-section p {
                font-size: 1.25em; /* md:text-xl */
            }
            .intro-section h2 {
                font-size: 2.2em;
                padding-bottom: 90px;
            }
            .intro-grid {
                width: 100%;
            margin: 0 auto 160px;
            grid-template-columns: repeat(2, 1fr);
            gap: 32px;
            }

            .intro-grid .text-content h3 {
                font-size: clamp(1.375rem, 0.661rem + 1.49vw, 2rem);
            }

            .intro-grid .text-content {
                text-align: left;
                position: relative;
                padding: 50px 10% 50px;
                top: 100px;
                right: -100px;
                min-height: 350px;
                z-index: 2;
            }
            .intro-grid:nth-of-type(2) .text-content {
                top: 100px;
                left: -100px;
                z-index: 2;
            }

            .intro-grid .image-content.order-first-md { /* md:order-1 */
                order: -1;
            }
             .intro-grid .text-content.order-last-md { /* md:order-2 */
                order: 1;
            }
            
            .service-grid {
                grid-template-columns: repeat(1, 1fr);
            }
            .service-text.flex-c {
            flex-direction: row;
            padding-bottom: 0;
            justify-content: space-between;
            width: 100%;
        }
            .service-item .service-text div {
            padding: 30px 80px;
        }
            .service-item .service-text h3 {
            font-size: 30px;
                }
            .flow-item {
                flex-direction: row;
                text-align: left; /* テキストを左寄せに */
            }
            .flow-item .flow-number {
                margin-right: 24px; /* md:mr-6 */
                margin-bottom: 0;
                text-align:left;
            }
            .flow-item .flow-content {
                text-align:left;
            }
            .flow-item .flow-image-container {
                margin-top: 0;
                width: 33.3333%; /* md:w-1/3 */
            }
            .flow-item.reverse-layout-md .flow-image-container { /* md:order-1 */
                order: -1;
            }
             .flow-item.reverse-layout-md .flow-number { /* md:order-2 */
                order: 0; /* default order */
                 margin-left: 24px; /* md:ml-6 */
                 margin-right:0;
            }
            .flow-item.reverse-layout-md .flow-content { /* md:order-3 */
                order: 1;
            }
            .works-grid {
                grid-template-columns: repeat(3, 1fr);
            }
            .contact-footer {
                margin-bottom: 80px;
            }
            .contact-footer .contact-buttons {
                flex-direction: row;
                justify-content: center;
                gap: 1rem; /* sm:space-x-4 */
            }
            .contact-grid {
            grid-template-columns: repeat(2, 1fr);
        width: fit-content;
        margin: 60px auto 0;
        gap: 30px;
        }
        .contact-footer h3 {
            font-size: 1.875em;
        }

        /* 住宅用 */
        .solve-section {
    padding: 0;
        }
        .plan-section .container > div .flex-r:nth-of-type(1) {
            flex-direction: row;
        }
        .plan-section .container > div {
            padding: 30px 80px 80px;
        }
        .plan-message p {
            line-height: 3;
            font-size: 1rem;
            margin-top: 2em;
        }
    }

        @media (min-width: 1024px) { /* lg breakpoint */
            br.pc {
            display: block; /* PCの改行を隠して */
            }
            br.sp {
            display: none; /* SPを改行する */
            }

            .grid3 {
                grid-template-columns: repeat(3, 1fr);
            }

            .service-grid {
                grid-template-columns: repeat(1, 1fr);
            }
.plan-section .container > div > .flex-c {
    justify-content: center;
    gap: 30px;
    flex-direction: row;
}

.fukidashi::before {
  content: "";
  position: absolute;
  top: 50%;
  bottom: initial;
  right: 0;
  left: initial;
  border-style: solid;
  border-width: 10px 0 10px 20px;
  border-color: transparent transparent transparent #666666;
  translate: 100% -50%;
}

.fukidashi::after {
  content: "";
  position: absolute;
  top: 50%;
  bottom: initial;
  right: 0;
  left: initial;
  border-style: solid;
  border-width: 8.9px 0 8.9px 17.8px;
  border-color: transparent transparent transparent #ffffff;
  translate: 100% -50%;
}

            /* --- Option Section --- */
            .option-grid,.onayami-grid {
                grid-template-columns: repeat(2, 1fr);
            }
            
            .flow-item .flow-image-container {
                width: 25%; /* lg:w-1/4 */
            }
        }