/* Consumer campaign homepage. Uses the shared Stacks palette and typography. */
.campaign-home .campaign-hero { padding-top: 54px; }
.campaign-home .menu-panel { visibility: hidden; }
.campaign-home[data-menu-open="true"] .menu-panel { visibility: visible; }
.campaign-home .hero-grid { grid-template-columns: 1.05fr 1fr; gap: 48px; }
.campaign-home .hero h1 { font-size: clamp(2.6rem, 4.5vw, 4.2rem); max-width: 13ch; }
.campaign-home .hero h1 .grad-text { display: block; }
.campaign-home .hero-sub { max-width: 43ch; }
.campaign-note { font-size: .88rem; color: var(--ink-soft); line-height: 1.6; max-width: 64ch; }
.campaign-note a, .campaign-tag-details a, .campaign-text-link { text-decoration: underline; text-underline-offset: 4px; color: var(--ink); }
.campaign-home .hero-copy .campaign-note { margin-top: 20px; }
.campaign-home figure { margin: 0; }
.campaign-hero-photo { overflow: hidden; border-radius: var(--r-xl); background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow-lg); }
.campaign-hero-photo img { width: 100%; height: auto; aspect-ratio: 1.12; object-fit: cover; object-position: 57% center; }
.campaign-hero-photo figcaption { padding: 23px 26px; display: grid; gap: 3px; font-size: .92rem; color: var(--ink-soft); }
.campaign-caption-label { font-weight: 800; color: var(--ink); font-size: 1.2rem; }
.campaign-uses { border-top: 1px solid var(--line); }
.campaign-use-showcase { display: grid; grid-template-columns: .95fr 1.05fr; gap: 32px; align-items: center; margin-top: 34px; }
.campaign-use-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
.campaign-keepsake-photo { overflow: hidden; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-xl); box-shadow: var(--shadow-md); }
.campaign-keepsake-photo img { width: 100%; height: auto; }
.campaign-keepsake-photo figcaption { padding: 18px 24px; color: var(--ink-soft); font-size: .94rem; }
.campaign-use-card { display: flex; flex-direction: column; align-items: flex-start; padding: 34px; }
.campaign-use-card:first-child { background: linear-gradient(145deg, #fff 40%, #ffe5ef); }
.campaign-use-card:last-child { background: linear-gradient(145deg, #fff 40%, #e6f2ff); }
.campaign-kicker { color: var(--ink-soft); font-size: .8rem; font-weight: 700; margin-bottom: 16px; }
.campaign-use-card h3 { font-size: 1.6rem; line-height: 1.15; margin-bottom: 16px; }
.campaign-use-card p { max-width: 47ch; }
.campaign-use-card .campaign-example { margin-top: 20px; font-size: .91rem; }
.campaign-text-link { display: inline-flex; gap: 12px; align-items: center; font-weight: 700; padding-block: 12px; }
.campaign-use-card .campaign-text-link { margin-top: auto; padding-top: 24px; }
.campaign-steps { padding: 0; margin: 34px 0 22px; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.campaign-step-number { display: grid; place-items: center; height: 48px; width: 48px; border-radius: 16px; background: var(--grad-brand-soft); font-size: 1.25rem; font-weight: 800; margin-bottom: 24px; }
.campaign-steps h3 { font-size: 1.2rem; line-height: 1.25; margin-bottom: 14px; }
.campaign-home .campaign-everyday { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: center; }
.campaign-routine-photo { width: 100%; height: auto; border-radius: var(--r-xl); border: 1px solid var(--line); box-shadow: var(--shadow-md); }
.campaign-everyday h2 { margin-top: 20px; font-size: clamp(2rem, 3.5vw, 3.25rem); }
.campaign-everyday p { max-width: 43ch; }
.campaign-tag-guide { padding: 40px; display: grid; grid-template-columns: 1fr 1.2fr; gap: 56px; background: var(--grad-brand-soft); border: 1px solid var(--line); border-radius: var(--r-xl); }
.campaign-tag-guide h2 { margin-top: 20px; }
.campaign-tag-details h3:not(:first-child) { margin-top: 30px; }
.campaign-tag-details p { margin-top: 12px; }
.campaign-tools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 34px; padding-block: 28px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.campaign-tools article { padding-left: 18px; border-left: 3px solid var(--brand-blue); }
.campaign-tools article:nth-child(even) { border-left-color: var(--brand-pink); }
.campaign-tools p { margin-bottom: 0; font-size: .94rem; }
.campaign-faq { margin-top: 34px; }
.campaign-final-cta h2 { max-width: 22ch; margin: 22px auto 0; }
.campaign-final-cta > p { margin: 20px auto; }
.campaign-home :is(#everyday,#what,#how,#keepsakes,#features,#faq) { scroll-margin-top: 104px; }
@media (max-width: 1080px) {
  .campaign-home .header-links { display: none; }
}
@media (max-width: 980px) {
  .campaign-home .hero-grid { grid-template-columns: 1fr; gap: 30px; }
  .campaign-home .hero h1 { max-width: 16ch; }
  .campaign-home .hero-sub { max-width: 55ch; }
  .campaign-hero-photo img { aspect-ratio: 3 / 2; }
  .campaign-hero-photo { max-width: 720px; }
  .campaign-steps { grid-template-columns: 1fr; }
  .campaign-steps .card { display: grid; grid-template-columns: 48px 1fr; column-gap: 20px; }
  .campaign-step-number { grid-row: span 2; margin-bottom: 0; }
  .campaign-steps h3 { margin-bottom: 8px; }
  .campaign-tools { grid-template-columns: 1fr 1fr; }
  .campaign-tag-guide { gap: 28px; padding: 30px; }
}
@media (max-width: 760px) {
  .campaign-use-showcase, .campaign-use-grid, .campaign-home .campaign-everyday, .campaign-tag-guide { grid-template-columns: 1fr; }
  .campaign-home .campaign-everyday { gap: 30px; }
}
@media (max-width: 600px) {
  .campaign-home .campaign-hero { padding-top: 26px; }
  .campaign-home .hero h1 { font-size: clamp(2.2rem, 9.4vw, 3.2rem); max-width: 15ch; }
  .campaign-home .hero-cta { align-items: stretch; }
  .campaign-home .hero-cta .button { width: 100%; }
  .campaign-home .hero-copy .eyebrow { font-size: .69rem; }
  .campaign-hero-photo figcaption { padding: 18px 20px; }
  .campaign-use-card { padding: 26px; }
  .campaign-use-card h3 { font-size: 1.45rem; }
  .campaign-tag-guide { padding: 24px; }
  .campaign-tools { grid-template-columns: 1fr; gap: 28px; }
  .campaign-home .campaign-final-cta { padding: 32px 22px; }
  .campaign-final-cta .button-row { flex-direction: column; }
}
