/* ==========================================================================
   BLESS — boutique header + floral layer
   Loaded after bless.css and bless-premium.css. Uses the existing Bless
   palette only (burgundy, champagne, cream, beige, charcoal).
   ========================================================================== */

:root {
	--bar-h: 56px;
	--badge-w: 136px;
	--badge-h: 108px;
	--img-sprig: url('../img/floral-sprig.svg');
	--img-pattern-light: url('../img/floral-pattern-light.svg');
	--img-pattern-dark: url('../img/floral-pattern-dark.svg');
}

/* ---------- Header bar ---------- */
.site-header {
	background: var(--bless-burgundy);
	border-bottom: 0;
	color: var(--bless-cream);
	overflow: visible;
}
.site-header.is-condensed { box-shadow: 0 8px 22px rgba(30, 27, 25, .22); }

.site-header__row {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: calc(var(--badge-w) + 56px);
	align-items: center;
	height: var(--bar-h);
	padding: 0 var(--space-3);
}
.site-header.is-condensed .site-header__row { padding-top: 0; padding-bottom: 0; }

.primary-nav { flex: none; display: flex; justify-content: flex-start; }
.site-header__right { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-2); }
.mega-nav { gap: 2px; }

.mega-nav__trigger {
	color: var(--bless-cream);
	font-size: .74rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	padding: 10px 14px;
	white-space: nowrap;
}
.mega-nav__trigger:hover,
.mega-nav__item:hover .mega-nav__trigger,
.mega-nav__item.is-open .mega-nav__trigger,
.mega-nav__trigger--accent { color: var(--bless-champagne); }

/* mega panels keep their cream card and dark text */
.mega-panel { color: var(--bless-charcoal); top: calc(100% + 6px); }
.primary-nav--left .mega-panel { left: 0; transform: translate(0, 8px); }
.primary-nav--left .mega-nav__item:hover .mega-panel,
.primary-nav--left .mega-nav__item.is-open .mega-panel { transform: translate(0, 0); }
.primary-nav--right .mega-panel { left: auto; right: 0; transform: translate(0, 8px); }
.primary-nav--right .mega-nav__item:hover .mega-panel,
.primary-nav--right .mega-nav__item.is-open .mega-panel { transform: translate(0, 0); }
/* first item opens under the link, not off-screen */
.primary-nav--left .mega-nav__item { position: relative; }

.icon-btn { color: var(--bless-cream); }
.icon-btn:hover { background: rgba(247, 243, 236, .12); color: var(--bless-champagne); }
.icon-btn__count { background: var(--bless-champagne); color: var(--bless-burgundy-dark); font-weight: 600; }
.mobile-nav-toggle { color: var(--bless-cream); }
.search-panel { z-index: 5; color: var(--bless-charcoal); }

/* ---------- Hanging logo badge ---------- */
.site-logo {
	position: absolute;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
	z-index: 3;
	display: block;
}
.site-logo__badge {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: var(--badge-w);
	height: var(--badge-h);
	padding-bottom: 14px;
	background: var(--bless-burgundy);
	border: 1px solid var(--bless-champagne);
	border-top: 0;
	border-radius: 0 0 var(--badge-w) var(--badge-w) / 0 0 64px 64px;
	box-shadow: 0 10px 22px rgba(30, 27, 25, .22), inset 0 -1px 0 rgba(201, 166, 107, .35);
	transition: height .32s var(--ease), width .32s var(--ease), padding .32s var(--ease),
		background-color .32s var(--ease), border-color .32s var(--ease),
		border-radius .32s var(--ease), box-shadow .32s var(--ease), gap .32s var(--ease);
}
.site-logo__text {
	font-family: var(--font-serif);
	font-size: 1.9rem;
	font-weight: 500;
	letter-spacing: .2em;
	text-indent: .2em;
	line-height: 1;
	color: var(--bless-cream);
	transition: font-size .32s var(--ease), letter-spacing .32s var(--ease);
}
.site-logo .custom-logo { display: block; max-height: 46px; max-width: 110px; width: auto; height: auto; object-fit: contain; transition: max-height .32s var(--ease); }
.site-logo__flourish { width: 64px; height: auto; opacity: 1; transition: opacity .2s var(--ease), height .32s var(--ease), margin .32s var(--ease); }

/* Settled state: one slim line, like a single menu bar */
.site-header.is-condensed .site-logo__badge {
	height: var(--bar-h);
	width: 150px;
	padding-bottom: 0;
	gap: 0;
	background: transparent;
	border-color: transparent;
	border-radius: 0;
	box-shadow: none;
}
.site-header.is-condensed .site-logo__text { font-size: 1.45rem; }
.site-header.is-condensed .site-logo .custom-logo { max-height: 34px; }
.site-header.is-condensed .site-logo__flourish { opacity: 0; height: 0; margin: 0; }

/* announcement bar tucks away as soon as the header settles */
.announcement-bar { background: var(--bless-burgundy-dark); }

/* ---------- Hero: floral arch frame ---------- */
.fs-hero__arch {
	position: absolute;
	left: 50%;
	bottom: 0;
	height: 94%;
	width: auto;
	max-width: 92vw;
	transform: translateX(-50%);
	z-index: 1;
	pointer-events: none;
	filter: drop-shadow(0 0 18px rgba(30, 27, 25, .25));
}
.fs-hero__content { z-index: 2; }

/* ---------- Floral sections ---------- */
.has-florals,
.has-pattern-light,
.has-pattern-dark { position: relative; overflow: hidden; isolation: isolate; }
.has-florals > .section__inner,
.has-pattern-light > .section__inner,
.has-pattern-dark > .section__inner,
.has-florals > .hero__inner { position: relative; z-index: 1; }

.has-florals::before,
.has-florals::after {
	content: '';
	position: absolute;
	z-index: 0;
	width: 300px;
	height: 380px;
	background: var(--img-sprig) no-repeat center / contain;
	opacity: .55;
	pointer-events: none;
}
.has-florals::before { left: -70px; top: -30px; transform: scaleX(-1) rotate(8deg); }
.has-florals::after  { right: -70px; bottom: -50px; transform: rotate(188deg); }

.has-pattern-light { background-image: var(--img-pattern-light); background-size: 260px 260px; background-color: var(--bless-cream); }
.has-pattern-dark  { background-image: var(--img-pattern-dark);  background-size: 260px 260px; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
	.mega-nav__trigger { padding: 10px 9px; letter-spacing: .12em; }
	.site-header__row { column-gap: calc(var(--badge-w) + 24px); }
}

@media (max-width: 880px) {
	:root { --bar-h: 52px; --badge-w: 104px; --badge-h: 78px; }
	.site-header__row { grid-template-columns: auto 1fr auto; column-gap: 0; padding: 0 var(--space-2); }
	.primary-nav { display: none; }
	.site-header__right { grid-column: 3; }
	.site-logo__badge { border-radius: 0 0 var(--badge-w) var(--badge-w) / 0 0 48px 48px; padding-bottom: 8px; gap: 4px; }
	.site-logo__text { font-size: 1.4rem; }
	.site-logo__flourish { width: 48px; }
	.site-header.is-condensed .site-logo__badge { width: 120px; }
	.site-header.is-condensed .site-logo__text { font-size: 1.2rem; }
	.fs-hero__arch { height: 86%; }
	.has-florals::before,
	.has-florals::after { width: 190px; height: 240px; opacity: .4; }
}

@media (prefers-reduced-motion: reduce) {
	.site-logo__badge, .site-logo__text, .site-logo .custom-logo, .site-logo__flourish { transition: none; }
}

/* ---------- Emblem logo (image-based, shaped like its own badge) ---------- */
.site-logo--emblem .site-logo__badge {
	width: auto;
	height: auto;
	padding: 6px 0 0;
	gap: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	filter: drop-shadow(0 8px 14px rgba(30, 27, 25, .3));
}
.site-logo__emblem { display: block; width: auto; height: 118px; max-width: none; transition: height .32s var(--ease); }
.site-header.is-condensed .site-logo--emblem .site-logo__badge {
	width: auto;
	height: auto;
	padding: 5px 0;
	background: transparent;
	filter: none;
}
.site-header.is-condensed .site-logo__emblem { height: 46px; }
@media (max-width: 880px) {
	.site-logo__emblem { height: 84px; }
	.site-header.is-condensed .site-logo--emblem .site-logo__badge { width: auto; }
	.site-header.is-condensed .site-logo__emblem { height: 42px; }
}
@media (prefers-reduced-motion: reduce) { .site-logo__emblem { transition: none; } }

/* ---- Category tiles: real images + Customizer shape/columns ---- */
.occasion-grid { grid-template-columns: repeat(var(--occ-cols, 6), 1fr); }
.occasion-grid--sub { grid-template-columns: repeat(6, 1fr); }
.occasion-card__panel { position: relative; overflow: hidden; }
.occasion-card__panel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--ease); }
.occasion-card:hover .occasion-card__panel img { transform: scale(1.07); }
.occasion-card__panel.has-image { box-shadow: 0 0 0 2px var(--bless-champagne), 0 8px 20px rgba(111,23,40,.08); }
.occasion-grid--arch .occasion-card__panel { border-radius: 999px 999px 14px 14px; aspect-ratio: 4 / 5; }
.occasion-grid--rounded .occasion-card__panel { border-radius: 22px; }
.occasion-grid--square .occasion-card__panel { border-radius: 4px; }
.occasion-card__label { display: block; margin-top: 8px; font-weight: 500; }
.section__sub { margin: 10px auto 0; max-width: 56ch; opacity: .75; }
@media (max-width: 1000px) { .occasion-grid:not(.occasion-grid--sub) { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px)  { .occasion-grid:not(.occasion-grid--sub) { grid-template-columns: repeat(2, 1fr); } }
