@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

:root {
    --main-color: #F76303;
    --main-color-light: #FF6705;
    --main-color-pale: #F68C00;
    --text-color: #333333;
    --sub-text-color: #626262;
    --sub-color: #FFF4C5;
}

html,
body,
button,
input,
select,
textarea,
body>* {
    font-family: 'Noto Sans JP', "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
}

body {
    color: var(--text-color);
    font-size: 16px;
    line-height: 1.7;
    min-width: 1440px;
    /* ブラウザ既定のサブピクセル描画だとFigmaのグレースケール描画より文字が太く見えるため統一 */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* 英字フォント */
.f-en {
    font-family: 'Roboto', sans-serif;
}

/* FAQ「Q」用 Helvetica Bold（「Q」のみのサブセット） */
@font-face {
    font-family: 'HelveticaQ';
    src: url(fonts/helvetica_q_subset.woff2) format('woff2');
    font-weight: 700;
    font-display: swap;
}

/* FAQの「Q」マーク用（Helveticaサブセット） */
.f-q {
    font-family: 'HelveticaQ', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

/* 電話番号リンク（PCはクリック無効） */
.tel-link {
    pointer-events: none;
    color: inherit;
    text-decoration: none;
}

/* アンカーターゲット（固定ヘッダー高100px＋余白20px） */
#reason,
#service,
#case,
#faq,
#recruit,
#contact {
    scroll-margin-top: 120px;
}

.wrap {
    width: 1140px;
    margin: 0 auto;
}

.wrap.mid {
    width: 1240px;
}

.wrap.lr {
    width: 1340px;
}

/* PC固定ページ 共通設定 */
.common_page_main {
    background: #F5F5F5;
    padding-block: 140px;
    margin-block: 0 1em;
}

.common_page_main .title_box {
    text-align: center;
}

.common_page_main .title_box .title {
    font-size: 40px;
    letter-spacing: .08em;
    font-weight: 700;
    line-height: 1.5;
}

.common_page_wrap {
    padding: 100px 0;
}

.not_found .text {
    text-align: center;
}

.reserve_text {
    text-align: center;
    font-size: 30px;
}

/* パンくず */
.breadcrumb {
    font-size: 12px;
    color: #3E3E3E;
    letter-spacing: .08em;
}

.breadcrumb a {
    text-decoration: none;
    color: #3E3E3E;
}

/* PC固定ページ お問い合わせ */
.contact_form_disc {
    color: #3E3E3E;
    letter-spacing: .08em;
    font-weight: 400;
    text-align: center;
    margin-block: 0 3.8em;
}

.contact_form_disc .text {
    font-size: 16px;
    margin-block: 0 1em;
}

.contact_form_disc .caution {
    font-size: 14px;
}

.common_contact_form .form_box {
    margin-block: 0 50px;
}

.common_contact_form .form_box dl {
    display: grid;
    grid-template-columns: 26.5% 1fr;
    align-items: center;
    gap: 80px;
}

.common_contact_form .form_box dl.start {
    align-items: flex-start;
}

.common_contact_form .form_box dl+dl {
    margin-block: 1.6em 0;
}

.common_contact_form .form_box dl dt {
    display: flex;
    align-items: center;
    gap: 1.3em;
    font-size: 16px;
    letter-spacing: .08em;
    font-weight: 700;
    padding-inline: 0 0.5em;
    position: relative;
}

.common_contact_form .form_box dl dt .label {
    flex-shrink: 0;
    color: #3E3E3E;
    font-size: 12px;
    letter-spacing: .2em;
    font-weight: 700;
    border-radius: 100vmax;
    padding: 0.2em 0.9em;
}

.common_contact_form .form_box dl dt .label.hissu {
    background: #C70000;
    color: #fff;
}

.common_contact_form .form_box dl dt .label.ninni {
    background: #E0E0E0;
}

.common_contact_form .form_box dl dt::after {
    content: "";
    content: "";
    width: 1px;
    height: 30px;
    background: #AAA;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}

.common_contact_form input[type="text"],
.common_contact_form input[type="email"],
.common_contact_form #zip {
    width: 100%;
    background: #F8F8F8;
    border: 1px solid #E6E6E6;
    border-radius: 4px;
    font-size: 14px;
    letter-spacing: .08em;
    font-weight: 400;
    padding: 0.8em 1em;
}

.common_contact_form textarea {
    width: 100%;
    height: 180px;
    background: #F8F8F8;
    border: 1px solid #E6E6E6;
    border-radius: 4px;
    padding: 1em;
    font-size: 14px;
    letter-spacing: .08em;
    font-weight: 400;
}

.common_contact_form input::placeholder,
.common_contact_form textarea::placeholder {
    color: #C7C4C4;
}

.common_contact_form select {
    width: 47.5%;
    background: #F8F8F8;
    border: 1px solid #E6E6E6;
    border-radius: 4px;
    font-size: 14px;
    letter-spacing: .08em;
    padding: 1.1em 1em;
	-webkit-appearance: auto;
	-moz-appearance: auto;
	appearance: auto;
}

.page_contact #btn_wrap {
    justify-content: center;
    text-align: right;
    width: 74%;
    margin: auto;
}

.page_contact #btn_wrap button {
    background-color: var(--main-color);
    border: none;
    cursor: pointer;
    outline: none;
    padding: 0;
    appearance: none;
    color: #fff;
    display: block;
    width: 310px;
    line-height: 60px;
    font-size: 18px;
    font-weight: 900;
    transition: .3s;
    text-align: center;
    letter-spacing: .08em;
    margin: auto;
}

.page_contact #btn_wrap button[name="submitBack"] {
    background: #333;
    margin-top: 20px;
}

.page_contact #btn_wrap button:hover {
    opacity: .8;
}

.privacy_term_outer .privacy_term_inner {
    height: 138px;
    margin: auto;
    overflow: auto;
}

.privacy_term_outer .privacy_term_inner .privacy_index {
    font-size: 14px;
}

.privacy_term_outer .privacy_term_inner .main_text {
    font-size: 13px;
    margin-bottom: 25px;
}

.privacy_term_outer .privacy_term_inner dl dt {
    font-size: 13px;
    border-left: solid 3px #ccc;
    padding-left: 1em;
    margin-bottom: 5px;
}

.privacy_term_outer .privacy_term_inner dl dd {
    font-size: 13px;
}

.privacy_term_outer .privacy_term_inner dl+dl {
    margin-top: 30px;
}

.privacy_term_outer .privacy_term_inner::-webkit-scrollbar {
    width: 8px;
}

.privacy_term_outer .privacy_term_inner::-webkit-scrollbar-track {
    background: transparent;
}

.privacy_term_outer .privacy_term_inner::-webkit-scrollbar-thumb {
    background-color: #333;
    border-radius: 10px;
}

.privacy_term_outer {
    border-top: solid 1px #e3e3e3;
    padding: 30px 0;
    border-bottom: solid 1px #e3e3e3;
    width: 60%;
    margin: 0 auto 50px;
}

.privacy_check_list .mwform-checkbox-field-text {
    padding-right: 0;
}

.privacy_check_list .error {
    font-size: 12px;
}

.privacy_term_detail {
    text-align: center;
    font-size: 13px;
    margin: 20px 0;
    position: relative;
    font-weight: 600;
}

.privacy_term_detail::after {
    content: "";
    margin: 5px auto 0;
    border: solid #333;
    border-width: 2px 2px 0 0;
    width: 10px;
    aspect-ratio: 1 / 1;
    min-width: 0;
    rotate: 135deg;
    display: block;
}

.mw_wp_form_confirm .privacy_check_list,
.mw_wp_form_confirm .privacy_term_detail {
    display: none;
}

.mw_wp_form_honey {
    display: none !important;
}

/* ラジオボタン デザイン */
.radio_btns,
.checkboxes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em 1.5em;
    padding: .5em 0;
}

/* ラジオボタンを隠す */
.radio_btns input[type=radio].radio_btns__item {
    display: none;
}

.radio_btns label {
    display: inline-block;
    cursor: pointer;
}

/* spanの左側にボタンを配置するスペースを作る */
.radio_btns .radio_btns__item+span {
    color: #3E3E3E;
    font-size: 15px;
    letter-spacing: .08em;
    font-weight: 600;
    padding-left: 2em;
    display: inline-block;
    position: relative;
}

/* 各パーツを作成 */
.radio_btns .radio_btns__item+span::before,
.radio_btns .radio_btns__item+span::after {
    content: '';
    display: block;
    position: absolute;
    border: 1px solid #E6E6E6;
    background: #F8F8F8;
    border-radius: 50%;
    width: 20px;
    aspect-ratio: 1;
    min-width: 0;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
}

/* after上書き */
.radio_btns .radio_btns__item+span::after {
    width: 10px;
    aspect-ratio: 1;
    min-width: 0;
    top: 0px;
    left: 5px;
    border: none;
    background: #5A5A5A;
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    transform: scale(0);
    transition: all .3s;
}

/*
  checked状態
  文字のcolorとボタンのopacityを変更
*/
.radio_btns .radio_btns__item:checked+span::after {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
}

/* チェックボックス デザイン */
.page_contact input[type="checkbox"] {
    /* デフォルトcheckボックス非表示*/
    display: none;
}

.mwform-checkbox-field label {
    cursor: pointer;
}

.mwform-checkbox-field-text {
    color: #3E3E3E;
    font-size: 15px;
    letter-spacing: .08em;
    font-weight: 600;
    display: inline-block;
    position: relative;
    padding: 0 0 0 30px;
}

.mwform-checkbox-field-text::before,
.mwform-checkbox-field-text::after {
    content: "";
    position: absolute;
    display: block;
}

.mwform-checkbox-field-text::before {
    background: #F8F8F8;
    border: 1px solid #E6E6E6;
    border-radius: 2px;
    width: 20px;
    aspect-ratio: 1 / 1;
    min-width: 0;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.mwform-checkbox-field-text::after {
    border-width: 3px;
    border-color: transparent transparent #333 #333;
    border-style: solid;
    width: 20px;
    aspect-ratio: 2/1;
    min-width: 0;
    margin-top: -0.2em;
    top: 50%;
    left: 0;
    transform: translateY(-50%) rotate(-45deg);
    opacity: 0;
}

input[type="checkbox"]:checked+.mwform-checkbox-field-text::after {
    opacity: 1;
}

.mw_wp_form .horizontal-item {
    display: inline-block;
}

.mw_wp_form .horizontal-item+.horizontal-item {
    margin-left: 0 !important;
}

/* サンクスページ */

.page_contact .thanks_textArea .name {
    font-size: 16px;
    line-height: 2;
    text-align: center;
    margin-bottom: 20px;
}

.page_contact .thanks_textArea .contact_text {
    margin: 0 auto 50px;
    width: 62%;
}

.page_contact .thanks_textArea .ichiran_link {
    background-color: var(--main-color);
    border: none;
    cursor: pointer;
    outline: none;
    padding: 0;
    appearance: none;
    color: #fff;
    display: block;
    width: 300px;
    line-height: 50px;
    border-radius: 4px;
    font-size: 16px;
    transition: .3s;
    margin: 0 auto;
    text-decoration: none;
    font-weight: 600;
    letter-spacing: .08em;
    text-align: center;
}

.page_contact .thanks_textArea .ichiran_link:hover {
    opacity: .8;
}

.page_contact .thanks_textArea .contact_text .space {
    display: block;
}

.page_contact .thanks_textArea .contact_text .space {
    display: block;
    margin-top: 10px;
}

/* ステップバー デザイン */
.page_contact .progressbar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5.6em;
    margin-block: 0 3em;
}

.page_contact .progressbar .item {
    color: #3E3E3E;
    font-size: 14px;
    letter-spacing: .08em;
    font-weight: 400;
    text-align: center;
    line-height: 1.5;
    position: relative;
}

.page_contact .progressbar .item+.item::before {
    content: "";
    width: 50px;
    height: 1px;
    background: #E6E6E6;
    position: absolute;
    top: 64%;
    left: -5em;
}

.page_contact .progressbar .item .mark {
    width: 36px;
    aspect-ratio: 1;
    background: #fff;
    border: 1px solid #AFAFAF;
    border-radius: 50%;
    display: block;
    margin: 0 auto 0.5em;
    position: relative;
}

.page_contact .progressbar .item .mark::before {
    content: "";
    width: 41%;
    aspect-ratio: 1;
    background: #5A5A5A;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    opacity: 0;
}

.page_contact .progressbar .item.active .mark::before {
    opacity: 1;
}

.page_contact .progressbar .item .en {
    display: block;
    color: #A7A7A7;
    letter-spacing: 0;
    font-family: 'Helvetica', 'Arial', sans-serif;
}

.privacy_check_list {
    justify-content: center;
    align-items: center;
    margin-bottom: 25px;
}

.privacy_check_list .hissu {
    background: #c70200;
    color: #fff;
    padding: 2px 15px;
    font-size: 10px;
    letter-spacing: .08em;
    border-radius: 30px;
    font-weight: 600;
}

.mw_wp_form .privacy_check_list .horizontal-item {
    margin: 0;
}

/* PC固定ページ 404ページ */
#page_404 {
    text-align: center;
}

#page_404 .num {
    font-size: 100px;
    font-family: 'Montserrat', 'Noto Sans JP', sans-serif;
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

#page_404 .text {
    margin-bottom: 1em;
    font-size: 16px;
}

.p-authorBox .avatar {
	display: inline;
}

/* ============================================================
   サイトヘッダー（PC）
============================================================ */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    min-width: 1440px;
    height: 100px;
    background: #FFFFFF;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    z-index: 1000;
}

.site-header__inner {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0 50px;
}

.site-header__logo {
    line-height: 0;
}

.site-header__logo a {
    display: block;
    transition: .3s;
}

.site-header__logo img {
    width: 256px;
    height: auto;
}

.site-header__nav {
    margin-left: auto;
}

.site-header__menu {
    display: flex;
    align-items: center;
    gap: 32px;
}

.site-header__menu > li {
    position: relative;
}

.site-header__menu > li > a {
    display: block;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 1.2;
    color: var(--text-color);
    transition: .3s;
}

.site-header__menu-arrow {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-left: 6px;
    border-right: 2px solid var(--text-color);
    border-bottom: 2px solid var(--text-color);
    transform: rotate(45deg) translateY(-4px);
    transition: .3s;
}

/* サービス ドロップダウン */
.site-header__dropdown {
    position: absolute;
    top: calc(100% + 52px);
    left: 50%;
    transform: translateX(-50%);
    width: 320px;
    background: #FFFFFF;
    border-radius: 6px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    opacity: 0;
    visibility: hidden;
    transition: .3s;
}

.site-header__dropdown::before {
    /* ヘッダーとの隙間をホバー可能領域でつなぐ */
    content: '';
    position: absolute;
    top: -52px;
    left: 0;
    width: 100%;
    height: 52px;
}

.site-header__menu > li.-has-child:hover .site-header__dropdown {
    opacity: 1;
    visibility: visible;
}

.site-header__dropdown-list > li {
    border-bottom: 1px solid #D8D8D8;
}

.site-header__dropdown-list > li:last-child {
    border-bottom: none;
}

.site-header__dropdown-list > li > a {
    display: flex;
    align-items: center;
    padding: 20px 30px;
    transition: .3s;
}

/* ホバー背景がパネルの角丸を突き抜けないよう上下端の行にも角丸を付ける */
.site-header__dropdown-list > li:first-child > a {
    border-radius: 6px 6px 0 0;
}

.site-header__dropdown-list > li:last-child > a {
    border-radius: 0 0 6px 6px;
}

.site-header__dropdown-text {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 1.2;
    color: var(--text-color);
    transition: .3s;
}

.site-header__dropdown-arrow {
    display: block;
    width: 24px;
    height: 24px;
    margin-left: auto;
    background: url(image/common_circle_arrow_sp.svg) no-repeat center / contain;
}

/* ヘッダーCTAボタン */
.site-header__cta {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 220px;
    height: 60px;
    margin-left: 40px;
    background: var(--main-color-light);
    border-radius: 10px;
    transition: .3s;
}

.site-header__cta-icon {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: auto;
}

.site-header__cta-text {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .09em;
    color: #FFFFFF;
    padding-left: 14px;
}

.site-header__cta-arrow {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 17px;
    height: auto;
}

/* ============================================================
   MV
============================================================ */
.top-mv {
    position: relative;
    height: 720px;
    overflow: hidden;
}

.top-mv__bg,
.top-mv__bg-slide,
.top-mv__bg-slide picture {
    position: absolute;
    inset: 0;
}

.top-mv__bg-slide {
    opacity: 0;
    transition: opacity 1.5s ease;
}

.top-mv__bg-slide.is-current {
    opacity: 1;
}

.top-mv__bg-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.top-mv__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(37, 33, 30, 0.66) 24%, rgba(37, 33, 30, 0) 64%);
    mix-blend-mode: multiply;
    pointer-events: none;
}

.top-mv__cont {
    position: absolute;
    top: 166px;
    left: 50px;
    z-index: 2;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1s ease, transform 1s ease;
}

body.is-mv-shown .top-mv__cont {
    opacity: 1;
    transform: translateY(0);
}

.top-mv__badges {
    display: flex;
    gap: 19px;
    margin-left: 36px;
}

.top-mv__badge {
    position: relative;
    min-width: 164px;
    padding: 34px 30px 0;
    text-align: center;
}

.top-mv__badge-crown {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 30px;
    height: auto;
}

.top-mv__badge-laurel {
    position: absolute;
    top: 35px;
    width: 27px;
    height: auto;
}

.top-mv__badge-laurel.-left {
    left: 0;
}

.top-mv__badge-laurel.-right {
    right: 0;
    /* ラフは左右対の鏡像（右側は反転） */
    transform: scaleX(-1);
}

.top-mv__badge-text {
    font-size: 16px;
    font-weight: 700;
    line-height: 29px;
    letter-spacing: .09em;
    color: var(--sub-color);
}

.top-mv__badge-text .-num {
    font-size: 24px;
}

.top-mv__badge-text .-large {
    font-size: 22px;
}

.top-mv__catch {
    margin-top: 28px;
}

.top-mv__catch-band {
    /* 帯は1行ずつ縦積み（tableで内容幅にフィット） */
    display: table;
    background: #FFFFFF;
    border-radius: 4px;
    padding: 4px 30px;
    font-size: 48px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: .1em;
    color: var(--text-color);
}

.top-mv__catch-band.-second {
    margin-top: 16px;
    /* ラフは帯が「。」直後で終わる（右padding無し・帯幅582px） */
    padding-right: 0;
}

.top-mv__catch .-orange {
    color: var(--main-color);
}

/* 「・」前後の個別字間詰め（帯幅調整） */
.top-mv__catch .-ls1 {
    letter-spacing: -0.14em;
}

.top-mv__catch .-ls2 {
    letter-spacing: -0.19em;
}

.top-mv__catch .-ls3 {
    letter-spacing: -0.07em;
}

.top-mv__catch .-period-pc {
    /* 末尾「。」の字間を消して帯を「。」直後で終える */
    letter-spacing: 0;
}

.top-mv__catch .-period-sp {
    display: none;
}

.top-mv__lead {
    margin-top: 28px;
    font-size: 16px;
    font-weight: 700;
    line-height: 31px;
    letter-spacing: .09em;
    color: #FFFFFF;
}

.top-mv__lead .-br-sp {
    display: none;
}

.top-mv__cta {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 360px;
    height: 70px;
    margin-top: 40px;
    background: var(--main-color-light);
    border-radius: 10px;
    transition: .3s;
}

.top-mv__cta-icon {
    position: absolute;
    left: 30px;
    top: 50%;
    transform: translateY(-50%);
    width: 26px;
    height: auto;
}

.top-mv__cta-text {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .09em;
    color: #FFFFFF;
    padding-left: 20px;
    padding-right: 10px;
}

.top-mv__cta-arrow {
    position: absolute;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    width: 17px;
    height: auto;
}

/* ============================================================
   共通：改行制御
============================================================ */
.-br-sp {
    display: none;
}

/* ============================================================
   選ばれる理由
============================================================ */
.top-reason {
    padding: 150px 0 142px;
    background: #FFFFFF;
}

.top-reason__head {
    text-align: center;
}

.top-reason__en {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.17;
    color: var(--main-color);
}

.top-reason__ttl {
    position: relative;
    display: inline-block;
    margin-top: 12px;
    font-size: 28px;
    font-weight: 700;
    /* 「3」(75px)が行ボックスを広げないようpx固定（Figmaのlh32相当） */
    line-height: 32px;
    letter-spacing: .09em;
}

.top-reason__ttl-strong {
    font-size: 44px;
}

.top-reason__ttl-strong .-num {
    font-size: 75px;
    font-weight: 700;
    color: var(--main-color);
}

.top-reason__ttl-strong .-num {
    position: relative;
}

.top-reason__ttl-strong .-num::after {
    /* 「3」右肩のキラキラ装飾 */
    content: '';
    position: absolute;
    top: 0;
    right: -6px;
    width: 16px;
    height: 19px;
    background: url(image/top_reason_deco_num.svg) no-repeat center / contain;
}

.top-reason__lead {
    margin-top: 26px;
    font-size: 15px;
    font-weight: 500;
    line-height: 22px;
    letter-spacing: .09em;
}

.top-reason__lead .-br-sp {
    display: none;
}

.top-reason__list {
    display: flex;
    justify-content: space-between;
    margin-top: 32px;
}

.top-reason__item {
    position: relative;
    width: 350px;
    padding: 40px 27px 0;
    background: url(image/top_reason_card_bg.svg) no-repeat center / 100% 100%;
    min-height: 368px;
}

.top-reason__item-icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 120px;
    height: 120px;
    margin: 0 auto;
    background: #FFF3EB;
    border-radius: 50%;
}

.top-reason__item-icon {
    width: 63px;
    height: 60px;
    object-fit: contain;
}

.top-reason__item-num {
    position: absolute;
    right: 21px;
    bottom: 0;
    font-size: 103px;
    font-weight: 900;
    line-height: 1.17;
    color: #FFEEE2;
    z-index: 0;
}

.top-reason__item-ttl {
    position: relative;
    margin-top: 10px;
    font-size: 24px;
    font-weight: 700;
    line-height: 32px;
    letter-spacing: .09em;
    text-align: center;
    z-index: 1;
}

.top-reason__item-ttl .-initial {
    position: relative;
    font-size: 34px;
    color: var(--main-color);
}

.top-reason__item-ttl .-initial::before {
    /* 頭文字左上のキラキラ装飾 */
    content: '';
    position: absolute;
    left: -17px;
    top: -8px;
    width: 19px;
    height: 16px;
    background: url(image/top_reason_deco.svg) no-repeat center / contain;
}

.top-reason__item-line {
    display: block;
    width: 290px;
    margin: 20px auto 0;
    border-top: 1px solid #EEDBCF;
}

.top-reason__item-text {
    position: relative;
    margin-top: 18px;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
    letter-spacing: .09em;
    color: var(--sub-text-color);
    z-index: 1;
}

/* ============================================================
   サービス内容
============================================================ */
.top-service {
    position: relative;
    padding: 130px 0 140px;
}

.top-service::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url(image/common_texture.webp) center / cover;
}

.top-service::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(240, 240, 240, 0.8);
}

.top-service .wrap {
    position: relative;
    z-index: 1;
}

.top-service__head {
    text-align: center;
}

.top-service__en {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.17;
    color: var(--main-color);
}

.top-service__ttl {
    margin-top: 12px;
    font-size: 44px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .09em;
}

.top-service__list {
    display: flex;
    justify-content: space-between;
    margin-top: 32px;
}

.top-service__item {
    width: 350px;
}

.top-service__item > a {
    display: block;
}

.top-service__item-img {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
}

.top-service__item-img picture {
    display: block;
    line-height: 0;
}

.top-service__item-img img {
    width: 100%;
    height: 420px;
    object-fit: cover;
    transition: .3s;
}

.top-service__item-img::before {
    /* 画像下部の黒グラデーション */
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(37, 33, 30, 0) 65%, rgba(37, 33, 30, 0.8) 100%);
    z-index: 1;
    pointer-events: none;
}

.top-service__item-img::after {
    /* ホバー時の白マスク */
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0);
    transition: .3s;
    z-index: 2;
    pointer-events: none;
}

.top-service__item-label {
    position: absolute;
    left: 20px;
    bottom: 88px;
    display: flex;
    /* ラフはSERVICEが数字に対して縦中央 */
    align-items: center;
    gap: 10px;
    color: #FFFFFF;
    z-index: 3;
    line-height: 1;
}

.top-service__item-label .-en {
    font-size: 16px;
    font-weight: 700;
}

.top-service__item-label .-num {
    font-size: 32px;
    font-weight: 500;
}

.top-service__item-ttl {
    position: absolute;
    left: 0;
    bottom: 44px;
    display: inline-block;
    padding: 5px 20px 6px;
    background: var(--main-color);
    border-radius: 0 6px 6px 0;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 1.2;
    color: #FFFFFF;
    z-index: 3;
}

.top-service__item-ttl.-long {
    letter-spacing: .06em;
}

.top-service__item-text {
    margin-top: 22px;
    font-size: 15px;
    font-weight: 500;
    line-height: 24px;
    letter-spacing: .09em;
    color: var(--sub-text-color);
}

.top-service__item-more {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 32px;
    margin-top: 20px;
}

.top-service__item-more .-text {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-color);
    transition: .3s;
}

.top-service__item-more-circle {
    position: relative;
    display: block;
    width: 40px;
    height: 40px;
}

.top-service__item-more-circle::before,
.top-service__item-more-circle::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url(image/common_circle_arrow.svg) no-repeat center / contain;
    transition: opacity .3s;
}

.top-service__item-more-circle::after {
    background-image: url(image/common_circle_arrow_hover.svg);
    opacity: 0;
}

/* ============================================================
   施工事例
============================================================ */
.top-case {
    position: relative;
    /* 下余白はFAQ側のpadding-topに集約（二重取り防止） */
    padding: 130px 0 0;
    background: #FFFFFF;
}

.top-case__head {
    position: relative;
    text-align: center;
    z-index: 1;
}

.top-case__en {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.17;
    color: var(--main-color);
}

.top-case__ttl {
    margin-top: 12px;
    font-size: 44px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .09em;
}

.top-case__box {
    position: relative;
    width: 1340px;
    margin: 40px auto 0;
    padding: 0 100px 120px;
    border-radius: 20px;
}

.top-case__box::before {
    /* パネル背景は画像上端より90px下から */
    content: '';
    position: absolute;
    inset: 90px 0 0;
    background: url(image/common_texture.webp) center / cover;
    border-radius: 20px;
}

.top-case__box::after {
    content: '';
    position: absolute;
    inset: 90px 0 0;
    background: rgba(252, 248, 242, 0.8);
    border-radius: 20px;
}

.top-case__imgs {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 1;
}

.top-case__img {
    position: relative;
    width: 540px;
    flex-shrink: 0;
    border-radius: 10px;
    overflow: hidden;
    line-height: 0;
}

.top-case__img img {
    width: 100%;
    height: 340px;
    object-fit: cover;
}

.top-case__img-tag {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 50px;
    padding: 0 30px;
    border-radius: 10px 0 10px 0;
    font-size: 26px;
    font-weight: 700;
    color: #FFFFFF;
    z-index: 1;
}

.top-case__img-tag.-before {
    background: #826E61;
}

.top-case__img-tag.-after {
    background: var(--main-color);
}

.top-case__arrow {
    /* 両画像の内側端に重なるオーバーレイ */
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 172px;
    line-height: 0;
    z-index: 2;
}

.top-case__arrow img {
    width: 100%;
    height: auto;
}

.top-case__body {
    position: relative;
    margin-top: 24px;
    z-index: 1;
}

.top-case__cat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 170px;
    height: 36px;
    padding: 0 16px;
    border: 2px solid var(--text-color);
    border-radius: 4px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .09em;
}

.top-case__case-ttl {
    margin-top: 16px;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .09em;
}

.top-case__text {
    margin-top: 24px;
    font-size: 15px;
    font-weight: 500;
    line-height: 21px;
    letter-spacing: .09em;
}

.common-more-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 300px;
    height: 60px;
    border: 2px solid var(--text-color);
    border-radius: 10px;
    transition: .3s;
}

.common-more-btn .-text {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .09em;
    color: var(--text-color);
    transition: .3s;
}

.common-more-btn .-arrow {
    position: absolute;
    right: 28px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: auto;
    transition: .3s;
}

.top-case__more {
    margin: 46px auto 0;
}

/* ============================================================
   よくある質問
============================================================ */
.top-faq {
    padding: 120px 0 140px;
    background: #FFFFFF;
}

.top-faq__head {
    text-align: center;
}

.top-faq__en {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.17;
    color: var(--main-color);
}

.top-faq__ttl {
    margin-top: 12px;
    font-size: 44px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .09em;
}

.top-faq__list {
    /* 見出し(lh1.2)の行ボックス下端とFigma(lh32)の差分を補正して視覚37px相当に */
    margin-top: 32px;
}

.top-faq__item + .top-faq__item {
    margin-top: 40px;
}

.top-faq__q {
    display: flex;
    align-items: center;
    background: #FFF2E9;
    border-radius: 10px;
    overflow: hidden;
    min-height: 70px;
}

.top-faq__q-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    width: 59px;
    flex-shrink: 0;
    /* HelveticaQのメトリクスでグリフが約4px上に寄るのを補正 */
    padding-top: 8px;
    background: var(--main-color);
    border-radius: 10px 0 0 10px;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: .04em;
    color: #FFFFFF;
}

.top-faq__q-text {
    padding: 10px 30px;
    font-size: 16px;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: .04em;
}

.top-faq__q-text .-br-sp {
    display: none;
}

.top-faq__a {
    margin-top: 24px;
    padding-left: 89px;
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: .09em;
}

/* ============================================================
   採用情報
============================================================ */
.top-recruit {
    position: relative;
    height: 500px;
    background: url(image/top_recruit_bg.webp) center / cover;
}

.top-recruit__inner {
    position: relative;
    height: 100%;
}

.top-recruit__cont {
    position: absolute;
    top: 50px;
    left: -50px;
}

.top-recruit__badges {
    display: flex;
    gap: 20px;
}

.top-recruit__badge {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 120px;
    height: 120px;
    background: rgba(255, 255, 255, 0.1);
    border: 2px solid #FFFFFF;
    border-radius: 50%;
}

.top-recruit__badge-text {
    position: relative;
    font-size: 16px;
    font-weight: 700;
    line-height: 28px;
    letter-spacing: .09em;
    text-align: center;
    color: #FFFFFF;
    padding: 4px 0;
}

.top-recruit__badge-text::before,
.top-recruit__badge-text::after {
    /* 上下の二重線装飾 */
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 5px;
    border-top: 1px solid #B2B2B2;
    border-bottom: 1px solid #B2B2B2;
}

.top-recruit__badge-text::before {
    top: -3px;
}

.top-recruit__badge-text::after {
    bottom: -4px;
}

.top-recruit__badge-text .-sub {
    font-size: 24px;
}

.top-recruit__ttl {
    margin-top: 33px;
    font-size: 48px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: .09em;
    color: #FFFFFF;
}

.top-recruit__ttl .-marker {
    /* 文字下部に重ねる帯装飾 */
    background: linear-gradient(transparent calc(100% - 24px), #E95C00 calc(100% - 24px), #E95C00 calc(100% - 4px), transparent calc(100% - 4px));
    padding: 0 6px 0 7px;
    margin-left: -7px;
}

/* 「職人」「スタッフ」の傍点（1文字ずつ中心に白丸8px。text-emphasisはサイズ指定不可のため疑似要素方式） */
.top-recruit__ttl .-dot {
    position: relative;
}

.top-recruit__ttl .-dot::before {
    content: '';
    position: absolute;
    left: 50%;
    /* spanのrect上端がグリフより上に出る分の補正 */
    top: -1px;
    transform: translateX(-50%);
    width: 8px;
    height: 8px;
    background: #FFFFFF;
    border-radius: 50%;
}

.top-recruit__ttl .-ls1 {
    letter-spacing: -0.15em;
}

.top-recruit__ttl .-ls2 {
    letter-spacing: -0.17em;
}

.top-recruit__lead {
    margin-top: 24px;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
    letter-spacing: .04em;
    color: #FFFFFF;
}

.top-recruit__lead .-br-sp {
    display: none;
}

.top-recruit__btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 60px;
    margin-top: 34px;
    background: #FFFFFF;
    border-radius: 10px;
    transition: .3s;
}

.top-recruit__btn .-text {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .09em;
    color: var(--text-color);
    transition: .3s;
}

.top-recruit__btn .-arrow {
    position: absolute;
    right: 26px;
    top: 50%;
    transform: translateY(-50%);
    width: 15px;
    height: auto;
    transition: .3s;
}

/* ============================================================
   CONTACT US
============================================================ */
.top-contact {
    position: relative;
    /* 下余白はフッター側のpadding-topに集約（二重取り防止） */
    padding: 120px 0 0;
}

.top-contact::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url(image/common_texture.webp) center / cover;
}

.top-contact::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.8);
}

.top-contact .wrap {
    position: relative;
    z-index: 1;
}

.top-contact__head {
    position: relative;
    text-align: center;
}

.top-contact__ttl {
    position: relative;
    display: inline-block;
    font-size: 80px;
    font-weight: 700;
    line-height: 1.17;
    color: var(--main-color);
    z-index: 1;
}

.top-contact__ttl::before {
    /* 見出し下半分の白帯（カードの枠線を文字の背後で隠す） */
    content: '';
    position: absolute;
    left: -27px;
    right: -27px;
    top: 50%;
    height: 21px;
    background: #FFFFFF;
    z-index: -1;
}

.top-contact__card {
    position: relative;
    margin-top: -47px;
    padding: 50px 48px 36px;
    background: #FFFFFF;
    border: 4px solid var(--main-color);
    border-radius: 20px;
}

.top-contact__lead {
    font-size: 26px;
    font-weight: 700;
    line-height: 39px;
    letter-spacing: .09em;
    text-align: center;
}

.top-contact__lead .-br-sp {
    display: none;
}

.top-contact__btns {
    display: flex;
    justify-content: space-between;
    margin-top: 28px;
}

.top-contact__btn-block {
    position: relative;
    width: 300px;
}

.top-contact__btn-block.-mail::before,
.top-contact__btn-block.-estimate::before {
    /* ブロック間の区切り線 */
    content: '';
    position: absolute;
    left: -40px;
    top: -8px;
    height: 120px;
    border-left: 1px solid #DADADA;
}

.top-contact__label {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 700;
    line-height: 31px;
    letter-spacing: .09em;
    text-align: center;
}

.top-contact__label::before,
.top-contact__label::after {
    content: '';
    display: block;
    width: 2px;
    height: 15px;
    background: var(--text-color);
    flex-shrink: 0;
}

.top-contact__label::before {
    transform: rotate(-24deg);
}

.top-contact__label::after {
    transform: rotate(24deg);
}

.top-contact__label .-num {
    font-size: 20px;
    color: var(--main-color);
    line-height: 1; /* フォント大の数字が行ボックスを押し広げて3列目だけ2px下がるのを防止 */
}

.top-contact__tel-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    height: 33px;
}

.top-contact__tel-btn .-icon {
    width: 26px;
    height: auto;
}

.top-contact__tel-btn .-num {
    font-size: 28px;
    font-weight: 900;
    color: var(--text-color);
}

.top-contact__btn-block.-tel .top-contact__tel-box {
    width: 300px;
    height: 76px;
    margin-top: 5px;
    padding-top: 12px;
    background: #F1F1F1;
    border-radius: 10px;
}

.top-contact__hours {
    font-size: 13px;
    font-weight: 500;
    line-height: 22px;
    text-align: center;
}

.top-contact__btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 300px;
    height: 76px;
    margin-top: 5px;
    border-radius: 10px;
    transition: .3s;
}

.top-contact__btn.-contact {
    background: var(--main-color-pale);
}

.top-contact__btn.-estimate-btn {
    background: var(--main-color-light);
}

.top-contact__btn .-icon {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 26px;
    height: auto;
}

.top-contact__btn .-text {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .04em;
    color: #FFFFFF;
    padding-right: 10px;
}

.top-contact__btn .-arrow {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 17px;
    height: auto;
}

/* ============================================================
   フッター
============================================================ */
.site-footer {
    position: relative;
}

.site-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url(image/common_texture.webp) center / cover;
}

.site-footer::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.8);
}

.site-footer__inner {
    position: relative;
    display: flex;
    padding: 80px 0 0;
    z-index: 1;
}

.site-footer__logo {
    line-height: 0;
}

.site-footer__logo img {
    width: 378px;
    height: auto;
}

.site-footer__company {
    margin-top: 32px;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 1.2;
}

.site-footer__address {
    margin-top: 22px;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
    letter-spacing: .09em;
}

.site-footer__tel {
    margin-top: 8px;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
}

.site-footer__info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

/* DOMはSP順のためPCはorderで並び替え */
.site-footer__makers {
    order: 1;
    margin-top: 62px;
}

.site-footer__group {
    order: 2;
}

.site-footer__makers-ttl {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: .09em;
    margin-left: -9px;
}

.site-footer__makers-list {
    display: flex;
    align-items: center;
    margin-top: 8px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
}

.site-footer__makers-list li + li {
    position: relative;
    margin-left: 16px;
    padding-left: 17px;
}

.site-footer__makers-list li + li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 14px;
    border-left: 1px solid #A7A7A7;
}

.site-footer__group {
    margin-top: 18px;
}

.site-footer__group-ttl {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: .09em;
    margin-left: -9px;
}

.site-footer__group-list {
    display: flex;
    gap: 25px;
    margin-top: 12px;
}

.site-footer__group-list a {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: .09em;
    color: var(--text-color);
    transition: .3s;
}

.site-footer__blank-icon {
    width: 12px;
    height: 12px;
}

.site-footer__nav {
    margin-left: auto;
    width: 604px;
    padding-top: 20px;
}

.site-footer__nav-head {
    display: flex;
    align-items: center;
}

.site-footer__nav-ttl {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.17;
    color: var(--main-color);
}

.site-footer__nav-line {
    flex: 1;
    margin-left: 30px;
    border-top: 2px solid var(--main-color);
}

.site-footer__nav-cols {
    display: flex;
    margin-top: 24px;
    padding-left: 41px;
}

.site-footer__nav-col {
    width: 184px;
}

.site-footer__nav-col.-service {
    width: 240px;
}

.site-footer__nav-parent,
.site-footer__nav-list a {
    /* blockにしてli側のline-height1.7継承による行ピッチ肥大を防ぐ */
    display: block;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 1.2;
    color: var(--text-color);
    transition: .3s;
}

.site-footer__nav-list > li + li {
    margin-top: 32px;
}

.site-footer__nav-child {
    margin-top: 19px;
}

.site-footer__nav-child > li + li {
    margin-top: 12px;
}

.site-footer__nav-child a {
    position: relative;
    display: block;
    padding-left: 17px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 18px;
    color: #6B6B6B;
    transition: .3s;
}

.site-footer__nav-child a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    width: 9px;
    border-top: 1px solid #6B6B6B;
}

.site-footer__partner-list {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 106px;
}

.site-footer__partner-list img {
    height: 51px;
    width: auto;
}

.site-footer__partner-list a {
    display: block;
    transition: .3s;
}

/* SP用の提携ロゴ（info内）はPCでは非表示（default.cssの.spと同詳細度事故の打ち消し） */
.site-footer__partner-list.sp {
    display: none;
}

.site-footer__banner-area {
    position: relative;
    z-index: 1;
    margin-top: 24px;
}

.site-footer__banner-line {
    border-top: 1px solid #CDCDCD;
}

.site-footer__banner-list {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 40px 0;
}

.site-footer__banner-list img {
    height: 56px;
    width: auto;
}

.site-footer__banner-list a {
    display: block;
    transition: .3s;
}

.site-footer__sp-links {
    display: none;
}

.site-footer__copyright {
    position: relative;
    background: var(--main-color);
    z-index: 1;
}

.site-footer__copyright p {
    padding: 17px 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.17;
    text-align: center;
    color: #FFFFFF;
}

/* ============================================================
   SP専用パーツ（PCでは非表示）
============================================================ */
.sp-fixed-bar {
    display: none;
}

.top-reason__slider-area {
    position: relative;
}

.top-reason__swipe-hint {
    display: none;
}

/* ============================================================
   下層サービス共通：FV
============================================================ */
.service-fv {
    position: relative;
    height: 500px;
    overflow: hidden;
}

.service-fv__bg {
    position: absolute;
    inset: 0;
}

.service-fv__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.service-fv__cont {
    position: relative;
    z-index: 2;
    padding-top: 159px;
}

.service-fv__sub {
    font-size: 22px;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: .09em;
    color: #FFFFFF;
}

.service-fv__deco {
    display: flex;
    /* 波線は直線と上端揃え */
    align-items: flex-start;
    margin-top: 8px;
}

.service-fv__deco-line {
    width: 78px;
    height: 3px;
    margin-top: 1px;
    border-radius: 1.5px;
    background: #FFFFFF;
}

.service-fv__deco-wave {
    width: 343px;
    height: auto;
    margin-left: 2px;
}

.service-fv__catch {
    margin-top: 22px;
    font-size: 40px;
    font-weight: 900;
    line-height: 48px;
    letter-spacing: .1em;
    color: var(--text-color);
}

.service-fv__band {
    /* 帯は1行ずつ縦積み（tableで内容幅にフィット） */
    display: table;
    background: #FFFFFF;
    border-radius: 4px;
    padding: 4px 20px;
}

.service-fv__band.-second {
    /* ラフは帯が「。」直後で終わる（右padding無し） */
    margin-top: 12px;
    padding-right: 0;
}

.service-fv__band .-orange {
    color: var(--main-color);
}

/* 「く・早」まわりの個別字間詰め（帯幅調整） */
.service-fv__band .-ls1 {
    letter-spacing: -0.33em;
}

.service-fv__band .-ls2 {
    letter-spacing: -0.11em;
}

.service-fv__catch .-period-pc {
    /* 末尾「。」の字間を消して帯を「。」直後で終える */
    letter-spacing: 0;
}

.service-fv__catch .-period-sp {
    display: none;
}

.service-fv__lead {
    margin-top: 30px;
    font-size: 15px;
    font-weight: 700;
    line-height: 23px;
    letter-spacing: .09em;
    color: #FFFFFF;
}

/* ============================================================
   下層共通：パンくず
============================================================ */
.service-fv__breadcrumb {
    padding: 12px 0;
    font-size: 12px;
    font-weight: 700;
    line-height: 22px;
    letter-spacing: .09em;
    color: var(--text-color);
}

.service-fv__breadcrumb a {
    color: inherit;
}

/* ============================================================
   サービス共通：お悩み
============================================================ */
.service_worry-sec {
    background: linear-gradient(180deg, #FFFFFF, #F5F8FC);
    padding: 94px 0 100px;
}

.service_worry-sec .worry_head {
    position: relative;
    width: fit-content;
    margin: 0 auto;
}

.service_worry-sec .worry_head .worry_ttl {
    font-size: 22px;
    font-weight: 700;
    line-height: 32px;
    letter-spacing: .18em;
    text-align: center;
}

.service_worry-sec .worry_head .worry_ttl .-comma {
    letter-spacing: -0.44em;
}

.service_worry-sec .worry_head .worry_ttl .-large {
    font-size: 38px;
    font-weight: 900;
    color: #406BAC;
}

.service_worry-sec .worry_head .worry_moyamoya {
    /* SVGは回転込みで書き出し済み（CSS回転を掛けると二重回転になる） */
    position: absolute;
    top: -36px;
    right: 161px;
    width: 31px;
    height: auto;
}

.service_worry-sec .worry_list {
    display: flex;
    gap: 30px;
    margin-top: 43px;
}

.service_worry-sec .worry_list .item {
    width: 360px;
    background: #FFFFFF;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    padding: 20px 30px 30px;
}

.service_worry-sec .worry_list .item .item_head {
    display: flex;
    align-items: center;
    gap: 16px;
}

.service_worry-sec .worry_list .item .item_icon {
    position: relative;
    flex-shrink: 0;
    width: 70px;
}

.service_worry-sec .worry_list .item .item_icon img {
    width: 100%;
    height: auto;
}

.service_worry-sec .worry_list .item .item_icon .item_icon_moyamoya {
    /* SVGは回転込み（CSS回転なし） */
    position: absolute;
    top: -8px;
    left: 56px;
    right: auto;
    width: 22px;
    height: auto;
}

.service_worry-sec .worry_list .item .item_head .item_ttl {
    font-size: 16px;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: .09em;
    /* 改行は<br>で固定済み（自動折返しによるカラム落ち防止） */
    white-space: nowrap;
}

.service_worry-sec .worry_list .item .item_head .item_ttl.-tight {
    letter-spacing: .05em;
}

.service_worry-sec .worry_list .item .item_head .item_ttl .-strong {
    font-size: 18px;
    font-weight: 900;
    color: #406BAC;
    /* 薄青マーカー（グリフ下部に重ねる） */
    background: linear-gradient(#E6EEFB, #E6EEFB) no-repeat left bottom 0 / 100% 6px;
}

.service_worry-sec .worry_list .item .item_line {
    display: block;
    height: 1px;
    background: #CACACA;
    margin-top: 20px;
}

.service_worry-sec .worry_list .item .item_text {
    margin-top: 16px;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    letter-spacing: .09em;
    color: var(--sub-text-color);
}

/* ============================================================
   サービス共通：解決宣言
============================================================ */
.service_solution-sec {
    padding-bottom: 120px;
}

.service_solution-sec .solution_arrow {
    /* お悩みのグラデ背景に矢印上部が食い込むラフ配置 */
    margin-top: -41px;
    text-align: center;
}

.service_solution-sec .solution_arrow img {
    width: 143px;
    height: auto;
}

.service_solution-sec .solution_body {
    text-align: center;
}

.service_solution-sec .solution_body .solution_catch {
    margin-top: 40px;
    font-size: 28px;
    font-weight: 700;
    line-height: 52px;
    letter-spacing: .09em;
}

.service_solution-sec .solution_body .solution_catch .-catch-line {
    letter-spacing: .09em;
}

.service_solution-sec .solution_body .solution_catch .-large {
    position: relative;
    font-size: 44px;
    font-weight: 900;
    line-height: 52px;
    color: var(--main-color);
}

.service_solution-sec .solution_body .solution_catch .solution_kira {
    /* カンプ切り出しの透過PNG（SVGでは回転込み形状を再現できないため） */
    position: absolute;
    top: -26.5px;
    right: -19.5px;
    width: 28px;
    height: 32px;
}

.service_solution-sec .solution_body .solution_catch .solution_kira img {
    width: 100%;
    height: auto;
}

.service_solution-sec .solution_body .solution_text {
    margin-top: 22px;
    font-size: 15px;
    font-weight: 500;
    line-height: 20px;
    letter-spacing: .09em;
}

.service_solution-sec .solution_body .solution_strong {
    margin-top: 14px;
    font-size: 22px;
    font-weight: 700;
    line-height: 25px;
    letter-spacing: .09em;
    color: var(--text-color);
}

.service_solution-sec .solution_body .solution_strong .-orange {
    color: var(--main-color);
}

.service_solution-sec .solution_body .solution_strong .-ul {
    /* margin負+padding正で線だけテキストより延長 */
    background: linear-gradient(var(--main-color), var(--main-color)) no-repeat left bottom 1.5px / 100% 2px;
    padding: 0 16px 3px 15px;
    margin: 0 -16px 0 -15px;
}

.service_solution-sec .solution_body .solution_lead {
    margin-top: 32px;
    font-size: 16px;
    font-weight: 500;
    line-height: 25px;
    letter-spacing: .09em;
}

.service_solution-sec .solution_body .solution_lead .-line2 {
    font-size: 22px;
    font-weight: 700;
    line-height: 30px;
}

.service_solution-sec .solution_body .solution_lead .-large {
    color: var(--main-color);
    border-bottom: 2px solid var(--main-color);
}

/* ============================================================
   サービス共通：REASON
============================================================ */
.service_reason-sec {
    background: url(image/service_reason_bg.webp) top center no-repeat;
    background-size: 100% 470px;
    padding-top: 100px;
}

.service_reason-sec .reason_head {
    text-align: center;
    color: #FFFFFF;
}

.service_reason-sec .reason_head .reason_en {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.17;
}

.service_reason-sec .reason_head .reason_ttl {
    margin-top: 10px;
    font-size: 40px;
    font-weight: 700;
    line-height: 48px;
    letter-spacing: .09em;
}

.service_reason-sec .reason_list {
    display: flex;
    gap: 40px;
    margin-top: 40px;
}

.service_reason-sec .reason_list .item {
    position: relative;
    width: 550px;
    padding: 26px 40px 40px;
}

.service_reason-sec .reason_list .item::before {
    /* 上辺中央が凸の山型カード（shadow込みSVG。filter余白20px分外側に敷く） */
    content: '';
    position: absolute;
    inset: -20px;
    background: url(image/service_reason_card_bg.svg) center / 100% 100% no-repeat;
    z-index: 0;
}

.service_reason-sec .reason_list .item > * {
    position: relative;
    z-index: 1;
}

.service_reason-sec .reason_list .item .item_num {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.17;
    color: var(--main-color);
}

.service_reason-sec .reason_list .item .item_num .-num {
    font-size: 36px;
    line-height: 1.17;
}

.service_reason-sec .reason_list .item .item_body .item_head {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: -5px;
}

.service_reason-sec .reason_list .item .item_body .item_head .item_icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: #FFF3EB;
}

.service_reason-sec .reason_list .item .item_body .item_head .item_icon img {
    width: 55px;
    height: 59px;
    object-fit: contain;
}

.service_reason-sec .reason_list .item .item_body .item_head .item_ttl {
    font-size: 24px;
    font-weight: 700;
    line-height: 34px;
    letter-spacing: .09em;
    /* 改行は<br>で固定済み（自動折返しによるカラム落ち防止） */
    white-space: nowrap;
}

.service_reason-sec .reason_list .item .item_body .item_head .item_ttl .-orange {
    color: var(--main-color);
}

.service_reason-sec .reason_list .item .item_body .item_line {
    display: block;
    margin-top: 21px;
    height: 2px;
    background: repeating-linear-gradient(90deg, #ADADAD 0 4px, transparent 4px 8px);
}

.service_reason-sec .reason_list .item .item_body .item_text {
    margin-top: 21px;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    letter-spacing: .09em;
    color: var(--sub-text-color);
}

/* ============================================================
   サービス共通：対応ラインナップ
============================================================ */
.service_lineup-sec {
    padding-top: 120px;
}

.service_lineup-sec .lineup_head {
    text-align: center;
}

.service_lineup-sec .lineup_head .lineup_en {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.17;
    color: var(--main-color);
}

.service_lineup-sec .lineup_head .lineup_ttl {
    margin-top: 10px;
    font-size: 44px;
    font-weight: 700;
    line-height: 52.8px;
    letter-spacing: .09em;
}

.service_lineup-sec .lineup_list {
    display: flex;
    gap: 40px;
    margin-top: 40px;
}

.service_lineup-sec .lineup_list .item {
    width: 255px;
}

.service_lineup-sec .lineup_list .item .item_img {
    position: relative;
}

.service_lineup-sec .lineup_list .item .item_img img {
    width: 100%;
    height: 255px;
    object-fit: cover;
    border-radius: 10px;
}

.service_lineup-sec .lineup_list .item .item_img .item_label {
    white-space: nowrap;
    position: absolute;
    left: 0;
    bottom: 30px;
    background: var(--main-color);
    border-radius: 0 6px 6px 0;
    padding: 6px 20px;
    font-size: 20px;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: .09em;
    color: #FFFFFF;
}

.service_lineup-sec .lineup_list .item .item_img .item_label .-small {
    font-size: 14px;
}

.service_lineup-sec .lineup_list .item .item_text {
    margin-top: 18px;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    letter-spacing: .09em;
    color: var(--sub-text-color);
}

/* ============================================================
   サービス共通：施工事例（スライダー）
   カード・画像・タグ・矢印・ピル・タイトル・本文はTOPと同一デザインのため
   top-case__* を流用し、スライダー化に伴う差分のみここで上書きする
============================================================ */
.service_works-sec {
    padding-top: 120px;
}

.service_works-sec .works_head {
    text-align: center;
}

.service_works-sec .works_head .works_en {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.17;
    color: var(--main-color);
}

.service_works-sec .works_head .works_ttl {
    margin-top: 10px;
    font-size: 44px;
    font-weight: 700;
    line-height: 52.8px;
    letter-spacing: .09em;
}

.service_works-sec .works_slider_area {
    position: relative;
    width: 1240px;
    margin: 40px auto 0;
}

/* TOP流用の差分：スライド内はカード幅1240（親に追従）・左右余白は内側で確保 */
.service_works-sec .works_slider_area .top-case__box {
    width: 100%;
    margin: 0;
    padding: 0 0 54px;
}

.service_works-sec .works_slider_area .top-case__imgs {
    padding: 0 50px;
}

.service_works-sec .works_slider_area .top-case__body {
    padding: 0 100px;
}

.service_works-sec .works_slider_area .top-case__cat {
    min-width: 0;
    padding: 0 18px;
}

.service_works-sec .works_slider_area .slick-slide img.sp {
    /* slick.cssの .slick-slide img { display:block } が .sp の非表示に勝つため明示打ち消し */
    display: none;
}

.service_works-sec .works_slider_area .top-case__body .item_period,
.page_works_single-sec .top-case__body .item_period {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
}

.service_works-sec .works_slider_area .top-case__body .item_period .item_period_label,
.page_works_single-sec .top-case__body .item_period .item_period_label {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 28px;
    background: #DFDFDF;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .09em;
}

.service_works-sec .works_slider_area .top-case__body .item_period .item_period_text,
.page_works_single-sec .top-case__body .item_period .item_period_text {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .09em;
}

/* slickナビ（左右円ボタン） */
.service_works-sec .works_slider_area .slick-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 70px;
    height: 70px;
    border: none;
    border-radius: 50%;
    background: var(--text-color) url(image/works_slider_arrow.svg) center / 22px 23px no-repeat;
    font-size: 0;
    cursor: pointer;
    transition: .3s;
}

.service_works-sec .works_slider_area .slick-arrow::before {
    /* slick-theme標準の矢印を無効化（svg背景の矢印を使用） */
    content: none;
}

.service_works-sec .works_slider_area .slick-prev {
    left: -50px;
}

.service_works-sec .works_slider_area .slick-next {
    right: -50px;
    /* 矢印svg素材は左向き。next側を180度回転 */
    transform: translateY(-50%) rotate(180deg);
}

/* slickドット（四角） */
.service_works-sec .works_slider_area .slick-dots {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 32px;
    position: static;
}

.service_works-sec .works_slider_area .slick-dots li {
    width: 13px;
    height: 13px;
    margin: 0;
}

.service_works-sec .works_slider_area .slick-dots li button {
    width: 13px;
    height: 13px;
    padding: 0;
    border: none;
    background: #EAEAEA;
    font-size: 0;
}

.service_works-sec .works_slider_area .slick-dots li button::before {
    content: none;
}

.service_works-sec .works_slider_area .slick-dots li.slick-active button {
    background: var(--main-color);
}

.service_works-sec .works_slider_area.slick-dotted,
.service_works-sec .works_slider_area .slick-dotted.slick-slider {
    margin-bottom: 0;
}

.service_works-sec .works_more {
    margin: 50px auto 0;
}

/* ============================================================
   サービス共通：よくある質問
   QAバーはTOPと同一デザインのため top-faq__* を流用（差分のみ上書き）
============================================================ */
.service_faq-sec {
    padding-top: 120px;
}

.service_faq-sec .faq_head {
    text-align: center;
}

.service_faq-sec .faq_head .faq_en {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.17;
    color: var(--main-color);
}

.service_faq-sec .faq_head .faq_ttl {
    margin-top: 10px;
    font-size: 44px;
    font-weight: 700;
    line-height: 53px;
    letter-spacing: .09em;
}

.service_faq-sec .faq_head .faq_ttl .-small {
    /* 1行目は別ブロックにして親lh53のstrutを回避（行高35px） */
    display: block;
    font-size: 24px;
    line-height: 35px;
}

/* TOP流用の差分：内部ラフは回答の上余白16px（TOPは24px） */
.service_faq-sec .top-faq__a {
    margin-top: 16px;
}

/* ============================================================
   内部共通：CTA
   カード・3ブロック（電話ボックス・ボタン・区切り線）はTOPと同一デザインのため
   top-contact__* を流用（差分＝見出し・リードサイズ等のみ上書き）
============================================================ */
.page_cta-sec {
    position: relative;
    margin-top: 120px;
    /* 下余白はフッター側のpadding-topに集約（二重取り防止） */
    padding: 120px 0 0;
}

.page_cta-sec::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url(image/common_texture.webp) center / cover;
}

.page_cta-sec::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.8);
}

.page_cta-sec .wrap {
    position: relative;
    z-index: 1;
}

.page_cta-sec .cta_ttl {
    /* TOPと同じ::beforeの下半分白帯方式 */
    font-size: 52px;
    line-height: 62px;
    letter-spacing: 0;
}

.page_cta-sec .cta_ttl::before {
    /* 見出し下半分の白帯（枠線を文字の背後で隠す） */
    left: -11px;
    right: 13px;
    top: 30px;
    height: 21px;
}

/* 枠線はstroke内側描画のためborder4px分を差し引く */
.page_cta-sec .top-contact__card {
    margin-top: -24px;
    padding: 52px 36px 36px;
}

.page_cta-sec .top-contact__lead {
    font-size: 18px;
    line-height: 27px;
    letter-spacing: .09em;
}

.page_cta-sec .top-contact__btns {
    margin-top: 30px;
}

/* ============================================================
   下層共通FV（写真帯＋英字＋白帯タイトル。ラフ=SP-内部_h1_2）
   PCはラフなし＝サービスFVからsub・波線・リードを除いた形でトンマナ化
============================================================ */
.common-fv {
    position: relative;
    height: 400px;
    overflow: hidden;
}

.common-fv__bg {
    position: absolute;
    inset: 0;
}

.common-fv__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.common-fv__cont {
    position: relative;
    z-index: 2;
    /* テキストは写真の見える範囲（固定ヘッダー100pxの下〜FV下端）の垂直中央 */
    padding-top: 204px;
}

.common-fv__en {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.17;
    color: #FFFFFF;
}

.common-fv__ttl {
    margin-top: 8px;
    font-size: 40px;
    font-weight: 900;
    line-height: 48px;
    letter-spacing: .06em;
    color: var(--main-color);
}

.common-fv__band {
    /* 白帯は内容幅にフィット（サービスFVの帯と同流儀） */
    display: table;
    background: #FFFFFF;
    border-radius: 4px;
    padding: 4px 20px;
}

/* ============================================================
   よくある質問ページ（カテゴリタブ切替）
============================================================ */
.page_faq-sec {
    /* 上余白はFV直下セクション共通値。下は0（余白はCTA側に集約） */
    padding: 94px 0 0;
}

.page_reason .top-reason {
    /* 下paddingは0（CTAとの余白はCTA側に集約。TOP側は変更しない） */
    padding-bottom: 0;
}

.page_faq-sec .faq_tabs,
.page_works-sec .works_tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
}

.page_faq-sec .faq_tabs .faq_tab,
.page_works-sec .works_tabs .works_tab {
    display: block;
    padding: 12px 30px;
    /* SWELL親テーマのbutton既定枠線を上書き（ピル型・アウトライン） */
    border: 2px solid var(--main-color);
    border-radius: 30px;
    background: #FFFFFF;
    color: var(--main-color);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 1.5;
    cursor: pointer;
    transition: .3s;
}

.page_faq-sec .faq_tabs .faq_tab.is-active,
.page_works-sec .works_tabs .works_tab.is-active {
    background: var(--main-color);
    color: #FFFFFF;
}

.page_faq-sec .faq_panels {
    margin-top: 50px;
}

.page_faq-sec .faq_panels .faq_panel {
    display: none;
}

.page_faq-sec .faq_panels .faq_panel.is-active {
    display: block;
}

/* ============================================================
   施工事例 一覧（アーカイブ・カテゴリ共通）
   タブはFAQページのタブと同一デザイン（既存ルールにセレクタ追加で流用）
   カテゴリピルは top-case__cat を流用
============================================================ */
.page_works-sec {
    /* 上余白はFV直下セクション共通値。下は0（余白はCTA側に集約） */
    padding: 94px 0 0;
}

.page_works-sec .works_list {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 30px;
    margin-top: 50px;
}

.page_works-sec .works_list .item {
    display: block;
    width: 360px;
}

.page_works-sec .works_list .item .item_img {
    border-radius: 10px;
    overflow: hidden;
    line-height: 0;
}

.page_works-sec .works_list .item .item_img img {
    width: 100%;
    height: 230px;
    object-fit: cover;
    transition: .3s;
}

.page_works-sec .works_list .item .item_body {
    margin-top: 16px;
}

.page_works-sec .works_list .item .item_ttl {
    margin-top: 12px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .09em;
    color: var(--text-color);
    /* 動的タイトルは2行制限（デザイン崩れ防止の必須運用。SPにも継承） */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.page_works-sec .works_pager {
    margin-top: 60px;
}

.page_works-sec .works_pager ul.page-numbers {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    /* SWELL親テーマの[class*="page-numbers"]既定（グレー帯bg・height/line-height36・margin6px・box-shadow）を打ち消し */
    height: auto;
    line-height: normal;
    background: none;
    box-shadow: none;
    min-width: 0;
    margin: 0;
}

.page_works-sec .works_pager ul.page-numbers li a,
.page_works-sec .works_pager ul.page-numbers li span {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 48px;
    height: 48px;
    min-width: 0;
    margin: 0;
    line-height: normal;
    border: 2px solid var(--text-color);
    border-radius: 10px;
    background: #FFFFFF;
    /* SWELL親の[class*="page-numbers"]のbox-shadowも打ち消し */
    box-shadow: none;
    font-size: 16px;
    font-weight: 700;
    color: var(--text-color);
    transition: .3s;
}

.page_works-sec .works_pager ul.page-numbers li span.current {
    background: var(--main-color);
    border-color: var(--main-color);
    color: #FFFFFF;
}

.page_works-sec .works_pager ul.page-numbers li span.dots {
    width: auto;
    border: none;
    background: none;
}

.page_works-sec .works_none {
    margin-top: 60px;
    text-align: center;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: .09em;
}

/* ============================================================
   施工事例 詳細
   BEFORE/AFTERはTOPの top-case__box を流用（差分のみここで指定）
============================================================ */
.page_works_single-sec {
    /* 上余白はFV直下セクション共通値。下は0（余白はCTA側に集約） */
    padding: 94px 0 0;
}

.page_works_single-sec .top-case__box {
    /* TOP側の見出しとの余白40pxはsection paddingに含めるため0（左右autoは維持） */
    margin-top: 0;
    /* 下paddingはTOPの120px（もっとみるボタン込み）でなくサービスページの事例カードと同値 */
    padding-bottom: 54px;
}

.page_works_single-sec .back_btn {
    margin: 60px auto 0;
}

/* ============================================================
   採用情報 一覧（リスト型カード・全件表示）
   雇用形態ピルは top-case__cat・ボタンは common-more-btn を流用
============================================================ */
.page_recruit-sec {
    /* 上余白はFV直下セクション共通値。下は0（余白はCTA側に集約） */
    padding: 94px 0 0;
}

.page_recruit-sec .recruit_list {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.page_recruit-sec .recruit_list .item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 36px 50px;
    background: #FFFFFF;
    border: 2px solid var(--text-color);
    border-radius: 10px;
    /* カード全体がaのためリンク色（青）を打ち消し（子要素に継承させる） */
    color: var(--text-color);
}

.page_recruit-sec .recruit_list .item .item_body {
    /* line-clampの幅基準を安定させる（flex子のはみ出し防止） */
    flex: 1;
    min-width: 0;
}

.page_recruit-sec .recruit_list .item .item_head {
    display: flex;
    align-items: center;
    gap: 16px;
}

.page_recruit-sec .recruit_list .item .item_type {
    flex-shrink: 0;
}

.page_recruit-sec .recruit_list .item .item_ttl {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .09em;
    /* 動的タイトルは2行制限（デザイン崩れ防止の必須運用） */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.page_recruit-sec .recruit_list .item .item_text {
    margin-top: 14px;
    font-size: 15px;
    font-weight: 500;
    line-height: 21px;
    letter-spacing: .09em;
    /* 動的テキストは2行制限 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.page_recruit-sec .recruit_list .item .item_btn {
    flex-shrink: 0;
}

.page_recruit-sec .recruit_none {
    text-align: center;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: .09em;
}

/* ============================================================
   採用情報 詳細（募集要項テーブル＋応募ボタン）
============================================================ */
.page_recruit_single-sec {
    /* 上余白はFV直下セクション共通値。下は0（余白はCTA側に集約） */
    padding: 94px 0 0;
}

.page_recruit_single-sec .single_inner {
    /* テーブルは読みやすさ優先で.wrapより狭い900px中央寄せ（定型） */
    max-width: 900px;
    margin: 0 auto;
}

.page_recruit_single-sec .single_head {
    display: flex;
    align-items: center;
    gap: 16px;
}

.page_recruit_single-sec .single_type {
    flex-shrink: 0;
}

.page_recruit_single-sec .single_ttl {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .09em;
}

.page_recruit_single-sec .recruit_table {
    width: 100%;
    margin-top: 40px;
    border-collapse: collapse;
}

.page_recruit_single-sec .recruit_table tr:first-child th,
.page_recruit_single-sec .recruit_table tr:first-child td {
    border-top: 1px solid #D8D8D8;
}

.page_recruit_single-sec .recruit_table th,
.page_recruit_single-sec .recruit_table td {
    padding: 24px 20px;
    border-bottom: 1px solid #D8D8D8;
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: .09em;
    text-align: left;
    vertical-align: top;
}

.page_recruit_single-sec .recruit_table th {
    width: 220px;
    font-weight: 700;
}

.page_recruit_single-sec .recruit_table td {
    font-weight: 500;
}

.page_recruit_single-sec .recruit_apply_btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 360px;
    height: 64px;
    margin: 50px auto 0;
    background: var(--main-color);
    border-radius: 10px;
    transition: .3s;
}

.page_recruit_single-sec .recruit_apply_btn .-text {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .09em;
    color: #FFFFFF;
}

.page_recruit_single-sec .recruit_apply_btn .-arrow {
    position: absolute;
    right: 28px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: auto;
    /* 黒矢印svgを白化 */
    filter: brightness(0) invert(1);
}

/* ============================================================
   個人情報保護方針・サイトマップ
============================================================ */

/* 下padding0（CTA側のmargin-topに余白を集約する共通仕様） */
.page_privacy .common_page_wrap {
    padding-bottom: 0;
}

/* サイトマップ（ID27）はテンプレ未割当＝page.php表示のためbodyのページIDクラスで指定 */
.page-id-27 .common_page_wrap {
    padding-bottom: 0;
}

@media (max-width: 750px) {
    .wrap {
        max-width: 90%;
    }

    a[href $='.pdf']::before {
        width: 7vw;
        height: 8vw;
        margin-right: 2.5vw;
    }

    a[href $='.pdf']:hover {
        text-decoration: underline;
    }

    body {
        font-size: 13px;
        padding-top: 55px;
    }

    /* SPヘッダー */
    #sp_header {
        position: fixed;
        left: 0;
        top: 0;
        width: 100%;
        background: #fff;
        box-shadow: 1px 1px #ccc;
        z-index: 999;
        height: 55px;
    }

    #sp_header .logo {
        position: absolute;
        left: 10px;
        top: 10px;
        line-height: 0;
    }

    #sp_header .logo img {
        height: 40px;
    }

    #sp_header .icon {
        color: #000;
        position: absolute;
    }

    #sp_header .mail {
        right: 70px;
        top: 13px;
        font-size: 25px;
    }

    #sp_header .tel {
        right: 110px;
        top: 15px;
        font-size: 20px;
    }

    /* SP固定ページ 共通設定 */
    .common_page_main {
        padding-block: 20vw;
    }

    .common_page_main .title_box .title {
        font-size: 5.6vw;
    }

    .common_page_wrap {
        padding: 20vw 0;
    }

    .reserve_text {
        font-size: 6vw;
    }

    /* パンくず */
    .breadcrumb {
        font-size: 2.5vw;
    }

    /* SP固定ページ お問い合わせ */
    .contact_form_disc {
        margin-block: 0 2em;
    }

    .contact_form_disc .text {
        font-size: 3.6vw;
        margin-block: 0 0.8em;
    }

    .contact_form_disc .caution {
        font-size: 3.1vw;
        letter-spacing: .06em;
    }

    .common_contact_form .form_box {
        margin-block: 0 10vw;
    }

    .common_contact_form .form_box dl {
        grid-template-columns: 1fr;
        gap: 0.6em;
    }

    .common_contact_form .form_box dl+dl {
        margin-block: 1.3em 0;
    }

    .common_contact_form .form_box dl dt {
        flex-direction: row-reverse;
        justify-content: space-between;
        font-size: 4.1vw;
        padding-inline: 0;
    }

    .common_contact_form .form_box dl dt .label {
        font-size: 3.1vw;
    }

    .common_contact_form .form_box dl dt::after {
        content: none;
    }

    .common_contact_form input[type="text"],
    .common_contact_form input[type="email"],
    .common_contact_form #zip {
        font-size: 3.6vw;
    }

    .common_contact_form select {
        width: 100%;
        font-size: 3.6vw;
    }

    .common_contact_form textarea {
        height: 33vw;
        font-size: 3.6vw;
    }

    .radio_btns,
    .checkboxes {
        gap: 0.5em 2.5em;
    }

    .page_contact #btn_wrap button {
        width: 83%;
        line-height: 15.5vw;
        font-size: 4.6vw;
    }

    .page_contact #btn_wrap button[name="submitBack"] {
        margin-top: 4vw;
    }

    .mwform-checkbox-field.horizontal-item {
        display: block;
    }

    .page_contact #btn_wrap {
        width: 100%;
        text-align: center;
    }

    .privacy_check_list .mwform-checkbox-field-text {
        font-size: 3.8vw;
        padding-left: 11vw;
    }

    .mw_wp_form .privacy_check_list .horizontal-item {
        margin-right: 4vw;
    }

    .privacy_check_list .hissu {
        padding: 0.3vw 4vw;
    }

    .privacy_check_list {
        margin-bottom: 6vw;
    }

    .privacy_term_detail {
        font-size: 3.4vw;
        margin: 5vw 0;
    }

    .privacy_term_outer {
        width: 96%;
        padding: 5vw 0;
    }

    .privacy_term_outer .privacy_term_inner .main_text {
        font-size: 3.4vw;
        line-height: 1.6;
        margin-bottom: 5vw;
    }

    .privacy_term_outer .privacy_term_inner dl dt {
        font-size: 3.5vw;
        margin-bottom: 1.5vw;
    }

    .privacy_term_outer .privacy_term_inner dl dd {
        font-size: 3.5vw;
        line-height: 1.6;
    }

    .privacy_term_outer .privacy_term_inner dl+dl {
        margin-top: 7vw;
    }

    .privacy_term_detail::after {
        width: 2.5vw;
        margin: 1.5vw auto 0;
    }

    /* サンクスページ */
    .page_contact .thanks_textArea .name {
        font-size: 4vw;
        margin-bottom: 3vw;
    }

    .page_contact .thanks_textArea .contact_text {
        font-size: 3.5vw;
        margin-bottom: 2em;
        width: 100%;
    }

    .page_contact .thanks_textArea .ichiran_link {
        width: 80%;
        line-height: 12vw;
        font-size: 4vw;
    }

    /* ステップバー デザイン */
    .page_contact .progressbar {
        gap: 4.5em;
        margin-block: 0 2.5em;
    }

    .page_contact .progressbar .item {
        font-size: 3.1vw;
    }

    .page_contact .progressbar .item+.item::before {
        width: 5.7vw;
        top: 63%;
        left: -3.3em;
    }

    .page_contact .progressbar .item .mark {
        width: 7.7vw;
        margin: 0 auto 0.4em;
    }

    /* SP固定ページ 404ページ */
    #page_404 .num {
        font-size: 20vw;
        line-height: 1.5;
    }

    #page_404 .text {
        font-size: 3.5vw;
    }

    /* SP固定ページ サイトマップ */
    ul#sitemap_list li {
        margin: 0;
    }

    body #sitemap_list li a {
        font-size: 4vw;
        padding: 1vw 2vw;
        line-height: 9vw;
        margin-bottom: 1vw;
    }

    body #sitemap_list li.home-item {
        margin-bottom: 4vw;
    }

    body #sitemap_list {
        padding: 0;
    }

    /* ============================================================
       SP：基本
    ============================================================ */
    body {
        min-width: 100%;
        font-size: 3.59vw;
        /* ベーステーマの padding-top 55px をヘッダー実高60pxに上書き */
        padding-top: 60px;
    }

    .tel-link {
        pointer-events: auto;
    }

    #reason,
    #service,
    #case,
    #faq,
    #recruit,
    #contact {
        scroll-margin-top: 75px;
    }

    /* ============================================================
       SP：ヘッダー
    ============================================================ */
    #sp_header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 60px;
        background: #FFFFFF;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
        z-index: 1000;
        display: flex;
        align-items: center;
    }

    #sp_header .logo {
        /* ストックのabsolute指定を打ち消し（marginと二重になるため） */
        position: static;
        margin-left: 5.38vw;
        line-height: 0;
    }

    #sp_header .logo img {
        width: 45.46vw;
        height: auto;
    }

    /* ============================================================
       SP：MV
    ============================================================ */
    .top-mv {
        /* bodyのヘッダーpaddingと二重計上しない */
        height: 143.59vw;
        margin-top: 0;
    }

    .top-mv__overlay {
        background: linear-gradient(0deg, rgba(37, 33, 30, 0.76) 55%, rgba(37, 33, 30, 0) 80%);
    }

    .top-mv__cont {
        top: 44.87vw;
        left: 5.13vw;
        right: 5.13vw;
    }

    .top-mv__badges {
        gap: 3.08vw;
        margin-left: 0;
    }

    .top-mv__badge {
        min-width: 29.74vw;
        padding: 4.87vw 5.9vw 0;
    }

    .top-mv__badge-crown {
        width: 4.87vw;
    }

    .top-mv__badge-laurel {
        top: 5.9vw;
        width: 4.72vw;
    }

    .top-mv__badge-text {
        font-size: 3.33vw;
        line-height: 5.13vw;
        letter-spacing: .09em;
    }

    .top-mv__badge-text .-num {
        font-size: 4.62vw;
    }

    .top-mv__badge-text .-large {
        font-size: 4.1vw;
    }

    .top-mv__catch {
        margin-top: 4.21vw;
    }

    .top-mv__catch-band {
        border-radius: 1.03vw;
        padding: 0.77vw 2.56vw;
        font-size: 7.18vw;
        letter-spacing: .06em;
    }

    .top-mv__catch-band.-second {
        /* SPは帯の外に「。」が続くためinline-blockに戻す */
        display: inline-block;
        vertical-align: bottom;
        margin-top: 3.08vw;
        font-size: 7.18vw;
        letter-spacing: .04em;
        /* 帯2の右paddingは非対称（この白地に「。」を内包する） */
        padding-right: 5.13vw;
    }

    .top-mv__catch .-ls1 {
        letter-spacing: -0.1em;
    }

    .top-mv__catch .-ls2 {
        letter-spacing: -0.34em;
    }

    .top-mv__catch .-ls3 {
        letter-spacing: -0.16em;
    }

    .top-mv__catch .-period-pc {
        display: none;
    }

    .top-mv__catch .-period-sp {
        display: inline;
        font-size: 7.18vw;
        font-weight: 900;
        color: var(--text-color);
        /* 「。」ボックスは帯の右padding上に乗せる */
        margin-left: -5.13vw;
        position: relative;
        top: 1.03vw;
    }

    .top-mv__lead {
        margin-top: 4.62vw;
        font-size: 3.59vw;
        line-height: 5.13vw;
        letter-spacing: .09em;
    }

    .top-mv__lead .-br-sp {
        display: inline;
    }

    .top-mv__lead .pc {
        display: none;
    }

    .top-mv__cta {
        width: 100%;
        height: 15.38vw;
        margin-top: 8.21vw;
        border-radius: 1.54vw;
    }

    .top-mv__cta-icon {
        left: 5.13vw;
        width: 6.56vw;
    }

    .top-mv__cta-text {
        font-size: 4.1vw;
        padding-left: 2vw;
        padding-right: 2vw;
    }

    .top-mv__cta-arrow {
        right: 3.85vw;
        width: 4.36vw;
    }

    /* ============================================================
       SP：選ばれる理由
    ============================================================ */
    .top-reason {
        padding: 20.51vw 0 17.95vw;
    }

    .top-reason__en {
        font-size: 4.62vw;
    }

    .top-reason__ttl {
        margin-top: 1.79vw;
        font-size: 5.13vw;
        line-height: 1.4;
    }

    .top-reason__ttl-strong {
        display: block;
        position: relative;
        font-size: 7.69vw;
        margin-top: 1.85vw;
        /* unitless継承だと数字が行ボックスを広げるためpx固定 */
        line-height: 8.21vw;
    }

    .top-reason__ttl-strong .-num {
        font-size: 11.28vw;
    }

    .top-reason__ttl-strong .-num::after {
        /* サイズは実インク寸（bboxは回転込みで過大） */
        top: 0.41vw;
        right: -1.54vw;
        width: 2.62vw;
        height: 3.38vw;
        /* SPはSPラフ由来の構成を維持（PC側は新SVGに変更したため明示） */
        background-image: url(image/top_reason_deco_sp.svg);
    }

    .top-reason__lead {
        margin-top: 5.64vw;
        font-size: 3.59vw;
        line-height: 4.62vw;
        text-align: center;
    }

    .top-reason__lead .-br-sp {
        display: inline;
    }

    .top-reason__list {
        display: block;
        margin-top: 6.15vw;
    }

    .top-reason__item {
        width: 89.74vw;
        min-height: 0;
        padding: 11.79vw 7.69vw 7.69vw;
        background: url(image/top_reason_card_bg_sp.svg) no-repeat center / 100% 100%;
        margin: 0 auto;
    }

    .top-reason__item-icon-wrap {
        position: absolute;
        top: 11.79vw;
        left: 7.69vw;
        width: 20.51vw;
        height: 20.51vw;
        margin: 0;
    }

    .top-reason__item-icon {
        width: 11.28vw;
        height: 10.77vw;
    }

    .top-reason__item-num {
        right: 2.5vw;
        bottom: -1vw;
        font-size: 20.51vw;
    }

    .top-reason__item-ttl {
        margin-top: 0;
        min-height: 20.51vw;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        padding-left: 24.62vw;
        font-size: 6.15vw;
        line-height: 8.21vw;
        text-align: left;
    }

    .top-reason__item-ttl .-initial {
        font-size: 7.18vw;
    }

    .top-reason__item-ttl .-initial::before {
        left: 7.36vw;
        top: -3.05vw;
        width: 3.23vw;
        height: 3.92vw;
        /* SPはSPラフ由来の構成を維持（PC側は新SVGに変更したため明示） */
        background-image: url(image/top_reason_deco_sp.svg);
    }

    /* SPの傍点は#333（白カード上のため） */
    .top-recruit__ttl .-dot::before {
        top: -1vw;
        width: 1.03vw;
        height: 1.03vw;
        background: var(--text-color);
    }

    .top-reason__item-line {
        width: 74.36vw;
        margin: 4.1vw auto 0;
    }

    .top-reason__item-text {
        margin-top: 3.59vw;
        font-size: 3.33vw;
        line-height: 4.87vw;
    }

    /* slickスライダー時の余白調整 */
    .top-reason__list.slick-dotted {
        margin-bottom: 0;
        padding-bottom: 8.21vw;
    }

    .top-reason__list .slick-dots {
        bottom: 0;
    }

    .top-reason__list .slick-dots li {
        width: 2.56vw;
        height: 2.56vw;
        margin: 0 2.56vw;
    }

    .top-reason__list .slick-dots li button {
        width: 2.56vw;
        height: 2.56vw;
        padding: 0;
    }

    .top-reason__list .slick-dots li button:before {
        content: '';
        width: 2.56vw;
        height: 2.56vw;
        background: #EAEAEA;
        font-size: 0;
        opacity: 1;
    }

    .top-reason__list .slick-dots li.slick-active button:before {
        background: var(--main-color);
        opacity: 1;
    }

    /* スライダーのスワイプ誘導 */
    .top-reason__swipe-hint {
        display: flex;
        flex-direction: column;
        align-items: center;
        position: absolute;
        top: 20vw;
        left: 50%;
        transform: translateX(-50%);
        width: 30.77vw;
        height: 28.21vw;
        padding-top: 3.59vw;
        background: rgba(0, 0, 0, 0.6);
        border-radius: 2.05vw;
        z-index: 5;
        pointer-events: none;
        transition: opacity .4s;
    }

    .top-reason__swipe-hint.is-hidden {
        opacity: 0;
    }

    .top-reason__swipe-arrow {
        display: block;
        /* svgのviewBox実寸（62×15）どおりに表示（潰すと矢印が約20px幅に縮んで別物になる） */
        width: 15.9vw;
        height: 3.85vw;
        background: url(image/top_reason_swipe_arrow.svg) no-repeat center / contain;
    }

    .top-reason__swipe-hand {
        width: 11.79vw;
        height: 11.79vw;
        margin-top: 0;
        object-fit: contain;
    }

    .top-reason__swipe-text {
        margin-top: 2.82vw;
        font-size: 3.08vw;
        font-weight: 700;
        line-height: 1.2;
        color: #FFFFFF;
    }

    /* ============================================================
       SP：サービス内容
    ============================================================ */
    .top-service {
        padding: 17.95vw 0 20.51vw;
    }

    .top-service__en {
        font-size: 4.62vw;
    }

    .top-service__ttl {
        margin-top: 1.79vw;
        font-size: 8.21vw;
    }

    .top-service__list {
        display: block;
        margin-top: 6.15vw;
    }

    .top-service__item {
        width: 100%;
    }

    .top-service__item + .top-service__item {
        margin-top: 7.69vw;
    }

    .top-service__item-img {
        border-radius: 2.05vw;
    }

    .top-service__item-img img {
        height: 46.15vw;
    }

    .top-service__item-img::before {
        background: linear-gradient(180deg, rgba(37, 33, 30, 0) 50%, rgba(37, 33, 30, 0.8) 100%);
    }

    .top-service__item-label {
        left: 5.13vw;
        bottom: 13.59vw;
        gap: 1.54vw;
    }

    .top-service__item-label .-en {
        font-size: 3.08vw;
        padding-bottom: 0;
    }

    .top-service__item-label .-num {
        font-size: 5.64vw;
    }

    .top-service__item-ttl {
        bottom: 5.38vw;
        padding: 1.03vw 5.13vw 1.03vw;
        border-radius: 0 1.54vw 1.54vw 0;
        font-size: 4.62vw;
    }

    .top-service__item-text {
        margin-top: 4.1vw;
        font-size: 3.59vw;
        line-height: 5.64vw;
        letter-spacing: .04em;
        color: var(--sub-text-color);
    }

    .top-service__item-more {
        gap: 2.05vw;
        margin-top: 7.18vw;
    }

    .top-service__item-more .-text {
        font-size: 4.1vw;
    }

    .top-service__item-more-circle {
        width: 6.15vw;
        height: 6.15vw;
    }

    /* ============================================================
       SP：施工事例
    ============================================================ */
    .top-case {
        /* 下余白はFAQ側のpadding-topに集約（二重取り防止） */
        padding: 17.95vw 0 0;
    }

    .top-case__en {
        font-size: 4.62vw;
    }

    .top-case__ttl {
        margin-top: 1.79vw;
        font-size: 8.21vw;
    }

    .top-case__box {
        width: 89.74vw;
        margin-top: 6.15vw;
        padding: 0 5.13vw 17.95vw;
        border-radius: 2.56vw;
    }

    .top-case__box::before,
    .top-case__box::after {
        inset: 15.38vw 0 0;
        border-radius: 2.56vw;
    }

    .top-case__imgs {
        display: block;
    }

    .top-case__img {
        width: 79.49vw;
        border-radius: 2.05vw;
    }

    .top-case__img img {
        height: 41.03vw;
    }

    .top-case__img-tag {
        height: 8.21vw;
        padding: 0 3.59vw;
        border-radius: 2.05vw 0 2.05vw 0;
        font-size: 5.13vw;
    }

    .top-case__arrow {
        /* 縦積み画像の間に重なるオーバーレイ */
        top: 35.13vw;
        left: 50%;
        transform: translateX(-50%);
        width: 22.87vw;
        margin: 0;
    }

    .top-case__img.-after {
        margin-top: 5.13vw;
    }

    .top-case__body {
        margin-top: 6.15vw;
    }

    .top-case__cat {
        min-width: 36.15vw;
        height: 7.44vw;
        padding: 0 2.56vw;
        border-width: 2px;
        border-radius: 1.03vw;
        font-size: 3.59vw;
    }

    .top-case__case-ttl {
        margin-top: 2.56vw;
        font-size: 4.62vw;
        line-height: 6.67vw;
    }

    .top-case__case-ttl .-space {
        display: none;
    }

    .top-case__case-ttl .-br-sp {
        display: inline;
    }

    .top-case__text {
        margin-top: 4.1vw;
        font-size: 3.33vw;
        line-height: 4.87vw;
    }

    .common-more-btn {
        width: 66.67vw;
        height: 14.36vw;
        border-width: 2px;
        border-radius: 2.56vw;
    }

    .common-more-btn .-text {
        font-size: 4.1vw;
    }

    .common-more-btn .-arrow {
        right: 5.13vw;
        width: 4.1vw;
    }

    .top-case__more {
        margin: 8.97vw auto 0;
    }

    /* ============================================================
       SP：よくある質問
    ============================================================ */
    .top-faq {
        padding: 17.95vw 0 20.51vw;
    }

    .top-faq__en {
        font-size: 4.62vw;
    }

    .top-faq__ttl {
        margin-top: 1.79vw;
        font-size: 8.21vw;
    }

    .top-faq__list {
        margin-top: 6.15vw;
    }

    .top-faq__item + .top-faq__item {
        margin-top: 8.21vw;
    }

    .top-faq__q {
        border-radius: 2.05vw;
        min-height: 17.44vw;
    }

    .top-faq__q-mark {
        width: 10.26vw;
        /* PCと同比率のグリフ位置補正 */
        padding-top: 2.05vw;
        border-radius: 2.05vw 0 0 2.05vw;
        font-size: 6.15vw;
    }

    .top-faq__q-text {
        padding: 2.56vw 4.1vw;
        font-size: 4.1vw;
        line-height: 6.15vw;
    }

    .top-faq__q-text .-br-sp {
        display: inline;
    }

    .top-faq__a {
        margin-top: 3.59vw;
        padding-left: 0;
        font-size: 3.59vw;
        line-height: 5.38vw;
    }

    .top-faq__a .-br-pc {
        display: none;
    }

    /* ============================================================
       SP：採用情報
    ============================================================ */
    .top-recruit {
        height: auto;
        background: url(image/top_recruit_bg_sp.webp) center top / 100% 76.92vw no-repeat;
        padding-top: 45.13vw;
        /* カード影がセクション外に出る分、後続top-contactのテクスチャ(::before/::after)に塗り潰されるのを防ぐ */
        z-index: 1;
    }

    .top-recruit__cont {
        position: relative;
        top: 0;
        left: 0;
        width: 89.74vw;
        margin: 0 auto;
        background: #FFFFFF;
        border-radius: 2.56vw;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
        padding: 0 5.13vw 10.26vw;
    }

    .top-recruit__badges {
        gap: 5.13vw;
        justify-content: center;
        transform: translateY(-10.26vw);
    }

    .top-recruit__badge {
        width: 20.51vw;
        height: 20.51vw;
        background: #FFFFFF;
        border-color: var(--main-color);
    }

    .top-recruit__badge-text {
        font-size: 3.59vw;
        line-height: 5.64vw;
        letter-spacing: .05em;
        color: var(--text-color);
        padding: 0;
    }

    .top-recruit__badge-text::before,
    .top-recruit__badge-text::after {
        display: none;
    }

    .top-recruit__badge-text .-sub {
        font-size: 4.62vw;
        color: var(--main-color);
    }

    .top-recruit__ttl {
        /* 1行維持のため左右にはみ出し余裕を確保 */
        margin: -4.62vw -2.56vw 0;
        font-size: 7.18vw;
        letter-spacing: .09em;
        color: var(--text-color);
        text-align: center;
        white-space: nowrap;
    }

    .top-recruit__ttl .-marker {
        /* %指定はbg箱基準でズレるためpx(vw)換算で指定 */
        background: linear-gradient(transparent calc(100% - 3.59vw), #FFDAC2 calc(100% - 3.59vw), #FFDAC2 calc(100% - 0.77vw), transparent calc(100% - 0.77vw));
        padding: 0 1vw;
        /* PCの左はみ出し分を打ち消し */
        margin-left: 0;
    }

    .top-recruit__lead {
        margin-top: 4.1vw;
        font-size: 3.33vw;
        line-height: 4.87vw;
        color: var(--sub-text-color);
        text-align: left;
    }

    .top-recruit__lead .-br-sp {
        display: inline;
    }

    .top-recruit__btn {
        width: 61.54vw;
        height: 14.36vw;
        margin: 8.21vw auto 0;
        background: #FFFFFF;
        border: 2px solid var(--text-color);
        border-radius: 2.56vw;
    }

    .top-recruit__btn .-text {
        font-size: 4.1vw;
    }

    .top-recruit__btn .-arrow {
        right: 5.13vw;
        width: 3.85vw;
    }

    /* ============================================================
       SP：CONTACT US
    ============================================================ */
    .top-contact {
        /* 下余白はフッター側のpadding-topに集約（二重取り防止） */
        padding: 17.95vw 0 0;
    }

    .top-contact__ttl {
        font-size: 11.28vw;
    }

    .top-contact__ttl::before {
        /* 白マスクはタイトル+左右余白（カード枠線をタイトル脇で隠す） */
        left: -2.05vw;
        right: -2.05vw;
        height: 5.38vw;
    }

    .top-contact__card {
        margin-top: -6.67vw;
        /* 枠線はstroke内側描画のためborder4px分を差し引く */
        padding: 9.23vw 4.1vw 9.23vw;
        border-radius: 5.13vw;
    }

    .top-contact__lead {
        font-size: 4.1vw;
        line-height: 5.64vw;
    }

    .top-contact__lead .-br-sp {
        display: inline;
    }

    .top-contact__btns {
        display: block;
        margin-top: 6.15vw;
    }

    .top-contact__btn-block {
        width: 100%;
    }

    .top-contact__btn-block.-mail::before,
    .top-contact__btn-block.-estimate::before {
        content: '';
        position: static;
        display: block;
        width: 100%;
        height: 0;
        border-left: none;
        border-top: 1px solid #CFCFCF;
        margin: 5.13vw 0 3.59vw;
    }

    .top-contact__label {
        gap: 2.05vw;
        font-size: 3.59vw;
        line-height: 7.95vw;
    }

    .top-contact__btn-block.-estimate .top-contact__label {
        font-size: 3.85vw;
    }

    .top-contact__label::before,
    .top-contact__label::after {
        width: 2px;
        height: 3.85vw;
    }

    .top-contact__label .-num {
        font-size: 4.62vw;
    }

    .top-contact__btn-block.-tel .top-contact__tel-box {
        width: 100%;
        height: auto;
        margin-top: 0;
        padding: 0;
        background: transparent;
        border-radius: 0;
    }

    .top-contact__tel-btn {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0;
        width: 100%;
        height: 15.38vw;
        margin-top: 0;
        background: #FFFFFF;
        border: 2px solid #000000;
        border-radius: 2.05vw;
    }

    .top-contact__tel-btn .-icon {
        position: absolute;
        left: 5.13vw;
        top: 50%;
        transform: translateY(-50%);
        width: 7.69vw;
    }

    .top-contact__tel-btn .-num {
        font-size: 3.85vw;
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 700;
    }

    .top-contact__tel-btn::after {
        content: '';
        position: absolute;
        right: 5.13vw;
        top: 50%;
        transform: translateY(-50%);
        width: 4.36vw;
        height: 3.85vw;
        background: url(image/icon_arrow_dark.svg) no-repeat center / contain;
    }

    .top-contact__hours {
        margin-top: 2.05vw;
        font-size: 3.33vw;
        line-height: 4.1vw;
        text-align: left;
        padding-left: 5.13vw;
    }

    .top-contact__btn-block.-mail,
    .top-contact__btn-block.-estimate {
        margin-top: 0;
    }

    .top-contact__btn {
        width: 100%;
        height: 15.38vw;
        margin-top: 0;
        border-radius: 2.05vw;
    }

    .top-contact__btn .-icon {
        left: 5.13vw;
        width: 6.41vw;
    }

    .top-contact__btn .-text {
        font-size: 3.85vw;
        padding-right: 0;
    }

    .top-contact__btn .-arrow {
        right: 5.13vw;
        width: 4.36vw;
    }

    /* ============================================================
       SP：フッター
    ============================================================ */
    .site-footer__inner {
        display: block;
        padding: 15.38vw 0 0;
        text-align: center;
    }

    .site-footer__info {
        align-items: center;
    }

    /* SPは【グループ会社】→【主要取引メーカー】の順（DOM順どおり） */
    .site-footer__group {
        order: 1;
    }

    .site-footer__makers {
        order: 2;
        margin-top: 8.21vw;
    }

    .site-footer__partner-list {
        order: 3;
    }

    .site-footer__logo img {
        width: 67.03vw;
    }

    .site-footer__company {
        margin-top: 4.87vw;
        font-size: 4.1vw;
    }

    .site-footer__address {
        margin-top: 2.05vw;
        font-size: 3.59vw;
        line-height: 5.13vw;
    }

    .site-footer__tel {
        margin-top: 1.54vw;
        font-size: 3.59vw;
        line-height: 5.13vw;
    }

    .site-footer__tel-space {
        display: none;
    }

    .site-footer__tel-fax {
        display: block;
    }

    .site-footer__group {
        margin-top: 8.21vw;
    }

    .site-footer__group-ttl {
        font-size: 4.1vw;
        font-weight: 700;
        margin-left: 0;
    }

    .site-footer__group-list {
        display: block;
        margin-top: 3.59vw;
    }

    .site-footer__group-list li + li {
        margin-top: 2.05vw;
    }

    .site-footer__group-list a {
        justify-content: center;
        gap: 2.56vw;
        font-size: 3.59vw;
    }

    .site-footer__blank-icon {
        width: 3.08vw;
        height: 3.08vw;
    }

    .site-footer__makers {
        margin-top: 8.21vw;
    }

    .site-footer__makers-ttl {
        font-size: 4.1vw;
        font-weight: 700;
        margin-left: 0;
    }

    .site-footer__makers-list {
        display: block;
        margin-top: 3.08vw;
        font-size: 3.59vw;
    }

    .site-footer__makers-list li + li {
        margin-left: 0;
        padding-left: 0;
        margin-top: 1.54vw;
    }

    .site-footer__makers-list li + li::before {
        display: none;
    }

    .site-footer__nav {
        display: none;
    }

    /* 提携ロゴはPC打ち消しに勝つよう.sp付き同詳細度で指定 */
    .site-footer__partner-list.sp {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 5.13vw;
        margin-top: 10.26vw;
    }

    .site-footer__partner-list img {
        height: 12.82vw;
    }

    .site-footer__banner-area {
        margin-top: 8.21vw;
    }

    .site-footer__banner-line {
        max-width: 89.74vw;
        margin: 0 auto;
    }

    .site-footer__banner-list {
        display: block;
        padding: 8.21vw 0 0;
    }

    .site-footer__banner-list li {
        text-align: center;
    }

    .site-footer__banner-list li + li {
        margin-top: 4.1vw;
    }

    .site-footer__banner-list img {
        height: 14.36vw;
    }

    .site-footer__sp-links {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 4.1vw;
        padding: 10.26vw 0 4.1vw;
        z-index: 1;
    }

    .site-footer__sp-links a {
        font-size: 3.59vw;
        font-weight: 500;
        color: var(--text-color);
    }

    .site-footer__sp-links-line {
        display: block;
        height: 3.59vw;
        border-left: 1px solid #A7A7A7;
    }

    .site-footer__copyright p {
        /* 下は追従バー高さ17.95vw分の余白を追加（バーに隠れないように） */
        padding: 3.33vw 0 21.28vw;
        font-size: 3.08vw;
    }

    /* ============================================================
       SP：下追従バー
    ============================================================ */
    .sp-fixed-bar {
        position: fixed;
        left: 0;
        bottom: 0;
        width: 100%;
        display: flex;
        background: #FFFFFF;
        z-index: 900;
        transform: translateY(110%);
        opacity: 0;
        transition: transform .4s ease, opacity .4s ease;
    }

    .sp-fixed-bar.is-show {
        transform: translateY(0);
        opacity: 1;
    }

    .sp-fixed-bar__item {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2.05vw;
        width: 33.34%;
        height: 17.95vw;
    }

    .sp-fixed-bar__item.-tel {
        background: #D9D9D9;
    }

    .sp-fixed-bar__item.-contact {
        background: var(--main-color-pale);
    }

    .sp-fixed-bar__item.-estimate {
        background: var(--main-color-light);
    }

    .sp-fixed-bar__icon {
        width: 6.67vw;
        height: 6.67vw;
        object-fit: contain;
    }

    .sp-fixed-bar__item.-contact .sp-fixed-bar__icon {
        width: 6.41vw;
        height: 6.41vw;
    }

    .sp-fixed-bar__item.-estimate .sp-fixed-bar__icon {
        width: 5.18vw;
        height: 5.74vw;
    }

    .sp-fixed-bar__text {
        font-size: 3.33vw;
        font-weight: 700;
        letter-spacing: .09em;
        line-height: 1.2;
        color: #FFFFFF;
    }

    .sp-fixed-bar__item.-tel .sp-fixed-bar__text {
        color: var(--text-color);
    }

    /* ============================================================
       SP：下層サービス共通FV
    ============================================================ */
    .service-fv {
        height: 92.31vw;
    }

    .service-fv__cont {
        padding: 16.15vw 5.13vw 0;
        width: 100%;
        /* .wrapのmax-width90%とpaddingが二重に幅を狭めるため打ち消し */
        max-width: 100%;
    }

    .service-fv__sub {
        /* 実機フォント描画差の余裕を見た値＋nowrapで1行固定 */
        font-size: 4vw;
        line-height: 6.67vw;
        white-space: nowrap;
    }

    .service-fv__deco {
        margin-top: 0.77vw;
    }

    .service-fv__deco-line {
        width: 14.36vw;
        height: 2px;
        margin-bottom: 1px;
    }

    .service-fv__deco-wave {
        width: 64.36vw;
        margin-left: 0.51vw;
    }

    .service-fv__catch {
        margin-top: 3.08vw;
        font-size: 7.69vw;
        line-height: 9.23vw;
        letter-spacing: .06em;
    }

    .service-fv__band {
        border-radius: 1.03vw;
        padding: 0.77vw 2.56vw;
    }

    .service-fv__band.-second {
        /* SPは帯の外に「。」が続くためinline-blockに戻す */
        display: inline-block;
        vertical-align: bottom;
        margin-top: 2.56vw;
        /* 帯右paddingを広げ、その白地に「。」を乗せる */
        padding-right: 5.13vw;
    }

    .service-fv__band .-ls1 {
        letter-spacing: -0.32em;
    }

    .service-fv__band .-ls2 {
        letter-spacing: -0.14em;
    }

    .service-fv__catch .-period-pc {
        display: none;
    }

    .service-fv__catch .-period-sp {
        display: inline;
        font-weight: 900;
        color: var(--text-color);
        margin-left: -5.64vw;
        position: relative;
        top: -0.51vw;
    }

    .service-fv__lead {
        margin-top: 5.13vw;
        font-size: 3.59vw;
        line-height: 5.13vw;
    }

    /* SP：パンくず */
    .service-fv__breadcrumb {
        padding: 3.08vw 5.13vw;
        font-size: 3.08vw;
        line-height: 5.64vw;
    }

    .service-fv__breadcrumb .wrap {
        width: 100%;
        max-width: 100%;
    }

    /* ============================================================
       SP：お悩み
    ============================================================ */
    .service_worry-sec {
        padding: 14.87vw 0 20.51vw;
    }

    .service_worry-sec .worry_head .worry_ttl {
        font-size: 4.62vw;
        line-height: 1.55;
        /* .18emだと2行目「こんなお悩みありませんか？」が375px実機で折れるため詰める */
        letter-spacing: .13em;
    }

    .service_worry-sec .worry_head .worry_ttl .-large {
        font-size: 7.18vw;
    }

    .service_worry-sec .worry_head .worry_moyamoya {
        top: -4.41vw;
        right: 10.92vw;
        width: 5.2vw;
    }

    .service_worry-sec .worry_list {
        flex-direction: column;
        gap: 5.13vw;
        margin-top: 10.77vw;
        width: 89.74vw;
    }

    .service_worry-sec .worry_list .item {
        width: 100%;
        border-radius: 2.56vw;
        padding: 5.13vw 5.13vw 6.41vw;
    }

    .service_worry-sec .worry_list .item .item_head {
        gap: 4.1vw;
    }

    .service_worry-sec .worry_list .item .item_icon {
        width: 15.38vw;
    }

    .service_worry-sec .worry_list .item .item_icon .item_icon_moyamoya {
        /* left:autoはPCのleft継承の解除 */
        top: -2.67vw;
        left: auto;
        right: -1.46vw;
        width: 4.82vw;
    }

    .service_worry-sec .worry_list .item .item_head .item_ttl {
        font-size: 4.1vw;
        line-height: 5.64vw;
    }

    .service_worry-sec .worry_list .item .item_head .item_ttl .-strong {
        font-size: 4.62vw;
        background-size: 100% 1.54vw;
        background-position: left bottom 0.51vw;
    }

    .service_worry-sec .worry_list .item .item_line {
        margin-top: 4.1vw;
    }

    .service_worry-sec .worry_list .item .item_text {
        margin-top: 4.1vw;
        font-size: 3.33vw;
        line-height: 5.13vw;
    }

    /* ============================================================
       SP：解決宣言
    ============================================================ */
    .service_solution-sec {
        padding-bottom: 17.95vw;
    }

    .service_solution-sec .solution_arrow {
        margin-top: -7.69vw;
    }

    .service_solution-sec .solution_arrow img {
        width: 25.64vw;
    }

    .service_solution-sec .solution_body .solution_catch {
        margin-top: 7.69vw;
        font-size: 5.13vw;
        line-height: 1.85;
    }

    .service_solution-sec .solution_body .solution_catch .-large {
        font-size: 8.21vw;
        line-height: 1.2;
    }

    .service_solution-sec .solution_body .solution_catch .solution_kira {
        /* topは画像のベースラインずれ込み分の補正値 */
        top: -5.95vw;
        right: -3.46vw;
        width: 5.23vw;
        height: 5.97vw;
    }

    .service_solution-sec .solution_body .solution_text {
        margin-top: 4.62vw;
        font-size: 3.59vw;
        line-height: 1.5;
    }

    .service_solution-sec .solution_body .solution_text .-br-sp,
    .service_solution-sec .solution_body .solution_lead .-br-sp {
        display: inline;
    }

    .service_solution-sec .solution_body .solution_strong {
        margin-top: 3.59vw;
        font-size: 4.62vw;
        line-height: 1.5;
    }

    .service_solution-sec .solution_body .solution_strong .-ul {
        /* PCのpx値継承の打ち消し */
        padding: 0 3.2vw 0.51vw 2.92vw;
        margin: 0 -3.2vw 0 -2.92vw;
        background-position: left bottom 0.18vw;
    }

    .service_solution-sec .solution_body .solution_lead {
        margin-top: 6.41vw;
        font-size: 3.85vw;
        line-height: 1.6;
    }

    .service_solution-sec .solution_body .solution_lead .-large {
        font-size: 5.13vw;
        line-height: 1.4;
    }

    /* ============================================================
       SP：REASON
    ============================================================ */
    .service_reason-sec {
        background-size: auto 100.51vw;
        padding-top: 15.38vw;
    }

    .service_reason-sec .reason_head .reason_en {
        font-size: 4.62vw;
    }

    .service_reason-sec .reason_head .reason_ttl {
        margin-top: 1.79vw;
        font-size: 6.67vw;
        line-height: 1.5;
        padding: 0 5.13vw;
    }

    .service_reason-sec .reason_list {
        flex-direction: column;
        gap: 10.26vw;
        margin-top: 10.26vw;
        width: 89.74vw;
    }

    .service_reason-sec .reason_list .item {
        width: 100%;
        padding: 6.41vw 5.13vw 8.21vw;
    }

    .service_reason-sec .reason_list .item::before {
        /* SP専用svg（山の比率をSPカード実寸に合わせて生成）。下はシャドウのブラー分の余白 */
        inset: -3.59vw -3.59vw -8.72vw;
        background-image: url(image/service_reason_card_bg_sp.svg);
    }

    .service_reason-sec .reason_list .item .item_num {
        gap: 2.05vw;
        font-size: 3.59vw;
    }

    .service_reason-sec .reason_list .item .item_num .-num {
        font-size: 7.69vw;
    }

    .service_reason-sec .reason_list .item .item_body .item_head {
        gap: 3.28vw;
        margin-top: 1.03vw;
    }

    .service_reason-sec .reason_list .item .item_body .item_head .item_icon {
        width: 17.95vw;
        height: 17.95vw;
    }

    .service_reason-sec .reason_list .item .item_body .item_head .item_icon img {
        width: 8.97vw;
        height: 9.74vw;
    }

    .service_reason-sec .reason_list .item .item_body .item_head .item_ttl {
        /* 「“部分リフォーム”に特化した」が折れないサイズ */
        font-size: 4vw;
        line-height: 1.5;
    }

    .service_reason-sec .reason_list .item .item_body .item_line {
        margin-top: 4.62vw;
    }

    .service_reason-sec .reason_list .item .item_body .item_text {
        margin-top: 4.62vw;
        font-size: 3.33vw;
        line-height: 1.5;
    }

    /* ============================================================
       SP：対応ラインナップ
    ============================================================ */
    .service_lineup-sec {
        padding-top: 17.95vw;
    }

    .service_lineup-sec .lineup_head .lineup_en {
        font-size: 4.62vw;
    }

    .service_lineup-sec .lineup_head .lineup_ttl {
        margin-top: 1.79vw;
        font-size: 8.21vw;
        line-height: 1.3;
    }

    .service_lineup-sec .lineup_list {
        flex-wrap: wrap;
        gap: 6.41vw 4.1vw;
        margin-top: 8.21vw;
        width: 89.74vw;
    }

    .service_lineup-sec .lineup_list .item {
        width: 42.82vw;
    }

    .service_lineup-sec .lineup_list .item .item_img img {
        height: 42.82vw;
        border-radius: 2.56vw;
    }

    .service_lineup-sec .lineup_list .item .item_img .item_label {
        bottom: 5.13vw;
        border-radius: 0 1.54vw 1.54vw 0;
        padding: 1.28vw 3.08vw;
        font-size: 3.85vw;
        line-height: 1.3;
    }

    .service_lineup-sec .lineup_list .item .item_img .item_label .-small {
        font-size: 2.82vw;
    }

    .service_lineup-sec .lineup_list .item .item_text {
        margin-top: 3.08vw;
        font-size: 3.33vw;
        line-height: 1.5;
    }

    .service_lineup-sec .lineup_list .item .item_text .-br-sp {
        display: inline;
    }

    /* ============================================================
       SP：施工事例（スライダー）
       画像・タグ・矢印・ピル等はTOPのSPスタイル（top-case__*）をそのまま使用
    ============================================================ */
    .service_works-sec {
        padding-top: 17.95vw;
    }

    .service_works-sec .works_head .works_en {
        font-size: 4.62vw;
    }

    .service_works-sec .works_head .works_ttl {
        margin-top: 1.79vw;
        font-size: 8.21vw;
        line-height: 1.3;
    }

    .service_works-sec .works_slider_area {
        width: 89.74vw;
        margin-top: 6.15vw;
    }

    /* TOP流用の差分：スライド内はカード全幅・PCの内側paddingを打ち消し */
    .service_works-sec .works_slider_area .top-case__box {
        width: 100%;
        margin: 0;
        padding: 0 5.13vw 8.21vw;
    }

    .service_works-sec .works_slider_area .top-case__imgs {
        padding: 0;
    }

    .service_works-sec .works_slider_area .top-case__body {
        padding: 0;
    }

    .service_works-sec .works_slider_area .top-case__cat {
        min-width: 0;
        padding: 0 4.1vw;
    }

    .service_works-sec .works_slider_area .slick-slide img.pc {
        /* slick.cssの .slick-slide img { display:block } が .pc の非表示に勝つため明示打ち消し */
        display: none;
    }

    .service_works-sec .works_slider_area .slick-slide img.sp {
        display: block;
    }

    .service_works-sec .works_slider_area .top-case__body .item_period,
    .page_works_single-sec .top-case__body .item_period {
        gap: 2.56vw;
        margin-top: 3.59vw;
    }

    .service_works-sec .works_slider_area .top-case__body .item_period .item_period_label,
    .page_works_single-sec .top-case__body .item_period .item_period_label {
        width: 12.82vw;
        height: 7.18vw;
        border-radius: 1.03vw;
        font-size: 3.33vw;
    }

    .service_works-sec .works_slider_area .top-case__body .item_period .item_period_text,
    .page_works_single-sec .top-case__body .item_period .item_period_text {
        font-size: 3.85vw;
    }

    .service_works-sec .works_slider_area .slick-arrow {
        width: 10.26vw;
        height: 10.26vw;
        background-size: 3.23vw 3.38vw;
    }

    .service_works-sec .works_slider_area .slick-prev {
        left: -3.85vw;
    }

    .service_works-sec .works_slider_area .slick-next {
        right: -3.85vw;
    }

    .service_works-sec .works_slider_area .slick-dots {
        gap: 5.13vw;
        margin-top: 6.15vw;
    }

    .service_works-sec .works_slider_area .slick-dots li,
    .service_works-sec .works_slider_area .slick-dots li button {
        width: 3.33vw;
        height: 3.33vw;
    }

    .service_works-sec .works_more {
        margin-top: 10.26vw;
    }

    /* ============================================================
       SP：サービス共通FAQ（QAバーはTOPのSPスタイルをそのまま使用）
    ============================================================ */
    .service_faq-sec {
        padding-top: 17.95vw;
    }

    .service_faq-sec .faq_head .faq_en {
        font-size: 4.62vw;
    }

    .service_faq-sec .faq_head .faq_ttl {
        margin-top: 1.79vw;
        font-size: 8.21vw;
        line-height: 1.35;
    }

    .service_faq-sec .faq_head .faq_ttl .-small {
        font-size: 4.62vw;
        line-height: 1.6;
    }

    /* ============================================================
       SP：内部共通CTA（カード内はTOPのSPスタイルをそのまま使用）
    ============================================================ */
    .page_cta-sec {
        margin-top: 17.95vw;
        padding: 15.38vw 0 0;
    }

    .page_cta-sec .cta_ttl {
        /* -br-spの2行折りでカード角丸との接触を回避 */
        font-size: 6.41vw;
        line-height: 1.4;
        /* 末尾「。」のem右余白ぶん負marginで詰め、インクの中心をカード中心に合わせる */
        margin-right: -2.31vw;
    }

    .page_cta-sec .cta_ttl .-br-sp {
        display: inline;
    }

    .page_cta-sec .cta_ttl::before {
        /* 白帯は枠線が通る2行目の中央に置く */
        top: 75%;
        height: 2.05vw;
        left: -2.82vw;
        right: -0.51vw;
    }

    /* TOP流用の差分：見出しの重なりを内部見出しサイズに合わせる */
    .page_cta-sec .top-contact__card {
        /* 枠線は見出しに重なる高さを通す（paddingでリード位置は維持） */
        margin-top: -3.92vw;
        padding: 10.59vw 5.13vw 8.21vw;
    }

    .page_cta-sec .top-contact__lead {
        /* PC用px指定の詳細度に勝つようTOP SPと同値を明示 */
        font-size: 4.1vw;
        line-height: 5.64vw;
        text-align: left;
    }

    .page_cta-sec .top-contact__lead .-br-sp {
        display: inline;
    }

    .page_cta-sec .top-contact__lead .-br-pc {
        display: none;
    }

    /* ---- 内装工事ページ（page_naisou）のSP個別調整 ---- */

    .page_naisou .service_worry-sec .worry_head .worry_moyamoya {
        /* 1行目の文字長に合わせた再計算値（共通値だと文字から離れる） */
        right: 23.89vw;
    }

    /* ---- クロス張り替えページ（page_cross）のSP個別調整 ---- */

    .page_cross .service_worry-sec .worry_head .worry_moyamoya {
        /* 1行目の文字長に合わせた再計算値 */
        right: 13.45vw;
    }

    /* ---- 下層共通FV ---- */

    .common-fv {
        height: 64.1vw;
    }

    .common-fv__cont {
        /* テキストは写真の垂直中央 */
        padding: 22.94vw 5.13vw 0;
        width: 100%;
        /* .wrapのmax-width90%とpaddingが二重に幅を狭めるため打ち消し（サービスFVと同対応） */
        max-width: 100%;
    }

    .common-fv__en {
        font-size: 4.62vw;
    }

    .common-fv__ttl {
        margin-top: 2.05vw;
        font-size: 7.69vw;
        line-height: 9.23vw;
    }

    .common-fv__band {
        border-radius: 1.03vw;
        padding: 0.77vw 2.56vw;
    }

    /* ---- よくある質問ページ（カテゴリタブ） ---- */

    .page_faq-sec {
        padding: 14.87vw 0 0;
    }

    .page_reason .top-reason {
        padding-bottom: 0;
    }

    .page_faq-sec .faq_tabs,
    .page_works-sec .works_tabs {
        gap: 2.05vw;
    }

    .page_faq-sec .faq_tabs .faq_tab,
    .page_works-sec .works_tabs .works_tab {
        padding: 2.05vw 4.62vw;
        border-width: 1px;
        border-radius: 7.69vw;
        font-size: 3.59vw;
    }

    .page_faq-sec .faq_panels {
        margin-top: 8.97vw;
    }

    /* ---- 施工事例 一覧・詳細 ---- */

    .page_works-sec {
        padding: 14.87vw 0 0;
    }

    .page_works-sec .works_list {
        gap: 6.15vw 3.59vw;
        margin-top: 8.97vw;
    }

    .page_works-sec .works_list .item {
        /* .wrap 90vw内で2列（(90 - 3.59) / 2） */
        width: 43.2vw;
    }

    .page_works-sec .works_list .item .item_img {
        border-radius: 2.05vw;
    }

    .page_works-sec .works_list .item .item_img img {
        height: 27.69vw;
    }

    .page_works-sec .works_list .item .item_body {
        margin-top: 3.08vw;
    }

    .page_works-sec .works_list .item .top-case__cat {
        /* 2列カード内では全幅ピルになるため縮小（top-case__catのSP値を上書き） */
        min-width: 0;
        height: 6.15vw;
        padding: 0 2.05vw;
        border-width: 1px;
        font-size: 3.08vw;
    }

    .page_works-sec .works_list .item .item_ttl {
        margin-top: 2.05vw;
        font-size: 3.59vw;
    }

    .page_works-sec .works_pager {
        margin-top: 10.26vw;
    }

    .page_works-sec .works_pager ul.page-numbers {
        gap: 2.05vw;
    }

    .page_works-sec .works_pager ul.page-numbers li a,
    .page_works-sec .works_pager ul.page-numbers li span {
        width: 10.26vw;
        height: 10.26vw;
        border-width: 1px;
        border-radius: 2.05vw;
        font-size: 3.59vw;
    }

    .page_works-sec .works_none {
        margin-top: 10.26vw;
        font-size: 3.59vw;
    }

    .page_works_single-sec {
        padding: 14.87vw 0 0;
    }

    .page_works_single-sec .top-case__box {
        margin-top: 0;
        padding-bottom: 8.21vw;
    }

    .page_works_single-sec .back_btn {
        margin: 10.26vw auto 0;
    }

    /* ---- 採用情報 一覧・詳細 ---- */

    .page_recruit-sec {
        padding: 14.87vw 0 0;
    }

    .page_recruit-sec .recruit_list {
        gap: 4.1vw;
    }

    .page_recruit-sec .recruit_list .item {
        display: block;
        padding: 6.15vw 5.13vw;
        border-radius: 2.56vw;
    }

    .page_recruit-sec .recruit_list .item .item_head {
        /* SPはピル上・職種名下の縦積み */
        display: block;
    }

    .page_recruit-sec .recruit_list .item .item_ttl {
        margin-top: 2.05vw;
        font-size: 4.62vw;
    }

    .page_recruit-sec .recruit_list .item .item_text {
        margin-top: 3.08vw;
        font-size: 3.59vw;
        line-height: 5.13vw;
    }

    .page_recruit-sec .recruit_list .item .item_btn {
        margin: 5.13vw auto 0;
    }

    .page_recruit-sec .recruit_none {
        font-size: 3.59vw;
    }

    .page_recruit_single-sec {
        padding: 14.87vw 0 0;
    }

    .page_recruit_single-sec .single_head {
        display: block;
    }

    .page_recruit_single-sec .single_ttl {
        margin-top: 2.05vw;
        font-size: 5.64vw;
    }

    .page_recruit_single-sec .recruit_table {
        margin-top: 6.15vw;
    }

    .page_recruit_single-sec .recruit_table th,
    .page_recruit_single-sec .recruit_table td {
        padding: 4.1vw 2.05vw;
        font-size: 3.59vw;
        line-height: 1.7;
    }

    .page_recruit_single-sec .recruit_table th {
        width: 26vw;
    }

    .page_recruit_single-sec .recruit_apply_btn {
        width: 80vw;
        height: 14.36vw;
        margin: 8.97vw auto 0;
        border-radius: 2.56vw;
    }

    .page_recruit_single-sec .recruit_apply_btn .-text {
        font-size: 4.1vw;
    }

    .page_recruit_single-sec .recruit_apply_btn .-arrow {
        right: 5.13vw;
        width: 4.1vw;
    }

    /* 個人情報保護方針・サイトマップ：下padding0（PCと同仕様） */
    .page_privacy .common_page_wrap {
        padding-bottom: 0;
    }

    .page-id-27 .common_page_wrap {
        padding-bottom: 0;
    }

}

/* ============================================================
   hover演出（タッチデバイスのhover固着防止のため集約）
============================================================ */
@media (hover: hover) {

    /* ロゴ・バナー・リンク類 */
    .site-header__logo a:hover,
    .site-footer__banner-list a:hover,
    .site-footer__partner-list a:hover {
        opacity: .7;
    }

    .site-header__menu > li > a:hover {
        color: var(--main-color);
    }

    .site-header__menu-arrow {
        transition: border-color .3s;
    }

    .site-header__menu > li > a:hover .site-header__menu-arrow {
        border-color: var(--main-color);
    }

    /* ドロップダウン項目 */
    .site-header__dropdown-list > li > a:hover {
        background: #FFF2E9;
    }

    .site-header__cta:hover,
    .top-mv__cta:hover,
    .top-contact__btn.-estimate-btn:hover,
    .top-contact__btn.-contact:hover {
        background: #FFA76E;
    }

    /* サービスカード：白マスク＋画像ズーム＋円アイコン反転 */
    .top-service__item a:hover .top-service__item-img img {
        transform: scale(1.08);
    }

    .top-service__item a:hover .top-service__item-img::after {
        background: rgba(255, 255, 255, 0.3);
    }

    .top-service__item a:hover .top-service__item-more-circle::after {
        opacity: 1;
    }

    /* もっとみる・採用ボタン：色反転 */
    .common-more-btn:hover,
    .top-recruit__btn:hover {
        background: var(--text-color);
        border-color: var(--text-color);
    }

    .common-more-btn:hover .-text,
    .top-recruit__btn:hover .-text {
        color: #FFFFFF;
    }

    .common-more-btn:hover .-arrow,
    .top-recruit__btn:hover .-arrow {
        filter: brightness(0) invert(1);
    }

    /* フッターリンク */
    .site-footer__group-list a:hover,
    .site-footer__nav-list a:hover,
    .site-footer__nav-child a:hover {
        opacity: .7;
    }

    /* 施工事例スライダー矢印 */
    .service_works-sec .works_slider_area .slick-arrow:hover {
        opacity: .7;
    }

    /* よくある質問・施工事例：カテゴリタブ（アクティブと同じ塗りに反転） */
    .page_faq-sec .faq_tabs .faq_tab:hover,
    .page_works-sec .works_tabs .works_tab:hover {
        background: var(--main-color);
        color: #FFFFFF;
    }

    /* 施工事例一覧：カード（画像ズーム）・ページャ（色反転） */
    .page_works-sec .works_list .item:hover .item_img img {
        transform: scale(1.08);
    }

    .page_works-sec .works_pager ul.page-numbers li a:hover {
        background: var(--text-color);
        border-color: var(--text-color);
        color: #FFFFFF;
    }

    /* 採用情報：一覧カードhoverで内部ボタンを色反転・応募ボタンは明るいオレンジ */
    .page_recruit-sec .recruit_list .item:hover .common-more-btn {
        background: var(--text-color);
        border-color: var(--text-color);
    }

    .page_recruit-sec .recruit_list .item:hover .common-more-btn .-text {
        color: #FFFFFF;
    }

    .page_recruit-sec .recruit_list .item:hover .common-more-btn .-arrow {
        filter: brightness(0) invert(1);
    }

    .page_recruit_single-sec .recruit_apply_btn:hover {
        background: #FFA76E;
    }
}