/* 생활수리: 사진 스타일의 서비스 안내 이미지와 공임표. */
.repair-page { color: #223b31; }
.repair-inner { width: 100%; max-width: 1160px; margin: 0 auto; }
.repair-eyebrow { display: block; color: #527458; font-size: .77rem; font-weight: 750; line-height: 1.7; letter-spacing: .035em; margin-bottom: 14px; }
.repair-hero { padding: 126px 5% 26px; background: #f5f3ed; }
.repair-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 52px; align-items: center; }
.repair-hero h1 { color: #1b3c35; font-size: clamp(2rem, 3.8vw, 3.25rem); font-weight: 800; line-height: 1.33; letter-spacing: -.045em; }
.repair-hero h1 em { color: #3e7862; font-style: normal; }
.repair-hero-copy > p { color: #5c695d; font-size: 1rem; line-height: 1.95; margin: 24px 0 26px; }
.repair-hero-copy > small { display: block; color: #66745f; font-size: .76rem; line-height: 1.8; margin-top: 22px; }
.repair-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 22px; }
.repair-button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; padding: 15px 23px; min-height: 48px; border: 1px solid #26544a; border-radius: 8px; background: #26544a; color: #fff; font: inherit; font-size: .92rem; font-weight: 750; text-decoration: none; cursor: pointer; }
.repair-button:hover { background: #1b3c35; border-color: #1b3c35; }
.repair-text-link { display: inline-flex; align-items: center; min-height: 44px; color: #26544a; font-size: .86rem; font-weight: 650; line-height: 1.7; text-underline-offset: 5px; }
.repair-button-outline { color: #26544a; background: transparent; }
.repair-button-outline:hover { color: #fff; }
.repair-hero-photo { margin: 0; overflow: hidden; border: 1px solid #dce3d6; border-radius: 16px; background: #fff; }
.repair-hero-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.repair-hero-photo figcaption { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; padding: 16px 20px; color: #37533e; line-height: 1.7; }
.repair-hero-photo figcaption strong { font-size: .8rem; font-weight: 650; }
.repair-hero-photo figcaption span { color: #667160; font-size: .69rem; }
.repair-illustration { margin: 0; padding: 24px 24px 18px; background: #e9ede1; border: 1px solid #d6dfcf; border-radius: 16px; overflow: hidden; }
.repair-illustration-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; color: #43614a; font-size: .8rem; font-weight: 750; }
.repair-illustration-heading > span:last-child { font-size: 1.35rem; font-weight: 400; }
.repair-illustration > svg { display: block; width: 100%; height: auto; margin: 2px 0 6px; }
.repair-illustration figcaption { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.repair-illustration figcaption span { padding: 10px 6px; border: 1px solid #d6dfcf; border-radius: 6px; background: #f8faf3; color: #3c5d46; text-align: center; font-size: .79rem; font-weight: 650; }
.repair-illustration > small { display: block; margin-top: 12px; color: #65745e; font-size: .68rem; line-height: 1.7; text-align: right; }
.repair-jump-links { display: flex; flex-wrap: wrap; gap: 6px 28px; margin-top: 40px; padding-top: 17px; border-top: 1px solid #d8dfd2; }
.repair-jump-links a { display: inline-flex; align-items: center; min-height: 42px; color: #375b48; font-size: .83rem; font-weight: 700; text-decoration: none; }
.repair-jump-links a:hover { text-decoration: underline; text-underline-offset: 5px; }
.repair-section { padding: 72px 5%; scroll-margin-top: 74px; }
.repair-section-tint { background: #f6f7f3; }
.repair-section-heading { max-width: 740px; margin-bottom: 30px; }
.repair-section-heading h2 { color: #223b31; font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; line-height: 1.4; letter-spacing: -.04em; }
.repair-section-heading > p { color: #5f6c60; font-size: .94rem; line-height: 1.9; margin-top: 14px; }
.repair-section-heading > p strong { color: #35533d; font-weight: 700; }
.repair-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.repair-service-card { display: flex; flex-direction: column; min-width: 0; padding: 26px; border: 1px solid #dce4d7; border-radius: 12px; background: #fff; }
.repair-card-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 68px; margin-bottom: 18px; }
.repair-card-top > span { color: #628064; font-size: .77rem; font-weight: 650; }
.repair-card-top > svg { flex: 0 0 60px; width: 60px; height: 60px; padding: 5px; stroke: #4c7056; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; background: #f1f5ec; border-radius: 12px; }
.repair-service-card h3 { color: #294a38; font-size: 1.15rem; font-weight: 750; line-height: 1.55; letter-spacing: -.035em; }
.repair-service-card > p { color: #647060; font-size: .88rem; line-height: 1.9; margin-top: 12px; }
.repair-service-card ul { margin: 20px 0 24px; padding-left: 17px; color: #486248; font-size: .81rem; line-height: 1.9; }
.repair-service-card li + li { margin-top: 7px; }
.repair-card-note { margin-top: auto; padding-top: 18px; border-top: 1px solid #e1e8db; color: #63705e; font-size: .76rem; line-height: 1.85; }
.repair-more { display: flex; align-items: center; justify-content: space-between; gap: 26px; margin-top: 24px; padding: 24px 26px; border: 1px solid #dce4d7; border-radius: 10px; background: #f6f7f3; }
.repair-more h3 { color: #35543d; font-size: 1rem; line-height: 1.6; }
.repair-more p { color: #647060; font-size: .86rem; line-height: 1.8; margin-top: 7px; }
.repair-more > a { flex-shrink: 0; }
.repair-price-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.repair-price-card { min-width: 0; overflow: hidden; border: 1px solid #d9e2d4; border-radius: 12px; background: #fff; }
.repair-price-table { width: 100%; border-collapse: collapse; text-align: left; }
.repair-price-table caption { background: #2d5445; color: #fff; text-align: left; padding: 22px 26px; font-size: 1.08rem; font-weight: 700; }
.repair-price-table caption span { display: block; margin-top: 7px; color: #d8e6d1; font-size: .77rem; font-weight: 450; line-height: 1.7; }
.repair-price-table thead { background: #edf2e8; }
.repair-price-table thead th { padding: 12px 26px; color: #536c4e; font-size: .78rem; font-weight: 650; }
.repair-price-table th:last-child { text-align: right; }
.repair-price-table tbody th, .repair-price-table tbody td { padding: 20px 26px; border-top: 1px solid #e2e8dd; }
.repair-price-table tbody th { color: #35533d; font-size: .89rem; font-weight: 650; line-height: 1.6; }
.repair-price-table tbody small { display: block; color: #697764; font-size: .74rem; font-weight: 450; line-height: 1.8; margin-top: 4px; }
.repair-price-table td { color: #28553e; white-space: nowrap; text-align: right; font-size: 1.04rem; font-weight: 800; letter-spacing: -.03em; }
.repair-price-note { padding: 20px 26px; border-top: 1px solid #dce4d7; background: #f8faf5; color: #596d52; font-size: .8rem; line-height: 1.9; }
.repair-quote-guide { padding: 28px; background: #e8efdf; border: 1px solid #d4dfc9; border-radius: 12px; }
.repair-quote-guide h3 { color: #304f38; font-size: 1.5rem; line-height: 1.45; letter-spacing: -.035em; }
.repair-quote-guide ol { counter-reset: quote; list-style: none; margin: 26px 0; padding: 0; }
.repair-quote-guide li { position: relative; padding-left: 33px; counter-increment: quote; }
.repair-quote-guide li + li { margin-top: 22px; }
.repair-quote-guide li::before { content: counter(quote); position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 23px; height: 23px; border: 1px solid #acbd9e; border-radius: 50%; color: #456340; font-size: .72rem; }
.repair-quote-guide li strong { display: block; color: #34513a; font-size: .88rem; line-height: 1.6; }
.repair-quote-guide li span { display: block; color: #607054; font-size: .8rem; line-height: 1.85; margin-top: 6px; }
.repair-quote-guide .repair-button { width: 100%; font-size: .85rem; padding-inline: 14px; }
.repair-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; list-style: none; padding: 0; margin: 0; }
.repair-steps > li { padding-top: 22px; border-top: 2px solid #bdcdb4; }
.repair-steps > li > span { display: block; color: #6e8c60; font-size: .85rem; font-weight: 650; margin-bottom: 16px; }
.repair-steps h3 { color: #31503b; font-size: 1.04rem; font-weight: 750; line-height: 1.6; }
.repair-steps p { color: #647060; font-size: .85rem; line-height: 1.9; margin-top: 10px; }
.repair-scope-note { color: #697564; background: #f6f7f3; border-radius: 8px; padding: 18px 22px; margin-top: 34px; font-size: .8rem; line-height: 1.9; }
.repair-faq-section { padding-top: 24px; }
.repair-faq-layout { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 60px; }
.repair-faq-layout .repair-text-link { margin-top: 16px; }
.repair-faq { border-top: 1px solid #dce4d7; }
.repair-faq details { border-bottom: 1px solid #dce4d7; padding: 19px 0; }
.repair-faq summary { cursor: pointer; color: #304d3b; font-size: .94rem; font-weight: 700; line-height: 1.8; padding-right: 12px; }
.repair-faq summary::marker { color: #6a8962; font-size: .8rem; }
.repair-faq details p { color: #617060; font-size: .86rem; line-height: 1.95; padding-top: 14px; }
.repair-final { padding: 50px 5%; background: #eaf1e3; }
.repair-final-grid { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.repair-final h2 { color: #294735; font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.45; letter-spacing: -.04em; }
.repair-final p { color: #5f7058; font-size: .87rem; line-height: 1.9; margin-top: 14px; }
.repair-final-actions { flex-shrink: 0; display: flex; flex-direction: column; align-items: center; gap: 5px; }
.repair-final-actions .repair-button { margin-bottom: 6px; }
.repair-page main a:focus-visible, .repair-faq summary:focus-visible, .repair-contact-dock a:focus-visible { outline: 3px solid #618055; outline-offset: 4px; }
.repair-contact-dock { display: none; }
@media (max-width: 1000px) {
  .repair-hero-grid { gap: 30px; }
  .repair-service-grid { gap: 16px; }
  .repair-service-card { padding: 22px; }
  .repair-price-layout { gap: 20px; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
  .repair-price-table tbody th, .repair-price-table tbody td, .repair-price-table thead th { padding-inline: 18px; }
  .repair-quote-guide { padding: 24px; }
  .repair-faq-layout { gap: 36px; }
}
@media (max-width: 760px) {
  .repair-hero { padding: 106px 5% 22px; }
  .repair-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .repair-hero-copy > p { margin: 18px 0 22px; font-size: .95rem; }
  .repair-illustration { width: 100%; max-width: 560px; padding: 20px; }
  .repair-jump-links { gap: 4px 22px; margin-top: 24px; }
  .repair-section { padding: 46px 5%; }
  .repair-service-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .repair-service-card { padding: 24px; }
  .repair-card-top { min-height: 56px; margin-bottom: 8px; }
  .repair-card-top > svg { flex-basis: 54px; width: 54px; height: 54px; }
  .repair-service-card ul { margin-block: 16px 20px; }
  .repair-more { flex-direction: column; align-items: flex-start; gap: 12px; padding: 22px; }
  .repair-price-layout { grid-template-columns: minmax(0, 1fr); }
  .repair-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 22px; }
  .repair-faq-section { padding-top: 12px; }
  .repair-faq-layout { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .repair-faq-layout .repair-section-heading { margin-bottom: 12px; }
  .repair-final { padding: 38px 5%; }
  .repair-final-grid { flex-direction: column; align-items: flex-start; gap: 24px; }
  .repair-final-actions { width: 100%; align-items: flex-start; }
  .repair-final-actions .repair-button { width: 100%; }
  .repair-page { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  .repair-page .fab, .repair-page .phone-fab, .repair-page .email-fab, .repair-page .admin-link { display: none; }
  .repair-page .kakao-fab { width: 48px; height: 48px; right: 16px; bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
  .repair-contact-dock { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; position: fixed; z-index: 950; inset: auto 0 0; padding: 10px 5% calc(10px + env(safe-area-inset-bottom, 0px)); background: #fffffff7; border-top: 1px solid #dce4d7; box-shadow: 0 -4px 20px #2039290a; }
  .repair-contact-dock a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px; border-radius: 8px; border: 1px solid #cedbca; color: #26544a; font-size: .89rem; font-weight: 800; text-decoration: none; }
  .repair-contact-dock .repair-dock-quote { background: #26544a; border-color: #26544a; color: #fff; }
}
@media (max-width: 380px) {
  .repair-hero h1 { font-size: 1.95rem; }
  .repair-hero .repair-actions { gap: 8px 16px; }
  .repair-hero .repair-button { padding-inline: 18px; gap: 12px; }
  .repair-jump-links { gap: 2px 17px; }
  .repair-jump-links a { font-size: .77rem; }
  .repair-price-table tbody th, .repair-price-table tbody td, .repair-price-table thead th { padding-inline: 12px; }
  .repair-price-table tbody th { font-size: .82rem; }
  .repair-price-table td { font-size: .93rem; }
  .repair-price-table caption, .repair-price-note { padding-inline: 18px; }
  .repair-steps { gap: 26px 18px; }
  .repair-steps h3 { font-size: .95rem; }
}
/* 2026-10 카톡 견적: 생활수리 고정 줄도 전화 상담 · 카톡 견적 · 견적 문의 3칸 */
@media (max-width: 760px) {
  .repair-contact-dock.has-kakao { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .repair-contact-dock.has-kakao a { padding: 12px 6px; font-size: .9rem; }
  .repair-contact-dock .dock-kakao { background: #FEE500; border-color: #FEE500; color: #3C1E1E; }
  .repair-page .kakao-fab { display: none; }
}
