@charset "UTF-8";
/* トップ専用。商品ページの共通CSSは変更しない。 */
.home-page { --color-text:#303c37; --color-muted:#5c6861; --color-brand:#345d48; --color-surface:#f3f6f3; line-height:1.95; }
.home-page [hidden] { display:none !important; }
/* 検索結果の案内見出し。カード内は専用ルールで階層を付ける。 */
:where(#search-result-area) h3 { font-size:20px; }
.home-page section[id],.home-page div[id] { scroll-margin-top:24px; }
/* 本文セクション共通の文字組み。検索欄は見出し周りだけに適用する。 */
.home-prose {
  --home-section-title-size:1.875rem;
  --home-item-title-size:1.5rem;
  --home-body-size:1.125rem;
  --home-auxiliary-size:1rem;
  --home-heading-line-height:1.45;
  --home-body-line-height:1.75;
  font-family:inherit;
  font-size:var(--home-body-size);
  font-weight:400;
  line-height:var(--home-body-line-height);
  letter-spacing:normal;
}
.home-prose h2,.home-prose h3 {
  margin:0 0 16px;
  font-family:inherit;
  font-weight:700;
  line-height:var(--home-heading-line-height);
  letter-spacing:normal;
  color:var(--color-brand);
}
.home-prose h2 { font-size:var(--home-section-title-size); }
.home-prose h3 { font-size:var(--home-item-title-size); }
.home-prose :where(p,ul,ol,dl,small,a) {
  font-family:inherit;
  font-size:var(--home-body-size);
  line-height:var(--home-body-line-height);
  letter-spacing:normal;
}
.home-prose :where(p,small) { font-weight:400; }
.home-prose .home-kicker,.home-prose .home-small { font-size:var(--home-body-size); line-height:var(--home-body-line-height); letter-spacing:normal; }
.home-prose :where(.home-step,.promise-number,figcaption) { font-size:var(--home-auxiliary-size); line-height:var(--home-body-line-height); letter-spacing:normal; }
.home-prose :where(.home-step,.promise-number) { font-weight:600; }
@media(max-width:700px) {
  .home-prose { --home-section-title-size:1.625rem; --home-item-title-size:1.375rem; }
}

.home-wrap { width:min(1200px,calc(100% - 80px)); margin-inline:auto; }
.home-header { padding:25px 0; }
.header-row { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.home-brand { display:inline-block; flex-shrink:0; max-width:100%; font-size:25px; font-weight:700; text-decoration:none; color:#304c3c; white-space:nowrap; }
.home-brand .home-logo { display:block; width:260px; max-width:100%; height:auto; }
.home-brand span { display:block; font-size:12px; font-weight:400; letter-spacing:.07em; }
.home-header nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px 22px; align-items:center; font-size:14px; }
.home-header nav a { color:inherit; text-decoration:none; }
.home-header .nav-contact { background:#edf2ed; padding:8px 16px; border-radius:3px; }
.home-hero { background:#f4f6f2; padding:48px 0; }
.hero-grid { display:grid; grid-template-columns:1.6fr 1fr; gap:72px; align-items:center; }
.home-kicker { font-size:14px; letter-spacing:.06em; color:#617468; margin-bottom:12px; }
.home-hero h1 { font-size:clamp(32px,3.4vw,48px); line-height:1.5; letter-spacing:.055em; margin:0 0 20px; }
.home-hero p { max-width:650px; }
.hero-photo { margin:0; max-width:300px; justify-self:center; }
.hero-photo img { width:100%; aspect-ratio:1/1; object-fit:cover; object-position:60% center; mix-blend-mode:multiply; }
.hero-photo figcaption { font-size:12px; text-align:center; color:#69756c; margin-top:14px; }
.home-actions { display:flex; gap:26px; align-items:center; flex-wrap:wrap; margin-top:25px; }
.home-button { display:inline-flex; align-items:center; justify-content:center; gap:30px; color:#fff; background:#365b46; padding:13px 24px; min-height:50px; border:1px solid #365b46; border-radius:3px; text-decoration:none; font-weight:600; }
.home-button:hover { background:#244634; }
.home-section { padding-block:80px; }
.home-soft { background:#f4f6f3; }
.section-head { margin-bottom:32px; }
.section-head p { max-width:800px; }
.finder { background:#f4f6f3; border-radius:5px; overflow:hidden; }
.find-modes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3px; }
.find-modes button { border:0; background:#e8eee8; color:#4b6153; display:flex; gap:14px; align-items:center; justify-content:center; padding:20px 12px; font-size:16px; min-height:68px; }
.find-modes button span { font-weight:600; }
.find-modes button[aria-pressed="true"] { background:#365b46; color:#fff; }
.find-modes button:focus-visible { outline-offset:-5px; }
.find-panel { padding:30px 38px; }
.find-panel label { display:block; margin-bottom:8px; font-weight:600; }
.find-panel input,.find-panel select { width:100%; min-width:0; min-height:52px; padding:10px 14px; background:#fff; border:1px solid #adb9ae; border-radius:3px; color:#303c37; }
.input-action { display:grid; grid-template-columns:1fr auto; gap:12px; margin-bottom:12px; }
.home-small { font-size:14px; color:#5f6e64; line-height:1.9; }
.size-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-bottom:24px; }
.size-caution { margin-top:18px; max-width:850px; }
.results-heading { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-top:34px; }
.results-heading h3 { margin:0; }
#reset-search { background:#fff; border:1px solid #a9b7ab; padding:9px 16px; border-radius:3px; min-height:46px; }
#result-status { margin:8px 0; color:#5a7060; }
/* 検索カード共通：品番・メーカーはページ単位、形状・サイズは商品単位。 */
#search-results { display:grid; gap:24px; margin-top:24px; }
.home-result { display:grid; grid-template-columns:minmax(0,28fr) minmax(0,72fr); gap:32px; padding:24px; border:1px solid #d8e1d9; border-radius:10px; background:#fff; box-shadow:0 3px 12px #243e2d06; align-items:center; }
/* サムネイルはカードと同じ白地。画像だけの色面や囲みを作らない。 */
.home-result .result-media { display:grid; place-items:center; min-width:0; width:100%; aspect-ratio:1; padding:12px; background:#fff; }
.home-result .result-media>img { display:block; width:100%; height:auto; object-fit:contain; }
.home-result .result-photo-frame { display:block; position:relative; width:100%; overflow:hidden; }
.home-result .result-photo-frame img { position:absolute; width:var(--photo-width); max-width:none; height:auto; left:var(--photo-left); top:var(--photo-top); }
.home-result .result-content { min-width:0; }
.home-result .result-maker { margin:0 0 6px; font-size:14px; font-weight:600; line-height:1.6; color:#55695c; }
.home-result .result-maker span { font-weight:400; }
.home-result h3 { margin:0 0 12px; font-size:32px; font-weight:700; line-height:1.3; letter-spacing:.01em; color:#253d30; overflow-wrap:anywhere; }
.home-result .result-product { margin:0 0 4px; font-size:18px; font-weight:600; line-height:1.6; }
.home-result .result-dimensions { margin:0; font-size:16px; line-height:1.7; color:#56625b; }
.home-result .result-fit { margin:18px 0; padding-top:14px; border-top:1px solid #e4eae4; }
.home-result .result-compatible { margin:0 0 6px; font-size:15px; line-height:1.7; overflow-wrap:anywhere; }
.home-result .result-compatible>span { display:inline-block; margin-right:12px; font-size:13px; font-weight:600; color:#5c6a61; }
.home-result .result-model-match { margin:6px 0; font-size:14px; line-height:1.7; color:var(--color-brand); font-weight:600; overflow-wrap:anywhere; }
.home-result .home-small { margin:0; font-size:14px; line-height:1.8; }
.home-result .result-cta { min-height:50px; max-width:100%; padding:12px 20px; gap:24px; border-radius:5px; font-size:16px; line-height:1.6; text-align:center; }
.home-result .result-cta span { flex-shrink:0; }
.home-result .result-cta:focus-visible { outline:3px solid #345d48; outline-offset:4px; }
.home-result .result-group-title { font-size:28px; }
.home-result .result-group-note { margin:14px 0; font-size:14px; line-height:1.8; }
.home-result .result-guide-links { list-style:none; margin:0; padding:0; }
.home-result .result-guide-links li { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px; padding:16px 0; border-top:1px solid #e4eae4; }
.home-result .result-guide-links li:first-child { border-top:0; }
.home-result .result-guide-links li:last-child { padding-bottom:0; }
.home-result .result-guide-kind { margin:0 0 3px; font-size:13px; line-height:1.6; color:#56695d; }
.home-result .result-guide-links h4 { margin:0; font-size:24px; line-height:1.4; color:#253d30; overflow-wrap:anywhere; }
@media(hover:hover) { .home-result:hover { border-color:#a9beb0; box-shadow:0 4px 16px #243e2d0d; } }
@media(max-width:1050px) { .home-result { gap:24px; }.home-result h3 { font-size:28px; }.home-result .result-group-title { font-size:25px; } }
@media(max-width:700px) {
 .home-result { grid-template-columns:minmax(0,1fr); gap:22px; padding:20px; }
 .home-result .result-media { width:min(100%,280px); justify-self:center; padding:12px; }
 .home-result h3 { font-size:25px; margin-bottom:12px; }
 .home-result .result-maker { font-size:13px; }
 .home-result .result-product { font-size:16px; }
 .home-result .result-dimensions { font-size:15px; }
 .home-result .result-fit { margin:16px 0 20px; }
 .home-result .result-cta { width:100%; padding:12px 10px; gap:12px; font-size:15px; }
 .home-result .result-group-title { font-size:24px; }
 .home-result .result-guide-links li { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
}
.no-results { padding:36px; background:#f5f7f4; margin-top:20px; }
.guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; }
.guide-grid img { width:100%; aspect-ratio:1/1; object-fit:contain; background:#fff; }
.home-step { font-weight:600; color:#708875; margin:22px 0 8px; }
.guide-note { margin:24px 0 0; }
.quality-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:90px; }
.quality-grid h3:not(:first-child) { margin-top:28px; }
.home-disclaimer { background:#f4f6f3; max-width:900px; padding:28px 34px; margin:42px auto 0; border-radius:4px; }
.home-disclaimer p { margin:0; }
.home-faq { max-width:900px; }
.home-faq article { margin:0 0 34px; }
.home-faq h3 { display:flex; gap:18px; }
.home-faq h3 span { flex-shrink:0; color:#748575; font-size:inherit; line-height:inherit; font-family:inherit; }
.home-faq article>p,.home-faq article>a { margin-left:42px; }
.support-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:80px; }
.business-link { margin-top:14px; }
.shops-area { margin-top:64px; }
.shop-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:24px; }
.home-shop { padding:22px; background:#fff; border-radius:4px; text-decoration:none; font-size:var(--home-item-title-size); line-height:var(--home-heading-line-height); font-weight:700; }
.home-shop span { display:block; font-size:var(--home-body-size); line-height:var(--home-body-line-height); font-weight:400; margin-top:8px; }
.home-footer { padding:48px 0 28px; }
.home-footer>.home-wrap { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.home-footer p { font-size:14px; color:#708074; margin-top:10px; }
.home-footer nav { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; align-content:start; }
.home-footer nav a { text-decoration:none; font-size:14px; }
.home-footer small { grid-column:1/-1; font-size:12px; color:#738074; }
@media(max-width:1050px) { .header-row { flex-wrap:wrap; gap:18px; }.home-header nav { justify-content:flex-start; }.hero-grid { gap:25px; }.quality-grid { gap:40px; }.home-wrap { width:calc(100% - 64px); }.guide-grid { gap:20px; } }
@media(max-width:700px) { .home-wrap { width:calc(100% - 40px); }.home-header { padding:20px 0; }.home-header nav { gap:8px 16px; font-size:13px; }.home-brand { font-size:24px; }.home-brand .home-logo { width:230px; }.hero-grid { grid-template-columns:1fr; }.home-hero { padding:35px 0; }.hero-photo { display:none; }.home-hero h1 { font-size:32px; }.home-actions { gap:16px; }.home-section { padding-block:52px; }.find-modes { gap:2px; }.find-modes button { flex-direction:column; gap:0; font-size:12px; padding:12px 3px; }.find-modes button span { font-size:13px; }.find-panel { padding:23px 18px; }.input-action { grid-template-columns:1fr; }.size-fields { grid-template-columns:1fr; gap:18px; }.results-heading { align-items:flex-start; flex-direction:column; gap:10px; }.guide-grid,.quality-grid,.support-grid,.shop-grid { grid-template-columns:1fr; }.guide-grid { gap:35px; }.quality-grid { gap:28px; }.home-disclaimer { padding:24px; }.home-faq article>p,.home-faq article>a { margin-left:0; }.support-grid { gap:36px; }.home-footer>.home-wrap { grid-template-columns:1fr; }.home-footer nav { gap:12px 25px; } }

/* 4つの約束：写真と文章の4段構成。このセクション内だけに適用。 */
#promises { padding-block:88px; background:#fff; }
#promises .section-head { margin-bottom:48px; }
#promises .promise-stories { display:grid; gap:56px; }
#promises .promise-story { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:48px; }
#promises .promise-photo { min-width:0; aspect-ratio:3/2; background:#f4f6f3; border-radius:4px; }
#promises .promise-photo img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; border-radius:4px; }
#promises .promise-content { min-width:0; }
#promises .promise-number { margin:0 0 12px; color:#516e5c; }
#promises .promise-phrase { display:inline-block; max-width:100%; }
#promises .promise-copy { margin:0; }
#promises .promise-intro { margin:0 0 12px; color:#516758; }
#promises .promise-duration { display:inline-block; font-size:inherit; line-height:inherit; font-family:inherit; white-space:nowrap; }
#promises .promise-note { margin:16px 0 0; }
#promises .promise-link { display:inline-flex; align-items:center; gap:12px; min-height:44px; margin-top:12px; padding-block:8px; font-weight:600; color:#345d48; text-decoration:underline; text-underline-offset:5px; }
#promises .promise-link:focus-visible { outline:3px solid #345d48; outline-offset:4px; }
@media(max-width:900px) {
 #promises .promise-story { grid-template-columns:minmax(0,1fr); gap:24px; }
}
@media(max-width:700px) {
 #promises { padding-block:72px; }
 #promises .section-head { margin-bottom:36px; }
 #promises .promise-stories { gap:48px; }
 #promises .promise-story { gap:22px; }
}
