/* 型番ページ専用。商品・本体・純正品の役割と、通常表示／詳細を分ける。 */
.model-page { --color-text:#303a35; --color-muted:#59665e; --color-brand:#2b5140; --color-border:#d9e2db; --color-surface:#f2f5ef; font-size:1.125rem; line-height:1.8; }
.model-page .container { width:min(1200px,calc(100% - 80px)); }
.model-page .site-header { padding-block:24px; border:0; }
.model-page .header-row,.model-page .model-footer-row { display:flex; justify-content:space-between; align-items:center; gap:32px; }
.model-page .model-brand { display:block; flex-shrink:0; width:250px; text-decoration:none; }
.model-page .model-brand img { width:100%; height:auto; }
.model-page .site-tagline { display:block; font-size:.75rem; padding-top:6px; }
.model-page .model-site-nav { display:flex; flex-wrap:wrap; gap:16px 24px; font-size:.875rem; }
.model-page .model-site-nav a { padding-block:8px; }
.model-page .breadcrumb { margin:24px 0 30px; font-size:.875rem; }
.model-page .breadcrumb ol { display:flex; flex-wrap:wrap; gap:12px; list-style:none; padding:0; }
.model-page .breadcrumb li+li::before { content:'›'; margin-right:12px; color:var(--color-muted); }
.model-page .model-heading { margin-bottom:36px; }
.model-page h1 { color:var(--color-brand); font-size:2rem; line-height:1.5; margin-bottom:14px; }
.model-page .page-intro { max-width:66rem; margin:0; }
.model-page h2 { color:var(--color-brand); font-size:1.75rem; line-height:1.5; margin:0 0 28px; }
.model-page h3 { color:var(--color-brand); font-size:1.25rem; line-height:1.55; }
.model-page .product-overview { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:48px; align-items:center; }
.model-page .overview-image { background:#f6f8f4; padding:24px; border-radius:4px; }
.model-page .overview-image--plain { background:transparent; }
.model-page .product-figure { margin:0; }
.model-page .product-figure img { width:100%; height:auto; object-fit:contain; }
.model-page .body-photo .product-figure--contain-frame img { aspect-ratio:4 / 3; object-fit:contain; }
.model-page .product-figure figcaption { font-size:1rem; color:var(--color-muted); margin-top:12px; }
.model-page .product-figure figcaption:empty { display:none; }
/* A data-defined viewport removes only the original photo’s editorial labels. */
.model-page .product-photo-crop { position:relative; display:block; overflow:hidden; }
.model-page .product-photo-crop img { position:absolute; width:var(--photo-width); max-width:none; height:auto; left:var(--photo-left); top:var(--photo-top); }
.model-page .model-kicker { color:var(--color-brand); font-size:.9375rem; font-weight:700; margin:0 0 8px; letter-spacing:.06em; }
.model-page .overview-copy h2 { font-size:1.875rem; margin-bottom:8px; }
.model-page .registered-name { font-size:1rem; margin:0 0 10px; }
.model-page .overview-size { font-size:1.1875rem; font-weight:700; margin-bottom:20px; }
.model-page .model-measure,.model-page .model-phrase { white-space:nowrap; }
.model-page .overview-conditions { padding:18px 22px 18px 40px; background:var(--color-surface); border-left:3px solid #99b19b; font-size:1rem; margin-bottom:18px; }
.model-page .overview-conditions li+li { margin-top:8px; }
.model-page .genuine-short { font-size:1rem; margin-bottom:22px; }
.model-page .model-button { display:inline-flex; align-items:center; justify-content:center; background:var(--color-brand); color:#fff; padding:14px 22px; min-height:52px; border:1px solid var(--color-brand); border-radius:3px; text-decoration:none; font-size:1rem; font-weight:700; line-height:1.6; max-width:100%; }
.model-page .model-button:hover { background:#203e31; }
.model-page .model-button-outline { color:var(--color-brand); background:#fff; }
.model-page .model-button-outline:hover { background:#eaf0e7; }
.model-page .overview-links { display:flex; flex-wrap:wrap; gap:6px 24px; margin-top:12px; font-size:1rem; }
.model-page .overview-links a { padding-block:8px; }
.model-page .model-section { margin-top:88px; scroll-margin-top:24px; }
.model-page [id] { scroll-margin-top:24px; }
.model-page .model-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:44px; align-items:start; }
.model-page .fit-split { grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); }
.model-page .body-photo h3 { font-size:1rem; margin-bottom:14px; }
.model-page .model-fact-table { width:100%; table-layout:fixed; font-size:1rem; }
.model-page .model-fact-table th,.model-page .model-fact-table td { border:0; border-bottom:1px solid var(--color-border); padding:16px; vertical-align:top; }
.model-page .model-fact-table th { width:31%; background:var(--color-surface); color:var(--color-brand); font-weight:600; }
.model-page .model-fact-table td { background:#fff; }
.model-page .section-fit-title .model-fact-table th,
.model-page .section-fit-title .model-fact-table td { overflow-wrap:anywhere; }
.model-page .model-variants-table th:first-child { width:25%; }
.model-page .model-variants-table th:nth-child(2) { width:30%; }
.model-page .model-variants-table th:nth-child(3) { width:45%; }
.model-page .model-variant-label { display:none; }
.model-page .model-disclosure { border-bottom:1px solid var(--color-border); margin-top:20px; }
.model-page .model-disclosure summary { cursor:pointer; padding:18px 4px; color:var(--color-brand); font-size:1.0625rem; font-weight:650; }
.model-page summary:hover { text-decoration:underline; text-underline-offset:5px; }
.model-page .model-details-content { padding:8px 4px 24px; }
.model-page .model-details-content p { max-width:65rem; }
.model-page .model-details-content ul { padding-left:24px; }
.model-page .model-details-content li+li { margin-top:12px; }
.model-page .dimension-media { text-align:center; }
.model-page .dimension-media img { max-width:470px; margin-inline:auto; }
.model-page .image-enlarge { display:inline-block; margin-top:16px; padding:6px; font-size:1rem; }
.model-page .spec-note { font-size:1rem; margin-top:18px; }
.model-page .model-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; list-style:none; padding:0; margin:28px 0 24px; }
.model-page .model-steps li { min-width:0; }
.model-page .model-steps p { margin-top:14px; font-size:1rem; }
.model-page .model-steps img { aspect-ratio:1; object-fit:contain; }
.model-page .model-video { display:grid; grid-template-columns:240px minmax(0,1fr); align-items:center; gap:32px; padding:28px; margin-top:32px; background:var(--color-surface); }
.model-page .video-preview img { max-width:240px; }
.model-page .video-note { font-size:1rem; color:var(--color-muted); margin:16px 0 0; }
.model-page .quality-guide { background:var(--color-surface); padding:28px 32px; border-left:3px solid #99b19b; }
.model-page .quality-guide p { max-width:58rem; }
.model-page .model-faq { border-top:1px solid var(--color-border); }
.model-page .model-faq:last-child { border-bottom:1px solid var(--color-border); }
.model-page .model-faq summary { cursor:pointer; padding:22px 8px; color:var(--color-brand); }
.model-page .model-faq summary h3 { display:inline; font-size:1.125rem; }
.model-page .model-faq summary h3 span { margin-right:12px; }
.model-page .model-faq-answer { padding:0 24px 24px; }
.model-page .model-faq-answer strong { font-weight:650; }
.model-page .faq-links { display:flex; flex-wrap:wrap; gap:8px 24px; font-size:1rem; }
.model-page .faq-links a { padding-block:5px; }
.model-page .faq-supplemental { flex-basis:100%; }
.model-page .section-supplement { margin-top:72px; }
.model-page .article-footer { margin-top:32px; font-size:.875rem; color:var(--color-muted); }
.model-page .back-top { margin:36px 0 64px; font-size:1rem; }
.model-page .site-footer { border-top:1px solid var(--color-border); padding-block:40px; }
.model-page .site-footer p { font-size:.875rem; margin:18px 0 0; }
@media(max-width:1000px) {
 .model-page .header-row { align-items:start; flex-direction:column; gap:12px; }
 .model-page .product-overview,.model-page .model-split { gap:28px; }
 .model-page .model-footer-row { align-items:start; flex-direction:column; }
}
@media(max-width:800px) {
 .model-page .container { width:calc(100% - 48px); }
 .model-page .product-overview,.model-page .model-split { grid-template-columns:1fr; }
 .model-page .overview-image { max-width:400px; width:100%; margin-inline:auto; }
 .model-page .body-photo { max-width:440px; }
 .model-page .model-steps { grid-template-columns:1fr; gap:28px; }
 .model-page .model-steps .product-figure { max-width:420px; }
 .model-page .model-steps p { max-width:42rem; }
 .model-page .model-video { grid-template-columns:180px minmax(0,1fr); padding:24px; gap:24px; }
}
@media(max-width:540px) {
 .model-page { font-size:1.0625rem; }
 .model-page .container { width:calc(100% - 40px); }
 .model-page .site-header { padding-block:20px 12px; }
 .model-page .model-brand { width:220px; }
 .model-page .model-site-nav { gap:4px 18px; }
 .model-page .breadcrumb { margin:18px 0 24px; }
 .model-page h1 { font-size:1.625rem; }
 .model-page h2 { font-size:1.5rem; margin-bottom:22px; }
 .model-page .model-heading { margin-bottom:24px; }
 .model-page .overview-copy h2 { font-size:1.625rem; }
 .model-page .overview-image { padding:16px; }
 .model-page .overview-size { font-size:1.125rem; }
 .model-page .overview-conditions { padding:16px 16px 16px 32px; }
 .model-page .model-section { margin-top:60px; }
 .model-page .model-fact-table th,.model-page .model-fact-table td { padding:12px 10px; }
 .model-page .model-fact-table th { width:34%; }
 .model-page .model-video { grid-template-columns:1fr; padding:20px; }
 .model-page .video-preview { max-width:200px; }
 .model-page .model-button { padding:14px 16px; }
 .model-page .quality-guide { padding:24px 20px; }
 .model-page .model-faq summary { padding:20px 4px; }
 .model-page .model-faq summary h3 { font-size:1.0625rem; }
 .model-page .model-faq-answer { padding:0 4px 20px; }
 .model-page .model-disclosure .model-fact-table th { width:45%; }
 .model-page .model-variants-table thead { display:none; }
 .model-page .model-variants-table tbody,
 .model-page .model-variants-table tr,
 .model-page .model-disclosure .model-variants-table th,
 .model-page .model-variants-table td { display:block; width:100%; }
 .model-page .model-variants-table tr { margin-bottom:20px; }
 .model-page .model-variant-label { display:block; font-weight:600; color:var(--color-brand); margin-bottom:6px; }
}

/* Keep purchase actions aligned when a store name wraps onto two lines. */

/* Identifier guides only: separate related guide links from the body/photo. */
.model-page .same-filter-guides { margin-top:32px; }

/* Product-bound quality and purchase presentation. Applicability is checked before rendering. */
.model-page .overview-feature { margin:0 0 20px; }
/* Compact quality introduction: photo and result share one row at every width. */
.model-page .product-quality-summary { background:#fff; }
.model-page .product-quality-summary .quality-summary-anchor { display:block; }
.model-page .product-quality-summary .quality-summary-heading { padding:24px 28px; background:var(--color-brand); color:#fff; }
.model-page .product-quality-summary h2 { margin:0 0 8px; color:#fff; font-size:1.875rem; line-height:1.5; overflow-wrap:anywhere; }
.model-page .product-quality-summary h2 > span { display:inline-block; max-width:100%; }
.model-page .product-quality-summary .quality-summary-subtitle { margin:0; font-size:1.0625rem; line-height:1.7; color:#fff; }
.model-page .product-quality-summary .quality-summary-context { margin:18px 0 0; font-size:1rem; font-weight:600; line-height:1.7; }
.model-page .product-quality-summary .quality-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 40px; padding:4px 0 0; }
.model-page .product-quality-summary .quality-result-panel { display:grid; grid-template-columns:112px minmax(0,1fr); gap:16px; align-content:start; align-items:start; min-width:0; padding:24px 0; border-bottom:1px solid var(--color-border); }
.model-page .product-quality-summary .quality-result-photo { display:grid; place-items:center; align-self:start; width:100%; aspect-ratio:1; }
.model-page .product-quality-summary .quality-result-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
/* Retain the foreground organisms in the wider source image. */
.model-page .product-quality-summary .quality-result-panel--antibacterial .quality-result-photo img { object-position:25% center; }
.model-page .product-quality-summary .quality-result-content { min-width:0; overflow-wrap:anywhere; }
.model-page .product-quality-summary h3 { margin:0 0 10px; font-size:1.125rem; line-height:1.55; color:var(--color-text); }
.model-page .product-quality-summary .quality-result-major { display:flex; flex-wrap:wrap; align-items:baseline; gap:0 8px; margin:0 0 6px; color:var(--color-brand); font-size:1.125rem; font-weight:700; }
.model-page .product-quality-summary .quality-result-number { display:inline-flex; flex-wrap:wrap; align-items:baseline; max-width:100%; font-size:2.75rem; line-height:1.15; font-weight:700; font-variant-numeric:tabular-nums; letter-spacing:-.02em; color:var(--color-brand); }
.model-page .product-quality-summary .quality-result-unit { font-size:.5em; margin-left:.1em; letter-spacing:0; }
.model-page .product-quality-summary .quality-result-metric { margin:0 0 8px; font-size:.9375rem; line-height:1.7; }
.model-page .product-quality-summary .quality-result-context { margin-top:10px; }
.model-page .product-quality-summary .quality-result-condition,
.model-page .product-quality-summary .quality-result-note { margin:0; font-size:.9375rem; line-height:1.8; color:var(--color-muted); }
.model-page .product-quality-summary .quality-result-note { margin-top:3px; }
.model-page .product-quality-summary .quality-result-antibacterial { margin:0 0 10px; font-size:1.375rem; line-height:1.55; color:var(--color-brand); }
.model-page .product-quality-summary .quality-result-antibacterial span { display:block; }
.model-page .product-quality-summary .quality-result-deodor { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; margin:12px 0 0; }
.model-page .product-quality-summary .quality-result-deodor div { min-width:0; padding-bottom:8px; border-bottom:1px solid #e8ede9; }
.model-page .product-quality-summary .quality-result-deodor dt { font-size:.9375rem; line-height:1.6; }
.model-page .product-quality-summary .quality-result-deodor dd { margin:2px 0 0; }
.model-page .product-quality-summary .quality-result-deodor .quality-result-number { font-size:1.875rem; }
.model-page .product-quality-summary .quality-summary-footer { padding:20px 0 0; }
.model-page .product-quality-summary .quality-summary-note { margin:0 0 6px; font-size:.875rem; line-height:1.8; color:var(--color-muted); overflow-wrap:anywhere; }
.model-page .product-quality-summary .quality-summary-link { display:inline-block; max-width:100%; margin-top:12px; font-size:1rem; font-weight:600; line-height:1.8; color:var(--color-brand); text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.model-page .product-quality-summary .quality-summary-link:hover { text-decoration-thickness:2px; }
.model-page .product-quality-summary .quality-summary-link:focus-visible { outline:3px solid var(--color-brand); outline-offset:4px; }
@media(max-width:900px) {
 .model-page .product-quality-summary .quality-results { grid-template-columns:1fr; }
}
@media(max-width:600px) {
 .model-page .product-quality-summary .quality-summary-heading { padding:20px; }
 .model-page .product-quality-summary h2 { font-size:1.5rem; }
 .model-page .product-quality-summary .quality-summary-subtitle { font-size:1rem; }
 .model-page .product-quality-summary .quality-result-panel { grid-template-columns:88px minmax(0,1fr); gap:12px; padding:18px 0; }
 .model-page .product-quality-summary .quality-result-number { font-size:2.5rem; }
 .model-page .product-quality-summary .quality-result-antibacterial { font-size:1.125rem; }
 .model-page .product-quality-summary .quality-result-deodor { gap:10px 12px; }
 .model-page .product-quality-summary .quality-result-deodor .quality-result-number { font-size:1.625rem; }
}
@media(max-width:360px) {
 .model-page .product-quality-summary .quality-summary-heading { padding:18px 16px; }
 .model-page .product-quality-summary .quality-result-panel { grid-template-columns:80px minmax(0,1fr); }
}
.model-page .model-purchase-area .section-purchase { margin-top:56px; }
.model-page .model-purchase-area .section-purchase h2 { margin-bottom:24px; font-size:1.875rem; }
.model-page .model-purchase-area .purchase-panel { padding:32px; border:1px solid var(--color-border); border-radius:8px; background:#f3f7f3; }
.model-page .model-purchase-area .purchase-panel > p:first-child { margin-top:0; }
/* Each purchase destination is one complete link; the original artwork stays intact. */
.model-page .model-purchase-area .model-sales { list-style:none; padding:0; display:grid; grid-template-columns:repeat(var(--sales-columns,3),minmax(0,1fr)); gap:12px; margin:28px 0; }
.model-page .model-purchase-area .sales-store-card { display:flex; flex-direction:column; min-width:0; }
.model-page .model-purchase-area .sales-link { display:grid; grid-template-columns:60px minmax(0,1fr); align-items:center; gap:14px; flex:1; padding:12px 14px; border:1px solid #b8cbbd; border-radius:4px; background:#fff; color:var(--color-brand); font-size:1rem; font-weight:700; line-height:1.6; text-decoration:none; }
.model-page .model-purchase-area .sales-link:hover { border-color:var(--color-brand); background:#f8faf8; }
.model-page .model-purchase-area .sales-label { min-width:0; display:block; text-align:left; overflow-wrap:anywhere; }
.model-page .model-purchase-area .sales-label .model-phrase,
.model-page .model-purchase-area + .section-supplement .model-phrase { display:inline-block; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.model-page .model-purchase-area .sales-brand { display:flex; align-items:center; justify-content:center; width:60px; min-height:60px; max-width:100%; padding:0; text-align:center; overflow-wrap:anywhere; }
.model-page .model-purchase-area .sales-brand img { display:block; max-width:100%; height:auto; object-fit:contain; transform:translate(var(--sales-logo-x,0px),var(--sales-logo-y,0px)); }
.model-page .model-purchase-area .sales-link:focus-visible { outline:3px solid var(--color-brand); outline-offset:4px; }
@media(max-width:900px) {
 .model-page .model-purchase-area .model-sales { grid-template-columns:1fr; }
}
@media(max-width:600px) {
 .model-page .model-purchase-area .section-purchase { margin-top:44px; }
 .model-page .model-purchase-area .section-purchase h2 { font-size:1.625rem; }
 .model-page .model-purchase-area .purchase-panel { padding:24px 16px; }
}
