/* スクロール問題の完全修正 */
* {
    box-sizing: border-box !important;
}

html, body {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 横スクロールのみ防止 */
* {
    max-width: 100% !important;
    overflow-x: hidden !important;
}

/* 画像のスクロール防止 */
img {
    max-width: 100% !important;
    height: auto !important;
}

/* flexboxでのはみ出し防止 */
.texture-content,
.natural-content,
.quality-content,
.hero-content,
.product-info,
.features-grid,
.gallery-grid,
.steps,
.faq-container {
    max-width: 100% !important;
    overflow-x: hidden !important;
    flex-wrap: wrap !important;
}

/* 固定幅要素の修正 */
.container {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 15px !important;
}

/* テキスト要素のはみ出し防止 */
h1, h2, h3, h4, h5, h6, p, span, div {
    word-wrap: break-word !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
}

/* 絶対配置要素の制御 */
*[style*="position: absolute"],
*[style*="position: fixed"] {
    max-width: 100% !important;
    overflow: hidden !important;
}

/* 大きなpadding/marginの制限 */
* {
    margin-left: 0 !important;
    margin-right: 0 !important;
}