/* --- [基礎設定] 前回のページのデザインを継承 --- */
body {
    margin: 0; padding: 0;
    background-color: #f5f5f0;
    color: #2d2d2d;
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    position: relative;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
    scroll-behavior: smooth;
}

/* --- [質感ノイズ] 不透明度0.04固定 --- */
body::before {
    content: ""; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
    opacity: 0.04; pointer-events: none; z-index: 9998;
}

/* --- [パンくずリスト] --- */
.breadcrumb-container { position: relative; padding: 85px 25px 20px; z-index: 10; }
.breadcrumbs { list-style: none; display: flex; align-items: center; padding: 0; margin: 0; font-size: 10px; letter-spacing: 0.05em; overflow-x: auto; white-space: nowrap; }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin: 0 10px; color: #ccc; }
.breadcrumbs a { text-decoration: none; color: #2d2d2d; opacity: 0.5; }

/* --- [ページタイトル] --- */
.page-header { padding: 20px 25px 40px; text-align: center; position: relative; }
.page-title { font-family: 'Noto Sans JP', sans-serif; font-weight: 600; font-size: 24px; letter-spacing: 0.1rem; margin: 0; color: #1a2a40; line-height: 1.6; }
.page-title span { display: block; font-size: 12px; font-family: 'Inter', sans-serif; letter-spacing: 0.3em; margin-top: 10px; opacity: 0.6; }

/* --- [目次ナビゲーション] --- */
.page-anchor-nav { max-width: 800px; margin: 0 auto 50px; padding: 0 30px; }

.anchor-list { list-style: none; padding: 25px; margin: 0; background-color: #fff; border: 1px solid #e0e0d8; border-radius: 4px; display: flex; flex-direction: column; gap: 12px; }
.anchor-list li { position: relative; padding-left: 20px; font-size: 15px; }
.anchor-list li::before { content: "→"; position: absolute; left: 0; color: #bda16b; font-weight: bold; }
.anchor-list a { text-decoration: none; color: #1a2a40; font-weight: 500; }

/* --- [レイアウト共通設定] --- */
main { position: relative; z-index: 1; }
section { position: relative; width: 100%; box-sizing: border-box; }
.content-inner-wrapper { max-width: 800px; margin: 0 auto; padding: 0 25px 100px; }
.info-block { margin-bottom: 80px; scroll-margin-top: 100px; }

/* セクション見出し */
.info-subtitle { font-family: 'Inter', 'Noto Sans JP', sans-serif; font-size: 20px; letter-spacing: 0.12em; color: #1a2a40; margin-bottom: 25px; border-bottom: 1px solid #dcdcdc; padding-bottom: 20px; text-align: center; }
.info-subtitle span { display: block; font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 400; letter-spacing: 0.15em; opacity: 0.5; margin-top: 10px; text-transform: uppercase; }

/* 「メルマガ・DMの配信停止について」見出しは、どの端末でも1行に収める */
#delivery .info-subtitle {
    white-space: nowrap;
}
@media (max-width: 375px) {
    #delivery .info-subtitle {
        font-size: 17px;
    }
}

.delivery-note-text { font-size: 13px; color: #666; margin-bottom: 15px; }

/* --- [データボックス・テキスト設定] --- */
.data-box { 
    background-color: #ffffff; 
    border: 1px solid #e0e0d8; 
    max-width: 360px;
    margin: 0 auto 20px;
    padding: 25px; 
    border-radius: 2px;
}
.text-content { font-size: 14px; line-height: 1.8; color: #2d2d2d; }
.link-text { color: #bda16b; font-weight: 600; text-decoration: underline; }
.bold-heading {
    font-size: 16px;
    color: #1a2a40;
    font-weight: 700;
    margin: 36px 0 14px;
    padding-left: 12px;
    border-left: 4px solid #bda16b;
}
.bold-heading:first-child {
    margin-top: 0;
}

/* リストスタイル */
.content-list { margin: 15px 0; padding-left: 20px; list-style-type: disc; }
.content-list li { margin-bottom: 8px; }

/* --- [電話番号エリア（共通BOX）] --- */
.phone-display {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
}
.phone-icon {
    width: 20px;
    height: auto;
}
.phone-number {
    font-size: 22px;
    font-weight: 700;
    color: #bda16b;
    text-decoration: none;
}

/* --- [ボタン設定] --- */
.contact-btn-wrapper { margin-top: 30px; text-align: center; }
.btn-form {
    display: inline-block;
    padding: 17px 24px;
    background-color: #1a2a40;
    color: #fff;
    text-decoration: none;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 600;
    transition: opacity 0.3s;
    min-width: 260px;
    box-sizing: border-box;
    text-align: center;
}
.btn-form:hover { opacity: 0.8; }

/* =============================================
   レスポンシブ (768px)
   ============================================= */
@media (min-width: 768px) {
    .breadcrumb-container {
        padding: 100px 40px 20px;
        max-width: 960px;
        margin: 0 auto;
    }
    .breadcrumbs { font-size: 12px; }

    .page-header {
        padding: 20px 40px 40px;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .page-title { font-size: 1.75rem; }
    .page-title span { font-size: 14px; }

    .page-anchor-nav, 
    .content-inner-wrapper { max-width: 600px; }

    .info-subtitle {
        font-size: 22px;
        margin-bottom: 35px;
    }

    .info-subtitle span {
        font-size: 12px;
    }

    .btn-form {
        display: block;
        padding: 15px 20px;
        font-size: 16px;
        min-width: 240px;
        max-width: 320px;
        margin-left: auto;
        margin-right: auto;
    }

    .delivery-note-text {
        margin-bottom: 18px;
    }

    .sp-only-br {
        display: none;
    }
}

/* =============================================
   レスポンシブ (1024px)
   ============================================= */
@media (min-width: 1024px) {
    .breadcrumb-container {
        padding: 110px 60px 20px;
        max-width: 900px;
    }
    .breadcrumbs { font-size: 14px; }
    .page-anchor-nav { max-width: 900px; }
    .content-inner-wrapper {
        max-width: 900px;
    }

    .page-title { font-size: 2rem; }

    .anchor-list {
        display: flex;
        column-count: unset;
        height: auto;
        gap: 0px;
    }
    .anchor-list li {
        padding: 10px 25px 10px 20px;
        font-size: 15px;
        border-bottom: none;
        margin-bottom: 0px;
    }
    .anchor-list li:last-child {
        border-right: none;
    }
    .info-block {
        padding: 0 25px;
    }

    .btn-form {
        display: block;
        max-width: 320px;
        margin-left: auto;
        margin-right: auto;
    }

    .text-content {
        font-size: 16px;
    }

    .info-subtitle {
        font-size: 24px;
    }

    .info-subtitle span {
        font-size: 14px;
    }

    .btn-form {
        font-size: 16px;
    }

    .delivery-note-text {
        font-size: 15px;
        margin-bottom: 30px;
    }
}
