/* My Bournemouth Shop: design layer over Storefront */
:root {
	--mb-ink: #111111;
	--mb-muted: #5f5f5f;
	--mb-line: #e6e6e6;
	--mb-soft: #f4f4f2;
	--mb-accent: #1f5fad;
	--mb-display: 'Anton', Impact, sans-serif;
	--mb-body: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

body,
button,
input,
select,
textarea {
	font-family: var(--mb-body);
}

body {
	background: #fff;
	color: var(--mb-ink);
}

h1, h2, .woocommerce-products-header__title, .related > h2, .upsells > h2 {
	font-family: var(--mb-display);
	font-weight: 400;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: var(--mb-ink);
}

a { color: var(--mb-ink); }
a:hover, a:focus { color: var(--mb-accent); }

:focus-visible {
	outline: 2px solid var(--mb-accent);
	outline-offset: 2px;
}

.mb-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
}

/* Header */
body .site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.97);
	border-bottom: 1px solid var(--mb-line);
	padding-top: 0.75em;
	margin-bottom: 2.5em;
}

body.admin-bar .site-header { top: 32px; }

@media (max-width: 782px) {
	body.admin-bar .site-header { top: 0; position: relative; }
}

body.mb-has-hero .site-header,
body.mb-has-hero.home .site-header,
body.mb-has-hero.woocommerce-active .site-header { margin-bottom: 0 !important; }

.site-branding .site-title {
	font-family: var(--mb-display);
	font-size: 1.9em;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	margin: 0;
}

.site-branding .site-title a { color: var(--mb-ink); }

.site-branding .site-description {
	font-size: 0.75em;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--mb-muted);
}

body .main-navigation ul li a,
body .site-header-cart .cart-contents {
	color: var(--mb-ink);
	font-weight: 600;
}

body .main-navigation ul li a:hover,
body .main-navigation ul li.current-menu-item > a { color: var(--mb-accent); }

.site-search .widget_product_search input[type="search"] {
	border-radius: 999px;
	background: var(--mb-soft);
	box-shadow: none;
}

/* Buttons */
body button,
body .button,
body input[type="submit"],
body .added_to_cart,
body .single_add_to_cart_button,
body button.alt,
body .button.alt {
	background: var(--mb-ink);
	border: 1.5px solid var(--mb-ink);
	color: #fff;
	border-radius: 999px;
	font-weight: 800;
	padding: 0.85em 1.6em;
	text-shadow: none;
}

body button:hover,
body .button:hover,
body .single_add_to_cart_button:hover,
body button.alt:hover,
body .button.alt:hover {
	background: #333;
	border-color: #333;
	color: #fff;
}

.mb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	border-radius: 999px;
	font-weight: 800;
	font-size: 1rem;
	text-decoration: none;
}

.mb-btn--light, .mb-btn--light:hover { background: #fff; color: var(--mb-ink); }
.mb-btn--ghost, .mb-btn--ghost:hover { color: #fff; border: 1.5px solid rgba(255, 255, 255, 0.8); }

/* Hero */
.mb-hero {
	position: relative;
	height: min(560px, 82vh);
	min-height: 440px;
	background: #0e1a24;
	color: #fff;
	overflow: hidden;
}

.mb-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mb-hero__video + .mb-hero__inner::before {
	left: -100vw;
	right: -100vw;
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.35) 55%, rgba(0, 0, 0, 0.2) 100%);
	z-index: -1;
}

.mb-hero__scene { position: absolute; inset: 0; }

.mb-hero__sun {
	position: absolute;
	left: 62%;
	top: 26%;
	width: 260px;
	height: 260px;
	border-radius: 50%;
	background: #e8a54b;
}

.mb-hero__sea {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 48%;
	background: #123247;
}

.mb-hero__waves {
	position: absolute;
	top: 0;
	left: 0;
	width: 200%;
	height: 100%;
	animation: mb-drift 36s linear infinite;
}

@keyframes mb-drift {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.mb-hero__waves { animation: none; }
}

.mb-hero__inner {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	max-width: 1280px;
	height: 100%;
	margin: 0 auto;
	padding: 0 24px 64px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 18px;
}

.mb-eyebrow {
	margin: 0;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #f2c98a;
}

.mb-hero__title {
	margin: 0;
	color: #fff;
	font-size: clamp(48px, 8vw, 108px);
	line-height: 0.95;
	max-width: 900px;
}

.mb-hero__lead {
	margin: 0;
	max-width: 560px;
	font-size: 18px;
	line-height: 1.55;
	color: #e3eaf0;
}

.mb-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }

.mb-trust { border-bottom: 1px solid var(--mb-line); margin-bottom: 3em; }

.mb-trust__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 18px 24px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 10px 40px;
	font-size: 14px;
	font-weight: 600;
	color: #333;
}

.mb-trust__inner span::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 10px;
	border-radius: 50%;
	background: var(--mb-accent);
	vertical-align: middle;
}

#mb-shop { scroll-margin-top: 90px; }

/* Shop grid */
.woocommerce-products-header { padding-bottom: 0.5em; }

.woocommerce-result-count,
.woocommerce-ordering,
.storefront-sorting { display: none !important; }

.mb-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 2em; }

.mb-chip {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border-radius: 999px;
	border: 1px solid #d6d6d6;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	color: var(--mb-ink);
}

.mb-chip.is-active, .mb-chip.is-active:hover { background: var(--mb-ink); border-color: var(--mb-ink); color: #fff; }

.site-main ul.products,
ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 36px 20px;
	margin: 0 0 3em !important;
}

ul.products::before,
ul.products::after { display: none !important; }

.site-main ul.products li.product,
ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
	text-align: left;
}

ul.products li.product img {
	border-radius: 14px;
	margin-bottom: 12px;
}

ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--mb-body);
	font-size: 16px;
	font-weight: 700;
	text-transform: none;
	padding: 0;
	margin-bottom: 4px;
}

ul.products li.product .price {
	color: var(--mb-ink);
	font-weight: 800;
	margin-bottom: 8px;
}

ul.products li.product .button { display: none; }

.mb-dots { display: flex; gap: 6px; }
.mb-dot { width: 14px; height: 14px; border-radius: 50%; }
.mb-dot--black { background: #141414; }
.mb-dot--white { background: #fff; box-shadow: inset 0 0 0 1px #bdbdbd; }

/* Product page */
.single-product div.product .woocommerce-product-gallery img { border-radius: 20px; }

.single-product div.product .summary {
	position: sticky;
	top: 110px;
	box-sizing: border-box;
	border: 1px solid var(--mb-line);
	border-radius: 20px;
	padding: 28px;
	background: #fff;
}

.single-product div.product .product_title {
	font-family: var(--mb-body);
	font-weight: 800;
	text-transform: none;
	font-size: 30px;
	line-height: 1.15;
	margin-bottom: 6px;
}

.single-product div.product p.price {
	color: var(--mb-ink);
	font-weight: 700;
	font-size: 22px;
}

.single-product div.product .woocommerce-product-details__short-description { color: #333; }

.single-product .product_meta .sku_wrapper { display: none; }

table.variations,
table.variations tbody,
table.variations tr,
table.variations th,
table.variations td {
	display: block;
	width: 100%;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
}

table.variations tr { margin-bottom: 18px; }

table.variations th.label label {
	font-size: 14px;
	font-weight: 700;
	margin-bottom: 10px;
	display: block;
}

.reset_variations,
.single_variation_wrap .woocommerce-variation-price { display: none !important; }

.mb-pills { display: grid; grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); gap: 8px; }

body .mb-pill {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 6px 10px;
	border-radius: 12px;
	background: #fff;
	color: var(--mb-ink);
	border: 2px solid #d6d6d6;
	font-size: 14px;
	font-weight: 700;
}

body .mb-pill:hover { background: #fff; color: var(--mb-ink); border-color: #999; }
body .mb-pill.is-active, body .mb-pill.is-active:hover { border-color: var(--mb-ink); background: var(--mb-ink); color: #fff; }
body .mb-pill.is-active .mb-swatch--white { box-shadow: inset 0 0 0 1px #fff; }

.mb-swatch { width: 18px; height: 18px; border-radius: 50%; box-shadow: inset 0 0 0 1px #9e9e9e; }
.mb-swatch--black { background: #141414; box-shadow: inset 0 0 0 1px #777; }
.mb-swatch--white { background: #fff; }

.mb-size-guide { margin: 0 0 18px; font-size: 13px; }
.mb-size-guide summary { cursor: pointer; font-weight: 600; text-decoration: underline; min-height: 32px; }
.mb-size-guide table { margin-top: 8px; }

.single_variation_wrap .woocommerce-variation-add-to-cart {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 12px;
}

.woocommerce-variation-add-to-cart .mb-qty-label { order: 1; font-size: 14px; font-weight: 700; }
.woocommerce-variation-add-to-cart .quantity { order: 2; float: none !important; margin: 0 !important; display: flex; align-items: center; align-self: flex-start; border: 1px solid #d6d6d6; border-radius: 999px; }
.woocommerce-variation-add-to-cart .mb-total { order: 3; }
.woocommerce-variation-add-to-cart .mb-buy { order: 4; }
.woocommerce-variation-add-to-cart .mb-buy-msg { order: 5; }
.woocommerce-variation-add-to-cart .mb-buy-panel { order: 6; }
.woocommerce-variation-add-to-cart .single_add_to_cart_button { order: 7; }
.woocommerce-variation-add-to-cart .mb-reassure { order: 8; }

.quantity .qty {
	width: 48px;
	border: 0;
	background: none;
	box-shadow: none;
	text-align: center;
	font-weight: 800;
	-moz-appearance: textfield;
}

.quantity .qty::-webkit-inner-spin-button,
.quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

body .mb-step {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: none;
	color: var(--mb-ink);
	font-size: 20px;
	font-weight: 600;
}

body .mb-step:hover { background: var(--mb-soft); color: var(--mb-ink); }

.mb-total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	border-top: 1px solid var(--mb-line);
	padding-top: 16px;
	color: var(--mb-muted);
}

.mb-total strong { color: var(--mb-ink); font-size: 22px; font-weight: 800; }
.mb-total.is-empty { display: none; }

body .mb-buy,
body .single_add_to_cart_button {
	width: 100%;
	min-height: 56px;
	font-size: 17px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

body .single_add_to_cart_button,
body .single_add_to_cart_button.disabled {
	background: #fff;
	color: var(--mb-ink);
}

body .single_add_to_cart_button:hover { background: var(--mb-soft); color: var(--mb-ink); border-color: var(--mb-ink); }

.mb-buy svg { transition: transform 0.2s; }
.mb-buy[aria-expanded="true"] svg { transform: rotate(180deg); }
.mb-buy.is-loading { opacity: 0.7; }

.mb-buy-msg { margin: 0; font-size: 14px; color: #b3261e; }
.mb-buy-msg:empty { display: none; }

.mb-buy-panel {
	border: 1px solid var(--mb-line);
	border-radius: 16px;
	overflow: hidden;
}

.mb-buy-panel iframe {
	display: block;
	width: 100%;
	height: 900px;
	border: 0;
}

.mb-reassure { list-style: none; margin: 4px 0 0; font-size: 13px; color: var(--mb-muted); }
.mb-reassure li { margin: 0 0 4px; }

/* Checkout shown inside the Buy now drop-down */
body.mb-embed .site-header,
body.mb-embed .site-footer,
body.mb-embed .storefront-breadcrumb,
body.mb-embed .storefront-handheld-footer-bar,
body.mb-embed .entry-header,
body.mb-embed #wpadminbar,
body.mb-embed .wc-block-components-checkout-return-to-cart-button { display: none !important; }

html:has(body.mb-embed) { margin-top: 0 !important; }

body.mb-embed .site-content { padding: 0; }
body.mb-embed .col-full { max-width: none; padding: 0 16px; margin: 0; }
body.mb-embed .site-main, body.mb-embed .content-area { margin: 0; }
body.mb-embed .hentry { margin: 0; padding: 16px 0 8px; }

/* Footer */
body .site-footer { background: #111; color: #bdbdbd; }
body .site-footer a { color: #fff; }
body .site-info { padding: 1.5em 0; }

@media (max-width: 767px) {
	.single-product div.product .summary { position: static; padding: 20px; }
	.mb-hero { min-height: 480px; }
}

/* Navigation bar: light grey with dark text */
body .storefront-primary-navigation {
	background: #f2f2f0;
	border-top: 1px solid #e4e4e1;
	margin-top: 1em;
}

body .storefront-primary-navigation .col-full {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
}

body .storefront-primary-navigation .main-navigation ul li a,
body .storefront-primary-navigation .main-navigation ul.menu > li > a,
body .storefront-primary-navigation .site-header-cart .cart-contents,
body .storefront-primary-navigation .site-header-cart .cart-contents .amount,
body .storefront-primary-navigation .site-header-cart .cart-contents::after {
	color: #111;
	opacity: 1;
}

body .storefront-primary-navigation .site-header-cart .cart-contents .count { color: #5f5f5f; opacity: 1; }

body .storefront-primary-navigation .main-navigation ul li a:hover,
body .storefront-primary-navigation .main-navigation ul li a:focus,
body .storefront-primary-navigation .site-header-cart .cart-contents:hover {
	color: #1f5fad;
}

body .storefront-primary-navigation .main-navigation ul.menu > li.current-menu-item > a,
body .storefront-primary-navigation .main-navigation ul.nav-menu > li.current-menu-item > a {
	color: #111;
	box-shadow: inset 0 -3px 0 #D9963A;
}

body .storefront-primary-navigation .menu-toggle,
body .storefront-primary-navigation .menu-toggle:hover {
	background: #fff;
	color: #111;
	border: 1.5px solid #111;
}

body .storefront-primary-navigation .menu-toggle span::before,
body .storefront-primary-navigation .menu-toggle span::after,
body .storefront-primary-navigation .menu-toggle::before,
body .storefront-primary-navigation .menu-toggle::after {
	background-color: #111;
}

body .storefront-primary-navigation .main-navigation.toggled ul.menu,
body .storefront-primary-navigation .main-navigation.toggled .handheld-navigation {
	background: #f2f2f0;
}

/* Cart drop-down under the cart total */
body .storefront-primary-navigation .site-header-cart .widget_shopping_cart {
	background: #fff;
	color: #111;
	border: 1px solid #e4e4e1;
	border-top: 3px solid #D9963A;
	border-radius: 0 0 12px 12px;
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}

body .storefront-primary-navigation .site-header-cart .widget_shopping_cart a,
body .storefront-primary-navigation .site-header-cart .widget_shopping_cart .product_list_widget li a { color: #111; }

body .storefront-primary-navigation .site-header-cart .widget_shopping_cart .product_list_widget li,
body .storefront-primary-navigation .site-header-cart .widget_shopping_cart p.total {
	background: transparent;
	border-color: #ececea;
}

body .storefront-primary-navigation .site-header-cart .widget_shopping_cart .buttons { padding: 0 1em 1em; }
body .storefront-primary-navigation .site-header-cart .widget_shopping_cart .buttons .button { color: #fff; }
body .storefront-primary-navigation .site-header-cart .widget_shopping_cart .buttons .button:not(.checkout) { background: #fff; color: #111; }

@media (min-width: 768px) {
	body .storefront-primary-navigation .site-header-cart { position: relative; }
	body .storefront-primary-navigation .site-header-cart .widget_shopping_cart { width: 320px; }
	body .storefront-primary-navigation .site-header-cart:hover .widget_shopping_cart,
	body .storefront-primary-navigation .site-header-cart.focus .widget_shopping_cart { left: auto; right: 0; }
	body .storefront-primary-navigation .site-header-cart .widget_shopping_cart .buttons { display: flex; gap: 8px; }
	body .storefront-primary-navigation .site-header-cart .widget_shopping_cart .buttons .button { flex: 1 1 0; padding: 0.75em 0.5em; font-size: 14px; white-space: nowrap; }
	body .storefront-primary-navigation .site-header-cart .widget_shopping_cart .buttons .button::after { display: none; }
}

@media (max-width: 767px) {
	.site-branding .site-title { font-size: 1.45em; white-space: nowrap; }
	.site-branding { margin-bottom: 0.75em; }
	body .storefront-primary-navigation { clear: both; margin-top: 0; }
}

/* Logo */
.mb-brand { margin: 0 0 1em; }
.mb-logo {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: #111;
	text-decoration: none;
}
.mb-logo:hover, .mb-logo:focus { color: #111; }
.mb-logo__mark { width: 56px; height: 56px; flex: none; }
.mb-logo__text { display: flex; flex-direction: column; }
body .mb-logo__name {
	margin: 0;
	font-family: 'DM Serif Display', Georgia, serif;
	font-weight: 400;
	font-size: 32px;
	line-height: 1;
	letter-spacing: 0.005em;
	text-transform: none;
	color: #111;
}
.mb-logo__tag {
	display: block;
	margin-top: 7px;
	font-family: var(--mb-body);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: #5f5f5f;
}
@media (max-width: 767px) {
	.mb-brand { margin: 0 0 0.75em; }
	.mb-logo { gap: 10px; }
	.mb-logo__mark { width: 40px; height: 40px; }
	body .mb-logo__name { font-size: 22px; white-space: nowrap; }
	.mb-logo__tag { font-size: 8.5px; letter-spacing: 0.22em; margin-top: 5px; }
}