/* 2026-09-11: shared mobile refinements, used by pages and catalog samples. */
.condition-header__illustration { mix-blend-mode: multiply; }
.warranty-card > .warranty-card__details + p { margin-block: 1rem 0; min-height: 0; }
.warranty-cards--compact .warranty-card { padding: var(--space-lg) var(--space-2xl); }
.warranty-cards--compact .warranty-card__hero { min-height:0; gap: .75rem; margin: 0 auto var(--space-xs); }
.warranty-cards--compact .warranty-card__details { display: table; margin: 0; border: 0; border-radius: 0; }
.warranty-cards--compact .warranty-card__details th { white-space: nowrap; }
.warranty-shield { position: relative; aspect-ratio: 1; container-type: inline-size; }
.warranty-shield > img { display: block; width: 100%; height: 100%; mask: url('/assets/media/shield-silhouette-v1-7f46b04cb8.svg') center / 100% 100% no-repeat; }
.warranty-shield__main, .warranty-shield__ribbon { position: absolute; left: 50%; transform: translate(-50%, -50%); white-space: nowrap; line-height: 1.1; font-weight: 900; }
.warranty-shield__main { top: 42%; color: var(--color-text-inverse); font-size: 25cqw; text-shadow: 0 1px 2px rgb(0 42 27 / 35%); }
.warranty-shield__ribbon { top: 74.5%; color: var(--color-brand-green-darker); font-size: 13cqw; }
.warranty-cards--compact .warranty-card__details th,
.warranty-cards--compact .warranty-card__details td { padding-block: .5rem; }
@media (min-width: 768px) {
  .warranty-cards--compact .warranty-grid {
    position: relative;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-md);
  }
  .warranty-cards--compact .warranty-join {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    margin: 0;
  }
  .condition-shell .choice-group { padding-top: .75rem; }
  .condition-shell .choice-list { margin-block-start: .5rem; }
  .cost-card .included-list .check-list__icon { top: 50%; transform: translateY(-50%); }
}
@media (max-width: 767px) {
  .warranty-cards--compact .warranty-card { padding: var(--space-md) 1.25rem; }
  body:has(#legacy-fixed-cta) { padding-bottom: max(0px, calc(var(--fixed-cta-clearance, 182px) - 32px)); }
  #hero #hero-title { margin-bottom: .5rem; }
  #hero .hero__lead { margin-bottom: .5rem; }
  #hero .hero__visual {
    width: calc(100% + 2 * var(--page-gutter));
    margin-inline: calc(-1 * var(--page-gutter));
    aspect-ratio: 2 / 1;
  }
  #hero .hero__art-crop > img {
    width: 185%;
    height: auto;
    left: auto;
    right: 0;
    transform: translateY(-45%);
  }
  #quick-simulator .simulator-choices--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .section--ranking .product-grid {
    display: flex;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 92%);
    gap: var(--space-lg);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    margin-inline: -14px;
    padding: 1rem calc(.25rem + 14px) var(--space-md);
    scroll-padding-inline: calc(.25rem + 14px);
  }
  .section--ranking .product-grid > .product-card {
    flex: 0 0 92%;
    min-width: 0;
    grid-column: auto;
    grid-row: auto;
    scroll-snap-align: start;
  }
  .section--ranking .rank-badge { left: -14px; }
  .section--ranking .product-card__body { zoom: .9; }
  .section--ranking .price-summary__total { white-space: nowrap; }
  .condition-shell .choice-group:nth-child(-n+4) legend span { display: none; }
  .condition-header .section-heading__title { font-size: clamp(1.125rem, 5vw, 1.5rem); }
  .condition-header__illustration { mix-blend-mode: multiply; }
  .condition-shell .choice-group { padding: .5rem .625rem .875rem; }
  .condition-shell .choice-list { margin-block-start: .25rem; gap: .375rem; }
  .condition-shell .choice-group { min-width: 0; }
  .condition-shell .choice-list { flex-wrap: nowrap; overflow-x: auto; padding: .25rem .125rem .5rem; }
  .condition-shell .choice-chip { flex: 0 0 auto; white-space: nowrap; }
  .condition-shell .choice-chip {
    font-size: .75rem;
    padding: .375rem .5rem;
    min-height: 2.25rem;
    white-space: nowrap;
  }
  .manufacturer-card > h3,
  .manufacturer-card > p,
  .manufacturer-card .text-link { font-size: .875rem; line-height: 1.5; }
  #manufacturers .manufacturer-card__logo { scale: .6; transform-origin: left center; }
  #manufacturers .manufacturer-card__name { display: block; }
  #cost .cost-assurance strong { font-size: .9375rem; }
  #cost .cost-assurance p { font-size: .8125rem; line-height: 1.7; }
  .reason-card__content h3 { font-size: 1.125rem; line-height: 1.5; }
  .reason-card__content p { font-size: .875rem; line-height: 1.7; }
  #cost .section-heading__title { font-size: 1.25rem; }
  .cost-card .included-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 .625rem;
  }
  .cost-card .included-list li { min-width: 0; padding: .75rem .25rem .75rem 1.5rem; font-size: .8125rem; gap: .375rem; }
  .cost-card .included-list .check-list__icon { left: 0; top: .75rem; width: 1.125rem; height: 1.125rem; font-size: 1.125rem; }
  .warranty-card__details th { padding-bottom: .25rem; }
  .warranty-card__details td { padding-top: .25rem; }
  .flow-list { gap: 2.5rem; }
  .flow-step:not(:last-child)::after { right: calc(-1.25rem - .5625rem); }
  .contact-cta-phone { width: 100%; min-width: 0; container-type: inline-size; }
  .contact-cta-phone__number-row { width: 100%; gap: .375rem; }
  .contact-cta-phone__number-row img { width: 12cqi; height: auto; flex-shrink: 0; }
  .contact-cta-phone__number-row a { font-size: min(15.3cqi, 4rem); letter-spacing: 0; }
  .contact-cta-phone__hours { width: 100%; text-align: center; }
  .contact-cta-note { display: none; }
  .contact-cta-person { margin-top: .5rem; overflow: hidden; }
  .contact-cta-person img { inset: 0 auto auto 50%; width: 11rem; max-width: none; height: auto; transform: translateX(-55%); object-fit: contain; object-position: center top; }
  .site-footer-bottom__inner { align-items: center; text-align: center; padding-block: .75rem; }
  .site-footer-legal { justify-content: center; }
}

/* F002: スマホはフォームを先に案内する。 */
@media (max-width: 767px) {
  .contact-cta-actions .contact-cta-buttons { order: -1; grid-template-columns: 1fr; }
  .contact-cta-actions .contact-cta-phone { margin-top: .5rem; }
  .contact-cta-buttons .button--line { display: none; }
  .contact-cta-phone__number-row { gap: .216rem; justify-content: center; }
  .contact-cta-phone__number-row img { width: auto; height: min(6.6096cqi, 1.728rem); }
  .contact-cta-phone__number-row a { font-size: min(8.8128cqi, 2.304rem); }
}

@media (max-width: 767px) {
  .contact-cta-copy h2 { font-size: 1.4rem; }

  .contact-cta-phone__label { display: none; }
}

@media (max-width: 767px) {
  .contact-cta-buttons .button--cta > span { white-space: nowrap; font-size: 1rem; }
  .contact-cta-buttons .button--cta > span br { display: none; }
}

.contact-cta-mobile-break { display: none; }
@media (max-width: 767px) {
  .contact-cta-mobile-break { display: initial; }
}

@media (max-width: 767px) {
  .contact-cta-person { min-height: 5rem; max-height: 11rem; overflow: visible; }
  .contact-cta-person img { top: -111px; left: calc(50% + 69px); }
}

@media (max-width: 767px) {
  .contact-cta-chips { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 767px) {
  .contact-cta-panel .contact-cta-actions { margin-top: -50px; }
}

/* F002 heading accent shared across device sizes. */
  .contact-cta-copy h2::after {
    content: "";
    display: block;
    width: 48px;
    height: 6px;
    margin-top: 16px;
    margin-bottom: 16px;
    border-radius: 999px;
    background: linear-gradient(90deg, #00ad72, #008858);
  }
/* Ranking: price-adjacent discount badge, shared presentation with F017. */
.section--ranking .price-summary { grid-template-columns: minmax(0, 1fr) 88px; column-gap: .75rem; }
.section--ranking .price-summary__total { grid-column: 1; grid-row: 2; align-self: center; }
.section--ranking .price-summary__subsidy { grid-column: 1 / -1; justify-self: start; margin-block: .25rem; }
.section--ranking .price-summary > .discount-badge { position: static; grid-column: 2; grid-row: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 88px; height: 88px; padding: 0; margin: 0; min-width: 0; border-radius: 50%; gap: 0; transform: none; white-space: normal; text-align: center; }
.section--ranking .price-summary > .discount-badge > span { display: block; font-size: 12px; line-height: 14px; letter-spacing: 0; }

.section--ranking .price-summary > .discount-badge > span:first-child { padding-left: 2px; }

.section--ranking .price-summary > .discount-badge { grid-row: 1 / 3; align-self: center; }
.section--ranking .price-summary > .discount-badge > span:first-child { font-size: 24px; line-height: 28px; }
.section--ranking .price-summary > .discount-badge > span:last-child { font-size: 13px; line-height: 16px; }
.section--ranking .price-summary__label { grid-column: 1; grid-row: 1; }
.section--ranking .price-summary__total { align-self: end; margin-bottom: 0; }
.section--ranking .price-summary__subsidy { margin-top: 2px; }

/* G002 adopted narrow-phone warranty and optional flow guidance. */
/* T-121: fit warranty headings and terms within narrow cards. */
@media (max-width: 767px) {
  .warranty-cards--compact .warranty-card__label { white-space: normal; word-break: keep-all; overflow-wrap: anywhere; }
}
@media (max-width: 374px) {
  .warranty-cards--compact .warranty-emblem__image { width: 5rem; }
}
@media (min-width: 768px) and (max-width: 959px) {
  .warranty-cards--compact .warranty-card { padding-inline: var(--space-lg); }
  .warranty-cards--compact .warranty-emblem__image { width: 6rem; }
  .warranty-cards--compact .warranty-card__label { word-break: keep-all; overflow-wrap: anywhere; }
  .warranty-cards--compact .warranty-term { min-width: 0; }
  .warranty-cards--compact .warranty-term__line { gap: .375rem; }
  .warranty-cards--compact .warranty-term__eyebrow { padding-block-end: var(--space-xs); font-size: 1.375rem; }
  .warranty-cards--compact .warranty-term__value strong { font-size: 4.25rem; }
  .warranty-cards--compact .warranty-term__value span { font-size: 1.375rem; }
}
.flow-section .flow-swipe-hint{display:none}
@media(max-width:767px){.flow-section .flow-swipe-hint{display:block;margin:0 0 12px;font-size:var(--font-size-small);color:var(--color-text-secondary)}}
.section--ranking .price-summary > .discount-badge { transform: translateY(8px); }
.section--ranking .price-summary__total { transform: translateY(-4px); }

/* F015: 全ページ共通。説明文はカード内幅で左揃えにする。 */
.flow-step .flow-step__body { width: 100%; }
.flow-step .flow-step__body p { text-align: left; }

/* F015: size cards by their longest content and reduce arrows for 5+ steps. */
.flow-list .flow-step { min-height:0; padding-bottom:var(--space-md); }
.flow-list:has(> :nth-child(5)) .flow-step:not(:last-child)::after { width:.75rem; height:1.125rem; }

/* Shared responsive patterns: shields, process steps and service-area cards. */
.trust-shield-badges > li { container-type:inline-size; height:auto; aspect-ratio:1.1; }
.trust-shield-badges .b001-benefits__shield-main { font-size:27.6cqw; }
.trust-shield-badges .b001-benefits__shield-main--wide { font-size:20.3cqw; }
.trust-shield-badges .b001-benefits__shield-ribbon { font-size:10.55cqw; }
@media (max-width:959px) {
 .flow-list.layout-grid { display:flex; flex-wrap:nowrap; box-sizing:border-box; width:100%; max-width:none; gap:2rem; padding:4px 4px var(--space-md); overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; scrollbar-width:thin; }
 .flow-list.layout-grid > .flow-step { flex:0 0 min(80%,22rem); scroll-snap-align:start; }
 .flow-list.layout-grid > .flow-step:not(:last-child)::after { display:block; inset:50% -1.75rem auto auto; transform:translateY(-50%); }
 .area-grid.layout-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
 .area-grid.layout-grid .area-card { min-width:0; min-height:0; grid-template-columns:auto minmax(0,1fr); grid-template-rows:auto 1fr; padding:16px; align-items:start; }
 .area-grid.layout-grid .area-card__index { grid-area:1 / 1; }
 .area-grid.layout-grid .area-card__content { grid-area:1 / 2; min-width:0; }
 .area-grid.layout-grid .area-card__map { grid-area:2 / 1 / auto / -1; width:100%; align-self:end; }
 .area-grid.layout-grid .area-card p { min-height:0; }
}
/* F009-01: phones use one card per row, with a compact map replacing the number. */
@media (max-width:767px) {
 .area-grid.layout-grid { grid-template-columns:minmax(0,1fr); }
 .area-grid.layout-grid .area-card { grid-template-columns:clamp(4rem,20vw,5rem) minmax(0,1fr); grid-template-rows:auto; column-gap:16px; border-radius:.75rem; }
 .area-grid.layout-grid .area-card__index { display:none; }
 .area-grid.layout-grid .area-card__base { display:none; }
 .area-grid.layout-grid .area-card__map { grid-area:1 / 1; width:100%; aspect-ratio:1; display:grid; place-items:center; align-self:center; }
}
@media (max-width:480px) {
 .area-grid.layout-grid { gap:12px; }
 .area-grid.layout-grid .area-card { padding:12px; }
 .area-grid.layout-grid .area-card h3 { font-size:1rem; }
 .area-grid.layout-grid .area-card p { font-size:.75rem; }
}

/* T121-LIB-001: keep the complete product term on one baseline. */
.warranty-cards--compact .warranty-term--product .warranty-term__line { display:flex; flex-wrap:nowrap; align-items:baseline; gap:4px; white-space:nowrap; }
.warranty-cards--compact .warranty-term__note { margin-block-start:0; padding-inline-end:0; white-space:nowrap; flex-shrink:0; }
@media (max-width:1199px) {
  .warranty-cards--compact .warranty-emblem__image { width:4rem; }
  .warranty-cards--compact .warranty-term { min-width:0; }
  .warranty-cards--compact .warranty-term__eyebrow { font-size:1.125rem; padding-block-end:0; }
  .warranty-cards--compact .warranty-term__value strong { font-size:3.5rem; }
  .warranty-cards--compact .warranty-term__value span { font-size:1.25rem; }
}

/* F020: give manufacturer rows and the symptom links more vertical space. */
.section--sos .error-maker-list {
  row-gap:16px;
  margin-block-start:16px;
}
.section--sos .error-maker-list + .symptom-links {
  margin-block-start:32px;
}
