/* Page-owned styles for the Donice category page. Scoped to page main. */
main {
  --donice-section-padding: var(--space-3xl);
  --donice-card-gap: var(--space-lg);
  --donice-card-radius: var(--radius-card);
  --donice-card-border: var(--border-width) solid var(--color-border);
  --donice-card-hover-shadow: var(--shadow-hover);
  --donice-transition: var(--transition-fast);
}

/* Section vertical rhythm */
.donice-category-header,
.donice-subcategories,
.donice-products,
.donice-guide,
.donice-featured,
.donice-benefits,
.donice-cta,
.donice-faq {
  padding-block: var(--donice-section-padding);
}

/* Category header */
.donice-category-header {
  background-color: var(--color-background);
}

.donice-category-header__inner {
  max-width: 720px;
  margin-inline: 0;
}

.donice-category-header h1 {
  font-size: var(--text-h1-size);
  line-height: var(--text-h1-line-height);
  font-weight: var(--text-h1-weight);
  color: var(--color-ink);
  margin-block-end: var(--space-lg);
  overflow-wrap: break-word;
}

.donice-category-header__lead {
  font-size: var(--text-body-large-size);
  line-height: var(--text-body-large-line-height);
  color: var(--color-ink-muted);
  max-width: 720px;
  margin-block-end: 0;
}

/* Subcategories */
.donice-subcategories {
  background-color: var(--color-surface-alt);
}

.donice-subcategories h2,
.donice-products h2,
.donice-guide h2,
.donice-featured h2,
.donice-benefits h2,
.donice-faq h2 {
  margin-block-end: var(--space-xl);
}

.donice-subcategories__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--donice-card-gap);
}

.donice-subcategory-card {
  background-color: var(--color-surface);
  border: var(--donice-card-border);
  border-radius: var(--donice-card-radius);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
  transition: box-shadow var(--donice-transition), border-color var(--donice-transition);
}

.donice-subcategory-card:hover {
  box-shadow: var(--donice-card-hover-shadow);
  border-color: var(--color-ochre);
}

.donice-subcategory-card__icon {
  width: 48px;
  height: 48px;
  color: var(--color-primary);
  flex-shrink: 0;
}

.donice-subcategory-card__icon svg {
  width: 100%;
  height: 100%;
}

.donice-subcategory-card h3 {
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-line-height);
  font-weight: var(--text-h3-weight);
  margin-block-end: 0;
  overflow-wrap: break-word;
}

.donice-subcategory-card p {
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  color: var(--color-ink-muted);
  margin-block-end: 0;
  overflow-wrap: break-word;
}

.donice-subcategory-card__link {
  margin-block-start: auto;
  font-weight: var(--text-button-weight);
  color: var(--color-primary);
  text-decoration: none;
  transition: color var(--donice-transition);
}

.donice-subcategory-card__link:hover {
  color: var(--color-primary-hover);
  text-decoration: underline;
}

/* Products and filters */
.donice-products {
  background-color: var(--color-background);
}

.donice-products__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
  gap: var(--space-xl);
  align-items: start;
}

.donice-filters {
  background-color: var(--color-surface);
  border: var(--donice-card-border);
  border-radius: var(--donice-card-radius);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

.donice-filters__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
}

.donice-filters__header h3 {
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-line-height);
  font-weight: var(--text-h3-weight);
  margin-block-end: 0;
}

.donice-filters__close {
  display: none;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--color-ink-muted);
  background: transparent;
  border: none;
  cursor: pointer;
  padding: var(--space-xs);
  min-width: 44px;
  min-height: 44px;
  border-radius: var(--radius-button);
}

.donice-filters__close:hover {
  color: var(--color-primary);
}

.donice-filter-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
}

.donice-filter-group label {
  font-size: var(--text-body-small-size);
  font-weight: 600;
  color: var(--color-ink);
}

.donice-filter-group select {
  width: 100%;
  padding: var(--space-sm) var(--space-md);
  border: var(--donice-card-border);
  border-radius: var(--radius-button);
  background-color: var(--color-surface);
  color: var(--color-ink);
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  min-height: 44px;
  transition: border-color var(--donice-transition), box-shadow var(--donice-transition);
}

.donice-filter-group select:focus {
  outline: var(--border-width-focus) solid var(--color-focus);
  outline-offset: var(--focus-ring-offset);
  border-color: var(--color-primary);
}

.donice-filters__clear {
  margin-block-start: var(--space-sm);
  width: 100%;
}

.donice-products__content {
  min-width: 0;
}

.donice-products__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  flex-wrap: wrap;
  margin-block-end: var(--space-lg);
}

.donice-products__filter-toggle {
  display: none;
}

.donice-products__toolbar label {
  font-size: var(--text-body-small-size);
  font-weight: 600;
  color: var(--color-ink);
}

.donice-products__toolbar select {
  padding: var(--space-sm) var(--space-md);
  border: var(--donice-card-border);
  border-radius: var(--radius-button);
  background-color: var(--color-surface);
  color: var(--color-ink);
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  min-height: 44px;
  min-width: 180px;
  transition: border-color var(--donice-transition), box-shadow var(--donice-transition);
}

.donice-products__toolbar select:focus {
  outline: var(--border-width-focus) solid var(--color-focus);
  outline-offset: var(--focus-ring-offset);
  border-color: var(--color-primary);
}

.donice-products__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--donice-card-gap);
}

.donice-product-card {
  background-color: var(--color-surface);
  border: var(--donice-card-border);
  border-radius: var(--donice-card-radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-width: 0;
  transition: box-shadow var(--donice-transition), border-color var(--donice-transition);
}

.donice-product-card:hover {
  box-shadow: var(--donice-card-hover-shadow);
  border-color: var(--color-ochre);
}

.donice-product-card__media {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-color: var(--color-surface-alt);
  border-radius: var(--radius-image);
}

.donice-product-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.donice-product-card__body {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
}

.donice-product-card__body h3 {
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  font-weight: 600;
  color: var(--color-ink);
  margin-block-end: 0;
  overflow-wrap: break-word;
}

.donice-product-card__meta {
  font-size: var(--text-body-small-size);
  line-height: var(--text-body-small-line-height);
  color: var(--color-ink-muted);
  margin-block-end: 0;
}

.donice-product-card .price {
  margin-block-end: var(--space-xs);
}

.donice-add-to-cart {
  width: 100%;
  min-height: 44px;
}

.donice-products__empty {
  text-align: center;
  color: var(--color-ink-muted);
  padding: var(--space-xl);
  background-color: var(--color-surface-alt);
  border-radius: var(--donice-card-radius);
}

/* Guide */
.donice-guide {
  background-color: var(--color-surface-alt);
}

.donice-guide__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--donice-card-gap);
}

.donice-guide-card {
  background-color: var(--color-surface);
  border: var(--donice-card-border);
  border-radius: var(--donice-card-radius);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

.donice-guide-card__icon {
  width: 48px;
  height: 48px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.donice-guide-card__icon svg {
  width: 100%;
  height: 100%;
}

.donice-guide-card h3 {
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-line-height);
  font-weight: var(--text-h3-weight);
  margin-block-end: 0;
  overflow-wrap: break-word;
}

.donice-guide-card p {
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  color: var(--color-ink-muted);
  margin-block-end: 0;
  overflow-wrap: break-word;
}

/* Featured products */
.donice-featured {
  background-color: var(--color-background);
}

.donice-featured__lead {
  max-width: 720px;
  color: var(--color-ink-muted);
  margin-block-end: var(--space-xl);
}

.donice-featured__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--donice-card-gap);
}

/* Benefits */
.donice-benefits {
  background-color: var(--color-surface-alt);
}

.donice-benefits__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--donice-card-gap);
}

.donice-benefit-card {
  background-color: var(--color-surface);
  border: var(--donice-card-border);
  border-radius: var(--donice-card-radius);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

.donice-benefit-card__icon {
  width: 48px;
  height: 48px;
  color: var(--color-primary);
  flex-shrink: 0;
}

.donice-benefit-card__icon svg {
  width: 100%;
  height: 100%;
}

.donice-benefit-card h3 {
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-line-height);
  font-weight: var(--text-h3-weight);
  margin-block-end: 0;
  overflow-wrap: break-word;
}

.donice-benefit-card p {
  font-size: var(--text-body-size);
  line-height: var(--text-body-line-height);
  color: var(--color-ink-muted);
  margin-block-end: 0;
  overflow-wrap: break-word;
}

/* CTA */
.donice-cta {
  background-color: var(--color-primary);
  color: #FFFFFF;
  text-align: center;
}

.donice-cta__inner {
  max-width: 600px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
}

.donice-cta h2 {
  color: #FFFFFF;
  margin-block-end: 0;
}

.donice-cta p {
  color: #FFFFFF;
  margin-block-end: 0;
}

.donice-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-md);
}

.donice-cta__button {
  min-width: 160px;
}

.donice-cta__button.btn-primary {
  background-color: #FFFFFF;
  color: var(--color-primary);
}

.donice-cta__button.btn-primary:hover {
  background-color: var(--color-surface-alt);
  color: var(--color-primary-hover);
}

.donice-cta__button.btn-secondary {
  background-color: transparent;
  color: #FFFFFF;
  border-color: #FFFFFF;
}

.donice-cta__button.btn-secondary:hover {
  background-color: #FFFFFF;
  color: var(--color-primary);
}

.donice-cta__contact {
  font-size: var(--text-body-small-size);
  line-height: var(--text-body-small-line-height);
  color: #FFFFFF;
  opacity: 0.9;
}

/* FAQ */
.donice-faq {
  background-color: var(--color-background);
}

.donice-faq__list {
  max-width: 720px;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.donice-faq-item {
  background-color: var(--color-surface);
  border: var(--donice-card-border);
  border-radius: var(--donice-card-radius);
  overflow: hidden;
}

.donice-faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-md) var(--space-lg);
  cursor: pointer;
  font-weight: 600;
  color: var(--color-ink);
  list-style: none;
  transition: background-color var(--donice-transition);
}

.donice-faq-item summary::-webkit-details-marker {
  display: none;
}

.donice-faq-item summary::after {
  content: '+';
  font-size: 1.5rem;
  line-height: 1;
  color: var(--color-primary);
  transition: transform var(--donice-transition);
  flex-shrink: 0;
}

.donice-faq-item[open] summary::after {
  transform: rotate(45deg);
}

.donice-faq-item summary:hover {
  background-color: var(--color-surface-alt);
}

.donice-faq-item p {
  padding: 0 var(--space-lg) var(--space-lg);
  color: var(--color-ink-muted);
  margin-block-end: 0;
}

/* Tablet breakpoint */
@media (min-width: 768px) and (max-width: 1023px) {
  .donice-subcategories__grid,
  .donice-guide__grid,
  .donice-benefits__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .donice-products__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .donice-filters {
    position: static;
    width: 100%;
  }

  .donice-products__grid,
  .donice-featured__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Mobile breakpoint */
@media (max-width: 767px) {
  main {
    --donice-section-padding: var(--space-2xl);
  }

  .donice-category-header h1 {
    font-size: 2rem;
  }

  .donice-category-header__lead {
    font-size: var(--text-body-size);
  }

  .donice-subcategories__grid,
  .donice-guide__grid,
  .donice-benefits__grid {
    grid-template-columns: 1fr;
  }

  .donice-products__layout {
    grid-template-columns: 1fr;
  }

  .donice-filters {
    display: none;
    position: fixed;
    inset: 0 auto 0 0;
    width: min(85vw, 360px);
    max-width: 100%;
    height: 100vh;
    z-index: 1000;
    overflow-y: auto;
    border-radius: 0;
    padding: var(--space-lg);
    background-color: var(--color-surface);
    box-shadow: var(--shadow-elevated);
  }

  .donice-filters.is-open {
    display: flex;
  }

  .donice-filters__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .donice-products__filter-toggle {
    display: inline-flex;
  }

  .donice-products__toolbar {
    flex-wrap: wrap;
    gap: var(--space-sm);
  }

  .donice-products__toolbar select {
    min-width: 0;
    flex: 1 1 auto;
  }

  .donice-products__grid,
  .donice-featured__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-md);
  }

  .donice-product-card__body {
    padding: var(--space-sm);
    gap: var(--space-2xs);
  }

  .donice-product-card__body h3 {
    font-size: var(--text-body-small-size);
  }

  .donice-product-card__meta {
    font-size: var(--text-caption-size);
  }

  .donice-product-card .price {
    font-size: var(--text-body-size);
  }

  .donice-add-to-cart {
    font-size: var(--text-body-small-size);
    padding: var(--space-xs) var(--space-sm);
    min-height: 40px;
  }

  .donice-cta__actions {
    flex-direction: column;
    width: 100%;
  }

  .donice-cta__button {
    width: 100%;
  }

  .donice-faq__list {
    max-width: 100%;
  }
}

/* Drawer overlay */
.donice-filters-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background-color: rgba(46, 51, 40, 0.4);
  z-index: 999;
}

.donice-filters-overlay.is-visible {
  display: block;
}

@media (min-width: 768px) {
  .donice-filters-overlay {
    display: none !important;
  }
}
