.atff-wrapper {
  border: 1px solid #cfdcc7;
  border-radius: 16px;
  padding: 1rem;
  margin: 1.5rem 0;
  background: #fff;
  max-width: 100%;
  overflow: hidden;
}
.atff-wrapper * { box-sizing: border-box; }
.atff-title { margin: 0 0 0.55rem; line-height: 1.2; }
.atff-intro { margin: 0 0 1rem; }
.atff-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.9rem;
  align-items: end;
}
.atff-field { display: block; min-width: 0; }
.atff-field label { display: block; font-weight: 700; margin-bottom: 0.25rem; }
.atff-field input,
.atff-field select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 0.62rem 2.35rem 0.62rem 0.72rem;
  border: 1px solid #b7cbb0;
  border-radius: 10px;
  background-color: #fff;
  color: #17251c;
  font: inherit;
  line-height: 1.35;
}
.atff-field input { padding-right: 0.72rem; }
.atff-field select:disabled { opacity: 0.75; background: #f5f7f3; }
.atff-field input:focus,
.atff-field select:focus,
.atff-submit:focus,
.atff-popular-button:focus,
.atff-amazon-button:focus,
.atff-food-list-item summary:focus {
  outline: 3px solid rgba(31, 71, 50, 0.25);
  outline-offset: 2px;
}
.atff-actions { align-self: end; }
.atff-submit,
.atff-popular-button,
.atff-amazon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.65rem 0.95rem;
  border-radius: 999px;
  border: 1px solid #16472d;
  background: #16472d;
  color: #fff;
  text-decoration: none;
  cursor: pointer;
  font-weight: 700;
  line-height: 1.2;
}
.atff-submit { width: 100%; }
.atff-submit:hover,
.atff-submit:focus,
.atff-amazon-button:hover,
.atff-amazon-button:focus { color: #fff; text-decoration: none; }
.atff-popular { margin: 1rem 0; display: flex; gap: 0.45rem; flex-wrap: wrap; align-items: center; }
.atff-popular span { font-weight: 700; }
.atff-popular-button { background: #f0f8ec; color: #173c27; border-color: #c7dfbc; min-height: 36px; padding: 0.35rem 0.65rem; }
.atff-results { margin-top: 1rem; }
.atff-empty,
.atff-loading,
.atff-note { padding: 1rem; border-radius: 12px; background: #f7faf4; border: 1px dashed #c7dfbc; }
.atff-note { margin-top: 0.75rem; }
.atff-result-list { display: grid; gap: 1rem; }
.atff-result-card,
.atff-guide,
.atff-food-guide-card {
  border: 1px solid #dedede;
  border-radius: 14px;
  padding: 1rem;
  background: #fff;
}
.atff-result-header { display: flex; gap: 1rem; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; }
.atff-result-header h3,
.atff-guide-header h3,
.atff-food-guide-header h3 { margin: 0; line-height: 1.25; }
.atff-category-label,
.atff-food-category { margin: 0.15rem 0 0; font-size: 0.9rem; color: #4b5a50; }
.atff-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border: 1px solid #555;
  border-radius: 999px;
  padding: 0.35rem 0.6rem;
  white-space: nowrap;
  font-weight: 700;
  background: #f7f7f7;
  color: #17251c;
}
.atff-status-badge--small { font-size: 0.86rem; padding: 0.24rem 0.5rem; }
.atff-status-icon { font-size: 0.8rem; }
.atff-short-answer { font-size: 1.05rem; }
.atff-group-summary ul,
.atff-result-section ul,
.atff-product-card ul,
.atff-link-list,
.atff-mini-notes { margin-top: 0.35rem; }
.atff-result-section { margin-top: 1rem; }
.atff-result-section h4,
.atff-products h4,
.atff-guide-section h4 { margin: 0 0 0.25rem; }
.atff-warning { border-left: 4px solid #6b4d00; padding: 0.75rem; background: #fff8e5; margin-top: 0.9rem; border-radius: 8px; }
.atff-filter-note,
.atff-food-guide-count { display: inline-block; margin: 0.5rem 0 0; padding: 0.45rem 0.65rem; border-radius: 999px; background: #eef8ea; font-size: 0.94rem; }
.atff-guide-eyebrow,
.atff-product-eyebrow { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.04em; margin: 0 0 0.25rem; font-weight: 700; color: #315e3f; }
.atff-guide-header { margin-bottom: 1rem; }
.atff-guide-section { margin-top: 1rem; }
.atff-guide-section-header { margin-bottom: 0.6rem; }
.atff-guide-section-header p { margin: 0.25rem 0 0; color: #445348; }
.atff-food-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.65rem; }
.atff-food-list-item { border: 1px solid #e0e6dc; border-radius: 12px; background: #fff; overflow: hidden; }
.atff-food-list-item details { margin: 0; }
.atff-food-list-item summary {
  cursor: pointer;
  display: flex;
  gap: 0.7rem;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem;
  min-height: 54px;
}
.atff-food-list-main { display: grid; gap: 0.12rem; min-width: 0; }
.atff-food-name { font-size: 1rem; line-height: 1.25; }
.atff-food-list-body { padding: 0 0.75rem 0.75rem; border-top: 1px solid #edf0ea; }
.atff-food-list-body p { margin: 0.65rem 0 0; }
.atff-mini-notes { padding-left: 1.1rem; }
.atff-products { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e1e1e1; }
.atff-disclosure { font-size: 0.9rem; margin: 0 0 0.5rem; }
.atff-product-grid { display: grid; gap: 0.8rem; }
.atff-product-card { border: 1px solid #dedede; border-radius: 12px; padding: 0.9rem; background: #fafafa; min-height: 180px; }
.atff-product-card h5 { margin: 0 0 0.4rem; font-size: 1rem; line-height: 1.3; }
.atff-amazon-button { margin-top: 0.5rem; }
.atff-result-footer { display: grid; gap: 0.3rem; margin-top: 1rem; color: #444; }
.atff-link-list { padding-left: 1.2rem; }
.atff-link-list a { text-decoration: underline; }
.atff-wrapper--compact { padding: 0.8rem; }
.atff-wrapper--compact .atff-intro { display: none; }
.atff-wrapper--compact .atff-guide-section-header p,
.atff-wrapper--compact .atff-filter-note { font-size: 0.92rem; }
.atff-status-staple .atff-status-badge,
.atff-guide-section--staple .atff-status-badge { border-color: #276037; background: #eef8ea; }
.atff-status-rotation-food .atff-status-badge,
.atff-guide-section--rotation .atff-status-badge { border-color: #3d5f87; background: #eef5fb; }
.atff-status-occasional-treat .atff-status-badge,
.atff-guide-section--treats .atff-status-badge { border-color: #7b5c00; background: #fff8df; }
.atff-status-avoid .atff-status-badge,
.atff-status-unsafe .atff-status-badge,
.atff-guide-section--avoid .atff-status-badge,
.atff-guide-section--unsafe .atff-status-badge { border-color: #8a2c2c; background: #fff0f0; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (min-width: 820px) {
  .atff-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .atff-field--search { grid-column: span 2; }
  .atff-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .atff-food-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .atff-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .atff-field--search { grid-column: span 1; }
  .atff-actions { grid-column: span 1; }
  .atff-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* V2 selection-first food-list view */
.atff-diet-guide {
  border: 1px solid #d8e1d5;
  border-radius: 12px;
  padding: 1rem;
  background: #fff;
}
.atff-guide-header h3 { margin: 0 0 0.35rem; }
.atff-guide-header p { margin: 0.35rem 0 0; }
.atff-guide-section {
  margin-top: 1rem;
  padding: 0.9rem;
  border: 1px solid #e0e7dc;
  border-radius: 12px;
  background: #fcfdfb;
}
.atff-guide-section h4,
.atff-guide-section h5 { margin: 0 0 0.3rem; }
.atff-food-section-grid {
  display: grid;
  gap: 0.85rem;
}
.atff-food-section {
  min-width: 0;
}
.atff-section-note,
.atff-products-context,
.atff-food-meta,
.atff-food-note {
  color: #53645a;
}
.atff-section-note { margin: 0 0 0.55rem; }
.atff-food-list {
  list-style: none;
  display: grid;
  gap: 0.5rem;
  margin: 0.65rem 0 0;
  padding: 0;
}
.atff-food-list--compact {
  grid-template-columns: 1fr;
}
.atff-food-list-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.18rem;
  padding: 0.6rem;
  border: 1px solid #dbe6d7;
  border-radius: 10px;
  background: #fff;
}
.atff-food-pill {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  border: 1px solid #c8dfbf;
  border-radius: 999px;
  background: #f3faee;
  color: #153d28;
  padding: 0.35rem 0.65rem;
  font: inherit;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  text-align: left;
}
.atff-food-pill:hover,
.atff-food-pill:focus {
  border-color: #164b2e;
  outline: 2px solid rgba(22,75,46,0.18);
}
.atff-food-name {
  overflow-wrap: anywhere;
}
.atff-food-meta,
.atff-food-note {
  font-size: 0.9rem;
}
.atff-care-links {
  border-top: 1px solid #e1e8de;
}
.atff-products--guide {
  padding: 1rem;
  border: 1px solid #e0e7dc;
  border-radius: 12px;
  background: #fcfdfb;
}
.atff-products--guide h4 { margin-top: 0; }
.atff-guide-footer {
  border-top: 1px solid #e1e8de;
  padding-top: 0.85rem;
}
.atff-field select {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (min-width: 760px) {
  .atff-food-section-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .atff-food-list--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.atff-note {
  margin: 0.9rem 0 0;
  padding: 0.75rem;
  border: 1px solid #d9e4d5;
  border-radius: 10px;
  background: #f8fbf5;
}

/* V2 acceptable-food list cards */
.atff-food-guide-section {
  margin-top: 1rem;
  padding: 0.9rem;
  border: 1px solid #e0e7dc;
  border-radius: 12px;
  background: #fcfdfb;
}
.atff-food-guide-section h4 {
  margin: 0 0 0.25rem;
}
.atff-food-guide-section p {
  margin: 0.25rem 0 0.65rem;
  color: #53645a;
}
.atff-food-guide-list {
  list-style: none;
  margin: 0.65rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}
.atff-food-guide-item {
  margin: 0;
  min-width: 0;
}
.atff-food-guide-button.atff-food-pill {
  display: grid;
  width: 100%;
  text-align: left;
  align-items: start;
  justify-content: stretch;
  gap: 0.16rem;
  border-radius: 12px;
  padding: 0.65rem 0.75rem;
  white-space: normal;
}
.atff-food-guide-name {
  font-weight: 800;
  overflow-wrap: anywhere;
}
.atff-food-guide-meta,
.atff-food-guide-note,
.atff-food-guide-hint {
  font-size: 0.92rem;
  color: #53645a;
}
.atff-food-guide-note {
  line-height: 1.35;
}
.atff-next-read p {
  margin: 0.25rem 0 0.35rem;
  color: #53645a;
}
@media (min-width: 760px) {
  .atff-food-guide-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .atff-food-guide-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* V2 layout hardening: prevent dropdown clipping inside narrow content columns even on wide viewports. */
.atff-form {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}
.atff-field--search,
.atff-actions {
  grid-column: auto;
}
.atff-field select {
  min-width: 0;
  width: 100%;
}

/* V3 hardening: keep form controls and buttons readable inside opinionated themes. */
.atff-wrapper .atff-field select,
.atff-wrapper .atff-field select option {
  color: #17251c !important;
  background-color: #fff !important;
}
.atff-wrapper .atff-submit,
.atff-wrapper .atff-submit:link,
.atff-wrapper .atff-submit:visited,
.atff-wrapper .atff-submit:hover,
.atff-wrapper .atff-submit:focus,
.atff-wrapper .atff-submit:active,
.atff-wrapper .atff-amazon-button,
.atff-wrapper .atff-amazon-button:link,
.atff-wrapper .atff-amazon-button:visited,
.atff-wrapper .atff-amazon-button:hover,
.atff-wrapper .atff-amazon-button:focus,
.atff-wrapper .atff-amazon-button:active {
  color: #fff !important;
  background: #16472d !important;
  border-color: #16472d !important;
  text-decoration: none !important;
}
.atff-wrapper .atff-popular-button,
.atff-wrapper .atff-popular-button:link,
.atff-wrapper .atff-popular-button:visited,
.atff-wrapper .atff-popular-button:hover,
.atff-wrapper .atff-popular-button:focus,
.atff-wrapper .atff-popular-button:active,
.atff-wrapper .atff-food-pill,
.atff-wrapper .atff-food-pill:link,
.atff-wrapper .atff-food-pill:visited,
.atff-wrapper .atff-food-pill:hover,
.atff-wrapper .atff-food-pill:focus,
.atff-wrapper .atff-food-pill:active {
  color: #153d28 !important;
}
.atff-food-image {
  flex: 0 0 96px;
  max-width: 96px;
}
.atff-food-img,
.atff-product-img,
.atff-food-guide-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
  object-fit: cover;
}
.atff-food-image .atff-food-img {
  aspect-ratio: 1 / 1;
}
.atff-result-title-block {
  min-width: 0;
  flex: 1 1 220px;
}
.atff-product-image {
  margin: 0 0 0.7rem;
  overflow: hidden;
  border-radius: 10px;
  background: #f6f8f4;
}
.atff-product-image .atff-product-img {
  aspect-ratio: 4 / 3;
}
.atff-food-guide-thumb {
  display: block;
  width: 64px;
  margin-bottom: 0.35rem;
}
.atff-food-guide-thumb .atff-food-guide-img {
  aspect-ratio: 1 / 1;
}
.atff-food-guide-button.atff-food-pill {
  align-content: start;
}

/* V3 media-library images for foods and product recommendations. */
.atff-wrapper .atff-food-image {
  flex: 0 0 96px;
  max-width: 96px;
}
.atff-wrapper .atff-food-img,
.atff-wrapper .atff-food-thumb,
.atff-wrapper .atff-product-image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
  object-fit: cover;
}
.atff-wrapper .atff-food-image .atff-food-img,
.atff-wrapper .atff-food-guide-thumb .atff-food-thumb {
  aspect-ratio: 1 / 1;
}
.atff-wrapper .atff-product-figure {
  margin: 0 0 0.7rem;
  overflow: hidden;
  border-radius: 10px;
  background: #f6f8f4;
}
.atff-wrapper .atff-product-image {
  aspect-ratio: 4 / 3;
}
.atff-wrapper .atff-food-guide-thumb {
  display: block;
  width: 64px;
  flex: 0 0 64px;
  margin: 0 0 0.35rem;
}
.atff-wrapper .atff-food-guide-thumb .atff-food-thumb {
  width: 64px;
  height: 64px;
}
.atff-wrapper .atff-food-guide-button.atff-food-pill {
  align-content: start;
  justify-items: start;
}
.atff-wrapper .atff-food-guide-text {
  min-width: 0;
}
.atff-wrapper .atff-product-figure .atff-product-image {
  margin: 0;
  overflow: visible;
}

/* V3.1 media and select refinements. */
.atff-wrapper .atff-field select {
  height: auto !important;
  min-height: 48px !important;
  line-height: 1.35 !important;
  opacity: 1 !important;
  appearance: auto;
}
.atff-wrapper .atff-field--subset select:disabled {
  color: #59665c !important;
}
.atff-product-figure {
  margin: 0 0 0.75rem;
  overflow: hidden;
  border-radius: 10px;
  background: #f6f8f4;
}
.atff-product-image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 10px;
}
.atff-food-guide-button.atff-food-pill {
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 0.65rem;
}
.atff-food-guide-thumb {
  grid-row: span 4;
  display: block;
  width: 64px;
  height: 64px;
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
  background: #f6f8f4;
}
.atff-food-thumb,
.atff-food-guide-img {
  display: block;
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 10px;
}
@media (max-width: 520px) {
  .atff-food-guide-button.atff-food-pill {
    grid-template-columns: minmax(0, 1fr);
  }
  .atff-food-guide-thumb,
  .atff-food-thumb {
    width: 72px;
    height: 72px;
  }
}

/* Theme override guard for affiliate buttons. */
.atff-wrapper a.atff-amazon-button,
.atff-wrapper a.atff-amazon-button:visited,
.atff-wrapper a.atff-amazon-button:hover,
.atff-wrapper a.atff-amazon-button:focus,
.atff-wrapper a.atff-amazon-button:active,
.atff-wrapper a.atff-amazon-button * {
  color: #fff !important;
  fill: #fff !important;
  text-shadow: none !important;
}

/* V3.3 food-list readability and loading-state refinements. */
.atff-wrapper .atff-food-guide-list,
.atff-wrapper .atff-food-list--compact {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)) !important;
  align-items: start !important;
}
.atff-wrapper .atff-food-section-grid,
.atff-wrapper .atff-product-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)) !important;
  align-items: start !important;
}
.atff-wrapper .atff-food-guide-item {
  align-self: start !important;
  min-width: 0 !important;
}
.atff-wrapper .atff-food-guide-button.atff-food-pill {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  white-space: normal !important;
  text-align: left !important;
  gap: 0.7rem !important;
}
.atff-wrapper .atff-food-guide-text {
  display: grid !important;
  gap: 0.18rem !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
.atff-wrapper .atff-food-guide-name,
.atff-wrapper .atff-food-guide-meta,
.atff-wrapper .atff-food-guide-note,
.atff-wrapper .atff-food-guide-hint {
  display: block !important;
  max-width: 100% !important;
  line-height: 1.35 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  white-space: normal !important;
}
.atff-wrapper .atff-food-guide-name {
  font-size: 1.03rem !important;
}
.atff-wrapper .atff-food-guide-meta {
  font-size: 0.82rem !important;
  letter-spacing: 0.01em !important;
}
.atff-wrapper .atff-food-guide-thumb {
  flex: 0 0 64px !important;
}
.atff-wrapper .atff-product-card {
  align-self: start !important;
}
.atff-loading {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 68px;
}
.atff-loading-figure {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
}
.atff-loading-image {
  display: block;
  width: 44px;
  height: 44px;
}
.atff-loading-spinner {
  display: inline-block;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border: 4px solid #c7dfbc;
  border-top-color: #16472d;
  border-radius: 50%;
  animation: atff-spin 0.85s linear infinite;
}
.atff-loading-text {
  font-weight: 700;
  color: #263f31;
}
@keyframes atff-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .atff-loading-spinner {
    animation: none;
  }
}

/* V3.3.1 loading image polish. */
.atff-wrapper .atff-loading-image {
  animation: atff-pulse 1.2s ease-in-out infinite;
}
.atff-wrapper .atff-loading-detail {
  display: block;
  margin-top: 0.1rem;
  font-size: 0.88rem;
  font-weight: 400;
  color: #53645a;
}
@keyframes atff-pulse {
  0%, 100% { transform: scale(1); opacity: 0.78; }
  50% { transform: scale(1.06); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .atff-wrapper .atff-loading-image { animation: none; }
}

/* V3.3 food guide readability and loading indicator fixes. */
.atff-wrapper .atff-food-guide-list {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)) !important;
  align-items: stretch;
}
.atff-wrapper .atff-food-guide-item {
  min-width: 0;
  width: 100%;
}
.atff-wrapper .atff-food-guide-button.atff-food-pill {
  display: flex !important;
  width: 100%;
  min-width: 0;
  min-height: 96px;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0.7rem;
  white-space: normal !important;
  text-align: left;
  overflow: hidden;
}
.atff-wrapper .atff-food-guide-text {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.2rem;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
}
.atff-wrapper .atff-food-guide-name,
.atff-wrapper .atff-food-guide-meta,
.atff-wrapper .atff-food-guide-note {
  display: block;
  width: 100%;
  max-width: 100%;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: auto;
  text-align: left;
}
.atff-wrapper .atff-food-guide-name {
  font-size: 1.02rem;
  line-height: 1.25;
}
.atff-wrapper .atff-food-guide-meta {
  font-size: 0.82rem;
  line-height: 1.25;
  letter-spacing: 0.01em;
}
.atff-wrapper .atff-food-guide-note {
  font-size: 0.9rem;
  line-height: 1.35;
}
.atff-wrapper .atff-food-guide-thumb {
  flex: 0 0 64px;
}
@media (max-width: 560px) {
  .atff-wrapper .atff-food-guide-button.atff-food-pill {
    min-height: 0;
  }
}

.atff-wrapper .atff-loading {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 82px;
  font-weight: 700;
  color: #173c27;
}
.atff-wrapper .atff-loading-spinner {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  display: inline-block;
  background: url('../img/atff-loading.svg') center / contain no-repeat;
  animation: atff-shell-spin 0.9s linear infinite;
}
.atff-wrapper .atff-loading-text {
  display: inline-block;
}
@keyframes atff-shell-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .atff-wrapper .atff-loading-spinner {
    animation: none;
  }
}

/* Stronger theme override guard for commercial-food Amazon buttons. */
.atff-wrapper a.atff-amazon-button,
.atff-wrapper a.atff-amazon-button:link,
.atff-wrapper a.atff-amazon-button:visited,
.atff-wrapper a.atff-amazon-button:hover,
.atff-wrapper a.atff-amazon-button:focus,
.atff-wrapper a.atff-amazon-button:active,
.atff-wrapper .atff-amazon-button,
.atff-wrapper .atff-amazon-button span {
  color: #fff !important;
  background-color: #16472d !important;
  border-color: #16472d !important;
  opacity: 1 !important;
  text-decoration: none !important;
}
.atff-wrapper .atff-loading-figure {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.atff-wrapper .atff-loading-image {
  width: 34px;
  height: 34px;
  display: block;
  animation: atff-shell-spin 0.9s linear infinite;
}
.atff-wrapper .atff-loading-detail {
  display: block;
  margin-top: 0.18rem;
  font-weight: 400;
  color: #53645a;
}
@media (prefers-reduced-motion: reduce) {
  .atff-wrapper .atff-loading-image {
    animation: none;
  }
}

/* V3.3.2 final food-card no-bunch guard for narrow columns and long categories. */
.atff-wrapper .atff-food-guide-button.atff-food-pill {
  display: block !important;
  min-height: 108px;
  padding: 0.8rem 0.85rem;
}
.atff-wrapper .atff-food-guide-thumb {
  display: block;
  margin: 0 0 0.45rem;
}
.atff-wrapper .atff-food-guide-text,
.atff-wrapper .atff-food-guide-name,
.atff-wrapper .atff-food-guide-meta,
.atff-wrapper .atff-food-guide-note {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}
.atff-wrapper .atff-food-guide-meta {
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}

/* V3.3.1 visible loading state with animated dots and a non-image fallback. */
.atff-wrapper .atff-results.atff-is-loading {
  min-height: 92px;
}
.atff-wrapper .atff-loading {
  display: flex !important;
  align-items: center !important;
  gap: 0.85rem !important;
  min-height: 86px !important;
  padding: 1rem !important;
  border-radius: 12px !important;
  background: #f7faf4 !important;
  border: 1px dashed #c7dfbc !important;
  color: #173c27 !important;
}
.atff-wrapper .atff-loading-shell {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 42px !important;
  width: 42px !important;
  height: 42px !important;
  border: 3px solid #c7dfbc !important;
  border-top-color: #16472d !important;
  border-radius: 999px !important;
  background: #eef8ea !important;
  line-height: 1 !important;
  animation: atff-loading-ring 0.9s linear infinite !important;
}
.atff-wrapper .atff-loading-shell-inner {
  display: inline-block !important;
  transform: rotate(0deg) !important;
  animation: atff-loading-shell-counter 0.9s linear infinite !important;
  font-size: 1.08rem !important;
}
.atff-wrapper .atff-loading-copy {
  display: grid !important;
  gap: 0.16rem !important;
  min-width: 0 !important;
}
.atff-wrapper .atff-loading-main {
  display: inline-flex !important;
  align-items: baseline !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  color: #173c27 !important;
}
.atff-wrapper .atff-loading-dots {
  display: inline-flex !important;
  min-width: 1.35em !important;
  margin-left: 0.05em !important;
}
.atff-wrapper .atff-loading-dots span {
  opacity: 0.15;
  animation: atff-loading-dot 1.2s infinite ease-in-out;
}
.atff-wrapper .atff-loading-dots span:nth-child(2) { animation-delay: 0.2s; }
.atff-wrapper .atff-loading-dots span:nth-child(3) { animation-delay: 0.4s; }
.atff-wrapper .atff-loading-detail {
  display: block !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  color: #53645a !important;
}
.atff-wrapper .atff-error {
  border-style: solid !important;
  border-color: #d9b1b1 !important;
  background: #fff8f8 !important;
}
@keyframes atff-loading-ring {
  to { transform: rotate(360deg); }
}
@keyframes atff-loading-shell-counter {
  to { transform: rotate(-360deg); }
}
@keyframes atff-loading-dot {
  0%, 20% { opacity: 0.15; transform: translateY(0); }
  45% { opacity: 1; transform: translateY(-0.08em); }
  70%, 100% { opacity: 0.15; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .atff-wrapper .atff-loading-shell,
  .atff-wrapper .atff-loading-shell-inner,
  .atff-wrapper .atff-loading-dots span {
    animation: none !important;
  }
  .atff-wrapper .atff-loading-dots span {
    opacity: 1 !important;
  }
}

/* V2.3 loading indicator: visible spinner plus three-dot progress animation. */
.atff-wrapper .atff-loading {
  display: flex !important;
  align-items: center !important;
  gap: 0.8rem !important;
  min-height: 86px !important;
  padding: 0.9rem 1rem !important;
  border: 1px dashed #c8dfbf !important;
  border-radius: 12px !important;
  background: #fbfdf8 !important;
  color: #173c27 !important;
}
.atff-wrapper .atff-loading-spinner {
  display: inline-block !important;
  flex: 0 0 36px !important;
  width: 36px !important;
  height: 36px !important;
  border: 4px solid #c7dfbc !important;
  border-top-color: #16472d !important;
  border-radius: 999px !important;
  background: none !important;
  animation: atff-spin 0.85s linear infinite !important;
}
.atff-wrapper .atff-loading-copy {
  display: block !important;
  min-width: 0 !important;
}
.atff-wrapper .atff-loading-text {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 0.05rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}
.atff-wrapper .atff-loading-dots {
  display: inline-flex !important;
  min-width: 1.15em !important;
  margin-left: 0.1rem !important;
}
.atff-wrapper .atff-loading-dots span {
  opacity: 0.2;
  animation: atff-dot-step 1.2s infinite;
}
.atff-wrapper .atff-loading-dots span:nth-child(2) { animation-delay: 0.2s; }
.atff-wrapper .atff-loading-dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes atff-dot-step {
  0%, 20% { opacity: 0.2; transform: translateY(0); }
  35%, 55% { opacity: 1; transform: translateY(-1px); }
  75%, 100% { opacity: 0.2; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .atff-wrapper .atff-loading-spinner,
  .atff-wrapper .atff-loading-dots span {
    animation: none !important;
  }
  .atff-wrapper .atff-loading-dots span { opacity: 1; }
}

/* V2.3 loading-state and AJAX watchdog polish. */
.atff-wrapper .atff-loading {
  display: flex !important;
  align-items: center !important;
  gap: 0.8rem !important;
  min-height: 86px !important;
  padding: 1rem !important;
  border: 1px dashed #c8dfbf !important;
  border-radius: 12px !important;
  background: #f8fbf5 !important;
  color: #173c27 !important;
}
.atff-wrapper .atff-loading-spinner {
  display: inline-block !important;
  flex: 0 0 36px !important;
  width: 36px !important;
  height: 36px !important;
  border: 4px solid #c7dfbc !important;
  border-top-color: #16472d !important;
  border-radius: 50% !important;
  background: none !important;
  animation: atff-spin 0.85s linear infinite !important;
}
.atff-wrapper .atff-loading-copy {
  display: grid !important;
  gap: 0.15rem !important;
}
.atff-wrapper .atff-loading-main,
.atff-wrapper .atff-loading-text {
  display: inline-block !important;
  font-weight: 800 !important;
  color: #173c27 !important;
}
.atff-wrapper .atff-loading-detail {
  display: block !important;
  margin: 0 !important;
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  color: #53645a !important;
}
.atff-wrapper .atff-loading-dots {
  display: inline-flex !important;
  min-width: 1.2em !important;
  margin-left: 0.05em !important;
}
.atff-wrapper .atff-loading-dots span {
  opacity: 0 !important;
  animation: atff-dot-step 1.2s infinite !important;
}
.atff-wrapper .atff-loading-dots span:nth-child(2) { animation-delay: 0.2s !important; }
.atff-wrapper .atff-loading-dots span:nth-child(3) { animation-delay: 0.4s !important; }
.atff-wrapper .atff-submit[disabled],
.atff-wrapper .atff-submit[aria-disabled="true"] {
  opacity: 0.78 !important;
  cursor: wait !important;
}
@keyframes atff-dot-step {
  0%, 20% { opacity: 0; }
  35%, 80% { opacity: 1; }
  100% { opacity: 0; }
}
@keyframes atff-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .atff-wrapper .atff-loading-spinner,
  .atff-wrapper .atff-loading-dots span {
    animation: none !important;
    opacity: 1 !important;
  }
}

/* V2.3 loading-state and no-stuck visual feedback. */
.atff-wrapper .atff-loading {
  display: flex !important;
  align-items: center !important;
  gap: 0.85rem !important;
  min-height: 84px !important;
  padding: 1rem !important;
}
.atff-wrapper .atff-loading-spinner {
  display: inline-block !important;
  flex: 0 0 38px !important;
  width: 38px !important;
  height: 38px !important;
  border: 4px solid #c7dfbc !important;
  border-top-color: #16472d !important;
  border-radius: 999px !important;
  background: none !important;
  animation: atff-spin 0.85s linear infinite !important;
}
.atff-wrapper .atff-loading-copy {
  display: block !important;
  min-width: 0 !important;
}
.atff-wrapper .atff-loading-text {
  display: inline-flex !important;
  align-items: baseline !important;
  color: #173c27 !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}
.atff-wrapper .atff-loading-dots {
  display: inline-flex !important;
  width: 1.35em !important;
  margin-left: 0.05em !important;
}
.atff-wrapper .atff-loading-dots span {
  display: inline-block !important;
  animation: atff-dot-step 1.15s infinite both !important;
}
.atff-wrapper .atff-loading-dots span:nth-child(2) { animation-delay: 0.18s !important; }
.atff-wrapper .atff-loading-dots span:nth-child(3) { animation-delay: 0.36s !important; }
.atff-wrapper .atff-loading-detail {
  display: block !important;
  margin-top: 0.15rem !important;
  color: #53645a !important;
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
}
.atff-wrapper .atff-submit:disabled,
.atff-wrapper .atff-submit[aria-disabled="true"] {
  opacity: 0.78 !important;
  cursor: wait !important;
}
@keyframes atff-dot-step {
  0%, 20% { opacity: 0.18; transform: translateY(0); }
  45% { opacity: 1; transform: translateY(-0.08em); }
  80%, 100% { opacity: 0.18; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .atff-wrapper .atff-loading-spinner,
  .atff-wrapper .atff-loading-dots span {
    animation: none !important;
  }
}

/* V2.3 loading-state and food-card stability fixes. */
.atff-wrapper .atff-loading {
  display: flex !important;
  align-items: center !important;
  gap: 0.85rem !important;
  min-height: 88px !important;
  padding: 1rem !important;
  border-radius: 12px !important;
  background: #f7faf4 !important;
  border: 1px dashed #c7dfbc !important;
  color: #173c27 !important;
}
.atff-wrapper .atff-loading-shell {
  position: relative;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 50% 50% 45% 45%;
  border: 3px solid #16472d;
  background:
    linear-gradient(90deg, transparent 47%, rgba(22,71,45,0.28) 47%, rgba(22,71,45,0.28) 53%, transparent 53%),
    linear-gradient(0deg, transparent 47%, rgba(22,71,45,0.28) 47%, rgba(22,71,45,0.28) 53%, transparent 53%),
    #eaf5e5;
  box-shadow: inset 0 0 0 5px rgba(22,71,45,0.08);
  animation: atff-shell-spin 1s linear infinite;
}
.atff-wrapper .atff-loading-copy {
  display: block;
  min-width: 0;
}
.atff-wrapper .atff-loading-line {
  display: inline-flex;
  align-items: baseline;
  gap: 0.15rem;
  font-weight: 800;
  color: #173c27;
}
.atff-wrapper .atff-loading-dots {
  display: inline-flex;
  width: 1.6em;
  justify-content: flex-start;
}
.atff-wrapper .atff-loading-dots span {
  display: inline-block;
  opacity: 0.2;
  animation: atff-dot-step 1.2s infinite;
}
.atff-wrapper .atff-loading-dots span:nth-child(2) { animation-delay: 0.2s; }
.atff-wrapper .atff-loading-dots span:nth-child(3) { animation-delay: 0.4s; }
.atff-wrapper .atff-loading-detail {
  display: block !important;
  margin-top: 0.18rem !important;
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  color: #53645a !important;
}
@keyframes atff-dot-step {
  0%, 20% { opacity: 0.2; transform: translateY(0); }
  35%, 55% { opacity: 1; transform: translateY(-0.05em); }
  80%, 100% { opacity: 0.2; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .atff-wrapper .atff-loading-shell,
  .atff-wrapper .atff-loading-dots span {
    animation: none !important;
  }
  .atff-wrapper .atff-loading-dots span { opacity: 1; }
}
.atff-wrapper .atff-submit[disabled] {
  cursor: wait;
  opacity: 0.82;
}
.atff-wrapper .atff-food-guide-list {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)) !important;
  align-items: stretch !important;
}
.atff-wrapper .atff-food-guide-button.atff-food-pill {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0.35rem !important;
  min-height: 0 !important;
  height: auto !important;
  white-space: normal !important;
  overflow: visible !important;
}
.atff-wrapper .atff-food-guide-thumb {
  margin: 0 0 0.35rem !important;
}
.atff-wrapper .atff-food-guide-name,
.atff-wrapper .atff-food-guide-meta,
.atff-wrapper .atff-food-guide-note,
.atff-wrapper .atff-food-guide-hint {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  line-height: 1.35 !important;
}
.atff-wrapper .atff-food-guide-meta {
  font-size: 0.9rem !important;
  color: #53645a !important;
}

/* V3.4.2: Put prepared commercial foods first and make them visually distinct. */
.atff-wrapper .atff-commercial-foods {
  position: relative;
  border-color: #b9d7a6 !important;
  background: linear-gradient(180deg, #f4fbef 0%, #fbfef8 100%) !important;
  box-shadow: 0 10px 28px rgba(22, 75, 46, 0.07);
}
.atff-wrapper .atff-commercial-foods::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  border-radius: 12px 0 0 12px;
  background: #7fae4b;
}
.atff-wrapper .atff-commercial-foods-header {
  padding-left: 0.35rem;
}
.atff-wrapper .atff-commercial-foods h4 {
  margin: 0 0 0.25rem;
  color: #123c26;
}
.atff-wrapper .atff-commercial-foods .atff-guide-eyebrow {
  color: #3d6d21;
}
.atff-wrapper .atff-food-guide-list--commercial {
  margin-top: 0.8rem;
}
.atff-wrapper .atff-commercial-food-button.atff-food-pill {
  border-color: #b6d5a5 !important;
  background: #ffffff !important;
  box-shadow: inset 0 0 0 1px rgba(127, 174, 75, 0.12);
}
.atff-wrapper .atff-commercial-food-button.atff-food-pill:hover,
.atff-wrapper .atff-commercial-food-button.atff-food-pill:focus {
  border-color: #16472d !important;
  box-shadow: inset 0 0 0 1px rgba(22, 71, 45, 0.18), 0 6px 14px rgba(22, 71, 45, 0.08);
}
.atff-wrapper .atff-commercial-label,
.atff-wrapper .atff-commercial-status {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  margin: 0.15rem 0.35rem 0 0;
  padding: 0.16rem 0.45rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: normal;
}
.atff-wrapper .atff-commercial-label {
  background: #eef8e8;
  color: #173c27;
  border: 1px solid #c8dfbf;
}
.atff-wrapper .atff-commercial-status {
  background: #f7fbff;
  color: #23415a;
  border: 1px solid #c9dcec;
}

/* V2.5: product cards are the commercial-food start section. */
.atff-wrapper .atff-products--guide-top {
  margin-top: 1rem !important;
  margin-bottom: 1.1rem !important;
  padding: 1.05rem !important;
  border: 2px solid #9fcf8f !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #f3fbef 0%, #fffdf4 100%) !important;
  box-shadow: 0 10px 28px rgba(22, 71, 45, 0.08) !important;
}
.atff-wrapper .atff-products--guide-top h4 {
  margin: 0 0 0.3rem !important;
  color: #123d27 !important;
}
.atff-wrapper .atff-products--guide-top > p:not(.atff-commercial-eyebrow):not(.atff-disclosure) {
  max-width: 68rem !important;
  color: #425247 !important;
}
.atff-wrapper .atff-products--guide-top .atff-disclosure {
  margin-top: 0.75rem !important;
}
.atff-wrapper .atff-products--guide-top .atff-product-card {
  background: #fff !important;
  border-color: #d5e3cf !important;
  box-shadow: 0 1px 0 rgba(22, 71, 45, 0.06) !important;
}
.atff-wrapper .atff-products--guide-top .atff-product-label {
  color: #16472d !important;
}
.atff-wrapper .atff-products--guide-top + .atff-food-guide-section {
  margin-top: 1.15rem !important;
}

/* V3.4.3 / V2.5: move commercial Amazon cards to the top of the guide. */
.atff-wrapper .atff-products--guide-top {
  position: relative;
  margin: 1rem 0 1.1rem !important;
  padding: 1rem !important;
  border: 1px solid #b9d7a6 !important;
  border-radius: 14px !important;
  background: linear-gradient(180deg, #f3fbef 0%, #fbfef8 100%) !important;
  box-shadow: 0 10px 28px rgba(22, 75, 46, 0.08) !important;
}
.atff-wrapper .atff-products--guide-top::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  border-radius: 14px 0 0 14px;
  background: #7fae4b;
}
.atff-wrapper .atff-products--guide-top > * {
  position: relative;
}
.atff-wrapper .atff-products--guide-top h4 {
  margin-top: 0 !important;
  color: #123c26 !important;
}
.atff-wrapper .atff-products--guide-top .atff-product-grid {
  margin-top: 0.85rem !important;
}
.atff-wrapper .atff-products--guide-top .atff-product-card {
  background: #fff !important;
  border-color: #d6e2d2 !important;
}
.atff-wrapper .atff-products--guide-top .atff-product-eyebrow {
  color: #315e3f !important;
}
.atff-wrapper .atff-whole-foods {
  margin-top: 1rem;
}
.atff-wrapper .atff-whole-foods > h4 {
  margin: 0 0 0.25rem;
}
.atff-wrapper .atff-whole-foods > p {
  margin: 0.25rem 0 0.7rem;
  color: #53645a;
}


/* V2.8 / 3.5.2: equal-height Amazon recommendation cards. */
.atff-wrapper .atff-product-grid,
.atff-wrapper .atff-products--guide-top .atff-product-grid {
  align-items: stretch !important;
  grid-auto-rows: 1fr !important;
}
.atff-wrapper .atff-product-grid > .atff-product-card,
.atff-wrapper .atff-products--guide-top .atff-product-grid > .atff-product-card {
  display: flex !important;
  flex-direction: column !important;
  align-self: stretch !important;
  height: 100% !important;
  min-height: 21rem !important;
  box-sizing: border-box !important;
}
.atff-wrapper .atff-product-card .atff-product-eyebrow,
.atff-wrapper .atff-product-card h5,
.atff-wrapper .atff-product-card .atff-product-figure {
  flex: 0 0 auto !important;
}
.atff-wrapper .atff-product-card h5 {
  min-height: 2.6em !important;
}
.atff-wrapper .atff-product-card ul {
  flex: 1 1 auto !important;
  margin-bottom: 1rem !important;
}
.atff-wrapper .atff-product-card .atff-amazon-button {
  margin-top: auto !important;
  align-self: flex-start !important;
}
@media (max-width: 640px) {
  .atff-wrapper .atff-product-grid,
  .atff-wrapper .atff-products--guide-top .atff-product-grid {
    grid-auto-rows: auto !important;
  }
  .atff-wrapper .atff-product-grid > .atff-product-card,
  .atff-wrapper .atff-products--guide-top .atff-product-grid > .atff-product-card {
    min-height: 0 !important;
  }
  .atff-wrapper .atff-product-card h5 {
    min-height: 0 !important;
  }
  .atff-wrapper .atff-product-card .atff-amazon-button {
    align-self: stretch !important;
  }
}
