/**
 * Cozy Haven v3 header system.
 * One authoritative responsive header layer shared by every template.
 */
.site-header__main {
	min-height: 92px;
	grid-template-columns: minmax(210px, .78fr) minmax(360px, 1.72fr) auto;
	align-items: center;
	gap: clamp(1rem, 2.35vw, 2.2rem);
}

.site-branding,
.custom-logo-link,
.ch-brand-fallback {
	min-width: 0;
	align-items: center;
}

.custom-logo-link {
	min-height: 76px;
}

.custom-logo {
	width: auto;
	max-width: 210px;
	max-height: 82px;
	object-fit: contain;
}

.ch-brand-fallback img {
	width: 114px;
	height: 80px;
	object-fit: contain;
}

.site-header__search {
	width: 100%;
	max-width: 720px;
	justify-self: center;
}

.site-header__search .ch-product-search {
	position: relative;
	display: block;
}

.site-header__search .ch-product-search input[type="search"] {
	width: 100%;
	min-height: 54px;
	padding: .8rem 7.3rem .8rem 1.2rem;
	border: 1px solid #d8d2ca;
	border-radius: var(--ch-radius-pill);
	background: #fff;
	box-shadow: 0 4px 16px rgba(39, 53, 65, .045);
	font-size: .86rem;
	transition: border-color var(--ch-transition), box-shadow var(--ch-transition);
}

.site-header__search .ch-product-search input[type="search"]:focus {
	outline: 0;
	border-color: var(--ch-blue-deep);
	box-shadow: 0 0 0 3px rgba(84, 136, 177, .11), 0 6px 20px rgba(39, 53, 65, .055);
}

.site-header__search .ch-product-search button {
	position: absolute;
	top: 5px;
	right: 5px;
	display: inline-flex;
	width: auto;
	min-width: 104px;
	height: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	gap: .42rem;
	padding: 0 1rem;
	border: 1px solid var(--ch-blue-deep);
	border-radius: var(--ch-radius-pill);
	background: var(--ch-blue-deep);
	color: var(--ch-white);
	box-shadow: none;
	font-size: .72rem;
	font-weight: 800;
}

.site-header__search .ch-product-search button span {
	display: inline;
}

.site-header__search .ch-product-search button svg {
	width: 17px;
	height: 17px;
}

.site-header__search .ch-product-search button:hover,
.site-header__search .ch-product-search button:focus-visible {
	border-color: var(--ch-blue);
	background: var(--ch-blue);
	color: var(--ch-white);
}

.site-header__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: .5rem;
}

.ch-header-action {
	position: relative;
	display: inline-flex;
	min-width: 0;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	flex-direction: row;
	gap: .48rem;
	padding: .52rem .78rem;
	border: 1px solid #ded8d0;
	border-radius: var(--ch-radius-pill);
	background: var(--ch-white);
	color: var(--ch-ink);
	box-shadow: none;
	font-size: .72rem;
	font-weight: 780;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
	transition: border-color var(--ch-transition), background var(--ch-transition), color var(--ch-transition), box-shadow var(--ch-transition);
}

.ch-header-action:hover,
.ch-header-action:focus-visible {
	border-color: rgba(84, 136, 177, .48);
	background: #f4faf9;
	color: var(--ch-blue-deep);
	box-shadow: 0 5px 16px rgba(39, 53, 65, .055);
	transform: none;
}

.ch-header-action.is-current {
	border-color: rgba(84, 136, 177, .45);
	background: #eef7f6;
	color: var(--ch-blue-deep);
	box-shadow: inset 0 0 0 1px rgba(84, 136, 177, .04);
}

.ch-header-action svg {
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
}

.ch-cart-link {
	padding-right: .7rem;
}

.site-header__actions .ch-cart-count {
	position: static;
	display: inline-grid;
	min-width: 22px;
	height: 22px;
	margin-left: .05rem;
	place-items: center;
	padding: 0 5px;
	border: 0;
	border-radius: 999px;
	background: #e8f3f2;
	color: var(--ch-blue-deep);
	box-shadow: none;
	font-size: .64rem;
	font-weight: 850;
	line-height: 1;
}

.site-header__actions .ch-header-action.is-current .ch-cart-count {
	background: var(--ch-blue-deep);
	color: var(--ch-white);
}

.ch-cart-count[hidden],
.ch-menu-close[hidden] {
	display: none !important;
}

/* The drawer close control must never participate in desktop header layout. */
@media (min-width: 901px) {
	.site-header__nav-row .ch-menu-close {
		display: none !important;
	}
}

@media (max-width: 1180px) and (min-width: 901px) {
	.site-header__main {
		grid-template-columns: minmax(180px, .65fr) minmax(280px, 1.35fr) auto;
		gap: .85rem;
	}

	.custom-logo {
		max-width: 190px;
		max-height: 76px;
	}

	.site-header__search .ch-product-search button {
		min-width: 48px;
		width: 48px;
		padding: 0;
	}

	.site-header__search .ch-product-search button span {
		display: none;
	}

	.site-header__search .ch-product-search input[type="search"] {
		padding-right: 4rem;
	}

	.ch-header-action {
		padding-inline: .68rem;
		font-size: .68rem;
	}
}

@media (max-width: 900px) {
	.site-header__main {
		min-height: 76px;
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: .55rem;
	}

	.site-branding {
		justify-content: center;
	}

	.custom-logo-link {
		min-height: 0;
	}

	.custom-logo {
		max-width: 168px;
		max-height: 64px;
	}

	.ch-brand-fallback img {
		width: 90px;
		height: 64px;
	}

	.site-header__search {
		display: none;
	}

	.ch-search-toggle {
		display: inline-flex;
	}

	.ch-header-action {
		width: 44px;
		min-width: 44px;
		height: 44px;
		min-height: 44px;
		padding: 0;
		border-radius: 50%;
		box-shadow: none;
	}

	.ch-header-action > span:not(.ch-cart-count) {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	.site-header__actions .ch-cart-count {
		position: absolute;
		top: -5px;
		right: -5px;
		min-width: 19px;
		height: 19px;
		padding: 0 4px;
		border: 2px solid var(--ch-white);
		background: var(--ch-blue-deep);
		color: var(--ch-white);
		font-size: .6rem;
	}

	.site-header__nav-row .primary-navigation.is-open .ch-menu-close:not([hidden]) {
		display: inline-flex;
	}
}

@media (max-width: 640px) {
	.custom-logo {
		max-width: 154px;
		max-height: 60px;
	}

	.site-header__actions {
		gap: .25rem;
	}
}



/* Navigation polish and predictable interaction states. */
.site-header {
	background: rgba(255,255,255,.985);
	border-bottom: 1px solid rgba(39,53,65,.08);
}
.site-header.is-sticky {
	box-shadow: 0 10px 30px rgba(39,53,65,.055);
}
.primary-navigation a {
	text-underline-offset: .2em;
}
.primary-navigation > .menu > li > a,
.primary-navigation > .nav-menu > li > a {
	font-weight: 760;
}
.ch-header-action:focus-visible,
.site-header__search .ch-product-search input[type="search"]:focus-visible,
.site-header__search .ch-product-search button:focus-visible {
	outline: 3px solid rgba(84,136,177,.22);
	outline-offset: 2px;
}

/* v3.1 Smart Product Search */
.ch-product-search{position:relative}
.ch-smart-search{position:absolute;z-index:1200;top:calc(100% + 10px);left:0;right:0;min-width:min(620px,92vw);max-height:min(620px,72vh);overflow:auto;background:#fff;border:1px solid rgba(56,107,147,.16);border-radius:18px;box-shadow:0 22px 60px rgba(39,53,65,.18);padding:8px}
.ch-smart-search[hidden]{display:none!important}
.ch-smart-search__item{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:center;padding:9px 10px;border-radius:13px;text-decoration:none;color:inherit;transition:background .16s ease,transform .16s ease}
.ch-smart-search__item:hover,.ch-smart-search__item:focus,.ch-smart-search__item.is-active{background:#f2f7fa;outline:none;transform:translateY(-1px)}
.ch-smart-search__media{display:grid;place-items:center;width:64px;height:64px;border-radius:11px;overflow:hidden;background:#f7f4ee}
.ch-smart-search__media img{width:100%;height:100%;object-fit:contain}
.ch-smart-search__image-placeholder{display:block;width:100%;height:100%;background:linear-gradient(135deg,var(--ch-ivory),var(--ch-sky))}
.ch-smart-search__copy{min-width:0;display:grid;gap:3px}
.ch-smart-search__copy strong{font-size:.92rem;line-height:1.25;color:var(--ch-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-smart-search__copy small{font-size:.73rem;color:var(--ch-ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-smart-search__price{font-size:.88rem;font-weight:750;color:var(--ch-blue-deep)}
.ch-smart-search__price del{opacity:.55;margin-right:5px}.ch-smart-search__price ins{text-decoration:none;color:#b84b38}
.ch-smart-search__all{display:flex;align-items:center;justify-content:center;margin-top:4px;padding:11px 12px;border-radius:12px;background:var(--ch-blue-soft);color:var(--ch-blue-deep);font-weight:800;text-decoration:none}
.ch-smart-search__all:hover,.ch-smart-search__all:focus{background:#d9e8f2;outline:none}
.ch-smart-search__empty{padding:18px 14px;text-align:center;color:var(--ch-ink-soft);font-size:.9rem}
.ch-product-search.is-smart-loading::after{content:"";position:absolute;right:58px;top:50%;width:15px;height:15px;margin-top:-7px;border:2px solid rgba(56,107,147,.22);border-top-color:var(--ch-blue-deep);border-radius:50%;animation:chSmartSpin .7s linear infinite}
@keyframes chSmartSpin{to{transform:rotate(360deg)}}
@media(max-width:900px){.ch-smart-search{position:fixed;top:96px;left:12px;right:12px;min-width:0;max-height:calc(100vh - 120px);border-radius:16px}.ch-search-panel .ch-smart-search{position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:55vh}}

/* Footer headings become accordion controls only when core.js enhances them. */
.ch-footer-toggle {
	display: block;
	width: auto;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: default;
}

.ch-footer-toggle svg {
	display: none;
}

/* Mobile-only components are hidden universally so they cannot flash or leak
 * onto desktop while the media-scoped mobile stylesheet is loading. */
.ch-mobile-searchbar,
.ch-mobile-menu-head,
.ch-mobile-menu-shortcuts {
	display: none;
}

@media (min-width: 901px) {
	.ch-mobile-searchbar,
	.ch-mobile-menu-head,
	.ch-mobile-menu-shortcuts {
		display: none !important;
	}
}
