.service-page-main { max-width: 1180px; margin: 0 auto; padding: 0 1rem 4rem; }
.service-breadcrumb { margin: 1rem 0; }
.service-page-hero {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
  gap: 1.25rem; align-items: stretch; margin: 1rem 0 1.5rem;
}
.service-page-hero-copy, .service-page-hero-image, .service-page .seo02-card {
  border: 1px solid rgba(184,115,51,.35); border-radius: 14px; background: rgba(18,20,22,.78);
}
.service-page-hero-copy { padding: clamp(1.25rem, 4vw, 2.5rem); }
.service-page-hero-copy h1 { margin: .25rem 0 .8rem; font-size: clamp(1.8rem, 4vw, 2.8rem); line-height: 1.2; }
.service-answer { color: #eee7dc; font-size: 1.08rem; line-height: 1.8; }
.service-answer strong, .service-page-note strong { color: #e0b070; }
.service-page-note { color: #bdb5ab; line-height: 1.65; }
.service-page-hero-image { overflow: hidden; min-height: 260px; margin: 0; }
.service-page-hero-image img { width: 100%; height: auto; min-height: 0; object-fit: contain; display: block; }
.service-page-hero-image figcaption { padding: .55rem .75rem; color: #aaa197; font-size: .78rem; line-height: 1.4; }
.service-visual-support { margin: 1rem 0; }
.service-visual-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.service-visual-card { overflow: hidden; border: 1px solid rgba(184,115,51,.25); border-radius: 12px; background: rgba(10,12,14,.7); }
.service-visual-card img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.service-visual-card figcaption { padding: .7rem .8rem; color: #c8c1b7; font-size: .86rem; line-height: 1.55; }
.service-visual-card.is-pending { min-height: 210px; display: flex; flex-direction: column; justify-content: flex-end; background: linear-gradient(145deg, rgba(184,115,51,.14), rgba(18,20,22,.9) 62%), repeating-linear-gradient(135deg, transparent 0 14px, rgba(255,255,255,.025) 14px 15px); }
.service-visual-card.is-pending::before { content: "IRONSERVICE"; display: block; margin: auto auto .25rem; color: rgba(224,176,112,.72); letter-spacing: .18em; font-size: .75rem; }
.service-visual-card.is-pending figcaption { width: 100%; border-top: 1px solid rgba(184,115,51,.2); }
.service-visual-card.is-pending strong { display: block; color: #e0b070; margin-bottom: .2rem; }
.service-page-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0; }
.service-page .seo02-card { padding: 1.25rem; }
.service-page .seo02-section h2, .service-next-links h2 { margin-top: 0; }
.service-check-list, .service-steps { margin: 0; padding-left: 1.25rem; }
.service-check-list li, .service-steps li { margin: .55rem 0; line-height: 1.65; color: #d2cbc2; }
.service-check-list li::marker, .service-steps li::marker { color: #d4924a; }
.service-note { border-left: 3px solid #d4924a; padding: .8rem 1rem; margin: 1.2rem 0 0; background: rgba(184,115,51,.08); color: #d2cbc2; line-height: 1.7; }
.service-limitation { color: #bdb5ab; font-size: .92rem; line-height: 1.65; }
.service-related-list { display: flex; flex-wrap: wrap; gap: .65rem; }
.service-related-list a, .service-next-links a { color: #e0b070; }
.service-related-list a { display: inline-block; border: 1px solid rgba(184,115,51,.35); border-radius: 999px; padding: .55rem .8rem; text-decoration: none; }
.service-related-list a:hover, .service-related-list a:focus { background: rgba(184,115,51,.12); }
.service-page .seo02-faq { margin: 1rem 0; }
.service-page .seo02-faq details { border-bottom: 1px solid rgba(255,255,255,.1); padding: .85rem 0; }
.service-page .seo02-faq details:last-child { border-bottom: 0; }
.service-page .seo02-faq summary { cursor: pointer; color: #eee7dc; font-weight: 600; }
.service-page .seo02-faq details p { color: #c8c1b7; line-height: 1.7; margin-bottom: 0; }
.service-page-contact { margin-top: 1rem; }
.service-next-links { padding: 1rem 0; }
.service-next-links ul { display: flex; flex-wrap: wrap; gap: .65rem 1.25rem; padding-left: 1.25rem; }
.service-sticky-contact { position: fixed; left: 0; right: 0; bottom: 0; display: flex; gap: .5rem; padding: .55rem; background: rgba(10,12,14,.94); z-index: 40; }
.service-sticky-contact a { flex: 1; text-align: center; }
@media (max-width: 800px) {
  .service-page-hero, .service-page-grid { grid-template-columns: 1fr; }
  .service-visual-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-page-main { padding-left: .75rem; padding-right: .75rem; }
}
@media (max-width: 480px) {
  .service-visual-grid { grid-template-columns: 1fr; }
}
