/* B002 approved patterns. Legacy class names retained for adoption compatibility. */
.b002-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.b002-card{padding:28px;display:flex;flex-direction:column;align-items:stretch;gap:16px;min-width:0}.b002-card h3{font-size:var(--font-size-heading-3,24px);line-height:1.5;margin:0}.b002-card p{margin:0;line-height:1.8}.b002-card>.material-symbols-outlined{font-size:36px;color:var(--color-brand-green-dark)}.b002-card>.button{margin-top:auto;font-size:15px}.b002-card .button-label{white-space:normal}.b002-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 32px;padding:32px}.b002-shortcuts .button{font-size:15px}.b002-makers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;list-style:none;padding:0}.b002-makers li{padding:20px;border:1px solid var(--color-border-default);text-align:center;font-weight:700;border-radius:8px;background:#fff}.b002-guarantee-number{font-family:Inter,'Noto Sans JP',sans-serif;font-size:36px;line-height:1.2;font-weight:800;color:var(--color-brand-green-dark);padding-bottom:16px;border-bottom:4px solid var(--color-brand-lime)}.b002-guarantee-number>span{font-size:20px;margin-left:4px}@media(max-width:1199px){.b002-grid{gap:16px}.b002-card{padding:22px}}@media(max-width:959px){.b002-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.b002-shortcuts{grid-template-columns:1fr;padding:20px}.b002-shortcuts .button{max-width:none}:is(.b002-page #warranty, .repair-warranty-scope) .b002-grid{grid-template-columns:1fr}.b002-guarantee-number{font-size:32px}}@media(max-width:767px){.b002-grid{grid-template-columns:1fr}.b002-card{padding:22px;gap:12px}.b002-card h3{font-size:20px}.b002-card>.button{max-width:none}.b002-makers{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.b002-makers li{padding:16px 8px;font-size:14px}}.b002-makers li { display:flex; align-items:center; justify-content:center; gap:8px; }.b002-makers li>.material-symbols-outlined { color:var(--color-brand-green-dark); font-size:24px; flex-shrink:0; }.b002-makers li { display:grid; grid-template-columns:minmax(0,1fr); justify-items:center; gap:12px; padding:24px 16px; }.b002-makers .b002-makers__logo { width:112px; max-width:100%; height:40px; object-fit:contain; }.b002-makers .b002-makers__name { border:0; padding:0; border-radius:0; text-align:center; }@media(max-width:767px) { .b002-makers li { gap:8px; padding:20px 8px; } .b002-makers .b002-makers__logo { width:80px; height:36px; } .b002-makers .b002-makers__name { font-size:12px; } }.b002-shortcuts__title { grid-column:1 / -1; margin:0; font-size:20px; font-weight:700; line-height:1.6; }@media(max-width:767px) { .b002-shortcuts__title { font-size:18px; } }:is(.b002-page #warranty, .repair-warranty-scope) .b002-card { container-type:inline-size; }:is(.b002-page #warranty, .repair-warranty-scope) .b002-cashback-title { white-space:nowrap; font-size:min(24px, 6.6cqi); }@media(max-width:767px) { :is(.b002-page #warranty, .repair-warranty-scope) .b002-cashback-title { font-size:min(20px, 6.6cqi); } }:is(.b002-page #warranty, .repair-warranty-scope) .b002-grid > .b002-card {
  border: 0;
  border-radius: var(--radius-medium);
}:is(.b002-page #warranty, .repair-warranty-scope) .b002-grid > .b002-card { box-shadow: var(--shadow-small); }.b002-guarantee-number > .b002-guarantee-prefix { font-size:20px; margin-left:0; margin-right:4px; }.b002-guarantee-number > .b002-guarantee-value { display:inline-block; font-size:inherit; margin:0; transform:translateY(2px); }.b002-repair-case__photo { display:grid; place-items:center; min-height:140px; background:var(--color-surface-soft); border:1px solid var(--color-border-default); border-radius:8px; color:var(--color-brand-green-darker); font-weight:700; }.b002-repair-case h3.content-heading { margin:0 0 24px; font-size:22px; color:var(--color-text-primary); text-align:left; }.b002-repair-case__details { margin:0; }.b002-repair-case__details > div { display:flex; flex-wrap:wrap; gap:4px 8px; padding:10px 0; border-bottom:1px solid var(--color-border-default); }.b002-repair-case__details dd { margin:0; }.b002-repair-case > .annotation-note { margin:16px 0 0; }.b002-makers .b002-makers__logo { transform:none; }.b002-repair-case__image { margin:0; }.b002-repair-case__image img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; border-radius:8px; }.b002-repair-case__image figcaption { margin-top:6px; font-size:12px; color:var(--color-text-secondary); text-align:center; }.b002-repair-case__table { width:100%; table-layout:fixed; }.b002-repair-case__table th, .b002-repair-case__table td { overflow-wrap:anywhere; }@media(min-width:768px) { .b002-repair-case__table th { width:38%; } }:is(.b002-page #cases, .repair-case-scope) .b002-repair-case__table { margin-top:16px; }@media(min-width:768px) {
  :is(.b002-page #cases, .repair-case-scope) .b002-repair-case__table { table-layout:auto; }
  :is(.b002-page #cases, .repair-case-scope) .b002-repair-case__table th { width:1%; white-space:nowrap; padding-inline:12px; }
}.b002-repair-hero .hero__description { max-width: 34rem; }.b002-repair-hero__points { display: flex; flex-wrap: wrap; gap: 12px; padding: 0; margin: 0 0 24px; list-style: none; }.b002-repair-hero__points li { padding-bottom: 8px; border-bottom: 3px solid var(--color-brand-lime); color: var(--color-brand-green-dark); font-size: 14px; font-weight: 700; }.b002-repair-hero .hero__copy { container-type:inline-size; }.b002-repair-hero #hero-title { font-size:min(52px, 8cqi); letter-spacing:0; }.b002-repair-hero__title-line { white-space:nowrap; font-size:inherit; }.b002-repair-hero__area { margin: 20px 0 0; font-size: 12px; color: var(--color-text-secondary); line-height: 1.8; }.b002-repair-hero__photo { grid-column: 7 / span 6; grid-row: 1; margin: 32px 0 32px 40px; }.b002-repair-hero__photo img { display: block; width: 100%; height: 440px; object-fit: cover; border-radius: 64px 16px 16px 16px; }@media (max-width: 1023px) {
  .b002-repair-hero .hero__inner { grid-template-columns: 1fr; }
  .b002-repair-hero .hero__copy { grid-column: 1; grid-row: auto; }
  .b002-repair-hero__photo { grid-column: 1; grid-row: auto; width: min(100%, 42rem); margin: 0 auto 32px; }
  .b002-repair-hero__photo img { height: 300px; }
}@media (max-width: 767px) {
  .b002-repair-hero__points { gap: 10px; }
  .b002-repair-hero__points li { font-size: 12px; }
  .b002-repair-hero__photo img { height: 240px; border-radius: 40px 12px 12px; }
}:is(.b002-page #cases, .repair-case-scope) .b002-repair-case > .content-heading { margin-bottom:8px; }:is(.b002-page #cases, .repair-case-scope) .b002-repair-case .ui-price-mark { font-size:24px; }:is(.b002-page #cases, .repair-case-scope) .b002-repair-case .ui-price-mark { display:inline-block; line-height:1; vertical-align:middle; }.b002-repair-hero__separator { margin-inline:-.2em; }.b002-repair-hero__photo { height: 370px; overflow: hidden; border-radius: 64px 16px 16px 16px; }.b002-repair-hero__photo img { border-radius: 0; object-position: center top; }@media (max-width: 959px) {
  .b002-repair-hero__photo { height: 250px; }
}@media (max-width: 767px) {
  .b002-repair-hero__photo { height: 200px; border-radius: 40px 12px 12px; }
}:is(.b002-page #hero, .repair-hero-scope).b002-repair-hero {
  background-color: #f2fbf7;
  background-image: linear-gradient(90deg, rgba(255,255,255,.82) 0%, rgba(255,255,255,.66) 48%, rgba(255,255,255,.28) 100%), url('/assets/media/b002-hero-washroom-background.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}@media (max-width: 767px) {
  :is(.b002-page #hero, .repair-hero-scope).b002-repair-hero {
    background-image: linear-gradient(rgba(255,255,255,.84), rgba(255,255,255,.60)), url('/assets/media/b002-hero-washroom-background.png');
  }
}:is(.b002-page #hero, .repair-hero-scope) .b002-repair-hero__points li { font-size: 18px; }:is(.b002-page #hero, .repair-hero-scope) .hero__copy { padding-top: 24px; }@media (min-width: 1024px) {
  :is(.b002-page #hero, .repair-hero-scope) .hero__inner { min-height: 500px; }
}@media (max-width: 767px) {
  :is(.b002-page #hero, .repair-hero-scope) .b002-repair-hero__points li { font-size: 14px; }
}.b002-repair-hero__assurances { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:24px; }.b002-repair-hero__assurances .b002-repair-hero__points { margin:0; gap:10px; }:is(.b002-page #hero, .repair-hero-scope) .b002-repair-hero__points li { font-size:16px; }.b002-repair-hero__assurances .trust-shield-badges { grid-template-columns:repeat(2,90px); width:184px; gap:4px; padding:0; margin:0; list-style:none; flex:0 0 184px; }.b002-repair-hero__assurances .trust-shield-badges > li { height:82px; }.b002-repair-hero__assurances .b001-benefits__shield-main { font-size:26px; }.b002-repair-hero__assurances .b001-benefits__shield-ribbon { font-size:11.5px; }@media (max-width:767px) { :is(.b002-page #hero, .repair-hero-scope) .b002-repair-hero__points li { font-size:14px; } }.b002-repair-hero__assurances .trust-shield-badges { transform:translateY(-16px); }

/* T121-LIB-008: readable phone-width benefits with centered shields. */
@media (max-width:767px) {
  .b002-repair-hero__assurances { display:grid; justify-items:center; gap:12px; min-height:0; margin-bottom:12px; }
  .b002-repair-hero__assurances .b002-repair-hero__points { display:flex; flex-wrap:nowrap; justify-content:center; gap:clamp(4px,1.5cqw,10px); width:100%; max-width:100%; }
  :is(.b002-page #hero, .repair-hero-scope) .b002-repair-hero__assurances .b002-repair-hero__points li { white-space:nowrap; font-size:clamp(10px,3.5cqw,14px); line-height:1.5; padding-bottom:4px; }
  .b002-repair-hero__assurances .trust-shield-badges { transform:none; margin:0; }
}

/* T121-LIB-010: fit repair case titles to their mobile card width. */
@media (max-width:767px) {
  :is(.b002-page #cases, .repair-case-scope) .b002-repair-case { container-type:inline-size; }
  :is(.b002-page #cases, .repair-case-scope) .b002-repair-case > h3.content-heading {
    font-size:clamp(12px,7cqw,18px);
    white-space:nowrap;
  }
}

/* T121-LIB-011: center smaller repair photos within mobile cards. */
@media (max-width:767px) {
  :is(.b002-page #cases, .repair-case-scope) .b002-repair-case__image {
    width:80%;
    max-width:240px;
    margin-inline:auto;
  }
}

/* T121-LIB-012: keep the photo width while removing surplus card space.
   Previous photo: (85% track - 20px padding) * .8, capped at 240px.
   Add the existing 20px padding back for the new card track. */
@media (max-width:767px) {
  :is(.b002-page #cases, .repair-case-scope) .work-grid {
    grid-auto-columns:min(260px,calc(68% + 4px));
  }
  :is(.b002-page #cases, .repair-case-scope) .b002-repair-case__image {
    width:100%;
  }
}
