:root {
  --charcoal: #292929;
  --charcoal-soft: #3a3939;
  --blush: #e69698;
  --blush-deep: #dd8588;
  --rose-pale: #efe9e8;
  --gold: #9e7a26;
  --ink: #171717;
  --muted: #625e5c;
  --white: #ffffff;
  --line: #d8d0ce;
  --max: 1160px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.55;
}
a { color: inherit; }
img { display: block; max-width: 100%; }

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  width: 100%;
  padding: 1rem 2.25rem;
  color: #fff;
}
.brand { font-size: 1.25rem; text-decoration: none; font-weight: 300; }
.site-nav { display: flex; align-items: center; gap: 1.7rem; }
.site-nav a {
  position: relative;
  padding: .25rem 0 .75rem;
  font-weight: 700;
  text-decoration: none;
  text-transform: none;
}
.site-nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 5px;
  background: transparent;
}
.site-nav a:hover::after,
.site-nav a.active::after { background: var(--blush); }
.nav-dropdown { position: relative; }
.nav-dropdown > a { display: block; }
.nav-submenu {
  position: absolute;
  top: calc(100% + .1rem);
  left: 50%;
  z-index: 30;
  display: none;
  width: 245px;
  transform: translateX(-50%);
  border-top: 4px solid var(--blush);
  background: rgba(38, 38, 38, .98);
  box-shadow: 0 12px 30px rgba(0, 0, 0, .22);
  padding: .45rem;
}
.nav-submenu a { display: block; padding: .75rem .8rem; font-size: .93rem; }
.nav-submenu a::after { display: none; }
.nav-submenu a:hover { background: rgba(255, 255, 255, .08); }
.nav-submenu a.active { color: var(--blush); }
.nav-dropdown:hover .nav-submenu,
.nav-dropdown:focus-within .nav-submenu { display: block; }
.menu-toggle {
  display: none;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 4px;
  background: transparent;
  color: #fff;
  padding: .55rem .75rem;
  font: inherit;
}

.hero {
  position: relative;
  min-height: 340px;
  overflow: hidden;
  border-bottom: 9px solid var(--blush);
  background: var(--charcoal);
  color: #fff;
}
.hero-inner {
  position: relative;
  z-index: 3;
  width: min(var(--max), calc(100% - 3rem));
  min-height: 340px;
  margin: 0 auto;
  display: grid;
  place-items: center;
  padding: 5.5rem 0 2.5rem;
}
.page-hero .hero-inner { align-content: center; }
.page-hero h1 {
  margin: 0;
  color: #fff;
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(3rem, 7vw, 5.25rem);
  font-weight: 200;
  line-height: 1.05;
  text-align: center;
}
.storm-shape { position: absolute; opacity: .8; transform: rotate(24deg); }
.storm-shape-one {
  width: 66%; height: 175%; left: -18%; top: -72%;
  border-radius: 50%; background: #4a4949;
}
.storm-shape-two {
  width: 70%; height: 58%; right: -15%; top: 22%;
  background: #202020; transform: rotate(24deg) skewX(-16deg);
}
.script-logo {
  margin: 0;
  font-family: "Brush Script MT", "Segoe Script", cursive;
  font-size: clamp(4rem, 9vw, 7.25rem);
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-shadow: 0 2px 1px rgba(0,0,0,.2);
}
.script-logo small { font-family: Georgia, serif; font-size: .2em; }

.tagline-band { background: var(--rose-pale); padding: 1.5rem; }
.tagline-band h1 {
  width: min(var(--max), 100%);
  margin: 0 auto;
  background: #fff;
  padding: .5rem 1rem;
  color: var(--gold);
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(2rem, 4.2vw, 3.4rem);
  font-weight: 200;
  line-height: 1.2;
  text-align: center;
}
.section { width: min(var(--max), calc(100% - 3rem)); margin: 0 auto; padding: 3.25rem 0; }
.intro-wrap,
.soft-band { background: var(--rose-pale); }
.intro-grid { display: grid; grid-template-columns: minmax(280px, .8fr) 1.25fr; gap: 2rem; align-items: start; }
.logo-card { margin: 0; background: #fff; text-align: center; }
.logo-card img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; }
.logo-card figcaption { padding: 1rem 1.25rem 1.4rem; font-style: italic; font-weight: 700; }
.intro-copy { display: grid; gap: 0; }
.white-panel { background: #fff; padding: 1.6rem 1.5rem; }
.white-panel h2 { margin: 0 0 .85rem; font-size: 1.1rem; }
.white-panel p { margin: 0 0 1rem; }
.white-panel p:last-child { margin-bottom: 0; }
.button {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  border-radius: 3px;
  background: var(--blush);
  padding: .55rem 1rem;
  text-align: center;
  text-decoration: none;
  transition: background .18s ease, transform .18s ease;
}
.button:hover { background: var(--blush-deep); transform: translateY(-1px); }

.section-title {
  width: 100%;
  padding: 2.3rem 1rem;
  text-align: center;
}
.section-title h2 { margin: 0; font-size: 1.2rem; text-transform: uppercase; }
.blush-title { background: var(--blush); }
.dark-title { background: var(--charcoal); color: #fff; }
.card-grid { display: grid; gap: 1.85rem; }
.three-up { grid-template-columns: repeat(3, 1fr); }
.two-up { grid-template-columns: repeat(2, 1fr); }
.audience-grid article { display: flex; flex-direction: column; text-align: center; }
.audience-grid h3 { margin: 0 0 .8rem; text-transform: uppercase; }
.audience-grid p { flex: 1; margin: 0 0 2.3rem; }
.centered { text-align: center; }
.italic { font-style: italic; }
.lead { font-size: 1.02rem; }
.sentence-title { margin-top: 0; font-size: 1.08rem; font-style: italic; }
.support-section { padding-top: 1rem; }
.steps-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; margin: 4.5rem 0 4rem; }
.steps-grid h3 { margin: 0 0 1rem; font-size: .96rem; text-transform: uppercase; }
.steps-grid p { margin: 0; }
.full-button { width: 100%; }
.profile-grid { display: grid; grid-template-columns: 1.5fr .75fr; gap: 2.5rem; align-items: center; }
.profile-copy h2,
.final-cta h2 { text-transform: uppercase; }
.profile-copy h2 { font-size: 1.08rem; }
.profile-copy h3 { font-size: 1rem; }
.profile-photo { width: 100%; max-height: 500px; object-fit: cover; object-position: center top; }
.final-cta { padding-top: 3.8rem; padding-bottom: 3.8rem; }
.final-cta h2 { font-size: 1.06rem; }

.page-intro { background: var(--rose-pale); }
.page-intro .white-panel { padding: 2rem 2.6rem; text-align: center; }
.page-intro .white-panel > :first-child { margin-top: 0; }
.page-intro .white-panel > :last-child { margin-bottom: 0; }
.eyebrow { font-size: .95rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.large-copy { font-size: clamp(1.15rem, 2vw, 1.45rem); }
.page-heading { margin: 0 0 1rem; font-size: clamp(1.75rem, 3.5vw, 2.5rem); font-weight: 400; }
.section-heading { margin: 0 0 1rem; font-size: 1.12rem; text-transform: uppercase; }
.subheading { margin: 0 0 .8rem; font-size: 1rem; text-transform: uppercase; }
.copy-narrow { max-width: 950px; margin-inline: auto; }
.image-grid img { width: 100%; height: 300px; object-fit: cover; }
.image-grid article > img { margin-bottom: 1rem; }
.image-grid ul { padding-left: 1.45rem; text-align: left; }
.image-grid li { margin: .45rem 0; }
.split-section { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.75rem; align-items: start; }
.split-section img { width: 100%; max-height: 470px; object-fit: cover; }
.list-clean { margin: 0; padding: 0; list-style: none; }
.list-clean li { margin: .65rem 0; }
.list-columns { columns: 2; column-gap: 2rem; }
.action-strip { margin-top: 2.2rem; }
.quiet-note { color: var(--muted); font-size: .94rem; }
.quote-block { padding: 2.6rem 1.5rem; text-align: center; font-family: Georgia, serif; font-size: 1.4rem; font-style: italic; }

.audience-links { padding-top: 2rem; padding-bottom: 2rem; }
.audience-links a {
  display: flex;
  min-height: 170px;
  align-items: center;
  justify-content: center;
  border-bottom: 7px solid var(--blush);
  background: #fff;
  padding: 1.5rem;
  font-size: 1.25rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: 0 4px 22px rgba(0, 0, 0, .07);
}
.audience-links a:hover { background: #fff9f9; }

.service-intro { padding-bottom: 1rem; }
.service-group { padding-top: 4rem; padding-bottom: 4rem; }
.service-group + .service-group { border-top: 1px solid var(--line); }
.service-group-header { max-width: 940px; margin: 0 auto 2.2rem; text-align: center; }
.service-group-header h2 { margin: 0 0 1rem; text-transform: uppercase; }
.service-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
.service-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #e3dddd;
  background: #fff;
}
.service-card img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.service-card-body { display: flex; flex: 1; flex-direction: column; padding: 1.35rem; }
.service-card h3 { margin: 0 0 .75rem; font-size: 1rem; text-transform: uppercase; }
.service-card ul { padding-left: 1.2rem; }
.service-card .button { margin-top: auto; }
.disclaimer { background: var(--rose-pale); padding: 1.8rem; text-align: center; }
.framework-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2rem; }
.framework-grid article { border-top: 6px solid var(--blush); background: #fff; padding: 1.3rem; }
.framework-grid h3 { font-size: .95rem; text-transform: uppercase; }

.credentials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.8rem; }
.credentials-grid article { background: #fff; padding: 1.5rem; }
.credentials-grid h3 { margin-top: 0; font-size: 1rem; text-transform: uppercase; }
.credentials-grid ul { padding-left: 1.2rem; }
.about-photo { width: 100%; max-height: 430px; object-fit: cover; }
.about-hero-image { width: 100%; max-height: 460px; object-fit: cover; }

.resource-card { display: flex; flex-direction: column; background: #fff; }
.resource-card img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.resource-card-body { display: flex; flex: 1; flex-direction: column; padding: 1.4rem; }
.resource-card-body .button { margin-top: auto; }

.contact-frame { width: 100%; min-height: 770px; border: 1px solid var(--line); background: #fff; }
.privacy-note { border-left: 7px solid var(--blush); background: var(--rose-pale); padding: 1.6rem 1.8rem; }
.process-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.process-grid article { border-top: 6px solid var(--blush); background: #fff; padding: 1.4rem; }
.process-grid h3 { margin-top: 0; font-size: 1rem; text-transform: uppercase; }
.pricing-columns { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
.price-card { background: #fff; border: 1px solid var(--line); padding: 1.6rem; }
.price-card h3 { margin-top: 0; text-transform: uppercase; }
.price-card h4 { margin-bottom: .25rem; font-size: .98rem; text-transform: uppercase; }
.price-card p { margin-top: .25rem; }
.price-list { padding: 0; list-style: none; }
.price-list li { margin: .65rem 0; }

.purpose-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; }
.purpose-grid article { border-top: 6px solid var(--blush); padding: 1rem; text-align: center; }
.purpose-grid h3 { font-size: .95rem; }
.legal-copy h2 { margin-top: 2.5rem; font-size: 1rem; text-transform: uppercase; }

@media (max-width: 1040px) {
  .site-header { position: fixed; background: rgba(36,36,36,.97); padding: .85rem 1rem; }
  .menu-toggle { display: block; }
  .site-nav {
    position: absolute;
    top: 100%; right: 0; left: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: #252525;
    padding: .5rem 1rem 1rem;
    max-height: calc(100vh - 62px);
    overflow-y: auto;
  }
  .site-nav.open { display: flex; }
  .site-nav a { padding: .75rem .5rem; }
  .site-nav a::after { height: 3px; }
  .nav-dropdown { width: 100%; }
  .nav-dropdown > a { width: 100%; }
  .nav-submenu {
    position: static;
    display: block;
    width: auto;
    transform: none;
    border-top: 0;
    box-shadow: none;
    padding: 0 0 0 1rem;
  }
  .nav-submenu a { color: #efc3c4; padding: .5rem; font-size: .9rem; }
  .hero, .hero-inner { min-height: 270px; }
  .hero-inner { padding-top: 5.5rem; }
  .intro-grid { grid-template-columns: 1fr; }
  .three-up,
  .service-cards,
  .credentials-grid { grid-template-columns: 1fr; }
  .two-up,
  .split-section,
  .pricing-columns { grid-template-columns: 1fr; }
  .steps-grid,
  .framework-grid { grid-template-columns: repeat(2, 1fr); }
  .profile-grid { grid-template-columns: 1fr; }
  .profile-photo { max-width: 460px; margin: 0 auto; }
  .purpose-grid { grid-template-columns: repeat(2, 1fr); }
  .process-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  body { font-size: 16px; }
  .brand { font-size: 1rem; }
  .section { width: min(100% - 2rem, var(--max)); padding: 2.25rem 0; }
  .tagline-band { padding: 1rem; }
  .tagline-band h1 { font-size: 1.85rem; }
  .script-logo { font-size: 3.7rem; }
  .steps-grid,
  .framework-grid,
  .purpose-grid { grid-template-columns: 1fr; }
  .page-intro .white-panel { padding: 1.5rem; }
  .image-grid img { height: 240px; }
  .list-columns { columns: 1; }
  .contact-frame { min-height: 900px; }
}

/* Shop */
.shop-intro .white-panel {
  max-width: 980px;
  margin: 0 auto;
}
.shop-intro .quiet-note { margin-top: 1.2rem; }
.shop-feature {
  display: grid;
  grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  padding-top: 4.5rem;
  padding-bottom: 4.5rem;
}
.featured-product-image {
  position: relative;
  margin: 0;
  background: var(--rose-pale);
  padding: clamp(.75rem, 2vw, 1.3rem);
}
.featured-product-image::after {
  content: "";
  position: absolute;
  inset: 1.25rem -1rem -1rem 1.25rem;
  z-index: -1;
  border: 1px solid var(--gold);
}
.featured-product-image img {
  width: 100%;
  box-shadow: 0 18px 42px rgba(29, 24, 24, .18);
}
.featured-product-copy .page-heading { max-width: 740px; }
.product-badge {
  display: inline-flex;
  margin-bottom: 1.1rem;
  border-radius: 999px;
  background: var(--charcoal);
  padding: .45rem .85rem;
  color: #fff;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.product-lead { font-size: 1.08rem; }
.product-includes {
  display: grid;
  gap: .72rem;
  margin: 1.5rem 0 1.8rem;
  padding: 0;
  list-style: none;
}
.product-includes li {
  position: relative;
  padding-left: 1.7rem;
}
.product-includes li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--gold);
  font-weight: 800;
}
.product-purchase-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 1.25rem 0;
}
.product-price { margin: 0; color: var(--muted); }
.product-price span {
  display: block;
  color: var(--ink);
  font-family: Georgia, serif;
  font-size: 2.1rem;
  line-height: 1.1;
}
.license-line { margin: 1rem 0 0; color: var(--muted); font-size: .9rem; }
.buy-button {
  border: 0;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}
.buy-button:disabled,
.buy-button[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: .68;
  background: #d8d2c8;
  color: #4b514b;
  transform: none;
}
.buy-button:disabled:hover,
.buy-button[aria-disabled="true"]:hover {
  background: #d8d2c8;
  color: #4b514b;
  transform: none;
}
.shop-disabled-link {
  cursor: not-allowed;
  opacity: .68;
  pointer-events: none;
}
.shop-section-heading {
  max-width: 800px;
  margin-bottom: 2.25rem;
}
.bundle-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.35rem;
}
.product-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #ddd3d1;
  background: #fff;
  box-shadow: 0 12px 32px rgba(39, 31, 31, .08);
  transition: transform .2s ease, box-shadow .2s ease;
}
.product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 38px rgba(39, 31, 31, .13);
}
.product-card > img {
  width: 100%;
  aspect-ratio: 8.5 / 10;
  object-fit: cover;
  object-position: top;
}
.product-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1.25rem;
}
.product-card h3 {
  min-height: 3.2em;
  margin: .15rem 0 .7rem;
  font-size: 1.02rem;
  line-height: 1.4;
}
.product-card-body > p:not(.product-topic):not(.card-includes) {
  color: var(--muted);
  font-size: .94rem;
}
.product-topic {
  width: fit-content;
  margin: 0 0 .25rem;
  border-radius: 999px;
  padding: .3rem .65rem;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.product-topic.nourishment { background: #e6efdf; color: #345232; }
.product-topic.connection { background: #f4e3e3; color: #763c45; }
.product-topic.movement { background: #e1ebf0; color: #315166; }
.product-topic.technology { background: #eee8d8; color: #66521e; }
.card-includes {
  margin-top: auto;
  border-top: 1px solid var(--line);
  padding-top: .85rem;
  color: var(--muted);
  font-size: .85rem;
}
.card-purchase {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.card-purchase strong {
  font-family: Georgia, serif;
  font-size: 1.35rem;
}
.card-purchase .button {
  min-height: 38px;
  padding: .5rem .75rem;
  font-size: .88rem;
}
.poster-shop { padding-top: 4.5rem; padding-bottom: 4.5rem; }
.poster-shop .shop-section-heading { margin-right: auto; margin-left: auto; }
.shop-filters {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 1.25rem;
  align-items: end;
  margin: 2rem 0;
  border: 1px solid var(--line);
  background: #faf8f7;
  padding: 1.15rem;
}
.topic-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin: 0;
  border: 0;
  padding: 0;
}
.topic-filters legend,
.stage-filter {
  margin-bottom: .55rem;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.topic-filters legend { width: 100%; }
.filter-button {
  min-height: 40px;
  border: 1px solid #b9afad;
  border-radius: 999px;
  background: #fff;
  padding: .5rem .9rem;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  font-size: .88rem;
}
.filter-button:hover,
.filter-button.active {
  border-color: var(--charcoal);
  background: var(--charcoal);
  color: #fff;
}
.stage-filter {
  display: grid;
  gap: .1rem;
}
.stage-filter select {
  min-height: 42px;
  min-width: 185px;
  border: 1px solid #b9afad;
  border-radius: 3px;
  background: #fff;
  padding: .45rem 2rem .45rem .7rem;
  color: var(--ink);
  font: inherit;
  text-transform: none;
}
.poster-count {
  min-width: 88px;
  margin: 0 0 .55rem;
  font-weight: 700;
  text-align: right;
}
.poster-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.35rem;
}
.poster-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #ded7d5;
  background: #fff;
}
.poster-image-button {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  border: 0;
  background: var(--rose-pale);
  padding: 0;
  cursor: zoom-in;
}
.poster-image-button img {
  width: 100%;
  aspect-ratio: 8.5 / 11;
  object-fit: cover;
  object-position: top;
  transition: transform .25s ease;
}
.poster-image-button > span {
  position: absolute;
  right: .6rem;
  bottom: .6rem;
  border-radius: 999px;
  background: rgba(31, 31, 31, .88);
  padding: .35rem .65rem;
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
}
.poster-image-button:hover img { transform: scale(1.025); }
.poster-image-button.expanded {
  position: fixed;
  inset: 50% auto auto 50%;
  z-index: 100;
  width: min(90vw, 610px);
  max-height: 92vh;
  transform: translate(-50%, -50%);
  overflow: auto;
  background: #fff;
  padding: .65rem;
  cursor: zoom-out;
  box-shadow: 0 0 0 100vmax rgba(17, 17, 17, .78), 0 24px 60px rgba(0, 0, 0, .35);
}
.poster-image-button.expanded img {
  aspect-ratio: auto;
  transform: none;
}
.poster-image-button.expanded > span::before { content: "Close "; }
.poster-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1rem;
}
.poster-card h3 {
  margin: .15rem 0 .4rem;
  font-size: 1.12rem;
}
.poster-description {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: .88rem;
}
.poster-card .card-purchase { margin-top: auto; }
.poster-empty {
  border: 1px dashed var(--line);
  background: var(--rose-pale);
  padding: 2rem;
  text-align: center;
}
.shop-purpose {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 3rem;
  align-items: start;
}
.shop-purpose-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.shop-purpose-grid article {
  border-top: 6px solid var(--blush);
  background: #fff;
  padding: 1.2rem;
}
.shop-purpose-grid h3 {
  margin-top: 0;
  font-size: .92rem;
  text-transform: uppercase;
}
.license-section { padding-top: 4rem; padding-bottom: 4rem; }
.license-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
.license-grid article {
  border: 1px solid var(--line);
  padding: 1.35rem;
}
.license-grid h3 {
  margin-top: 0;
  font-size: .95rem;
  text-transform: uppercase;
}
.license-grid a { color: #745819; font-weight: 700; }
.shop-legal details {
  border: 1px solid var(--line);
  background: #fff;
}
.shop-legal summary {
  padding: 1.25rem 1.4rem;
  cursor: pointer;
  font-weight: 800;
  text-transform: uppercase;
}
.policy-copy { padding: 0 1.4rem 1.2rem; }
.checkout-dialog {
  width: min(92vw, 560px);
  border: 0;
  border-top: 8px solid var(--blush);
  background: #fff;
  padding: 2rem;
  color: var(--ink);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .35);
}
.checkout-dialog::backdrop { background: rgba(22, 22, 22, .72); }
.checkout-dialog h2 { margin-top: .25rem; }
.checkout-dialog #checkout-product {
  border-left: 5px solid var(--gold);
  background: var(--rose-pale);
  padding: .8rem 1rem;
  font-weight: 700;
}
.dialog-close {
  position: absolute;
  top: .65rem;
  right: .8rem;
  border: 0;
  background: transparent;
  padding: .25rem;
  cursor: pointer;
  font-size: 2rem;
  line-height: 1;
}
.dialog-done {
  width: 100%;
  border: 0;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}
.filter-button:focus-visible,
.buy-button:focus-visible,
.poster-image-button:focus-visible,
.stage-filter select:focus-visible,
.dialog-close:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
}

@media (max-width: 1040px) {
  .bundle-grid,
  .poster-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shop-purpose { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .shop-feature { grid-template-columns: 1fr; }
  .featured-product-image { max-width: 560px; margin: 0 auto; }
  .product-purchase-row { align-items: stretch; flex-direction: column; }
  .shop-filters { grid-template-columns: 1fr; align-items: stretch; }
  .poster-count { margin: 0; text-align: left; }
  .shop-purpose-grid,
  .license-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .bundle-grid,
  .poster-grid { grid-template-columns: 1fr; }
  .product-card h3 { min-height: 0; }
  .topic-filters { gap: .45rem; }
  .filter-button { flex: 1 1 calc(50% - .45rem); }
  .stage-filter select { width: 100%; }
  .checkout-dialog { padding: 1.6rem 1.2rem; }
}

/* Perfect Storms shop preview */
.shop-review-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .65rem 1rem;
  flex-wrap: wrap;
  padding: .7rem 1rem;
  background: #f4ead7;
  border-bottom: 1px solid rgba(61, 83, 65, .2);
  color: var(--forest-dark);
  text-align: center;
  font-size: .9rem;
}
.shop-review-banner strong { letter-spacing: .04em; text-transform: uppercase; }
.shop-page {
  --forest: #30483b;
  --forest-dark: #21362c;
  --sage: #73816c;
  --sage-soft: #e7ecdf;
  --cream: #f7f2e8;
  --cream-deep: #ede4d4;
  --taupe: #b8aa96;
  --bark: #69594a;
  --rose-soft: #ead8d5;
  background: #fcfbf8;
}
.shop-page .button {
  border-radius: 999px;
  background: var(--forest);
  color: #fff;
}
.shop-page .button:hover { background: var(--forest-dark); }
.shop-page .eyebrow { color: var(--forest); }
.shop-page .page-heading { font-family: Georgia, "Times New Roman", serif; line-height: 1.16; }
.shop-page .product-badge { background: var(--forest-dark); }
.shop-hero {
  border-color: #aab89b;
  background:
    radial-gradient(circle at 14% 100%, rgba(155, 174, 145, .34), transparent 29%),
    radial-gradient(circle at 88% 6%, rgba(195, 169, 135, .2), transparent 30%),
    linear-gradient(135deg, #23372e 0%, #354d3f 56%, #526354 100%);
}
.shop-hero .hero-inner {
  display: flex;
  min-height: 360px;
  flex-direction: column;
  justify-content: center;
  gap: .7rem;
  text-align: center;
}
.shop-hero-kicker {
  margin: 0;
  color: #dfe8d8;
  font-size: .85rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.shop-hero h1 { max-width: 920px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.7rem, 6vw, 5rem); }
.shop-hero-line { margin: 0; color: #f0e6d7; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1rem, 2vw, 1.3rem); font-style: italic; }
.shop-intro { background: var(--cream); }
.shop-intro .section { padding-bottom: 2rem; }
.shop-intro .white-panel { border: 1px solid #ded5c8; border-top: 5px solid var(--sage); box-shadow: 0 18px 44px rgba(53, 67, 56, .08); }
.shop-jump-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .65rem;
  margin: 1.25rem auto 0;
}
.shop-jump-nav a {
  border: 1px solid #aeb8a5;
  border-radius: 999px;
  background: rgba(255,255,255,.7);
  padding: .58rem .92rem;
  color: var(--forest-dark);
  font-size: .88rem;
  font-weight: 700;
  text-decoration: none;
}
.shop-jump-nav a:hover { background: var(--forest); color: #fff; }
.nature-band,
.everyday-band { background: var(--cream); }
.collection-feature {
  display: grid;
  grid-template-columns: minmax(300px, .88fr) minmax(0, 1.12fr);
  gap: clamp(2.3rem, 5vw, 4.8rem);
  align-items: center;
  padding-top: 4.5rem;
  padding-bottom: 4.5rem;
}
.designed-collection-cover {
  position: relative;
  display: flex;
  min-height: 620px;
  margin: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #b9ad9b;
  background: linear-gradient(160deg, #f9f5eb 0%, #edf1e7 100%);
  box-shadow: 0 24px 55px rgba(46, 59, 50, .2);
}
.designed-collection-cover::before,
.designed-collection-cover::after {
  content: "";
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  background: rgba(106, 128, 99, .13);
}
.designed-collection-cover::before { width: 260px; height: 260px; top: -130px; right: -100px; }
.designed-collection-cover::after { width: 200px; height: 200px; bottom: -110px; left: -75px; }
.cover-brand-line,
.cover-copy,
.cover-image-strip,
.cover-footer-line { position: relative; z-index: 1; }
.cover-brand-line { border-bottom: 1px solid #c9c0b2; padding: 1.15rem 1.35rem .9rem; color: var(--forest); font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.cover-copy { padding: 2.4rem 2rem 1.6rem; text-align: center; }
.cover-copy > span { color: var(--bark); font-size: .78rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.cover-copy h2 { margin: .7rem 0 .45rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.25rem, 5vw, 3.5rem); font-weight: 400; line-height: 1; }
.cover-copy p { max-width: 390px; margin: 0 auto; color: #5a6259; }
.cover-image-strip { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px; margin-top: auto; padding: 0 1.35rem; }
.cover-image-strip img { width: 100%; aspect-ratio: 1.22 / 1; object-fit: cover; }
.cover-footer-line { margin-top: 1.15rem; border-top: 1px solid #c9c0b2; padding: 1rem 1.2rem 1.15rem; color: var(--forest-dark); font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-align: center; text-transform: uppercase; }
.featured-product-copy .page-heading { max-width: 720px; }
.bundle-product-card { border-color: #cfc4b4; box-shadow: 0 14px 34px rgba(54, 63, 54, .09); }
.bundle-art { position: relative; min-height: 330px; overflow: hidden; background: var(--sage-soft); }
.bundle-art-grid { position: absolute; inset: 0; display: grid; grid-template-columns: 1.08fr .92fr; grid-template-rows: 1fr 1fr; gap: 3px; opacity: .92; }
.bundle-art-grid img { width: 100%; height: 100%; object-fit: cover; }
.bundle-art-grid img:first-child { grid-row: 1 / 3; }
.bundle-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(24,39,31,.02) 25%, rgba(24,39,31,.18) 58%, rgba(24,39,31,.88) 100%); }
.bundle-art-title { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; z-index: 2; color: #fff; text-shadow: 0 2px 12px rgba(0,0,0,.38); }
.bundle-art-title small { display: block; margin-bottom: .25rem; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.bundle-art-title strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 1.7rem; font-weight: 400; line-height: 1.05; }
.bundle-art-title span { font-size: .8rem; }
.poster-shop { padding-top: 4.7rem; padding-bottom: 4.7rem; }
.poster-pack-explainer {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin: 0 0 2rem;
}
.poster-pack-explainer article {
  border: 1px solid #d6cdbc;
  border-top: 5px solid var(--sage);
  background: var(--cream);
  padding: 1.1rem;
}
.poster-pack-explainer span {
  color: var(--sage);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
}
.poster-pack-explainer h3 {
  margin: .35rem 0 .5rem;
  color: var(--forest-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.05rem;
}
.poster-pack-explainer p { margin: 0; color: var(--muted); font-size: .9rem; }
.shop-filters { border-color: #ccd3c6; border-radius: 12px; background: #f5f7f1; }
.filter-button { border-color: #aeb8a5; }
.filter-button:hover,
.filter-button.active { border-color: var(--forest); background: var(--forest); }
.storefront-poster-card { border-color: #d1c7b8; border-radius: 4px; box-shadow: 0 12px 28px rgba(40, 52, 43, .08); transition: transform .2s ease, box-shadow .2s ease; }
.storefront-poster-card:hover { transform: translateY(-4px); box-shadow: 0 20px 38px rgba(40, 52, 43, .14); }
.storefront-poster-button { display: block; width: 100%; border: 0; background: var(--cream); padding: 0; cursor: zoom-in; text-align: left; }
.storefront-face { position: relative; display: block; width: 100%; aspect-ratio: 8.5 / 11; overflow: hidden; background: var(--cream); }
.storefront-stage-image { position: absolute; inset: 0; width: 100%; height: 68%; object-fit: cover; object-position: center; transition: transform .3s ease; }
.storefront-poster-button:hover .storefront-stage-image { transform: scale(1.025); }
.storefront-wash { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(247,242,232,0) 36%, rgba(247,242,232,.7) 59%, #f7f2e8 72%); }
.storefront-face.nourishment { border-top: 7px solid #718b65; }
.storefront-face.connection { border-top: 7px solid #b98282; }
.storefront-face.movement { border-top: 7px solid #718b91; }
.storefront-face.technology { border-top: 7px solid #a78e58; }
.storefront-brand { position: absolute; top: .8rem; left: .85rem; border-radius: 999px; background: rgba(255,255,255,.88); padding: .28rem .58rem; color: var(--forest-dark); font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.storefront-copy { position: absolute; right: 1rem; bottom: 3rem; left: 1rem; color: var(--forest-dark); }
.storefront-copy small { display: block; margin-bottom: .32rem; color: var(--bark); font-size: .68rem; font-style: normal; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.storefront-copy strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.4rem, 2.3vw, 1.9rem); font-weight: 400; line-height: 1.05; }
.storefront-copy em { display: block; margin-top: .22rem; color: #5d665d; font-size: .78rem; font-style: normal; font-weight: 700; }
.storefront-preview-pill { position: absolute; right: .75rem; bottom: .7rem; border-radius: 999px; background: var(--forest-dark); padding: .35rem .65rem; color: #fff; font-size: .72rem; font-weight: 700; }
.storefront-poster-card .poster-card-body { border-top: 1px solid #ded5c8; }
.poster-pack-line {
  margin: 0 0 .8rem;
  border-left: 4px solid var(--sage);
  background: var(--sage-soft);
  padding: .65rem .7rem;
  color: var(--forest-dark);
  font-size: .82rem;
  line-height: 1.4;
}
.guidance-preview-button {
  width: 100%;
  min-height: 42px;
  margin: 0 0 .85rem;
  border: 1px solid var(--forest);
  background: #fff;
  padding: .55rem .75rem;
  color: var(--forest-dark);
  cursor: pointer;
  font: inherit;
  font-size: .88rem;
  font-weight: 800;
}
.guidance-preview-button:hover { background: var(--sage-soft); }
.books-band { border-top: 1px solid #e0d6c7; border-bottom: 1px solid #e0d6c7; }
.books-section { padding-top: 4.7rem; padding-bottom: 4.7rem; }
.books-heading { display: grid; grid-template-columns: .9fr 1.1fr; gap: 2rem; align-items: end; margin-bottom: 2rem; }
.books-heading p { margin-bottom: 0; }
.book-collection-callout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(250px, .55fr);
  gap: 2rem;
  align-items: center;
  margin-bottom: 1.5rem;
  border: 1px solid #b9ae9d;
  background: linear-gradient(135deg, #fff 0%, #f1f4eb 100%);
  padding: 1.6rem;
  box-shadow: 0 16px 38px rgba(53, 63, 55, .09);
}
.book-collection-callout h3 { margin: .75rem 0 .5rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.6rem, 3vw, 2.15rem); font-weight: 400; }
.book-collection-callout p { margin-top: 0; }
.book-collection-purchase { border-left: 1px solid #c8c0b3; padding-left: 1.6rem; }
.book-collection-purchase .button { width: 100%; }
.book-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.book-product-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #cfc5b5;
  background: #fff;
  box-shadow: 0 12px 28px rgba(53, 63, 55, .08);
}
.book-product-card figure { aspect-ratio: 8.5 / 11; margin: 0; overflow: hidden; background: #f3f0e8; }
.book-product-card figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.book-card-copy { display: flex; flex: 1; flex-direction: column; padding: 1.2rem; }
.book-card-copy h3 { margin: .65rem 0 .45rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 400; }
.book-card-copy > p:not(.product-topic) { margin-top: 0; color: var(--muted); }
.book-card-includes { padding-top: .75rem; border-top: 1px solid #e7e0d6; font-size: .86rem; }
.book-card-copy .card-purchase { margin-top: auto; }
.books-status { margin: 1.4rem 0 0; border-left: 5px solid var(--forest); background: rgba(255,255,255,.72); padding: 1rem 1.15rem; }
.coloring-section { padding-top: 4.8rem; padding-bottom: 4.8rem; }
.coloring-section > .shop-section-heading { margin-right: auto; margin-left: auto; }
.coloring-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
  overflow: hidden;
  border: 1px solid #c9bdad;
  background: #fff;
  box-shadow: 0 20px 48px rgba(49,62,52,.11);
}
.coloring-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; background: #e8ede4; padding: 1.2rem; }
.coloring-page-button {
  position: relative;
  overflow: hidden;
  border: 1px solid #c9c3b8;
  background: #fff;
  padding: 0;
  color: var(--forest-dark);
  cursor: zoom-in;
  font: inherit;
  text-align: left;
  box-shadow: 0 8px 20px rgba(53,63,55,.08);
  transition: transform .18s ease, box-shadow .18s ease;
}
.coloring-page-button:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(53,63,55,.14); }
.coloring-page-button img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.coloring-page-button span { display: block; border-top: 1px solid #e0d9ce; padding: .7rem .8rem; font-family: Georgia, "Times New Roman", serif; font-size: .92rem; }
.coloring-feature-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 3.4rem); }
.coloring-feature-copy h3,
.messy-product-copy h3 { margin: .25rem 0 .85rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.8rem, 3.2vw, 2.5rem); font-weight: 400; line-height: 1.12; }
.compact-purchase { margin-top: .5rem; }
.private-product-note { margin: 1rem 0 0; color: var(--muted); font-size: .84rem; }
.messy-play-band { border-top: 1px solid #e0d6c7; border-bottom: 1px solid #e0d6c7; }
.messy-play-section { padding-top: 4.8rem; padding-bottom: 4.8rem; }
.messy-play-heading { display: grid; grid-template-columns: .95fr 1.05fr; gap: 2rem; align-items: end; margin-bottom: 2rem; }
.messy-play-heading p { margin-bottom: 0; }
.messy-product-feature { display: grid; grid-template-columns: minmax(300px, .86fr) minmax(0, 1.14fr); overflow: hidden; border: 1px solid #c9bcaa; background: #fff; box-shadow: 0 20px 48px rgba(49,62,52,.12); }
.messy-product-cover { position: relative; display: flex; min-height: 440px; flex-direction: column; justify-content: flex-end; overflow: hidden; background: linear-gradient(150deg, #dce7d7 0%, #f1dfc8 58%, #cfac8f 100%); padding: 2rem; color: var(--forest-dark); }
.messy-product-cover::before { content: ""; position: absolute; width: 300px; height: 300px; top: -140px; right: -90px; border: 1px solid rgba(54,78,63,.22); border-radius: 50%; box-shadow: 0 0 0 40px rgba(255,255,255,.12), 0 0 0 82px rgba(76,103,83,.07); }
.messy-product-cover > span,
.messy-product-cover > h3,
.messy-product-cover > p { position: relative; z-index: 2; }
.messy-product-cover > span { margin-bottom: auto; font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.messy-product-cover > h3 { max-width: 420px; margin: 0 0 .45rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.4rem, 5vw, 4.2rem); font-weight: 400; line-height: .98; }
.messy-product-cover > p { margin: 0; font-size: .82rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.messy-cover-rings { position: absolute; z-index: 1; inset: 18% 8% auto; display: grid; grid-template-columns: repeat(2, 110px); gap: 18px; transform: rotate(-8deg); }
.messy-cover-rings i { display: block; width: 110px; height: 110px; border: 18px solid rgba(255,255,255,.55); border-radius: 50% 46% 54% 43%; }
.messy-cover-rings i:nth-child(2) { border-color: rgba(90,120,92,.36); border-radius: 43% 55% 45% 57%; }
.messy-cover-rings i:nth-child(3) { border-color: rgba(178,127,91,.32); border-radius: 55% 44% 51% 46%; }
.messy-cover-rings i:nth-child(4) { border-color: rgba(242,236,213,.72); }
.messy-product-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 3.4rem); }
.messy-activity-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1.4rem; }
.messy-activity-card { position: relative; display: flex; min-height: 315px; flex-direction: column; overflow: hidden; border: 1px solid #cec4b5; background: #fff; padding: 1.2rem; box-shadow: 0 9px 22px rgba(53,63,55,.06); }
.messy-activity-card::after { content: ""; position: absolute; width: 105px; height: 105px; right: -50px; bottom: -52px; border-radius: 50%; background: var(--sage-soft); }
.messy-card-number { position: absolute; top: 1rem; right: 1rem; color: #c4b7a4; font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; }
.messy-activity-card h3 { max-width: 84%; margin: .1rem 0 .55rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; }
.messy-activity-card > p:not(.resource-audience) { margin: 0 0 .75rem; color: var(--muted); font-size: .9rem; }
.messy-activity-card > small { display: block; margin-bottom: 1rem; color: #60665f; font-size: .875rem; line-height: 1.45; }
.messy-activity-card .guidance-preview-button { position: relative; z-index: 1; margin-top: auto; margin-bottom: 0; }
.messy-safety-baseline { margin-top: 1.4rem; border-left: 6px solid var(--forest); background: #fff; padding: 1.25rem 1.4rem; }
.messy-safety-baseline h3 { margin: 0 0 .45rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; }
.messy-safety-baseline p { margin: 0; }
.messy-safety-baseline .source-links { margin-top: .7rem; color: var(--muted); font-size: .8rem; }
.messy-safety-baseline a { color: var(--forest); font-weight: 700; }
.recipe-section,
.learning-section { padding-top: 4.8rem; padding-bottom: 4.8rem; }
.recipe-section > .shop-section-heading,
.learning-section > .shop-section-heading { margin-right: auto; margin-left: auto; }
.recipe-free-sample {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
  margin-bottom: 1.5rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px solid #9eae95;
  background: #eef3e9;
  box-shadow: 0 14px 34px rgba(49,62,52,.09);
}
.recipe-free-sample h3 {
  margin: .3rem 0 .8rem;
  color: var(--forest-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  font-weight: 400;
  line-height: 1.15;
}
.free-sample-action { text-align: center; }
.free-sample-action img {
  width: min(100%, 230px);
  aspect-ratio: 8.5 / 11;
  object-fit: cover;
  object-position: top;
  border: 1px solid #bdc7b7;
  background: #fff;
  box-shadow: 0 8px 20px rgba(49,62,52,.12);
}
.free-sample-action .product-price { margin: .8rem 0; }
.free-sample-action .product-price span { font-size: 1.65rem; }
.recipe-product-feature {
  display: grid;
  grid-template-columns: minmax(310px, .85fr) minmax(0, 1.15fr);
  overflow: hidden;
  border: 1px solid #c9bcaa;
  background: #fff;
  box-shadow: 0 20px 48px rgba(49,62,52,.12);
}

@media (max-width: 760px) {
  .recipe-free-sample { grid-template-columns: 1fr; }
}
.recipe-cover { position: relative; min-height: 590px; margin: 0; overflow: hidden; background: var(--forest-dark); }
.recipe-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(20,34,26,.04) 25%, rgba(20,34,26,.14) 55%, rgba(20,34,26,.88) 100%); }
.recipe-cover img { width: 100%; height: 100%; min-height: 590px; object-fit: cover; }
.recipe-cover figcaption { position: absolute; right: 2rem; bottom: 1.8rem; left: 2rem; z-index: 2; color: #fff; text-shadow: 0 2px 14px rgba(0,0,0,.45); }
.recipe-cover figcaption span { display: block; font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.recipe-cover figcaption strong { display: block; margin-top: .35rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.5rem, 5vw, 4.2rem); font-weight: 400; line-height: 1; }
.recipe-cover figcaption small { display: block; margin-top: .45rem; font-size: .95rem; }
.recipe-product-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 3.4rem); }
.recipe-product-copy h3,
.snack-guide-copy h3 { margin: .25rem 0 .85rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.8rem, 3.2vw, 2.5rem); font-weight: 400; line-height: 1.12; }
.recipe-preview-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr); gap: 1.4rem; align-items: start; margin-top: 2rem; }
.recipe-preview-layout > div > h3 { margin: .15rem 0 .55rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.8rem; font-weight: 400; }
.recipe-preview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1.2rem; }
.recipe-preview-card,
.unit-preview-card { position: relative; display: flex; flex-direction: column; border: 1px solid #cec4b5; background: #fff; padding: 1.2rem; box-shadow: 0 9px 22px rgba(53,63,55,.06); }
.recipe-preview-card { min-height: 260px; }
.recipe-card-number { position: absolute; top: 1rem; right: 1rem; color: #c4b7a4; font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; }
.recipe-preview-card h3,
.unit-preview-card h3 { max-width: 87%; margin: .1rem 0 .55rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; }
.recipe-preview-card > p:not(.resource-audience),
.unit-preview-card > p:not(.resource-audience) { margin: 0 0 .85rem; color: var(--muted); font-size: .9rem; }
.recipe-preview-card .guidance-preview-button { margin-top: auto; }
.recipe-coloring-sample { border: 1px solid #c9cfc3; background: #eef3e9; padding: 1rem; }
.recipe-coloring-sample .coloring-page-button { width: 100%; }
.recipe-coloring-sample .coloring-page-button img { aspect-ratio: 8.5 / 11; object-fit: cover; object-position: top; }
.recipe-coloring-sample > p { margin: .9rem .2rem .1rem; color: var(--muted); font-size: .9rem; }
.allergy-awareness-note,
.learning-scope-note { margin-top: 1.4rem; border-left: 6px solid var(--forest); background: #f5f7f1; padding: 1.3rem 1.45rem; }
.allergy-awareness-note h3 { margin: 0 0 .45rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; }
.allergy-awareness-note p,
.learning-scope-note p { margin: 0; }
.allergy-awareness-note .source-links,
.learning-scope-note .source-links { margin-top: .75rem; color: var(--muted); font-size: .8rem; }
.allergy-awareness-note a,
.learning-scope-note a { color: var(--forest); font-weight: 700; }
.learning-section { border-bottom: 1px solid #e0d6c7; }
.snack-guide-feature { display: grid; grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr); overflow: hidden; border: 1px solid #c9bcaa; background: #fff; box-shadow: 0 20px 48px rgba(49,62,52,.12); }
.snack-guide-art { position: relative; display: flex; min-height: 445px; flex-direction: column; justify-content: flex-end; overflow: hidden; background: linear-gradient(145deg, #dce7d7, #f2e7d5 58%, #d8b99a); padding: 2rem; color: var(--forest-dark); }
.snack-guide-art::before { content: ""; position: absolute; width: 340px; height: 340px; top: -150px; right: -90px; border: 1px solid rgba(54,78,63,.25); border-radius: 50%; box-shadow: 0 0 0 45px rgba(255,255,255,.18), 0 0 0 92px rgba(76,103,83,.08); }
.snack-guide-art > * { position: relative; z-index: 1; }
.snack-guide-art > span { margin-bottom: auto; font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.snack-guide-art > div { align-self: flex-end; margin: 0 1rem auto 0; border: 2px solid rgba(255,255,255,.75); border-radius: 50%; background: rgba(255,255,255,.35); padding: 1.25rem 1.55rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; line-height: 1.5; text-align: center; transform: rotate(3deg); }
.snack-guide-art > h3 { margin: 0 0 .45rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 400; line-height: 1.02; }
.snack-guide-art > p { margin: 0; font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.snack-guide-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 3.4rem); }
.learning-coverage-map { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1.4rem 0; }
.learning-coverage-map article { border-top: 5px solid var(--sage); background: var(--cream); padding: 1.2rem; }
.learning-coverage-map span { color: var(--forest); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.learning-coverage-map p { margin: .5rem 0 0; font-size: .9rem; }
.unit-preview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.unit-preview-card { min-height: 410px; }
.unit-preview-card ul { margin: .25rem 0 1rem; padding-left: 1.15rem; color: var(--muted); font-size: .86rem; }
.unit-preview-card .guidance-preview-button { margin-top: auto; }
.unit-preview-card .card-purchase { margin-top: .9rem; }
.curriculum-bundle-callout { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: center; margin-top: 1.4rem; border: 1px solid #b9c3b2; background: #eef3e9; padding: 1.4rem; }
.curriculum-bundle-callout h3 { margin: .1rem 0 .4rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.65rem; }
.curriculum-bundle-callout p { margin: 0; }
.curriculum-bundle-callout > div:last-child { min-width: 225px; }
.roadmap-band { border-top: 1px solid #e0d6c7; border-bottom: 1px solid #e0d6c7; }
.roadmap-section { padding-top: 4.8rem; padding-bottom: 4.8rem; }
.roadmap-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.roadmap-grid article { border: 1px solid #d5cbbb; border-top: 5px solid var(--sage); background: #fff; padding: 1.25rem; }
.roadmap-grid span { color: var(--sage); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.roadmap-grid h3 { margin: .45rem 0 .55rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.22rem; }
.roadmap-grid p { margin: 0; color: var(--muted); font-size: .9rem; }
.connected-learning-callout,
.faith-evidence-note { margin-top: 1.2rem; border: 1px solid #c8d0c1; background: #f7f8f4; padding: 1.25rem 1.4rem; }
.connected-learning-callout h3,
.faith-evidence-note h3 { margin: 0 0 .4rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; }
.connected-learning-callout p,
.faith-evidence-note p { margin: 0; }
.faith-evidence-note { border-color: #d7c2a7; background: #f6ecdc; }
.everyday-band { border-top: 1px solid #e0d6c7; border-bottom: 1px solid #e0d6c7; }
.everyday-section { padding-top: 4.7rem; padding-bottom: 4.7rem; }
.everyday-bundle-feature { display: grid; grid-template-columns: minmax(300px, .95fr) minmax(0, 1.05fr); overflow: hidden; border: 1px solid #c9bcaa; background: #fff; box-shadow: 0 20px 48px rgba(49, 62, 52, .12); }
.everyday-bundle-art { position: relative; display: flex; min-height: 480px; flex-direction: column; justify-content: flex-end; overflow: hidden; background: linear-gradient(145deg, #dce5d7 0%, #f5eee2 100%); padding: 2rem; color: var(--forest-dark); }
.everyday-bundle-art::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 0 0, rgba(76,105,81,.18), transparent 38%), radial-gradient(circle at 100% 100%, rgba(182,145,118,.2), transparent 40%); }
.everyday-bundle-art > p,
.everyday-bundle-art > h3,
.everyday-bundle-art > span { position: relative; z-index: 2; }
.everyday-bundle-art > p { margin: 1.7rem 0 .3rem; font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.everyday-bundle-art > h3 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 2.2rem; font-weight: 400; line-height: 1.05; }
.everyday-bundle-art > span { margin-top: .55rem; }
.everyday-mini-stack { position: relative; z-index: 1; display: flex; min-height: 245px; align-items: center; justify-content: center; padding: 1rem; }
.everyday-mini-stack img { position: absolute; width: 58%; border: 7px solid #fff; box-shadow: 0 14px 28px rgba(41,50,43,.19); }
.everyday-mini-stack img:nth-child(1) { transform: translate(-27%, 3%) rotate(-5deg); }
.everyday-mini-stack img:nth-child(2) { z-index: 2; transform: translate(0, -4%); }
.everyday-mini-stack img:nth-child(3) { transform: translate(28%, 4%) rotate(5deg); }
.everyday-bundle-copy { padding: clamp(2rem, 5vw, 3.3rem); }
.everyday-bundle-copy h3,
.calm-feature-copy h3,
.companion-callout h3 { margin: .2rem 0 .8rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.8rem, 3vw, 2.45rem); font-weight: 400; line-height: 1.15; }
.compact-includes { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem 1rem; margin: 1.5rem 0; padding: 0; list-style: none; }
.compact-includes li { position: relative; padding-left: 1.35rem; }
.compact-includes li::before { content: "•"; position: absolute; left: .2rem; color: var(--sage); font-weight: 900; }
.edition-purchase-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 1.5rem; }
.edition-purchase-grid > div { display: flex; flex-direction: column; align-items: stretch; border: 1px solid #d6ccbd; background: var(--cream); padding: 1rem; }
.edition-purchase-grid p { flex: 1; margin: 0 0 .8rem; color: var(--muted); }
.edition-purchase-grid strong { display: block; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.7rem; }
.resource-product-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 2.2rem; }
.resource-product-card { display: grid; grid-template-columns: minmax(190px, .85fr) minmax(0, 1.15fr); gap: 1.15rem; align-items: stretch; overflow: hidden; border: 1px solid #d5cbbb; background: #fff; padding: .8rem; box-shadow: 0 10px 25px rgba(53,63,55,.07); }
.resource-product-card > div:last-child { display: flex; min-width: 0; flex-direction: column; padding: .35rem .45rem .35rem 0; }
.nature-product-frame { position: relative; display: grid; place-items: center; overflow: hidden; background: linear-gradient(145deg, #e6ecdf, #f5eee5); }
.nature-product-frame::before,
.nature-product-frame::after { content: ""; position: absolute; width: 90px; height: 90px; border: 1px solid rgba(62,84,67,.18); border-radius: 50%; }
.nature-product-frame::before { top: -45px; left: -40px; }
.nature-product-frame::after { right: -38px; bottom: -44px; }
.nature-product-frame img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; }
.resource-product-card h3 { margin: .1rem 0 .5rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.24rem; line-height: 1.2; }
.resource-product-card p { margin: 0 0 .75rem; color: var(--muted); font-size: .92rem; }
.resource-product-card .card-includes { margin-top: auto; }
.resource-audience { color: var(--sage) !important; font-size: .71rem !important; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.free-sample-card { display: grid; grid-template-columns: minmax(170px, .6fr) minmax(0, 1.4fr) auto; gap: 1.5rem; align-items: center; margin-top: 2rem; border: 1px solid #b9c3b2; background: #eef3e9; padding: 1.25rem; }
.free-sample-art { position: relative; overflow: hidden; }
.free-sample-art img { width: 100%; aspect-ratio: 1.55 / 1; object-fit: cover; }
.free-sample-art span { position: absolute; top: .6rem; left: .6rem; border-radius: 999px; background: var(--forest-dark); padding: .3rem .6rem; color: #fff; font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.free-sample-card h3 { margin: 0 0 .35rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.5rem; }
.free-sample-card p { margin: 0; }
.calm-collection-section { padding-top: 4.8rem; padding-bottom: 4.8rem; }
.calm-collection-section > .shop-section-heading { margin-right: auto; margin-left: auto; }
.calm-collection-feature { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr); overflow: hidden; border: 1px solid #cbbfae; background: #fff; box-shadow: 0 18px 45px rgba(53,63,55,.11); }
.calm-collage-cover { position: relative; display: flex; min-height: 530px; flex-direction: column; overflow: hidden; background: linear-gradient(160deg, #f0e5dc, #e7ecdf); padding: 2rem; }
.calm-collage-cover > p { margin: 0; color: var(--forest); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.calm-collage-cover > h3 { max-width: 420px; margin: .9rem 0 .5rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 2.25rem; font-weight: 400; line-height: 1.05; }
.calm-collage-cover > span { color: #5b625a; }
.calm-cover-images { position: relative; min-height: 290px; margin-top: auto; }
.calm-cover-images img { position: absolute; bottom: 0; width: 47%; border: 6px solid #fff; box-shadow: 0 14px 28px rgba(55,52,47,.17); }
.calm-cover-images img:nth-child(1) { left: 0; transform: rotate(-4deg); }
.calm-cover-images img:nth-child(2) { left: 27%; z-index: 2; }
.calm-cover-images img:nth-child(3) { right: 0; transform: rotate(4deg); }
.calm-feature-copy { padding: clamp(2rem, 5vw, 3.2rem); }
.pending-purchase { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; margin-top: 1.5rem; border-top: 1px solid #ddd4c8; padding-top: 1.25rem; }
.pending-purchase p { margin: 0; }
.pending-purchase strong,
.pending-purchase span { display: block; }
.pending-purchase span { color: var(--muted); font-size: .86rem; }
.resource-drawer { margin-top: 1.6rem; border: 1px solid #c9cfc3; background: #f7f8f4; }
.resource-drawer summary { padding: 1.2rem 1.35rem; color: var(--forest-dark); cursor: pointer; font-weight: 800; }
.drawer-intro { margin: 0; border-top: 1px solid #d9ded4; padding: 1.1rem 1.35rem 0; color: var(--muted); }
.support-resource-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; padding: 1.2rem; }
.support-resource-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #d5ccbf; background: #fff; padding: 0; color: var(--ink); cursor: zoom-in; font: inherit; text-align: left; transition: transform .18s ease, box-shadow .18s ease; }
.support-resource-card:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(52,63,54,.12); }
.support-resource-card img { width: 100%; aspect-ratio: 8.5 / 11; object-fit: cover; object-position: top; }
.support-resource-card > span { display: flex; flex: 1; flex-direction: column; padding: .85rem; }
.support-resource-card small { color: var(--sage); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.support-resource-card strong { margin-top: .25rem; font-family: Georgia, "Times New Roman", serif; font-size: .98rem; line-height: 1.25; }
.support-resource-card em { margin-top: auto; padding-top: .65rem; color: var(--forest); font-size: .75rem; font-style: normal; font-weight: 700; }
.support-resource-summary { cursor: default; min-height: 13rem; background: #f4f2e9; }
.support-resource-summary > span { padding: 1.35rem; }
.support-resource-summary strong { font-size: 1.3rem; }
.support-resource-summary small, .support-resource-summary em { font-size: .875rem; }
.support-resource-summary p { font-size: 1rem; line-height: 1.5; margin: .8rem 0; }
.companion-callout { display: grid; grid-template-columns: minmax(220px, .58fr) minmax(0, 1.42fr); gap: clamp(1.8rem, 4vw, 3.2rem); align-items: center; margin-top: 2rem; border: 1px solid #cbbfae; background: var(--cream); padding: clamp(1.4rem, 4vw, 2.3rem); }
.companion-callout figure { margin: 0; background: #fff; padding: .55rem; box-shadow: 0 14px 28px rgba(54,58,53,.13); }
.companion-callout figure img { width: 100%; }
.shop-purpose-grid article { border-color: var(--sage); }
.license-grid article { border-color: #cdc3b5; background: #fff; }
.license-grid a { color: var(--forest); }
.shop-legal details { border-color: #cfc5b6; }
.resource-preview-dialog { width: min(94vw, 760px); max-height: 94vh; overflow: auto; border: 0; border-top: 8px solid var(--sage); background: #fff; padding: 1.2rem; color: var(--ink); box-shadow: 0 24px 70px rgba(0,0,0,.38); }
.resource-preview-dialog::backdrop { background: rgba(24,31,26,.8); }
.resource-preview-heading { padding: .5rem 2.2rem .8rem .3rem; }
.resource-preview-heading h2 { margin: .1rem 0 .25rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 400; }
.resource-preview-heading p { margin: 0; color: var(--muted); }
.resource-preview-heading .eyebrow { color: var(--sage); font-size: .72rem; }
.resource-preview-dialog > img { width: 100%; max-height: 76vh; object-fit: contain; background: var(--cream); }
.resource-preview-close { position: absolute; top: .65rem; right: .8rem; border: 0; background: transparent; padding: .25rem; cursor: pointer; font-size: 2rem; line-height: 1; }
.guidance-preview-dialog {
  width: min(94vw, 880px);
  max-height: 94vh;
  overflow: auto;
  border: 0;
  border-top: 8px solid var(--sage);
  background: #fff;
  padding: clamp(1.1rem, 3vw, 2rem);
  color: var(--ink);
  box-shadow: 0 24px 70px rgba(0,0,0,.38);
}
.guidance-preview-dialog::backdrop { background: rgba(24,31,26,.8); }
.guidance-preview-heading { padding: .2rem 2.2rem 1.2rem 0; }
.guidance-preview-heading h2 { margin: .1rem 0 .3rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.6rem, 3vw, 2.25rem); font-weight: 400; }
.guidance-preview-heading p { margin: 0; color: var(--muted); }
.guidance-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.guidance-preview-grid section { border: 1px solid #d6cdbf; background: var(--cream); padding: 1.15rem; }
.guidance-preview-grid span { color: var(--sage); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.guidance-preview-grid h3 { margin: .3rem 0 .55rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.18rem; }
.guidance-preview-grid p { margin: 0; line-height: 1.55; }
.guidance-source-note { margin: 1rem 0 0; color: var(--forest); font-size: .9rem; font-weight: 700; }
.guidance-review-note { margin: 1rem 0 0; border-left: 5px solid var(--taupe); background: #f4ead7; padding: .85rem 1rem; color: var(--bark); font-size: .9rem; }
.guidance-preview-close { position: absolute; top: .65rem; right: .8rem; border: 0; background: transparent; padding: .25rem; cursor: pointer; font-size: 2rem; line-height: 1; }
.messy-preview-dialog {
  width: min(95vw, 980px);
  max-height: 94vh;
  overflow: auto;
  border: 0;
  border-top: 8px solid var(--sage);
  background: #fff;
  padding: clamp(1.1rem, 3vw, 2rem);
  color: var(--ink);
  box-shadow: 0 24px 70px rgba(0,0,0,.38);
}
.messy-preview-dialog::backdrop { background: rgba(24,31,26,.8); }
.messy-preview-heading { padding: .2rem 2.2rem 1.2rem 0; }
.messy-preview-heading h2 { margin: .1rem 0 .3rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.6rem, 3vw, 2.25rem); font-weight: 400; }
.messy-preview-heading p { margin: 0; color: var(--muted); }
.messy-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.messy-preview-grid section { border: 1px solid #d6cdbf; background: var(--cream); padding: 1.15rem; }
.messy-preview-grid span { color: var(--sage); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.messy-preview-grid h3 { margin: .3rem 0 .55rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.18rem; }
.messy-preview-grid p { margin: 0; line-height: 1.55; }
.messy-preview-close { position: absolute; top: .65rem; right: .8rem; border: 0; background: transparent; padding: .25rem; cursor: pointer; font-size: 2rem; line-height: 1; }
.content-preview-dialog {
  width: min(95vw, 1020px);
  max-height: 94vh;
  overflow: auto;
  border: 0;
  border-top: 8px solid var(--sage);
  background: #fff;
  padding: clamp(1.1rem, 3vw, 2rem);
  color: var(--ink);
  box-shadow: 0 24px 70px rgba(0,0,0,.38);
}
.content-preview-dialog::backdrop { background: rgba(24,31,26,.8); }
.content-preview-heading { padding: .2rem 2.2rem 1.2rem 0; }
.content-preview-heading h2 { margin: .1rem 0 .3rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.6rem, 3vw, 2.25rem); font-weight: 400; }
.content-preview-heading p { margin: 0; color: var(--muted); }
.content-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.content-preview-grid section { border: 1px solid #d6cdbf; background: var(--cream); padding: 1.15rem; }
.content-preview-grid span { color: var(--sage); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.content-preview-grid h3 { margin: .3rem 0 .55rem; color: var(--forest-dark); font-family: Georgia, "Times New Roman", serif; font-size: 1.18rem; }
.content-preview-grid p { margin: 0; line-height: 1.55; }
.dialog-x { position: absolute; top: .65rem; right: .8rem; border: 0; background: transparent; padding: .25rem; cursor: pointer; font-size: 2rem; line-height: 1; }
.storefront-poster-button:focus-visible,
.support-resource-card:focus-visible,
.shop-jump-nav a:focus-visible,
.resource-preview-close:focus-visible,
.guidance-preview-button:focus-visible,
.guidance-preview-close:focus-visible,
.coloring-page-button:focus-visible,
.messy-preview-close:focus-visible,
.recipe-preview-close:focus-visible,
.unit-preview-close:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }

@media (max-width: 1100px) {
  .bundle-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .poster-pack-explainer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resource-product-grid { grid-template-columns: 1fr; }
  .support-resource-grid { grid-template-columns: repeat(3, 1fr); }
  .messy-activity-grid,
  .recipe-preview-grid,
  .unit-preview-grid,
  .roadmap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .collection-feature,
  .everyday-bundle-feature,
  .calm-collection-feature { grid-template-columns: 1fr; }
  .coloring-feature,
  .messy-product-feature,
  .recipe-product-feature,
  .snack-guide-feature { grid-template-columns: 1fr; }
  .recipe-preview-layout { grid-template-columns: 1fr; }
  .recipe-coloring-sample { width: min(100%, 420px); margin: 0 auto; }
  .learning-coverage-map { grid-template-columns: 1fr; }
  .curriculum-bundle-callout { grid-template-columns: 1fr; }
  .designed-collection-cover { width: min(100%, 570px); min-height: 650px; margin: 0 auto; }
  .everyday-bundle-art,
  .calm-collage-cover { min-height: 500px; }
  .resource-product-card { grid-template-columns: minmax(170px, .72fr) minmax(0, 1.28fr); }
  .support-resource-grid { grid-template-columns: repeat(2, 1fr); }
  .books-heading { grid-template-columns: 1fr; gap: .75rem; }
  .book-collection-callout { grid-template-columns: 1fr; }
  .book-collection-purchase { border-top: 1px solid #c8c0b3; border-left: 0; padding-top: 1.2rem; padding-left: 0; }
  .messy-play-heading { grid-template-columns: 1fr; gap: .75rem; }
  .book-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .free-sample-card { grid-template-columns: minmax(160px, .65fr) minmax(0, 1.35fr); }
  .free-sample-card > .button { grid-column: 1 / -1; }
  .companion-callout { grid-template-columns: 1fr; }
  .companion-callout figure { width: min(100%, 450px); margin: 0 auto; }
}

@media (max-width: 560px) {
  .shop-hero .hero-inner { min-height: 330px; }
  .shop-jump-nav { display: grid; grid-template-columns: repeat(2, 1fr); }
  .shop-jump-nav a { text-align: center; }
  .designed-collection-cover { min-height: 560px; }
  .cover-copy { padding: 1.7rem 1.1rem 1.1rem; }
  .cover-image-strip { padding: 0 .8rem; }
  .bundle-grid,
  .support-resource-grid,
  .poster-pack-explainer,
  .book-product-grid,
  .messy-activity-grid,
  .guidance-preview-grid,
  .messy-preview-grid,
  .recipe-preview-grid,
  .unit-preview-grid,
  .roadmap-grid,
  .content-preview-grid { grid-template-columns: 1fr; }
  .bundle-art { min-height: 310px; }
  .resource-product-card { grid-template-columns: 1fr; }
  .nature-product-frame { min-height: 230px; }
  .compact-includes,
  .edition-purchase-grid { grid-template-columns: 1fr; }
  .free-sample-card { grid-template-columns: 1fr; }
  .everyday-bundle-art,
  .calm-collage-cover { min-height: 450px; padding: 1.35rem; }
  .everyday-mini-stack { min-height: 220px; }
  .calm-cover-images { min-height: 240px; }
  .pending-purchase { grid-template-columns: 1fr; }
  .resource-preview-dialog,
  .guidance-preview-dialog,
  .messy-preview-dialog,
  .content-preview-dialog { padding: .85rem; }
}

.shared-access-section{scroll-margin-top:6rem}.shared-membership-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.shared-membership-grid article{padding:1.4rem;border:1px solid #a7ae9c;border-radius:16px;background:#f7f6ed}.shared-membership-grid ul{padding-left:1.2rem;line-height:1.7}.shared-price{font-weight:700;font-size:1.5rem;color:#294e3e}@media(max-width:850px){.shared-membership-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){.shared-membership-grid{grid-template-columns:1fr}}

/* Educational resource collection */
.education-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:24px;margin:20px 0 42px}.product-card > img.education-cover{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;background:#f7f1e6}.education-category{font-size:1.6rem;margin-top:36px}.education-grid h4{font-size:1.25rem;margin:0 0 12px}.education-grid .product-card{display:flex;flex-direction:column}.education-grid .product-card-body{display:flex;flex-direction:column;flex:1}.education-grid .card-purchase{margin-top:auto;gap:12px;flex-wrap:wrap}

.unit-product-art{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:8px;margin-bottom:18px}.bundle-product-art{width:230px;max-width:100%;height:auto;border-radius:8px}@media(max-width:700px){.bundle-product-art{width:100%;max-width:360px}}

.curriculum-bundle-callout{grid-template-columns:230px minmax(0,1fr) auto}@media(max-width:900px){.curriculum-bundle-callout{grid-template-columns:1fr}.curriculum-bundle-callout > div:last-child{min-width:0}}
