/**
 * Homepage-only composition.
 */

.ff-home { overflow: hidden; }
.ff-kicker { margin-bottom: .65rem; color: var(--ff-color-accent); font-size: .75rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.ff-home-hero { padding-block: clamp(1.75rem, 4vw, 3.75rem); }
.ff-home-hero__grid { display: grid; gap: 2.5rem; align-items: center; }
.ff-home-hero__copy { max-width: 700px; }
.ff-home-hero__copy > p:not(.ff-kicker) { max-width: 620px; color: var(--ff-color-muted); font-size: clamp(1rem, 2vw, 1.2rem); }
.ff-home-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.35rem; }
.ff-home-hero__visual { position: relative; min-height: clamp(330px, 80vw, 520px); border-radius: var(--ff-radius-large); background: var(--ff-color-neutral); }
.ff-home-hero__visual--image { min-height: 0; overflow: hidden; background: transparent; }
.ff-home-hero__image { width: 100%; aspect-ratio: 4 / 3; border-radius: var(--ff-radius-large); object-fit: cover; box-shadow: var(--ff-shadow-soft); }
.ff-look-collage { position: absolute; display: flex; align-items: flex-end; padding: 1rem; border: 8px solid var(--ff-color-card); border-radius: 1rem; box-shadow: var(--ff-shadow-soft); }
.ff-look-collage span { padding: .35rem .65rem; border-radius: 999px; background: rgb(255 253 251 / .9); font-size: .75rem; font-weight: 700; }
.ff-look-collage--one { inset: 7% 36% 17% 5%; background: linear-gradient(155deg, #e7b6c1, #9a4c65); transform: rotate(-4deg); }
.ff-look-collage--two { inset: 18% 4% 5% 48%; background: linear-gradient(155deg, #e4d5bf, #967963); transform: rotate(4deg); }
.ff-look-collage--three { inset: 5% 10% 59% 58%; background: linear-gradient(155deg, #b9a8b7, #5b4257); }
.ff-home-section { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.ff-home-section--tint { background: var(--ff-color-neutral); }
.ff-section-heading { max-width: 760px; margin-bottom: clamp(1.25rem, 2.5vw, 2rem); }
.ff-section-heading > p:last-child { color: var(--ff-color-muted); }
.ff-section-heading--split { display: flex; max-width: none; flex-direction: column; gap: 1rem; }
.ff-look-rail { display: grid; grid-auto-columns: minmax(245px, 78vw); grid-auto-flow: column; gap: 1rem; padding-bottom: 1rem; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline mandatory; scrollbar-width: thin; }
.ff-look-rail .ff-card { scroll-snap-align: start; }
.ff-home-empty { display: grid; gap: .25rem; padding: 1.25rem; border: 1px dashed var(--ff-color-border); border-radius: 1rem; color: var(--ff-color-muted); background: var(--ff-color-card); }
.ff-home-empty strong { color: var(--ff-color-foreground); }
.ff-card-grid, .ff-featured-style__grid, .ff-guide-grid { display: grid; gap: 1rem; }
.ff-occasion-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.ff-occasion-card { display: flex; min-height: 128px; align-items: flex-end; justify-content: space-between; gap: .75rem; padding: 1rem; border-radius: var(--ff-radius-medium); color: var(--ff-color-foreground); font-family: var(--ff-font-editorial); font-size: clamp(1.15rem, 3vw, 1.5rem); text-decoration: none; }
.ff-occasion-card svg, .ff-budget-grid svg { width: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.ff-occasion-card--1 { background: #ead4d9; }.ff-occasion-card--2 { background: #ded5ca; }.ff-occasion-card--3 { background: #d7e0df; }.ff-occasion-card--4 { background: #e4d8e2; }
.ff-budget-section { background: var(--ff-color-accent); color: #fff; }
.ff-budget-section h2, .ff-budget-section .ff-kicker { color: #fff; }
.ff-budget-grid { display: grid; gap: .75rem; }
.ff-budget-grid a { display: grid; grid-template-columns: 1fr auto; gap: .25rem 1rem; padding: 1.3rem; border: 1px solid rgb(255 255 255 / .32); border-radius: 1rem; color: #fff; text-decoration: none; }
.ff-budget-grid span { grid-column: 1; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; opacity: .78; }.ff-budget-grid strong { font-family: var(--ff-font-editorial); font-size: 1.5rem; font-weight: 400; }.ff-budget-grid svg { grid-area: 1 / 2 / 3; align-self: center; }
.ff-featured-style__shell { padding: clamp(1.5rem, 5vw, 4rem); border-radius: var(--ff-radius-large); background: var(--ff-color-card); }
.ff-guide-card { padding-block: 1.5rem; border-top: 1px solid var(--ff-color-border); }.ff-guide-card h3 a { color: inherit; text-decoration: none; }.ff-guide-card > p:not(.ff-card__eyebrow) { color: var(--ff-color-muted); }
@media (min-width: 40rem) { .ff-card-grid, .ff-featured-style__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.ff-occasion-grid, .ff-budget-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }.ff-guide-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.ff-section-heading--split { flex-direction: row; align-items: end; justify-content: space-between; }.ff-section-heading--split .ff-text-link { margin-bottom: 1.2rem; } }
@media (min-width: 64rem) { .ff-home-hero__grid { grid-template-columns: minmax(0, 1.05fr) minmax(430px, .95fr); }.ff-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }.ff-featured-style__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.ff-look-rail { grid-auto-columns: minmax(0, 1fr); grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: row; overflow: visible; } }
@media (max-width: 31rem) { .ff-home-hero__actions .ff-button { width: 100%; }.ff-occasion-grid { grid-template-columns: 1fr; }.ff-occasion-card { min-height: 92px; } }

.ff-admin-empty-note { margin-top: 1.25rem; padding: 1rem 1.125rem; border: 1px dashed var(--ff-color-border, rgba(48,39,34,.18)); border-radius: var(--ff-radius-medium, 1rem); color: var(--ff-color-muted, #6f675f); background: rgba(255,255,255,.45); }
.ff-admin-empty-note p { margin: 0; }
.ff-admin-empty-note p + p { margin-top: .35rem; }
