/* Public counterparts of the current gallery components. The method controls
   retain their own states and safety gates in site.css/site.js. */
.page:not(.page--home) .page-intro {
  padding-block: 2.25rem;
}
.page:not(.page--home) .page-intro h1 {
  max-width: 22ch;
  font-size: clamp(2.375rem, 5vw, 4rem);
  line-height: 1.05;
  letter-spacing: -.035em;
  overflow-wrap: break-word;
}
.page:not(.page--home) .page-intro .lead {
  margin-top: 1.125rem;
  font-size: 1.125rem;
  line-height: 1.55;
}
.page:not(.page--home) .section { padding-block: 2.5rem; }
.page:not(.page--home) .section-head { margin-bottom: 1.25rem; }
.page:not(.page--home) .section h2 {
  max-width: none;
  font-size: 1.75rem;
  line-height: 1.15;
  letter-spacing: -.035em;
}
.page:not(.page--home) .section:nth-of-type(even):not(.section--plum) {
  background: transparent;
}

/* Every category and stain has a real destination on the public site. */
.page--stain-index .stain-grid--catalog,
.category-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.125rem;
}
.page--stain-index .stain-grid--catalog .stain-card,
.category-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--paper);
  color: var(--ink);
  box-shadow: none;
  text-align: left;
  text-decoration: none;
}
.page--stain-index .stain-grid--catalog .stain-card img,
.category-card img {
  order: -1;
  width: 100%;
  height: 11.25rem;
  aspect-ratio: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
  object-fit: cover;
  box-shadow: none;
}
.page--stain-index .stain-grid--catalog .stain-card h3 {
  margin: 1.375rem 1.375rem .75rem;
  font-size: 1.3125rem;
  line-height: 1.2;
  font-weight: 720;
}
.page--stain-index .stain-grid--catalog .stain-card p {
  margin: 0 1.375rem 1.375rem;
  color: var(--muted);
  font-size: .9375rem;
  line-height: 1.55;
}
.page--stain-index .stain-grid--catalog .stain-card:hover,
.category-card:hover { border-color: var(--brand); }

/* Product groups are filters of one catalogue, with shareable URL states. */
.product-group-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-block: 0 1.5rem;
}
.product-group-nav a {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  padding: .5rem .875rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  font-size: .8125rem;
  font-weight: 650;
  text-decoration: none;
}
.product-group-nav a[aria-current] {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
}
[data-product-status] { color: var(--muted); font-size: .8125rem; }
.catalog-dots {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1.75rem 1rem;
  list-style: none;
  padding: 0;
  margin: 1.125rem 0 2.5rem;
}
.catalog-dot { min-width: 0; }
.catalog-dot[hidden] { display: none; }
.catalog-dot > a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  min-width: 0;
  color: var(--brand);
  text-align: center;
  text-decoration: none;
}
.catalog-dot .catalog-dot-photo {
  width: 7rem;
  height: 7rem;
  aspect-ratio: 1;
  border: 3px solid var(--paper);
  border-radius: 50%;
  padding: .875rem;
  background: #fff;
  object-fit: contain;
  box-shadow: 0 0 0 1px var(--line), 0 5px 12px rgb(52 18 46 / 10%);
}
.catalog-dot > a:hover .catalog-dot-photo {
  box-shadow: 0 0 0 2px var(--brand), 0 5px 12px rgb(52 18 46 / 14%);
}
.catalog-dot strong {
  max-width: 15ch;
  font-size: .9375rem;
  font-weight: 680;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.catalog-dot small { color: var(--muted); font-size: .75rem; line-height: 1.4; }

/* Facts and complete source records remain readable at every nesting level. */
.product-facts {
  padding: 1.625rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--paper);
}
.product-facts > div,
.record-field {
  display: grid;
  grid-template-columns: minmax(7rem, .55fr) minmax(0, 1fr);
  gap: 1rem;
  padding-block: .875rem;
  border-bottom: 1px solid var(--line);
}
.product-facts > div:last-child,
.record-field:last-child { border-bottom: 0; }
.product-facts dt,
.record-field dt { font-weight: 650; }
.product-facts dd,
.record-field dd { min-width: 0; margin: 0; color: var(--muted); }
.product-facts :where(dt, dd),
.product-records :where(dt, dd, a, code, li),
.record-field :where(dt, dd, a, code, li) { overflow-wrap: anywhere; }
.product-records { display: grid; gap: .75rem; margin-top: 1.5rem; }
.product-record {
  padding: 1rem 1.375rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--paper);
}
.product-record > summary { cursor: pointer; font-weight: 680; }
.product-record[open] > summary { margin-bottom: .75rem; }
.record-fields { margin: 0; padding: 0; font-size: .875rem; }
.record-fields .record-fields .record-field { grid-template-columns: 1fr; gap: .25rem; }
.record-field :where(ul, ol) { padding-left: 1.25rem; }
.record-field code { font-size: .8125rem; }
.source-notes {
  display: inline;
  margin-left: .4em;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 400;
  line-height: 1.5;
}
.source-notes a { color: inherit; overflow-wrap: anywhere; }
.source-details {
  margin-top: 1.25rem;
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--paper);
}
.source-details > summary { cursor: pointer; font-weight: 650; }
.source-details > ul { padding-left: 1.25rem; margin-top: 1rem; }
.source-details li + li { margin-top: 1rem; }
.source-details :where(a, p, small) { overflow-wrap: anywhere; }
.source-details li > a { font-weight: 650; }
.source-details :where(p, small) { color: var(--muted); font-size: .8125rem; }
.source-details p { margin-top: .35rem; }
.page--product .page-intro__media { background: #fff; box-shadow: none; }
.page--product .page-intro__media figcaption { color: #6c5e64; }
.page .page-intro--washing { max-width: var(--max); }
.page-intro--washing > .wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
}
.washing-intro__copy { min-width: 0; }
.washing-intro__media { margin: 0; }
.washing-intro__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 1rem;
}
.washing-intro__media figcaption { margin-top: .5rem; color: var(--muted); font-size: .75rem; }

@media (max-width: 1000px) {
  .catalog-dots { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .page:not(.page--home) .page-intro { padding-block: 1.75rem; }
  .page:not(.page--home) .page-intro h1 { font-size: 2.375rem; line-height: 1.06; }
  .page:not(.page--home) .page-intro .lead { font-size: 1rem; }
  .page:not(.page--home) .section { padding-block: 2rem; }
  .page:not(.page--home) .section h2 { font-size: 1.5625rem; }
  .page--stain-index .stain-grid--catalog, .category-grid { grid-template-columns: 1fr; gap: .875rem; }
  .page--stain-index .stain-grid--catalog .stain-card img, .category-card img { height: 10rem; }
  .catalog-dots { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.375rem .625rem; }
  .catalog-dot .catalog-dot-photo { width: 5.375rem; height: 5.375rem; padding: .625rem; }
  .catalog-dot strong { max-width: 11ch; font-size: .875rem; }
  .catalog-dot small { font-size: .6875rem; }
  .product-facts { padding: 1.3125rem; }
  .product-facts > div, .record-field { grid-template-columns: 1fr; gap: .25rem; }
  .product-record { padding-inline: 1rem; }
  .page-intro--washing > .wrap { grid-template-columns: 1fr; }
}

/* Preserve the approved expanding home mark while keeping its menu usable. */
body[data-page-kind="home"] .site-header .site-nav { visibility: visible; opacity: 1; }
@media (max-width: 700px) {
  body[data-page-kind="home"] .site-header { row-gap: .75rem; }
  body[data-page-kind="home"] .site-header .site-nav,
  body[data-page-kind="home"] .site-header.is-scrolled .site-nav {
    display: flex;
    width: 100%;
    justify-content: space-between;
    margin: 0;
  }
  body[data-page-kind="home"] .site-header .site-nav a { min-height: 2.75rem; display: inline-flex; align-items: center; padding: .5rem .75rem; font-size: .8125rem; }
}

[data-preview-theme="dark"], .dark { --brand: #ef9adc; }
[data-preview-theme="dark"] .mosaic-moments figcaption,
.dark .mosaic-moments figcaption { color: var(--ink); }
[data-preview-theme="dark"] .product-group-nav a[aria-current],
.dark .product-group-nav a[aria-current] { color: #171216; }
[data-preview-theme="dark"] .home-utility-panel,
.dark .home-utility-panel { background: var(--paper); border-color: var(--line); }
[data-preview-theme="dark"] .page--home #produtos-e-transparencia,
.dark .page--home #produtos-e-transparencia { background: var(--soft); }

/* Editorial selection is a mark beside the name, never a call to action. */
.editor-choice.editor-choice--star,
.product-card .editor-choice.editor-choice--star,
.product-card__main:hover .editor-choice.editor-choice--star,
.product-card__main:focus-visible .editor-choice.editor-choice--star {
  position: static; display: inline-flex; width: 1em; height: 1em;
  align-items: center; justify-content: center; margin-inline-end: .35em;
  padding: 0; border: 0; border-radius: 0; clip-path: none;
  background: transparent; color: var(--brand); font-size: 1em;
  vertical-align: -.1em; line-height: 1;
}
.editor-choice--star svg { display: block; width: 100%; height: 100%; }
h1 .editor-choice.editor-choice--star { width: .65em; height: .65em; vertical-align: .03em; }
.home-product-tile { position: relative; }
.home-product-tile .editor-choice.editor-choice--star {
  position: absolute; inset-block-start: .4rem; inset-inline-start: .4rem;
  width: 1.6rem; height: 1.6rem; padding: .3rem; margin: 0;
  border-radius: 50%; color: #78206c; background: #fffaf4;
  box-shadow: 0 1px 5px #34213625;
}
.product-specs { overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper); }
.specification-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: .9375rem; line-height: 1.6; }
.specification-table caption { padding: 1.25rem; text-align: left; font-weight: 700; font-size: 1.1rem; }
.specification-table th, .specification-table td { padding: 1rem 1.25rem; border-top: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.specification-table th { width: 30%; font-weight: 650; background: var(--soft); }
.specification-list { margin: 0; padding-inline-start: 1.15rem; }
.specification-list li + li { margin-top: .4rem; }
@media (max-width: 600px) {
  .specification-table th, .specification-table td { padding: .85rem .7rem; }
  .specification-table th { width: 35%; font-size: .8125rem; }
  .specification-table td { font-size: .875rem; }
}

/* The brand mark is the existing SVG embedded in the document. */
.site-logo .brand-mark { display: block; flex: 0 0 auto; width: 44px; height: auto; }
body[data-page-kind="home"] .site-header .site-logo .brand-mark { width: clamp(36px,calc(8vw - 4vw * var(--collapse)),116px); }
@media (max-width: 700px) {
  body[data-page-kind="home"] .site-header .site-logo .brand-mark { width: calc(12vw - 6vw * var(--collapse)); }
}
/* Store names remain visible independently of decorative logos. */
.shops .shop-link { justify-content: center; gap: .65rem; min-height: 48px; min-width: 10rem; }
.shops .shop-link::before { width: 3.5rem; height: 2rem; flex: 0 0 3.5rem; background-color: #fff; background-size: 85% auto; border-radius: .25rem; }
.shops .shop-link--amazon::before { transform: none; }
.shops .shop-link .shop-link__label { display: inline; position: static; width: auto; height: auto; overflow: visible; clip-path: none; font-weight: 700; }
