/* ------------------------------------------- */
/* 基本設定 (Reset & Base) */
/* ------------------------------------------- */
html {
    scroll-behavior: smooth;
}

body,
h1,
h2,
h3,
p,
ul,
dl,
dt,
dd,
figure {
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Yu Gothic', '游ゴシック', YuGothic, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, sans-serif;
    font-size: 18px;
    line-height: 1.8;
    color: #333;
    background-color: #f9f8f6;
}

* {
    box-sizing: border-box;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
    border-radius: 8px;
}

a {
    text-decoration: none;
    color: #4acb12;
}

ul {
    list-style: none;
}

figcaption {
    font-size: 14px;
    color: #666;
    text-align: right;
    margin-top: 8px;
}


/* ------------------------------------------- */
/* 全体レイアウト (Wrapper & Container) */
/* ------------------------------------------- */
.container {
    max-width: 960px;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
}

section {
    padding: 60px 0;
}

#jobs {
    padding-top: 0;
}


/* ------------------------------------------- */
/* 見出しスタイル */
/* ------------------------------------------- */
.section-title {
    font-size: 32px;
    text-align: center;
    margin-bottom: 40px;
    padding-bottom: 10px;
    border-bottom: 2px solid #4acb12;
    font-weight: bold;
}

.h3-heading {
    margin-bottom: 30px;
    text-align: center;
}

/* ------------------------------------------- */
/* ヒーローセクション & 共通ボタン */
/* ------------------------------------------- */
.hero {
    background-image: url('../img/mv_pc2.png');
    background-size: cover;
    color: #fff;
    min-height: 500px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 40px 5%;
    position: relative;

}

.hero-content {
    max-width: 600px;
    position: absolute;
    bottom: 36%;
    left: 19vw;
}

.hero h1,
.hero p {
    text-shadow: 0px 2px 8px rgba(0, 0, 0, 0.8);
    text-align: left;
}

.hero h1 {
    font-size: 46px;
    font-weight: bold;
    margin-bottom: 16px;
    line-height: 1.4;
}

.hero h1 span {
    font-size: 26px;
}

.hero p {
    font-size: 20px;
}

.cta-button {
    display: inline-block;
    background-color: #4acb12;
    color: #fff;
    font-size: 20px;
    padding: 18px 45px;
    font-weight: bold;
    border-radius: 50px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    transition: background-color 0.3s, transform 0.3s;
}

.cta-button:hover {
    background-color: #41b210;
    transform: translateY(-2px);
}

.cta-button-no {
    display: inline-block;
    background-color: #aaa;
    color: #fff;
    font-size: 20px;
    padding: 18px 45px;
    font-weight: bold;
    border-radius: 50px;
    transition: background-color 0.3s, transform 0.3s;
}

/* ▼▼▼ 追加箇所 ▼▼▼ */
/* ヒーロー内の静的ボタンを画面中央に配置するスタイル */
.hero-static-cta {
    position: absolute;
    bottom: 80px;
    left: 19vw;
}

/* ▲▲▲ 追加箇所 ▲▲▲ */

.button-wrapper {
    text-align: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 25px;
}

/* 追従ボタンのスタイル */
#fixed-cta {
    position: fixed;
    bottom: 20px;
    left: 50%;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 20px);
    transition: opacity 0.4s, visibility 0.4s, transform 0.4s;
}

#fixed-cta.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%);
}


/* ------------------------------------------- */
/* お仕事紹介セクション */
/* ------------------------------------------- */
#about .container {
    text-align: center;
}

#about p {
    margin-bottom: 50px;
    text-align: left;
}

#about img {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

#about .lead-txt {
    font-size: 22px;
    font-weight: bold;
    text-align: center;
}

#about .top-container {
    display: flex;
    justify-content: center;
    gap: 40px;
}

#about .top-container p {
    text-align: left;
    margin-bottom: 20px;
}

#about .top-container figure {
    max-width: 320px;
    width: 100%;
}

#about .top-container p span {
    font-size: 20px;
    font-weight: bold;
}

.top-container {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
}

.top-container p {
    text-align: left;
    margin-bottom: 20px;
}

.top-container figure {
    max-width: 288px;
    width: 100%;
}

.top-container p span {
    font-size: 20px;
    font-weight: bold;
}

.description {
    background-color: #fec13e;
    color: #4c3333;
    font-weight: bold;
}

.description div {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.description p {
    font-size: 46px;
    font-weight: bold;
}

.description p span {
    font-size: 36px;
    font-weight: bold;
}

/* ------------------------------------------- */
/* 魅力ポイントセクション */
/* ------------------------------------------- */
.points-container {
    display: flex;
    justify-content: space-between;
    gap: 30px;
}

.point-item {
    flex: 1;
    background-color: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    text-align: center;
}

.point-item figure {
    margin-bottom: 15px;
}

.point-item h3 {
    font-size: 22px;
    color: #4acb12;
    margin-bottom: 10px;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}

/* ------------------------------------------- */
/* こんな方におすすめセクション */
/* ------------------------------------------- */
#recommend .container {
    display: flex;
    align-items: center;
    gap: 40px;
}

#recommend .recommend-text {
    flex: 1;
}

#recommend .recommend-image {
    flex: 1;
    text-align: center;
}

#recommend ul {
    background-color: #fff;
    padding: 30px 40px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}

#recommend li {
    padding-left: 1.5em;
    text-indent: -1.5em;
    margin-bottom: 15px;
}

#recommend li:last-child {
    margin-bottom: 0;
}

#recommend li::before {
    content: '✨';
    margin-right: 0.5em;
}

/* ------------------------------------------- */
/* 服装・身だしなみセクション */
/* ------------------------------------------- */

#clothes .lead-txt {
    text-align: center;
}

#clothes section {
    padding: 30px 0;
}

#clothes h3 {
    margin-bottom: 15px;
}

.clothes-box {
    display: flex;
    gap: 30px;
}

.clothes-box+.clothes-box {
    margin-top: 40px;
}

.clothes-box-image {
    max-width: 500px;
}

.clothes-box-list {
    list-style: disc;
    font-weight: bold;
}

.clothes-box-list li {
    margin: 0 0 20px 25px;
    line-height: 1.4;
}

.clothes-box-list li span.normal {
    font-size: 14px;
    font-weight: normal;
}

.clothes-box-image--2 {
    max-width: 500px;
}

.clothes-box-list--num {
    list-style: none;
}

.clothes-box-list--num li {
    margin-left: 0;
    padding-left: 1.4em;
    margin-bottom: 10px;
}

.clothes-box-list--num li span.num {
    margin-left: -1.5em;
    padding-right: 0.5em;
    font-size: 18px;
}

/* ------------------------------------------- */
/* よくある質問セクション */
/* ------------------------------------------- */
#faq {
    padding-bottom: 140px;
}

.faq-list dt {
    background-color: #f0f9ec;
    border-left: 3px solid #4acb12;
    padding: 10px 15px;
    font-weight: bold;
}

.faq-list dt::before {
    content: 'Q. ';
    color: #4acb12;
    font-weight: bold;
}

.faq-list dd {
    padding: 15px;
    margin-bottom: 20px;
    border-bottom: 1px dotted #ccc;
}

.faq-list dd::before {
    content: 'A. ';
    font-weight: bold;
}

.faq-list dd:last-of-type {
    margin-bottom: 0;
    border-bottom: none;
}

/* ------------------------------------------- */
/* 確認事項セクション */
/* ------------------------------------------- */
.note-list li {
    margin-left: 0;
    padding-left: 1.4em;
    margin-bottom: 10px;
}

.note-list li span.num {
    margin-left: -1.5em;
    padding-right: 0.5em;
    font-size: 18px;
}

/* ------------------------------------------- */
/* フッター */
/* ------------------------------------------- */
footer {
    background-color: #333;
    color: #fff;
    text-align: center;
    padding: 20px 0;
    font-size: 16px;
}

/* ------------------------------------------- */
/* 共通 */
/* ------------------------------------------- */
.red {
    color: #ff0000;
}

.bold {
    font-weight: bold !important;
}

.pc_none {
    display: none;
}

.sp_none {
    display: block;
}

/* ------------------------------------------- */
/* レスポンシブ対応 (ブレークポイント: 768px) */
/* ------------------------------------------- */
@media (max-width: 1100px) {
    .hero {
        background-position: center;
    }

    .hero-content {
        left: 4vw;
    }

    .hero-static-cta {
        left: 4vw;
    }

    .hero h1 span {
        font-size: clamp(18px, calc(20 / 768 * 100vw), 20px);
    }
}

@media (max-width: 768px) {
    .container {
        width: 100%;
        padding-left: 20px;
        padding-right: 20px;
    }

    section {
        padding: 40px 0;
    }

    #jobs {
        padding-top: 0;
    }

    .section-title {
        font-size: clamp(22px, calc(28 / 768 * 100vw), 28px);
        margin-bottom: 20px;
    }

    .hero {
        background-image: url('../img/mv.png');
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 40px 20px;
    }

    .hero-content {
        max-width: 100%;
        left: auto;
    }

    .hero h1,
    .hero p {
        text-align: center;
    }

    /* ▼▼▼ 追加箇所 ▼▼▼ */
    /* スマホでは静的ボタンの絶対位置指定を解除し、自然な流れで配置 */
    .hero-static-cta {
        transform: none;
        left: 0;
        right: 0;
        margin: auto;
        display: flex;
        justify-content: center;
        margin-top: 20px;
        bottom: 100px;
    }

    /* ▲▲▲ 追加箇所 ▲▲▲ */

    .hero h1 {
        font-size: clamp(28px, calc(36 / 768 * 100vw), 36px);
    }

    .hero p {
        font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
    }

    .cta-button {
        font-size: 18px;
        padding: 16px 35px;
        white-space: nowrap;
    }

    .points-container {
        flex-direction: column;
    }

    #recommend .container {
        flex-direction: column;
    }

    #recommend .recommend-image {
        margin-top: 30px;
    }

    #recommend ul {
        padding: 20px;
    }

    .pc_none {
        display: block;
    }

    .sp_none {
        display: none;
    }

    section {
        padding: 20px 0;
    }

    #about .lead-txt {
        font-size: clamp(17px, calc(22 / 768 * 100vw), 22px);
        margin-bottom: 30px;
    }

    .top-container p {
        font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
    }

    .top-container {
        gap: 20px;
    }

    .top-container figure {
        max-width: 45%;
    }

    #about .top-container p {
        margin-bottom: 10px;
    }

    #about .top-container p span {
        font-size: clamp(18px, calc(18 / 768 * 100vw), 20px);
    }

    .description p {
        font-size: 32px;
    }

    .description p span {
        font-size: 26px;
    }

    #points {
        margin-bottom: 30px;
    }

    #clothes .lead-txt {
        font-size: clamp(17px, calc(22 / 768 * 100vw), 22px);
    }

    .button-wrapper {
        gap: 20px;
        margin-bottom: 40px;
    }

    .button-item {
        max-width: calc((100% - 20px) / 2);
        width: 100%;
    }

    .button-item .cta-button {
        width: 100%;
    }

    .clothes-box {
        display: block;
    }

    .clothes-box-image {
        max-width: 100%;
        margin-bottom: 20px;
    }

    #faq {
        padding-bottom: 80px;
    }

    footer {
        font-size: clamp(14px, calc(16 / 768 * 100vw), 16px);
    }
}