@charset "utf-8";

/* ========================================
   Page Variables
======================================== */
:root {
    --cm-green: #51B450;
    --cm-orange: #FFB452;
    --btn-color: #FFB452;
    --btn-radius: 9999px;
    --table-th: #EAF8E9;
    --table-td: #F8F8F8;
    --font-color: #333;
}

/* ========================================
   Page Layout
======================================== */
.kv__image img {
    display: block;
    max-width: 100%;
    width: 100%;
    height: auto;
}

.l-head {
    text-align: center;
    margin-bottom: 80px;
}
.l-head h1 {
    font-size: 3.4rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
}
.l-head small {
    display: block;
    font-weight: 500;
    padding-top: 16px;
    text-transform: uppercase;
    color: #51B450;
    line-height: 1;
    font-size: 1.6rem;
}

/* ========================================
   Sub Navigation (l-anchor)
======================================== */
.l-anchor { margin-bottom: 80px; }
.l-anchor ul {
    padding: 18px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    background-color: #EAF8E9;
    box-sizing: border-box;
}
.l-anchor a {
    font-size: 1.6rem;
    font-weight: 700;
    text-decoration: none;
    color: #999999;
    padding: 4px 80px;
    line-height: normal;
}
.l-anchor ul li.current_page_item a,
.l-anchor ul li a:hover { opacity: 1; color: #333; }

@media screen and (min-width: 829px) {
    .l-anchor ul li + li { border-left: 1px solid #E2E2E2; }
}

/* ========================================
   News / 記事
======================================== */
.l-news_time {
    display: block;
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 16px;
}
.l-news_head {
    font-size: 2rem;
    line-height: 1.75;
    font-weight: 700;
    margin-bottom: 24px;
}
.l-news_head a {
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    text-decoration: none;
}
.l-news_inner {
    font-size: 1.6rem;
    line-height: 1.75;
}

.l-news_btn {
    display: flex;
    margin-top: 96px;
    gap: 16px;
    flex-wrap: wrap;
}
.l-news_btn.--center { justify-content: center; }
.l-news_btn a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 240px;
    height: 60px;
    font-size: 1.6rem;
    font-weight: 700;
    text-decoration: none;
    border-radius: var(--btn-radius);
    color: #fff;
    background-color: var(--btn-color);
}

/* アーカイブページ */
.category .l-news {
    padding-bottom: 56px;
    border-bottom: 1px dotted #333333;
    margin-bottom: 56px;
    box-sizing: border-box;
}
.category .l-news:last-child { padding-bottom: 0; margin-bottom: 0; }
.category .l-news_btn { display: none; }
.category .l-news:last-of-type { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }

/* 単記事 */
.single .l-news { max-width: 900px; margin: 0 auto; }
.single .l-news_pic { display: none; }
.single .l-news_inner p a { color: var(--cm-green); text-decoration: underline; }
.single .l-news_inner img { max-width: 100%; height: auto; margin: 16px auto; }

@media screen and (min-width: 829px) {
    .l-news_column { display: flex; gap: 72px; }
    .l-news_pic { width: 40%; }
    .l-news_text { flex: 1; }
}

/* ========================================
   About Us ページ
======================================== */
.p-business_banner { margin-bottom: 80px; }
.p-business_banner .wp-block-columns {
    align-items: stretch;
    background: #fff;
    border: 1px solid #E2E2E2;
}
.p-business_banner .img__box { overflow: hidden; }
.p-business_banner .img__box img { width: 100%; height: 100%; object-fit: cover; }
.p-business_banner .txt__box { display: flex; flex-direction: column; justify-content: center; }
.p-business_banner h2 { line-height: 1.75; }

/* 施工実績 */
.about-us .zoom_wrap { gap: 24px; }

/* ========================================
   Recruit ページ
======================================== */
.recruit table th { width: 220px; }
.recruit .environment__list { display: flex; flex-wrap: wrap; gap: 24px 48px; }
.recruit .environment__item { display: flex; align-items: center; gap: 16px; }
.recruit .environment__item img { max-width: 80px; }

/* ========================================
   Company ページ
======================================== */
.l-message { padding-bottom: 80px; }
.l-message .wp-block-columns figure { max-width: 300px; margin: 0 auto; }

/* outline 会社概要 */
.company-outline table th { min-width: 200px; }

/* access アクセス */
.l-access iframe { width: 100%; margin-bottom: 40px; }
.l-access .map-wrap {
    position: relative;
    padding-bottom: 45%;
    height: 0;
    overflow: hidden;
}
.l-access .map-wrap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin-bottom: 0;
}

/* ========================================
   Contact / Entry フォーム
======================================== */
.mw_wp_form table th span.any { display: none; }
.mw_wp_form table td input.var02 { width: 8em; }

.contact-form table,
.mw_wp_form table {
    width: 100%;
    border-collapse: collapse;
}
.contact-form table th,
.mw_wp_form table th {
    background-color: var(--table-th);
    padding: 24px 32px;
    font-size: 1.6rem;
    font-weight: 700;
    width: 240px;
    vertical-align: top;
    border-bottom: 4px solid #fff;
}
.contact-form table td,
.mw_wp_form table td {
    background-color: var(--table-td);
    padding: 24px 32px;
    font-size: 1.6rem;
    vertical-align: top;
    border-bottom: 4px solid #fff;
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.mw_wp_form input[type="text"],
.mw_wp_form input[type="email"],
.mw_wp_form input[type="tel"],
.mw_wp_form textarea {
    width: 100%;
    padding: 10px 16px;
    font-size: 1.6rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    font-family: inherit;
}
.mw_wp_form textarea { min-height: 160px; }

.mw_wp_form .check-agree { text-align: left; line-height: 2; }
.mw_wp_form .agree-wrap { text-align: center; line-height: normal; }

/* Contact Form 7 スタイル */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
    width: 100%;
    padding: 10px 16px;
    font-size: 1.6rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    font-family: inherit;
    margin-bottom: 8px;
}
.wpcf7 textarea { min-height: 160px; }
.wpcf7-submit {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 240px;
    height: 60px;
    font-size: 1.6rem;
    font-weight: 700;
    border: none;
    border-radius: var(--btn-radius);
    color: #fff;
    background-color: var(--btn-color);
    cursor: pointer;
    transition: opacity 0.3s;
}
.wpcf7-submit:hover { opacity: 0.7; }

/* ========================================
   Privacy Policy
======================================== */
.privacy-policy__content h2 {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 16px;
    margin-top: 48px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--cm-green);
}
.privacy-policy__content p { margin-bottom: 24px; }

/* ========================================
   Responsive
======================================== */
@media screen and (max-width: 828px) {
    .l-anchor { margin-bottom: 52px; }
    .l-anchor ul { flex-direction: column; padding: 0 16px; }
    .l-anchor ul li { width: 100%; text-align: center; padding: 0; box-sizing: border-box; }
    .l-anchor ul li a { padding: 16px 0; display: block; width: 100%; box-sizing: border-box; }
    .l-anchor ul li + li { border-left: none; border-top: 1px solid #E2E2E2; }

    .l-head { margin-bottom: 52px; }

    .p-business_banner { max-width: 500px; margin: 0 auto; }
    .p-business_banner h2 { font-size: 2.4rem !important; }
    .p-business_banner .wp-block-columns { gap: 12px; }
    .p-business_banner .txt__box { padding: 32px 32px 0; box-sizing: border-box; }

    .l-access .wp-block-columns { gap: 48px; }
    .l-access iframe { margin-bottom: 30px; }
    .l-access .map-wrap { padding-bottom: 75%; }

    .mw_wp_form table th, .mw_wp_form table td { border: none; }
    .mw_wp_form .check-agree { text-align: left; line-height: 2; }
    .mw_wp_form .agree-wrap { text-align: center; line-height: normal; }
    .mw_wp_form table th, .mw_wp_form table td { padding: 20px; }
    .contact .mw_wp_form table td, .entry .mw_wp_form table td { padding: 14px 20px 13px; }
    .mw_wp_form table table td { padding: 2px; line-height: 2; }
    .mw_wp_form table td input[type=text],
    .mw_wp_form table td input[type=email],
    .mw_wp_form table td input[type=tel] { width: 100%; }
    .mw_wp_form table td input.var02 { width: 5em; }
    .mw_wp_form .agree-wrap { margin: 40px 0 80px; }
}

@media screen and (max-width: 450px) {
    .l-head h1 { font-size: 2.8rem; }
    a[rel*=lightbox] { pointer-events: none; }
    .p-business_banner { max-width: 335px; }
}
