/* ============================================
   SurferFood sf.css hierarchy
   Load after styles.css.
   Layers: tokens → base → layout → components → recipes → motion
   ============================================ */

@layer sf.tokens, sf.base, sf.layout, sf.components, sf.recipes, sf.motion;

/* Unlayered kills: beat styles.css even if those rules stay unlayered. */
.nav {
  background: var(--salt, #F7F6F2);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.btn.btn--browse::after,
.btn--primary.btn--browse::after,
.hero__actions .btn--primary[href="recipes.html"]::after {
  content: none;
  display: none;
}

.btn.btn--browse:hover,
.btn--primary.btn--browse:hover,
.hero__actions .btn--primary[href="recipes.html"]:hover {
  transform: none;
  box-shadow: none;
}

/* --- tokens --- */
@layer sf.tokens {
  :root {
    --sf-brine: var(--deep-brine, #0B3D52);
    --sf-kelp: var(--kelp, #1D5C3B);
    --sf-orange: var(--swell, #F47C2B);
    --sf-salt: var(--salt, #F7F6F2);
    --sf-tide: var(--tide, #EDF1F4);
    --sf-display: var(--font-display, "Barlow Condensed", system-ui, sans-serif);
    --sf-body: var(--font-body, "Lora", Georgia, serif);
    --sf-ui: var(--font-ui, "Barlow Condensed", system-ui, sans-serif);
  }
}

/* --- base: kill glass, glow, SaaS shine --- */
@layer sf.base {
  .nav {
    background: var(--sf-salt);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .btn--browse::after,
  .hero__actions .btn--primary[href="recipes.html"]::after {
    content: none;
    display: none;
  }

  .btn--browse:hover,
  .hero__actions .btn--primary[href="recipes.html"]:hover {
    transform: none;
    box-shadow: none;
  }

  .data-card {
    background: var(--sf-tide);
    border: 1px solid var(--shallows, #D4DCE4);
    border-radius: 0;
  }

  .persona-card {
    background: var(--sf-salt);
    border: 1px solid var(--shallows, #D4DCE4);
    box-shadow: none;
    backdrop-filter: none;
  }

  .persona-card__icon {
    display: none;
  }

  .phase-tile__icon {
    display: none;
  }
}

/* --- layout --- */
@layer sf.layout {
  .sf-timing-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  @media (min-width: 600px) {
    .sf-timing-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  @media (min-width: 1100px) {
    .sf-timing-grid {
      grid-template-columns: repeat(5, 1fr);
    }
  }

  .sf-proof-split {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
    align-items: start;
  }

  @media (min-width: 840px) {
    .sf-proof-split {
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    }
  }

  .sf-filter-status {
    font-family: var(--sf-ui);
    font-size: var(--text-sm);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--sf-kelp);
    margin: 0 0 var(--space-6);
  }
}

/* --- components --- */
@layer sf.components {
  .sf-timing-tile {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--sf-brine);
    background: var(--foam, #fff);
    border: 1px solid var(--shallows, #D4DCE4);
    overflow: hidden;
  }

  .sf-timing-tile:hover {
    color: var(--sf-brine);
    border-color: var(--sf-kelp);
  }

  .sf-timing-tile__img {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--sf-tide);
  }

  .sf-timing-tile__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .sf-timing-tile__body {
    padding: var(--space-4);
  }

  .sf-timing-tile__label {
    font-family: var(--sf-display);
    font-weight: 700;
    font-size: var(--text-lg);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 var(--space-1);
  }

  .sf-timing-tile__meta {
    font-family: var(--sf-ui);
    font-size: var(--text-xs);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sf-kelp);
    margin: 0;
  }

  .sf-phase {
    display: inline-block;
    font-family: var(--sf-ui);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--sf-kelp);
    border: 1px solid var(--sf-kelp);
    padding: 2px 8px;
    margin: var(--space-4) 0;
  }

  .phase-badge {
    font-family: var(--sf-ui);
    letter-spacing: 0.08em;
  }

  .sf-empty {
    display: none;
    font-family: var(--sf-body);
    color: var(--slate, #4A5568);
    padding: var(--space-8) 0;
  }

  .sf-empty.is-visible {
    display: block;
  }

  .footer__intent a {
    color: var(--sf-orange);
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  .footer__intent a:hover {
    color: var(--sf-brine);
  }

  .footer__band {
    background: var(--sf-brine);
  }

  .footer__band img {
    object-position: 50% 45%;
  }
}

/* --- recipes: index cards + proof module --- */
@layer sf.recipes {
  .sf-recipe-card__context,
  .sf-recipe-card__status {
    font-family: var(--sf-body);
    font-size: var(--text-sm);
    color: var(--slate, #4A5568);
    margin: var(--space-2) 0 0;
    line-height: 1.45;
  }

  .sf-recipe-card__status {
    font-family: var(--sf-ui);
    font-size: var(--text-xs);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sf-kelp);
    margin-bottom: var(--space-3);
  }

  .sf-recipe-card.is-hidden {
    display: none;
  }

  .filter-bar {
    flex-wrap: wrap;
  }

  .filter-btn[aria-pressed="true"] {
    background: var(--sf-brine);
    color: #fff;
    border-color: var(--sf-brine);
  }

  .sf-proof {
    margin: var(--space-12) 0 0;
    padding: var(--space-8) 0 0;
    border-top: 1px solid var(--shallows, #D4DCE4);
  }

  .sf-proof__title {
    font-family: var(--sf-display);
    font-size: var(--text-2xl);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--sf-brine);
    margin: 0 0 var(--space-4);
  }

  .sf-proof__boundary,
  .sf-proof__method,
  .sf-proof__sub {
    font-family: var(--sf-body);
    font-size: var(--text-sm);
    color: var(--slate, #4A5568);
    margin: 0 0 var(--space-4);
    max-width: 42rem;
  }

  .sf-proof__method a,
  .sf-proof__boundary a {
    color: var(--sf-orange);
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  .sf-proof__table-wrap {
    overflow-x: auto;
    max-width: 100%;
    margin: var(--space-6) 0;
    border: 1px solid var(--shallows, #D4DCE4);
    background: #fff;
    -webkit-overflow-scrolling: touch;
  }

  .sf-proof-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
  }

  .sf-proof-table caption {
    caption-side: top;
    text-align: left;
    font-family: var(--sf-ui);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sf-kelp);
    padding: var(--space-3) var(--space-4);
    background: var(--sf-tide);
  }

  .sf-proof-table th,
  .sf-proof-table td {
    padding: var(--space-3) var(--space-4);
    border-top: 1px solid var(--shallows, #D4DCE4);
    text-align: left;
    vertical-align: top;
  }

  .sf-proof-table thead th {
    font-family: var(--sf-ui);
    font-size: var(--text-xs);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sf-brine);
    background: var(--sf-salt);
    border-top: 0;
  }

  .sf-proof-table tbody td:nth-child(n + 3),
  .sf-proof-table tfoot td:nth-child(n + 3),
  .sf-proof-table thead th:nth-child(n + 3) {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }

  .sf-proof-table tfoot th,
  .sf-proof-table tfoot td {
    font-family: var(--sf-ui);
    font-weight: 700;
    background: var(--sf-tide);
  }

  .sf-proof-table .sf-proof-listed th,
  .sf-proof-table .sf-proof-listed td {
    background: var(--sf-salt);
    color: var(--sf-brine);
  }

  .sf-method {
    margin-top: var(--space-12);
    padding-top: var(--space-8);
    border-top: 1px solid var(--shallows, #D4DCE4);
  }

  .sf-method ol {
    padding-left: var(--space-6);
  }

  .sf-hero-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

/* --- motion: hero only, or none --- */
@layer sf.motion {
  .reveal,
  .reveal.visible {
    opacity: 1;
    transform: none;
    transition: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .hero-stagger,
    .hero-stagger.is-in {
      opacity: 1;
      transform: none;
      transition: none;
    }

    .phase-tile,
    .phase-tile__bg,
    .recipe-card,
    .recipe-card__img img,
    .sf-timing-tile {
      transition: none;
      transform: none;
    }
  }
}

/* Homepage premium pass. Unlayered so it wins over styles.css. */

.btn {
  min-height: 44px;
}

.nav__links .nav__cta {
  display: none;
}

.nav__links .nav__cta a {
  color: #fff;
}

.nav__links .nav__cta a::after {
  display: none;
}

.nav__links .nav__cta a:hover {
  color: #fff;
  background: #e06a1b;
}

.nav__links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

@media (min-width: 1100px) {
  .nav__links .nav__cta {
    display: list-item;
  }
}

.sf-home .hero {
  min-height: calc(100svh - var(--nav-height));
  min-height: calc(100dvh - var(--nav-height));
  align-items: flex-end;
}

.sf-home .hero__bg img {
  opacity: 1;
}

.sf-home .hero__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(8, 18, 28, 0.25) 0%, rgba(8, 18, 28, 0.45) 42%, rgba(8, 18, 28, 0.92) 100%);
}

@media (min-width: 900px) {
  .sf-home .hero__bg::after {
    background:
      linear-gradient(90deg, rgba(8, 18, 28, 0.94) 0%, rgba(8, 18, 28, 0.86) 32%, rgba(8, 18, 28, 0.42) 58%, rgba(8, 18, 28, 0.12) 100%),
      linear-gradient(180deg, rgba(8, 18, 28, 0.2) 0%, rgba(8, 18, 28, 0.35) 100%);
  }

  .sf-home .hero {
    align-items: center;
  }
}

.sf-home .hero__content {
  width: 100%;
  max-width: var(--max-width);
  margin-left: auto;
  margin-right: auto;
  padding-top: clamp(4.5rem, 12vh, 8rem);
  padding-bottom: clamp(2.5rem, 6vh, 5rem);
  padding-left: var(--space-5);
  padding-right: var(--space-5);
}

@media (min-width: 768px) {
  .sf-home .hero__content {
    padding-left: var(--space-8);
    padding-right: var(--space-8);
  }
}

.sf-home .hero__title {
  max-width: 11em;
  letter-spacing: 0.01em;
}

.sf-home .hero__sub {
  max-width: 32rem;
  color: rgba(247, 246, 242, 0.92);
}

.sf-home .hero__meta {
  font-family: var(--font-ui);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: var(--text-xs);
  color: var(--sea-glass);
}

.sf-hero-secondary {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 2px;
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: var(--text-sm);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 0.28em;
  text-decoration-thickness: 1px;
}

.sf-hero-secondary:hover {
  color: var(--sea-glass);
}

.sf-home .section-title,
.sf-close h2 {
  letter-spacing: 0.01em;
  max-width: 18ch;
}

.sf-home .section-desc {
  max-width: 38rem;
}

.sf-problem {
  background: var(--deep-brine);
  color: var(--salt);
}

.sf-problem .section-title,
.sf-problem h3 {
  color: #fff;
}

.sf-problem .section-label {
  color: var(--sea-glass);
}

.sf-problem .section-desc,
.sf-problem p {
  color: rgba(247, 246, 242, 0.82);
}

.sf-problem__list,
.sf-steps__list {
  list-style: none;
  display: grid;
  gap: var(--space-8);
  margin: 0;
  padding: 0;
}

@media (min-width: 800px) {
  .sf-problem__list,
  .sf-steps__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-10);
  }
}

.sf-kicker {
  display: block;
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--swell);
  margin-bottom: var(--space-3);
}

.sf-problem h3,
.sf-steps h3 {
  font-size: var(--text-xl);
  text-transform: uppercase;
  margin-bottom: var(--space-3);
}

.sf-center-cta {
  margin-top: var(--space-10);
}

.sf-day {
  background: var(--tide);
}

.sf-day__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-4);
}

.sf-day__card {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: var(--space-4);
  align-items: center;
  background: #fff;
  color: var(--deep-brine);
  border: 1px solid var(--shallows);
  text-decoration: none;
  min-height: 112px;
}

.sf-day__card:hover {
  color: var(--deep-brine);
  border-color: var(--kelp);
}

.sf-day__card img {
  width: 112px;
  height: 112px;
  object-fit: cover;
}

.sf-day__card h3 {
  font-size: var(--text-lg);
  text-transform: uppercase;
  margin: 0 0 4px;
  color: var(--deep-brine);
}

.sf-day__card p {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--slate);
}

.sf-day__when,
.sf-day__macros {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kelp);
}

.sf-day__card > div {
  padding: var(--space-3) var(--space-4) var(--space-3) 0;
}

@media (max-width: 520px) {
  .sf-day__card {
    grid-template-columns: 88px minmax(0, 1fr);
  }

  .sf-day__card img {
    width: 88px;
    height: 100%;
    min-height: 120px;
  }
}

.sf-home .recipe-card {
  border-radius: 0;
  box-shadow: none;
  border: 1px solid var(--shallows);
}

.sf-inspect {
  background: var(--salt);
}

.sf-inspect figure {
  margin: 0;
}

.sf-inspect figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.sf-steps {
  background: #fff;
}

.sf-text-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: var(--text-sm);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--deep-brine);
  text-decoration: underline;
  text-underline-offset: 0.28em;
}

.sf-text-link:hover {
  color: var(--swell);
}

.sf-faq {
  background: var(--tide);
}

.sf-faq__list {
  max-width: 46rem;
  border-top: 1px solid var(--shallows);
}

.sf-faq details {
  border-bottom: 1px solid var(--shallows);
  background: #fff;
}

.sf-faq summary {
  min-height: 56px;
  padding: var(--space-4) var(--space-5);
  cursor: pointer;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--text-lg);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--deep-brine);
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}

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

.sf-faq summary::after {
  content: "+";
  font-family: var(--font-ui);
  font-weight: 600;
  color: var(--swell);
  flex: 0 0 auto;
}

.sf-faq details[open] summary::after {
  content: "–";
}

.sf-faq details p {
  padding: 0 var(--space-5) var(--space-5);
  max-width: 40rem;
  color: var(--slate);
}

.sf-faq details a {
  color: var(--swell);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.sf-home .email-section .section-header {
  text-align: left;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}

.sf-home .email-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.sf-field {
  display: grid;
  gap: 6px;
}

.sf-field span {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(247, 246, 242, 0.7);
}

.sf-home .email-form input[type="email"],
.sf-home .email-form input[type="text"] {
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  font-family: var(--font-body);
  font-size: 1rem;
}

.sf-home .email-form input::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.sf-home .email-form input:focus {
  outline: 2px solid var(--sea-glass);
  outline-offset: 2px;
  border-color: transparent;
}

.sf-home .email-form .btn {
  justify-self: start;
}

.sf-home .form-status {
  max-width: 36rem;
  margin: var(--space-4) auto 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  min-height: 1.25em;
}

.sf-form-note {
  max-width: 36rem;
  margin: var(--space-4) auto 0;
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.55);
}

.sf-form-note a {
  color: var(--sea-glass);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.sf-close {
  background: var(--deep-brine);
  color: #fff;
  padding: clamp(4rem, 8vw, 7rem) 0;
}

.sf-close .section-label {
  color: var(--sea-glass);
}

.sf-close h2 {
  color: #fff;
  font-size: var(--text-3xl);
  text-transform: uppercase;
  margin: 0 0 var(--space-8);
}

.sf-sticky-cta {
  display: none;
}

@media (max-width: 767px) {
  .sf-sticky-cta {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    z-index: 40;
    min-height: 48px;
    box-shadow: 0 10px 28px rgba(8, 18, 28, 0.28);
  }

  .sf-sticky-cta.is-visible {
    display: inline-flex;
  }

  .sf-home .hero {
    align-items: flex-end;
  }

  .sf-home .hero__bg::after {
    background:
      linear-gradient(180deg, rgba(8, 18, 28, 0.4) 0%, rgba(8, 18, 28, 0.78) 36%, rgba(8, 18, 28, 0.94) 100%);
  }

  .sf-home .hero__content {
    padding-top: 10vh;
    padding-bottom: 36px;
    padding-left: 20px;
    padding-right: 20px;
  }

  .sf-home .hero__title {
    font-size: clamp(2.15rem, 10vw, 2.75rem);
    max-width: 10em;
  }

  .sf-home .hero__meta {
    margin-bottom: 12px;
  }

  .sf-home .hero__sub {
    font-size: 1rem;
    margin-bottom: 12px;
  }

  @media (max-height: 700px) {
    .sf-home .hero__content {
      padding-top: 6vh;
      padding-bottom: 24px;
    }

    .sf-home .hero__title {
      font-size: 2.05rem;
    }
  }

  .sf-home .hero__actions {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }

  .sf-home .hero__actions .btn,
  .sf-home .sf-hero-secondary {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 767px) {
  .about-hero__img {
    aspect-ratio: 4 / 3;
  }
}

@media print {
  .sf-sticky-cta,
  .sf-close {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sf-sticky-cta {
    transition: none;
  }
}

/* Energy gel comparison: sideways scroll, first column pinned, no mid-word breaks. */
.gel-page {
  overflow-x: clip;
  hyphens: none;
  -webkit-hyphens: none;
}

.gel-page h2 {
  max-width: var(--content-width);
  margin-top: var(--space-12);
  margin-bottom: var(--space-4);
}

.gel-sort {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: 0 0 var(--space-3);
}

.gel-sort .btn {
  white-space: nowrap;
  hyphens: none;
}

.gel-sort .btn[aria-pressed="true"] {
  background: var(--deep-brine);
  color: var(--foam);
  border-color: var(--deep-brine);
}

.gel-scroll-hint {
  display: none;
  margin: 0 0 var(--space-2);
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--deep-brine);
}

.gel-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0 0 var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--foam);
}

.gel-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
}

.gel-table caption {
  caption-side: bottom;
  padding: var(--space-3) var(--space-4);
  text-align: left;
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--slate);
  white-space: normal;
}

.gel-table th,
.gel-table td {
  padding: var(--space-3) var(--space-4);
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid var(--color-border);
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
  hyphens: none;
  -webkit-hyphens: none;
}

.gel-table thead th {
  background: var(--deep-brine);
  color: var(--foam);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: var(--text-xs);
}

.gel-table tbody tr:nth-child(odd) > * {
  background: var(--foam);
}

.gel-table tbody tr:nth-child(even) > * {
  background: var(--tide);
}

.gel-table thead th:first-child,
.gel-table tbody tr > :first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  box-shadow: 1px 0 0 var(--shallows);
}

.gel-table thead th:first-child {
  z-index: 2;
  background: var(--deep-brine);
}

.gel-price-note {
  max-width: var(--content-width);
  margin: 0 0 var(--space-6);
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}

@media (max-width: 767px) {
  .gel-scroll-hint {
    display: block;
  }
}

/* Keep wide macro tables inside the content width. */
.recipe-block,
.sf-proof {
  max-width: 100%;
  min-width: 0;
}

.recipe-block > h2:not(.recipe-block__title) {
  margin-top: var(--space-10);
  margin-bottom: var(--space-4);
}

.recipe-block .btn,
.prose .btn {
  max-width: 100%;
  white-space: normal;
  text-align: center;
}

.sf-proof-table {
  width: max-content;
  min-width: 100%;
}

@media (max-width: 480px) {
  .recipe-block {
    padding: var(--space-4);
  }
}

/* Long source URLs stay inside the column on small screens. */
.prose a,
.source-list a,
.prose li {
  overflow-wrap: anywhere;
}

.gel-page .prose a,
.gel-page .source-list,
.gel-page .source-list a,
.gel-page .gel-pick p,
.gel-page .affiliate-notice,
.gel-page code {
  overflow-wrap: anywhere;
}

.gel-pick {
  max-width: var(--content-width);
  margin: 0 0 var(--space-5);
  padding: var(--space-5);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--foam);
}

.gel-pick h3 {
  margin: 0 0 var(--space-3);
}

.gel-pick p {
  margin: 0 0 var(--space-3);
}

.gel-pick .btn {
  display: inline-flex;
  max-width: 100%;
  white-space: normal;
  text-align: center;
}

@media (max-width: 767px) {
  .gel-pick .btn {
    width: 100%;
    justify-content: center;
  }
}

.gel-page .recipe-meta a {
  color: var(--deep-brine);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gel-takes {
  margin: 0;
  padding-left: 1.25rem;
}

.gel-takes li + li {
  margin-top: var(--space-3);
}

.gel-lead {
  margin-top: var(--space-6);
}

.gel-cta {
  max-width: var(--content-width);
  margin: var(--space-8) 0;
  padding: var(--space-6);
  background: var(--deep-brine);
  color: var(--foam);
  border-radius: var(--radius-md);
}

.gel-cta p {
  color: var(--foam);
  margin: 0 0 var(--space-3);
}

.gel-cta__kicker {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sea-glass);
}

.gel-cta__title {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 700;
  line-height: 1.1;
  text-transform: uppercase;
}

.gel-cta .btn {
  margin-top: var(--space-2);
}

.gel-video {
  max-width: var(--content-width);
  margin: 0 0 var(--space-8);
}

.gel-video__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--deep-brine);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.gel-video__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.gel-video__note {
  margin: var(--space-3) 0 0;
  color: var(--slate);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
}

.gel-criteria {
  max-width: var(--content-width);
  margin: 0 0 var(--space-4);
}

.gel-table--wrap th,
.gel-table--wrap td {
  white-space: normal;
  vertical-align: top;
  min-width: 9rem;
}

.gel-final-cta {
  margin: var(--space-6) 0 var(--space-4);
}

.gel-sticky {
  display: none;
  position: fixed;
  z-index: 45;
  left: 50%;
  right: auto;
  bottom: calc(12px + env(safe-area-inset-bottom));
  width: min(32rem, calc(100% - 24px));
  min-height: 48px;
  transform: translateX(-50%);
  justify-content: center;
  align-items: center;
  box-shadow: 0 10px 28px rgba(8, 18, 28, 0.28);
}

.gel-sticky.is-visible {
  display: inline-flex;
}

@media print {
  .gel-sticky {
    display: none !important;
  }
}
