/*
 * Header (Main.dc.html desktop, HomeMobile.dc.html phone) and the ☰ drawer.
 * Phones and tablets (< 1200px): ☰ · logo · search · cart. Desktop (≥ 1200px): logo · menu · search · language · cart.
 */

/* Block layout gaps don't apply inside the chrome; spacing is set below. */
body .dolphin-header > *,
body .dolphin-header__main > *,
body .dolphin-header__bar > *,
body .dolphin-header__tools > * {
	margin-block: 0;
}

body .wp-site-blocks > header.wp-block-template-part {
	position: relative;
	z-index: 30;
}

body .dolphin-header {
	position: relative;
}

body .dolphin-header__main {
	background: var(--wp--preset--color--white);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

body .dolphin-header__bar {
	position: relative;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-height: 64px;
	margin-inline: auto;
	padding-inline: 8px;
}

body .dolphin-header__logo {
	display: flex;
	flex: none;
	border-radius: 8px;
}

body .dolphin-header__logo img {
	display: block;
	width: auto;
	height: 48px;
}

body .dolphin-header__nav {
	display: none !important;
}

body .dolphin-header__tools {
	display: flex;
	align-items: center;
	flex: none;
}

body .dolphin-header__lang {
	display: none;
}

/* Product search: rounded field with the magnifier inside (desktop), a panel under the header on phones. */
body .dolphin-header__search {
	display: none;
	margin: 0;
}

body .dolphin-header .dolphin-header__search .wp-block-search__inside-wrapper {
	position: relative;
	display: flex;
	padding: 0;
	border: 0;
	background: transparent;
}

body .dolphin-header .dolphin-header__search .wp-block-search__inside-wrapper::before {
	content: "";
	position: absolute;
	top: 50%;
	inset-inline-start: 16px;
	width: 20px;
	height: 20px;
	transform: translateY(-50%);
	background: var(--wp--preset--color--muted);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E") center / contain no-repeat;
	pointer-events: none;
}

body .dolphin-header .dolphin-header__search .wp-block-search__input {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	height: 48px;
	margin: 0;
	padding-block: 0;
	padding-inline: 46px 18px;
	border: 1.5px solid var(--wp--preset--color--line-strong);
	border-radius: var(--dolphin-radius-pill);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--forest);
	font-family: inherit;
	font-size: 16px;
	line-height: 1.2;
	-webkit-appearance: none;
	appearance: none;
}

body .dolphin-header .dolphin-header__search .wp-block-search__input:hover {
	border-color: var(--wp--preset--color--muted);
}

body .dolphin-header .dolphin-header__search .wp-block-search__input:focus-visible {
	border-color: var(--wp--preset--color--forest);
	outline: 3px solid var(--wp--preset--color--orange-600);
	outline-offset: 2px;
}

body .dolphin-header .dolphin-header__search .wp-block-search__input::-webkit-search-cancel-button {
	cursor: pointer;
}

body .dolphin-header__search-toggle[aria-expanded="true"] {
	background: var(--wp--preset--color--cream);
}

/* Phones: the search panel opens under the header bar. */
@media (max-width: 1199.98px) {
	body .dolphin-header.is-search-open .dolphin-header__search {
		position: absolute;
		top: calc(100% + 1px);
		inset-inline: 0;
		z-index: 5;
		display: block;
		padding: 10px 16px 14px;
		background: var(--wp--preset--color--white);
		border-bottom: 1px solid var(--wp--preset--color--line);
		box-shadow: 0 12px 24px rgba(15, 61, 50, 0.1);
	}
}

/* Mini-cart: bag icon with the orange count badge (CartMobile.dc.html). */
body .dolphin-header .wc-block-mini-cart {
	display: flex;
	margin: 0;
}

body .dolphin-header .wc-block-mini-cart__button,
body .dolphin-header .dolphin-cart-link {
	position: relative;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: var(--dolphin-radius-pill);
	background: transparent;
	color: var(--wp--preset--color--forest);
	text-decoration: none;
}

body .dolphin-header .wc-block-mini-cart__button:hover,
body .dolphin-header .dolphin-cart-link:hover {
	background: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--forest);
}

body .dolphin-header .wc-block-mini-cart__quantity-badge {
	position: static;
}

body .dolphin-header .wc-block-mini-cart__icon,
body .dolphin-header .wc-block-mini-cart__button .wc-block-mini-cart__icon {
	display: block;
	width: 22px;
	height: 22px;
	margin: 0;
	transform: none;
}

body .dolphin-header .wc-block-mini-cart__badge {
	position: absolute;
	top: 4px;
	right: auto;
	left: auto;
	inset-inline-end: 2px;
	box-sizing: border-box;
	min-width: 18px;
	height: 18px;
	margin: 0;
	padding: 0 4px;
	transform: none;
	border-radius: var(--dolphin-radius-pill);
	background-color: var(--wp--preset--color--orange-600) !important;
	color: var(--wp--preset--color--white) !important;
	font-family: var(--dolphin-font-en);
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
}

/* Language switch under the phone header (home page only, HomeMobile.dc.html). */
body .dolphin-langbar {
	display: flex;
	justify-content: flex-end;
	padding: 4px 8px 0;
}

/*
 * Desktop
 */
@media (min-width: 1200px) {
	body .dolphin-header__bar {
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: 12px 24px;
		max-width: var(--dolphin-container);
		min-height: 88px;
		padding: 12px var(--dolphin-gutter);
	}

	body .dolphin-header__menu,
	body .dolphin-header__search-toggle,
	body .dolphin-langbar {
		display: none;
	}

	body .dolphin-header__logo img {
		height: 64px;
	}

	body .dolphin-header__nav {
		display: flex !important;
	}

	body .dolphin-header__tools {
		gap: 12px;
		margin-inline-start: auto;
	}

	body .dolphin-header__search {
		display: block;
		width: clamp(200px, 20vw, 300px);
	}

	body .dolphin-header .dolphin-header__search .wp-block-search__input {
		font-size: 15px;
	}

	body .dolphin-header__lang {
		display: block;
	}

	body .dolphin-lang--header {
		min-height: 48px;
		padding: 0 10px;
		font-size: 15px;
		font-weight: 700;
	}

	body .dolphin-lang--header .dolphin-icon {
		width: 20px;
		height: 20px;
	}

	body .dolphin-header .wc-block-mini-cart__button,
	body .dolphin-header .dolphin-cart-link {
		width: 48px;
		height: 48px;
		background: var(--wp--preset--color--cream);
	}

	body .dolphin-header .wc-block-mini-cart__button:hover,
	body .dolphin-header .dolphin-cart-link:hover {
		background: var(--wp--preset--color--sand);
	}

	body .dolphin-header .wc-block-mini-cart__icon,
	body .dolphin-header .wc-block-mini-cart__button .wc-block-mini-cart__icon {
		width: 24px;
		height: 24px;
	}

	body .dolphin-header .wc-block-mini-cart__badge {
		top: 2px;
		inset-inline-end: 0;
		min-width: 20px;
		height: 20px;
		padding: 0 5px;
		font-size: 12px;
	}
}

@media (min-width: 1280px) {
	body .dolphin-header__bar {
		column-gap: 40px;
	}
}

/*
 * Main menu (core Navigation block, 'main-menu'): Cats ▾ · Dogs ▾ · Birds · Brands · Offers · Contact.
 */
body .dolphin-header .dolphin-main-nav,
body .dolphin-header .dolphin-main-nav .wp-block-navigation__container {
	gap: 0 24px;
}

@media (min-width: 1280px) {
	body .dolphin-header .dolphin-main-nav,
	body .dolphin-header .dolphin-main-nav .wp-block-navigation__container {
		gap: 0 28px;
	}
}

body .dolphin-header .dolphin-main-nav .wp-block-navigation__container > .wp-block-navigation-item {
	display: flex;
	align-items: center;
}

body .dolphin-header .dolphin-main-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0;
	color: var(--wp--preset--color--forest);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	white-space: nowrap;
}

body .dolphin-header .dolphin-main-nav .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--orange-700);
}

body .dolphin-header .dolphin-main-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[aria-current="page"] {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}

/* ▾ next to Cats / Dogs: the toggle button core adds for keyboard and touch. */
body .dolphin-header .dolphin-main-nav .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 44px;
	margin: 0;
	margin-inline-start: 2px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--forest);
	cursor: pointer;
}

body .dolphin-header .dolphin-main-nav .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-icon svg {
	width: 14px;
	height: 14px;
	stroke-width: 2;
	transition: transform 0.15s ease;
}

body .dolphin-header .dolphin-main-nav .wp-block-navigation__container > .has-child:is(:hover, body :focus-within):not(.is-dd-closed) > .wp-block-navigation__submenu-icon svg,
body .dolphin-header .dolphin-main-nav .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-icon[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

/* Dropdown panel: Food and its types | the other entries | "Shop all …" photo tile. */
body .dolphin-header .dolphin-main-nav.wp-block-navigation .wp-block-navigation__container > .has-child {
	position: relative;
}

body .dolphin-header .dolphin-main-nav.wp-block-navigation .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container {
	top: calc(100% + 22px);
	right: auto;
	left: auto;
	inset-inline-start: -28px;
	z-index: 30;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 180px;
	grid-auto-rows: auto;
	align-items: start;
	gap: 0 24px;
	width: 640px;
	min-width: 0;
	padding-block: 20px;
	padding-inline: 24px 20px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 20px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--forest);
	box-shadow: var(--dolphin-shadow-pop);
}

/* Invisible bridge between the menu entry and the panel, so the pointer can travel down to it. */
body .dolphin-header .dolphin-main-nav.wp-block-navigation .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	bottom: 100%;
	height: 24px;
}

body .dolphin-header .dolphin-main-nav.wp-block-navigation .wp-block-navigation__container > .has-child:hover > .wp-block-navigation__submenu-container,
body .dolphin-header .dolphin-main-nav.wp-block-navigation .wp-block-navigation__container > .has-child:focus-within > .wp-block-navigation__submenu-container,
body .dolphin-header .dolphin-main-nav.wp-block-navigation .wp-block-navigation__container > .has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
	visibility: visible;
	overflow: visible;
	opacity: 1;
	width: 640px;
	height: auto;
	min-width: 0;
}

/* Escape closes the panel until the pointer or focus leaves it (assets/js/10-header.js). */
body .dolphin-header .dolphin-main-nav.wp-block-navigation .wp-block-navigation__container > .has-child.is-dd-closed > .wp-block-navigation__submenu-container {
	visibility: hidden;
	opacity: 0;
}

body .dolphin-header .dolphin-main-nav .wp-block-navigation__submenu-container > .wp-block-navigation-item {
	display: block;
	margin: 0;
}

/* Entries with sub-types (Food) take the first column; the rest stack in the second; the photo tile the third. */
body .dolphin-header .dolphin-main-nav .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container > .has-child {
	grid-column: 1;
	grid-row: span 12;
}

body .dolphin-header .dolphin-main-nav .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.has-child):not(.dolphin-dd-promo) {
	grid-column: 2;
}

body .dolphin-header .dolphin-main-nav .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container > .dolphin-dd-promo {
	grid-column: 3;
	grid-row: 1 / span 12;
	align-self: stretch;
}

/* Second level: icon circle + bold label. */
body .dolphin-header .dolphin-main-nav.wp-block-navigation .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex;
	flex-grow: 0;
	align-items: center;
	gap: 12px;
	min-height: 48px;
	padding: 0;
	color: var(--wp--preset--color--forest);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
}

body .dolphin-header .dolphin-main-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--orange-700);
}

body .dolphin-dd-ico {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: var(--dolphin-radius-pill);
	background: var(--wp--preset--color--orange-50);
	color: var(--wp--preset--color--forest);
}

body .dolphin-dd-ico--litter,
body .dolphin-dd-ico--accessories {
	background: var(--wp--preset--color--sage-50);
}

body .dolphin-dd-ico--grooming {
	background: var(--wp--preset--color--sand);
}

/* Third level (Dry food, Wet food, …): always shown under Food, indented past the icon. */
body .dolphin-header .dolphin-main-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
	position: static;
	visibility: inherit;
	overflow: visible;
	opacity: 1;
	display: block;
	width: auto;
	height: auto;
	min-width: 0;
	margin: 0;
	padding: 0;
	padding-inline-start: 48px;
	border: 0;
	background: transparent;
	box-shadow: none;
	transition: none;
}

body .dolphin-header .dolphin-main-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before {
	content: none;
}

body .dolphin-header .dolphin-main-nav .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	min-height: 40px;
	padding: 0;
	color: var(--wp--preset--color--forest);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}

body .dolphin-header .dolphin-main-nav .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon {
	display: none;
}

/* "Shop all cats" photo tile. */
body .dolphin-dd-promo__link {
	position: relative;
	box-sizing: border-box;
	display: block;
	height: 100%;
	min-height: 220px;
	overflow: hidden;
	border-radius: 14px;
	background: var(--wp--preset--color--sand);
	text-decoration: none;
}

body .dolphin-dd-promo__img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

body .dolphin-dd-promo__link:hover .dolphin-dd-promo__img {
	transform: scale(1.04);
}

body .dolphin-dd-promo__label {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 48px 14px 14px;
	background: linear-gradient(rgba(15, 61, 50, 0), rgba(15, 61, 50, 0.88));
	color: var(--wp--preset--color--cream);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
}

body .dolphin-dd-promo--plain .dolphin-dd-promo__label {
	background: var(--wp--preset--color--forest);
	padding-top: 14px;
}

body .dolphin-dd-promo__link:focus-visible {
	outline-offset: 2px;
}

/*
 * ☰ drawer (HomeMobile.dc.html "Mobile menu"): full-screen modal dialog.
 */
body .dolphin-drawer {
	position: fixed;
	inset: 0;
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--forest);
	font-size: 15px;
	line-height: 1.55;
}

body .dolphin-drawer[open],
body .dolphin-drawer:target {
	z-index: 100;
	display: flex;
	flex-direction: column;
}

body .dolphin-drawer::backdrop {
	background: rgba(15, 61, 50, 0.4);
}

body .dolphin-drawer__bar {
	box-sizing: border-box;
	display: flex;
	flex: none;
	align-items: center;
	justify-content: space-between;
	height: 64px;
	padding-inline: 16px 8px;
	background: var(--wp--preset--color--white);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

body .dolphin-drawer__logo {
	display: flex;
	border-radius: 8px;
}

body .dolphin-drawer__logo img {
	display: block;
	width: auto;
	height: 44px;
}

body .dolphin-drawer__nav {
	flex: 1 1 auto;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 4px 16px 24px;
}

body .dolphin-drawer__acc {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

body .dolphin-drawer__acc > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 56px;
	font-size: 17px;
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}

body .dolphin-drawer__acc > summary::-webkit-details-marker {
	display: none;
}

body .dolphin-drawer__acc > summary:focus-visible {
	outline-offset: -3px;
}

body .dolphin-drawer__chev {
	transition: transform 0.15s ease;
}

body .dolphin-drawer__acc[open] > summary .dolphin-drawer__chev {
	transform: rotate(180deg);
}

body .dolphin-drawer__sub {
	display: flex;
	flex-direction: column;
	padding: 0 0 14px;
}

body .dolphin-drawer__title {
	display: flex;
	align-items: center;
	min-height: 44px;
	color: var(--wp--preset--color--forest);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

body .dolphin-drawer__link {
	display: flex;
	align-items: center;
	min-height: 44px;
	margin-inline-start: 4px;
	padding-inline-start: 16px;
	border-inline-start: 2px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--muted);
	font-size: 15px;
	text-decoration: none;
}

body .dolphin-drawer__all {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 6px;
	min-height: 44px;
	color: var(--wp--preset--color--orange-700);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

body .dolphin-drawer__top {
	display: flex;
	align-items: center;
	min-height: 56px;
	border-bottom: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--forest);
	font-size: 17px;
	font-weight: 700;
	text-decoration: none;
}

body .dolphin-drawer__title:hover,
body .dolphin-drawer__link:hover,
body .dolphin-drawer__top:hover,
body .dolphin-drawer__acc > summary:hover {
	color: var(--wp--preset--color--orange-700);
}

body .dolphin-drawer__cta {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 20px;
}

body .dolphin-drawer__cta .dolphin-btn {
	width: 100%;
}

body .dolphin-lang--drawer {
	justify-content: center;
	align-self: center;
	font-size: 15px;
}

@media (min-width: 1200px) {
	body .dolphin-drawer[open],
	body .dolphin-drawer:target {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	body .dolphin-drawer__chev,
	body .dolphin-dd-promo__img,
	body .dolphin-header .dolphin-main-nav .wp-block-navigation__submenu-icon svg {
		transition: none;
	}

	body .dolphin-dd-promo__link:hover .dolphin-dd-promo__img {
		transform: none;
	}
}

/*
 * Calm headers (parts/header-checkout.html, parts/header-minimal.html):
 * checkout = "Back to cart" · logo (CheckoutMobile.dc.html); order placed = logo only (ThankYouMobile.dc.html).
 */
body .dolphin-header--checkout,
body .dolphin-header--minimal {
	background: var(--wp--preset--color--white);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

body .dolphin-header--checkout .dolphin-header__bar,
body .dolphin-header--minimal .dolphin-header__bar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: 8px;
	max-width: var(--dolphin-container);
	min-height: 64px;
	padding: 0 8px;
}

body .dolphin-header--minimal .dolphin-header__logo {
	grid-column: 2;
}

body .dolphin-header--checkout .dolphin-header__back {
	justify-self: start;
	gap: 8px;
	text-decoration: none;
}

body .dolphin-header--checkout .dolphin-header__back:focus-visible,
body .dolphin-header--checkout .dolphin-header__logo:focus-visible,
body .dolphin-header--minimal .dolphin-header__logo:focus-visible {
	outline: 3px solid var(--wp--preset--color--orange-600);
	outline-offset: 2px;
}

/* Phones: icon only, the label stays for screen readers. */
body .dolphin-header__back-label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

@media (min-width: 782px) {
	body .dolphin-header--checkout .dolphin-header__bar,
	body .dolphin-header--minimal .dolphin-header__bar {
		min-height: 80px;
		padding: 8px var(--dolphin-gutter);
	}

	body .dolphin-header--checkout .dolphin-header__logo img,
	body .dolphin-header--minimal .dolphin-header__logo img {
		height: 56px;
	}

	body .dolphin-header--checkout .dolphin-header__back {
		width: auto;
		padding-inline: 12px 16px;
		font-size: 15px;
		font-weight: 600;
	}

	body .dolphin-header__back-label {
		position: static;
		width: auto;
		height: auto;
		overflow: visible;
		clip: auto;
		clip-path: none;
		white-space: normal;
	}
}
