:root {
  --ivory: #fbf7f0;
  --cream: #f5ecdf;
  --paper: #fffdf9;
  --blush: #dca9a4;
  --blush-deep: #b87572;
  --blush-soft: #f0d9d5;
  --banner-blush: #edd7ce;
  --sage: #8f9b82;
  --sage-deep: #65715d;
  --sage-soft: #dfe4d7;
  --taupe: #b5a395;
  --taupe-soft: #e7ddd3;
  --cocoa: #5b4136;
  --cocoa-soft: #80685d;
  --ink: #3e302a;
  --white: #ffffff;
  --shadow: 0 22px 60px rgba(83, 60, 48, 0.12);
  --shadow-small: 0 10px 28px rgba(83, 60, 48, 0.1);
  --serif: Georgia, "Times New Roman", serif;
  --sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--ivory); font-family: var(--sans); line-height: 1.55; }
button, input, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible, a:focus-visible { outline: 3px solid rgba(184,117,114,.35); outline-offset: 3px; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 1000; background: var(--cocoa); color: white; padding: .7rem 1rem; border-radius: 6px; }
.skip-link:focus { top: 1rem; }

.site-header {
  position: sticky; top: 0; z-index: 50; height: 82px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 clamp(1.1rem, 4vw, 4.5rem); border-bottom: 1px solid rgba(91,65,54,.11);
  background: rgba(251,247,240,.92); backdrop-filter: blur(16px);
}
.brand { color: var(--cocoa); display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; }
.brand-mark { width: 43px; height: 43px; display: grid; place-items: center; }
.brand-mark svg { width: 100%; height: 100%; overflow: visible; }
.brand-mark svg > path:first-child { fill: var(--cream); stroke: var(--cocoa); stroke-width: 1.7; stroke-linejoin: round; }
.brand-mark svg .leaf { fill: var(--sage); stroke: none; }
.brand-mark svg .heart { fill: var(--blush-deep); stroke: none; }
.brand > span:last-child { display: flex; flex-direction: column; }
.brand strong { font: 600 1.25rem/1 var(--serif); letter-spacing: -.02em; }
.brand strong span { color: var(--blush-deep); }
.brand small { margin-top: .25rem; color: var(--sage-deep); font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; }
.desktop-nav { display: flex; align-items: center; gap: 0; }
.nav-dropdown { position: relative; }
.nav-dropdown > .nav-link span { margin-left: .22rem; font-size: .68rem; }
.nav-submenu { position: absolute; z-index: 80; top: calc(100% - .25rem); left: 50%; min-width: 175px; padding: .45rem; border: 1px solid var(--taupe-soft); border-radius: 7px; background: var(--paper); box-shadow: var(--shadow-small); opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%,-5px); transition: .18s ease; }
.nav-dropdown:hover .nav-submenu, .nav-dropdown:focus-within .nav-submenu { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%,0); }
.nav-submenu a { display: block; padding: .62rem .7rem; border-radius: 4px; color: var(--cocoa-soft); text-decoration: none; font-size: .78rem; white-space: nowrap; }
.nav-submenu a:hover, .nav-submenu a:focus-visible, .nav-submenu a.active, .nav-submenu a[aria-current="page"] { color: var(--cocoa); background: var(--cream); }
.nav-link { position: relative; border: 0; background: transparent; padding: .75rem .55rem; display: inline-flex; align-items: center; color: var(--cocoa-soft); text-decoration: none; cursor: pointer; font-size: .86rem; white-space: nowrap; }
.nav-link::after { content: ""; position: absolute; height: 1.5px; left: 50%; right: 50%; bottom: .4rem; background: var(--blush-deep); transition: .25s ease; }
.nav-link:hover, .nav-link.active { color: var(--cocoa); }
.nav-link.active::after, .nav-link:hover::after { left: .8rem; right: .8rem; }
.header-actions { display: flex; align-items: center; gap: .35rem; }
.icon-button, .menu-button { position: relative; width: 42px; height: 42px; display: grid; place-items: center; border: 0; background: transparent; border-radius: 50%; cursor: pointer; }
.icon-button:hover { background: var(--cream); }
.icon-button svg { width: 20px; height: 20px; fill: none; stroke: var(--cocoa); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.badge { position: absolute; right: 0; top: 0; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: var(--blush-deep); color: white; font-size: .65rem; line-height: 17px; }
.menu-button { display: none; }
.menu-button span { display: block; width: 19px; height: 1.5px; background: var(--cocoa); transition: .2s; }
.menu-button span + span { margin-top: -13px; transform: translateY(7px); }
.mobile-nav { position: absolute; left: 0; right: 0; top: 81px; padding: 1rem 1.2rem 1.5rem; background: var(--ivory); border-bottom: 1px solid var(--taupe-soft); box-shadow: var(--shadow-small); }
.mobile-nav .nav-link { width: 100%; display: block; text-align: left; padding: .85rem; }
.mobile-nav .nav-sublink { padding-top: .45rem; padding-bottom: .65rem; padding-left: 1.65rem; color: var(--sage-deep); font-size: .78rem; }

.brand-banner { position: relative; overflow: hidden; line-height: 0; background: #ead9d1; border-bottom: 1px solid rgba(91,65,54,.1); }
.brand-banner::after { content: ""; position: absolute; inset: auto 0 0; height: 12%; pointer-events: none; background: linear-gradient(transparent,rgba(91,65,54,.045)); }
.brand-banner img { display: block; width: 100%; height: clamp(300px,40vw,650px); object-fit: cover; object-position: center center; }

.hero { min-height: 0; padding: 1rem clamp(1rem,3vw,3rem) 1.2rem; display: grid; grid-template-columns: minmax(0,2.05fr) minmax(365px,.95fr); gap: .9rem; align-items: stretch; overflow: hidden; background: radial-gradient(circle at 85% 15%,rgba(220,169,164,.17),transparent 31%),linear-gradient(135deg,#fdf9f3 0%,#f6eee4 100%); }
.hero-feature { min-width: 0; min-height: 0; align-self: stretch; display: grid; grid-template-rows: auto minmax(112px,1fr); overflow: hidden; border: 1px solid var(--taupe-soft); border-radius: 10px; background: var(--paper); box-shadow: var(--shadow-small); }
.hero-feature > img { display: block; width: 100%; height: auto; min-height: 0; object-fit: contain; object-position: center center; background: #ead9d1; }
.hero-feature-footer { min-height: 112px; padding: 1.5rem 1.4rem; display: flex; justify-content: flex-start; align-items: center; gap: 1.3rem; border-top: 1px solid var(--taupe-soft); background: linear-gradient(135deg,#f7ebe3,#fbf3ea); }
.hero-feature-footer .eyebrow { margin-bottom: .25rem; }
.hero-feature-title { max-width: 510px; margin: 0; color: var(--cocoa); font: italic 1rem/1.45 var(--serif); letter-spacing: 0; }
.hero-feature-footer > div { max-width: 630px; }
.hero-feature-welcome { max-width: 610px; margin: .9rem 0 0; color: var(--cocoa-soft); font-size: .92rem; line-height: 1.65; }
.hero-feature-note { max-width: 590px; margin: .65rem 0 0; color: var(--sage-deep); font: italic .86rem/1.55 var(--serif); }
.home-page { background: radial-gradient(circle at 85% 12%,rgba(220,169,164,.14),transparent 29%),linear-gradient(135deg,#fdf9f3 0%,#f6eee4 100%); }
.home-layout { width: 100%; padding: 1rem clamp(1rem,3vw,3rem) 1.35rem; display: grid; grid-template-columns: minmax(0,2.05fr) minmax(350px,.95fr); gap: .9rem; align-items: start; }
.home-main, .home-sidebar { min-width: 0; }
.home-main { display: grid; gap: .9rem; }
.home-hero { min-height: 0; padding: 0; display: block; overflow: visible; background: transparent; }
.home-hero .hero-feature { min-height: 540px; }
.home-sidebar { display: grid; gap: 1.05rem; }
.home-sidebar .weekly-panel { min-height: 540px; }
.home-sidebar > section { border: 1px solid rgba(91,65,54,.24); box-shadow: 0 9px 24px rgba(83,60,48,.09); }
.hero-copy { max-width: 650px; position: relative; z-index: 2; }
.eyebrow { margin: 0 0 .8rem; color: var(--sage-deep); text-transform: uppercase; letter-spacing: .19em; font-size: .69rem; font-weight: 700; }
.eyebrow span { color: var(--blush-deep); margin-right: .35rem; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; color: var(--cocoa); letter-spacing: -.035em; }
h1 { margin: 0; font-size: clamp(2.8rem, 5.3vw, 5.4rem); line-height: .98; }
h1 em, h2 em, h3 em { color: var(--blush-deep); font-weight: 400; }
.hero-intro { max-width: 560px; margin: 1.7rem 0 2rem; color: var(--cocoa-soft); font-size: 1.05rem; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; }
.button { border: 0; min-height: 49px; display: inline-flex; align-items: center; justify-content: center; gap: .75rem; padding: .8rem 1.25rem; border-radius: 4px; cursor: pointer; font-weight: 650; font-size: .86rem; transition: transform .18s, box-shadow .18s, background .18s; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: white; background: var(--cocoa); box-shadow: 0 10px 24px rgba(91,65,54,.18); }
.button-primary:hover { background: #483229; box-shadow: 0 13px 30px rgba(91,65,54,.24); }
.button-secondary { color: var(--cocoa); background: transparent; border: 1px solid var(--taupe); }
.button-secondary:hover { background: var(--paper); box-shadow: var(--shadow-small); }
.text-button { border: 0; background: transparent; color: var(--cocoa); padding: .7rem .1rem; font-size: .86rem; font-weight: 650; cursor: pointer; border-bottom: 1px solid var(--blush); }
.text-button span { color: var(--blush-deep); margin-left: .3rem; }
.gentle-note { display: flex; align-items: center; gap: .75rem; margin-top: 3.1rem; color: var(--cocoa-soft); }
.gentle-note p { margin: 0; font: italic .81rem/1.55 var(--serif); }
.gentle-note p strong { font-weight: 600; color: var(--cocoa); }
.note-flower { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 50%; background: var(--sage-soft); color: var(--sage-deep); font-size: 1.3rem; }

.hero-scene { position: relative; height: 495px; max-width: 580px; width: 100%; justify-self: end; border: 12px solid rgba(255,255,255,.65); border-radius: 190px 190px 12px 12px; background: #e7d9ca; box-shadow: var(--shadow); overflow: hidden; }
.hero-scene::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(rgba(91,65,54,.05) .6px, transparent .6px); background-size: 5px 5px; mix-blend-mode: multiply; }
.scene-sun { position: absolute; width: 190px; height: 190px; right: 10px; top: 5px; background: rgba(255,245,202,.5); filter: blur(18px); border-radius: 50%; }
.scene-window { position: absolute; left: 13%; right: 13%; top: 10%; height: 210px; border: 12px solid #f7f0e5; box-shadow: 0 8px 20px rgba(91,65,54,.12); background: #cbd5c5; }
.window-view { position: absolute; inset: 0; overflow: hidden; background: linear-gradient(#cfdacc 0 65%, #a5b296 65%); }
.window-view::before, .window-view::after { content: ""; position: absolute; z-index: 2; background: rgba(255,255,255,.72); }
.window-view::before { left: 50%; top: 0; bottom: 0; width: 5px; transform: translateX(-50%); }
.window-view::after { top: 51%; left: 0; right: 0; height: 5px; }
.window-view span { position: absolute; bottom: 12px; width: 60px; height: 115px; border-radius: 70% 70% 10% 10%; background: #7b8f6f; filter: blur(.2px); }
.window-view span:nth-child(1) { left: 7%; transform: rotate(-11deg); }
.window-view span:nth-child(2) { left: 40%; height: 90px; background: #94a688; }
.window-view span:nth-child(3) { right: 5%; transform: rotate(10deg); height: 125px; }
.curtain { position: absolute; z-index: 4; top: -18px; bottom: -16px; width: 29%; background: repeating-linear-gradient(90deg,#f6e9e2 0 11px,#ebd2cd 11px 20px,#f8ece5 20px 31px); box-shadow: 0 5px 13px rgba(91,65,54,.08); }
.curtain-left { left: -26px; border-radius: 0 0 70% 12%; transform: rotate(3deg); }
.curtain-right { right: -26px; border-radius: 0 0 12% 70%; transform: rotate(-3deg); }
.scene-shelf { position: absolute; left: 6%; right: 6%; top: 61%; height: 13px; background: #8f6d57; border-radius: 4px; box-shadow: 0 7px 8px rgba(91,65,54,.15); }
.jar { position: absolute; bottom: 13px; width: 36px; border: 2px solid rgba(91,65,54,.38); border-radius: 5px 5px 8px 8px; background: rgba(253,247,235,.75); }
.jar::before { content: ""; position: absolute; left: -3px; right: -3px; top: -5px; height: 6px; border-radius: 3px; background: var(--cocoa-soft); }
.jar::after { content: ""; position: absolute; left: 5px; right: 5px; top: 15px; height: 13px; background: rgba(220,169,164,.45); }
.jar-one { left: 10%; height: 72px; }
.jar-two { left: 21%; height: 58px; width: 42px; }
.jar-three { left: 34%; height: 82px; }
.vase { position: absolute; right: 16%; bottom: 12px; width: 58px; height: 67px; border-radius: 18px 18px 26px 26px; background: var(--sage); color: var(--blush-deep); }
.vase i { position: absolute; width: 2px; height: 72px; background: var(--sage-deep); bottom: 43px; left: 31px; transform: rotate(-8deg); }
.vase b { position: absolute; font-size: 3.2rem; bottom: 73px; left: 10px; font-weight: 400; color: #cf8f8a; }
.scene-counter { position: absolute; left: 0; right: 0; bottom: 0; height: 132px; background: #b7977e; border-top: 10px solid #f3e7da; }
.bread { position: absolute; left: 10%; top: 30px; width: 115px; height: 54px; border-radius: 55% 55% 15px 15px; background: #c7905e; border: 4px solid #a8734e; box-shadow: inset 10px 10px 0 rgba(255,255,255,.12); }
.bread::after { content: ""; position: absolute; inset: 14px 22px auto; height: 3px; border-radius: 3px; background: rgba(255,255,255,.35); transform: rotate(-8deg); box-shadow: 18px 11px 0 rgba(255,255,255,.27); }
.mug { position: absolute; left: 43%; top: 24px; width: 55px; height: 54px; border-radius: 5px 5px 18px 18px; display: grid; place-items: center; background: #f8efea; color: var(--blush-deep); font-family: var(--serif); }
.mug::after { content: ""; position: absolute; right: -17px; top: 10px; width: 22px; height: 29px; border: 5px solid #f8efea; border-left: 0; border-radius: 0 16px 16px 0; }
.book { position: absolute; right: 8%; top: 20px; padding: 14px 22px; transform: rotate(-3deg); background: #f5ebdf; border: 1px solid #cbb9aa; box-shadow: 4px 5px 0 var(--blush); font: italic .72rem/1.15 var(--serif); text-align: center; }
.book b { font-size: .95rem; color: var(--cocoa); }
.scene-caption { position: absolute; right: -1px; top: 22px; z-index: 5; padding: .75rem 1.2rem .75rem 1.4rem; background: rgba(255,253,249,.93); border-left: 3px solid var(--blush); box-shadow: var(--shadow-small); }
.scene-caption span, .scene-caption strong { display: block; }
.scene-caption span { color: var(--sage-deep); text-transform: uppercase; letter-spacing: .15em; font-size: .55rem; }
.scene-caption strong { margin-top: .1rem; font: italic 1rem var(--serif); color: var(--cocoa); }

.weekly-panel { width: 100%; max-width: none; min-height: 540px; justify-self: stretch; padding: 1.2rem; display: flex; flex-direction: column; border: 1px solid var(--taupe-soft); border-radius: 11px; background: rgba(255,253,249,.93); box-shadow: var(--shadow-small); }
.weekly-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; padding: .2rem .2rem .9rem; border-bottom: 1px solid var(--taupe-soft); }
.weekly-heading .eyebrow { margin-bottom: .25rem; }
.weekly-heading h2 { margin: 0; font-size: clamp(1.45rem,2.2vw,2rem); line-height: 1.05; }
.weekly-heading h2 span { color: var(--blush-deep); }
.weekly-all { flex: 0 0 auto; border: 0; background: transparent; color: var(--blush-deep); cursor: pointer; font-size: .66rem; font-weight: 700; text-decoration: none; }
.weekly-video { width: 100%; flex: 1; display: grid; grid-template-columns: 130px 1fr; gap: .85rem; align-items: center; padding: .8rem .2rem; border: 0; border-bottom: 1px solid var(--taupe-soft); background: transparent; text-align: left; cursor: pointer; }
.weekly-video:last-child { border-bottom: 0; }
.weekly-video:hover strong { color: var(--blush-deep); }
.weekly-thumb { position: relative; height: 76px; display: block; overflow: hidden; border-radius: 5px; background: var(--cream); box-shadow: inset 0 0 0 1px rgba(91,65,54,.08); }
.weekly-thumb-image { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.weekly-thumb::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg,rgba(62,48,42,.08),transparent); }
.weekly-thumb i { position: absolute; z-index: 4; left: 50%; top: 50%; width: 35px; height: 35px; display: grid; place-items: center; transform: translate(-50%,-50%); border-radius: 50%; background: rgba(255,253,249,.9); color: var(--cocoa); font-style: normal; font-size: .65rem; box-shadow: 0 5px 14px rgba(91,65,54,.18); }
.weekly-video > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.weekly-video small { color: var(--sage-deep); text-transform: uppercase; letter-spacing: .11em; font-size: .52rem; font-weight: 800; }
.weekly-video strong { margin: .18rem 0; color: var(--cocoa); font: 600 1rem/1.15 var(--serif); transition: color .18s; }
.weekly-video em { color: var(--cocoa-soft); font: italic .67rem/1.35 var(--serif); }
.weekly-encouragement { margin-top: .75rem; padding: .9rem 1rem; display: grid; grid-template-columns: 35px 1fr; gap: .75rem; align-items: center; border: 1px solid rgba(184,117,114,.22); border-radius: 8px; background: linear-gradient(135deg,var(--blush-soft),#fbf4eb); }
.weekly-encouragement > span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,253,249,.78); color: var(--blush-deep); font: 1.35rem var(--serif); }
.weekly-encouragement small { color: var(--sage-deep); text-transform: uppercase; letter-spacing: .12em; font-size: .52rem; font-weight: 800; }
.weekly-encouragement blockquote { margin: .2rem 0 0; color: var(--cocoa); font: italic .82rem/1.4 var(--serif); }
.weekly-encouragement cite { display: block; margin-top: .2rem; color: var(--blush-deep); font-size: .58rem; font-style: normal; }

.library { padding: clamp(4.5rem, 8vw, 8rem) clamp(1.2rem, 7vw, 8rem); background: var(--paper); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; max-width: 1380px; margin: 0 auto 2.1rem; }
.section-heading h2 { margin: 0; font-size: clamp(2rem, 4vw, 3.55rem); line-height: 1.05; }
.section-heading > div > p:last-child, .section-heading.centered > p:last-child { margin: .55rem 0 0; color: var(--cocoa-soft); }
.search-box { min-width: min(100%, 355px); height: 49px; padding: 0 .75rem 0 1rem; display: flex; align-items: center; gap: .7rem; border: 1px solid var(--taupe-soft); border-radius: 6px; background: var(--ivory); }
.search-box:focus-within { border-color: var(--blush); box-shadow: 0 0 0 3px rgba(220,169,164,.15); }
.search-box svg { width: 18px; fill: none; stroke: var(--cocoa-soft); stroke-width: 1.6; }
.search-box input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--cocoa); }
.search-box input::placeholder { color: #9a8980; }

.not-found-page { min-height: 100vh; display: grid; place-items: center; padding: 2rem; background: radial-gradient(circle at top, #f8e9e5 0, #f8f1e8 44%, #efe7db 100%); }
.not-found-card { width: min(38rem, 100%); padding: clamp(2rem, 6vw, 4.5rem); text-align: center; background: rgba(255,253,249,.92); border: 1px solid rgba(107,75,62,.18); box-shadow: 0 24px 70px rgba(91,65,54,.12); }
.not-found-card > span { display: block; margin-bottom: .55rem; color: var(--blush-deep); font-size: 2rem; }
.not-found-card h1 { margin: .35rem 0 .8rem; font: clamp(2.3rem, 7vw, 4.5rem)/.98 var(--serif); color: var(--cocoa); }
.not-found-card > p:not(.eyebrow) { max-width: 29rem; margin: 0 auto 1.5rem; color: var(--taupe-dark); font-size: 1.05rem; line-height: 1.7; }
.search-box kbd { border: 1px solid var(--taupe-soft); background: white; padding: .13rem .35rem; border-radius: 4px; color: var(--taupe); font-size: .68rem; }
.filters { max-width: 1380px; margin: 0 auto; padding: .65rem; border: 1px solid var(--taupe-soft); background: var(--ivory); display: flex; justify-content: space-between; gap: .8rem; border-radius: 8px; }
.filter-scroll { display: flex; gap: .25rem; overflow-x: auto; scrollbar-width: none; }
.filter-scroll::-webkit-scrollbar { display: none; }
.filter-chip { flex: 0 0 auto; padding: .7rem .9rem; border: 0; border-radius: 5px; background: transparent; color: var(--cocoa-soft); cursor: pointer; font-size: .78rem; white-space: nowrap; }
.filter-chip:hover { color: var(--cocoa); background: var(--cream); }
.filter-chip.active { color: white; background: var(--cocoa); }
.series-select { position: relative; min-width: 164px; border-left: 1px solid var(--taupe-soft); }
.series-select select { width: 100%; height: 100%; padding: 0 2rem 0 1rem; border: 0; outline: 0; background: transparent; color: var(--cocoa); appearance: none; font-size: .78rem; cursor: pointer; }
.series-select svg { position: absolute; width: 16px; right: .65rem; top: 50%; transform: translateY(-50%); fill: none; stroke: var(--cocoa); stroke-width: 1.6; pointer-events: none; }
.library-status { max-width: 1380px; margin: 1.7rem auto .85rem; display: flex; align-items: center; justify-content: space-between; }
.library-status p { margin: 0; color: var(--cocoa-soft); font-size: .82rem; }
.library-status strong { color: var(--cocoa); font-family: var(--serif); font-size: 1rem; font-weight: 600; }
.library-status span:not(:empty)::before { content: "·"; margin: 0 .4rem; }
.clear-filters { border: 0; background: transparent; color: var(--blush-deep); cursor: pointer; font-size: .78rem; text-decoration: underline; text-underline-offset: 3px; }
.content-grid { max-width: 1380px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.content-card { position: relative; min-width: 0; border: 1px solid var(--taupe-soft); border-radius: 9px; overflow: hidden; background: white; box-shadow: 0 8px 22px rgba(91,65,54,.055); transition: transform .25s, box-shadow .25s; }
.content-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-small); }
.content-card.featured { grid-column: span 2; grid-row: span 2; }
.card-art { position: relative; height: 188px; overflow: hidden; cursor: pointer; background-color: var(--cream); }
.video-card-image { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.content-card.featured .card-art { height: 390px; }
.card-art::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 70% 20%, rgba(255,255,255,.5), transparent 27%), repeating-linear-gradient(120deg, transparent 0 21px, rgba(91,65,54,.025) 21px 22px); }
.art-kitchen { background: linear-gradient(135deg,#d6c1ae,#f0dfcd 48%,#a99881); }
.art-kitchen::after { content: ""; position: absolute; width: 52%; height: 62%; left: 9%; bottom: -8%; background: #faf4e8; border-radius: 50% 50% 8px 8px; box-shadow: 140px 8px 0 -18px #a7af95; }
.art-bread { background: linear-gradient(155deg,#e9d9c9 0 48%,#ae866b 48%); }
.art-bread::after { content: ""; position: absolute; width: 58%; height: 53%; border-radius: 50% 50% 13% 13%; left: 20%; top: 24%; background: #c8935d; border: 8px solid #a97047; box-shadow: inset 17px 16px 0 rgba(255,255,255,.15); transform: rotate(-4deg); }
.art-pantry { background: linear-gradient(90deg,#b9a087 0 7%,#eee3d6 7% 93%,#b9a087 93%); }
.art-pantry::after { content: "◉  ◉  ◉\A▣  ▣  ▣\A◉  ◉  ◉"; white-space: pre; position: absolute; inset: 12% 12%; padding: 4% 8%; color: #9a725b; font-size: 2.1rem; letter-spacing: .45rem; line-height: 1.6; background: repeating-linear-gradient(#8c6a54 0 5px,transparent 5px 30%); text-align: center; }
.art-flowers { background: linear-gradient(160deg,#b7c0ab,#eff0e6); }
.art-flowers::after { content: "✿"; position: absolute; right: 10%; bottom: -18%; color: #a3aaca; font: 12rem/1 var(--serif); text-shadow: -75px -35px 0 #d3a6a0, -135px 10px 0 #c4bcd5; }
.art-table { background: linear-gradient(25deg,#8b6b57 0 42%,#eaddd1 42%); }
.art-table::after { content: "♥"; position: absolute; width: 47%; height: 62%; display: grid; place-items: center; right: 8%; top: 12%; background: #fbf7f0; border: 1px solid #baa89a; color: var(--blush-deep); font: 2.2rem var(--serif); box-shadow: 7px 8px 0 rgba(220,169,164,.55); transform: rotate(4deg); }
.art-prayer { background: linear-gradient(150deg,#d8c5be 0 43%,#8d9a80 43% 53%,#f2e9de 53%); }
.art-prayer::after { content: "A prayer\Afor this season"; white-space: pre; position: absolute; width: 50%; right: 5%; top: 18%; text-align: center; color: #6d5144; font: italic 1.3rem/1.3 var(--serif); transform: rotate(2deg); }
.art-freezer { background: linear-gradient(135deg,#d2d9d2,#f2eadf); }
.art-freezer::after { content: "$20"; position: absolute; width: 120px; height: 120px; right: 15%; top: 18%; display: grid; place-items: center; border-radius: 50%; background: #f8f1e8; color: var(--cocoa); border: 5px solid var(--blush); font: 700 2.4rem var(--serif); box-shadow: 0 10px 25px rgba(91,65,54,.15); }
.art-icecream { background: linear-gradient(145deg,#e7d1cc,#f8eee6); }
.art-icecream::after { content: ""; position: absolute; width: 110px; height: 110px; left: 50%; top: 26%; transform: translateX(-50%); border-radius: 50% 50% 38% 38%; background: #fff8e8; box-shadow: -42px 25px 0 -22px #eab7b1, 42px 25px 0 -22px #aebaa1, 0 90px 0 -23px #b78563; }
.art-hospitality { background: linear-gradient(150deg,#c8b29f,#ece0d4); }
.art-hospitality::after { content: "tea  ·  coffee\Acookies  ·  welcome"; white-space: pre; position: absolute; inset: 25% 11%; padding: 1.4rem; background: rgba(255,253,249,.88); border: 1px solid rgba(91,65,54,.18); box-shadow: 8px 9px 0 rgba(143,155,130,.6); text-align: center; color: var(--cocoa); font: italic 1.05rem/1.8 var(--serif); transform: rotate(-2deg); }
.card-type { position: absolute; left: .8rem; top: .8rem; z-index: 2; padding: .32rem .55rem; border-radius: 3px; color: var(--cocoa); background: rgba(255,253,249,.9); backdrop-filter: blur(5px); text-transform: uppercase; letter-spacing: .12em; font-size: .56rem; font-weight: 800; }
.card-type.exclusive { color: white; background: rgba(91,65,54,.88); }
.play-button { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 3; width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; background: rgba(255,253,249,.87); color: var(--cocoa); box-shadow: 0 7px 20px rgba(91,65,54,.15); font-size: .85rem; transition: .2s; }
.card-art:hover .play-button { transform: translate(-50%,-50%) scale(1.07); background: white; }
.duration { position: absolute; right: .65rem; bottom: .65rem; z-index: 3; padding: .25rem .4rem; border-radius: 3px; color: white; background: rgba(62,48,42,.82); font-size: .6rem; }
.save-button { position: absolute; right: .7rem; top: .7rem; z-index: 4; width: 34px; height: 34px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,253,249,.9); color: var(--cocoa); cursor: pointer; font: 1.15rem var(--serif); }
.save-button.saved { color: var(--blush-deep); background: white; }
.card-body { padding: 1.05rem 1rem 1.1rem; }
.card-meta { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: var(--sage-deep); text-transform: uppercase; letter-spacing: .1em; font-size: .56rem; font-weight: 750; }
.card-body h3 { margin: .5rem 0 .45rem; font-size: 1.2rem; line-height: 1.15; }
.content-card.featured .card-body h3 { font-size: 1.65rem; }
.card-body p { margin: 0; color: var(--cocoa-soft); font-size: .76rem; line-height: 1.5; }
.card-footer { margin-top: .9rem; display: flex; justify-content: space-between; align-items: center; }
.card-open { border: 0; background: transparent; padding: 0; color: var(--cocoa); cursor: pointer; font-size: .72rem; font-weight: 750; }
.card-open:hover { color: var(--blush-deep); }
.card-price { font: 600 .9rem var(--serif); color: var(--cocoa); }
.add-button { border: 1px solid var(--taupe); background: transparent; color: var(--cocoa); padding: .38rem .65rem; border-radius: 3px; cursor: pointer; font-size: .66rem; font-weight: 700; }
.add-button:hover { background: var(--cocoa); color: white; border-color: var(--cocoa); }
.empty-state { max-width: 620px; margin: 4rem auto; text-align: center; }
.empty-state > span { color: var(--blush); font: 3rem var(--serif); }
.empty-state h3 { margin: .5rem 0 0; font-size: 1.7rem; }
.empty-state p { margin: .4rem 0 1.5rem; color: var(--cocoa-soft); }
.load-more { margin: 2.6rem auto 0; display: flex; }

.recipes-section { scroll-margin-top: 88px; padding: clamp(4.5rem,7vw,7rem) clamp(1.2rem,7vw,8rem); background: linear-gradient(180deg,#f9f4ec,#f1e5da); }
.recipe-view-all { padding: .6rem 0; border: 0; border-bottom: 1px solid var(--blush); background: transparent; color: var(--cocoa); cursor: pointer; white-space: nowrap; font-size: .72rem; font-weight: 700; }
.recipe-view-all:hover { color: var(--blush-deep); }
.recipe-grid { max-width: 1380px; margin: 0 auto; display: grid; grid-template-columns: repeat(4,1fr); gap: 1.15rem; }
.recipe-card { min-width: 0; padding: 0; overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--taupe-soft); border-radius: 9px; background: var(--paper); box-shadow: 0 8px 24px rgba(91,65,54,.07); text-align: left; cursor: pointer; transition: transform .24s,box-shadow .24s; }
.recipe-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-small); }
.recipe-image { width: 100%; height: 210px; display: block; border-radius: 0; }
.recipe-image i { position: absolute; z-index: 4; left: .75rem; bottom: .7rem; padding: .3rem .55rem; border-radius: 3px; background: rgba(255,253,249,.9); color: var(--sage-deep); text-transform: uppercase; letter-spacing: .12em; font: normal 800 .52rem var(--sans); }
.recipe-copy { flex: 1; padding: 1rem 1rem 1.15rem; display: flex; flex-direction: column; align-items: flex-start; }
.recipe-copy small { color: var(--sage-deep); text-transform: uppercase; letter-spacing: .11em; font-size: .52rem; font-weight: 800; }
.recipe-copy strong { margin: .35rem 0; color: var(--cocoa); font: 600 1.18rem/1.18 var(--serif); }
.recipe-copy em { color: var(--cocoa-soft); font: italic .72rem/1.45 var(--serif); }
.recipe-copy b { margin-top: auto; padding-top: 1rem; color: var(--blush-deep); font-size: .66rem; }

.rooms { padding: clamp(4.5rem, 8vw, 8rem) clamp(1.2rem, 7vw, 8rem); background: linear-gradient(180deg,#f4ebdf,#f8f2e9); }
.family-section { padding-top: clamp(3.3rem,5vw,5rem); padding-bottom: clamp(4rem,6vw,6rem); }
.section-heading.centered { display: block; text-align: center; }
.family-heading { margin-bottom: 2.2rem; }
.family-title { margin: 0; color: var(--sage-deep); font: 700 .61rem/1.4 var(--sans); letter-spacing: .17em; text-transform: uppercase; }
.room-grid { max-width: 1380px; margin: 2.6rem auto 0; display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
.room-card { min-height: 270px; padding: 1.6rem; border: 1px solid rgba(91,65,54,.11); border-radius: 10px; display: flex; flex-direction: column; align-items: flex-start; text-align: left; cursor: pointer; transition: .25s; box-shadow: 0 7px 22px rgba(91,65,54,.05); }
.room-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-small); }
.room-watch { background: #ebd6d2; }
.room-read { background: #dfe4d7; }
.room-make { background: #efe4d8; }
.room-shop { background: #ded2c8; }
.room-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.63); color: var(--cocoa); font: 1rem var(--serif); }
.room-card > span:nth-child(2) { margin: auto 0 1.1rem; display: flex; flex-direction: column; }
.room-card small { color: var(--sage-deep); text-transform: uppercase; letter-spacing: .16em; font-size: .56rem; font-weight: 800; }
.room-card strong { margin: .27rem 0; color: var(--cocoa); font: 500 1.35rem var(--serif); }
.room-card em { color: var(--cocoa-soft); font: italic .78rem/1.45 var(--serif); }
.room-card b { font-size: .7rem; color: var(--cocoa); }
.family-grid { max-width: 1380px; margin: 2.6rem auto 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 1.2rem; }
.family-card { overflow: hidden; border: 1px solid rgba(91,65,54,.12); border-radius: 11px; background: var(--paper); box-shadow: 0 8px 24px rgba(91,65,54,.07); transition: transform .25s,box-shadow .25s; }
.family-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-small); }
.family-visual { position: relative; height: 205px; overflow: hidden; display: grid; place-items: center; isolation: isolate; }
.family-visual > img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; display: block; object-fit: cover; }
.family-home .family-visual > img { object-position: center 58%; }
.family-heart .family-visual > img { object-position: center 68%; }
.family-flowers .family-visual > img { object-position: center 56%; }
.family-visual::before { content: ""; position: absolute; inset: 0; z-index: -2; background: radial-gradient(circle at 20% 15%,rgba(255,255,255,.72),transparent 28%),repeating-linear-gradient(118deg,transparent 0 28px,rgba(91,65,54,.025) 28px 29px); }
.family-visual::after { content: ""; position: absolute; z-index: -1; width: 190px; height: 190px; right: -25px; bottom: -60px; border-radius: 50%; background: rgba(255,255,255,.25); box-shadow: -175px -80px 0 -45px rgba(255,255,255,.2); }
.family-home .family-visual { background: linear-gradient(145deg,#d7c3b3,#eee2d7); }
.family-heart .family-visual { background: linear-gradient(145deg,#d8dfd1,#f0e6dc); }
.family-flowers .family-visual { background: linear-gradient(145deg,#ecd1ce,#dce2d7); }
.family-mark { width: 85px; height: 85px; display: grid; place-items: center; border: 1px solid rgba(91,65,54,.22); border-radius: 50%; background: rgba(255,253,249,.58); color: var(--cocoa); font: 2.5rem var(--serif); backdrop-filter: blur(5px); }
.family-heart .family-mark { color: var(--blush-deep); }
.family-flowers .family-mark { color: var(--sage-deep); }
.family-still { position: absolute; left: 1.1rem; right: 1.1rem; bottom: .85rem; padding: .45rem .65rem; border-radius: 4px; background: rgba(255,253,249,.82); color: var(--cocoa); text-align: center; font: italic .82rem var(--serif); }
.family-copy { padding: 1.35rem 1.35rem 1.5rem; }
.family-copy .eyebrow { margin-bottom: .25rem; }
.family-copy h3 { margin: 0; font-size: 1.75rem; }
.family-copy h4 { margin: .28rem 0 .55rem; color: var(--blush-deep); font: italic 500 .94rem var(--serif); }
.family-copy > p:not(.eyebrow) { min-height: 63px; margin: 0; color: var(--cocoa-soft); font-size: .76rem; }
.family-link { margin-top: 1rem; padding: .55rem 0 .25rem; display: inline-block; border: 0; border-bottom: 1px solid var(--blush); background: transparent; color: var(--cocoa); text-decoration: none; cursor: pointer; font-size: .7rem; font-weight: 750; }
.family-link:hover { color: var(--blush-deep); }
.home-main .family-section { padding: 2rem clamp(1rem,2.5vw,2rem) 2.2rem; overflow: hidden; border: 1px solid rgba(91,65,54,.1); border-radius: 10px; }
.home-main .family-heading { margin-bottom: 1.35rem; }
.home-main .family-title { font-size: .61rem; }
.home-main .family-grid { margin-top: 0; gap: .8rem; }
.home-main .family-visual { height: 165px; }
.home-main .family-mark { width: 70px; height: 70px; font-size: 2rem; }
.home-main .family-still { left: .75rem; right: .75rem; bottom: .65rem; font-size: .74rem; }
.home-main .family-copy { padding: 1rem 1rem 1.15rem; }
.home-main .family-copy h3 { font-size: 1.45rem; }
.home-main .family-copy h4 { font-size: .84rem; }
.home-main .family-copy > p:not(.eyebrow) { min-height: 72px; font-size: .74rem; line-height: 1.55; }
.home-main .family-link { margin-top: .8rem; padding: .58rem .78rem; border: 1px solid rgba(184,117,114,.22); border-radius: 5px; background: linear-gradient(135deg,#efd8d5,#f7e8e3); box-shadow: 0 4px 12px rgba(91,65,54,.06); font-size: .67rem; }
.home-main .family-link:hover { border-color: rgba(184,117,114,.38); background: linear-gradient(135deg,#e9cbc8,#f4ded9); color: var(--cocoa); }

.flower-hero { min-height: 590px; display: grid; grid-template-columns: minmax(0,1.08fr) minmax(420px,.92fr); background: linear-gradient(135deg,#f8eee9,#f5f1e8); }
.flower-hero-photo { min-height: 590px; background-image: linear-gradient(90deg,transparent 70%,rgba(248,238,233,.88)),url("assets/heart-at-home-banner-full.png"); background-repeat: no-repeat; background-size: 215% auto; background-position: right center; }
.flower-hero-copy { max-width: 620px; padding: clamp(4rem,8vw,8rem) clamp(2rem,7vw,7rem) 4rem clamp(2rem,5vw,5rem); align-self: center; }
.flower-hero-copy h1 { font-size: clamp(3.3rem,6vw,6rem); }
.flower-hero-copy > p:not(.eyebrow) { margin: 1.4rem 0 1.8rem; color: var(--cocoa-soft); font: 1rem/1.75 var(--serif); }
.flower-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.1rem; }
.flower-hero-actions .text-button { text-decoration: none; }

.flower-welcome { max-width: 1200px; margin: 0 auto; padding: clamp(4rem,7vw,7rem) clamp(1.2rem,5vw,4rem); display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(2rem,7vw,7rem); align-items: end; }
.flower-welcome h2 { margin: 0; max-width: 700px; font-size: clamp(2.4rem,4.7vw,4.5rem); line-height: 1.05; }
.flower-welcome > p { margin: 0 0 .5rem; color: var(--cocoa-soft); font: italic 1.05rem/1.8 var(--serif); }

.bloom-feature { min-height: 510px; display: grid; grid-template-columns: minmax(0,1.08fr) minmax(380px,.92fr); background: #e4e8de; }
.bloom-feature > img { width: 100%; height: 100%; min-height: 510px; object-fit: cover; object-position: right center; }
.bloom-copy { padding: clamp(3rem,7vw,6.5rem); align-self: center; }
.bloom-copy h2 { margin: 0; font-size: clamp(2.3rem,4vw,4rem); line-height: 1.06; }
.bloom-copy > p:not(.eyebrow) { margin: 1rem 0 1.5rem; color: var(--cocoa-soft); font-size: .96rem; line-height: 1.75; }

.flower-paths { padding: clamp(4.5rem,8vw,8rem) clamp(1.2rem,7vw,8rem); background: #fffaf5; }
.flower-path-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(3,1fr); gap: 1.1rem; }
.flower-path { min-height: 225px; padding: 1.8rem; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid var(--taupe-soft); border-radius: 10px; background: white; color: var(--cocoa); text-align: center; cursor: pointer; box-shadow: 0 8px 24px rgba(91,65,54,.06); transition: transform .22s,box-shadow .22s; }
.flower-path:hover { transform: translateY(-5px); box-shadow: var(--shadow-small); }
.flower-path > span { color: var(--blush-deep); font: 2.2rem/1 var(--serif); }
.flower-path strong { margin: .85rem 0 .35rem; font: 600 1.35rem var(--serif); }
.flower-path small { color: var(--cocoa-soft); font-size: .76rem; }

/* AHeart4Flowers home */
.flower-home-page { background: radial-gradient(circle at 88% 8%,rgba(220,169,164,.16),transparent 28%),linear-gradient(135deg,#fdf9f3,#f3eee5); }
.flower-top-layout { padding: 1rem clamp(1rem,3vw,3rem) .9rem; display: grid; grid-template-columns: minmax(0,2.05fr) minmax(350px,.95fr); gap: .9rem; align-items: stretch; }
.flower-banner-card, .flower-bloom-panel { overflow: hidden; border: 1px solid rgba(91,65,54,.2); border-radius: 10px; background: var(--paper); box-shadow: var(--shadow-small); }
.flower-banner-card { display: grid; grid-template-rows: minmax(240px,1fr) auto; }
.flower-banner-card > img { width: 100%; height: 100%; min-height: 240px; max-height: 290px; display: block; object-fit: cover; object-position: center 53%; }
.flower-banner-copy { padding: .7rem 1.15rem .8rem; border-top: 1px solid var(--taupe-soft); background: linear-gradient(135deg,#f2e5df,#faf3ea); }
.flower-banner-copy h1 { font-size: clamp(1.8rem,3vw,2.8rem); line-height: .98; }
.flower-banner-copy > p:last-child { max-width: 690px; margin: .4rem 0 0; color: var(--cocoa-soft); font: italic .88rem/1.4 var(--serif); }
.flower-bloom-panel { padding: .65rem; display: flex; flex-direction: column; background: linear-gradient(155deg,#f9f4ec,#f1e9df); }
.flower-panel-heading { padding: .1rem .2rem .5rem; text-align: center; border-bottom: 1px solid rgba(91,65,54,.14); }
.flower-panel-heading .eyebrow { margin-bottom: .25rem; }
.flower-panel-heading h2 { margin: 0; font-size: 1.7rem; }
.flower-panel-heading h2 span { color: var(--blush-deep); }
.flower-bloom-image { position: relative; width: 100%; height: 120px; margin: .45rem 0; padding: 0; overflow: hidden; border: 0; border-radius: 8px; background: var(--sage-soft); cursor: pointer; }
.flower-bloom-image img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.flower-bloom-image > span { position: absolute; inset: 50% auto auto 50%; width: 52px; height: 52px; display: grid; place-items: center; transform: translate(-50%,-50%); border-radius: 50%; background: rgba(71,50,41,.8); color: white; font-size: .92rem; box-shadow: 0 6px 18px rgba(0,0,0,.2); }
.flower-bloom-image > small { position: absolute; left: .75rem; bottom: .7rem; padding: .35rem .55rem; border-radius: 3px; background: rgba(255,253,249,.92); color: var(--sage-deep); text-transform: uppercase; letter-spacing: .1em; font-size: .58rem; font-weight: 750; }
.flower-bloom-copy { padding: .05rem .3rem .35rem; text-align: center; }
.flower-bloom-copy .eyebrow { margin-bottom: .3rem; }
.flower-bloom-copy h3 { max-width: 310px; margin: 0 auto; font-size: 1.4rem; line-height: 1.05; }
.flower-bloom-copy > p:not(.eyebrow) { max-width: 330px; margin: .4rem auto 0; color: var(--cocoa-soft); font: italic .76rem/1.4 var(--serif); }
.flower-feature-watch { margin-top: .45rem; padding: .3rem 0 .2rem; border: 0; border-bottom: 1px solid var(--blush); background: transparent; color: var(--cocoa); cursor: pointer; font-size: .65rem; font-weight: 750; }
.flower-feature-watch:hover { color: var(--blush-deep); }
.flower-video-row { width: 100%; padding: .85rem .15rem; display: grid; grid-template-columns: 115px 1fr; gap: .8rem; align-items: center; border: 0; border-bottom: 1px solid rgba(91,65,54,.14); background: transparent; color: inherit; text-align: left; cursor: pointer; }
.flower-video-thumb { position: relative; height: 78px; overflow: hidden; border-radius: 7px; background: var(--sage-soft); }
.flower-video-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; }
.flower-video-arrangement img { object-position: 13% center; }
.flower-video-thumb i { position: absolute; inset: 50% auto auto 50%; width: 32px; height: 32px; display: grid; place-items: center; transform: translate(-50%,-50%); border-radius: 50%; background: rgba(81,57,46,.78); color: white; font-size: .68rem; font-style: normal; }
.flower-video-row > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.flower-video-row small { color: var(--blush-deep); text-transform: uppercase; letter-spacing: .1em; font-size: .58rem; font-weight: 750; }
.flower-video-row strong { margin-top: .15rem; color: var(--cocoa); font: 600 1rem/1.15 var(--serif); }
.flower-video-row em { margin-top: .25rem; color: var(--cocoa-soft); font: italic .7rem/1.35 var(--serif); }
.flower-video-row b { margin-top: .3rem; color: var(--sage-deep); font-size: .61rem; }
.flower-encouragement { margin-top: auto; padding: .45rem .6rem; display: grid; grid-template-columns: 24px 1fr; gap: .45rem; border: 1px solid rgba(184,117,114,.2); border-radius: 8px; background: #f1dedb; }
.flower-encouragement > span { color: var(--sage-deep); font-size: 1.45rem; }
.flower-encouragement small { color: var(--blush-deep); text-transform: uppercase; letter-spacing: .13em; font-size: .57rem; font-weight: 750; }
.flower-encouragement blockquote { margin: .25rem 0 .2rem; color: var(--cocoa); font: italic .78rem/1.45 var(--serif); }
.flower-encouragement cite { color: var(--sage-deep); font-size: .58rem; font-style: normal; }
.flower-intro-strip { margin: 0 clamp(1rem,3vw,3rem) .65rem; padding: .7rem 1rem; display: grid; grid-template-columns: auto 1fr minmax(240px,.75fr); gap: .8rem; align-items: center; border: 1px solid rgba(101,113,93,.2); border-radius: 10px; background: #e7eadf; }
.flower-intro-strip > span { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.58); color: var(--blush-deep); font-size: 1.45rem; }
.flower-intro-strip .eyebrow { margin-bottom: .15rem; }
.flower-intro-strip h2 { margin: 0; font-size: 1.45rem; }
.flower-intro-strip > p { margin: 0; padding-left: 1rem; border-left: 1px solid rgba(101,113,93,.23); color: var(--cocoa-soft); font: italic .82rem/1.5 var(--serif); }
.flower-collection { margin: 0 clamp(1rem,3vw,3rem) .65rem; padding: clamp(1.15rem,2.2vw,1.75rem); border: 1px solid rgba(91,65,54,.12); border-radius: 10px; background: rgba(255,253,249,.72); }
.flower-collection-heading { margin-bottom: .8rem; display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.flower-collection-heading .eyebrow { margin-bottom: .2rem; }
.flower-collection-heading h2 { margin: 0; font-size: clamp(1.75rem,2.7vw,2.55rem); }
.flower-collection-heading > p { max-width: 340px; margin: 0; color: var(--cocoa-soft); font: italic .9rem/1.55 var(--serif); text-align: right; }
.flower-feature-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .85rem; }
.flower-feature-card { min-width: 0; overflow: hidden; display: flex; flex-direction: column; border: 1px solid rgba(91,65,54,.14); border-radius: 9px; background: #fffdf9; box-shadow: 0 7px 20px rgba(91,65,54,.05); }
.flower-feature-image { position: relative; height: 175px; overflow: hidden; }
.flower-feature-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.flower-feature-image span { position: absolute; left: .7rem; bottom: .65rem; padding: .35rem .55rem; border-radius: 3px; background: rgba(255,253,249,.88); color: var(--cocoa); font: italic .73rem var(--serif); }
.flower-feature-icon { height: 175px; display: grid; place-items: center; background: linear-gradient(145deg,#ead1cf,#f7ece6); color: var(--blush-deep); font: 3.6rem var(--serif); }
.flower-feature-icon.sage { background: linear-gradient(145deg,#d7decf,#eef0e5); color: var(--sage-deep); }
.flower-feature-icon.blush { background: linear-gradient(145deg,#f1dedb,#faf0e8); color: var(--blush-deep); }
.flower-feature-copy { flex: 1; padding: 1rem; display: flex; flex-direction: column; }
.flower-feature-copy .eyebrow { margin-bottom: .2rem; font-size: .58rem; }
.flower-feature-copy h3 { margin: 0; font-size: 1.35rem; }
.flower-feature-copy > p:not(.eyebrow) { margin: .55rem 0 0; color: var(--cocoa-soft); font-size: .77rem; line-height: 1.55; }
.flower-feature-copy .family-link { margin-top: auto; align-self: flex-start; }
.flower-carousel-controls { display: flex; gap: .55rem; }
.flower-carousel-controls button { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--taupe-soft); border-radius: 50%; background: #fffdf9; color: var(--cocoa); cursor: pointer; font-size: .9rem; box-shadow: 0 4px 12px rgba(91,65,54,.06); }
.flower-carousel-controls button:hover { border-color: var(--blush); color: var(--blush-deep); }
.flower-video-carousel { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--blush) transparent; scroll-behavior: smooth; padding: .15rem .05rem .75rem; }
.flower-channel-card { flex: 0 0 calc((100% - 3rem)/4.15); min-width: 205px; overflow: hidden; scroll-snap-align: start; display: flex; flex-direction: column; border: 1px solid rgba(91,65,54,.15); border-radius: 9px; background: #fffdf9; color: inherit; text-align: left; cursor: pointer; box-shadow: 0 8px 22px rgba(91,65,54,.06); transition: transform .2s,box-shadow .2s; }
.flower-channel-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(91,65,54,.11); }
.flower-channel-image { position: relative; aspect-ratio: 16/9; overflow: hidden; display: block; }
.flower-channel-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.flower-channel-image i { position: absolute; inset: 50% auto auto 50%; width: 46px; height: 46px; display: grid; place-items: center; transform: translate(-50%,-50%); border-radius: 50%; background: rgba(71,50,41,.8); color: white; font-size: .85rem; font-style: normal; box-shadow: 0 5px 14px rgba(0,0,0,.18); }
.flower-channel-image small { position: absolute; left: .75rem; bottom: .65rem; padding: .32rem .5rem; border-radius: 3px; background: rgba(255,253,249,.9); color: var(--sage-deep); text-transform: uppercase; letter-spacing: .11em; font-size: .58rem; font-weight: 750; }
.flower-channel-copy { flex: 1; padding: .62rem .72rem .72rem; display: flex; flex-direction: column; }
.flower-channel-copy b { color: var(--blush-deep); text-transform: uppercase; letter-spacing: .12em; font-size: .6rem; }
.flower-channel-copy strong { margin-top: .2rem; color: var(--cocoa); font: 600 1.18rem/1.1 var(--serif); }
.flower-channel-copy em { margin-top: .35rem; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--cocoa-soft); font: italic .72rem/1.38 var(--serif); }
.flower-channel-copy u { margin-top: .6rem; color: var(--sage-deep); text-decoration: none; font-size: .64rem; font-weight: 750; }
.flower-home-page .flower-channel-copy u { padding: .45rem .65rem; align-self: flex-start; border: 1px solid rgba(101,113,93,.28); border-radius: 5px; background: linear-gradient(135deg,#dbe3d3,#edf0e6); box-shadow: 0 4px 12px rgba(91,65,54,.06); color: var(--cocoa); }
.flower-home-page .flower-channel-card:hover .flower-channel-copy u { border-color: rgba(101,113,93,.42); background: linear-gradient(135deg,#ced9c5,#e5eadc); }
.flower-story-card { cursor: default; }
.flower-story-card:hover { transform: none; }
.flower-story-video { width: 100%; padding: 0; display: block; border: 0; background: transparent; cursor: pointer; }
.flower-story-actions { margin-top: .6rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.flower-story-actions a, .flower-story-actions button { padding: .45rem .6rem; border: 1px solid rgba(101,113,93,.28); border-radius: 5px; background: linear-gradient(135deg,#dbe3d3,#edf0e6); color: var(--cocoa); cursor: pointer; font: 750 .61rem var(--sans); text-decoration: none; }
.flower-story-actions a:hover, .flower-story-actions button:hover { border-color: rgba(101,113,93,.42); background: linear-gradient(135deg,#ced9c5,#e5eadc); }

.flower-story-page { background: linear-gradient(180deg,#fbf8f2,#f7f0e7); }
.flower-story-shell { width: min(1120px,calc(100% - 2rem)); margin: 1rem auto; overflow: hidden; border: 1px solid rgba(91,65,54,.14); border-radius: 14px; background: rgba(255,253,249,.94); }
.flower-story-hero { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(340px,.95fr); }
.flower-story-hero-image { min-height: 360px; position: relative; overflow: hidden; }
.flower-story-hero-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.flower-story-hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,transparent 66%,rgba(255,253,249,.38)); }
.flower-story-hero-copy { padding: clamp(1.6rem,4vw,3.5rem); display: flex; flex-direction: column; justify-content: center; background: linear-gradient(145deg,#eef1e8,#fffaf5); }
.flower-story-hero-copy h1 { margin: .3rem 0 .65rem; color: var(--cocoa); font-size: clamp(2.45rem,5vw,4.7rem); line-height: .92; }
.flower-story-hero-copy h1 em { display: block; margin-top: .25rem; color: var(--sage-deep); font-size: .48em; font-weight: 500; }
.flower-story-hero-copy > p:last-child { margin: 0; color: var(--cocoa-soft); font: italic 1.02rem/1.6 var(--serif); }
.flower-story-lead { max-width: 760px; margin: 0 auto; padding: 2rem 1.5rem 1.2rem; text-align: center; }
.flower-story-lead p { margin: 0; color: var(--cocoa-soft); font: 1.1rem/1.8 var(--serif); }
.flower-story-video-wrap { margin: 0 auto 1.2rem; width: min(820px,calc(100% - 3rem)); padding: .65rem; border: 1px solid rgba(101,113,93,.2); border-radius: 12px; background: #edf0e7; }
.flower-story-video-wrap iframe { width: 100%; aspect-ratio: 16/9; display: block; border: 0; border-radius: 8px; }
.flower-story-grid { padding: 1rem 1.5rem 1.5rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.flower-story-panel { padding: 1.2rem; border: 1px solid rgba(91,65,54,.12); border-radius: 10px; background: #fffdf9; }
.flower-story-panel:nth-child(2) { background: #f8eae5; }
.flower-story-panel:nth-child(3) { background: #e9ede3; }
.flower-story-panel > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.7); color: var(--blush-deep); }
.flower-story-panel h2 { margin: .65rem 0 .45rem; font-size: 1.55rem; }
.flower-story-panel p, .flower-story-panel li { color: var(--cocoa-soft); font-size: .78rem; line-height: 1.65; }
.flower-story-panel ul { margin: .35rem 0 0; padding-left: 1.1rem; }
.flower-story-scripture { margin: 0 1.5rem 1.5rem; padding: 1.2rem 1.5rem; display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; border-radius: 10px; background: var(--sage-deep); color: white; text-align: center; }
.flower-story-scripture span { font-size: 1.4rem; }
.flower-story-scripture blockquote { margin: 0; font: italic clamp(1.2rem,2.5vw,1.65rem)/1.35 var(--serif); }
.flower-story-scripture cite { color: #f3e8df; font-size: .65rem; font-style: normal; }
.flower-story-reflection { margin: 0 1.5rem 1.5rem; padding: 1.4rem; display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: start; border: 1px solid rgba(184,117,114,.2); border-radius: 10px; background: linear-gradient(135deg,#f7e8e3,#fffaf5); }
.flower-story-reflection > span { color: var(--blush-deep); font-size: 1.5rem; }
.flower-story-reflection h2 { margin: 0 0 .35rem; font-size: 1.6rem; }
.flower-story-reflection p { margin: 0; color: var(--cocoa-soft); font: italic .92rem/1.6 var(--serif); }
.flower-story-coloring { margin: 0 1.5rem 1.5rem; display: grid; grid-template-columns: minmax(240px,.72fr) minmax(0,1.28fr); overflow: hidden; border: 1px solid rgba(91,65,54,.16); border-radius: 10px; background: linear-gradient(135deg,#edf0e6,#fff9f4 64%,#f7e7e3); box-shadow: var(--shadow-small); }
.flower-story-coloring-image { min-height: 290px; padding: .8rem; background: rgba(255,253,249,.68); }
.flower-story-coloring-image img { width: 100%; height: 100%; display: block; object-fit: cover; border: 1px solid rgba(126,145,111,.38); border-radius: 6px; }
.flower-story-coloring-copy { padding: clamp(1.25rem,3vw,2.4rem); display: flex; flex-direction: column; justify-content: center; }
.flower-story-coloring-copy h2 { margin: .15rem 0 .55rem; font-size: clamp(2rem,3.4vw,3.5rem); line-height: .95; }
.flower-story-coloring-copy > p:not(.eyebrow) { margin: 0 0 .75rem; color: var(--cocoa-soft); line-height: 1.55; }
.flower-story-coloring-copy .flower-story-coloring-note { font: 700 .68rem var(--sans); letter-spacing: .05em; text-transform: uppercase; }
.flower-story-coloring-copy a { align-self: flex-start; padding: .62rem .9rem; border-radius: 5px; background: linear-gradient(135deg,#a9b99d,#c9d3c1); color: #3f493b; font: 750 .72rem var(--sans); text-decoration: none; box-shadow: 0 4px 12px rgba(48,38,32,.11); }
.flower-story-coloring-copy a:hover { background: linear-gradient(135deg,#9aaa8e,#bdc9b3); }
.flower-story-coming-soon { align-self: flex-start; padding: .62rem .9rem; border: 1px solid rgba(101,113,93,.3); border-radius: 5px; background: rgba(219,227,211,.72); color: #596452; font: 750 .72rem var(--sans); }
.flower-story-back { padding: 0 1.5rem 1.6rem; text-align: center; }
.flower-story-back a { color: var(--sage-deep); font-size: .75rem; font-weight: 750; text-decoration: none; }
@media (max-width:760px) {
  .flower-story-coloring { grid-template-columns: 1fr; }
  .flower-story-coloring-image { min-height: 250px; max-height: 360px; }
  .flower-story-hero { grid-template-columns: 1fr; }
  .flower-story-hero-image { min-height: 245px; }
  .mobile-full-flower-thumbnail { min-height: 0; aspect-ratio: 16/9; background: #d9dfcf; }
  .mobile-full-flower-thumbnail img { object-fit: contain; object-position: center; }
  .flower-story-hero-copy { padding: 1.4rem; }
  .flower-story-grid { grid-template-columns: 1fr; }
  .flower-story-scripture { grid-template-columns: 1fr; }
}

@media (hover: none), (pointer: coarse) {
  a, button { touch-action: manipulation; }
  .button:hover, .flower-channel-card:hover, .content-card:hover, .recipe-card:hover, .room-card:hover, .family-card:hover, .shop-card:hover { transform: none; }
  .flower-story-actions a:hover, .flower-story-actions button:hover { border-color: rgba(101,113,93,.28); background: linear-gradient(135deg,#dbe3d3,#edf0e6); }
}
.flower-carousel-note { margin: .35rem 0 0; color: var(--cocoa-soft); font: italic .76rem/1.45 var(--serif); text-align: center; }
.flower-arrangements { background: linear-gradient(145deg,rgba(239,232,219,.82),rgba(255,253,249,.76)); }
.arrangement-preview-card { cursor: default; }
.arrangement-preview-card:hover { transform: none; box-shadow: 0 8px 22px rgba(91,65,54,.06); }
.arrangement-art { display: grid; place-items: center; background: linear-gradient(145deg,#efd8d5,#f8ede7); }
.arrangement-art i { position: static; width: 66px; height: 66px; transform: none; background: rgba(255,253,249,.74); color: var(--blush-deep); font-size: 2rem; }
.arrangement-art-sage { background: linear-gradient(145deg,#d8dfcf,#eff1e8); }
.arrangement-art-sage i { color: var(--sage-deep); }
.arrangement-art-ivory { background: linear-gradient(145deg,#efe5d8,#fffaf2); }
.arrangement-art-taupe { background: linear-gradient(145deg,#d8c8bb,#f0e5da); }
.flower-bottom-layout { margin: 0 clamp(1rem,3vw,3rem) .8rem; display: grid; grid-template-columns: minmax(0,2.05fr) minmax(315px,.95fr); gap: .9rem; }
.flower-bottom-layout .flower-signup-vignette { min-height: 190px; max-height: 215px; border: 1px solid rgba(91,65,54,.16); border-radius: 10px; }
.flower-bottom-layout .signup-vignette-image { height: 100%; max-height: none; object-fit: cover; }
.flower-bottom-layout .signup-center { width: min(68%,650px); padding: 1.3rem 1.25rem 1rem; }
.flower-coloring-feature { position: relative; min-height: 190px; max-height: 215px; overflow: hidden; border: 1px solid rgba(91,65,54,.16); border-radius: 10px; background: var(--sage-soft); box-shadow: var(--shadow-small); }
.flower-coloring-feature > img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 58%; }
.flower-coloring-feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(48,38,32,.76),rgba(48,38,32,.27)); }
.flower-coloring-feature > div { position: relative; z-index: 1; height: 100%; padding: 1.35rem; display: flex; flex-direction: column; justify-content: center; color: white; }
.flower-coloring-feature .eyebrow { margin-bottom: .25rem; color: #f6e7df; }
.flower-coloring-feature h2 { margin: 0; color: white; font-size: clamp(1.8rem,2.7vw,2.7rem); line-height: 1; }
.flower-coloring-feature p:not(.eyebrow) { margin: .65rem 0 .9rem; font-size: .78rem; line-height: 1.48; }
.flower-coloring-feature button, .flower-coloring-feature a { align-self: flex-start; padding: .62rem .9rem; border: 1px solid rgba(255,255,255,.72); border-radius: 5px; background: rgba(255,253,249,.9); color: var(--cocoa); cursor: pointer; font-size: .7rem; font-weight: 750; text-decoration: none; }
.flower-coloring-feature.flower-top-coloring a { padding: .45rem .65rem; border-color: #8e9c84; background: linear-gradient(135deg,#bdcbb5,#d6dfcf); box-shadow: 0 4px 12px rgba(48,38,32,.12); color: #4f493f; }
.flower-coloring-feature.flower-top-coloring a:hover { border-color: #7d8d73; background: linear-gradient(135deg,#afc1a6,#ccd8c4); }
.flower-top-coloring { min-height: 255px; max-height: none; height: 100%; display: block; background: linear-gradient(135deg,#fbf4ee 0%,#f7e5e1 100%); }
.flower-top-coloring::after { display: block; content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg,rgba(251,244,238,.94) 0%,rgba(251,244,238,.82) 32%,rgba(251,244,238,.28) 52%,rgba(251,244,238,.04) 66%,rgba(251,244,238,0) 74%); }
.flower-top-coloring > img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; object-fit: cover; object-position: center; }
.flower-top-coloring > div { position: relative; z-index: 1; width: 58%; height: 100%; min-width: 0; padding: clamp(1.1rem,1.8vw,1.65rem); color: var(--cocoa); background: none; }
.flower-top-coloring .eyebrow { color: var(--sage-deep); }
.flower-top-coloring h2 { color: var(--cocoa); font-size: clamp(1.55rem,2.25vw,2.2rem); }
.flower-top-coloring p:not(.eyebrow) { max-width: 34ch; color: var(--cocoa-soft); }
.flower-top-coloring button, .flower-top-coloring a { border-color: rgba(184,117,114,.32); background: rgba(255,253,249,.94); }
.flower-bottom-layout.flower-bottom-single { grid-template-columns: 1fr; }
.flower-signup-vignette { min-height: 220px; max-height: 280px; }
.flower-signup-vignette .signup-vignette-image { max-height: 280px; object-fit: cover; }
.flower-signup-vignette .signup-center { padding-top: 1.35rem; padding-bottom: 1.1rem; }
.flower-footer { margin-top: .7rem; padding-top: .85rem; padding-bottom: .45rem; row-gap: .65rem; }
.flower-footer .footer-logo .brand-mark { width: 44px; height: 44px; }
.flower-footer .footer-socials button { width: 34px; height: 34px; }
.flower-footer .footer-signature > span { font-size: 1.55rem; }
.flower-footer .footer-signature em { font-size: 1.05rem; }
.flower-footer .footer-copyright { margin-top: .15rem; padding-top: .55rem; }
.signup-vignette { position: relative; min-height: 300px; display: grid; place-items: center; overflow: hidden; border-top: 1px solid rgba(91,65,54,.1); border-bottom: 1px solid rgba(91,65,54,.1); background: #fffaf4; }
.signup-vignette-image { width: 100%; height: auto; display: block; grid-area: 1 / 1; }
.signup-center { position: relative; z-index: 2; width: min(48%,650px); grid-area: 1 / 1; padding: 2.1rem 1.5rem 1.5rem; align-self: center; text-align: center; border: 1px solid rgba(231,221,211,.72); border-radius: 12px; background: rgba(255,250,244,.9); box-shadow: 0 12px 36px rgba(91,65,54,.08); backdrop-filter: blur(6px); }
.signup-center h2 { margin: 0; color: var(--cocoa); font-size: clamp(1.65rem,2.6vw,2.4rem); line-height: 1.15; }
.signup-center h2 em { display: inline; font-weight: 400; }
.signup-center > p { margin: .45rem auto 1rem; color: var(--cocoa-soft); font-size: .78rem; }
.letter-form { position: relative; z-index: 2; max-width: 470px; margin: 0 auto; }
.letter-form > div { display: flex; justify-content: center; }
.letter-form input { min-width: 0; flex: 1; padding: .74rem .9rem; border: 1px solid var(--taupe-soft); outline: 0; border-radius: 18px 0 0 18px; background: white; color: var(--cocoa); }
.letter-form input:focus { border-color: var(--sage); box-shadow: 0 0 0 3px rgba(143,155,130,.13); }
.letter-form button { border: 0; padding: .72rem 1.25rem; border-radius: 0 18px 18px 0; background: var(--sage-deep); color: white; cursor: pointer; font-size: .75rem; font-weight: 750; }
.letter-form button:hover { background: #56624f; }
.letter-form small { display: block; margin-top: .45rem; color: #a8978d; font-size: .59rem; }
.letter-success { position: relative; z-index: 2; max-width: 470px; margin: 0 auto; padding: .8rem; border: 1px solid var(--taupe-soft); background: rgba(255,255,255,.68); text-align: center; border-radius: 8px; }
.letter-success span { color: var(--blush-deep); font: 1.35rem var(--serif); }
.letter-success strong { margin-left: .35rem; font: 500 1rem var(--serif); }
.letter-success p { margin: .2rem 0 0; color: var(--cocoa-soft); font-size: .68rem; }

.sidebar-heart2heart { position: relative; min-height: 220px; padding: 1.45rem 1.5rem 1.35rem; overflow: hidden; isolation: isolate; border: 1px solid rgba(184,117,114,.2); border-radius: 10px; background: linear-gradient(135deg,#f6e0dc,#fbf3ea); box-shadow: var(--shadow-small); }
.sidebar-heart2heart::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(90deg,#f6e0dc 0%,#f6e0dc 42%,rgba(246,224,220,.88) 54%,rgba(246,224,220,.28) 76%,rgba(246,224,220,0) 100%),url("assets/heart2heart-prayer.jpg") right center / auto 100% no-repeat; }
.sidebar-heart2heart::after { content: ""; position: absolute; right: -55px; bottom: -80px; width: 180px; height: 180px; border-radius: 50%; background: rgba(220,169,164,.22); }
.sidebar-heart { position: absolute; z-index: 1; right: 1.35rem; top: 1rem; color: var(--blush-deep); font: 2rem/1 var(--serif); }
.sidebar-heart2heart .eyebrow { margin-bottom: .35rem; }
.sidebar-heart2heart h2 { position: relative; z-index: 1; max-width: 64%; margin: 0; font-size: 2rem; line-height: 1.05; }
.sidebar-heart2heart > p:not(.eyebrow) { position: relative; z-index: 1; max-width: 64%; margin: .65rem 0 1rem; color: var(--cocoa-soft); font-size: .88rem; line-height: 1.55; }
.sidebar-card-link { position: relative; z-index: 1; padding: .5rem 0 .25rem; border: 0; border-bottom: 1px solid var(--blush-deep); background: transparent; color: var(--cocoa); cursor: pointer; font-size: .78rem; font-weight: 750; }
.sidebar-heart2heart .sidebar-card-link { max-width: 64%; text-align: left; }
.sidebar-card-link:hover { color: var(--blush-deep); }
.sidebar-signup { overflow: hidden; border: 1px solid rgba(91,65,54,.11); border-radius: 10px; background: var(--paper); box-shadow: var(--shadow-small); }
.sidebar-signup-photo { height: 132px; background: #f6ece5 url("assets/heart-at-home-signup-vignette.png") center center / cover no-repeat; }
.sidebar-signup-panel { padding: 1.15rem 1.25rem 1.25rem; background: linear-gradient(135deg,#f3d4cf,#fae8e3); text-align: center; }
.sidebar-signup-panel .eyebrow { margin-bottom: .25rem; }
.sidebar-signup-panel h2 { margin: 0; font-size: 1.75rem; line-height: 1.05; }
.sidebar-signup-panel > p:not(.eyebrow) { margin: .45rem auto .85rem; color: var(--cocoa-soft); font-size: .84rem; line-height: 1.45; }
.sidebar-signup .letter-form { max-width: 100%; }
.sidebar-signup .letter-form > div { flex-direction: column; gap: .5rem; }
.sidebar-signup .ml-form-embedContainer,
.sidebar-signup .ml-form-align-center,
.sidebar-signup .ml-form-embedWrapper,
.sidebar-signup .ml-form-formContent,
.sidebar-signup .ml-form-fieldRow,
.sidebar-signup .ml-field-group { width: 100%; }
.sidebar-signup .ml-form-embedContent > p { margin: .45rem auto .85rem; color: var(--cocoa-soft); font-size: .84rem; line-height: 1.45; }
.sidebar-signup .ml-form-embedSubmit { margin-top: .5rem; }
.sidebar-signup .ml-form-embedSubmitLoad { display: inline-block; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.48); border-top-color: white; border-radius: 50%; animation: ml-spin .8s linear infinite; }
@keyframes ml-spin { to { transform: rotate(360deg); } }
.sidebar-signup .letter-form input, .sidebar-signup .letter-form button { width: 100%; min-height: 42px; border-radius: 22px; }
.sidebar-signup .letter-form button { background: var(--blush-deep); }
.sidebar-signup .letter-form button:hover { background: #a96361; }
.sidebar-signup .letter-form small { color: #8f7770; }
.sidebar-signup .letter-success { padding: .65rem; }

/* The main Heart@Home tab already opens the video and journal page. */
.nav-submenu a[href="videos.html"] { display: none; }

.home-scripture { margin: 0; padding: .9rem clamp(1.15rem,2.6vw,2.4rem); display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: clamp(.8rem,2vw,1.6rem); overflow: hidden; border: 1px solid rgba(101,113,93,.24); border-radius: 10px; background: radial-gradient(circle at 10% 10%,rgba(220,169,164,.18),transparent 26%),linear-gradient(135deg,#f8f1e7,#fffaf4); box-shadow: var(--shadow-small); }
.home-scripture > div { display: grid; grid-template-columns: minmax(145px,.27fr) minmax(0,1fr); grid-template-rows: auto auto; column-gap: clamp(1rem,2.4vw,2rem); align-items: center; text-align: left; }
.home-scripture .eyebrow { margin: 0 0 .2rem; }
.home-scripture h2 { margin: 0; font-size: clamp(1.45rem,2.2vw,1.85rem); line-height: 1; }
.home-scripture blockquote { grid-column: 2; grid-row: 1 / span 2; max-width: 980px; margin: 0; padding-left: clamp(1rem,2vw,1.6rem); border-left: 1px solid rgba(101,113,93,.24); }
.home-scripture blockquote p { margin: 0; color: var(--cocoa); font: italic clamp(.93rem,1.15vw,1.08rem)/1.45 var(--serif); }
.home-scripture cite { display: block; margin-top: .35rem; color: var(--sage-deep); text-transform: uppercase; letter-spacing: .15em; font: normal 700 .7rem var(--sans); }
.scripture-flourish { color: var(--sage-deep); font: 1.9rem/1 var(--serif); }
.scripture-heart { color: var(--blush-deep); font: 2rem/1 var(--serif); }

.watch-page { min-height: 100vh; background: radial-gradient(circle at 88% 8%,rgba(220,169,164,.16),transparent 28%),linear-gradient(135deg,#fdf9f3,#f6eee4); }
.watch-top-layout { width: 100%; padding: 1rem clamp(1rem,3vw,3rem); display: grid; grid-template-columns: minmax(0,2.05fr) minmax(350px,.95fr); gap: .9rem; align-items: stretch; }
.watch-banner-card, .watch-newest-panel, .watch-journal-feature { min-width: 0; overflow: hidden; border: 1px solid rgba(91,65,54,.24); border-radius: 10px; background: var(--paper); box-shadow: 0 9px 24px rgba(83,60,48,.09); }
.watch-banner-card { display: flex; flex-direction: column; }
.watch-banner-card > img { width: 100%; height: clamp(245px,21vw,320px); display: block; object-fit: contain; background: #e8d7cd; }
.watch-banner-copy { flex: 1; padding: .8rem 1.25rem .9rem; border-top: 1px solid var(--taupe-soft); background: linear-gradient(135deg,#f7ebe3,#fbf3ea); }
.watch-banner-copy .eyebrow { margin-bottom: .3rem; }
.watch-banner-copy .eyebrow span { color: var(--blush-deep); }
.watch-banner-copy h1 { max-width: 750px; margin: 0; color: var(--cocoa); font: italic clamp(1.05rem,1.55vw,1.35rem)/1.38 var(--serif); letter-spacing: 0; }
.watch-banner-copy > p:last-child { max-width: 750px; margin: .35rem 0 0; color: var(--cocoa-soft); font-size: .84rem; line-height: 1.4; }
.watch-newest-panel { padding: .8rem; display: flex; flex-direction: column; }
.watch-sidebar-stack { min-width: 0; display: grid; grid-template-rows: auto auto; gap: .75rem; }
.watch-newest-heading { padding: .1rem .15rem .55rem; border-bottom: 1px solid var(--taupe-soft); }
.watch-newest-heading .eyebrow { margin-bottom: .25rem; }
.watch-newest-heading h2 { margin: 0; font-size: clamp(1.45rem,2.2vw,2rem); line-height: 1.05; }
.watch-newest-heading h2 span { color: var(--blush-deep); }
.watch-feature-list { flex: 1; display: flex; flex-direction: column; justify-content: space-evenly; }
.watch-feature-row { width: 100%; flex: 1; display: grid; grid-template-columns: minmax(118px,.88fr) minmax(0,1.12fr); gap: .85rem; align-items: center; padding: 1rem .15rem; border: 0; border-bottom: 1px solid var(--taupe-soft); background: transparent; color: var(--cocoa); text-align: left; cursor: pointer; }
.watch-feature-row:last-child { border-bottom: 0; }
.watch-feature-thumb { position: relative; width: 100%; aspect-ratio: 16/10; display: block; overflow: hidden; border-radius: 7px; background: var(--cream); box-shadow: inset 0 0 0 1px rgba(91,65,54,.08); }
.watch-feature-thumb img { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; display: block; object-fit: cover; }
.watch-feature-thumb i { position: absolute; z-index: 4; left: 50%; top: 50%; width: 38px; height: 38px; display: grid; place-items: center; transform: translate(-50%,-50%); border-radius: 50%; background: rgba(255,253,249,.92); color: var(--cocoa); font-style: normal; font-size: .68rem; box-shadow: 0 5px 14px rgba(91,65,54,.18); }
.watch-feature-copy { min-width: 0; display: flex; flex-direction: column; }
.watch-feature-copy small { color: var(--sage-deep); text-transform: uppercase; letter-spacing: .11em; font-size: .58rem; font-weight: 800; }
.watch-feature-copy strong { margin: .25rem 0; font: 600 clamp(1.1rem,1.45vw,1.35rem)/1.1 var(--serif); transition: color .18s; }
.watch-feature-copy em { color: var(--cocoa-soft); font: italic .75rem/1.4 var(--serif); }
.watch-feature-copy b { margin-top: .65rem; padding: .45rem .65rem; align-self: flex-start; border: 1px solid rgba(184,117,114,.22); border-radius: 5px; background: linear-gradient(135deg,#efd8d5,#f7e8e3); box-shadow: 0 4px 12px rgba(91,65,54,.06); color: var(--cocoa); font-size: .7rem; }
.watch-feature-row:hover .watch-feature-copy strong { color: var(--blush-deep); }
.watch-newest-panel .watch-feature-list { flex: 0 0 auto; justify-content: flex-start; }
.watch-newest-panel .watch-feature-row { flex: none; padding: .45rem .1rem; }
.watch-newest-panel .watch-feature-thumb { aspect-ratio: 16/9; }
.watch-encouragement { margin-top: auto; padding: .65rem .75rem; }
.watch-journal-feature { padding: .9rem 1rem; background: linear-gradient(145deg,#fffaf5,#f1e5df); }
.watch-journal-feature-heading { padding-bottom: .55rem; border-bottom: 1px solid var(--taupe-soft); }
.watch-journal-feature-heading h2 { margin: .08rem 0 0; font-size: clamp(1.35rem,1.8vw,1.7rem); line-height: 1.02; }
.watch-journal-feature-heading h2 span { color: var(--blush-deep); }
.watch-journal-feature-heading > p:last-child { margin: .45rem 0 0; color: var(--cocoa-soft); font: italic .75rem/1.4 var(--serif); }
.watch-journal-list { display: grid; }
.watch-journal-list :is(button,a) { width: 100%; padding: .55rem .1rem; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: .5rem; border: 0; border-bottom: 1px solid rgba(91,65,54,.12); background: transparent; color: var(--cocoa); text-align: left; text-decoration: none; cursor: pointer; }
.watch-journal-list :is(button,a):last-child { border-bottom: 0; }
.watch-journal-list :is(button,a) > span { color: var(--blush); font: italic 1rem var(--serif); }
.watch-journal-list :is(button,a) > div { min-width: 0; display: flex; flex-direction: column; }
.watch-journal-list small { color: var(--sage-deep); text-transform: uppercase; letter-spacing: .08em; font-size: .5rem; font-weight: 750; }
.watch-journal-list strong { margin: .1rem 0; font: 600 .92rem/1.08 var(--serif); }
.watch-journal-list em { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; color: var(--cocoa-soft); font: italic .64rem/1.3 var(--serif); }
.watch-journal-list :is(button,a) > b { color: var(--blush-deep); font-size: .75rem; }
.watch-journal-list a:hover strong { color: var(--blush-deep); }
.watch-journal-note { margin: .65rem 0 0; padding-top: .65rem; border-top: 1px solid rgba(91,65,54,.12); color: var(--sage-deep); font: italic .72rem/1.4 var(--serif); text-align: center; }
.watch-content-layout { padding: 0 clamp(1rem,3vw,3rem) 1rem; display: grid; grid-template-columns: minmax(0,2.05fr) minmax(300px,.95fr); gap: .9rem; align-items: start; }
.watch-collections { min-width: 0; display: grid; gap: .7rem; }
.watch-collection { min-width: 0; padding: .85rem 1rem .75rem; overflow: hidden; border: 1px solid rgba(91,65,54,.14); border-radius: 10px; background: rgba(255,253,249,.76); box-shadow: var(--shadow-small); }
.watch-thrifting { background: linear-gradient(145deg,rgba(239,232,219,.82),rgba(255,253,249,.76)); }
.watch-collection-heading { margin-bottom: .55rem; display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.watch-collection-heading .eyebrow { margin-bottom: .12rem; }
.watch-collection-heading h2 { margin: 0; font-size: clamp(1.45rem,2.2vw,2rem); line-height: 1; }
.watch-video-carousel { display: flex; gap: .7rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--blush) transparent; scroll-behavior: smooth; padding: .1rem .05rem .45rem; }
.watch-channel-card { flex: 0 0 calc((100% - 1.4rem)/3.2); min-width: 188px; }
.watch-channel-card .flower-channel-copy { padding: .5rem .6rem .58rem; }
.watch-channel-card .flower-channel-copy strong { font-size: 1rem; }
.watch-channel-card .flower-channel-copy em { font-size: .66rem; -webkit-line-clamp: 1; }
.watch-channel-card .flower-channel-copy u { padding: .45rem .65rem; align-self: flex-start; border: 1px solid rgba(184,117,114,.22); border-radius: 5px; background: linear-gradient(135deg,#efd8d5,#f7e8e3); box-shadow: 0 4px 12px rgba(91,65,54,.06); color: var(--cocoa); }
.watch-channel-card:hover .flower-channel-copy u, .watch-feature-row:hover .watch-feature-copy b { border-color: rgba(184,117,114,.38); background: linear-gradient(135deg,#e9cbc8,#f4ded9); }
.watch-channel-card .flower-channel-image i { width: 38px; height: 38px; font-size: .7rem; }
.watch-coming-card { cursor: default; }
.watch-coming-card:hover { transform: none; box-shadow: 0 8px 22px rgba(91,65,54,.06); }
.watch-placeholder-art { display: block; background: linear-gradient(145deg,#efd8d5,#f8ede7); }
.watch-placeholder-art.sage { background: linear-gradient(145deg,#d8dfcf,#eff1e8); }
.watch-placeholder-art.ivory { background: linear-gradient(145deg,#efe5d8,#fffaf2); }
.watch-placeholder-art i { color: var(--blush-deep); background: rgba(255,253,249,.75); font: 1.25rem var(--serif); }
.watch-side-content { min-width: 0; display: grid; gap: .7rem; position: sticky; top: 90px; }
.watch-meal-plan-card { min-width: 0; display: grid; grid-template-columns: 112px 1fr; gap: .85rem; padding: .75rem; overflow: hidden; border: 1px solid rgba(91,65,54,.24); border-radius: 10px; background: linear-gradient(145deg,#fffaf5,#f1e5df); box-shadow: 0 9px 24px rgba(83,60,48,.09); }
.watch-meal-plan-image { min-height: 145px; overflow: hidden; border-radius: 6px; background: var(--cream); }
.watch-meal-plan-image img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: top center; }
.watch-meal-plan-card .eyebrow { margin: .15rem 0 .35rem; font-size: .55rem; }
.watch-meal-plan-card h2 { margin: 0; font-size: 1.35rem; line-height: 1.05; }
.watch-meal-plan-card h2 span { color: var(--blush-deep); }
.watch-meal-plan-card p:not(.eyebrow) { margin: .45rem 0; color: var(--cocoa-soft); font: italic .72rem/1.45 var(--serif); }
.watch-meal-plan-card div > a { color: var(--blush-deep); font-size: .68rem; font-weight: 700; text-decoration: none; }

.meal-plans-page { padding: 1rem clamp(1rem,3vw,3rem) 1.25rem; background: radial-gradient(circle at 85% 10%,rgba(220,169,164,.13),transparent 30%),linear-gradient(135deg,#fdf9f3,#f6eee4); }
.meal-plan-welcome { display: grid; grid-template-columns: minmax(0,2.05fr) minmax(300px,.95fr); align-items: stretch; gap: .9rem; }
.meal-plan-intro, .meal-plan-scripture, .meal-plan-feature, .meal-plan-archive { border: 1px solid rgba(91,65,54,.2); border-radius: 10px; background: var(--paper); box-shadow: var(--shadow-small); }
.meal-plan-intro { padding: .7rem 1.35rem; display: grid; align-content: center; text-align: center; background: linear-gradient(135deg,#fffaf4,#f1e2dc); }
.meal-plan-intro .eyebrow { margin-bottom: .3rem; }
.meal-plan-intro h1 { max-width: 720px; margin-inline: auto; font-size: clamp(2rem,3.2vw,3rem); line-height: 1; }
.meal-plan-intro > p:last-child { max-width: 680px; margin: .4rem auto 0; color: var(--cocoa-soft); font-size: .82rem; line-height: 1.4; }
.meal-plan-scripture { padding: .6rem 1.1rem; display: grid; align-content: center; text-align: center; background: linear-gradient(145deg,#f5eadf,#fffaf4); }
.meal-plan-scripture > span { color: var(--blush-deep); font-size: 1.05rem; line-height: 1; }
.meal-plan-scripture blockquote { margin: .2rem 0; color: var(--cocoa); font: italic 1.08rem/1.25 var(--serif); }
.meal-plan-scripture cite { color: var(--sage-deep); font-size: .58rem; font-style: normal; text-transform: uppercase; letter-spacing: .12em; }
.meal-plan-quote { margin: 0; }
.meal-plan-quote p { margin: 0; color: var(--cocoa-soft); font: italic 1rem/1.35 var(--serif); }
.meal-plan-quote small { color: var(--blush-deep); font-size: .52rem; font-weight: 700; text-transform: uppercase; letter-spacing: .13em; }
.meal-plan-feature { margin-top: .9rem; padding: .9rem; display: grid; grid-template-columns: minmax(310px,.9fr) minmax(0,1.1fr); gap: 1rem; }
.meal-plan-sheet { display: block; overflow: hidden; border-radius: 7px; background: var(--cream); }
.meal-plan-sheet img { width: 100%; height: min(68vh,720px); display: block; object-fit: contain; }
.meal-plan-details { padding: clamp(.5rem,2vw,1.5rem); align-self: center; }
.meal-plan-details h2 { margin: .1rem 0 .75rem; font-size: clamp(2rem,3.2vw,3rem); }
.meal-plan-details > p { color: var(--cocoa-soft); }
.meal-plan-groups { display: grid; grid-template-columns: repeat(3,1fr); gap: .55rem; margin: 1rem 0; }
.meal-plan-groups section { padding: .75rem; border: 1px solid var(--taupe-soft); border-radius: 6px; background: var(--ivory); }
.meal-plan-groups h3 { margin: 0 0 .35rem; font-size: 1rem; color: var(--blush-deep); }
.meal-plan-groups p { margin: 0; color: var(--cocoa-soft); font-size: .7rem; line-height: 1.5; }
.meal-plan-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.1rem; }
.meal-plan-archive { margin-top: .9rem; padding: 1rem 1.2rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.meal-plan-archive h2 { margin: 0; font-size: 1.45rem; }
.meal-plan-archive p { margin: .25rem 0 0; color: var(--cocoa-soft); font-size: .78rem; }
.meal-plan-archive span { color: var(--blush-deep); font: italic 1rem var(--serif); }
.meal-plan-library { margin-top: .9rem; padding: 1rem 1.15rem 1.15rem; border: 1px solid rgba(91,65,54,.2); border-radius: 10px; background: #f7efe6; box-shadow: var(--shadow-small); }
.meal-plan-library-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.meal-plan-library-heading .eyebrow { margin-bottom: .15rem; }
.meal-plan-library-heading h2 { margin: 0; font-size: 1.6rem; }
.meal-plan-library-heading p:not(.eyebrow) { margin: .25rem 0 0; color: var(--cocoa-soft); font-size: .78rem; }
.meal-plan-heading-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 1rem; }
.meal-plan-heading-actions > a { color: var(--blush-deep); font: 700 .78rem var(--sans); text-decoration: none; }
.meal-plan-carousel-controls { display: flex; align-items: center; gap: .45rem; }
.meal-plan-carousel-controls button { width: 34px; height: 34px; border: 1px solid var(--taupe-soft); border-radius: 50%; background: var(--ivory); color: var(--cocoa); cursor: pointer; }
.meal-plan-carousel-controls button:hover { background: var(--blush-soft); }
.meal-plan-carousel-controls button:disabled { opacity: .35; cursor: default; }
.meal-plan-carousel-controls span { min-width: 48px; color: var(--sage-deep); font-size: .76rem; text-align: center; }
.meal-plan-swipe-note { display: none; margin: -.25rem 0 .65rem; color: var(--sage-deep); font: italic .76rem var(--serif); }
.meal-plan-library-scroll { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; gap: 0; overflow-x: auto; padding: .1rem 0 .75rem; scroll-snap-type: x mandatory; scrollbar-width: none; }
.meal-plan-library-scroll::-webkit-scrollbar { display: none; }
.meal-plan-library-card { width: min(82%,900px); justify-self: center; overflow: hidden; scroll-snap-align: center; display: grid; grid-template-columns: minmax(225px,.78fr) minmax(0,1.22fr); border: 1px solid var(--taupe-soft); border-radius: 8px; background: var(--ivory); color: var(--cocoa); transition: transform .18s, box-shadow .18s; }
.meal-plan-library-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-small); }
.meal-plan-library-card > img { width: 100%; height: 100%; max-height: 440px; display: block; object-fit: contain; background: #fbf7f1; border-right: 1px solid var(--taupe-soft); }
.meal-plan-card-copy { min-width: 0; display: flex; flex-direction: column; }
.meal-plan-card-copy > header { padding: .7rem .8rem .55rem; border-bottom: 1px solid var(--taupe-soft); background: linear-gradient(135deg,var(--blush-soft),#fbf4eb); }
.meal-plan-library-card h3 { margin: .12rem 0 0; font-size: 1.35rem; }
.meal-plan-library-card small { color: var(--sage-deep); font-size: .72rem; letter-spacing: .09em; text-transform: uppercase; }
.past-meal-groups { padding: .65rem .8rem .75rem; display: grid; gap: .5rem; }
.past-meal-groups p { margin: 0; color: var(--cocoa-soft); font-size: .86rem; line-height: 1.48; }
.past-meal-groups b { display: block; margin-bottom: .12rem; color: var(--blush-deep); font: 600 .98rem var(--serif); }
.watch-library { padding: 1.4rem clamp(1rem,4vw,4rem) 2rem; background: rgba(255,253,249,.78); border-top: 1px solid rgba(91,65,54,.09); }
.watch-library-inner { max-width: 1380px; margin: 0 auto; }
.watch-library-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.watch-library-heading h2 { margin: 0; font-size: clamp(2rem,3.4vw,3.35rem); line-height: 1.02; }
.watch-library-heading .search-box { width: min(100%,390px); }
.watch-filter-bar { margin: .9rem 0 .55rem; padding: .4rem; overflow-x: auto; display: flex; gap: .3rem; border: 1px solid var(--taupe-soft); border-radius: 9px; background: var(--ivory); scrollbar-width: none; }
.watch-filter-bar::-webkit-scrollbar { display: none; }
.watch-filter-bar .filter-chip { min-height: 34px; font-size: .72rem; }
.watch-library-status { margin: .55rem 0; color: var(--cocoa-soft); font-size: .72rem; }
.watch-video-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.watch-card { display: flex; flex-direction: column; }
.watch-card .card-art { width: 100%; height: auto; aspect-ratio: 16/9; padding: 0; border: 0; border-radius: 0; text-align: left; }
.watch-card .card-body { flex: 1; padding: .8rem; display: flex; flex-direction: column; }
.watch-card .card-meta { font-size: .65rem; }
.watch-card .card-body h3 { margin-bottom: .35rem; font-size: 1.2rem; }
.watch-card .card-body p { margin: 0; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: .76rem; line-height: 1.42; }
.watch-card .card-footer { margin-top: auto; padding-top: .6rem; }
.watch-card .card-open { font-size: .82rem; }
.watch-empty { padding: 3.5rem 1rem; text-align: center; }
.watch-empty span { color: var(--blush-deep); font: 2.6rem var(--serif); }
.watch-empty h3 { margin: .4rem 0; font-size: 1.7rem; }
.watch-empty p { margin: 0; color: var(--cocoa-soft); }

.site-footer { padding: 2.2rem clamp(1.2rem,6vw,6rem) 1rem; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; background: linear-gradient(90deg,#eadccf,#f6eee5 50%,#e7d8ca); }
.home-footer { margin: 0 clamp(1rem,3vw,3rem) 1rem; padding-top: 1.25rem; padding-bottom: .65rem; row-gap: 1rem; border: 1px solid rgba(184,117,114,.2); border-radius: 14px; background: var(--banner-blush); }
.footer-logo { justify-self: start; }
.footer-logo .brand-mark { width: 52px; height: 52px; }
.footer-logo strong { font-size: 1.4rem; }
.footer-logo small { font-size: .55rem; }
.footer-socials { display: flex; align-items: center; justify-content: center; gap: .65rem; }
.footer-socials button,.footer-socials a { width: 38px; height: 38px; padding: 0; display: grid; place-items: center; border: 1px solid var(--taupe-soft); border-radius: 50%; background: var(--paper); color: var(--cocoa-soft); cursor: pointer; transition: color .2s, border-color .2s, transform .2s; }
.footer-socials button:hover,.footer-socials a:hover { color: var(--blush-deep); border-color: var(--blush); transform: translateY(-2px); }
.footer-socials svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.footer-signature { justify-self: end; display: flex; align-items: center; gap: .6rem; color: var(--sage-deep); }
.footer-signature > span { font-size: 2rem; }
.footer-signature em { color: var(--cocoa); font: italic 1.25rem var(--serif); }
.footer-signature b { color: var(--blush-deep); font-weight: 400; }
.footer-copyright { grid-column: 1/-1; margin: .35rem 0 0; padding-top: .8rem; border-top: 1px solid rgba(91,65,54,.1); color: #9a8980; text-align: center; font-size: .62rem; }
.footer-policy-links a { color: var(--cocoa-soft); font-weight: 700; text-decoration: none; }
.footer-policy-links a:hover { color: var(--blush-deep); text-decoration: underline; text-underline-offset: 3px; }

.modal-close { width: 39px; height: 39px; border: 1px solid var(--taupe-soft); border-radius: 50%; background: transparent; color: var(--cocoa); cursor: pointer; font: 300 1.6rem/1 var(--sans); }

.content-modal { width: min(94vw,980px); max-height: 92dvh; padding: 0; border: 0; border-radius: 12px; color: var(--ink); background: var(--paper); box-shadow: 0 30px 100px rgba(45,33,28,.35); overflow: auto; }
.content-modal::backdrop { background: rgba(45,33,28,.56); backdrop-filter: blur(3px); }
.modal-close { position: sticky; float: right; top: 1rem; right: 1rem; z-index: 5; margin: 1rem; background: rgba(255,253,249,.92); }
.modal-visual { position: relative; min-height: 385px; display: grid; place-items: center; overflow: hidden; }
.modal-visual .card-art { position: absolute; inset: 0; height: auto; }
.video-player { position: relative; z-index: 2; width: 75%; max-width: 540px; padding: 2rem; border: 1px solid rgba(255,255,255,.5); border-radius: 9px; color: white; background: rgba(62,48,42,.76); backdrop-filter: blur(8px); text-align: center; box-shadow: var(--shadow); }
.video-embed-shell { position: relative; z-index: 2; width: min(88%,760px); aspect-ratio: 16/9; overflow: hidden; border: 1px solid rgba(255,255,255,.72); border-radius: 10px; background: #2f2521; box-shadow: var(--shadow); }
.video-embed-shell iframe { width: 100%; height: 100%; display: block; border: 0; }
.video-player > span { width: 68px; height: 68px; margin: 0 auto 1rem; display: grid; place-items: center; border: 1px solid white; border-radius: 50%; font-size: 1.1rem; }
.video-player strong { display: block; font: 500 1.7rem var(--serif); }
.video-player p { margin: .4rem 0 1.2rem; color: #eadfd8; font-size: .75rem; }
.player-bar { height: 4px; border-radius: 3px; background: rgba(255,255,255,.24); overflow: hidden; }
.player-bar i { display: block; width: 34%; height: 100%; background: var(--blush); }
.modal-copy { padding: 2rem clamp(1.5rem,5vw,4rem) 3rem; }
.modal-copy h2 { margin: 0 0 .8rem; font-size: clamp(2rem,4vw,3.4rem); }
.modal-copy > p { max-width: 720px; color: var(--cocoa-soft); }
.modal-details { margin-top: 1.5rem; padding: 1.1rem; display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; background: var(--cream); border-radius: 6px; }
.modal-details span { color: var(--cocoa-soft); font-size: .68rem; }
.modal-details strong { display: block; margin-top: .15rem; color: var(--cocoa); font: 600 .85rem var(--serif); }
.modal-actions { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .65rem; }
.toast { position: fixed; z-index: 110; left: 50%; bottom: 1.5rem; transform: translate(-50%,120px); opacity: 0; padding: .75rem 1.1rem; border-radius: 5px; background: var(--cocoa); color: white; box-shadow: var(--shadow); font-size: .75rem; transition: .3s; }
.toast.show { transform: translate(-50%,0); opacity: 1; }

.reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: none; }

/* Contact */
.contact-page { padding: 2rem clamp(1rem,4vw,4rem) 2.6rem; background: linear-gradient(180deg,#fbf5ee,#f6eee5); }
.contact-welcome { width: min(1040px,100%); margin: 0 auto; display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); overflow: hidden; border: 1px solid var(--taupe-soft); border-radius: 12px; background: var(--paper); box-shadow: var(--shadow-small); }
.contact-intro { padding: clamp(2rem,4vw,3.4rem); display: flex; flex-direction: column; justify-content: center; background: linear-gradient(145deg,#f2dfda,#f8eee7); }
.contact-intro h1 { margin: 0 0 .7rem; font-size: clamp(2.35rem,5vw,4.1rem); line-height: .98; }
.contact-intro > p:not(.eyebrow) { margin: 0; color: var(--cocoa-soft); line-height: 1.75; }
.contact-intro blockquote { margin: 2rem 0 .35rem; padding-top: 1.25rem; border-top: 1px solid rgba(91,65,54,.16); color: var(--cocoa); font: italic 1.35rem/1.35 var(--serif); }
.contact-intro cite { color: var(--sage-deep); font: normal 700 .6rem var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.contact-form { padding: clamp(1.5rem,4vw,3rem); display: grid; gap: 1rem; }
.contact-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.contact-form label { display: grid; gap: .42rem; color: var(--cocoa); font-size: .73rem; font-weight: 700; letter-spacing: .02em; }
.contact-form input,.contact-form select,.contact-form textarea { width: 100%; padding: .78rem .85rem; border: 1px solid var(--taupe-soft); border-radius: 6px; outline: 0; background: #fffdf9; color: var(--cocoa); font: .86rem/1.5 var(--sans); }
.contact-form textarea { min-height: 130px; resize: vertical; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color: var(--sage); box-shadow: 0 0 0 3px rgba(143,155,130,.14); }
.contact-form .contact-copy { display: flex; align-items: center; gap: .55rem; font-weight: 500; }
.contact-copy input { width: 16px; height: 16px; accent-color: var(--sage-deep); }
.contact-form button { justify-self: start; }
.contact-form > small { color: #8f7c72; font-size: .65rem; line-height: 1.5; }
.contact-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.contact-footer { margin-top: 0; }

/* Policies */
.policy-page { padding: 1.35rem clamp(.8rem,3vw,3rem) 2.2rem; background: linear-gradient(180deg,#fbf5ee,#f6eee5); }
.policy-hero { width: min(1040px,100%); margin: 0 auto .85rem; padding: 1.55rem clamp(1.3rem,4vw,3rem); display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 1.4rem; border: 1px solid rgba(184,117,114,.25); border-radius: 12px; background: linear-gradient(120deg,#f3e2dc,#faf4ed); box-shadow: var(--shadow-small); }
.policy-hero h1 { margin: .15rem 0 .3rem; font-size: clamp(2.15rem,4vw,3.45rem); line-height: 1; }
.policy-hero p { margin: 0; max-width: 660px; color: var(--cocoa-soft); line-height: 1.65; }
.policy-hero-heart { color: var(--blush-deep); font: 3rem var(--serif); }
.policy-shell { width: min(1040px,100%); margin: 0 auto; padding: clamp(1.3rem,3.2vw,2.6rem); border: 1px solid var(--taupe-soft); border-radius: 12px; background: rgba(255,253,249,.8); box-shadow: var(--shadow-small); }
.policy-updated { margin: 0 0 1.3rem; padding-bottom: .85rem; border-bottom: 1px solid rgba(91,65,54,.12); color: var(--sage-deep); font-size: .67rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.policy-section { margin-top: 1.45rem; }
.policy-section:first-of-type { margin-top: 0; }
.policy-section h2 { margin: 0 0 .45rem; font-size: clamp(1.3rem,2.4vw,1.75rem); }
.policy-section h3 { margin: 1rem 0 .35rem; font-size: 1.02rem; }
.policy-section p,.policy-section li { color: var(--cocoa-soft); font-size: .79rem; line-height: 1.72; }
.policy-section p { margin: .4rem 0; }
.policy-section ul { margin: .45rem 0 .5rem; padding-left: 1.15rem; }
.policy-section a { color: var(--blush-deep); font-weight: 700; }
.policy-note { margin-top: 1.5rem; padding: 1rem 1.15rem; border-left: 3px solid var(--sage); border-radius: 0 7px 7px 0; background: #f0eee5; }
.policy-jump { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .9rem; }
.policy-jump a { padding: .4rem .7rem; border: 1px solid rgba(91,65,54,.16); border-radius: 999px; color: var(--cocoa-soft); background: rgba(255,255,255,.48); font-size: .65rem; font-weight: 700; text-decoration: none; }
.policy-jump a:hover { border-color: var(--blush); color: var(--blush-deep); }

@media (max-width: 720px) {
  .contact-page { padding: 1rem .75rem 1.6rem; }
  .contact-welcome { grid-template-columns: 1fr; }
  .contact-intro { padding: 1.65rem 1.35rem; }
  .contact-intro blockquote { margin-top: 1.2rem; }
  .contact-form { padding: 1.4rem 1.2rem; }
  .contact-field-row { grid-template-columns: 1fr; }
  .contact-form button { width: 100%; }
  .policy-page { padding: .8rem .7rem 1.5rem; }
  .policy-hero { padding: 1.25rem; grid-template-columns: 1fr; gap: .3rem; }
  .policy-hero-heart { display: none; }
  .policy-shell { padding: 1.25rem; }
}

@media (max-width: 1120px) {
  .site-header { padding-left: 1rem; padding-right: 1rem; }
  .nav-link { padding-left: .36rem; padding-right: .36rem; font-size: .82rem; }
  .home-hero { padding: 0; display: block; }
  .content-grid { grid-template-columns: repeat(3,1fr); }
  .room-grid { grid-template-columns: repeat(2,1fr); }
  .recipe-grid { grid-template-columns: repeat(2,1fr); }
  .hero { grid-template-columns: minmax(0,1.55fr) minmax(330px,.9fr); gap: .8rem; padding-left: 1rem; padding-right: 1rem; }
  .weekly-video { grid-template-columns: 105px 1fr; gap: .65rem; }
  .weekly-video em { display: none; }
  .hero-scene { height: 430px; }
  .scene-window { height: 175px; }
  .content-card.featured { grid-row: span 1; }
  .content-card.featured .card-art { height: 188px; }
  .flower-hero { grid-template-columns: minmax(0,1fr) minmax(370px,.85fr); }
  .flower-hero-copy { padding-left: 2.5rem; padding-right: 2.5rem; }
  .watch-hero-shell { grid-template-columns: minmax(0,.62fr) minmax(480px,1.38fr); gap: 1.5rem; }
  .watch-video-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 1050px) {
  .home-layout { grid-template-columns: 1fr; }
  .home-hero .hero-feature { min-height: 0; }
  .home-sidebar { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-sidebar .weekly-panel { grid-column: 1/-1; }
  .watch-top-layout { grid-template-columns: 1fr; }
  .watch-sidebar-stack { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .watch-content-layout { grid-template-columns: 1fr; }
  .watch-side-content { position: static; }
  .meal-plan-welcome, .meal-plan-feature { grid-template-columns: 1fr; }
  .meal-plan-sheet img { height: auto; max-height: 760px; }
  .watch-feature-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
  .watch-feature-row { border: 1px solid var(--taupe-soft); border-radius: 8px; }
  .watch-feature-row:last-child { border-bottom: 1px solid var(--taupe-soft); }
  .flower-top-layout { grid-template-columns: 1fr; }
  .flower-feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  .site-header { height: 72px; padding: 0 1rem; }
  .desktop-nav { display: none; }
  .menu-button { display: grid; }
  .mobile-nav { top: 71px; }
  .hero { min-height: auto; grid-template-columns: 1fr; padding: 1rem; }
  .home-page .home-hero { padding: 0; }
  .hero-feature { min-height: 0; }
  .hero-feature > img { min-height: 0; }
  .hero-feature-footer { align-items: flex-start; }
  .weekly-panel { max-width: 100%; min-height: 0; justify-self: stretch; }
  .hero-scene { justify-self: center; height: 410px; max-width: 550px; }
  .content-grid { grid-template-columns: repeat(2,1fr); }
  .section-heading { align-items: stretch; flex-direction: column; }
  .search-box { width: 100%; }
  .filters { align-items: stretch; flex-direction: column; }
  .series-select { height: 42px; border-left: 0; border-top: 1px solid var(--taupe-soft); }
  .signup-vignette { min-height: 0; display: block; }
  .signup-vignette-image { width: 100%; height: auto; }
  .signup-center { width: 100%; padding: 1.8rem 1.2rem; border: 0; border-top: 1px solid var(--taupe-soft); border-radius: 0; box-shadow: none; }
  .site-footer { grid-template-columns: 1fr auto; }
  .home-footer { margin: 0 1rem 1rem; }
  .footer-signature { grid-column: 1/-1; justify-self: center; }
  .family-grid { grid-template-columns: 1fr; }
  .home-main .family-grid { grid-template-columns: 1fr; }
  .home-main .family-copy > p:not(.eyebrow) { min-height: 0; }
  .flower-hero { grid-template-columns: 1fr; }
  .flower-hero-photo { min-height: 390px; background-size: 180% auto; }
  .flower-hero-copy { max-width: none; padding: 3.2rem 1.5rem 4rem; text-align: center; }
  .flower-hero-actions { justify-content: center; }
  .flower-welcome { grid-template-columns: 1fr; gap: 1.3rem; }
  .bloom-feature { grid-template-columns: 1fr; }
  .bloom-feature > img { min-height: 390px; max-height: 460px; }
  .flower-path-grid { grid-template-columns: 1fr; }
  .watch-hero-shell { grid-template-columns: 1fr; }
  .watch-hero-copy { text-align: center; }
  .watch-hero-copy h1, .watch-hero-copy > p:not(.eyebrow) { margin-left: auto; margin-right: auto; }
  .watch-library-heading { align-items: stretch; flex-direction: column; }
  .watch-library-heading .search-box { width: 100%; }
  .flower-intro-strip { grid-template-columns: auto 1fr; }
  .flower-intro-strip > p { grid-column: 1/-1; padding: .8rem 0 0; border-top: 1px solid rgba(101,113,93,.23); border-left: 0; }
  .flower-bottom-layout { grid-template-columns: 1fr; }
  .flower-bottom-layout .signup-center { width: 100%; }
  .flower-coloring-feature { max-height: none; min-height: 220px; }
  .flower-top-coloring { min-height: 270px; }
  .flower-top-coloring::after { background: linear-gradient(90deg,rgba(251,244,238,.94) 0%,rgba(251,244,238,.82) 43%,rgba(251,244,238,.28) 68%,rgba(251,244,238,.04) 88%,rgba(251,244,238,0) 100%); }
  .flower-top-coloring > img { object-position: 62% center; }
  .flower-top-coloring > div { width: 67%; }
}

@media (max-width: 680px) {
  .home-sidebar { grid-template-columns: 1fr; }
  .home-sidebar .weekly-panel { grid-column: auto; }
  .home-scripture { grid-template-columns: 1fr; gap: .8rem; }
  .home-scripture > div { grid-template-columns: 1fr; grid-template-rows: auto; text-align: center; }
  .home-scripture blockquote { grid-column: 1; grid-row: auto; margin-top: .65rem; padding: .65rem 0 0; border-top: 1px solid rgba(101,113,93,.24); border-left: 0; }
  .scripture-flourish, .scripture-heart { display: none; }
  .watch-feature-list { display: flex; }
  .watch-sidebar-stack { grid-template-columns: 1fr; }
  .watch-content-layout { padding-left: .75rem; padding-right: .75rem; }
  .watch-collection { padding: .75rem; }
  .watch-collection-heading { align-items: center; }
  .watch-collection-heading h2 { font-size: 1.35rem; }
  .watch-channel-card { flex-basis: 76%; min-width: 220px; }
  .watch-feature-row { border: 0; border-bottom: 1px solid var(--taupe-soft); border-radius: 0; }
  .watch-feature-row:last-child { border-bottom: 0; }
}

@media (max-width: 560px) {
  .flower-top-coloring { min-height: 300px; }
  .flower-top-coloring::after { background: linear-gradient(90deg,rgba(251,244,238,.94) 0%,rgba(251,244,238,.84) 51%,rgba(251,244,238,.34) 77%,rgba(251,244,238,.08) 100%); }
  .flower-top-coloring > img { object-position: 68% center; }
  .flower-top-coloring > div { width: 76%; padding: 1.15rem; }
  .brand strong { font-size: 1.05rem; }
  .brand small { font-size: .51rem; }
  .brand-mark { width: 37px; height: 37px; }
  .header-actions { gap: 0; }
  .icon-button, .menu-button { width: 38px; height: 38px; }
  .saved-trigger.icon-button { display: none; }
  .hero { padding-top: 1rem; }
  .hero-feature > img { min-height: 0; }
  .hero-feature-footer { min-height: 0; flex-direction: column; align-items: stretch; }
  .brand-banner img { height: 350px; object-position: center center; }
  h1 { font-size: clamp(2.65rem,13vw,4rem); }
  .hero-intro { font-size: .93rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .weekly-panel { padding: .8rem; }
  .weekly-heading { align-items: flex-start; }
  .weekly-heading h2 { font-size: 1.35rem; }
  .weekly-video { grid-template-columns: 102px 1fr; gap: .65rem; }
  .weekly-thumb { height: 68px; }
  .weekly-video em { display: none; }
  .gentle-note { margin-top: 2.2rem; }
  .hero-scene { height: 350px; border-width: 7px; }
  .scene-window { left: 10%; right: 10%; top: 12%; height: 145px; border-width: 8px; }
  .scene-shelf { top: 61%; }
  .scene-counter { height: 95px; }
  .bread { width: 85px; height: 42px; }
  .mug { left: 42%; width: 44px; height: 44px; }
  .book { display: none; }
  .scene-caption { top: 14px; padding: .55rem .75rem; }
  .scene-caption strong { font-size: .78rem; }
  .library, .rooms { padding-left: 1rem; padding-right: 1rem; }
  .section-heading h2 { font-size: 2.25rem; }
  .search-box kbd { display: none; }
  .content-grid { grid-template-columns: 1fr; }
  .recipe-grid { grid-template-columns: 1fr; }
  .recipe-image { height: 230px; }
  .content-card.featured { grid-column: span 1; }
  .card-art, .content-card.featured .card-art { height: 220px; }
  .room-grid { grid-template-columns: 1fr; }
  .room-card { min-height: 220px; }
  .letter-form > div { flex-direction: column; gap: .5rem; }
  .letter-form input, .letter-form button { min-height: 45px; border-radius: 22px; }
  .site-footer { grid-template-columns: 1fr; padding-left: 1rem; padding-right: 1rem; }
  .meal-plan-groups { grid-template-columns: 1fr; }
  .meal-plan-archive { align-items: flex-start; flex-direction: column; }
  .meal-plan-library-heading { align-items: flex-start; flex-direction: column; }
  .meal-plan-heading-actions { width: 100%; justify-content: space-between; }
  .meal-plan-swipe-note { display: block; }
  .meal-plan-library-scroll { grid-auto-columns: 100%; }
  .meal-plan-library-card { width: min(100%,680px); grid-template-columns: 1fr; }
  .meal-plan-library-card > img { height: auto; max-height: 400px; border-right: 0; border-bottom: 1px solid var(--taupe-soft); }
  .home-footer { margin: 0 .75rem .75rem; border-radius: 10px; }
  .home-scripture { padding: 1rem .95rem; }
  .footer-logo, .footer-signature { justify-self: center; }
  .footer-socials { grid-row: auto; }
  .footer-copyright { grid-column: 1; }
  .flower-hero-photo { min-height: 310px; }
  .flower-hero-copy h1 { font-size: clamp(3rem,15vw,4.4rem); }
  .flower-hero-actions { align-items: stretch; flex-direction: column; }
  .flower-hero-actions .button, .flower-hero-actions .text-button { width: 100%; }
  .bloom-feature > img { min-height: 300px; }
  .bloom-copy { padding: 2.5rem 1.2rem 3rem; }
  .modal-visual { min-height: 290px; }
  .video-player { width: 85%; padding: 1.3rem; }
  .video-embed-shell { width: 94%; }
  .video-player strong { font-size: 1.25rem; }
  .modal-details { grid-template-columns: 1fr; }
  .watch-top-layout { padding: .75rem; }
  .watch-banner-card > img { height: auto; }
  .watch-banner-copy { padding: 1.1rem; }
  .watch-newest-panel { padding: .9rem; }
  .watch-video-grid { grid-template-columns: 1fr; }
  .flower-top-layout { padding: .75rem; }
  .flower-banner-card { grid-template-rows: auto auto; }
  .flower-banner-card > img { min-height: 220px; height: 220px; }
  .flower-banner-copy { padding: 1.15rem; }
  .flower-video-row { grid-template-columns: 102px 1fr; }
  .flower-video-row em { display: none; }
  .flower-intro-strip { margin-left: .75rem; margin-right: .75rem; grid-template-columns: 1fr; text-align: center; }
  .flower-intro-strip > span { margin: 0 auto; }
  .flower-intro-strip > p { grid-column: 1; }
  .flower-collection { margin-left: .75rem; margin-right: .75rem; padding: .95rem; }
  .flower-collection-heading { align-items: flex-start; flex-direction: column; gap: .65rem; }
  .flower-collection-heading > p { text-align: left; }
  .flower-feature-grid { grid-template-columns: 1fr; }
  .flower-collection-heading { align-items: center; flex-direction: row; }
  .flower-collection-heading > div:first-child { min-width: 0; }
  .flower-carousel-controls { flex: 0 0 auto; }
  .flower-carousel-controls button { width: 38px; height: 38px; }
  .flower-channel-card { flex-basis: 76%; min-width: 225px; }
  .flower-signup-vignette { max-height: none; }
  .flower-signup-vignette .signup-vignette-image { max-height: 220px; object-fit: cover; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Heart@Home recipe library and recipe detail */
.recipe-index-page, .recipe-detail-page { background: radial-gradient(circle at 86% 8%,rgba(220,169,164,.16),transparent 28%),linear-gradient(135deg,#fdf9f3,#f5ece1); }
.recipe-index-welcome { max-width: 1468px; margin: 0 auto; padding: .75rem 1rem; display: grid; grid-template-columns: minmax(0,1.9fr) minmax(320px,.78fr); align-items: stretch; gap: .75rem; }
.recipe-index-banner, .recipe-kitchen-helper { overflow: hidden; border: 1px solid rgba(91,65,54,.18); border-radius: 11px; background: var(--paper); box-shadow: var(--shadow-small); }
.recipe-index-banner { min-height: 385px; display: grid; grid-template-rows: minmax(255px,1fr) auto; }
.recipe-index-banner > img { width: 100%; height: 100%; min-height: 255px; max-height: 290px; display: block; object-fit: cover; object-position: center 56%; }
.recipe-index-intro { padding: .9rem 1.25rem 1rem; background: linear-gradient(100deg,#fffaf5,#f4e7df); }
.recipe-index-intro h1 { margin: .18rem 0 .4rem; font-size: clamp(2rem,3.6vw,3.45rem); line-height: .95; }
.recipe-index-intro > p:last-child { max-width: 760px; margin: 0; color: var(--cocoa-soft); font: italic .92rem/1.5 var(--serif); }
.recipe-kitchen-helper { display: grid; grid-template-rows: 115px 1fr; background: linear-gradient(145deg,#fffaf5,#eee8dc); }
.recipe-helper-photo { overflow: hidden; border-bottom: 1px solid rgba(91,65,54,.13); }
.recipe-helper-photo img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: left 24%; }
.recipe-helper-copy { padding: .9rem 1.15rem 1rem; display: flex; flex-direction: column; justify-content: center; }
.recipe-helper-copy h2 { margin: .12rem 0 .55rem; font-size: clamp(1.7rem,2.3vw,2.25rem); line-height: 1; }
.recipe-helper-copy dl { margin: 0; display: grid; gap: .22rem; }
.recipe-helper-copy dl > div { padding: .27rem .4rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px dotted rgba(91,65,54,.24); font-size: .74rem; }
.recipe-helper-copy dt { color: var(--cocoa-soft); }
.recipe-helper-copy dd { margin: 0; color: var(--sage-deep); font-weight: 750; }
.recipe-helper-copy blockquote { margin: .6rem 0 .1rem; color: var(--blush-deep); font: italic .9rem/1.35 var(--serif); text-align: center; }
.recipe-helper-copy cite { color: var(--cocoa-soft); font-size: .58rem; font-style: normal; letter-spacing: .12em; text-align: center; text-transform: uppercase; }
.recipe-collection { padding: .85rem clamp(1rem,7vw,7rem) 3rem; }
.recipe-collection-heading { max-width: 1180px; margin: 0 auto 1.4rem; display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.recipe-collection-heading h2 { margin: 0; font-size: clamp(2rem,4vw,3.5rem); }
.recipe-collection-heading > span { color: var(--sage-deep); font-size: .78rem; }
.recipe-gallery-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; align-items: stretch; }
.recipe-gallery-card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(91,65,54,.2); border-radius: 10px; background: var(--paper); box-shadow: var(--shadow-small); color: inherit; text-decoration: none; }
.recipe-gallery-image { position: relative; aspect-ratio: 16/9; overflow: hidden; }
.recipe-gallery-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.recipe-gallery-image span { position: absolute; top: .65rem; left: .65rem; padding: .35rem .58rem; border-radius: 99px; background: rgba(255,253,249,.93); color: var(--sage-deep); text-transform: uppercase; letter-spacing: .1em; font-size: .58rem; font-weight: 800; }
.recipe-gallery-copy { flex: 1; padding: .85rem; display: flex; flex-direction: column; background: linear-gradient(145deg,#fffaf4,#f2e4da); }
.recipe-gallery-copy .eyebrow { margin-bottom: .3rem; font-size: .6rem; }
.recipe-gallery-copy h3 { margin: 0 0 .4rem; font-size: clamp(1.3rem,1.8vw,1.65rem); line-height: 1.02; }
.recipe-gallery-copy > p:not(.eyebrow) { margin: 0; color: var(--cocoa-soft); font-size: .76rem; line-height: 1.45; }
.recipe-gallery-copy strong { margin-top: auto; padding-top: .6rem; color: var(--blush-deep); font-size: .7rem; }
.recipe-gallery-card:hover .recipe-gallery-copy h3 { color: var(--blush-deep); }
.recipe-breadcrumb { max-width: 1240px; margin: 0 auto; padding: 1.4rem 1.2rem; display: flex; gap: .65rem; color: var(--sage-deep); font-size: .76rem; }
.recipe-breadcrumb a { color: var(--blush-deep); }
.recipe-detail-hero { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); overflow: hidden; border: 1px solid rgba(91,65,54,.2); border-radius: 12px; background: var(--paper); box-shadow: var(--shadow); }
.recipe-detail-heading { padding: clamp(2.3rem,5vw,5rem); display: flex; flex-direction: column; justify-content: center; background: linear-gradient(145deg,#fffaf4,#f0dfd5); }
.recipe-detail-heading h1 { font-size: clamp(3.2rem,6vw,6rem); }
.recipe-detail-heading h1 em { display: block; }
.recipe-detail-heading > p:not(.eyebrow) { color: var(--cocoa-soft); }
.recipe-detail-hero > img { width: 100%; height: 100%; min-height: 530px; display: block; object-fit: cover; }
.recipe-quick-facts { margin-top: 1.5rem; padding-top: 1.2rem; display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; border-top: 1px solid rgba(91,65,54,.12); }
.recipe-quick-facts small { display: block; color: var(--sage-deep); text-transform: uppercase; letter-spacing: .12em; font-size: .6rem; }
.recipe-quick-facts strong { font: 600 .9rem var(--serif); }
.recipe-watch-card, .recipe-card-feature { max-width: 1240px; margin: 1.2rem auto 0; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); overflow: hidden; border: 1px solid rgba(91,65,54,.18); border-radius: 12px; background: var(--paper); box-shadow: var(--shadow-small); }
.recipe-video-shell { aspect-ratio: 16/9; background: #2f2521; }
.recipe-video-shell iframe { width: 100%; height: 100%; display: block; border: 0; }
.recipe-watch-copy, .recipe-card-actions { padding: clamp(1.8rem,4vw,3.4rem); display: flex; flex-direction: column; justify-content: center; }
.recipe-watch-copy h2, .recipe-card-actions h2 { margin: 0; font-size: clamp(2rem,3.5vw,3.3rem); line-height: 1.04; }
.recipe-watch-copy > p:not(.eyebrow), .recipe-card-actions > p:not(.eyebrow) { color: var(--cocoa-soft); }
.recipe-watch-copy a { color: var(--blush-deep); font-size: .82rem; font-weight: 700; }
.recipe-card-feature { grid-template-columns: minmax(310px,.72fr) minmax(0,1.28fr); }
.recipe-card-preview { max-height: 610px; overflow: hidden; background: var(--cream); }
.recipe-card-preview img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: top center; }
.recipe-card-actions { background: linear-gradient(135deg,#f6ebe4,#fffaf3); }
.recipe-card-actions > div { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: .7rem; }
.recipe-card-actions .button { text-decoration: none; }
.written-recipe { max-width: 1240px; margin: 0 auto 1.2rem; padding: clamp(1.4rem,4vw,4rem); border: 1px solid rgba(91,65,54,.18); border-radius: 12px; background: var(--paper); box-shadow: var(--shadow-small); }
.recipe-detail-page > .recipe-card-feature { margin-bottom: 5rem; }
.written-recipe > header { position: relative; padding-bottom: 1.4rem; border-bottom: 1px solid var(--taupe-soft); }
.written-recipe > header h1 { max-width: 720px; margin: 0; font-size: clamp(2.4rem,4.5vw,4.4rem); line-height: 1; }
.written-recipe > header > p:not(.eyebrow) { color: var(--cocoa-soft); }
.recipe-print-button { position: absolute; right: 0; bottom: 1.5rem; padding: .65rem 1rem; border: 1px solid var(--taupe); border-radius: 4px; background: transparent; color: var(--cocoa); cursor: pointer; }
.written-recipe-grid { padding-top: 2rem; display: grid; grid-template-columns: minmax(220px,.78fr) minmax(320px,1.35fr) minmax(220px,.78fr); gap: 2rem; }
.written-recipe h3 { margin: 0 0 1rem; padding-bottom: .55rem; border-bottom: 1px solid var(--blush-soft); font-size: 1.7rem; }
.written-recipe ul, .written-recipe ol { margin: 0; padding-left: 1.25rem; }
.written-recipe li { margin-bottom: .75rem; }
.recipe-method ol { counter-reset: method; list-style: none; padding: 0; }
.recipe-method li { position: relative; padding-left: 2.5rem; }
.recipe-method li::before { counter-increment: method; content: counter(method); position: absolute; left: 0; top: -.08rem; width: 1.75rem; height: 1.75rem; display: grid; place-items: center; border-radius: 50%; background: var(--blush-deep); color: white; font: 600 .75rem var(--serif); }
.recipe-note { margin-top: 1.5rem; padding: 1rem; border-radius: 7px; background: var(--sage-soft); }
.recipe-note strong { font: italic 1.05rem var(--serif); }
.recipe-note p { margin: .45rem 0 0; font-size: .82rem; }
.recipe-tips { padding: 1.2rem; border-radius: 8px; background: #f7eee7; }
.recipe-tips h3:not(:first-child) { margin-top: 2rem; }
.written-recipe blockquote { margin: 2.5rem 0 0; padding: 1.5rem 2rem; border-left: 3px solid var(--blush); background: var(--cream); }
.written-recipe blockquote p { margin: 0; font: italic 1.05rem/1.65 var(--serif); }
.written-recipe blockquote cite { display: block; margin-top: .8rem; color: var(--sage-deep); font-size: .78rem; }
.recipe-footer { grid-template-columns: 1fr 1fr; }
.recipe-footer .footer-signature { justify-self: end; }
.recipe-toast { position: fixed; z-index: 120; left: 50%; bottom: 1.5rem; transform: translate(-50%,100px); opacity: 0; padding: .8rem 1.1rem; border-radius: 6px; background: var(--cocoa); color: white; box-shadow: var(--shadow); transition: .25s ease; font-size: .78rem; }
.recipe-toast.show { transform: translate(-50%,0); opacity: 1; }
@media (max-width: 820px) {
  .recipe-index-welcome { grid-template-columns: 1fr; }
  .recipe-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .recipe-detail-hero, .recipe-watch-card, .recipe-card-feature { grid-template-columns: 1fr; }
  .recipe-detail-hero > img { min-height: 360px; }
  .recipe-card-preview { max-height: 720px; }
  .written-recipe-grid { grid-template-columns: 1fr; }
  .recipe-print-button { position: static; }
}
@media (max-width: 560px) {
  .recipe-index-welcome { padding: .75rem; }
  .recipe-index-banner { min-height: 0; }
  .recipe-index-banner > img { min-height: 220px; height: 220px; }
  .recipe-kitchen-helper { grid-template-rows: 105px 1fr; }
  .recipe-collection-heading { align-items: flex-start; flex-direction: column; gap: .4rem; }
  .recipe-gallery-grid { grid-template-columns: 1fr; }
  .recipe-detail-page { padding: 0 .75rem; }
  .recipe-breadcrumb { padding-left: 0; }
  .recipe-quick-facts { grid-template-columns: 1fr; }
  .recipe-detail-hero > img { min-height: 270px; }
  .recipe-card-actions > div { flex-direction: column; }
  .recipe-card-actions .button { width: 100%; }
}
@media print {
  .site-header, .recipe-breadcrumb, .recipe-detail-hero, .recipe-watch-card, .recipe-card-feature, .recipe-footer, .recipe-print-button, .recipe-toast { display: none !important; }
  .recipe-detail-page { background: white; }
  .written-recipe { margin: 0; padding: 0; border: 0; box-shadow: none; }
  .written-recipe-grid { gap: 1.2rem; }
}

/* Heart2Heart gathering place */
.heart2heart-page { padding-bottom: 1.25rem; background: radial-gradient(circle at 85% 5%,rgba(220,169,164,.18),transparent 27%),linear-gradient(135deg,#fdf9f3,#f3e9df); }
.h2h-welcome { height: 405px; max-width: 1500px; margin: 0 auto; padding: .75rem 1rem; display: grid; grid-template-columns: minmax(0,1.65fr) minmax(340px,.72fr); align-items: stretch; gap: .75rem; }
.h2h-welcome-image, .h2h-featured { overflow: hidden; border: 1px solid rgba(91,65,54,.18); border-radius: 11px; background: var(--paper); box-shadow: var(--shadow-small); }
.h2h-welcome-image { min-height: 0; display: grid; grid-template-rows: minmax(0,1fr) auto; }
.h2h-banner-media { position: relative; min-height: 0; overflow: hidden; display: grid; place-items: center; background: #eaded4; isolation: isolate; }
.h2h-banner-media::before { content: ""; position: absolute; z-index: -2; inset: -24px; background: linear-gradient(rgba(255,250,245,.32),rgba(255,250,245,.32)),url("assets/heart2heart-hope-for-today-banner.png") center/cover no-repeat; filter: blur(13px); transform: scale(1.06); }
.h2h-banner-media::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(255,250,245,.18),transparent 30%,transparent 70%,rgba(255,250,245,.18)); }
.h2h-banner-media > img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; box-shadow: 0 0 24px rgba(70,48,38,.16); }
.h2h-welcome-copy { padding: .65rem 1.1rem .75rem; display: grid; grid-template-columns: minmax(0,1fr) minmax(255px,.42fr); align-items: center; gap: 1rem; color: var(--cocoa); background: linear-gradient(100deg,#fffaf5,#f4e7df); border-top: 1px solid rgba(91,65,54,.12); }
.h2h-welcome-copy .eyebrow { color: var(--sage-deep); }
.h2h-welcome-copy h1 { max-width: 680px; margin: .12rem 0 .28rem; font-size: clamp(1.55rem,2.45vw,2.3rem); line-height: 1.02; text-wrap: balance; }
.h2h-welcome-copy h1 em { color: var(--blush-deep); font-weight: 400; }
.h2h-welcome-message > p:not(.eyebrow) { max-width: 720px; margin: 0; color: var(--cocoa-soft); font-size: .82rem; line-height: 1.4; }
.h2h-featured { height: 100%; padding: 1.2rem 1.35rem; display: flex; flex-direction: column; justify-content: center; align-self: stretch; background: linear-gradient(145deg,#fffaf5,#f3dfda); }
.h2h-top-hope { min-height: 0; padding: 1.05rem 1.15rem; justify-content: flex-start; }
.h2h-top-hope .h2h-hope-heading h2 { font-size: clamp(1.65rem,2.2vw,2.2rem); }
.h2h-top-hope .h2h-hope-current { padding-top: .9rem; }
.h2h-top-hope .h2h-hope-current blockquote { margin: .45rem 0 .25rem; font-size: 1.12rem; line-height: 1.42; }
.h2h-top-hope .h2h-hope-current p { margin-top: .65rem; font-size: .8rem; line-height: 1.5; }
.h2h-featured h2 { margin: .25rem 0 .55rem; font-size: clamp(1.8rem,2.5vw,2.55rem); line-height: 1; }
.h2h-featured blockquote { margin: .25rem 0 .65rem; padding: .55rem 0 .55rem .8rem; border-left: 2px solid var(--blush-deep); color: var(--sage-deep); font: italic .98rem/1.45 var(--serif); }
.h2h-featured > p:not(.eyebrow) { margin: 0 0 .65rem; color: var(--cocoa-soft); font-size: .85rem; }
.h2h-read-button, .h2h-substack-button, .h2h-letter-card button, .h2h-letter-card a, .h2h-comment-form button, .h2h-invitation button { border: 0; background: none; color: var(--blush-deep); cursor: pointer; font: 700 .76rem var(--sans); letter-spacing: .03em; text-align: left; text-decoration: none; }
.h2h-substack-note { margin-top: .75rem; padding: .65rem; display: flex; align-items: center; gap: .65rem; border: 1px solid rgba(91,65,54,.12); border-radius: 8px; background: rgba(255,253,249,.68); }
.h2h-substack-note > span { flex: 0 0 38px; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--blush); border-radius: 50%; color: var(--blush-deep); }
.h2h-substack-note p { margin: 0; font-size: .78rem; line-height: 1.45; }
.h2h-substack-button { margin-top: .55rem; padding: .62rem .9rem; border-radius: 5px; background: var(--blush-deep); color: white; text-align: center; }
.h2h-promise { max-width: 1468px; margin: 0 auto .7rem; padding: .32rem clamp(1.2rem,4vw,3.4rem); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem; border: 1px solid rgba(91,65,54,.16); border-radius: 9px; background: linear-gradient(90deg,#efe5d8,#f8eee8,#ece6d9); text-align: center; }
.h2h-promise .eyebrow { margin-bottom: .05rem; font-size: .62rem; }
.h2h-promise > span, .h2h-promise > b { color: var(--blush-deep); font-size: 1.3rem; font-weight: 400; }
.h2h-promise h2 { margin: 0 auto .08rem; max-width: 940px; font: italic clamp(1.05rem,1.55vw,1.35rem)/1.15 var(--serif); }
.h2h-promise cite { color: var(--sage-deep); font-size: .64rem; font-style: normal; letter-spacing: .08em; }
.h2h-gathering { height: 520px; max-width: 1468px; margin: 0 auto .7rem; display: grid; grid-template-columns: minmax(0,1.65fr) minmax(340px,.72fr); align-items: stretch; gap: .75rem; }
.h2h-gathering-single { grid-template-columns: 1fr; }
.h2h-library, .h2h-conversation { border: 1px solid rgba(91,65,54,.16); border-radius: 10px; background: rgba(255,253,249,.86); box-shadow: var(--shadow-small); }
.h2h-hope-panel { padding: 1.15rem 1.2rem; border: 1px solid rgba(91,65,54,.16); border-radius: 10px; background: linear-gradient(145deg,#f5dfdc,#fbf3ea); box-shadow: var(--shadow-small); }
.h2h-hope-panel h2 { margin: .15rem 0 .45rem; font-size: clamp(1.75rem,2.5vw,2.4rem); }
.h2h-hope-panel h2 span { color: var(--blush-deep); }
.h2h-hope-intro { margin: 0; color: var(--cocoa-soft); font-size: .84rem; line-height: 1.5; }
.h2h-hope-feature { margin-top: .8rem; padding: 1rem; border: 1px solid rgba(91,65,54,.12); border-radius: 9px; background: rgba(255,253,249,.8); }
.h2h-hope-feature small { color: var(--sage-deep); font-size: .62rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.h2h-hope-feature blockquote { margin: .45rem 0 .25rem; color: var(--cocoa); font: italic 1.08rem/1.42 var(--serif); }
.h2h-hope-feature cite { color: var(--blush-deep); font-size: .62rem; font-style: normal; letter-spacing: .08em; }
.h2h-hope-feature p { margin: .65rem 0 0; color: var(--cocoa-soft); font-size: .77rem; line-height: 1.5; }
.h2h-quiet-notes { margin-top: .7rem; display: grid; }
.h2h-quiet-notes article { padding: .65rem .1rem; display: grid; grid-template-columns: 28px 1fr; gap: .55rem; border-bottom: 1px solid rgba(91,65,54,.12); }
.h2h-quiet-notes article > span { color: var(--blush); font: italic 1rem var(--serif); }
.h2h-quiet-notes strong { font: 600 1rem var(--serif); }
.h2h-quiet-notes p { margin: .18rem 0 0; color: var(--cocoa-soft); font-size: .72rem; line-height: 1.42; }
.h2h-hope-button { margin-top: .75rem; padding: .65rem .85rem; border: 1px solid rgba(91,65,54,.14); border-radius: 5px; background: rgba(255,253,249,.78); color: var(--blush-deep); cursor: pointer; font: 700 .7rem var(--sans); }
.h2h-featured-hope h2 span { color: var(--blush-deep); }
.h2h-sidebar-stack { min-width: 0; min-height: 0; height: 100%; display: grid; grid-template-rows: minmax(100px,.28fr) minmax(0,.72fr); gap: .55rem; }
.h2h-sidebar-stack .h2h-featured { height: auto; padding: .7rem .85rem; justify-content: flex-start; }
.h2h-hope-heading { display: flex; justify-content: space-between; align-items: end; gap: .6rem; padding-bottom: .45rem; border-bottom: 1px solid rgba(91,65,54,.13); }
.h2h-hope-heading .eyebrow { margin-bottom: .15rem; }
.h2h-hope-heading h2 { margin: 0; font-size: 1.45rem; }
.h2h-hope-controls { flex: 0 0 auto; display: flex; align-items: center; gap: .32rem; }
.h2h-hope-controls button { width: 27px; height: 27px; padding: 0; display: grid; place-items: center; border: 1px solid rgba(91,65,54,.18); border-radius: 50%; background: rgba(255,253,249,.72); color: var(--cocoa); cursor: pointer; }
.h2h-hope-controls span { min-width: 40px; color: var(--sage-deep); font-size: .58rem; text-align: center; }
.h2h-hope-current { padding: .55rem .15rem 0; }
.h2h-hope-current small { color: var(--sage-deep); font-size: .58rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.h2h-hope-current blockquote { margin: .25rem 0 .15rem; padding: 0; border: 0; color: var(--cocoa); font: italic .92rem/1.3 var(--serif); }
.h2h-hope-current cite { color: var(--blush-deep); font-size: .55rem; font-style: normal; letter-spacing: .07em; }
.h2h-hope-current p { margin: .35rem 0 0; color: var(--cocoa-soft); font-size: .69rem; line-height: 1.4; }
.h2h-motherhood-quote { padding: .75rem .85rem; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: .55rem; border: 1px solid rgba(184,117,114,.22); border-radius: 9px; background: linear-gradient(100deg,#f7e8e3,#fffaf4); box-shadow: var(--shadow-small); }
.h2h-motherhood-quote > span { color: var(--blush-deep); font-size: 1.15rem; }
.h2h-motherhood-quote blockquote { margin: 0; color: var(--cocoa); font: italic .82rem/1.3 var(--serif); }
.h2h-motherhood-quote cite { color: var(--sage-deep); font-size: .53rem; font-style: normal; letter-spacing: .07em; text-transform: uppercase; }
.h2h-email-signup { min-height: 0; position: relative; overflow: hidden; isolation: isolate; padding: .7rem .8rem; display: flex; align-items: center; border: 1px solid rgba(184,117,114,.2); border-radius: 9px; background: #f5dfdc; box-shadow: var(--shadow-small); }
.h2h-email-signup::before { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg,#f5dfdc 0%,rgba(245,223,220,.95) 43%,rgba(245,223,220,.3) 73%,rgba(245,223,220,0) 100%),url("assets/heart2heart-prayer.jpg") right center / auto 100% no-repeat; }
.h2h-email-signup::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(255,253,249,.13),transparent 68%); }
.h2h-signup-copy { width: 66%; }
.h2h-signup-copy .eyebrow { margin-bottom: .12rem; }
.h2h-signup-copy h2 { margin: 0; font-size: 1.25rem; }
.h2h-signup-copy > p { margin: .2rem 0 .45rem; color: var(--cocoa-soft); font-size: .67rem; line-height: 1.35; }
.h2h-email-signup .letter-form div { display: grid; grid-template-columns: 1fr auto; }
.h2h-email-signup .letter-form input { min-width: 0; padding: .48rem .55rem; border: 1px solid rgba(91,65,54,.2); border-radius: 5px 0 0 5px; background: rgba(255,253,249,.9); font-size: .65rem; }
.h2h-email-signup .letter-form button { padding: .48rem .55rem; border: 0; border-radius: 0 5px 5px 0; background: var(--blush-deep); color: white; font-size: .58rem; font-weight: 700; white-space: nowrap; }
.h2h-email-signup .letter-form small { display: block; margin-top: .2rem; color: var(--cocoa-soft); font-size: .5rem; }
.h2h-email-signup .letter-success { padding: .35rem; background: rgba(255,253,249,.72); }
.h2h-library { min-height: 0; padding: 1.15rem 1.25rem; display: flex; flex-direction: column; overflow: hidden; }
.h2h-section-heading { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,.65fr); column-gap: 1.3rem; align-items: end; padding-bottom: .48rem; border-bottom: 1px solid var(--taupe-soft); }
.h2h-section-heading .eyebrow { grid-column: 1/-1; }
.h2h-section-heading h2 { grid-column: 1/-1; margin: .08rem 0 0; text-align: center; font-size: clamp(2rem,3vw,2.75rem); line-height: .98; }
.h2h-journal-welcome { min-height: 68px; padding: .7rem .9rem; display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: .65rem; border: 1px solid rgba(184,117,114,.22); border-radius: 8px; background: linear-gradient(100deg,#f7e8e3,#fffaf4); color: var(--cocoa); text-decoration: none; }
.h2h-journal-welcome > span:first-child { color: var(--blush-deep); font-size: 1.15rem; }
.h2h-journal-welcome small, .h2h-journal-welcome strong { display: block; }
.h2h-journal-welcome small { color: var(--sage-deep); font-size: .55rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.h2h-journal-welcome strong { margin-top: .06rem; font: 600 1rem var(--serif); }
.h2h-journal-welcome:hover { border-color: var(--blush); }
.h2h-banner-welcome { width: 100%; max-width: 355px; justify-self: end; }
.h2h-letter-list { min-height: 0; padding: .35rem .55rem 0 0; display: grid; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: var(--blush) rgba(91,65,54,.07); scrollbar-width: thin; }
.h2h-letter-list::-webkit-scrollbar { width: 7px; }
.h2h-letter-list::-webkit-scrollbar-track { background: rgba(91,65,54,.06); border-radius: 999px; }
.h2h-letter-list::-webkit-scrollbar-thumb { background: var(--blush); border-radius: 999px; }
.h2h-letter-card { min-width: 0; padding: .85rem .2rem; display: grid; grid-template-columns: 1fr; gap: .8rem; border-bottom: 1px solid rgba(91,65,54,.12); background: transparent; }
.h2h-letter-card-with-image { grid-template-columns: 132px 1fr; align-items: center; }
.h2h-letter-thumb { width: 132px; aspect-ratio: 16/9; display: block; object-fit: cover; border: 1px solid rgba(91,65,54,.14); border-radius: 7px; }
.h2h-letter-card:last-child { border-bottom: 0; }
.h2h-letter-card h3 { margin: .08rem 0 .3rem; font-size: 1.5rem; }
.h2h-letter-card p:not(.eyebrow) { max-width: 690px; margin: 0 0 .45rem; color: var(--cocoa-soft); font-size: .8rem; line-height: 1.45; }
.h2h-conversation { padding: 1.15rem 1.2rem; background: linear-gradient(145deg,#f5dfdc,#fbf3ea); }
.h2h-conversation h2 { margin: .15rem 0 .45rem; font-size: clamp(1.75rem,2.5vw,2.4rem); }
.h2h-conversation-intro { color: var(--cocoa-soft); }
.h2h-comment-example { margin-top: .75rem; padding: .72rem; display: flex; gap: .65rem; border: 1px solid rgba(91,65,54,.12); border-radius: 8px; background: rgba(255,253,249,.82); }
.h2h-comment-example > span { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--sage-soft); color: var(--sage-deep); font: 700 .86rem var(--serif); }
.h2h-comment-example strong, .h2h-comment-example small { display: block; }
.h2h-comment-example small { margin-top: .1rem; color: var(--blush-deep); font-size: .64rem; }
.h2h-comment-example p { margin: .55rem 0 0; font: italic .89rem/1.5 var(--serif); }
.h2h-reply { margin-left: 1.2rem; }
.h2h-comment-form { margin-top: .8rem; }
.h2h-comment-form label { display: block; margin-bottom: .5rem; font: 600 1.05rem var(--serif); }
.h2h-comment-form textarea { width: 100%; resize: vertical; padding: .85rem; border: 1px solid rgba(91,65,54,.22); border-radius: 6px; background: #fffdf9; color: var(--cocoa); font: 1rem/1.5 var(--sans); }
.h2h-comment-form button { margin-top: .55rem; padding: .7rem 1rem; border-radius: 5px; background: var(--sage-deep); color: white; }
.h2h-comment-form small { display: block; margin-top: .5rem; color: var(--cocoa-soft); font-size: .67rem; }
.h2h-comment-success { margin-top: 1.2rem; padding: 1.2rem; border: 1px solid rgba(91,65,54,.13); border-radius: 8px; background: rgba(255,253,249,.8); text-align: center; }
.h2h-comment-success > span { color: var(--blush-deep); font-size: 1.5rem; }
.h2h-comment-success strong { display: block; margin-top: .3rem; font: 600 1.2rem var(--serif); }
.h2h-comment-success p { margin: .4rem 0 0; font-size: .78rem; }
.h2h-approved-comments { display: grid; gap: .75rem; margin: 0 0 1.1rem; }
.h2h-approved-comments:empty { display: none; }
.h2h-approved-comments h3 { margin: 0 0 .15rem; color: var(--cocoa); font: 1.35rem/1.2 var(--serif); }
.h2h-approved-comments article { padding: .9rem 1rem; border: 1px solid rgba(91,65,54,.12); border-radius: 8px; background: rgba(255,253,249,.86); }
.h2h-approved-comments article p { margin: 0; color: var(--cocoa-soft); font-size: .82rem; line-height: 1.65; white-space: pre-wrap; }
.h2h-approved-comments article small { display: block; margin-top: .45rem; color: var(--sage-deep); font-size: .64rem; font-weight: 700; }
.h2h-comment-form button:disabled { cursor: wait; opacity: .65; }
.h2h-invitation { max-width: 1468px; margin: 0 auto; padding: .85rem 1.15rem; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; border-radius: 10px; background: linear-gradient(100deg,#dca9a4,#e9c5bd); color: #4a3329; }
.h2h-invitation > span { font-size: 2rem; }
.h2h-invitation h2 { margin: .15rem 0 .25rem; font-size: clamp(1.8rem,3vw,2.8rem); }
.h2h-invitation p { margin: 0; }
.h2h-invitation button { padding: .78rem 1.1rem; border: 1px solid rgba(74,51,41,.25); border-radius: 5px; background: rgba(255,253,249,.78); color: var(--cocoa); white-space: nowrap; }
.h2h-footer { grid-template-columns: 1fr auto auto; }

/* Heart2Heart letter */
.h2h-article-page { padding: .7rem 1rem 1.25rem; background: radial-gradient(circle at 82% 4%,rgba(220,169,164,.18),transparent 25%),linear-gradient(135deg,#fdf9f3,#f3e9df); }
.h2h-article-back { width: min(100%,860px); margin: 0 auto .55rem; display: block; color: var(--sage-deep); font-size: .82rem; font-weight: 700; text-decoration: none; }
.h2h-article { width: min(100%,860px); margin: 0 auto; overflow: hidden; border: 1px solid rgba(91,65,54,.16); border-radius: 12px; background: rgba(255,253,249,.94); box-shadow: var(--shadow-small); }
.h2h-article-header { position: relative; padding: clamp(1.5rem,4vw,2.8rem) clamp(1.25rem,6vw,4.25rem) 1.45rem; border-bottom: 1px solid rgba(91,65,54,.13); background: linear-gradient(135deg,#f3e8dc,#f8e9e6 55%,#ebe8dc); text-align: center; }
.h2h-article-header .eyebrow { color: var(--sage-deep); }
.h2h-article-heart { display: block; margin: .2rem auto -.15rem; color: var(--blush-deep); font-size: 1.5rem; }
.h2h-article-header h1 { margin: 0; color: var(--cocoa); font-size: clamp(2.35rem,6vw,4.6rem); line-height: .98; }
.h2h-article-subtitle { margin: .5rem 0 .85rem; color: var(--blush-deep); font: italic clamp(1.1rem,2vw,1.4rem)/1.25 var(--serif); }
.h2h-article-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem .65rem; color: var(--cocoa-soft); font-size: .78rem; }
.h2h-article-body { padding: clamp(1.4rem,4.5vw,3.15rem) clamp(1.25rem,7vw,5.15rem); color: var(--cocoa); font-size: 1.02rem; line-height: 1.78; }
.h2h-article-body > p { margin: 0 0 1.15rem; }
.h2h-article-lead { color: var(--cocoa); font: italic 1.25rem/1.55 var(--serif); }
.h2h-article-emphasis { margin: 1.55rem 0 !important; color: var(--blush-deep); font: italic clamp(1.45rem,3vw,2rem)/1.25 var(--serif); text-align: center; }
.h2h-article-choice { margin: 1.65rem 0; padding: 1.15rem 1.3rem; border: 1px solid rgba(184,117,114,.18); border-radius: 9px; background: linear-gradient(145deg,#f8e9e6,#fbf5ed); }
.h2h-article-choice p { margin: 0 0 .75rem; }
.h2h-article-choice p:last-child { margin: .75rem 0 0; color: var(--sage-deep); font: 600 1.35rem var(--serif); }
.h2h-article-choice > span { display: block; color: var(--blush-deep); font: italic 1.15rem var(--serif); text-align: center; }
.h2h-scripture { margin: 1.7rem 0; padding: 1.25rem 1.4rem; border: 0; border-left: 3px solid var(--sage-deep); background: #eeece1; }
.h2h-scripture p { margin: 0 0 .45rem; color: var(--cocoa); font: italic 1.2rem/1.55 var(--serif); }
.h2h-scripture cite { color: var(--blush-deep); font-size: .76rem; font-style: normal; font-weight: 700; letter-spacing: .06em; }
.h2h-article-closing { margin: 1.8rem auto; color: var(--cocoa); font: italic clamp(1.65rem,3vw,2.25rem)/1.2 var(--serif); text-align: center; }
.h2h-article-closing p { margin: .2rem 0; }
.h2h-article-signoff { margin-top: 1.8rem !important; color: var(--cocoa-soft); }
.h2h-article-signoff em { color: var(--blush-deep); font: 1.65rem var(--serif); }
.h2h-prayer { margin-top: 2rem; padding: 1.3rem 1.35rem; display: grid; grid-template-columns: auto 1fr; gap: .9rem; border: 1px solid rgba(91,65,54,.14); border-radius: 10px; background: linear-gradient(135deg,#efe9dd,#f8e9e6); }
.h2h-prayer > span { color: var(--blush-deep); font-size: 1.4rem; }
.h2h-prayer h2 { margin: .1rem 0 .45rem; font-size: 1.65rem; }
.h2h-prayer p:last-child { margin: 0; font-size: .98rem; line-height: 1.7; }
.h2h-letter-comments { padding: 1.35rem clamp(1.25rem,7vw,5.15rem) 1.5rem; border-top: 1px solid rgba(91,65,54,.13); background: linear-gradient(135deg,#fbf7f0,#f7eee7); }
.h2h-comments-heading { display: grid; grid-template-columns: auto 1fr; gap: .8rem; align-items: start; }
.h2h-comments-heading > span { color: var(--blush-deep); font-size: 1.35rem; }
.h2h-comments-heading h2 { margin: .08rem 0 .25rem; font-size: clamp(1.55rem,3vw,2rem); }
.h2h-comments-heading p:last-child { margin: 0; color: var(--cocoa-soft); font-size: .9rem; line-height: 1.5; }
.h2h-comment-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.h2h-comment-form label { color: var(--cocoa); font: 600 .9rem var(--serif); }
.h2h-comment-form label span { color: var(--cocoa-soft); font: 400 .7rem var(--sans); }
.h2h-comment-form input, .h2h-comment-form textarea { width: 100%; margin-top: .28rem; padding: .7rem .75rem; border: 1px solid rgba(91,65,54,.2); border-radius: 6px; background: rgba(255,253,249,.94); color: var(--cocoa); font: 1rem/1.5 var(--sans); }
.h2h-comment-form input:focus, .h2h-comment-form textarea:focus { outline: 2px solid rgba(184,117,114,.35); outline-offset: 1px; }
.h2h-article-footer { padding: 1rem 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid rgba(91,65,54,.13); background: #e4b8b1; }
.h2h-article-footer p { margin: 0; color: var(--cocoa); font: italic 1.15rem var(--serif); }
.h2h-article-footer a { padding: .55rem .8rem; border: 1px solid rgba(91,65,54,.18); border-radius: 5px; background: rgba(255,253,249,.7); color: var(--cocoa); font-size: .75rem; font-weight: 700; text-decoration: none; }
.homemaking-journal-page { background: radial-gradient(circle at 12% 4%,rgba(101,113,93,.13),transparent 24%),linear-gradient(135deg,#fdf9f3,#f2e8dc); }
.homemaking-journal-page .h2h-article-header { background: linear-gradient(135deg,#f2e5d7,#f7e8e1 58%,#e4e8dd); }
.homemaking-journal-photo { margin: 0; aspect-ratio: 16/8.2; overflow: hidden; border-bottom: 1px solid rgba(91,65,54,.13); }
.homemaking-journal-photo img { width: 100%; height: 100%; display: block; object-fit: cover; }
.homemaking-process-photos { margin: 1.55rem 0 1.8rem; display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.homemaking-process-photos figure { margin: 0; overflow: hidden; border: 1px solid rgba(91,65,54,.15); border-radius: 9px; background: #fffaf3; box-shadow: var(--shadow-small); }
.homemaking-process-photos img { width: 100%; height: 270px; display: block; object-fit: cover; }
.homemaking-process-photos figure:first-child img { object-position: center 42%; }
.homemaking-process-photos figcaption { padding: .65rem .75rem; color: var(--cocoa-soft); font: italic .76rem/1.4 var(--serif); text-align: center; }
.homemaking-recipe-box { margin: 2rem 0; overflow: hidden; border: 1px solid rgba(91,65,54,.17); border-radius: 10px; background: #fffaf3; box-shadow: var(--shadow-small); }
.homemaking-recipe-box > header { padding: 1.2rem 1.3rem; border-bottom: 1px solid rgba(91,65,54,.13); background: linear-gradient(135deg,#efe8dc,#f7e8e5); }
.homemaking-recipe-box > header h2 { margin: .12rem 0 .35rem; font-size: clamp(1.8rem,4vw,2.7rem); line-height: 1; }
.homemaking-recipe-box > header > p:last-child { margin: 0; color: var(--cocoa-soft); font-size: .86rem; line-height: 1.55; }
.homemaking-recipe-grid { padding: 1.2rem 1.3rem; display: grid; grid-template-columns: .85fr 1.15fr; gap: 1.5rem; }
.homemaking-recipe-grid h3, .homemaking-kitchen-tips h3 { margin: 0 0 .7rem; color: var(--sage-deep); font-size: 1.35rem; }
.homemaking-recipe-grid ul, .homemaking-recipe-grid ol, .homemaking-kitchen-tips ul { margin: 0; padding-left: 1.2rem; }
.homemaking-recipe-grid li, .homemaking-kitchen-tips li { margin-bottom: .55rem; font-size: .9rem; line-height: 1.55; }
.homemaking-kitchen-tips { padding: 1rem 1.3rem 1.15rem; border-top: 1px solid rgba(91,65,54,.13); background: #edf0e6; }
@media (max-width: 720px) {
  .homemaking-journal-photo { aspect-ratio: 4/3; }
  .homemaking-process-photos { grid-template-columns: 1fr; }
  .homemaking-process-photos img { height: 300px; }
  .homemaking-recipe-grid { grid-template-columns: 1fr; padding: 1rem; gap: 1.15rem; }
  .homemaking-recipe-box > header, .homemaking-kitchen-tips { padding-left: 1rem; padding-right: 1rem; }
}

@media (max-width: 1050px) {
  .h2h-welcome, .h2h-gathering { grid-template-columns: 1fr; }
  .h2h-welcome { height: auto; }
  .h2h-welcome-image { min-height: 380px; }
  .h2h-top-hope { min-height: 245px; }
  .h2h-gathering { height: auto; }
  .h2h-library { height: 470px; }
  .h2h-banner-media, .h2h-banner-media > img { min-height: 260px; }
  .h2h-sidebar-stack { height: auto; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; }
  .h2h-email-signup { grid-column: auto; min-height: 165px; }
}
@media (max-width: 720px) {
  .h2h-welcome { padding: .75rem; }
  .h2h-welcome-image { min-height: 0; }
  .h2h-banner-media { min-height: 205px; }
  .h2h-banner-media > img { min-height: 205px; height: 205px; }
  .h2h-welcome-copy h1 { font-size: clamp(1.55rem,7.5vw,2.2rem); }
  .h2h-welcome-copy { grid-template-columns: 1fr; }
  .h2h-banner-welcome { max-width: none; justify-self: stretch; }
  .h2h-sidebar-stack { grid-template-columns: 1fr; grid-template-rows: auto; }
  .h2h-library { height: 430px; }
  .h2h-email-signup { grid-column: 1; min-height: 150px; }
  .h2h-signup-copy { width: 72%; }
  .h2h-motherhood-quote { grid-template-columns: 24px 1fr; }
  .h2h-motherhood-quote cite { grid-column: 2; }
  .h2h-promise, .h2h-gathering, .h2h-invitation { margin-left: .75rem; margin-right: .75rem; }
  .h2h-section-heading { grid-template-columns: 1fr; }
  .h2h-invitation { grid-template-columns: auto 1fr; }
  .h2h-invitation button { grid-column: 1/-1; white-space: normal; text-align: center; }
  .h2h-footer { grid-template-columns: 1fr; }
  .h2h-article-page { padding: .65rem .75rem 1rem; }
  .h2h-article-header { padding: 1.4rem 1rem 1.15rem; }
  .h2h-article-body { padding: 1.35rem 1.1rem; font-size: 1rem; line-height: 1.72; }
  .h2h-prayer { grid-template-columns: 1fr; }
  .h2h-letter-comments { padding: 1.25rem 1.1rem 1.35rem; }
  .h2h-comment-fields { grid-template-columns: 1fr; }
  .h2h-letter-card-with-image { grid-template-columns: 88px 1fr; gap: .55rem; }
  .h2h-letter-thumb { width: 88px; }
  .h2h-letter-card-with-image h3 { font-size: 1.2rem; }
  .h2h-letter-card-with-image p:not(.eyebrow) { display: none; }
  .h2h-article-footer { align-items: flex-start; flex-direction: column; }
}

/* Heart@Home shop */
.shop-page { padding: .75rem 1rem 1rem; background: radial-gradient(circle at 90% 3%,rgba(220,169,164,.2),transparent 26%),linear-gradient(135deg,#fdf9f3,#f2e8dc); }
.shop-welcome, .shop-collections, .shop-promise { max-width: 1468px; margin-left: auto; margin-right: auto; }
.shop-welcome { display: block; }
.shop-hero, .shop-printify, .shop-collections { overflow: hidden; border: 1px solid rgba(91,65,54,.17); border-radius: 11px; background: rgba(255,253,249,.9); box-shadow: var(--shadow-small); }
.shop-hero { display: grid; grid-template-columns: minmax(280px,.92fr) minmax(320px,1.08fr); min-height: 330px; }
.shop-hero > img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; }
.shop-hero-copy { padding: clamp(1.25rem,3vw,2.6rem); display: flex; flex-direction: column; justify-content: center; background: linear-gradient(120deg,#fffaf5,#f5e7e0); }
.shop-hero-copy h1 { margin: .25rem 0 .7rem; font-size: clamp(2.7rem,4.7vw,4.8rem); line-height: .9; }
.shop-hero-copy > p:last-child { margin: 0; max-width: 600px; color: var(--cocoa-soft); font-size: .95rem; line-height: 1.6; }
.shop-printify { padding: 1.35rem; display: flex; flex-direction: column; justify-content: center; background: linear-gradient(145deg,#e8eadf,#f8efe7); }
.shop-printify h2 { margin: .2rem 0 .6rem; font-size: clamp(1.9rem,2.7vw,2.75rem); line-height: 1; }
.shop-printify > p { margin: 0 0 .65rem; color: var(--cocoa-soft); font-size: .87rem; line-height: 1.5; }
.shop-printify ul { margin: .1rem 0 .9rem; padding: 0; list-style: none; display: grid; gap: .35rem; }
.shop-printify li { position: relative; padding-left: 1.25rem; font-size: .78rem; }
.shop-printify li::before { content: "♡"; position: absolute; left: 0; color: var(--blush-deep); }
.shop-printify .button { width: 100%; border: 0; cursor: pointer; text-align: center; }
.shop-printify small { margin-top: .5rem; color: var(--cocoa-soft); font-size: .65rem; text-align: center; }
.shop-collections { margin-top: .75rem; padding: 1rem 1.15rem 1.15rem; }
.shop-heading { padding-bottom: .8rem; display: grid; grid-template-columns: 1.1fr .7fr; align-items: end; gap: 1.25rem; border-bottom: 1px solid var(--taupe-soft); }
.shop-heading h2 { margin: .15rem 0 0; font-size: clamp(2rem,3.4vw,3.35rem); line-height: .95; }
.shop-heading > p { margin: 0; color: var(--cocoa-soft); }
.shop-grid { padding-top: .85rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; }
.shop-card { min-width: 0; overflow: hidden; display: grid; grid-template-rows: 165px 1fr; border: 1px solid rgba(91,65,54,.12); border-radius: 11px; background: var(--paper); box-shadow: 0 8px 24px rgba(91,65,54,.07); transition: transform .25s,box-shadow .25s; }
.shop-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-small); }
.shop-card-image { height: 165px; padding: 0; overflow: hidden; background: linear-gradient(145deg,#ecdeda,#f7eee7); border-bottom: 1px solid rgba(91,65,54,.1); }
.shop-card-image img { width: 100%; height: 100%; display: block; }
.shop-card-image-full img { object-fit: contain; }
.shop-card-image-preview img { object-fit: cover; object-position: center top; }
.shop-card > div { padding: 1rem 1rem 1.15rem; display: flex; flex-direction: column; }
.shop-card h3 { margin: .08rem 0 .35rem; font-size: 1.35rem; line-height: 1.05; }
.shop-card p:not(.eyebrow) { margin: 0 0 .55rem; color: var(--cocoa-soft); font-size: .76rem; line-height: 1.45; }
.shop-card button, .shop-card a { margin-top: auto; padding: 0; border: 0; background: transparent; color: var(--blush-deep); cursor: pointer; font: 700 .72rem var(--sans); text-align: left; text-decoration: none; }
.shop-collections .family-grid { max-width: none; margin: .85rem 0 0; padding: 0; gap: .8rem; }
.shop-product-card .family-visual { height: 165px; }
.shop-product-card .family-copy { padding: 1rem 1rem 1.15rem; }
.shop-product-card .family-copy h3 { font-size: 1.45rem; }
.shop-product-card .family-copy h4 { font-size: .84rem; }
.shop-product-card .family-copy > p:not(.eyebrow) { min-height: 72px; font-size: .74rem; line-height: 1.55; }
.shop-product-card .family-link { margin-top: .8rem; padding: .58rem .78rem; border: 1px solid rgba(184,117,114,.22); border-radius: 5px; background: linear-gradient(135deg,#efd8d5,#f7e8e3); box-shadow: 0 4px 12px rgba(91,65,54,.06); font-size: .67rem; }
.shop-product-card .family-link:hover { border-color: rgba(184,117,114,.38); background: linear-gradient(135deg,#e9cbc8,#f4ded9); color: var(--cocoa); }
.shop-product-printify .family-visual > img { object-fit: contain; background: linear-gradient(145deg,#ecdeda,#f7eee7); }
.shop-product-card .family-still { background: rgba(240,217,213,.94); border: 1px solid rgba(184,117,114,.2); }
.shop-product-printable .family-visual > img, .shop-product-coloring .family-visual > img { object-position: center top; }

/* Launch-ready visibility: keep unfinished rooms available to restore later. */
a[href="web-exclusives.html"],
.watch-thrifting { display: none !important; }
.shop-promise { margin-top: .75rem; padding: .65rem clamp(1.2rem,4vw,3rem); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; border-radius: 9px; background: linear-gradient(90deg,#e4e7dc,#f8eee8,#edd9d7); text-align: center; }
.shop-promise > span, .shop-promise > b { color: var(--blush-deep); font-size: 1.5rem; font-weight: 400; }
.shop-promise h2 { margin: .1rem 0 .2rem; font-size: clamp(1.55rem,2.4vw,2.25rem); }
.shop-promise p:last-child { margin: 0 auto; max-width: 850px; color: var(--cocoa-soft); font-size: .8rem; }
.shop-footer { grid-template-columns: 1fr auto auto; }
@media (max-width: 1120px) {
  .shop-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .shop-welcome, .shop-hero { grid-template-columns: 1fr; }
  .shop-hero > img { min-height: 260px; max-height: 320px; }
}
@media (max-width: 680px) {
  .shop-page { padding: .75rem; }
  .shop-heading { grid-template-columns: 1fr; }
  .shop-grid { grid-template-columns: 1fr; }
  .shop-product-card .family-copy > p:not(.eyebrow) { min-height: 0; }
  .shop-card { grid-template-columns: 120px 1fr; grid-template-rows: 1fr; }
  .shop-card-image { width: 120px; height: 100%; min-height: 170px; }
  .shop-promise { grid-template-columns: auto 1fr; }
  .shop-promise > b { display: none; }
  .shop-footer { grid-template-columns: 1fr; }
}

/* AHeart4Flowers coloring-page collection */
.coloring-shop-page { padding: .65rem 1rem 1rem; background: radial-gradient(circle at 8% 8%,rgba(196,203,180,.24),transparent 28%),linear-gradient(135deg,#fdf9f3,#f1e7dc); }
.shop-breadcrumb, .coloring-welcome, .coloring-collection, .coloring-promise { max-width: 1468px; margin-left: auto; margin-right: auto; }
.shop-breadcrumb { padding: .2rem 0 .55rem; display: flex; align-items: center; gap: .55rem; color: var(--cocoa-soft); font-size: .72rem; }
.shop-breadcrumb a { color: var(--blush-deep); text-decoration: none; }
.coloring-welcome { display: grid; grid-template-columns: minmax(0,1.9fr) minmax(310px,.76fr); gap: .75rem; }
.coloring-hero, .coloring-note, .coloring-collection { overflow: hidden; border: 1px solid rgba(91,65,54,.16); border-radius: 10px; background: rgba(255,253,249,.9); box-shadow: var(--shadow-small); }
.coloring-hero { min-height: 300px; display: grid; grid-template-columns: minmax(300px,1.05fr) minmax(300px,.95fr); }
.coloring-hero > img { width: 100%; height: 100%; min-height: 300px; object-fit: cover; }
.coloring-hero > div { padding: clamp(1.2rem,3vw,2.4rem); display: flex; flex-direction: column; justify-content: center; background: linear-gradient(120deg,#fffaf5,#eee8dc); }
.coloring-hero h1 { margin: .2rem 0 .6rem; font-size: clamp(2.5rem,4.5vw,4.5rem); line-height: .9; }
.coloring-hero p:last-child { margin: 0; color: var(--cocoa-soft); font-size: .92rem; line-height: 1.55; }
.coloring-note { padding: 1.25rem; display: flex; flex-direction: column; justify-content: center; background: linear-gradient(145deg,#e5e8dc,#f8eee7); }
.coloring-note > span { color: var(--blush-deep); font-size: 1.7rem; }
.coloring-note h2 { margin: .15rem 0 .55rem; font-size: clamp(1.9rem,2.7vw,2.7rem); }
.coloring-note p:not(.eyebrow) { margin: 0 0 .7rem; color: var(--cocoa-soft); font-size: .83rem; line-height: 1.5; }
.coloring-note a { color: var(--blush-deep); font: 700 .75rem var(--sans); text-decoration: none; }
.coloring-collection { margin-top: .75rem; padding: 1rem 1.15rem 1.15rem; }
.coloring-collection > header { padding-bottom: .75rem; display: grid; grid-template-columns: 1fr minmax(280px,.6fr); align-items: end; gap: 1rem; border-bottom: 1px solid var(--taupe-soft); }
.coloring-collection h2 { margin: .1rem 0 0; font-size: clamp(2rem,3.2vw,3.2rem); line-height: .95; }
.coloring-collection > header > p { margin: 0; color: var(--cocoa-soft); font-size: .85rem; }
.coloring-grid { padding-top: .8rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.coloring-card { padding: .55rem; border: 1px solid rgba(91,65,54,.13); border-radius: 8px; background: #fffdf9; }
.coloring-card > div { position: relative; overflow: hidden; height: 220px; padding: .4rem; border: 1px solid rgba(205,137,137,.5); border-radius: 5px; background: linear-gradient(145deg,#fffdf9,#f8ece8); }
.coloring-card img { width: 100%; height: 100%; object-fit: contain; }
.coloring-card span { position: absolute; right: .45rem; bottom: .45rem; padding: .28rem .48rem; border-radius: 999px; background: rgba(255,253,249,.9); color: var(--sage-deep); font: 700 .58rem var(--sans); letter-spacing: .04em; text-transform: uppercase; }
.coloring-card h3 { margin: .55rem 0 .25rem; font-size: 1.45rem; }
.coloring-card p { min-height: 3.3em; margin: 0 0 .45rem; color: var(--cocoa-soft); font-size: .76rem; line-height: 1.45; }
.coloring-card button { padding: 0; border: 0; background: transparent; color: var(--blush-deep); cursor: pointer; font: 700 .7rem var(--sans); }
.coloring-card .coloring-buy-link { display: inline-flex; align-items: center; padding: .5rem .75rem; border-radius: 5px; background: var(--blush-deep); color: #fff; font: 700 .7rem var(--sans); text-decoration: none; }
.coloring-card .coloring-buy-link:hover { background: var(--cocoa); }
.homemaking-grid-single { grid-template-columns: minmax(280px,430px); }
.coloring-promise { margin-top: .75rem; padding: .5rem 1.4rem; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; border-radius: 9px; background: linear-gradient(90deg,#e2e6d8,#f8eee7,#ecd8d6); text-align: center; }
.coloring-promise > span, .coloring-promise > b { color: var(--blush-deep); font-size: 1.4rem; font-weight: 400; }
.coloring-promise blockquote { margin: .05rem 0 0; font: italic clamp(1.35rem,2vw,1.8rem)/1.2 var(--serif); }
@media (max-width: 900px) {
  .coloring-welcome, .coloring-hero { grid-template-columns: 1fr; }
  .coloring-hero > img { max-height: 300px; }
  .coloring-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 580px) {
  .coloring-shop-page { padding: .65rem .75rem; }
  .coloring-collection > header, .coloring-grid { grid-template-columns: 1fr; }
  .coloring-card p { min-height: 0; }
}

/* Heart@Home web exclusives */
.exclusives-page { padding: .75rem 1rem 1rem; background: radial-gradient(circle at 88% 4%,rgba(220,169,164,.18),transparent 27%),linear-gradient(135deg,#fdf9f3,#f1e8dd); }
.exclusives-welcome, .exclusive-rooms, .exclusive-empty-shelf { max-width: 1468px; margin-left: auto; margin-right: auto; }
.exclusives-welcome { display: grid; grid-template-columns: minmax(0,1.9fr) minmax(320px,.78fr); align-items: stretch; gap: .75rem; }
.exclusives-banner, .exclusives-side, .exclusive-rooms { overflow: hidden; border: 1px solid rgba(91,65,54,.17); border-radius: 11px; background: rgba(255,253,249,.9); box-shadow: var(--shadow-small); }
.exclusives-banner { min-height: 390px; display: grid; grid-template-rows: minmax(260px,1fr) auto; }
.exclusives-banner > img { width: 100%; height: 100%; min-height: 260px; max-height: 295px; display: block; object-fit: cover; object-position: center 55%; }
.exclusives-banner > div { padding: .9rem 1.25rem 1rem; background: linear-gradient(100deg,#fffaf5,#f3e5df); }
.exclusives-banner h1 { margin: .18rem 0 .4rem; font-size: clamp(2.2rem,3.8vw,3.7rem); line-height: .94; }
.exclusives-banner p:last-child { max-width: 800px; margin: 0; color: var(--cocoa-soft); font-size: .9rem; line-height: 1.5; }
.exclusives-side { padding: 1.25rem 1.35rem; display: flex; flex-direction: column; justify-content: center; background: linear-gradient(145deg,#e5e8dc,#f8eee7); }
.exclusives-side-heart { color: var(--blush-deep); font-size: 1.7rem; }
.exclusives-side h2 { margin: .18rem 0 .55rem; font-size: clamp(1.75rem,2.5vw,2.55rem); line-height: 1; }
.exclusives-side blockquote { margin: .1rem 0 .18rem; padding: .55rem 0 .55rem .75rem; border-left: 2px solid var(--blush-deep); color: var(--sage-deep); font: italic .95rem/1.4 var(--serif); }
.exclusives-side cite { margin-left: .75rem; color: var(--cocoa-soft); font-size: .58rem; font-style: normal; letter-spacing: .1em; text-transform: uppercase; }
.exclusives-side > p:last-child { margin: .7rem 0 0; color: var(--cocoa-soft); font-size: .8rem; line-height: 1.5; }
.exclusive-rooms { margin-top: .75rem; padding: 1rem 1.15rem 1.15rem; }
.exclusive-heading { padding-bottom: .75rem; display: grid; grid-template-columns: 1fr minmax(280px,.62fr); align-items: end; gap: 1.2rem; border-bottom: 1px solid var(--taupe-soft); }
.exclusive-heading h2 { margin: .1rem 0 0; font-size: clamp(2rem,3.2vw,3.2rem); line-height: .95; }
.exclusive-heading > p { margin: 0; color: var(--cocoa-soft); font-size: .84rem; }
.exclusive-room-grid { padding-top: .8rem; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .7rem; }
.exclusive-room-card { min-width: 0; overflow: hidden; display: grid; grid-template-rows: 145px 1fr; border: 1px solid rgba(91,65,54,.13); border-radius: 8px; background: #fffdf9; }
.exclusive-room-card > img { width: 100%; height: 145px; display: block; object-fit: cover; }
.exclusive-room-card:nth-child(1) > img { object-position: center 67%; }
.exclusive-room-card:nth-child(4) > img { object-position: center 22%; }
.exclusive-room-card > div { position: relative; padding: .8rem; }
.exclusive-room-card > div > span { position: absolute; right: .65rem; top: .55rem; color: var(--blush-soft); font: italic 1.45rem var(--serif); }
.exclusive-room-card h3 { margin: .08rem 0 .32rem; font-size: 1.4rem; line-height: 1.05; }
.exclusive-room-card p:last-child { margin: 0; color: var(--cocoa-soft); font-size: .76rem; line-height: 1.45; }
.exclusive-empty-shelf { margin-top: .75rem; padding: .55rem clamp(1.2rem,4vw,3rem); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; border-radius: 9px; background: linear-gradient(90deg,#eadbd8,#f8eee7,#e3e7da); text-align: center; }
.exclusive-empty-shelf > span, .exclusive-empty-shelf > b { color: var(--blush-deep); font-size: 1.45rem; font-weight: 400; }
.exclusive-empty-shelf h2 { margin: .08rem 0 .15rem; font-size: clamp(1.5rem,2.35vw,2.2rem); }
.exclusive-empty-shelf p:last-child { margin: 0; color: var(--cocoa-soft); font-size: .8rem; }
.exclusives-footer { grid-template-columns: 1fr auto auto; }
@media (max-width: 950px) {
  .exclusives-welcome { grid-template-columns: 1fr; }
  .exclusive-room-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .exclusives-page { padding: .75rem; }
  .exclusives-banner > img { min-height: 220px; height: 220px; }
  .exclusive-heading, .exclusive-room-grid { grid-template-columns: 1fr; }
  .exclusive-room-card { grid-template-columns: 120px 1fr; grid-template-rows: 1fr; }
  .exclusive-room-card > img { height: 100%; min-height: 175px; }
  .exclusive-empty-shelf { grid-template-columns: auto 1fr; }
  .exclusive-empty-shelf > b { display: none; }
  .exclusives-footer { grid-template-columns: 1fr; }
}
