/* メインコンテンツ：幅100%・横はみ出し防止（左右均等） */
.main-content-noukotsu {
    width: 100%;
    overflow-x: hidden;
}

/* ===================================
   タイトルセクション
   =================================== */
   .title-ossuaries {
    position: relative;
    width: 100%;
    height: 300px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.title-bg {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: #C6CACE url(../img/title-noukotsu.png) center / cover no-repeat;
   z-index: 1;
}

.title-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.2);
    z-index: 2;
}

.title-box {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    text-align: right;
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}

.title-ossuaries h1 {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 32px;
    color: white;
    margin: 0;
    line-height: 1.5;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.3);
}

/* モバイル (767px以下)：背景は見切れないよう contain、テキストは右寄せのまま余白で見切れ防止 */
@media (max-width: 767px) {
    .title-ossuaries {
        height: 200px;
        overflow: hidden;
        padding: 0 16px;
        box-sizing: border-box;
    }

    /* 幅が可変でも上下に背景色が出ないよう画像で全面を覆う */
    .title-bg {
        background-size: cover;
        background-position: center center;
    }

    .title-box {
        transform: translateY(-50%);
        padding: 0 20px;
        box-sizing: border-box;
    }
    
    .title-ossuaries h1 {
        font-size: 24px;
    }
}

/* タブレット (768px～930px)：body padding-top でヘッダー分確保済みのため margin-top は不要 */
@media (min-width: 768px) and (max-width: 930px) {
    .title-ossuaries {
        height: 179px; /* 250 - 71 */
    }
    
    .title-ossuaries h1 {
        font-size: 28px;
    }
}

/* デスクトップ (931px以上)：ヘッダー下から背景開始（931px以上は body に padding-top なしのため margin-top で確保） */
@media (min-width: 931px) {
    .title-ossuaries {
        margin-top: 71px;
        height: 329px; /* 400 - 71 */
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .title-ossuaries h1 {
        font-size: 40px;
    }
}

/* ===================================
   利用対象者セクション
   =================================== */
.target-users-section {
    width: 100%;
    background: white;
    padding: 64px 20px;
}

.target-container {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

.target-title {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 28px;
    color: #152445;
    text-align: center;
    margin: 0 0 48px 0;
    line-height: 1.6;
    border-bottom: 1px solid #C9A45A;
    padding-bottom: 12px;
    display: inline-block;
}

.target-circles {
    margin-top: 6px;
    margin-bottom: 56px;
}

.circle-row {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-bottom: 24px;
}

.circle-row:last-child {
    margin-bottom: 0;
}

.circle-item {
    width: 160px;
    height: 160px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 20px;
}

.circle-item.bg-navy {
    background: #152445;
}

.circle-item.bg-gold {
    background: #B89454;
}

.circle-item p {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 600;
    font-size: 18px;
    color: white;
    margin: 0;
    line-height: 1.7;
}

.target-description {
    max-width: 900px;
    margin: 0 auto;
    padding-right: 1.2em;
    box-sizing: border-box;
    text-align: left;
}

.target-description ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.target-description li {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 400;
    font-size: 18px;
    color: #333;
    margin: 0 0 20px 0;
    line-height: 2;
    padding-left: 1.2em;
    position: relative;
}

.target-description li::before {
    content: "・";
    position: absolute;
    left: 0;
}

.target-description li:last-child {
    margin-bottom: 0;
}

/* モバイル (768px以下) */
@media (max-width: 768px) {
    .target-users-section {
        padding: 40px 16px;
    }
    
    .target-title {
        font-size: 20px;
        margin-bottom: 32px;
        line-height: 1.5;
        padding-left: 1.2em;
        padding-right: 1.2em;
        box-sizing: border-box;
    }
    
    .target-circles {
        margin-top: 4px;
        margin-bottom: 40px;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 12px;
    }
    
    .circle-row {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 12px;
        margin-bottom: 0;
    }
    
    .circle-row:last-child {
        margin-bottom: 0;
    }
    
    .circle-item {
        width: 90px;
        height: 90px;
        padding: 8px;
    }
    
    .circle-item p {
        font-size: 18px;
        line-height: 1.5;
    }
    
    .target-description li {
        font-size: 18px;
        margin-bottom: 16px;
        line-height: 1.8;
    }
}

/* タブレット (768px～930px) */
@media (min-width: 768px) and (max-width: 930px) {
    .target-users-section {
        padding: 56px 32px;
    }
    
    .target-title {
        font-size: 24px;
        margin-bottom: 40px;
        line-height: 1.55;
    }
    
    .target-circles {
        margin-top: 6px;
        margin-bottom: 48px;
    }
    
    .circle-row {
        gap: 20px;
        margin-bottom: 20px;
    }
    
    .circle-item {
        width: 150px;
        height: 150px;
        padding: 18px;
        border-radius: 50%;
    }
    
    .circle-item p {
        font-size: 18px;
        line-height: 1.65;
    }
    
    .target-description li {
        font-size: 18px;
        margin-bottom: 18px;
        line-height: 1.9;
    }
}

/* 768px以下：target-circles を横一列・丸を小さく */
@media (max-width: 768px) {
    .target-circles {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 12px;
    }
    .target-circles .circle-row {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 12px;
        margin-bottom: 0;
    }
    .target-circles .circle-item {
        width: 90px;
        height: 90px;
        padding: 8px;
    }
    .target-circles .circle-item p {
        font-size: 18px;
        line-height: 1.5;
    }
}

/* 430px以下：2つの circle-row を縦並びに、circle-row 内の div も縦並び、p の改行をなくす */
@media (max-width: 430px) {
    .target-circles {
        margin-top: 4px;
        margin-bottom: 40px;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    .target-circles .circle-row {
        flex-direction: column;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 8px;
        margin-bottom: 0;
    }
    .target-circles .circle-item {
        width: auto;
        min-width: 80px;
        height: auto;
        min-height: 0;
        padding: 6px 16px;
        border-radius: 8px;
    }
    .target-circles .circle-item p {
        font-size: 16px;
        line-height: 1.35;
        text-align: left;
    }
    .target-circles .circle-item p br {
        display: none;
    }
}

/* 431px～768px：circle-row を2列横並び、circle-row 内は縦並び、2列の間は circle-item 間と同じ 16px */
@media (min-width: 431px) and (max-width: 768px) {
    .target-circles {
        margin-top: 6px;
        margin-bottom: 48px;
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 16px;
        row-gap: 0;
        justify-items: stretch;
    }
    .target-circles .circle-row:first-child {
        justify-self: end;
    }
    .target-circles .circle-row:last-child {
        justify-self: start;
    }
    .target-circles .circle-row {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: center;
        margin-bottom: 0;
        gap: 16px;
    }
    .target-circles .circle-item {
        width: 140px;
        height: 115px;
        padding: 10px;
    }
    .target-circles .circle-item p {
        font-size: 16px;
        line-height: 1.4;
    }
}

/* デスクトップ (931px以上) */
@media (min-width: 931px) {
    .target-users-section {
        padding: 80px 64px;
    }
    
    .target-title {
        font-size: 32px;
        margin-bottom: 64px;
        line-height: 1.7;
    }
    
    .target-circles {
        margin-top: 8px;
        margin-bottom: 80px;
    }
    
    .circle-row {
        gap: 32px;
        margin-bottom: 32px;
    }
    
    .circle-item {
        width: 180px;
        height: 180px;
        padding: 24px;
        border-radius: 50%;
    }
    
    .circle-item p {
        font-size: 18px;
        line-height: 1.75;
    }
    
    .target-description li {
        font-size: 18px;
        margin-bottom: 24px;
        line-height: 2.1;
    }
}

/* ===================================
   納骨形式セクション
   =================================== */
.plan-section {
    background: white;
    position: relative;
}

.plan-header {
    background: linear-gradient(135deg, #0f1a33 0%, #1e3260 45%, #1a2d52 100%);
    height: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    gap: 6px;
}

.plan-header h2 {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    color: white;
    margin: 0;
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.plan-text1 {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 400;
    font-size: 24px;
    letter-spacing: 1.2px;
    line-height: 1.5;
    display: block;
}

.plan-number {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 40px;
    line-height: 1;
}

.plan-text2 {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 24px;
    line-height: 1;
}

.plan-text3 {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 28px;
    line-height: 1;
}

/* 「3」「つの」「納骨形式」のグループ（indexのfeatures-h2-groupと同様に下揃え） */
.plan-h2-group {
    display: inline-flex;
    align-items: baseline;
    gap: 0;
}

.plan-h2-group .plan-number,
.plan-h2-group .plan-text2,
.plan-h2-group .plan-text3 {
    letter-spacing: 0.05em;
}

/* 430px～930px：納骨形式見出しを横一列に（indexのgap・字間を参考） */
@media (min-width: 431px) and (max-width: 930px) {
    .plan-header {
        height: auto;
        min-height: 80px;
        padding: 20px 16px;
    }
    .plan-header h2 {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: baseline;
        justify-content: center;
        gap: 12px;
    }
    .plan-header h2 .plan-text1 {
        display: inline;
    }
    .plan-h2-group .plan-number,
    .plan-h2-group .plan-text2,
    .plan-h2-group .plan-text3 {
        letter-spacing: 0.08em;
    }
}

/* 430px以下：上段「俱会一処堂の」下段「3つの納骨形式」の2段表示 */
@media (max-width: 430px) {
    .plan-header {
        height: auto;
        min-height: 80px;
        padding: 16px 12px;
    }
    .plan-header h2 {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: 100%;
        box-sizing: border-box;
    }
    .plan-header h2 .plan-text1 {
        display: block;
        text-align: center;
        width: 100%;
    }
    .plan-header h2 .plan-h2-group {
        display: inline-flex;
        align-items: baseline;
        justify-content: center;
        gap: 0;
        letter-spacing: 0.05em;
        text-align: center;
        box-sizing: border-box;
    }
    .plan-header h2 .plan-h2-group .plan-number,
    .plan-header h2 .plan-h2-group .plan-text2,
    .plan-header h2 .plan-h2-group .plan-text3 {
        flex: none;
        letter-spacing: 0.08em;
    }
}

.plan-content {
    background: linear-gradient(180deg, #f8f5ed 0%, #e8dcc8 100%);
    padding: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.plan-item {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-bottom: 0;
    padding: 32px 0;
    background: white;
}

.plan-item:last-child {
    margin-bottom: 56px;
}

.plan-images {
    display: flex;
    gap: 6px;
    width: 100%;
    order: 2;
}

.plan-image-wrapper {
    flex: 1;
    aspect-ratio: 717 / 388;
}

.plan-image-placeholder {
    width: 100%;
    height: 100%;
    background: #d0d0d0;
    background-size: cover;
    background-position: center;
}

/* プラン画像パス（img フォルダに配置） */
.plan-item-01 .plan-image-wrapper:nth-child(1) .plan-image-placeholder {
    background-image: url(../img/plan01-1.jpg);
}
.plan-item-01 .plan-image-wrapper:nth-child(2) .plan-image-placeholder {
    background-image: url(../img/plan01-2.jpg);
}
.plan-item-02 .plan-image-placeholder {
    background-image: url(../img/plan02.jpg);
}
.plan-item-03 .plan-image-placeholder {
    background-image: url(../img/plan03.jpg);
}

.plan-image-single {
    width: 100%;
    aspect-ratio: 702.5 / 380.25;
    order: 2;
}

.plan-details {
    background: white;
    box-shadow: none;
    padding: 0 16px;
    order: 1;
}

.plan-title-wrapper {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: flex-start;
    margin-bottom: 42px;
    padding-bottom: 16px;
    border-bottom: 1px solid #c9a45a;
}

.plan-number-box {
    background: transparent;
    width: auto;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 0;
}

.plan-number-box span {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 40px;
    color: #c9a45a;
    line-height: 0.5;
    letter-spacing: 2.4px;
}

.plan-title-wrapper h3 {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 28px;
    color: #152445;
    margin: 0;
    line-height: 1.65;
    width: 100%;
}

.plan-description {
    margin-bottom: 42px;
}

.plan-description p {
    font-family: 'Zen Old Mincho', serif;
    font-size: 18px;
    color: #333;
    line-height: 2;
    letter-spacing: 2px;
    margin: 0 0 0 0;
}

.plan-description p:last-child {
    margin-bottom: 0;
}

.plan-features {
    border: 1px solid #c9a45a;
    padding-bottom: 16px;
}

.features-header {
    background: #c9a45a;
    color: white;
    font-family: 'Zen Old Mincho', serif;
    font-size: 26px;
    text-align: center;
    padding: 8px;
    line-height: 40px;
    letter-spacing: 1.56px;
}

.features-list {
    padding: 16px;
}

.features-list p {
    font-family: 'Zen Old Mincho', serif;
    font-size: 18px;
    color: #333;
    line-height: 1.03;
    letter-spacing: 1px;
    margin: 0 0 16px 0;
}

.features-list p:last-child {
    margin-bottom: 0;
}

/* 768px以下：プラン内の画像を縦並びに */
@media (max-width: 768px) {
    .plan-section .plan-images {
        flex-direction: column;
    }
    .plan-section .plan-image-wrapper {
        width: 100%;
    }
}

/* タブレット */
@media (min-width: 768px) {
    .plan-header {
        height: 140px;
        padding: 32px;
    }

    .plan-header h2 {
        flex-direction: row;
        gap: 8px;
        align-items: baseline;
    }

    .plan-content {
        padding: 48px 24px 100px;
        gap: 32px;
    }

    .plan-item {
        padding: 0;
        gap: 32px;
    }

    .plan-item:last-child {
        margin-bottom: 0;
    }

    .plan-details {
        padding: 32px 24px;
        box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
    }

    .plan-title-wrapper {
        flex-direction: row;
        gap: 32px;
        align-items: flex-end;
    }

}

/* デスクトップ */
@media (min-width: 931px) {
    .plan-header {
        height: 160px;
    }

    .plan-header h2 {
        flex-direction: row;
        align-items: baseline;
    }

    .plan-content {
        padding: 72px 40px 80px;
        gap: 32px;
    }

    .plan-item {
        flex-direction: row;
        width: 100%;
        max-width: 1440px;
        margin: 0 auto;
        padding: 32px 16px;
        gap: 40px;
        box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
        box-sizing: border-box;
    }

    .plan-item:last-child {
        margin-bottom: 0;
    }

    .plan-item.plan-reverse {
        flex-direction: row-reverse;
    }

    .plan-images {
        flex-direction: column;
        flex: 1;
        min-width: 0;
        order: 2;
    }

    .plan-image-single {
        flex: 1;
        min-width: 0;
        order: 2;
    }

    .plan-details {
        flex: 1;
        padding: 0 16px;
        min-width: 0;
        order: 1;
        box-shadow: none;
    }

    .plan-title-wrapper {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: baseline;
        gap: 32px;
    }
    .plan-title-wrapper .plan-number-box {
        display: flex;
        align-items: flex-end;
        flex-shrink: 0;
    }
    .plan-title-wrapper .plan-number-box span {
        line-height: 1;
        display: block;
    }
    .plan-title-wrapper h3 {
        line-height: 1.3;
        padding-bottom: 0;
    }

}

/* ===================================
   装飾画像（納骨形式セクション後）
   =================================== */
.info-image-decoration {
    width: 100%;
    height: 300px;
    background: linear-gradient(135deg, #8b7355 0%, #a89078 100%);
    background-size: cover;
    background-position: center;
}

/* モバイル (767px以下) */
@media (max-width: 767px) {
    .info-image-decoration {
        height: 200px;
    }
}

/* タブレット (768px～930px) */
@media (min-width: 768px) and (max-width: 930px) {
    .info-image-decoration {
        height: 250px;
    }
}

/* デスクトップ (931px以上) */
@media (min-width: 931px) {
    .info-image-decoration {
        height: 400px;
    }
}

/* ===================================
   ご契約から納骨までの流れセクション
   =================================== */
.flow-section {
    width: 100%;
    background: white url(../img/washi_w.png) repeat;
    padding: 80px 20px;
    position: relative;
}

.flow-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.05;
    background: linear-gradient(135deg, #f0f0f0 0%, #e0e0e0 100%);
    pointer-events: none;
}

.flow-container {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    text-align: center;
}

.flow-section h2 {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 36px;
    color: #152445;
    text-align: center;
    margin: 0 0 56px 0;
    line-height: 1.4;
    border-bottom: 1px solid #C9A45A;
    padding-bottom: 12px;
    display: inline-block;
}

.flow-steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px 10px;
}

.step-card {
    background: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.step-content {
    padding: 32px 24px;
}

.step-header {
    margin-bottom: 24px;
}

.step-label {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 600;
    font-size: 16px;
    color: #b89454;
    margin: 0 0 8px 0;
    line-height: 1.5;
}

.step-title {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 18px;
    color: #152445;
    margin: 0;
    line-height: 1.5;
}

.step-image {
    margin-bottom: 24px;
}

.step-image-placeholder {
    width: 100%;
    aspect-ratio: 16/9;
    background: linear-gradient(135deg, #d0d0d0 0%, #e0e0e0 100%);
    background-size: cover;
    background-position: center;
    border-radius: 6px;
}

/* ご契約から納骨までの流れ：画像パス（img フォルダに step01.jpg ～ step04.jpg を配置） */
.step-card:nth-child(1) .step-image-placeholder { background-image: url(../img/step01.jpg); }
.step-card:nth-child(2) .step-image-placeholder { background-image: url(../img/step02.jpg); }
.step-card:nth-child(3) .step-image-placeholder { background-image: url(../img/step03.jpg); }
.step-card:nth-child(4) .step-image-placeholder { background-image: url(../img/step04.jpg); }

.step-description {
    text-align: left;
}

.step-description p {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 400;
    font-size: 18px;
    color: #333;
    margin: 0;
    line-height: 1.9;
}

/* モバイル (767px以下) */
@media (max-width: 767px) {
    .flow-section {
        padding: 48px 16px;
    }
    
    .flow-section h2 {
        font-size: 24px;
        margin-bottom: 32px;
    }
    
    .flow-steps {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px 12px;
    }
    
    .step-content {
        padding: 24px 20px;
    }
    
    .step-header {
        margin-bottom: 16px;
    }
    
    .step-label {
        font-size: 14px;
        margin-bottom: 6px;
    }
    
    .step-title {
        font-size: 18px;
    }
    
    .step-image {
        margin-bottom: 16px;
    }
    
    .step-description p {
        font-size: 18px;
        line-height: 1.7;
    }
}

/* タブレット (768px～930px) */
@media (min-width: 768px) and (max-width: 930px) {
    .flow-section {
        padding: 64px 32px;
    }
    
    .flow-section h2 {
        font-size: 30px;
        margin-bottom: 44px;
    }
    
    .flow-steps {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px 16px;
    }
    
    .step-content {
        padding: 28px 22px;
    }
    
    .step-header {
        margin-bottom: 20px;
    }
    
    .step-label {
        font-size: 15px;
        margin-bottom: 7px;
    }
    
    .step-title {
        font-size: 18px;
    }
    
    .step-image {
        margin-bottom: 20px;
    }
    
    .step-description p {
        font-size: 16px;
        line-height: 1.8;
    }
}

/* デスクトップ (931px以上) */
@media (min-width: 931px) {
    .flow-section {
        padding: 100px 64px;
    }
    
    .flow-section h2 {
        font-size: 42px;
        margin-bottom: 64px;
    }
    
    .flow-steps {
        grid-template-columns: repeat(4, 1fr);
        gap: 48px 24px;
    }
    
    .step-content {
        padding: 36px 28px;
    }
    
    .step-header {
        margin-bottom: 28px;
    }
    
    .step-label {
        font-size: 17px;
        margin-bottom: 10px;
    }
    
    .step-title {
        font-size: 18px;
    }
    
    .step-image {
        margin-bottom: 28px;
    }
    
    .step-description p {
        font-size: 18px;
        line-height: 2;
    }
}

/* ===================================
   よくあるご質問セクション
   =================================== */
.faq-section {
    width: 100%;
    background: white;
    padding: 80px 20px;
}

.faq-container {
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
}

.faq-section h2 {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 36px;
    color: #152445;
    text-align: center;
    margin: 0 0 56px 0;
    line-height: 1.4;
    border-bottom: 1px solid #C9A45A;
    padding-bottom: 12px;
    display: inline-block;
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.faq-item {
    background: #f8f8f6;
    border-left: 4px solid #c9a45a;
    padding: 24px;
    border-radius: 4px;
}

.faq-question {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 20px;
    color: #152445;
    margin-bottom: 16px;
    line-height: 1.7;
}

.faq-answer {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 400;
    font-size: 18px;
    color: #333;
    line-height: 1.9;
}

/* モバイル (767px以下) */
@media (max-width: 767px) {
    .faq-section {
        padding: 48px 16px;
    }
    
    .faq-section h2 {
        font-size: 24px;
        margin-bottom: 32px;
    }
    
    .faq-list {
        gap: 20px;
    }
    
    .faq-item {
        padding: 20px;
    }
    
    .faq-question {
        font-size: 18px;
        margin-bottom: 12px;
        line-height: 1.6;
    }
    
    .faq-answer {
        font-size: 18px;
        line-height: 1.8;
    }
}

/* タブレット (768px～930px) */
@media (min-width: 768px) and (max-width: 930px) {
    .faq-section {
        padding: 64px 32px;
    }
    
    .faq-section h2 {
        font-size: 30px;
        margin-bottom: 44px;
    }
    
    .faq-list {
        gap: 22px;
    }
    
    .faq-item {
        padding: 22px;
    }
    
    .faq-question {
        font-size: 20px;
        margin-bottom: 14px;
        line-height: 1.65;
    }
    
    .faq-answer {
        font-size: 18px;
        line-height: 1.85;
    }
}

/* デスクトップ (931px以上) */
@media (min-width: 931px) {
    .faq-section {
        padding: 100px 64px;
    }
    
    .faq-section h2 {
        font-size: 42px;
        margin-bottom: 64px;
    }
    
    .faq-list {
        gap: 28px;
    }
    
    .faq-item {
        padding: 28px;
    }
    
    .faq-question {
        font-size: 20px;
        margin-bottom: 18px;
        line-height: 1.75;
    }
    
    .faq-answer {
        font-size: 18px;
        line-height: 2;
    }
}

/* ===================================
   ページトップボタン
   =================================== */
.page-top {
    position: fixed;
    bottom: 12px;
    right: 24px;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: white;
    border: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    cursor: pointer;
    z-index: 9999;
    transition: opacity 0.3s, transform 0.3s;
}

.page-top:hover {
    transform: translateY(-4px);
}

.page-top-arrow {
    font-size: 24px;
    color: #c9a45a;
}

@media (max-width: 930px) {
    .page-top {
        bottom: 6px;
    }
}

/* 768px～1024px：固定お問い合わせバー表示時はページトップをバーより上に配置（デスクトップ位置にならないよう） */
@media (min-width: 768px) and (max-width: 1024px) {
    .page-top {
        bottom: 100px;
    }
}

@media (max-width: 767px) {
    .page-top {
        width: 52px;
        height: 52px;
        bottom: 64px;
        right: 16px;
    }
    
    .page-top-arrow {
        font-size: 20px;
    }
}

/* ===================================
   固定お問い合わせボタン（モバイル・タブレット）
   =================================== */
@media (min-width: 1025px) {
    .fixed-contact-btn {
        display: none;
    }
}

@media (max-width: 1024px) {
    /* フッターが固定ボタンに隠れないよう（ボタン・body/footer は common.css で共通） */
    body {
        padding-bottom: 64px;
    }
    .footer {
        margin-bottom: 0;
        padding-bottom: 0;
    }
}

/* ===================================
   お問い合わせセクション
   =================================== */

/* デスクトップ (931px以上) */
@media (min-width: 931px) {
    .contact-section {
        padding: 80px 32px;
        background: white;
    }

    .contact-container {
        max-width: 787px;
        margin: 0 auto;
    }

    .contact-title {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 400;
        font-size: 36px;
        line-height: 40px;
        color: #b48c43;
        text-align: center;
        margin: 0 0 54px 0;
    }

    .contact-content {
        display: flex;
        flex-direction: column;
        gap: 46px;
        margin-bottom: 32px;
    }

    .contact-tel-row {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 24px;
    }

    .contact-tel-label {
        background: #c9a45a;
        width: 146px;
        height: 70px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: 'Noto Serif', serif;
        font-weight: 400;
        font-size: 40px;
        line-height: 40px;
        color: white;
        letter-spacing: 6px;
        flex-shrink: 0;
    }

    .contact-tel-number {
        font-family: 'Noto Serif JP', serif;
        font-weight: 400;
        font-size: 100px;
        line-height: 40px;
        color: #c9a45a;
        text-decoration: none;
        transition: opacity 0.3s;
    }

    .contact-tel-number:hover {
        opacity: 0.7;
    }

    .contact-hours {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 25px;
    }

    .contact-hours-label {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 700;
        font-size: 18px;
        line-height: 40px;
        color: #c9a45a;
    }

    .contact-hours-time {
        font-family: 'Noto Serif JP', serif;
        font-weight: 400;
        font-size: 60px;
        line-height: 40px;
        color: #c9a45a;
        letter-spacing: 0.96px;
    }

    .contact-note {
        border-top: 1px solid #c9a45a;
        border-bottom: 1px solid #c9a45a;
        padding: 4px 8px;
        text-align: center;
    }

    .contact-note p {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 400;
        font-size: 24px;
        line-height: 40px;
        color: #c9a45a;
        margin: 0;
    }
}

/* タブレット (768px～930px) */
@media (min-width: 768px) and (max-width: 930px) {
    .contact-section {
        padding: 80px 32px;
        background: white;
    }

    .contact-container {
        max-width: 787px;
        margin: 0 auto;
    }

    .contact-title {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 400;
        font-size: 36px;
        line-height: 40px;
        color: #b48c43;
        text-align: center;
        margin: 0 0 54px 0;
    }

    .contact-content {
        display: flex;
        flex-direction: column;
        gap: 46px;
        margin-bottom: 32px;
    }

    .contact-tel-row {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 24px;
    }

    .contact-tel-label {
        background: #c9a45a;
        width: 146px;
        height: 70px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: 'Noto Serif', serif;
        font-weight: 400;
        font-size: 40px;
        line-height: 40px;
        color: white;
        letter-spacing: 6px;
        flex-shrink: 0;
    }

    .contact-tel-number {
        font-family: 'Noto Serif JP', serif;
        font-weight: 400;
        font-size: 100px;
        line-height: 40px;
        color: #c9a45a;
        text-decoration: none;
        transition: opacity 0.3s;
    }

    .contact-tel-number:hover {
        opacity: 0.7;
    }

    .contact-hours {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 25px;
    }

    .contact-hours-label {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 700;
        font-size: 18px;
        line-height: 40px;
        color: #c9a45a;
    }

    .contact-hours-time {
        font-family: 'Noto Serif JP', serif;
        font-weight: 400;
        font-size: 60px;
        line-height: 40px;
        color: #c9a45a;
        letter-spacing: 0.96px;
    }

    .contact-note {
        border-top: 1px solid #c9a45a;
        border-bottom: 1px solid #c9a45a;
        padding: 4px 8px;
        text-align: center;
    }

    .contact-note p {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 400;
        font-size: 24px;
        line-height: 40px;
        color: #c9a45a;
        margin: 0;
    }
}

/* モバイル中〜大 (480px～767px) */
@media (min-width: 480px) and (max-width: 767px) {
    .contact-section {
        padding: 70px 24px;
        background: white;
    }

    .contact-container {
        max-width: 700px;
        margin: 0 auto;
    }

    .contact-title {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 400;
        font-size: 32px;
        line-height: 38px;
        color: #b48c43;
        text-align: center;
        margin: 0 0 48px 0;
    }

    .contact-content {
        display: flex;
        flex-direction: column;
        gap: 40px;
        margin-bottom: 30px;
    }

    .contact-tel-row {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 20px;
    }

    .contact-tel-label {
        background: #c9a45a;
        width: 130px;
        height: 64px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: 'Noto Serif', serif;
        font-weight: 400;
        font-size: 36px;
        line-height: 36px;
        color: white;
        letter-spacing: 5.5px;
        flex-shrink: 0;
    }

    .contact-tel-number {
        font-family: 'Noto Serif JP', serif;
        font-weight: 400;
        font-size: 70px;
        line-height: 36px;
        color: #c9a45a;
        text-decoration: none;
        transition: opacity 0.3s;
    }

    .contact-tel-number:hover {
        opacity: 0.7;
    }

    .contact-hours {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 22px;
    }

    .contact-hours-label {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 700;
        font-size: 16px;
        line-height: 36px;
        color: #c9a45a;
    }

    .contact-hours-time {
        font-family: 'Noto Serif JP', serif;
        font-weight: 400;
        font-size: 50px;
        line-height: 36px;
        color: #c9a45a;
        letter-spacing: 0.9px;
    }

    .contact-note {
        border-top: 1px solid #c9a45a;
        border-bottom: 1px solid #c9a45a;
        padding: 4px 8px;
        text-align: center;
    }

    .contact-note p {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 400;
        font-size: 20px;
        line-height: 36px;
        color: #c9a45a;
        margin: 0;
    }
}

/* モバイル小 (479px以下) */
@media (max-width: 479px) {
    .contact-section {
        padding: 60px 16px;
        background: white;
    }

    .contact-container {
        max-width: 100%;
        margin: 0 auto;
    }

    .contact-title {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 400;
        font-size: 26px;
        line-height: 34px;
        color: #b48c43;
        text-align: center;
        margin: 0 0 42px 0;
    }

    .contact-content {
        display: flex;
        flex-direction: column;
        gap: 34px;
        margin-bottom: 26px;
    }

    .contact-tel-row {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        flex-wrap: wrap;
    }

    .contact-tel-label {
        background: #c9a45a;
        width: 100px;
        height: 52px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: 'Noto Serif', serif;
        font-weight: 400;
        font-size: 28px;
        line-height: 28px;
        color: white;
        letter-spacing: 4.5px;
        flex-shrink: 0;
    }

    .contact-tel-number {
        font-family: 'Noto Serif JP', serif;
        font-weight: 400;
        font-size: 48px;
        line-height: 28px;
        color: #c9a45a;
        text-decoration: none;
        transition: opacity 0.3s;
    }

    .contact-tel-number:hover {
        opacity: 0.7;
    }

    .contact-hours {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 16px;
        flex-wrap: wrap;
    }

    .contact-hours-label {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 700;
        font-size: 14px;
        line-height: 28px;
        color: #c9a45a;
    }

    .contact-hours-time {
        font-family: 'Noto Serif JP', serif;
        font-weight: 400;
        font-size: 36px;
        line-height: 28px;
        color: #c9a45a;
        letter-spacing: 0.7px;
    }

    .contact-note {
        border-top: 1px solid #c9a45a;
        border-bottom: 1px solid #c9a45a;
        padding: 4px 8px;
        text-align: center;
    }

    .contact-note p {
        font-family: 'Zen Old Mincho', serif;
        font-weight: 400;
        font-size: 16px;
        line-height: 28px;
        color: #c9a45a;
        margin: 0;
    }
}

/* ===================================
   電話番号セクション（下部）コンパクト：横一列維持・360pxでも折り返さない（比率維持）
   =================================== */
.tel-section-compact .tel-row {
    flex-wrap: nowrap;
    gap: 10px;
    min-width: 0;
}
.tel-section-compact .tel-label-box {
    flex-shrink: 0;
    box-sizing: border-box;
}
.tel-section-compact .tel-number {
    white-space: nowrap;
    flex-shrink: 0;
}

/* デフォルト（比率おおよそ 1 : 2.2 で TEL:番号） */
.tel-section-compact .tel-label-box {
    width: 90px;
    min-width: 90px;
    height: 45px;
    min-height: 45px;
    font-size: 26px;
    letter-spacing: 4px;
}
.tel-section-compact .tel-number {
    font-size: 50px;
}

/* 480px以下：比率維持して縮小 */
@media (max-width: 480px) {
    .tel-section-compact .tel-row {
        gap: 8px;
    }
    .tel-section-compact .tel-label-box {
        width: 78px;
        min-width: 78px;
        height: 39px;
        min-height: 39px;
        font-size: 22px;
        letter-spacing: 3px;
    }
    .tel-section-compact .tel-number {
        font-size: 42px;
    }
}

/* 360pxでも折り返さないサイズ（比率維持） */
@media (max-width: 400px) {
    .tel-section-compact .tel-row {
        gap: 8px;
    }
    .tel-section-compact .tel-label-box {
        width: 68px;
        min-width: 68px;
        height: 34px;
        min-height: 34px;
        font-size: 18px;
        letter-spacing: 2px;
    }
    .tel-section-compact .tel-number {
        font-size: 34px;
    }
}

/* 767px以下で common が column になるのを上書きして横並び維持 */
@media (max-width: 767px) {
    .tel-section-compact .tel-row {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
    }
}