/*
 * Announcement bar, header and search overlay.
 * All sizes and colors are tokens. Header and logo sizes come from the header
 * settings as --ccq-header-h, --ccq-header-h-m, --ccq-logo-w and --ccq-logo-w-m.
 */

:root {
	--ccq-header-actual-h: 65px;
}
@media (max-width: 1199px) {
	:root {
		--ccq-header-actual-h: 57px;
	}
}

/* Announcement bar. */
.ccq-announce { position: relative; min-height: var(--ccc-btn-height, 40px); display: flex; align-items: center; z-index: var(--ccc-z-announce, 101); }
.ccq-announce__inner { position: relative; width: 100%; display: grid; place-items: center; text-align: center; padding-top: 8px; padding-bottom: 8px; }
.ccq-announce__msg {
	grid-area: 1 / 1;
	margin: 0;
	font: 600 12px/1.3 var(--ccc-font-body, sans-serif);
	text-transform: uppercase;
	letter-spacing: var(--ccc-caps-spacing, 0.14em);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--ccc-duration, 250ms) var(--ccc-ease, ease-in-out), visibility 0s linear var(--ccc-duration, 250ms);
}
.ccq-announce__msg.is-active { opacity: 1; visibility: visible; transition-delay: 0s; }
.ccq-announce__msg a { margin-left: 0.6em; color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.ccq-announce__close { position: absolute; right: var(--ccc-gutter, 16px); top: 50%; transform: translateY(-50%); border: 0; background: none; color: inherit; font-size: var(--ccc-icon-lg, 20px); line-height: 1; cursor: pointer; }
.ccq-announce.is-dismissed { display: none; }

/* Header bar. */
.site-header,
.site-header.header-us,
.header-us {
	position: relative;
	z-index: var(--ccc-z-header, 1000) !important;
	background: var(--ccc-page, #f8f8f8);
	border-bottom: 1px solid var(--ccc-border, #d9d9d9);
	transition: transform 500ms var(--ccc-ease, ease-in-out), box-shadow var(--ccc-duration, 250ms) var(--ccc-ease, ease-in-out);
}
.site-header.header-us.header-us--sticky { position: sticky; top: 0; z-index: var(--ccc-z-header, 1000) !important; }
.admin-bar .site-header.header-us.header-us--sticky { top: 32px; }

/* Keep header below open drawers and full-screen backdrops */
body.ccq-drawer-open .site-header,
body.ccq-cart-open .site-header,
body.cart-widget-opened .site-header,
body.wd-opened .site-header,
body.site-drawer-open .site-header,
body.mobile-menu-active .site-header,
body.modal-open .site-header {
	z-index: var(--ccc-z-sticky, 100) !important;
}

.ccq-cdrawer,
.ccq-drawer,
.cart-widget-side,
.wd-side-hidden,
.site-drawer {
	z-index: var(--ccc-z-modal, 99999) !important;
}

.wd-close-side,
.site-drawer-overlay,
.drawer-overlay {
	z-index: var(--ccc-z-drawer, 99998) !important;
}

.ccq-cdrawer__backdrop,
.ccq-drawer__backdrop {
	z-index: var(--ccc-z-raised, 10) !important;
}

.ccq-cdrawer__panel,
.ccq-drawer__panel {
	z-index: var(--ccc-z-raised, 10) !important;
}

/* Review modal layering.
 * Third-party review overlays (Okendo `oke-` widgets: the Reviews Tab
 * pop-up, modal, dialog and backdrop) ship with little or no z-index of
 * their own, so the sticky header (1050), its dropdowns (1100) and the
 * sticky product bar paint above them and swallow the top of the panel,
 * including its Close control. These sit just below the drawers (99999)
 * and above everything else, so a review pop-up always wins over sticky
 * chrome while a cart or menu drawer still wins over it. `!important`
 * beats the vendor stylesheet. Each selector pairs the vendor prefix with
 * a dialog word or a dialog role, so inline widgets and the floating tab
 * keep their own stacking. */
[class*="oke-"][class*="modal" i],
[class*="oke-"][class*="dialog" i],
[class*="oke-"][class*="popup" i],
[class*="oke-"][class*="overlay" i],
[class*="oke-"][class*="backdrop" i],
[class*="oke-"][class*="lightbox" i],
[class*="oke-"][role="dialog"],
[class*="oke-"][aria-modal="true"],
[class*="review-modal" i],
[class*="reviews-modal" i],
[id*="review-modal" i],
[id*="reviews-modal" i] {
	z-index: var(--ccc-z-review, 99990) !important;
}

/* Submenu dropdowns and mega panels must render above page content */
.header-us .sub-menu,
.header-us__nav .sub-menu,
.header-us__utility .sub-menu,
.ccq-menu-nav.horizontal .sub-menu,
.klb-menu-nav.horizontal .sub-menu,
.mega-menu > .sub-menu,
.site-header .sub-menu {
	z-index: var(--ccc-z-dropdown, 1100) !important;
}
.header-us__bar {
	display: flex;
	align-items: center;
	gap: 24px;
	min-height: var(--ccq-header-h-m, 56px);
}
@media (min-width: 1200px) {
	.header-us__bar { min-height: var(--ccq-header-h, 72px); }
}
.header-us__left { display: flex; align-items: center; gap: 12px; }
.header-us__logo { display: inline-flex; align-items: center; color: var(--ccc-ink, #0b1014); text-decoration: none; }
.header-us__logo img { width: var(--ccq-logo-w-m, 167px); max-width: 60vw; height: auto; }
.header-us__logo .light-logo { display: none; }
@media (min-width: 1200px) {
	.header-us__logo img { width: var(--ccq-logo-w, 214px); }
}
.header-us__logo .brand-text { font: 400 26px/1 var(--ccc-font-heading, "Crimson Text", Georgia, serif); }

.header-us .header-us__nav.container { width: auto; max-width: none; margin: 0; padding: 0; }
.header-us__nav { flex: 1 1 0; min-width: 0; display: flex; justify-content: center; }
.header-us .header-us__nav .ccq-menu { display: flex; flex-wrap: nowrap; align-items: center; gap: 4px 14px; margin: 0; padding: 0; list-style: none; }
.header-us .header-us__nav.ccq-menu-nav > .ccq-menu > li { margin: 0; padding: 0; }
.header-us .header-us__nav.ccq-menu-nav > .ccq-menu > li > a {
	padding: var(--ccc-space-2, 8px) 0;
	/*
	 * An uppercase label, so it takes the caption size through the shorthand.
	 * The size cannot be set on its own: the font shorthand on the next line
	 * resets font-size, and a longhand declared before the shorthand that
	 * overrides it is dead.
	 */
	font: var(--ccc-weight-button, 600) var(--ccc-fs-caption, 12px) / 1 var(--ccc-font-body, sans-serif);
	text-transform: uppercase;
	letter-spacing: var(--ccc-caps-spacing, 0.14em);
	color: var(--ccc-ink, #0b1014);
	white-space: nowrap;
}

.header-us__right { margin-left: auto; flex: 0 0 auto; display: flex; align-items: center; gap: 4px; }
.header-us__utility { display: flex; align-items: center; gap: var(--ccc-space-3, 12px); margin: 0 12px 0 0; padding: 0; list-style: none; }
.header-us__utility > li { position: relative; }
.header-us__utility a {
	font: 600 12px/1 var(--ccc-font-body, sans-serif);
	text-transform: uppercase;
	letter-spacing: var(--ccc-caps-spacing, 0.14em);
	color: var(--ccc-ink, #0b1014);
	text-decoration: none;
}
.header-us__utility .sub-menu {
	position: absolute;
	right: 0;
	top: 100%;
	min-width: 200px;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background: var(--ccc-page, #f8f8f8);
	border: 1px solid var(--ccc-border, #d9d9d9);
	border-radius: 0 0 var(--ccc-radius-lg, 8px) var(--ccc-radius-lg, 8px);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--ccc-duration, 250ms) var(--ccc-ease, ease-in-out), visibility 0s linear var(--ccc-duration, 250ms);
}
.header-us__utility .sub-menu a { display: block; padding: var(--ccc-space-3, 12px) var(--ccc-space-4, 16px); }
.header-us__utility > li:hover > .sub-menu,
.header-us__utility > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transition-delay: 0s; }
.header-us .header-us__icon {
	padding: 0;
	box-shadow: none;
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 0;
	background: none;
	color: var(--ccc-ink, #0b1014);
	font-size: var(--ccc-icon-lg, 20px);
	cursor: pointer;
}
.header-us__icon:focus-visible { outline: none; box-shadow: var(--ccc-focus, 0 0 0 2px currentColor); border-radius: var(--ccc-radius, 4px); }

/*
 * The off-canvas drawer carries a second copy of the primary menu, so it needs
 * its own rule or it falls back to the parent theme's 500 weight and 15px serif,
 * which is neither the desktop nav's size nor a role on the ladder. Same type as
 * the desktop nav, so the two cannot drift.
 */
.site-drawer .ccq-menu > li > a,
.site-drawer .ccq-menu > li > a:visited {
	font-family: var(--ccc-font-heading, "Crimson Text", Georgia, serif);
	font-size: var(--ccc-fs-body-lg, 16px);
	line-height: 1.4;
	font-weight: var(--ccc-weight-heading, 400);
	letter-spacing: 0;
	text-transform: none;
	color: var(--ccc-ink, #0b1014);
}
/*
 * The parent theme sets the drawer menu's weight with a longer selector chain,
 * so the shorthands above lose. !important is used here for the same reason
 * harmony.css uses it: this is territory the child cannot reach by specificity
 * alone, and the alternative is letting a number outside the ladder stand.
 */
.site-drawer .ccq-menu > li > a,
.site-drawer .sub-menu .ccc-mega-links a {
	font-size: var(--ccc-fs-body-lg, 16px) !important;
	font-weight: var(--ccc-weight-heading, 400) !important;
}
.site-drawer .sub-menu .ccc-mega-links a {
	font-size: var(--ccc-fs-body-sm, 14px) !important;
}

/* Between 1200 and 1399px there is not room for the utility links; they move to the drawer. */
@media (min-width: 1200px) and (max-width: 1399px) {
	.header-us__utility { display: none; }
}

/* Auto-hide: only from the second scroll step, and never while a menu is open. */
html[data-scroll-direction="down"] .site-header.header-us--autohide.is-past { transform: translateY(-100%); }
.header-us.is-scrolled { box-shadow: none; border-bottom: 1px solid var(--ccc-primary, #1e2934); }
.header-us:focus-within,
.header-us:hover { transform: none !important; }

/* Search overlay. */
.ccq-search[hidden] { display: none; }
.ccq-search { position: fixed; inset: 0; z-index: var(--ccc-z-overlay, 2000); }
.ccq-search__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.75); animation: ccq-fade var(--ccc-duration, 250ms) var(--ccc-ease, ease-in-out); }
.ccq-search__panel {
	position: relative;
	max-height: 90vh;
	overflow: auto;
	padding: 24px var(--ccc-gutter, 16px) 32px;
	background: var(--ccq-bg, #fff);
	animation: ccq-fade var(--ccc-duration, 250ms) var(--ccc-ease, ease-in-out);
}
.ccq-search__form { display: flex; gap: 12px; align-items: center; width: 100%; max-width: 100%; margin: 0 0 24px; box-sizing: border-box; }
.ccq-search__input {
	flex: 1;
	height: 48px !important;
	min-height: 48px !important;
	padding: 0 16px;
	border: 1px solid var(--ccc-border, #d9d9d9);
	border-radius: var(--ccc-radius, 4px);
	font: 400 16px/1 var(--ccc-font-body, sans-serif);
	color: var(--ccc-ink, #0b1014);
	background: var(--ccc-page, #f8f8f8);
	box-sizing: border-box !important;
}
.ccq-search__form .ccq-btn,
.ccq-search__form button[type="submit"] {
	height: 48px !important;
	min-height: 48px !important;
	padding: 0 24px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: var(--ccc-radius, 4px) !important;
	box-sizing: border-box !important;
	line-height: 1 !important;
}
.ccq-search__close {
	height: 40px !important;
	min-height: 40px !important;
	width: 40px !important;
	min-width: 40px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	border: 1px solid transparent !important;
	border-radius: var(--ccc-radius, 4px) !important;
	background: transparent !important;
	cursor: pointer !important;
	color: var(--ccc-ink, #0b1014) !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
	transition: background-color 200ms ease, border-color 200ms ease, color 200ms ease;
}
.ccq-search__close:hover {
	background: rgba(11, 16, 20, 0.06) !important;
	color: var(--ccc-primary, #1e2934) !important;
	border-color: transparent !important;
}
.ccq-search__close svg {
	display: block !important;
	width: 20px !important;
	height: 20px !important;
	stroke: currentColor !important;
	stroke-width: 1.8 !important;
	pointer-events: none !important;
}
.ccq-search__block { width: 100%; max-width: 100%; margin: 0 0 24px; box-sizing: border-box; }
.ccq-search__title { margin: 0 0 var(--ccc-space-3, 12px); font-size: var(--ccc-fs-caption, 12px); font-family: var(--ccc-font-body, sans-serif); font-weight: var(--ccc-weight-button, 600); }
.ccq-search__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ccq-search__chips .ccq-chip { text-decoration: none; }
.ccq-search__products { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .ccq-search__products { grid-template-columns: repeat(4, 1fr); } }
.ccq-search__products a { display: block; color: inherit; text-decoration: none; }
.ccq-search__products img { width: 100%; height: auto; border-radius: var(--ccc-radius, 4px); }
.ccq-search__pname { display: block; margin-top: 8px; font: 400 18px/1.2 var(--ccc-font-heading, "Crimson Text", Georgia, serif); color: var(--ccc-ink, #0b1014); }
.ccq-search__price { display: block; font-size: var(--ccc-fs-body-sm, 14px); }
body.ccq-search-open { overflow: hidden; }
@keyframes ccq-fade { from { opacity: 0; } to { opacity: 1; } }

/* Icons only: the theme's "Sign In / Account" caption takes room the menu needs. */
.header-us .header-action .action-text { display: none; }
.header-us .header-action { margin: 0; }

/* Phones: the theme's bottom bar already carries account and wishlist, so the
 * header keeps only search and the cart. */
@media (max-width: 1199px) {
	.header-us .header-us__right .login-button,
	.header-us .header-us__right .wishlist-button,
	.header-us .header-us__right .compare-button { display: none; }
	.header-us__bar { gap: 8px; }
}

/* Footer. Colors come from the section scheme; sizes from the tokens. */
.footer-us { padding: var(--ccc-section-gap, 48px) 0 24px; }
.footer-us a { color: inherit; text-decoration: none; }
.footer-us a:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer-us__newsletter { display: grid; gap: 16px; align-items: center; padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid color-mix(in srgb, currentColor 25%, transparent); }
@media (min-width: 1024px) { .footer-us__newsletter { grid-template-columns: 1fr 1fr; } }
.footer-us__newsletter h2 { margin: 0 0 6px; font: 400 clamp(24px, 2.4vw, 36px)/1.15 var(--ccc-font-heading, "Crimson Text", Georgia, serif); color: inherit; }
.footer-us__newsletter p { margin: 0; }
.footer-us__newsletter .mailpoet_form, .footer-us__newsletter form { margin: 0; }
.footer-us__newsletter input[type="email"], .footer-us__newsletter input[type="text"] {
	min-height: 44px; padding: 0 14px; border: 1px solid var(--ccc-border, #d9d9d9); border-radius: var(--ccc-radius, 4px);
	background: var(--ccc-page, #f8f8f8); color: var(--ccc-ink, #0b1014); width: 100%;
}
.footer-us__newsletter input[type="submit"], .footer-us__newsletter button[type="submit"] {
	min-height: 44px; padding: 0 var(--ccc-btn-pad-x, 22px); border: 1px solid var(--ccq-btn-bg, #fff); border-radius: var(--ccc-radius, 4px);
	background: var(--ccq-btn-bg, #fff); color: var(--ccq-btn-fg, #1e2934); text-transform: uppercase; letter-spacing: var(--ccc-caps-spacing, 0.14em);
	font: 600 12px/1 var(--ccc-font-body, sans-serif); cursor: pointer;
}
.footer-us__columns { display: grid; gap: 0 32px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .footer-us__columns { grid-template-columns: repeat(4, 1fr); } }
.footer-us__col summary { display: flex; justify-content: space-between; align-items: center; min-height: 60px; cursor: pointer; list-style: none; font-size: var(--ccc-fs-caption, 12px); font-weight: var(--ccc-weight-button, 600); }
.footer-us__col summary::-webkit-details-marker { display: none; }
.footer-us__col summary::after { content: "+"; font-size: var(--ccc-icon-lg, 20px); }
.footer-us__col[open] summary::after { content: "\2212"; }
@media (min-width: 768px) {
	.footer-us__col summary { pointer-events: none; min-height: 0; margin-bottom: var(--ccc-space-3, 12px); }
	.footer-us__col summary::after { content: none; }
}
.footer-us__list, .footer-us__legal { margin: 0; padding: 0; list-style: none; }
.footer-us__list li { margin: 0 0 var(--ccc-space-3, 12px); font-size: var(--ccc-fs-body-sm, 14px); }
.footer-us__socials { display: flex; gap: var(--ccc-space-3, 12px); margin: var(--ccc-space-5, 24px) 0 0; padding: 0; list-style: none; font-size: var(--ccc-icon-lg, 20px); }
.footer-us__cities { margin-top: 24px; border-bottom-color: color-mix(in srgb, currentColor 25%, transparent); }
.footer-us__cities .ccq-accordion__body { display: grid; gap: var(--ccc-space-2, 8px) var(--ccc-space-5, 24px); grid-template-columns: repeat(2, 1fr); margin: 0; padding: 0 0 var(--ccc-space-4, 16px); list-style: none; font-size: var(--ccc-fs-body-sm, 14px); }
@media (min-width: 768px) { .footer-us__cities .ccq-accordion__body { grid-template-columns: repeat(4, 1fr); } }
.footer-us__bottom { display: flex; flex-wrap: wrap; gap: var(--ccc-space-2, 8px) var(--ccc-space-5, 24px); justify-content: space-between; align-items: center; margin-top: var(--ccc-space-5, 24px); font-size: var(--ccc-fs-label, 13px); }
.footer-us__copy { margin: 0; }
.footer-us__legal { display: flex; flex-wrap: wrap; gap: var(--ccc-space-2, 8px) var(--ccc-space-4, 16px); }

/* Newsletter form: an email field and a button on one line, message beneath. */
.ccq-subscribe { display: flex; flex-wrap: wrap; gap: 8px; position: relative; }
.ccq-subscribe__email { flex: 1 1 220px; }
.ccq-subscribe__msg { flex: 1 1 100%; margin: var(--ccc-space-1, 4px) 0 0; min-height: 1.2em; font-size: var(--ccc-fs-label, 13px); }
.ccq-subscribe__msg.is-error { color: var(--ccc-blush, #fff2ed); text-decoration: underline; text-underline-offset: 3px; }

/* The parent adds 60px above its own footer. Ours follows sections that carry their own space. */
.site-footer.footer-us { margin-top: 0; }

/* Laptop widths: tighten the bar so eight menu items and four utility links fit. */
@media (min-width: 1400px) and (max-width: 1699px) {
	.header-us__bar { gap: 16px; }
	.header-us__logo img { width: min(var(--ccq-logo-w, 180px), 160px); }
	.header-us .header-us__nav.ccq-menu-nav > .ccq-menu { gap: 4px 12px; }
	.header-us .header-us__nav.ccq-menu-nav > .ccq-menu > li > a { font-size: var(--ccc-fs-overline, 11px); letter-spacing: 0.06em; }
	.header-us__utility { gap: var(--ccc-space-3, 12px); margin-right: var(--ccc-space-2, 8px); }
	.header-us__utility a { font-size: var(--ccc-fs-overline, 11px); letter-spacing: 0.06em; }
}

/* Plain content pages (Our story, Accessibility, policies) are block-editor text in
 * .ccq-post, and its section headings came in at 15px, the size of body text. */
.ccq-post h2, .ccq-post h3, .ccq-post h2.wp-block-heading, .ccq-post h3.wp-block-heading { font-family: var(--ccc-font-heading, "Crimson Text", Georgia, serif); font-weight: 400; line-height: 1.15; color: var(--ccc-ink, #0b1014); margin: 1.6em 0 0.5em; }
.ccq-post h2, .ccq-post h2.wp-block-heading { font-size: clamp(24px, 2.4vw, 34px); }
.ccq-post h3, .ccq-post h3.wp-block-heading { font-size: clamp(20px, 1.8vw, 26px); }

/* A label and the paragraph it introduces, as used on Our story, Shipping and
 * delivery, Wholesale and Affiliate programme. setup/17-page-semantics.php marks
 * the pair: the label is a real heading so it is one for a screen reader and a
 * target for in-page links, but it reads as a small tracked-out line rather than
 * as a section title, and the paragraph it introduces reads as a lede. */
.ccq-post h2.ccq-label, .ccq-post h2.ccq-label.wp-block-heading {
	font-family: var(--ccc-font-body, sans-serif);
	font-size: var(--ccc-fs-caption, 12px);
	font-weight: 600;
	letter-spacing: var(--ccc-caps-spacing, 0.14em);
	text-transform: uppercase;
	line-height: 1.4;
	color: var(--ccc-text, #515151);
	margin: 2.4em 0 0.7em;
}
.ccq-post h2.ccq-label:first-of-type { margin-top: 0.6em; }
.ccq-post p.ccq-prose {
	font-family: var(--ccc-font-heading, "Crimson Text", Georgia, serif);
	font-size: clamp(19px, 1.9vw, 27px);
	line-height: 1.42;
	color: var(--ccc-ink, #0b1014);
	margin: 0 0 0.9em;
	max-width: 34em;
}

/* Parity pass: nav left, logo centred, utilities right, all in the serif face. */
@media (min-width: 1200px) {
	.header-us__bar { position: relative; min-height: 64px; gap: 0; }
	.header-us__left { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: var(--ccc-z-raised, 10); }
	.header-us .header-us__nav { order: 1; flex: 0 1 auto; justify-content: flex-start; }
	.header-us .header-us__right { order: 3; }
	.header-us .header-us__logo img { width: 150px; max-height: 30px; object-fit: contain; }
	.header-us .header-us__nav .ccq-menu { gap: 4px 12px; }
}
.header-us .header-us__nav.ccq-menu-nav > .ccq-menu > li > a,
.header-us__utility a {
	font: var(--ccc-weight-heading, 400) var(--ccc-fs-body-lg, 16px)/1 var(--ccc-font-heading, "Crimson Text", Georgia, serif);
	/*
	 * Set as a longhand too, because the parent theme applies weight 500 to
	 * menu items and the font shorthand is overridden by a rule of higher
	 * specificity elsewhere. The serif is a light face, so 500 and 700 both get
	 * faked by the browser.
	 */
	font-weight: var(--ccc-weight-heading, 400);
	text-transform: none;
	letter-spacing: 0;
}
.header-us__utility { gap: var(--ccc-space-5, 24px); }
.ccq-announce__msg { font: var(--ccc-weight-heading, 400) var(--ccc-fs-body-sm, 14px)/1.3 var(--ccc-font-heading, "Crimson Text", Georgia, serif); text-transform: none; letter-spacing: 0; }
.ccq-announce { min-height: var(--ccc-btn-height, 40px); }
@media (min-width: 1200px) { .header-us .header-us__nav.ccq-menu-nav > .ccq-menu > li > a { font-size: var(--ccc-fs-body, 15px); } }

/* Mega menu cards: image, then a centred serif label, evenly spaced. */
.header-us__nav .sub-menu .elementor-widget-image { text-align: center; }
.header-us__nav .sub-menu .elementor-widget-image img { border-radius: var(--ccc-radius-lg, 8px); width: 100%; max-width: 150px; height: auto; aspect-ratio: 1; object-fit: cover; }
.header-us__nav .sub-menu .elementor-widget-heading .elementor-heading-title,
.header-us__nav .sub-menu .elementor-widget-heading { text-align: center; font: var(--ccc-weight-heading, 400) var(--ccc-fs-h4, 20px)/1.25 var(--ccc-font-heading, "Crimson Text", Georgia, serif); }
.header-us__nav .sub-menu .elementor-widget-heading a { color: var(--ccc-ink, #0b1014); }
.header-us__nav .sub-menu .elementor-widget-wrap { row-gap: var(--ccc-space-3, 12px); padding-block: 20px; }
.site-gdpr.active { padding-right: var(--ccc-space-9, 96px); }
.header-us__nav .sub-menu .elementor-widget-text-editor { text-align: center; font: var(--ccc-weight-heading, 400) var(--ccc-fs-h4, 20px)/1.25 var(--ccc-font-heading, "Crimson Text", Georgia, serif); }
.header-us__nav .sub-menu .elementor-widget-text-editor p { margin: 0; }
.header-us__nav .sub-menu .elementor-widget-text-editor a { color: var(--ccc-ink, #0b1014); text-decoration: none; }

.ccq-search__none { margin: 0; font: 400 18px/1.4 var(--ccc-font-heading, "Crimson Text", Georgia, serif); }
.ccq-search__all { margin: 16px 0 0; }
.ccq-search__products { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 16px; }
.site-gdpr.site-gdpr.active { z-index: var(--ccc-z-drawer, 99998); }
.ccq-search [hidden] { display: none !important; }
/* The parent theme's bottom tab bar has no Urbanstems counterpart; the header already carries menu, search and cart. */
.ccq-mobile-bottom { display: none !important; }

/* Mega panels: one tidy pattern for the media + copy + links + button templates. */
@media (min-width: 1200px) {
	.header-us__nav .sub-menu .elementor > .elementor-section > .elementor-container { max-width: 1240px; margin: 0 auto; padding: 36px 40px 40px; gap: 0 56px; align-items: center; flex-wrap: nowrap; }
	.header-us__nav .sub-menu .elementor-column { width: auto !important; }
	.header-us__nav .sub-menu .elementor-column:first-child:has(.elementor-widget-video, .elementor-widget-image + .elementor-widget-text-editor:last-child) { flex: 0 0 42%; }
	.header-us__nav .sub-menu .elementor-column:has(.elementor-widget-video) + .elementor-column { flex: 1 1 0; min-width: 0; }
	.header-us__nav .sub-menu .elementor-widget-video .elementor-wrapper { border-radius: var(--ccc-radius-lg, 8px); overflow: hidden; aspect-ratio: 4 / 3; background: var(--ccc-cream, #f2f1eb); }
	.header-us__nav .sub-menu .elementor-widget-video video { width: 100%; height: 100%; object-fit: cover; display: block; }
}
/* Copy column. */
.header-us__nav .sub-menu .elementor-widget-text-editor h3 { margin: 0 0 8px; font: 400 clamp(26px, 2.2vw, 34px)/1.1 var(--ccc-font-heading, "Crimson Text", Georgia, serif); text-align: left; color: var(--ccc-ink, #0b1014); }
.header-us__nav .sub-menu .elementor-widget-text-editor p { margin: 0 0 18px; max-width: 60ch; font: 400 15px/1.5 var(--ccc-font-body, sans-serif); text-align: left; color: var(--ccc-text, #515151); }
.header-us__nav .sub-menu .ccc-mega-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 32px; margin: 0 0 22px; padding: 0; list-style: none; }
.header-us__nav .sub-menu .ccc-mega-list li { margin: 0; padding: 0; text-align: left; }
.header-us__nav .sub-menu .ccc-mega-list a { display: inline-block; padding: var(--ccc-space-2, 8px) 0; font: 400 18px/1.25 var(--ccc-font-heading, "Crimson Text", Georgia, serif); color: var(--ccc-ink, #0b1014); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size 250ms var(--ccc-ease, ease-in-out); }
@media (hover: hover) { .header-us__nav .sub-menu .ccc-mega-list a:hover { background-size: 100% 1px; } }
/* Button matches .ccq-btn. */
.header-us__nav .sub-menu .elementor-widget-button .elementor-button { min-height: var(--ccc-btn-height, 40px); padding: 0 var(--ccc-space-5, 24px); border-radius: var(--ccc-radius, 4px); font: 600 12px/1 var(--ccc-font-body, sans-serif); text-transform: uppercase; letter-spacing: var(--ccc-caps-spacing, 0.14em); }
.header-us__nav .sub-menu .elementor-widget-button .elementor-button-wrapper { text-align: left; }
.header-us__nav .sub-menu .elementor-widget-wrap { align-content: center; }
/* Cards without media (Gifts): bordered, left aligned, button under the title. */
.header-us__nav .sub-menu .elementor-section:not(:has(.elementor-widget-video, .elementor-widget-image)) .elementor-column:has(.elementor-widget-button) .elementor-widget-wrap { padding: 24px; border: 1px solid var(--ccc-border, #d9d9d9); border-radius: var(--ccc-radius-lg, 8px); background: #fff; gap: var(--ccc-space-3, 12px); }
.header-us__nav .sub-menu .elementor-section:not(:has(.elementor-widget-video, .elementor-widget-image)) .elementor-widget-text-editor { text-align: left; font: 400 24px/1.15 var(--ccc-font-heading, "Crimson Text", Georgia, serif); }
.header-us__nav .sub-menu .elementor-column { min-width: 0; }
.header-us__nav .sub-menu .elementor-column > .elementor-widget-wrap { width: 100%; padding: 0; }
.header-us__nav .sub-menu .elementor-widget-text-editor .elementor-widget-container { padding: 0; }
.header-us__nav .sub-menu, .header-us__nav .sub-menu * { white-space: normal; }
.header-us__nav .sub-menu .elementor-widget-video .elementor-wrapper { width: 100% !important; height: auto !important; padding: 0 !important; }
.header-us__nav .sub-menu .elementor-widget-video { width: 100%; }
.header-us__nav .sub-menu .ccc-mega-list { align-items: start; }
.header-us__nav .sub-menu .ccc-mega-list li { margin: 0 !important; padding: 0 !important; line-height: 1.25 !important; min-height: 0 !important; }
.header-us__nav .sub-menu .ccc-mega-list li:first-child { margin-top: 0 !important; }

/* Parity pass: footer. Lead block (logo, tagline, socials) left, four link columns right. */
.footer-us { padding: clamp(40px, 5vw, 72px) 0 0; }
.footer-us .footer-us__inner { max-width: none; padding-inline: clamp(16px, 4vw, 84px); }
.footer-us__top { display: grid; gap: 40px; }
@media (min-width: 1024px) { .footer-us__top { grid-template-columns: minmax(280px, 26%) 1fr; gap: 64px; padding-bottom: 48px; } }
.footer-us__lead { display: flex; flex-direction: column; gap: 28px; }
.footer-us__logo { display: inline-block; color: var(--ccc-ink, #0b1014); }
.footer-us__logo img { width: 200px; max-height: 36px; object-fit: contain; object-position: left; display: block; }
.footer-us__logo span { font: 400 30px/1 var(--ccc-font-heading, "Crimson Text", Georgia, serif); }
.footer-us__newsletter { display: block; padding: 0; margin: 0; border: 0; }
.footer-us__newsletter h2 { margin: 0 0 12px; font: 400 clamp(24px, 2.1vw, 32px)/1.25 var(--ccc-font-heading, "Crimson Text", Georgia, serif); color: var(--ccc-ink, #0b1014); }
.footer-us__newsletter p { margin: 0 0 16px; font: 400 14px/1.5 var(--ccc-font-body, sans-serif); max-width: 40ch; }
.footer-us__socials { margin: auto 0 0; gap: var(--ccc-space-5, 24px); color: var(--ccc-ink, #0b1014); }
.footer-us__columns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; align-content: start; }
@media (min-width: 768px) { .footer-us__columns { grid-template-columns: repeat(4, auto); justify-content: space-between; gap: 0 32px; } }
.footer-us__col summary { font: 700 14px/1.2 var(--ccc-font-body, sans-serif); text-transform: none; letter-spacing: 0; color: var(--ccc-ink, #0b1014); margin-bottom: 16px; }
.footer-us__cities {
	margin: 0 calc(-1 * clamp(16px, 4vw, 84px)) !important;
	padding-inline: clamp(16px, 4vw, 84px) !important;
	padding-block: 0 !important;
	border-top: 1px solid var(--ccc-ink, #0b1014) !important;
	border-bottom: none !important;
}
.footer-us__cities summary::-webkit-details-marker { display: none; }
.footer-us .footer-us__cities > summary::before { display: none !important; content: none !important; }
.footer-us__cities summary::after,
.footer-us .footer-us__cities > summary::after {
	content: "" !important;
	display: inline-block !important;
	width: 7px !important;
	height: 7px !important;
	border: none !important;
	border-right: 1.5px solid currentColor !important;
	border-top: 1.5px solid currentColor !important;
	transform: rotate(45deg) !important;
	margin: 0 0 0 10px !important;
	flex: 0 0 auto !important;
	align-self: center !important;
	transition: transform 250ms var(--ccc-ease, ease-in-out) !important;
	position: static !important;
	background: none !important;
}
.footer-us__cities[open] summary::after,
.footer-us .footer-us__cities[open] > summary::after {
	transform: rotate(135deg) !important;
}
.footer-us__cities .footer-us__cities-body { padding-bottom: 32px; }
.footer-us__cities-list { list-style: none; margin: 0; padding: 0; }
.footer-us__cities-list li { padding: var(--ccc-space-1, 4px) 0; font: 400 clamp(16px, 1.25vw, 19px)/1.3 var(--ccc-font-heading, "Crimson Text", Georgia, serif); color: var(--ccc-ink, #0b1014); }
.footer-us__cities-list a { color: inherit; text-decoration: none; }
.footer-us__cities-list a:hover { text-decoration: underline; }
.footer-us__bottom {
	margin: 0 calc(-1 * clamp(16px, 4vw, 84px)) !important;
	padding-inline: clamp(16px, 4vw, 84px) !important;
	padding-block: 28px 32px !important;
	border-top: 1px solid var(--ccc-ink, #0b1014) !important;
	border-bottom: none !important;
	font: 400 14px/1.4 var(--ccc-font-heading, "Crimson Text", Georgia, serif);
}
.footer-us .ccq-subscribe__email { min-height: 44px; }
.footer-us .ccq-subscribe button[type="submit"] { width: 100%; }
@media (min-width: 768px) {
	.footer-us .footer-us__col > summary::after { content: none !important; display: none; }
	.footer-us .footer-us__columns { grid-template-columns: repeat(4, minmax(0, 1fr)); justify-content: stretch; }
}
.footer-us__col > summary::after { color: var(--ccc-ink, #0b1014); }
.footer-us .footer-us__cities > summary { justify-content: flex-start; text-transform: none; letter-spacing: 0; font: 400 19px/1 var(--ccc-font-heading, "Crimson Text", Georgia, serif); padding: 0; }

/* Call to action above the footer: three columns split by hairlines. */
.ccq-cta { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--ccc-ink, #0b1014); border-bottom: 1px solid var(--ccc-ink, #0b1014); background: var(--ccc-page, #f8f8f8); }
@media (min-width: 768px) { .ccq-cta { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); } }
.ccq-cta__col { display: flex; flex-direction: column; align-items: center; text-align: center; padding: clamp(40px, 5vw, 72px) clamp(20px, 4vw, 64px) clamp(36px, 4.5vw, 64px); }
.ccq-cta__col + .ccq-cta__col { border-top: 1px solid var(--ccc-ink, #0b1014); }
@media (min-width: 768px) { .ccq-cta__col + .ccq-cta__col { border-top: 0; border-left: 1px solid var(--ccc-ink, #0b1014); } }
.ccq-cta__icon { width: 96px; height: 96px; margin-bottom: 28px; color: var(--ccc-primary, #1e2934); }
.ccq-cta__title { margin: 0 0 12px; font: 400 clamp(24px, 2vw, 30px)/1.15 var(--ccc-font-heading, "Crimson Text", Georgia, serif); color: var(--ccc-ink, #0b1014); }
.ccq-cta__text { max-width: 30ch; margin: 0 0 22px; font: 400 clamp(15px, 1.15vw, 17px)/1.5 var(--ccc-font-body, sans-serif); color: var(--ccc-text, #515151); }
.ccq-cta__link { padding-bottom: var(--ccc-space-1, 4px); border-bottom: 2px solid var(--ccc-primary, #1e2934); font: var(--ccc-weight-button, 600) var(--ccc-fs-label, 13px)/1.2 var(--ccc-font-body, sans-serif); letter-spacing: var(--ccc-caps-spacing, 0.14em); text-transform: uppercase; color: var(--ccc-primary, #1e2934); text-decoration: none; transition: opacity 250ms var(--ccc-ease, ease-in-out); }
@media (hover: hover) { .ccq-cta__link:hover { opacity: 0.65; } }

/* Mega panels share the page grid: same side gutter as the sections below the header. */
@media (min-width: 1200px) {
	.header-us__nav .sub-menu .charcuteried-elementor-template { max-width: none; width: 100%; }
	.header-us__nav .sub-menu .elementor > .elementor-section > .elementor-container { max-width: none; padding-inline: var(--ccc-gutter, 52px); }
}

/* Category card grid used by Best Sellers and Occasions: left aligned, six across. */
.header-us__nav .sub-menu .ccq-mega-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; width: 100%; margin: 0; padding: 32px 0 36px; list-style: none; }
.header-us__nav .sub-menu .ccq-mega-card { display: flex; flex-direction: column; align-items: flex-start; gap: var(--ccc-space-2, 8px); margin: 0; padding: 0; text-align: left; }
.header-us__nav .sub-menu .ccq-mega-card__img { display: block; width: 100%; aspect-ratio: 1; overflow: hidden; border-radius: var(--ccc-radius-lg, 8px); background: none; margin-bottom: var(--ccc-space-2, 8px); }
.header-us__nav .sub-menu .ccq-mega-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 400ms var(--ccc-ease, ease-in-out); }
@media (hover: hover) { .header-us__nav .sub-menu .ccq-mega-card:hover .ccq-mega-card__img img { transform: scale(1.04); } }
.header-us__nav .sub-menu .ccq-mega-card__title { padding: 0; font: 400 clamp(17px, 1.3vw, 20px)/1.2 var(--ccc-font-heading, "Crimson Text", Georgia, serif); color: var(--ccc-ink, #0b1014); text-decoration: none; }
.header-us__nav .sub-menu .ccq-mega-card__shop { padding: 0; font: 600 12px/1 var(--ccc-font-body, sans-serif); letter-spacing: var(--ccc-caps-spacing, 0.14em); text-transform: uppercase; color: var(--ccc-text, #515151); text-decoration: none; border-bottom: 1px solid transparent; transition: color 250ms var(--ccc-ease, ease-in-out), border-color 250ms var(--ccc-ease, ease-in-out); }
.header-us__nav .sub-menu .ccq-mega-card__shop:hover, .header-us__nav .sub-menu .ccq-mega-card__shop:focus-visible { color: var(--ccc-ink, #0b1014); border-bottom-color: currentColor; }
@media (max-width: 1399px) { .header-us__nav .sub-menu .ccq-mega-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px) {
	.header-us__nav .sub-menu .charcuteried-elementor-template { max-width: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }
	.header-us__nav .sub-menu .charcuteried-elementor-template > .elementor,
	.header-us__nav .sub-menu .charcuteried-elementor-template .elementor-section { width: 100% !important; max-width: none !important; margin: 0 !important; }
	.header-us__nav .sub-menu .elementor > .elementor-section > .elementor-container { width: 100%; padding-inline: var(--ccc-gutter, 52px) !important; }
}
.header-us__nav .sub-menu .ccq-mega-grid > .ccq-mega-card, .header-us__nav .sub-menu .ccq-mega-grid > .ccq-mega-card + .ccq-mega-card { margin: 0 !important; padding: 0 !important; align-self: start; }
.header-us__nav .sub-menu .ccq-mega-card a { display: block; }
.header-us__nav .sub-menu .ccq-mega-card__img { display: block; }

/* Gifts dropdown: four tiles across the page grid, each a drawing, a title and a button. */
.header-us__nav .sub-menu .ccq-mega-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; width: 100%; margin: 0; padding: 32px 0 36px; list-style: none; }
.header-us__nav .sub-menu .ccq-mega-tile { margin: 0 !important; padding: 0 !important; }
.header-us__nav .sub-menu .ccq-mega-tile__link { display: flex; flex-direction: column; align-items: flex-start; gap: var(--ccc-space-3, 12px); height: 100%; padding: 28px; border: 1px solid var(--ccc-border, #d9d9d9); border-radius: var(--ccc-radius-lg, 8px); background: #fff; text-decoration: none; transition: border-color 250ms var(--ccc-ease, ease-in-out), box-shadow 250ms var(--ccc-ease, ease-in-out); }
@media (hover: hover) { .header-us__nav .sub-menu .ccq-mega-tile__link:hover { border-color: var(--ccc-ink, #0b1014); box-shadow: 0 6px 20px rgba(11, 16, 20, 0.08); } }
.header-us__nav .sub-menu .ccq-mega-tile__link .ccq-cta__icon { width: 56px; height: 56px; margin: 0; color: var(--ccc-primary, #1e2934); }
.header-us__nav .sub-menu .ccq-mega-tile__title { font: 400 clamp(20px, 1.6vw, 26px)/1.15 var(--ccc-font-heading, "Crimson Text", Georgia, serif); color: var(--ccc-ink, #0b1014); }
.header-us__nav .sub-menu .ccq-mega-tile__btn { display: inline-flex; align-items: center; min-height: var(--ccc-btn-height, 40px); margin-top: auto; padding: 0 var(--ccc-space-5, 24px); border-radius: var(--ccc-radius, 4px); background: var(--ccc-primary, #1e2934); color: #fff; font: 600 12px/1 var(--ccc-font-body, sans-serif); letter-spacing: var(--ccc-caps-spacing, 0.14em); text-transform: uppercase; }
@media (max-width: 1399px) { .header-us__nav .sub-menu .ccq-mega-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Gifts tile drawings as masks, so they survive Elementor's HTML filtering. */
.ccq-mega-tile__ico { display: block; width: 56px; height: 56px; background: var(--ccc-primary, #1e2934); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.ccq-ico-card { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 64 64%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%226%22 y=%2214%22 width=%2252%22 height=%2236%22 rx=%223%22/%3E%3Cpath d=%22M6 26h52M14 40h14M14 34h8%22/%3E%3Ccircle cx=%2246%22 cy=%2238%22 r=%225%22/%3E%3C/svg%3E"); }
.ccq-ico-star { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 64 64%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2232%22 cy=%2226%22 r=%2216%22/%3E%3Cpath d=%22M32 16l3.2 6.6 7.2 1-5.2 5.1 1.3 7.2L32 32.5l-6.5 3.4 1.3-7.2-5.2-5.1 7.2-1z%22/%3E%3Cpath d=%22M22 40l-6 18 10-4 6 8 4-14M42 40l6 18-10-4-6 8-4-14%22/%3E%3C/svg%3E"); }
.ccq-ico-briefcase { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 64 64%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%226%22 y=%2220%22 width=%2252%22 height=%2234%22 rx=%223%22/%3E%3Cpath d=%22M22 20v-6a3 3 0 0 1 3-3h14a3 3 0 0 1 3 3v6M6 34h52M28 34v6h8v-6%22/%3E%3C/svg%3E"); }
.ccq-ico-calendar { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 64 64%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%228%22 y=%2214%22 width=%2248%22 height=%2242%22 rx=%223%22/%3E%3Cpath d=%22M8 26h48M20 8v12M44 8v12M18 36h6M29 36h6M40 36h6M18 46h6M29 46h6%22/%3E%3C/svg%3E"); }
.header-us__nav .sub-menu .elementor-column:only-child { width: 100% !important; flex: 1 1 100%; }

/* Gifts tiles: no box, no extra padding; the View link matches the Shop link on the cards. */
.header-us__nav .sub-menu .ccq-mega-tiles { gap: 24px; padding: 32px 0 36px; }
.header-us__nav .sub-menu .ccq-mega-tile__link { gap: var(--ccc-space-3, 12px); height: auto; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
@media (hover: hover) { .header-us__nav .sub-menu .ccq-mega-tile__link:hover { border: 0; box-shadow: none; } }
.header-us__nav .sub-menu .ccq-mega-tile__link .ccq-mega-tile__ico { margin-bottom: var(--ccc-space-2, 8px); }
.header-us__nav .sub-menu .ccq-mega-tile__btn { display: inline; min-height: 0; margin: 0; padding: 0; border-radius: 0; background: none; color: var(--ccc-text, #515151); font: 600 12px/1 var(--ccc-font-body, sans-serif); letter-spacing: var(--ccc-caps-spacing, 0.14em); text-transform: uppercase; border-bottom: 1px solid transparent; transition: color 250ms var(--ccc-ease, ease-in-out), border-color 250ms var(--ccc-ease, ease-in-out); }
.header-us__nav .sub-menu .ccq-mega-tile__link:hover .ccq-mega-tile__btn, .header-us__nav .sub-menu .ccq-mega-tile__link:focus-visible .ccq-mega-tile__btn { color: var(--ccc-ink, #0b1014); border-bottom-color: currentColor; }

/* Every button in the dropdowns is the outlined "Shop all" button. */
.header-us__nav .sub-menu .ccq-mega-tile__btn,
.header-us__nav .sub-menu .ccq-mega-card__shop,
.header-us__nav .sub-menu .elementor-widget-button .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; align-self: flex-start;
	min-height: var(--ccc-btn-height, 40px); margin: var(--ccc-space-2, 8px) 0 0; padding: 0 var(--ccc-space-5, 24px);
	border: 1px solid var(--ccc-primary, #1e2934) !important; border-radius: var(--ccc-radius-lg, 8px);
	background: transparent !important; color: var(--ccc-primary, #1e2934) !important;
	font: var(--ccc-weight-button, 600) var(--ccc-fs-label, 13px)/1 var(--ccc-font-body, sans-serif); letter-spacing: var(--ccc-caps-spacing, 0.14em); text-transform: uppercase; text-decoration: none;
	transition: background-color 250ms var(--ccc-ease, ease-in-out), color 250ms var(--ccc-ease, ease-in-out);
}
@media (hover: hover) {
	.header-us__nav .sub-menu .ccq-mega-tile__link:hover .ccq-mega-tile__btn,
	.header-us__nav .sub-menu .ccq-mega-card__shop:hover,
	.header-us__nav .sub-menu .elementor-widget-button .elementor-button:hover { background: var(--ccc-primary, #1e2934) !important; color: #fff !important; }
}
.header-us__nav .sub-menu .ccq-mega-tile__link:focus-visible .ccq-mega-tile__btn,
.header-us__nav .sub-menu .ccq-mega-card__shop:focus-visible,
.header-us__nav .sub-menu .elementor-widget-button .elementor-button:focus-visible { background: var(--ccc-primary, #1e2934) !important; color: #fff !important; }
.header-us__nav .sub-menu .ccq-mega-card__shop { width: auto; }
.header-us__nav .sub-menu .elementor-widget-button .elementor-button, .header-us__nav .sub-menu .elementor-widget-button .elementor-button * { color: inherit !important; font: inherit !important; opacity: 1; }
.header-us__nav .sub-menu .elementor-widget-button .elementor-button { font: var(--ccc-weight-button, 600) var(--ccc-fs-label, 13px)/1 var(--ccc-font-body, sans-serif) !important; }

/* One underline on hover: the tile link itself never draws a line or a background; only the View text does. */
.header-us__nav .sub-menu a.ccq-mega-tile__link, .header-us__nav .sub-menu a.ccq-mega-tile__link:hover, .header-us__nav .sub-menu a.ccq-mega-tile__link:focus, .header-us__nav .sub-menu a.ccq-mega-tile__link:focus-visible { border: 0 !important; background: none !important; text-decoration: none !important; box-shadow: none !important; outline-offset: 4px; }
.header-us__nav .sub-menu .ccq-mega-tile__link *, .header-us__nav .sub-menu .ccq-mega-tile__link:hover * { text-decoration: none !important; }
.header-us__nav .sub-menu .ccq-mega-card a:not(.ccq-mega-card__shop), .header-us__nav .sub-menu .ccq-mega-card a:not(.ccq-mega-card__shop):hover { background: none !important; text-decoration: none !important; }
.header-us__nav .sub-menu .ccq-mega-card a { text-decoration: none !important; }
/* The parent menu draws its own hover underline as a ::before on sub-menu links; the tiles and cards draw theirs on the text. */
.header-us__nav .sub-menu .ccq-mega-tile__link::before, .header-us__nav .sub-menu .ccq-mega-tile__link::after,
.header-us__nav .sub-menu .ccq-mega-card a::before, .header-us__nav .sub-menu .ccq-mega-card a::after { content: none !important; display: none !important; }

/* Shop buttons on the cards: centred text at the same weight as the other dropdown buttons (the generic card link rule was making them block boxes). */
.header-us__nav .sub-menu .ccq-mega-card a.ccq-mega-card__shop {
	display: inline-flex; align-items: center; justify-content: center; align-self: flex-start;
	box-sizing: border-box; min-height: var(--ccc-btn-height, 40px); padding: 0 var(--ccc-space-5, 24px); margin: var(--ccc-space-2, 8px) 0 0;
	font: var(--ccc-weight-button, 600) var(--ccc-fs-label, 13px)/1 var(--ccc-font-body, sans-serif); letter-spacing: var(--ccc-caps-spacing, 0.14em); text-transform: uppercase;
}
.header-us__nav .sub-menu .ccq-mega-card a.ccq-mega-card__shop, .header-us__nav .sub-menu .ccq-mega-tile__btn, .header-us__nav .sub-menu .elementor-widget-button .elementor-button { font-weight: var(--ccc-weight-button, 600) !important; }

/* Same parent-theme hover underline as the tiles: buttons in the Elementor dropdown panels never draw it. */
.header-us__nav .sub-menu .elementor-widget-button .elementor-button::before, .header-us__nav .sub-menu .elementor-widget-button .elementor-button::after,
.header-us__nav .sub-menu .elementor-widget-button a::before, .header-us__nav .sub-menu .elementor-widget-button a::after { content: none !important; display: none !important; }
.header-us__nav .sub-menu .elementor-widget-button .elementor-button { text-decoration: none !important; box-shadow: none; }
 
/* Blog listing and archive headings */
.ccq-blog .container > .ccq-blog-heading,
.ccq-blog-heading {
	margin: 0 0 24px;
	padding-top: clamp(24px, 3vw, 40px);
	font: 400 clamp(32px, 3.6vw, 48px)/1.15 var(--ccc-font-heading, "Crimson Text", Georgia, serif);
	color: var(--ccc-ink, #0b1014);
}

