/**
 * Theme-wide responsive foundation (767px / 479px breakpoints)
 * Loaded after page-specific stylesheets.
 */

.sn-site-body,
.sn-front-body {
  max-width: 100%;
}

.sn-site-body *,
.sn-front-body *,
.sn-site-body *::before,
.sn-front-body *::before,
.sn-site-body *::after,
.sn-front-body *::after {
  box-sizing: border-box;
}

.sn-site-body img,
.sn-front-body img,
.sn-site-body video,
.sn-front-body video,
.sn-article-body img,
.sn-article-body video {
  max-width: 100%;
  height: auto;
}

.sn-shell-card,
.sn-front-wrap,
.sn-inner-block,
.sn-allergen-list,
.sn-allergen-detail,
.sn-allergen-page-header,
.sn-allergen-filters,
.sn-allergen-cards,
.sn-allergen-card,
.sn-category-grid-wrap,
.sn-category-grid,
.sn-section-column,
.sn-section-ad-cta,
.sn-column-layout,
.sn-column-panel,
.sn-contact-page,
.sn-ad-info-block,
.sn-about-block,
.sn-article-block {
  max-width: 100%;
  min-width: 0;
}

.sn-allergen-items-table-wrap,
.sn-allergen-method-matrix-wrap,
.sn-allergen-cross-table-wrap,
.sn-allergen-method-matrix-cell {
  max-width: 100%;
  min-width: 0;
}

@media (max-width: 767px) {
  .sn-shell-card,
  .sn-front-wrap,
  .sn-inner-block {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .sn-inner-block h1,
  .sn-allergen-card-title,
  .sn-allergen-detail-title,
  .sn-allergen-page-title,
  .sn-allergen-page-audience,
  .sn-allergen-page-notice,
  .sn-allergen-page-lead,
  .sn-allergen-card-feature,
  .sn-allergen-point-table,
  .sn-allergen-point-table th,
  .sn-allergen-point-table td,
  .sn-allergen-price-note,
  .sn-allergen-filter-heading,
  .sn-allergen-filter-note,
  .sn-category-card,
  .sn-category-card-audience,
  .sn-category-card-desc,
  .sn-category-card-title,
  .sn-category-intro,
  .sn-column-card,
  .sn-column-card-body,
  .sn-column-card-title,
  .sn-column-card-excerpt,
  .sn-ad-cta-block,
  .sn-ad-cta-title,
  .sn-ad-cta-text,
  .sn-hero-title,
  .sn-hero-lead,
  .sn-flow-timeline-title,
  .sn-flow-timeline-desc,
  .sn-flow-note,
  .sn-reason-desc,
  .sn-reason-note,
  .sn-allergen-detail-section-title,
  .sn-allergen-detail-section-intro,
  .sn-allergen-service-block-title,
  .sn-allergen-service-field-label,
  .sn-allergen-service-field-value,
  .sn-allergen-items-table,
  .sn-allergen-items-table th,
  .sn-allergen-items-table td,
  .sn-allergen-cross-row > td,
  .sn-allergen-method-matrix td,
  .sn-allergen-detail-footnotes,
  .sn-allergen-info-updated-note,
  .sn-article-body,
  .sn-article-body p,
  .sn-article-body li,
  .sn-article-body h2,
  .sn-article-body h3 {
    word-break: normal;
    overflow-wrap: break-word;
    word-wrap: break-word;
  }

  .sn-category-grid > *,
  .sn-category-card-link,
  .sn-column-list--front-grid > *,
  .sn-column-list > *,
  .sn-column-card-link,
  .sn-allergen-cards > *,
  .sn-allergen-card-link {
    min-width: 0;
    max-width: 100%;
  }

  .sn-allergen-filter-tags {
    max-width: 100%;
  }

  .sn-allergen-filter-tag {
    white-space: normal;
    text-align: center;
    max-width: 100%;
    min-width: 0;
  }

  .sn-allergen-card {
    width: 100%;
    max-width: 100%;
  }

  .sn-allergen-list .sn-allergen-card > .sn-allergen-point-table {
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
  }

  .sn-allergen-card--ikari .sn-allergen-point-table td,
  .sn-allergen-article--ikari .sn-allergen-items-table td,
  .sn-allergen-article--house-food-analab .sn-allergen-items-table td,
  .sn-allergen-article--shokuhin-kankyo-eisei .sn-allergen-items-table td,
  .sn-allergen-article--tsukuba-bunseki-center .sn-allergen-items-table td,
  .sn-allergen-article--nihon-shokuhin-bunseki-center .sn-allergen-items-table td {
    overflow-wrap: break-word;
    word-break: normal;
    white-space: normal;
  }

  .sn-allergen-card--ikari .sn-allergen-tier-label,
  .sn-allergen-card--ikari .sn-allergen-point-table .sn-allergen-tier--express {
    white-space: normal;
  }

  .sn-allergen-detail .sn-allergen-items-table,
  .sn-allergen-method-matrix,
  .sn-allergen-cross-table {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }

  .sn-allergen-items-table-wrap,
  .sn-allergen-method-matrix-wrap {
    overflow-x: visible;
  }

  .sn-allergen-category-label,
  .sn-allergen-method-name,
  .sn-allergen-method-note,
  .sn-allergen-target-cell,
  .sn-allergen-target-line,
  .sn-allergen-tier-line,
  .sn-allergen-plain-line {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
  }

  .sn-column-card-media,
  .sn-column-card-media img {
    max-width: 100%;
  }
}

@media (max-width: 479px) {
  .sn-category-grid {
    max-width: 100%;
  }

  .sn-category-grid-wrap {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}
