.quality-page {
    overflow: clip;
    color: var(--nhk-body);
    background: var(--nhk-white);
    font-family: "Avenir Next", sans-serif;
    font-size: 1.7rem;
    font-weight: 400;
    line-height: 1.68;
}

.quality-container {
    width: min(calc(100% - 4.8rem), 124rem);
    margin: 0 auto;
}

.quality-page h1,
.quality-page h2,
.quality-page h3,
.quality-page p,
.quality-page dl,
.quality-page dd {
    margin: 0;
}

.quality-page h1,
.quality-page h2,
.quality-page h3 {
    color: var(--nhk-navy);
    letter-spacing: -0.035em;
}

.quality-page h1 {
    max-width: 66rem;
    font-size: clamp(4.6rem, 4.3vw, 6.3rem);
    font-weight: 600;
    line-height: 1.04;
}

.quality-page h2 {
    font-size: clamp(3.4rem, 3.1vw, 4.8rem);
    font-weight: 600;
    line-height: 1.12;
}

.quality-page h3 {
    font-size: 2.1rem;
    font-weight: 600;
    line-height: 1.25;
}

.quality-eyebrow {
    margin-bottom: 1.8rem !important;
    color: #426f67;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.quality-section {
    padding: clamp(8.8rem, 8vw, 12.8rem) 0;
    scroll-margin-top: 9rem;
}

.quality-heading {
    max-width: 80rem;
    margin-bottom: 5.2rem;
}

.quality-heading--wide {
    max-width: 91rem;
}

.quality-heading h2,
.quality-copy h2 {
    margin-bottom: 2.4rem;
}

.quality-heading > p:last-child,
.quality-copy > p {
    max-width: 72rem;
}

.quality-heading > p + p,
.quality-copy > p + p {
    margin-top: 2rem;
}

.quality-hero {
    position: relative;
    display: grid;
    min-height: 68rem;
    align-items: center;
    background: #f7fafb;
}

.quality-hero::after {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0;
    background: linear-gradient(90deg, #f7fafb 0%, #f7fafb 32%, rgba(247, 250, 251, 0.97) 40%, rgba(247, 250, 251, 0.86) 48%, rgba(247, 250, 251, 0.6) 58%, rgba(247, 250, 251, 0.25) 68%, rgba(247, 250, 251, 0) 78%);
    pointer-events: none;
}

.quality-hero__media {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 59%;
    overflow: hidden;
    background: #e9eff1;
}

.quality-hero__media picture,
.quality-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
}

.quality-hero__media img {
    object-fit: cover;
    object-position: 54% center;
}

.quality-hero__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 49%) minmax(0, 1fr);
    align-items: center;
    padding: 8.5rem 0;
}

.quality-hero__content {
    padding: 3.6rem 0;
}

.quality-hero__intro {
    max-width: 62rem;
    margin-top: 3rem !important;
    font-size: 1.85rem;
    line-height: 1.7;
}

.quality-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1.4rem;
    margin-top: 4.2rem;
}

.quality-overview {
    background: #fff;
}

.quality-stage-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--nhk-line);
    border-left: 1px solid var(--nhk-line);
    list-style: none;
}

.quality-stage-list li {
    display: grid;
    min-height: 16.5rem;
    align-content: space-between;
    gap: 2.8rem;
    padding: 2.7rem 2.4rem;
    border-right: 1px solid var(--nhk-line);
    border-bottom: 1px solid var(--nhk-line);
    background: #fff;
}

.quality-stage-list li:nth-child(even) {
    background: #f8fbfc;
}

.quality-stage-list span,
.quality-control-cards span {
    color: #6f9a94;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.quality-stage-list strong {
    max-width: 19rem;
    color: var(--nhk-navy);
    font-size: 1.58rem;
    font-weight: 600;
    line-height: 1.35;
}

.quality-receipt,
.quality-storage,
.quality-specifications,
.quality-documents {
    background: var(--nhk-mist);
}

.quality-split,
.quality-analysis__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.94fr) minmax(42rem, 1.06fr);
    gap: clamp(5rem, 7vw, 10rem);
    align-items: center;
}

.quality-split--reverse {
    grid-template-columns: minmax(42rem, 1.06fr) minmax(0, 0.94fr);
}

.quality-image {
    position: relative;
    overflow: hidden;
    margin: 0;
    border-radius: 1.1rem;
    background: #e9eff1;
}

.quality-image picture,
.quality-image img {
    display: block;
    width: 100%;
    height: 100%;
}

.quality-image img {
    object-fit: cover;
}

.quality-image figcaption {
    position: absolute;
    right: 1.2rem;
    bottom: 1.2rem;
    left: 1.2rem;
    padding: 0.9rem 1.2rem;
    border: 1px solid rgba(255, 255, 255, 0.54);
    border-radius: 0.7rem;
    color: var(--nhk-navy);
    background: rgba(255, 255, 255, 0.92);
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.35;
    backdrop-filter: blur(7px);
}

.quality-receipt__gallery {
    position: relative;
    min-height: 52rem;
}

.quality-image--receipt-main {
    position: absolute;
    top: 0;
    right: 0;
    width: 88%;
    height: 39rem;
}

.quality-image--receipt-main img {
    object-position: 56% center;
}

.quality-image--receipt-detail {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 48%;
    height: 24rem;
    border: 0.9rem solid var(--nhk-mist);
    box-shadow: 0 1.8rem 4rem rgba(19, 56, 77, 0.12);
}

.quality-image--receipt-detail img {
    object-position: 58% center;
}

.quality-analysis {
    background: #fff;
}

.quality-analysis__grid {
    align-items: start;
}

.quality-image--analysis {
    aspect-ratio: 4 / 3;
}

.quality-image--analysis img {
    object-position: 54% center;
}

.quality-analysis__method {
    margin-top: 2.5rem;
    padding: 2.2rem 0 0;
    border-top: 1px solid var(--nhk-line);
}

.quality-analysis__method h3 {
    margin-bottom: 0.8rem;
}

.quality-characteristics {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 1rem;
    border-top: 1px solid var(--nhk-line);
    border-left: 1px solid var(--nhk-line);
}

.quality-characteristics > div {
    display: grid;
    min-height: 10.8rem;
    grid-template-columns: 2.8rem minmax(0, 1fr);
    gap: 1.2rem;
    align-items: start;
    padding: 2.2rem 1.8rem;
    border-right: 1px solid var(--nhk-line);
    border-bottom: 1px solid var(--nhk-line);
}

.quality-characteristics span {
    color: #6f9a94;
    font-size: 1.1rem;
    font-weight: 600;
}

.quality-characteristics strong {
    color: var(--nhk-navy);
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1.45;
}

.quality-decision {
    background: #fff;
}

.quality-outcomes {
    display: grid;
    grid-template-columns: minmax(0, 1.24fr) minmax(0, 0.76fr);
    gap: 2.2rem;
}

.quality-outcome {
    padding: clamp(3rem, 4.2vw, 5.4rem);
    border: 1px solid var(--nhk-line);
    border-radius: 1.2rem;
}

.quality-outcome--accepted {
    background: #f1f6f3;
}

.quality-outcome--returned {
    background: #f7f7f3;
}

.quality-outcome__status {
    display: inline-block;
    margin-bottom: 2rem;
    color: #426f67;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.quality-outcome h3 {
    margin-bottom: 1.5rem;
    font-size: 2.6rem;
}

.quality-outcome ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem 2rem;
    margin: 2.6rem 0 0;
    padding: 2.5rem 0 0;
    border-top: 1px solid rgba(22, 67, 97, 0.14);
    list-style: none;
}

.quality-outcome li {
    position: relative;
    padding-left: 1.8rem;
    color: var(--nhk-navy);
    font-size: 1.4rem;
    font-weight: 500;
}

.quality-outcome li::before {
    content: "";
    position: absolute;
    top: 0.8rem;
    left: 0;
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 50%;
    background: #6f9a94;
}

.quality-image--storage {
    aspect-ratio: 4 / 3;
}

.quality-image--storage img {
    object-position: 52% center;
}

.quality-storage__conditions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem;
    margin-top: 3.4rem !important;
}

.quality-storage__conditions div {
    padding: 2.2rem;
    border: 1px solid #ccdcdf;
    border-radius: 0.8rem;
    background: #fff;
}

.quality-storage__conditions dt {
    color: #6c8592;
    font-size: 1.18rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.quality-storage__conditions dd {
    margin-top: 0.7rem;
    color: var(--nhk-navy);
    font-size: 2rem;
    font-weight: 600;
}

.quality-production {
    background: #fff;
}

.quality-control-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.6rem;
}

.quality-control-cards article {
    min-height: 16rem;
    padding: 2.6rem 2.3rem;
    border: 1px solid var(--nhk-line);
    border-radius: 0.9rem;
    background: #f8fbfc;
}

.quality-control-cards h3 {
    margin-top: 4rem;
    font-size: 1.72rem;
}

.quality-text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.9rem;
    margin-top: 3.2rem;
    color: var(--nhk-navy);
    font-size: 1.5rem;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: #9ebbbc;
    text-underline-offset: 0.45rem;
}

.quality-specification-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.2rem;
}

.quality-specification-card {
    display: flex;
    min-height: 47rem;
    flex-direction: column;
    padding: clamp(3rem, 4vw, 5rem);
    border: 1px solid #cbdcdf;
    border-radius: 1.2rem;
    background: #fff;
}

.quality-specification-card > p {
    color: #6c8592;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.quality-specification-card h3 {
    margin: 1.2rem 0 2.8rem;
    font-size: 3.4rem;
}

.quality-specification-card h3 span {
    color: #6f9a94;
}

.quality-specification-card ul {
    display: grid;
    gap: 1.2rem;
    margin: 0 0 3rem;
    padding: 0;
    list-style: none;
}

.quality-specification-card li {
    position: relative;
    padding-left: 2.1rem;
}

.quality-specification-card li::before {
    content: "";
    position: absolute;
    top: 0.85rem;
    left: 0;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background: #6f9a94;
}

.quality-specification-card a {
    display: inline-flex;
    align-items: center;
    gap: 0.9rem;
    margin-top: auto;
    color: var(--nhk-navy);
    font-size: 1.5rem;
    font-weight: 600;
}

.quality-rrm-definition {
    margin-top: 2.5rem !important;
    color: #527183;
    font-size: 1.45rem;
}

.quality-packing {
    color: rgba(255, 255, 255, 0.82);
    background: var(--nhk-navy);
}

.quality-packing__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: clamp(5rem, 9vw, 13rem);
    align-items: start;
}

.quality-packing h2,
.quality-packing .quality-eyebrow {
    color: #fff;
}

.quality-packing .quality-copy > p {
    max-width: 66rem;
}

.quality-traceability {
    background: #fff;
}

.quality-trace-flow {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: stretch;
}

.quality-trace-flow__node {
    display: grid;
    min-height: 11rem;
    place-items: center;
    padding: 1.8rem;
    border: 1px solid var(--nhk-line);
    border-radius: 0.8rem;
    color: var(--nhk-navy);
    background: #f8fbfc;
    font-size: 1.38rem;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
}

.quality-trace-flow__arrow {
    display: grid;
    min-width: 3.8rem;
    place-items: center;
    color: #6f9a94;
    font-size: 2rem;
}

.quality-certification {
    background: #eef4f5;
}

.quality-certification__grid {
    display: grid;
    grid-template-columns: minmax(30rem, 0.68fr) minmax(0, 1.32fr);
    gap: clamp(5rem, 8vw, 11rem);
    align-items: center;
}

.quality-certificate-preview {
    display: block;
    overflow: hidden;
    width: min(100%, 42rem);
    border: 1px solid #c8d7dc;
    border-radius: 0.7rem;
    background: #fff;
    box-shadow: 0 2rem 5rem rgba(22, 67, 97, 0.12);
}

.quality-certificate-preview picture,
.quality-certificate-preview img {
    display: block;
    width: 100%;
    height: auto;
}

.quality-certification__content > h2 {
    margin-bottom: 2.4rem;
}

.quality-certification__content > p {
    max-width: 72rem;
}

.quality-certification__details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 3.5rem 0 !important;
    border-top: 1px solid #cbdcdf;
    border-left: 1px solid #cbdcdf;
}

.quality-certification__details div {
    padding: 1.6rem 1.8rem;
    border-right: 1px solid #cbdcdf;
    border-bottom: 1px solid #cbdcdf;
    background: rgba(255, 255, 255, 0.58);
}

.quality-certification__details dt {
    color: #6c8592;
    font-size: 1.08rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.quality-certification__details dd {
    margin-top: 0.55rem;
    color: var(--nhk-navy);
    font-size: 1.38rem;
    font-weight: 600;
    line-height: 1.4;
}

.quality-certification__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.6rem 2.4rem;
}

.quality-document-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.6rem;
}

.quality-document-card {
    display: flex;
    min-height: 18rem;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    padding: 2.8rem;
    border: 1px solid #cbdcdf;
    border-radius: 0.9rem;
    color: var(--nhk-navy);
    background: #fff;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-out), transform var(--motion-duration-fast) var(--motion-ease-out), box-shadow var(--motion-duration-fast) var(--motion-ease-out);
}

.quality-document-card:hover {
    border-color: #9ebbbc;
    box-shadow: 0 1.4rem 3rem rgba(22, 67, 97, 0.09);
    transform: translateY(-2px);
}

.quality-document-card > span:first-child {
    display: grid;
    gap: 0.6rem;
}

.quality-document-card small {
    color: #6f9a94;
    font-size: 1.08rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.quality-document-card strong {
    max-width: 36rem;
    font-size: 1.75rem;
    line-height: 1.35;
}

.quality-document-card em {
    color: #6c8592;
    font-size: 1.25rem;
    font-style: normal;
}

.quality-document-card__action {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.7rem;
    font-size: 1.3rem;
    font-weight: 600;
}

.quality-closing {
    background: #fff;
}

.quality-closing__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(34rem, 0.9fr);
    gap: clamp(4rem, 8vw, 10rem);
    align-items: center;
}

.quality-closing__inner h2 {
    margin-bottom: 2.4rem;
}

.quality-actions--closing {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    margin-top: 0;
}

.quality-actions--closing .quality-text-link {
    justify-self: start;
    margin-top: 1rem;
}

.quality-inquiry {
    border-top: 1px solid var(--nhk-line);
    background: var(--nhk-mist);
}

.quality-page a:focus-visible,
.quality-page button:focus-visible {
    outline: 3px solid rgba(81, 136, 46, 0.42);
    outline-offset: 4px;
}

@media (max-width: 1199px) {
    .quality-container {
        width: min(calc(100% - 4rem), 112rem);
    }

    .quality-hero__inner {
        grid-template-columns: minmax(0, 53%) minmax(0, 1fr);
    }

    .quality-stage-list {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .quality-stage-list li {
        padding: 2.4rem 2rem;
    }

    .quality-trace-flow__arrow {
        min-width: 2.8rem;
    }
}

@media (max-width: 899px) {
    .quality-section {
        padding: 9.2rem 0;
    }

    .quality-hero {
        min-height: 0;
    }

    .quality-hero::after {
        display: none;
    }

    .quality-hero__inner {
        grid-template-columns: minmax(0, 1fr);
        padding: 7.2rem 0 5.8rem;
    }

    .quality-hero__content {
        max-width: 72rem;
        padding: 0;
    }

    .quality-hero__media {
        position: relative;
        grid-row: 2;
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .quality-hero__media img {
        object-position: center;
    }

    .quality-stage-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .quality-split,
    .quality-split--reverse,
    .quality-analysis__grid,
    .quality-packing__inner,
    .quality-certification__grid,
    .quality-closing__inner {
        grid-template-columns: minmax(0, 1fr);
    }

    .quality-receipt__gallery {
        width: min(100%, 72rem);
    }

    .quality-characteristics,
    .quality-control-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .quality-outcomes,
    .quality-specification-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .quality-specification-card {
        min-height: 0;
    }

    .quality-trace-flow {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .quality-trace-flow__node {
        min-height: 8.5rem;
    }

    .quality-trace-flow__arrow {
        min-height: 3.8rem;
        transform: rotate(90deg);
    }

    .quality-certificate-preview {
        width: min(100%, 42rem);
        margin: 0 auto;
    }

    .quality-closing__inner {
        gap: 3.8rem;
    }

    .quality-actions--closing {
        max-width: 48rem;
    }
}

@media (max-width: 640px) {
    .quality-page {
        font-size: 1.62rem;
        line-height: 1.65;
    }

    .quality-container {
        width: calc(100% - 3.2rem);
    }

    .quality-section {
        padding: 7.6rem 0;
    }

    .quality-page h1 {
        font-size: clamp(3.5rem, 10vw, 4.3rem);
        line-height: 1.07;
    }

    .quality-page h2 {
        font-size: 3.25rem;
        line-height: 1.14;
    }

    .quality-page h3 {
        font-size: 1.95rem;
    }

    .quality-eyebrow {
        margin-bottom: 1.4rem !important;
        font-size: 1.12rem;
    }

    .quality-hero__inner {
        padding: 5.8rem 0 4.8rem;
    }

    .quality-hero__intro {
        margin-top: 2.4rem !important;
        font-size: 1.68rem;
    }

    .quality-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        margin-top: 3.2rem;
    }

    .quality-actions .nhk-button {
        width: 100%;
    }

    .quality-hero__media {
        aspect-ratio: 4 / 3;
    }

    .quality-hero__media img {
        object-position: 54% center;
    }

    .quality-heading {
        margin-bottom: 3.8rem;
    }

    .quality-stage-list,
    .quality-characteristics,
    .quality-control-cards,
    .quality-document-grid,
    .quality-certification__details,
    .quality-storage__conditions {
        grid-template-columns: minmax(0, 1fr);
    }

    .quality-stage-list li {
        min-height: 0;
        grid-template-columns: 3.4rem minmax(0, 1fr);
        align-items: start;
        gap: 1rem;
        padding: 2.2rem 1.8rem;
        background: #fff;
    }

    .quality-stage-list li:nth-child(even) {
        background: #fff;
    }

    .quality-certification__actions,
    .quality-certification__actions .nhk-button,
    .quality-certification__actions .quality-text-link {
        width: 100%;
    }

    .quality-certification__actions .quality-text-link {
        justify-content: flex-start;
    }

    .quality-receipt__gallery {
        min-height: 42rem;
    }

    .quality-image--receipt-main {
        width: 94%;
        height: 31rem;
    }

    .quality-image--receipt-detail {
        width: 58%;
        height: 19rem;
        border-width: 0.7rem;
    }

    .quality-image--analysis,
    .quality-image--storage {
        aspect-ratio: 4 / 3;
    }

    .quality-characteristics > div {
        min-height: 0;
        padding: 1.8rem 1.6rem;
    }

    .quality-outcome {
        padding: 2.8rem 2.2rem;
    }

    .quality-outcome h3 {
        font-size: 2.35rem;
    }

    .quality-outcome ul {
        grid-template-columns: minmax(0, 1fr);
    }

    .quality-control-cards article {
        min-height: 0;
    }

    .quality-control-cards h3 {
        margin-top: 2.2rem;
    }

    .quality-specification-card {
        padding: 3rem 2.3rem;
    }

    .quality-packing__inner {
        gap: 3rem;
    }

    .quality-certification__details div {
        padding: 1.5rem 1.6rem;
    }

    .quality-document-card {
        min-height: 0;
        flex-direction: column;
        align-items: flex-start;
        padding: 2.4rem 2.1rem;
    }

    .quality-actions--closing {
        max-width: none;
    }
}

@media (max-width: 370px) {
    .quality-container {
        width: calc(100% - 2.4rem);
    }

    .quality-page h1 {
        font-size: 3.35rem;
    }

    .quality-page h2 {
        font-size: 3rem;
    }

    .quality-receipt__gallery {
        min-height: 38rem;
    }

    .quality-image--receipt-main {
        height: 28rem;
    }

    .quality-image--receipt-detail {
        height: 17rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .quality-document-card,
    .quality-page .nhk-button,
    .quality-trace-flow__arrow {
        transition: none;
        transform: none;
    }
}
