/* =========================================================================
   HookShore — supplemental CSS
   Only what theme.json can't express: header/mega-menu, mobile nav, footer,
   product cards, hero, and a few block-style definitions.
   Uses theme.json design tokens (CSS custom properties) throughout.
   ========================================================================= */

:root {
	--hs-header-h: 64px;
	--hs-maxw: var(--wp--style--global--wide-size, 1240px);
}

/* ---- Accessibility: always-visible focus ---- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
.wp-block-navigation-item__content:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
	border-radius: 3px;
}

/* Skip link */
.skip-link:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 999;
	background: var(--wp--preset--color--base-white);
	padding: .6rem 1rem;
	border-radius: var(--wp--custom--radius--sm);
}

/* ---- Global responsive safety (prevents overflow at any width) ---- */
img, video { max-width: 100%; height: auto; }
input, textarea, select, button { box-sizing: border-box; }
/* Let flex/grid children actually shrink instead of forcing overflow */
.hs-grid-cards > *, .hs-grid-collections > *, .hs-trust-grid > *, .hs-why-grid > *,
.wp-block-woocommerce-product-template > * { min-width: 0; }
.hs-header-main, .hs-container, .hs-header-inner, .hs-icons, .hs-brand { box-sizing: border-box; max-width: 100%; }

/* =========================================================================
   Block styles (registered in inc/block-styles.php)
   ========================================================================= */
.is-style-hs-card {
	background: var(--wp--preset--color--base-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--lg);
	box-shadow: var(--wp--custom--shadow--card);
	overflow: clip;
}

.wp-block-button.is-style-hs-secondary .wp-block-button__link {
	background: var(--wp--preset--color--secondary);
	color: #fff;
}
.wp-block-button.is-style-hs-secondary .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	color: #fff;
}
.wp-block-button.is-style-hs-ghost .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--primary);
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--primary);
}
.wp-block-button.is-style-hs-ghost .wp-block-button__link:hover {
	background: var(--wp--preset--color--primary);
	color: #fff;
}

/* =========================================================================
   Header — compact retail layout: logo | search | account+cart, nav beneath.
   Everything aligns to the same 1240px content container.
   ========================================================================= */
.hs-container { max-width: 1240px; margin-inline: auto; padding-inline: clamp(0.9rem, 3vw, 1.25rem); width: 100%; }

.hs-announcement { background: var(--wp--preset--color--secondary); color: #eaf2fb; font-size: .8125rem; letter-spacing: .01em; }
.hs-announcement .hs-container { padding-block: .5rem; }
.hs-announcement p { margin: 0; text-align: center; }
.hs-announcement a { color: #fff; text-decoration: underline; }

.hs-header-main { background: var(--wp--preset--color--base-white); border-bottom: 1px solid var(--wp--preset--color--border); }
.hs-header-inner { display: flex; align-items: center; gap: 20px; padding-block: 12px; }

.hs-brand { flex: 0 0 auto; display: inline-flex; align-items: center; }
.hs-brand .custom-logo-link { display: inline-flex; }
.hs-brand .custom-logo, .hs-brand .hs-logo-fallback { height: 46px; width: auto; max-width: 240px; display: block; object-fit: contain; }

.hs-search { flex: 1 1 auto; display: flex; justify-content: center; min-width: 0; }
.hs-search input[type="search"] { width: 100%; max-width: 520px; min-width: 0; border: 1px solid var(--wp--preset--color--border); border-right: 0; border-radius: 999px 0 0 999px; padding: .6rem 1rem; background: var(--wp--preset--color--base); font-size: .95rem; font-family: var(--wp--preset--font-family--body); }
.hs-search button { border: 0; background: var(--wp--preset--color--primary); color: #fff; border-radius: 0 999px 999px 0; padding: 0 1.05rem; cursor: pointer; display: flex; align-items: center; }

.hs-icons { flex: 0 0 auto; display: flex; align-items: center; gap: 18px; }
.hs-icon-link { display: inline-flex; align-items: center; gap: 6px; color: var(--wp--preset--color--secondary); font-weight: 600; font-size: .9rem; text-decoration: none; }
.hs-icon-link:hover { color: var(--wp--preset--color--primary); }
.hs-cart-count { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); font-size: 11px; font-weight: 700; border-radius: 999px; padding: 1px 7px; margin-left: 2px; }

.hs-navbar { background: var(--wp--preset--color--base-white); border-bottom: 1px solid var(--wp--preset--color--border); }
.hs-navbar .hs-nav { padding-block: 2px; }

/* Hero sits flush under the header: remove the default block-gap WordPress
   inserts between the header template part and <main>. (Real spacing control,
   not a band-aid — the header's own bottom border remains.) */
.wp-site-blocks > main { margin-block-start: 0; }

/* Tablet + phone header layout (stacked search) stays active up to 1024px */
@media (max-width: 1024px) {
	.hs-header-inner { flex-wrap: wrap; gap: 12px; row-gap: 10px; }
	.hs-search { order: 3; flex-basis: 100%; }
	.hs-search input[type="search"] { max-width: none; }
	.hs-icons { margin-left: auto; }
}

/* =========================================================================
   Primary navigation + lightweight mega menu (desktop)
   ========================================================================= */
.hs-nav .wp-block-navigation__container { gap: clamp(.5rem, 1.4vw, 1.5rem); }

.hs-nav .wp-block-navigation-item__content {
	font-weight: 600;
	color: var(--wp--preset--color--secondary);
	padding-block: .4rem;
}
.hs-nav .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.hs-nav .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--primary);
}

/* Desktop mega menu only ≥1025px (tablet uses the drawer). Closed submenus are
   display:none so their panels can never widen the page (this was the tablet
   blank-right cause); they render only on hover / keyboard focus. */
@media (min-width: 1025px) {
	.hs-nav .wp-block-navigation__submenu-container { display: none !important; }
	.hs-nav .wp-block-navigation-item:hover > .wp-block-navigation__submenu-container,
	.hs-nav .wp-block-navigation-item:focus-within > .wp-block-navigation__submenu-container {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(150px, 1fr));
		gap: .25rem 2rem;
		width: max-content;
		max-width: min(560px, 90vw);
		padding: 1.25rem 1.5rem;
		border: 1px solid var(--wp--preset--color--border);
		border-radius: var(--wp--custom--radius--md);
		box-shadow: var(--wp--custom--shadow--card);
		background: var(--wp--preset--color--base-white);
	}
	/* Right-most menus open leftward so the panel stays inside the viewport */
	.hs-nav .wp-block-navigation__container > .wp-block-navigation-item:nth-last-child(-n+4) > .wp-block-navigation__submenu-container {
		left: auto; right: 0;
	}
	.hs-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: .35rem .25rem;
		color: var(--wp--preset--color--muted);
		font-weight: 500;
	}
	.hs-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
		color: var(--wp--preset--color--primary);
	}
}

/* Legacy WP overlay styles (inert — HookShore uses its own drawer) */
@media (max-width: 1024px) {
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		font-size: 1.15rem;
		padding: .85rem 0;
		display: block;
	}
	.wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--base-white); }
}

/* =========================================================================
   Hero
   ========================================================================= */
.hs-hero {
	position: relative;
	min-height: clamp(340px, 52vw, 560px);
	display: flex;
	align-items: center;
	background-size: cover;
	background-position: center;
	color: #fff;
}
.hs-hero::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(13,27,46,.78) 0%, rgba(13,27,46,.45) 45%, rgba(13,27,46,.15) 100%);
}
.hs-hero > .wp-block-group { position: relative; z-index: 1; max-width: 620px; }
.hs-hero h1 { color: #fff; font-family: var(--wp--preset--font-family--display); }
.hs-hero p { color: #eaf2fb; }

/* Live hero surface — production-safe branded treatment. */
.hs-live-hero {
	background:
		radial-gradient(circle at 82% 28%, rgba(73,157,218,.34), transparent 30%),
		radial-gradient(circle at 72% 78%, rgba(245,151,29,.14), transparent 26%),
		linear-gradient(118deg, #0D1B2E 0%, #123C6B 54%, #1C5E91 100%);
}
.hs-live-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,0));
	pointer-events: none;
}
.hs-live-hero > .wp-block-group { position: relative; z-index: 2; }

/* =========================================================================
   Category cards
   ========================================================================= */
.hs-cat-card {
	position: relative;
	display: block;
	border-radius: var(--wp--custom--radius--lg);
	overflow: clip;
	min-height: 180px;
	color: #fff;
	box-shadow: var(--wp--custom--shadow--card);
}
.hs-cat-card .hs-cat-label {
	position: absolute; left: 0; right: 0; bottom: 0;
	padding: 1rem 1.1rem;
	font-weight: 700;
	background: linear-gradient(0deg, rgba(13,27,46,.82), transparent);
}

/* =========================================================================
   Product cards (Product Collection block + classic fallback)
   ========================================================================= */
.woocommerce ul.products li.product,
.wc-block-grid__product,
.wp-block-woocommerce-product-template li {
	background: var(--wp--preset--color--base-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--md);
	overflow: clip;
	transition: box-shadow .18s ease, transform .18s ease;
}
.woocommerce ul.products li.product:hover,
.wp-block-woocommerce-product-template li:hover {
	box-shadow: var(--wp--custom--shadow--card);
	transform: translateY(-2px);
}

/* Consistent square imagery */
.wp-block-woocommerce-product-template li .wp-block-woocommerce-product-image img,
.woocommerce ul.products li.product img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	width: 100%;
	background: var(--wp--preset--color--base);
}

/* Restrained 2-line title */
.wp-block-woocommerce-product-template li .wp-block-post-title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 1rem;
	line-height: 1.35;
	font-weight: 600;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	padding: 0 .85rem;
	margin: .5rem 0 .25rem;
}

/* Prices — tabular figures, clear hierarchy */
.wp-block-woocommerce-product-price,
.woocommerce ul.products li.product .price {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
	padding: 0 .85rem;
}
.woocommerce ul.products li.product .price del { color: var(--wp--preset--color--muted); font-weight: 400; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

/* Genuine sale badge only */
.woocommerce span.onsale,
.wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
	border-radius: 999px;
	min-height: 0;
	padding: .15rem .6rem;
}

/* CTA within card */
.woocommerce ul.products li.product .button,
.wp-block-woocommerce-product-button .wp-block-button__link {
	margin: .35rem .85rem .85rem;
	font-size: .9rem;
}

/* =========================================================================
   Footer
   ========================================================================= */
.hs-footer {
	background: var(--wp--preset--color--contrast);
	color: #c7d3e0;
}
.hs-footer :where(h2, h3, .wp-block-heading) { color: #fff; font-size: .95rem; letter-spacing: .04em; text-transform: uppercase; }
.hs-footer a { color: #c7d3e0; text-decoration: none; }
.hs-footer a:hover { color: #fff; text-decoration: underline; }
.hs-footer .wp-block-site-logo img,
.hs-footer .hs-footer-mark img { width: 72px; height: auto; }
.hs-footer .hs-social a { display: inline-flex; }
.hs-footer .hs-social svg { width: 22px; height: 22px; fill: #c7d3e0; }
.hs-footer .hs-social a:hover svg { fill: #fff; }
.hs-footer .hs-payments svg { height: 26px; width: auto; opacity: .9; }
.hs-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); color: #8fa2b6; font-size: .8125rem; }

/* Trust icon row */
.hs-trust svg { width: 26px; height: 26px; stroke: var(--wp--preset--color--primary); }

/* =========================================================================
   Dev placeholder labelling (never ships to production content)
   ========================================================================= */
.hs-dev-note {
	font-size: .7rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	background: repeating-linear-gradient(45deg, rgba(245,151,29,.12) 0 8px, transparent 8px 16px);
	border: 1px dashed var(--wp--preset--color--accent);
	border-radius: var(--wp--custom--radius--sm);
	padding: .15rem .5rem;
	display: inline-block;
}

/* Section rhythm helper — fluid vertical padding (desktop still resolves to 4.5rem) */
.hs-section { padding-block: clamp(2.5rem, 6vw, 4.5rem); }

/* =========================================================================
   Responsive component classes (base = DESKTOP, unchanged from prior inline
   styles; mobile overrides live in the MOBILE REFINEMENTS block below).
   ========================================================================= */
.hs-trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; text-align: center; max-width: 1240px; margin: 0 auto; }

.hs-why-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; max-width: 1240px; margin: 1.5rem auto 0; }
.hs-why-tile { text-align: center; padding: 1.5rem; border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--base); }
.hs-why-tile h3 { font-size: 1.05rem; margin: .6rem 0 .3rem; }
.hs-why-tile p { color: var(--wp--preset--color--muted); font-size: .92rem; margin: 0; }

/* Footer top: brand + link columns (desktop) */
.hs-footer-cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; align-items: start; }
.hs-foot-mark { width: 72px; height: auto; display: block; }
.hs-foot-blurb { font-size: .9rem; margin: .6rem 0; }
.hs-social { display: flex; gap: 14px; margin-top: 10px; }
.hs-foot-acc { border: 0; }
.hs-foot-acc > summary { list-style: none; color: #fff; font-size: .95rem; letter-spacing: .04em; text-transform: uppercase; font-weight: 700; margin-bottom: .5rem; }
.hs-foot-acc > summary::-webkit-details-marker { display: none; }
.hs-foot-acc > summary::marker { content: ""; }
.hs-foot-acc ul { list-style: none; padding: 0; margin: 0; line-height: 2; }
.hs-foot-acc.is-static > summary { pointer-events: none; cursor: default; }

/* =========================================================================
   MOBILE REFINEMENTS — Phase 2 mobile pass (desktop above is untouched)
   ========================================================================= */

/* ---- Mobile/tablet header sizing: fluid, never lets the utility row overflow ---- */
@media (max-width: 1024px) {
	.hs-header-inner { gap: clamp(8px, 2.5vw, 16px); }
	.hs-header-inner > * { min-width: 0; }
	.hs-brand { flex: 0 1 auto; min-width: 0; }
	.hs-brand .custom-logo, .hs-brand .hs-logo-fallback { height: clamp(30px, 8vw, 44px); max-width: clamp(96px, 34vw, 180px); width: auto; }
	.hs-icons { flex: 0 0 auto; min-width: 0; gap: clamp(10px, 3vw, 18px); }
	.hs-icon-link { min-height: 44px; }
	.hs-search { min-width: 0; }
	.hs-search input[type="search"] { min-width: 0; box-sizing: border-box; }
}
/* Account/Cart become ICON-ONLY up to ~480px so labels can never push Cart
   off-screen (this is the 412px clipping fix). Labels are visually hidden but
   remain in the DOM; the links keep aria-label="Account"/"Cart" for a11y. */
@media (max-width: 480px) {
	.hs-icon-label { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
	/* Fixed, compact touch boxes — not content-sized (keeps the row narrow) */
	.hs-icon-link { width: 44px; min-width: 44px; height: 44px; padding: 0; justify-content: center; flex: 0 0 auto; }
	.hs-icon-link svg { flex: 0 0 auto; }
	.hs-cart { position: relative; }
	.hs-cart-count { position: absolute; top: 2px; right: 0; margin: 0; }
	.hs-icons { gap: clamp(6px, 2vw, 12px); }
}

/* =========================================================================
   Mobile navigation drawer (phones) — desktop mega menu is untouched
   ========================================================================= */
.hs-mobile-nav { display: none; }
/* Desktop mega-menu header only ≥1025px; drawer header active through tablet */
@media (min-width: 1025px) {
	.hs-mobile-nav, .hs-drawer-wrap { display: none !important; }
}
@media (max-width: 1024px) {
	.hs-navbar { display: none; }
	.hs-mobile-nav { display: block; background: var(--wp--preset--color--base-white); border-bottom: 1px solid var(--wp--preset--color--border); }
	.hs-mobile-nav .hs-menu-btn {
		display: inline-flex; align-items: center; gap: 8px; margin: 6px 0;
		min-height: 44px; padding: .5rem 1rem;
		border: 1px solid var(--wp--preset--color--border); border-radius: 999px;
		background: var(--wp--preset--color--base-white); color: var(--wp--preset--color--secondary);
		font-weight: 700; font-size: .95rem; font-family: var(--wp--preset--font-family--body); cursor: pointer;
	}
	.hs-mobile-nav .hs-menu-btn:hover { border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); }
}

/* Viewport-sized, CLIPPED off-canvas container. Because it is fixed to the
   viewport and clips its overflow, the drawer's off-screen (translateX(100%))
   state can never widen the document → no horizontal page scroll. This clips
   ONLY the drawer, not page content (so it is not an overflow-x:hidden hack). */
.hs-drawer-wrap { position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: 997; }

.hs-drawer-backdrop { position: absolute; inset: 0; background: rgba(13, 27, 46, .5); opacity: 0; pointer-events: none; transition: opacity .2s ease; }
.hs-drawer-backdrop.is-open { opacity: 1; pointer-events: auto; }
.hs-drawer-backdrop[hidden] { display: block; }

.hs-drawer {
	position: absolute; top: 0; right: 0; height: 100%; width: min(86vw, 340px); max-width: 100%;
	box-sizing: border-box;
	background: var(--wp--preset--color--base-white); color: var(--wp--preset--color--contrast);
	display: flex; flex-direction: column;
	box-shadow: -8px 0 30px rgba(13, 27, 46, .22);
	transform: translateX(100%); visibility: hidden; pointer-events: none;
	transition: transform .22s ease, visibility 0s .22s;
}
.hs-drawer.is-open { transform: translateX(0); visibility: visible; pointer-events: auto; transition: transform .22s ease; }
@media (prefers-reduced-motion: reduce) { .hs-drawer, .hs-drawer-backdrop { transition: none; } }

.hs-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--wp--preset--color--border); }
.hs-drawer-title { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 1.15rem; color: var(--wp--preset--color--secondary); }
.hs-drawer-close { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 0; background: transparent; color: var(--wp--preset--color--contrast); border-radius: 8px; cursor: pointer; }
.hs-drawer-close:hover { color: var(--wp--preset--color--primary); }

.hs-drawer-nav { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 4px 0 28px; }
.hs-drawer-link, .hs-drawer-cat > summary {
	display: flex; align-items: center; justify-content: space-between;
	min-height: 48px; padding: 0 16px; font-weight: 600; font-size: 1rem;
	color: var(--wp--preset--color--contrast); text-decoration: none;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.hs-drawer-link:hover { color: var(--wp--preset--color--primary); text-decoration: none; }
.hs-drawer-cat > summary { list-style: none; cursor: pointer; }
.hs-drawer-cat > summary::-webkit-details-marker { display: none; }
.hs-drawer-cat > summary::after { content: "\203A"; color: var(--wp--preset--color--primary); font-size: 1.3rem; line-height: 1; transform: rotate(90deg); transition: transform .2s ease; }
.hs-drawer-cat[open] > summary::after { transform: rotate(-90deg); }
.hs-drawer-cat ul { list-style: none; margin: 0; padding: 2px 0 8px; background: var(--wp--preset--color--base); }
.hs-drawer-cat li a { display: flex; align-items: center; min-height: 44px; padding: 0 16px 0 30px; color: var(--wp--preset--color--muted); text-decoration: none; font-size: .95rem; }
.hs-drawer-cat li a:hover { color: var(--wp--preset--color--primary); }
.hs-drawer-deals { color: var(--wp--preset--color--accent-dark); }

body.hs-drawer-open { overflow: hidden; }

/* Trust strip → 2 × 2 grid on phones */
@media (max-width: 600px) {
	.hs-trust-grid { grid-template-columns: repeat(2, 1fr); gap: 1.35rem; }
}

/* Category / Fishing Essentials / product grids — explicit columns by actual
   width: very narrow → 1, phones + small tablet → 2, large tablet → 3, desktop
   uses the block layout. Keeps a clean 2–3 columns on tablets (no over-columning). */
@media (max-width: 380px) {
	.hs-section .hs-grid-cards, .hs-section .hs-grid-collections,
	.hs-section .wp-block-woocommerce-product-template { grid-template-columns: 1fr; }
}
@media (min-width: 381px) and (max-width: 820px) {
	.hs-section .hs-grid-cards, .hs-section .hs-grid-collections,
	.hs-section .wp-block-woocommerce-product-template { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 821px) and (max-width: 1024px) {
	.hs-section .hs-grid-cards, .hs-section .hs-grid-collections,
	.hs-section .wp-block-woocommerce-product-template { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1024px) {
	.hs-section .hs-grid-cards, .hs-section .hs-grid-collections { gap: clamp(12px, 3vw, 20px); }
}

/* Why tiles: single column on phones, 2 columns on tablets */
@media (max-width: 600px) {
	.hs-why-grid { grid-template-columns: 1fr; }
	.hs-why-tile { padding: 1.15rem 1rem; }
}
@media (min-width: 601px) and (max-width: 1024px) {
	.hs-why-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Hero copy + CTAs scale fluidly and wrap on any width (no overflow) */
.hs-hero h1, .hs-hero p { overflow-wrap: break-word; }
.hs-hero .wp-block-buttons { flex-wrap: wrap; }

/* (product-grid columns are handled in the unified grid rules above) */

/* Footer: native <details> accordions on phones + tablets (desktop stays columns) */
@media (max-width: 1024px) {
	.hs-footer-cols { grid-template-columns: 1fr; gap: 2px; }
	.hs-foot-brand { padding-bottom: 14px; }
	.hs-foot-acc { border-top: 1px solid rgba(255, 255, 255, .12); }
	.hs-foot-acc > summary {
		display: flex; align-items: center; justify-content: space-between;
		min-height: 44px; margin: 0; cursor: pointer;
	}
	.hs-foot-acc > summary::after {
		content: "\203A"; font-size: 1.3rem; line-height: 1;
		transform: rotate(90deg); transition: transform .2s ease;
	}
	.hs-foot-acc[open] > summary::after { transform: rotate(-90deg); }
	.hs-foot-acc ul { padding-bottom: 12px; }
}

/* =========================================================================
   Phase 3 — WooCommerce single-product page
   Uses WooCommerce blocks and the existing HookShore tokens. No product data
   is hard-coded here; the page reads the current WooCommerce product fields.
   ========================================================================= */
.hs-product-page {
	--hs-product-gap: clamp(1.5rem, 4vw, 4rem);
}

.hs-product-breadcrumbs {
	font-size: .875rem;
	color: var(--wp--preset--color--muted);
	margin-bottom: clamp(1rem, 2vw, 1.5rem);
}
.hs-product-breadcrumbs a { color: var(--wp--preset--color--link); }

.hs-product-main {
	align-items: flex-start;
	gap: var(--hs-product-gap);
	margin-top: 0;
}
.hs-product-main > .wp-block-column { min-width: 0; }

/* Gallery: neutral surface, consistent image presentation, no distortion. */
.hs-product-gallery-col .wp-block-woocommerce-product-image-gallery,
.hs-product-gallery-col .woocommerce-product-gallery {
	background: var(--wp--preset--color--base-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--lg);
	padding: clamp(.65rem, 1.6vw, 1rem);
	overflow: clip;
}
.hs-product-gallery-col img {
	width: 100%;
	height: auto;
	object-fit: contain;
}
.hs-product-gallery-col .flex-control-thumbs,
.hs-product-gallery-col [class*="thumbnails"] {
	gap: .5rem;
}

/* Purchase panel hierarchy. */
.hs-product-summary-col {
	position: sticky;
	top: 1rem;
	align-self: flex-start;
}
.hs-product-title,
.hs-product-summary-col .wp-block-post-title {
	font-family: var(--wp--preset--font-family--body);
	font-size: clamp(1.55rem, 2.6vw, 2rem);
	line-height: 1.16;
	letter-spacing: -.015em;
	font-weight: 700;
	margin: 0 0 .65rem;
	overflow-wrap: anywhere;
}
.hs-product-rating {
	margin: 0 0 .65rem;
	font-size: .95rem;
}
.hs-product-rating:empty { display: none; }
.hs-product-price,
.hs-product-summary-col .wp-block-woocommerce-product-price {
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--contrast);
	margin-bottom: 1rem;
	padding: 0;
}
.hs-product-summary,
.hs-product-summary-col .wp-block-post-excerpt {
	color: var(--wp--preset--color--muted);
	font-size: 1rem;
	line-height: 1.65;
	margin-bottom: 1.1rem;
}
.hs-product-summary p:first-child { margin-top: 0; }

/* Variable/simple add-to-cart area. Keep selectors subordinate to CTA. */
.hs-product-summary-col .wp-block-woocommerce-add-to-cart-form,
.hs-product-summary-col form.cart {
	margin-block: 1rem 1.25rem;
}
.hs-product-summary-col form.cart,
.hs-product-summary-col .variations_button {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	align-items: center;
}
.hs-product-summary-col table.variations {
	width: 100%;
	margin: 0 0 1rem;
	border-collapse: separate;
	border-spacing: 0;
}
.hs-product-summary-col table.variations tbody {
	display: grid;
	gap: .8rem;
}
.hs-product-summary-col table.variations tr {
	display: grid;
	grid-template-columns: minmax(88px, 120px) minmax(0, 1fr);
	gap: .75rem;
	align-items: center;
}
.hs-product-summary-col table.variations th,
.hs-product-summary-col table.variations td {
	display: block;
	width: auto;
	padding: 0;
	text-align: left;
	vertical-align: middle;
	min-width: 0;
}
.hs-product-summary-col table.variations label {
	display: inline-block;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
	line-height: 1.3;
}
.hs-product-summary-col select,
.hs-product-summary-col .quantity .qty {
	min-height: 48px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--base-white);
	color: var(--wp--preset--color--contrast);
	padding: .72rem .9rem;
	font: inherit;
	box-sizing: border-box;
}
.hs-product-summary-col select {
	display: block;
	width: 100%;
	max-width: 360px;
	min-width: 0;
	background-color: var(--wp--preset--color--base-white);
	cursor: pointer;
}
.hs-product-summary-col .reset_variations {
	display: inline-block;
	margin-top: .45rem;
	font-size: .85rem;
	color: var(--wp--preset--color--link);
}
.hs-product-summary-col .quantity { flex: 0 0 auto; }
.hs-product-summary-col .quantity .qty { width: 76px; text-align: center; }

.hs-product-summary-col .single_add_to_cart_button,
.hs-product-summary-col .wp-block-woocommerce-add-to-cart-form button[type="submit"],
.hs-product-summary-col .wc-block-add-to-cart-form__button {
	min-height: 48px;
	border: 0;
	border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
	font-size: 1rem;
	padding: .8rem 1.5rem;
	box-shadow: none;
	cursor: pointer;
	transition: background .15s ease, transform .15s ease;
}
.hs-product-summary-col .single_add_to_cart_button:hover,
.hs-product-summary-col .wp-block-woocommerce-add-to-cart-form button[type="submit"]:hover,
.hs-product-summary-col .wc-block-add-to-cart-form__button:hover {
	background: var(--wp--preset--color--accent-dark);
	transform: translateY(-1px);
}
.hs-product-summary-col .single_add_to_cart_button:disabled,
.hs-product-summary-col .single_add_to_cart_button.disabled {
	opacity: .55;
	cursor: not-allowed;
	transform: none;
}

/* Four compact reassurance cells; deliberately neutral until policies are final. */
.hs-product-assurance {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .65rem;
	padding: .9rem;
	margin-block: 1rem;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--lg);
}
.hs-assurance-item {
	display: flex;
	align-items: center;
	gap: .55rem;
	min-width: 0;
	font-size: .82rem;
	line-height: 1.35;
}
.hs-assurance-item > div { min-width: 0; }
.hs-assurance-item strong,
.hs-assurance-item small { display: block; }
.hs-assurance-item strong { color: var(--wp--preset--color--contrast); font-size: .82rem; }
.hs-assurance-item small { color: var(--wp--preset--color--muted); margin-top: .08rem; overflow-wrap: anywhere; }
.hs-assurance-icon {
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(28, 127, 214, .10);
	color: var(--wp--preset--color--primary-dark);
	font-weight: 800;
}

.hs-product-meta {
	font-size: .82rem;
	color: var(--wp--preset--color--muted);
	padding-top: .9rem;
	border-top: 1px solid var(--wp--preset--color--border);
}
.hs-product-meta a { color: var(--wp--preset--color--link); }

/* Description / additional information / reviews area. */
.hs-product-details-wrap {
	background: var(--wp--preset--color--base-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--lg);
	padding: clamp(1rem, 2.5vw, 2rem);
}
.hs-product-details-wrap :where(h2, h3) {
	color: var(--wp--preset--color--contrast);
	letter-spacing: -.01em;
}
.hs-product-details-wrap .woocommerce-Tabs-panel,
.hs-product-details-wrap .wc-block-components-product-details {
	line-height: 1.7;
}
.hs-product-details-wrap table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
}
.hs-product-details-wrap table.shop_attributes th,
.hs-product-details-wrap table.shop_attributes td {
	padding: .7rem .8rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
	text-align: left;
	vertical-align: top;
}

/* Related products reuse the existing card system. */
.hs-related-products > :first-child { margin-top: 0; }
.hs-related-products h2,
.hs-related-products .wp-block-heading { font-size: clamp(1.45rem, 2.5vw, 2rem); }

/* Tablet: keep two columns where there is room, but avoid sticky summary. */
@media (max-width: 1024px) {
	.hs-product-summary-col { position: static; }
	.hs-product-main { gap: clamp(1.25rem, 3vw, 2rem); }
}

/* Phones: gallery first, purchase panel second, full-width controls. */
@media (max-width: 700px) {
	.hs-product-summary-col table.variations tr { grid-template-columns: 1fr; gap: .4rem; }
	.hs-product-summary-col select { max-width: none; }
	.hs-product-page { padding-top: 1rem !important; }
	.hs-product-main { flex-direction: column; }
	.hs-product-main > .wp-block-column { flex-basis: auto !important; width: 100%; }
	.hs-product-title,
	.hs-product-summary-col .wp-block-post-title { font-size: clamp(1.35rem, 6vw, 1.6rem); }
	.hs-product-price,
	.hs-product-summary-col .wp-block-woocommerce-product-price { font-size: clamp(1.25rem, 5.5vw, 1.5rem); }
	.hs-product-summary-col form.cart,
	.hs-product-summary-col .variations_button { align-items: stretch; }
	.hs-product-summary-col .quantity { flex: 0 0 76px; }
	.hs-product-summary-col .single_add_to_cart_button,
	.hs-product-summary-col .wp-block-woocommerce-add-to-cart-form button[type="submit"],
	.hs-product-summary-col .wc-block-add-to-cart-form__button { flex: 1 1 180px; }
	.hs-product-assurance { grid-template-columns: 1fr; }
	.hs-product-details-wrap { padding: 1rem; }
}

@media (max-width: 380px) {
	.hs-product-summary-col .quantity { flex-basis: 100%; }
	.hs-product-summary-col .quantity .qty { width: 100%; }
	.hs-product-summary-col .single_add_to_cart_button,
	.hs-product-summary-col .wp-block-woocommerce-add-to-cart-form button[type="submit"],
	.hs-product-summary-col .wc-block-add-to-cart-form__button { width: 100%; flex-basis: 100%; }
}


/* Phase 3.1 — dynamic product-detail media gallery. */
.hs-product-detail-media {
	background: var(--wp--preset--color--base-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--lg);
	padding: clamp(1rem, 2.5vw, 2rem);
}
.hs-product-detail-media > h2 {
	margin: 0 0 1rem;
	font-size: clamp(1.4rem, 2.4vw, 1.9rem);
	color: var(--wp--preset--color--contrast);
}
.hs-product-detail-media-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(.75rem, 2vw, 1.25rem);
}
.hs-product-detail-media-item {
	margin: 0;
	min-width: 0;
	background: var(--wp--preset--color--base-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--md);
	overflow: hidden;
}
.hs-product-detail-media-item img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	object-fit: contain;
}

/* v0.3.3: detail media is injected into the Description tab before Shipping & Returns. */
.hs-product-details-wrap .hs-product-detail-media {
	margin: clamp(1.5rem, 3vw, 2.25rem) 0;
	padding: clamp(1rem, 2vw, 1.5rem);
	background: var(--wp--preset--color--base);
}
.hs-product-details-wrap .hs-product-detail-media > h2 {
	margin-bottom: 1rem;
}
@media (max-width: 700px) {
	.hs-product-detail-media-grid { grid-template-columns: 1fr; }
	.hs-product-detail-media { padding: 1rem; }
}

/* --------------------------------------------------------------------------
   Phase 4 — Cart page
   Native WooCommerce Cart block first; classic cart selectors remain as a
   safe fallback. Checkout itself is intentionally out of scope.
   -------------------------------------------------------------------------- */
.hs-cart-page {
  background: var(--wp--preset--color--mist, #f5f8fb);
}

.hs-cart-heading,
.hs-cart-content,
.hs-cart-assurance,
.hs-cart-after {
  width: 100%;
  max-width: 1240px;
  box-sizing: border-box;
}

.hs-cart-heading {
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
}

.hs-cart-title {
  margin: 0;
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  line-height: 1.1;
  color: #0d1b2e;
}

.hs-cart-intro {
  max-width: 48rem;
  margin: .65rem 0 0;
  color: #4a5a6e;
  font-size: 1rem;
}

/* WooCommerce Cart block */
.hs-cart-page .wc-block-cart,
.hs-cart-page .wp-block-woocommerce-cart {
  margin: 0;
}

.hs-cart-page .wc-block-components-sidebar-layout {
  align-items: flex-start;
  gap: clamp(1.25rem, 3vw, 2.25rem);
}

.hs-cart-page .wc-block-cart__main,
.hs-cart-page .wc-block-cart__sidebar {
  min-width: 0;
  box-sizing: border-box;
}

.hs-cart-page .wc-block-cart__main {
  background: #fff;
  border: 1px solid #dde5ec;
  border-radius: 16px;
  padding: clamp(1rem, 2.5vw, 1.6rem);
}

.hs-cart-page .wc-block-cart__sidebar {
  background: #fff;
  border: 1px solid #dde5ec;
  border-radius: 16px;
  padding: clamp(1rem, 2.5vw, 1.5rem);
  position: sticky;
  top: 1.5rem;
}

.hs-cart-page .wc-block-cart-items,
.hs-cart-page .wc-block-cart-items th,
.hs-cart-page .wc-block-cart-items td {
  border-color: #dde5ec;
}

.hs-cart-page .wc-block-cart-items__row {
  border-bottom: 1px solid #dde5ec;
}

.hs-cart-page .wc-block-cart-item__image img,
.hs-cart-page .wc-block-components-product-image img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background: #fff;
  border: 1px solid #dde5ec;
  border-radius: 10px;
}

.hs-cart-page .wc-block-components-product-name {
  color: #0d1b2e;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
}

.hs-cart-page .wc-block-components-product-name:hover,
.hs-cart-page .wc-block-components-product-name:focus-visible {
  color: #155fa6;
}

.hs-cart-page .wc-block-components-product-price,
.hs-cart-page .wc-block-formatted-money-amount,
.hs-cart-page .wc-block-cart-item__total-price-and-sale-badge-wrapper {
  color: #0d1b2e;
  font-variant-numeric: tabular-nums;
}

.hs-cart-page .wc-block-components-quantity-selector {
  min-height: 42px;
  border: 1px solid #cbd6df;
  border-radius: 8px;
  background: #fff;
}

.hs-cart-page .wc-block-components-quantity-selector input,
.hs-cart-page .wc-block-components-quantity-selector button {
  min-height: 40px;
}

.hs-cart-page .wc-block-cart-item__remove-link,
.hs-cart-page .wc-block-components-product-details__name {
  color: #4a5a6e;
}

.hs-cart-page .wc-block-cart-item__remove-link:hover,
.hs-cart-page .wc-block-cart-item__remove-link:focus-visible {
  color: #155fa6;
}

.hs-cart-page .wc-block-components-totals-wrapper,
.hs-cart-page .wc-block-components-totals-item {
  border-color: #dde5ec;
}

.hs-cart-page .wc-block-components-totals-item__label,
.hs-cart-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  color: #0d1b2e;
  font-weight: 600;
}

.hs-cart-page .wc-block-components-totals-footer-item .wc-block-formatted-money-amount {
  font-size: 1.25rem;
  font-weight: 700;
}

.hs-cart-page .wc-block-cart__submit-container {
  margin-top: 1rem;
}

.hs-cart-page .wc-block-cart__submit-button,
.hs-cart-page .wc-block-components-button.wc-block-cart__submit-button {
  min-height: 52px;
  border: 0;
  border-radius: 9px;
  background: #f5971d;
  color: #0d1b2e;
  font-weight: 700;
  box-shadow: none;
}

.hs-cart-page .wc-block-cart__submit-button:hover,
.hs-cart-page .wc-block-cart__submit-button:focus-visible,
.hs-cart-page .wc-block-components-button.wc-block-cart__submit-button:hover,
.hs-cart-page .wc-block-components-button.wc-block-cart__submit-button:focus-visible {
  background: #db7f0c;
  color: #0d1b2e;
}

.hs-cart-page .wc-block-components-totals-coupon__button,
.hs-cart-page .wc-block-components-totals-coupon-link {
  color: #155fa6;
  font-weight: 600;
}

.hs-cart-page .wc-block-components-totals-coupon__input input,
.hs-cart-page .wc-block-components-text-input input {
  min-height: 46px;
  border-color: #cbd6df;
  border-radius: 8px;
}

/* Empty-cart experience. */
.hs-cart-page .wp-block-woocommerce-empty-cart-block,
.hs-cart-page .wc-block-cart__empty-cart__title {
  text-align: center;
}

.hs-cart-page .wp-block-woocommerce-empty-cart-block {
  background: #fff;
  border: 1px solid #dde5ec;
  border-radius: 16px;
  padding: clamp(2rem, 6vw, 4rem) clamp(1rem, 4vw, 2rem);
}

/* Trust/support strip below the cart. */
.hs-cart-assurance {
  gap: .75rem;
}

.hs-cart-assurance-item {
  height: 100%;
  border: 1px solid #dde5ec;
  border-radius: 12px;
  background: #fff;
  padding: 1rem;
  text-align: center;
}

.hs-cart-assurance-item p {
  margin: 0;
  line-height: 1.35;
}

.hs-cart-assurance-item strong {
  color: #0d1b2e;
}

.hs-cart-assurance-item small {
  color: #4a5a6e;
}

.hs-cart-after {
  border-top: 1px solid #dde5ec;
  padding-top: 1.25rem;
  gap: 1rem;
}

.hs-cart-after p {
  margin: 0;
  color: #4a5a6e;
}

.hs-cart-continue .wp-block-button__link {
  border-color: #155fa6;
  color: #155fa6;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* Classic-cart fallback for stores/pages still using the legacy shortcode. */
.hs-cart-page .woocommerce-cart-form,
.hs-cart-page .cart_totals {
  background: #fff;
  border: 1px solid #dde5ec;
  border-radius: 16px;
  padding: clamp(1rem, 2.5vw, 1.5rem);
}

.hs-cart-page .woocommerce table.shop_table {
  border-color: #dde5ec;
  border-radius: 10px;
}

.hs-cart-page .woocommerce .product-thumbnail img {
  width: 88px;
  height: 88px;
  object-fit: contain;
  border: 1px solid #dde5ec;
  border-radius: 8px;
}

.hs-cart-page .woocommerce a.checkout-button,
.hs-cart-page .woocommerce button.button[name="apply_coupon"] {
  border-radius: 9px;
}

.hs-cart-page .woocommerce a.checkout-button {
  background: #f5971d;
  color: #0d1b2e;
  font-weight: 700;
}

.hs-cart-page .woocommerce a.checkout-button:hover,
.hs-cart-page .woocommerce a.checkout-button:focus-visible {
  background: #db7f0c;
  color: #0d1b2e;
}

@media (max-width: 1024px) {
  .hs-cart-page .wc-block-components-sidebar-layout {
    gap: 1rem;
  }

  .hs-cart-page .wc-block-cart__sidebar {
    position: static;
  }

  .hs-cart-assurance {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 600px) {
  .hs-cart-page {
    padding-top: 1.5rem !important;
  }

  .hs-cart-page .wc-block-cart__main,
  .hs-cart-page .wc-block-cart__sidebar {
    border-radius: 12px;
    padding: .9rem;
  }

  .hs-cart-page .wc-block-cart__submit-button,
  .hs-cart-page .wc-block-components-button.wc-block-cart__submit-button {
    width: 100%;
  }

  .hs-cart-assurance {
    grid-template-columns: 1fr !important;
  }

  .hs-cart-after {
    align-items: stretch;
  }

  .hs-cart-after .wp-block-buttons,
  .hs-cart-after .wp-block-button,
  .hs-cart-after .wp-block-button__link {
    width: 100%;
  }

  .hs-cart-after .wp-block-button__link {
    justify-content: center;
  }
}

/* --------------------------------------------------------------------------
   Phase 5 — Checkout page
   Native WooCommerce Checkout block, with a minimal distraction-free shell.
   Payment gateways remain configuration, not theme behavior.
   -------------------------------------------------------------------------- */
.hs-checkout-header {
  background: var(--wp--preset--color--base-white, #fff);
  border-bottom: 1px solid var(--wp--preset--color--border, #d9e2ec);
}
.hs-checkout-header-inner {
  width: 100%;
  max-width: 1240px;
  min-height: 76px;
  padding: .75rem clamp(.9rem, 3vw, 1.25rem);
  box-sizing: border-box;
  gap: 1rem;
}
.hs-checkout-logo img {
  width: auto;
  height: clamp(38px, 5vw, 48px);
  max-width: clamp(120px, 24vw, 170px);
  object-fit: contain;
}
.hs-checkout-header-actions {
  gap: clamp(.75rem, 2vw, 1.25rem);
  flex: 0 0 auto;
}
.hs-checkout-safe,
.hs-checkout-back {
  margin: 0;
  font-size: .9rem;
  font-weight: 600;
}
.hs-checkout-safe {
  color: #38536f;
}
.hs-checkout-safe::before {
  content: "✓";
  display: inline-grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  margin-right: .4rem;
  border-radius: 999px;
  background: #e8f3fb;
  color: #1379c9;
  font-size: .78rem;
  font-weight: 800;
}
.hs-checkout-back a {
  color: #0b66b2;
  text-decoration: none;
}
.hs-checkout-back a:hover,
.hs-checkout-back a:focus-visible {
  text-decoration: underline;
}

.hs-checkout-page {
  background: var(--wp--preset--color--mist, #f5f8fb);
}
.hs-checkout-heading,
.hs-checkout-content,
.hs-checkout-assurance {
  width: 100%;
  max-width: 1240px;
  box-sizing: border-box;
}
.hs-checkout-heading {
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
}
.hs-checkout-title {
  margin: 0;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  line-height: 1.1;
  color: #0d1b2e;
}
.hs-checkout-intro {
  max-width: 54rem;
  margin: .65rem 0 0;
  color: #53657a;
}

/* WooCommerce Checkout block shell */
.hs-checkout-page .wp-block-woocommerce-checkout,
.hs-checkout-page .wc-block-checkout {
  width: 100%;
  max-width: none;
}
.hs-checkout-page .wc-block-components-sidebar-layout {
  align-items: flex-start;
  gap: clamp(1.25rem, 3vw, 2.5rem);
}
.hs-checkout-page .wc-block-checkout__main {
  min-width: 0;
  flex: 1 1 64%;
}
.hs-checkout-page .wc-block-checkout__sidebar {
  min-width: 0;
  flex: 0 1 36%;
  position: sticky;
  top: 1.25rem;
}

/* Step/card treatment without changing WooCommerce logic. */
.hs-checkout-page .wc-block-components-checkout-step,
.hs-checkout-page .wc-block-checkout__terms,
.hs-checkout-page .wc-block-checkout__actions,
.hs-checkout-page .wc-block-checkout__payment-method,
.hs-checkout-page .wc-block-checkout__order-notes {
  box-sizing: border-box;
}
.hs-checkout-page .wc-block-components-checkout-step {
  margin-bottom: 1rem;
  padding: clamp(1rem, 2.5vw, 1.4rem);
  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 14px;
}
.hs-checkout-page .wc-block-components-checkout-step__heading {
  margin-bottom: 1rem;
}
.hs-checkout-page .wc-block-components-checkout-step__title,
.hs-checkout-page .wc-block-components-title {
  color: #0d1b2e;
  font-weight: 700;
}

/* Inputs / selects */
.hs-checkout-page .wc-block-components-text-input input,
.hs-checkout-page .wc-block-components-combobox-control input,
.hs-checkout-page .wc-block-components-address-form select,
.hs-checkout-page .wc-blocks-components-select .wc-blocks-components-select__select,
.hs-checkout-page input[type="text"],
.hs-checkout-page input[type="email"],
.hs-checkout-page input[type="tel"],
.hs-checkout-page input[type="number"],
.hs-checkout-page select,
.hs-checkout-page textarea {
  min-height: 48px;
  border: 1px solid #b8c6d5;
  border-radius: 8px;
  background: #fff;
  box-sizing: border-box;
}
.hs-checkout-page .wc-block-components-text-input input:focus,
.hs-checkout-page .wc-block-components-combobox-control input:focus,
.hs-checkout-page input:focus,
.hs-checkout-page select:focus,
.hs-checkout-page textarea:focus {
  border-color: #167bd2;
  box-shadow: 0 0 0 2px rgba(22,123,210,.12);
  outline: none;
}

/* Order summary sidebar */
.hs-checkout-page .wc-block-checkout__sidebar,
.hs-checkout-page .wc-block-components-sidebar {
  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 14px;
  padding: clamp(1rem, 2.25vw, 1.35rem);
  box-sizing: border-box;
}
.hs-checkout-page .wc-block-components-order-summary,
.hs-checkout-page .wc-block-components-totals-wrapper,
.hs-checkout-page .wc-block-components-totals-item {
  border-color: #d9e2ec;
}
.hs-checkout-page .wc-block-components-order-summary-item__image img,
.hs-checkout-page .wc-block-components-product-image img {
  border-radius: 8px;
}
.hs-checkout-page .wc-block-components-product-name {
  color: #0d1b2e;
  font-weight: 700;
  line-height: 1.35;
}
.hs-checkout-page .wc-block-components-totals-footer-item .wc-block-formatted-money-amount,
.hs-checkout-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.hs-checkout-page .wc-block-components-totals-item__value {
  font-variant-numeric: tabular-nums;
}

/* Coupon + payment presentation */
.hs-checkout-page .wc-block-components-totals-coupon__button,
.hs-checkout-page .wc-block-components-totals-coupon-link {
  color: #0b66b2;
  font-weight: 600;
}
.hs-checkout-page .wc-block-components-notice-banner,
.hs-checkout-page .woocommerce-error,
.hs-checkout-page .woocommerce-info,
.hs-checkout-page .woocommerce-message {
  border-radius: 10px;
}
.hs-checkout-page .wc-block-components-notice-banner.is-error,
.hs-checkout-page .wc-block-checkout__no-payment-methods {
  background: #fff4f3;
  border-color: #e56d62;
  color: #8b2c24;
}

/* Place Order CTA */
.hs-checkout-page .wc-block-components-checkout-place-order-button,
.hs-checkout-page .wc-block-components-button.wc-block-components-checkout-place-order-button,
.hs-checkout-page #place_order {
  width: 100%;
  min-height: 52px;
  border: 0;
  border-radius: 9px;
  background: #f5971d;
  color: #0d1b2e;
  font-weight: 800;
  font-size: 1rem;
  box-shadow: none;
}
.hs-checkout-page .wc-block-components-checkout-place-order-button:hover,
.hs-checkout-page .wc-block-components-checkout-place-order-button:focus-visible,
.hs-checkout-page #place_order:hover,
.hs-checkout-page #place_order:focus-visible {
  background: #db7f0c;
  color: #0d1b2e;
}

.hs-checkout-assurance {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}
.hs-checkout-assurance-item {
  padding: .95rem 1rem;
  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 10px;
  text-align: center;
}
.hs-checkout-assurance-item p {
  margin: 0;
  color: #0d1b2e;
}
.hs-checkout-assurance-item strong {
  display: inline-block;
  margin-bottom: .18rem;
}
.hs-checkout-assurance-item small {
  color: #607286;
}

.hs-checkout-footer {
  background: #0d1b2e;
  color: #dce7f2;
}
.hs-checkout-footer-inner {
  width: 100%;
  max-width: 1240px;
  padding: 1rem clamp(.9rem, 3vw, 1.25rem);
  box-sizing: border-box;
  gap: .75rem 1.25rem;
}
.hs-checkout-footer p {
  margin: 0;
  font-size: .85rem;
}
.hs-checkout-footer a {
  color: #fff;
}

/* Tablet/mobile: remove sticky sidebar and keep the checkout naturally linear. */
@media (max-width: 1024px) {
  .hs-checkout-page .wc-block-components-sidebar-layout {
    flex-direction: column;
  }
  .hs-checkout-page .wc-block-checkout__main,
  .hs-checkout-page .wc-block-checkout__sidebar {
    width: 100%;
    flex-basis: auto;
  }
  .hs-checkout-page .wc-block-checkout__sidebar {
    position: static;
  }
  .hs-checkout-assurance {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .hs-checkout-header-inner {
    min-height: 64px;
  }
  .hs-checkout-safe {
    display: none;
  }
  .hs-checkout-logo img {
    height: 36px;
    max-width: 125px;
  }
  .hs-checkout-page {
    padding-top: 1rem !important;
    padding-bottom: 2rem !important;
  }
  .hs-checkout-heading {
    margin-bottom: 1rem;
  }
  .hs-checkout-title {
    font-size: clamp(1.6rem, 8vw, 2rem);
  }
  .hs-checkout-intro {
    font-size: .92rem;
  }
  .hs-checkout-page .wc-block-components-checkout-step,
  .hs-checkout-page .wc-block-checkout__sidebar,
  .hs-checkout-page .wc-block-components-sidebar {
    border-radius: 10px;
    padding: .9rem;
  }
  .hs-checkout-assurance {
    grid-template-columns: 1fr;
  }
  .hs-checkout-footer-inner {
    justify-content: center !important;
    text-align: center;
  }
}

/* v0.5.1 checkout fallback: WooCommerce/Site Editor may have a DB-saved Page: Checkout
   template that temporarily wins over the theme file. Keep the checkout block branded
   even in that state; reset the saved template to pick up the full HookShore shell. */
body.woocommerce-checkout .wp-block-woocommerce-checkout,
body.woocommerce-checkout .wc-block-checkout {
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
}
body.woocommerce-checkout .wc-block-components-sidebar-layout {
  align-items: flex-start;
  gap: clamp(1.25rem, 3vw, 2.5rem);
}
body.woocommerce-checkout .wc-block-components-checkout-step {
  margin-bottom: 1rem;
  padding: clamp(1rem, 2.5vw, 1.4rem);
  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 14px;
}
body.woocommerce-checkout .wc-block-checkout__sidebar,
body.woocommerce-checkout .wc-block-components-sidebar {
  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 14px;
  padding: clamp(1rem, 2.25vw, 1.35rem);
  box-sizing: border-box;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  min-height: 52px;
  border: 0;
  border-radius: 9px;
  background: #f5971d;
  color: #0d1b2e;
  font-weight: 800;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:focus-visible {
  background: #db7f0c;
  color: #0d1b2e;
}

/* --------------------------------------------------------------------------
   Phase 5.2 — Checkout runtime shell
   This targets the rendered native WooCommerce Checkout block directly, so
   the styling remains active even when WordPress has a database-saved Checkout
   page/template override. The block itself is not replaced.
   -------------------------------------------------------------------------- */
body.woocommerce-checkout .hs-checkout-runtime {
  width: min(1240px, calc(100% - 2 * clamp(.9rem, 3vw, 1.5rem)));
  margin: clamp(1.5rem, 4vw, 3rem) auto;
  box-sizing: border-box;
}
body.woocommerce-checkout .hs-checkout-runtime__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem 2rem;
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
}
body.woocommerce-checkout .hs-checkout-runtime__intro {
  min-width: 0;
}
body.woocommerce-checkout .hs-checkout-runtime__eyebrow {
  margin: 0 0 .35rem;
  color: #0b66b2;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
body.woocommerce-checkout .hs-checkout-runtime__head h1 {
  margin: 0;
  color: #0d1b2e;
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  line-height: 1.05;
}
body.woocommerce-checkout .hs-checkout-runtime__head p:not(.hs-checkout-runtime__eyebrow) {
  max-width: 52rem;
  margin: .65rem 0 0;
  color: #53657a;
}
body.woocommerce-checkout .hs-checkout-runtime__back {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .65rem 1rem;
  border: 1px solid #9db3c8;
  border-radius: 9px;
  background: #fff;
  color: #0b66b2;
  font-weight: 700;
  text-decoration: none;
}
body.woocommerce-checkout .hs-checkout-runtime__back:hover,
body.woocommerce-checkout .hs-checkout-runtime__back:focus-visible {
  border-color: #0b66b2;
  background: #f5f9fd;
}
body.woocommerce-checkout .hs-checkout-runtime__block {
  padding: clamp(1rem, 2.5vw, 1.5rem);
  border: 1px solid #d9e2ec;
  border-radius: 16px;
  background: #fff;
  box-sizing: border-box;
}
body.woocommerce-checkout .hs-checkout-runtime .wp-block-woocommerce-checkout,
body.woocommerce-checkout .hs-checkout-runtime .wc-block-checkout {
  width: 100%;
  max-width: none;
  margin: 0;
}
body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-sidebar-layout {
  align-items: flex-start;
  gap: clamp(1.25rem, 3vw, 2.5rem);
}
body.woocommerce-checkout .hs-checkout-runtime .wc-block-checkout__main {
  min-width: 0;
  flex: 1 1 64%;
}
body.woocommerce-checkout .hs-checkout-runtime .wc-block-checkout__sidebar,
body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-sidebar {
  min-width: 0;
  flex: 0 1 36%;
  position: sticky;
  top: 1.25rem;
  padding: clamp(1rem, 2.25vw, 1.35rem);
  border: 1px solid #d9e2ec;
  border-radius: 14px;
  background: #f8fbfe;
  box-sizing: border-box;
}
body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-checkout-step {
  margin-bottom: 1rem;
  padding: clamp(1rem, 2.5vw, 1.35rem);
  border: 1px solid #d9e2ec;
  border-radius: 12px;
  background: #fff;
  box-sizing: border-box;
}
body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-text-input input,
body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-combobox-control input,
body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-address-form select,
body.woocommerce-checkout .hs-checkout-runtime .wc-blocks-components-select .wc-blocks-components-select__select,
body.woocommerce-checkout .hs-checkout-runtime input[type="text"],
body.woocommerce-checkout .hs-checkout-runtime input[type="email"],
body.woocommerce-checkout .hs-checkout-runtime input[type="tel"],
body.woocommerce-checkout .hs-checkout-runtime input[type="number"],
body.woocommerce-checkout .hs-checkout-runtime select,
body.woocommerce-checkout .hs-checkout-runtime textarea {
  min-height: 48px;
  border: 1px solid #b8c6d5;
  border-radius: 8px;
  background: #fff;
  box-sizing: border-box;
}
body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-button.wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .hs-checkout-runtime #place_order {
  width: 100%;
  min-height: 52px;
  border: 0;
  border-radius: 9px;
  background: #f5971d;
  color: #0d1b2e;
  font-weight: 800;
  font-size: 1rem;
  box-shadow: none;
}
body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-checkout-place-order-button:focus-visible,
body.woocommerce-checkout .hs-checkout-runtime #place_order:hover,
body.woocommerce-checkout .hs-checkout-runtime #place_order:focus-visible {
  background: #db7f0c;
  color: #0d1b2e;
}
body.woocommerce-checkout .hs-checkout-runtime__assurance {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  margin-top: 1rem;
}
body.woocommerce-checkout .hs-checkout-runtime__assurance > div {
  min-width: 0;
  padding: .9rem 1rem;
  border: 1px solid #d9e2ec;
  border-radius: 10px;
  background: #fff;
  text-align: center;
}
body.woocommerce-checkout .hs-checkout-runtime__assurance strong,
body.woocommerce-checkout .hs-checkout-runtime__assurance span {
  display: block;
}
body.woocommerce-checkout .hs-checkout-runtime__assurance strong {
  margin-bottom: .2rem;
  color: #0d1b2e;
}
body.woocommerce-checkout .hs-checkout-runtime__assurance span {
  color: #607286;
  font-size: .84rem;
  line-height: 1.35;
}
@media (max-width: 1024px) {
  body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-sidebar-layout {
    flex-direction: column;
  }
  body.woocommerce-checkout .hs-checkout-runtime .wc-block-checkout__main,
  body.woocommerce-checkout .hs-checkout-runtime .wc-block-checkout__sidebar {
    width: 100%;
    flex-basis: auto;
  }
  body.woocommerce-checkout .hs-checkout-runtime .wc-block-checkout__sidebar,
  body.woocommerce-checkout .hs-checkout-runtime .wc-block-components-sidebar {
    position: static;
  }
  body.woocommerce-checkout .hs-checkout-runtime__assurance {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  body.woocommerce-checkout .hs-checkout-runtime {
    width: min(100% - 1rem, 1240px);
    margin-block: 1rem 1.5rem;
  }
  body.woocommerce-checkout .hs-checkout-runtime__head {
    align-items: stretch;
    flex-direction: column;
  }
  body.woocommerce-checkout .hs-checkout-runtime__back {
    align-self: flex-start;
  }
  body.woocommerce-checkout .hs-checkout-runtime__block {
    padding: .75rem;
    border-radius: 12px;
  }
  body.woocommerce-checkout .hs-checkout-runtime__assurance {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   Informational / footer-linked pages — v0.6.0
   -------------------------------------------------------------------------- */
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) main.wp-block-group > .wp-block-post-title {
  width: min(100% - 2rem, 860px);
  margin-inline: auto;
  color: #0d1b2e;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.08;
}
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) main.wp-block-group > .wp-block-post-content {
  width: min(100% - 2rem, 860px);
  margin-inline: auto;
}
.hs-info-page {
  color: #24364b;
  font-size: 1rem;
  line-height: 1.75;
}
.hs-info-page > * + * { margin-block-start: 1.15rem; }
.hs-info-page h2,
.hs-info-page h3 {
  color: #0d1b2e;
  line-height: 1.2;
}
.hs-info-page h2 {
  margin-top: clamp(2rem, 5vw, 3rem);
  font-size: clamp(1.45rem, 2.8vw, 2rem);
}
.hs-info-page h3 { font-size: 1.1rem; }
.hs-info-page a { color: #0667b1; }
.hs-info-page a:hover,
.hs-info-page a:focus-visible { color: #034f88; }
.hs-page-lead {
  max-width: 72ch;
  color: #52677d;
  font-size: clamp(1.05rem, 2vw, 1.18rem);
  line-height: 1.7;
}
.hs-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
}
.hs-info-card,
.hs-contact-card,
.hs-track-card,
.hs-policy-note {
  border: 1px solid #d9e2ec;
  border-radius: 14px;
  background: #f8fbfe;
}
.hs-info-card { padding: 1.25rem; }
.hs-info-card p { margin-bottom: 0; }
.hs-contact-card,
.hs-track-card { padding: clamp(1.2rem, 3vw, 1.75rem); }
.hs-contact-card h2 { margin-top: 0; }
.hs-contact-email { font-size: clamp(1.1rem, 2vw, 1.35rem); font-weight: 700; }
.hs-policy-date { color: #607286; font-size: .9rem; }
.hs-policy-note {
  margin-top: 2rem !important;
  padding: 1rem 1.1rem;
  color: #53677c;
  font-size: .92rem;
}
.hs-faq { margin-top: 1.5rem; border-top: 1px solid #d9e2ec; }
.hs-faq details { border-bottom: 1px solid #d9e2ec; }
.hs-faq summary {
  cursor: pointer;
  padding: 1rem .15rem;
  color: #0d1b2e;
  font-weight: 700;
  list-style-position: inside;
}
.hs-faq details p { margin: 0; padding: 0 .15rem 1rem; color: #53677c; }
.hs-track-card .woocommerce {
  margin: 0;
}
.hs-track-card form.track_order {
  margin: 0;
}
.hs-track-card input[type="text"],
.hs-track-card input[type="email"] {
  min-height: 48px;
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #b8c6d5;
  border-radius: 8px;
}
.hs-track-card button,
.hs-track-card .button {
  min-height: 48px;
  border: 0;
  border-radius: 8px;
  background: #f5971d;
  color: #0d1b2e;
  font-weight: 800;
}
.hs-support-line { margin-top: 1rem; }
.hs-deals-page .woocommerce ul.products {
  margin-top: 1.5rem;
}
@media (max-width: 820px) {
  .hs-info-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  body.page:not(.woocommerce-cart):not(.woocommerce-checkout) main.wp-block-group > .wp-block-post-title,
  body.page:not(.woocommerce-cart):not(.woocommerce-checkout) main.wp-block-group > .wp-block-post-content {
    width: min(100% - 1.5rem, 860px);
  }
  .hs-info-page { font-size: .97rem; }
}

/* --------------------------------------------------------------------------
   Contact form — v0.6.2
   -------------------------------------------------------------------------- */
.hs-contact-form-card {
  margin-top: 1.5rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border: 1px solid #d9e2ec;
  border-radius: 14px;
  background: #fff;
}
.hs-contact-form-card h2 { margin-top: 0; }
.hs-contact-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.hs-contact-form p { margin: 0 0 1rem; }
.hs-contact-form label {
  display: block;
  margin-bottom: .4rem;
  color: #0d1b2e;
  font-weight: 700;
}
.hs-contact-form input,
.hs-contact-form select,
.hs-contact-form textarea {
  width: 100%;
  min-height: 48px;
  padding: .75rem .85rem;
  border: 1px solid #b8c6d5;
  border-radius: 8px;
  background: #fff;
  color: #0d1b2e;
  font: inherit;
  box-sizing: border-box;
}
.hs-contact-form textarea { min-height: 150px; resize: vertical; }
.hs-contact-form input:focus-visible,
.hs-contact-form select:focus-visible,
.hs-contact-form textarea:focus-visible {
  outline: 3px solid rgba(6, 103, 177, .18);
  outline-offset: 1px;
  border-color: #0667b1;
}
.hs-field-optional { color: #607286; font-weight: 400; }
.hs-contact-form__privacy { color: #607286; font-size: .9rem; }
.hs-contact-submit {
  min-height: 48px;
  padding: .75rem 1.25rem;
  border: 0;
  border-radius: 8px;
  background: #f5971d;
  color: #0d1b2e;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.hs-contact-submit:hover,
.hs-contact-submit:focus-visible { background: #db7f0c; }
.hs-contact-card--secondary { margin-top: 1.5rem; }
.hs-contact-notice {
  margin-bottom: 1rem;
  padding: .85rem 1rem;
  border-radius: 8px;
  font-weight: 600;
}
.hs-contact-notice--success { border: 1px solid #9bc7ad; background: #f2fbf5; color: #214d32; }
.hs-contact-notice--error { border: 1px solid #efb1ac; background: #fff5f4; color: #8a2c25; }
.hs-contact-form__honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
}
@media (max-width: 700px) {
  .hs-contact-form__grid { grid-template-columns: 1fr; gap: 0; }
}


/* --------------------------------------------------------------------------
   Order received / Thank-you page — v0.6.3
   Native WooCommerce confirmation content, polished to match HookShore.
   -------------------------------------------------------------------------- */
body.woocommerce-order-received main.wp-block-group {
  background: #f5f8fb;
}
body.woocommerce-order-received main.wp-block-group > .wp-block-post-title,
body.woocommerce-order-received main.wp-block-group > .wp-block-post-content {
  width: min(100% - 2rem, 1120px);
  margin-inline: auto;
}
body.woocommerce-order-received main.wp-block-group > .wp-block-post-title {
  margin-top: clamp(2rem, 5vw, 3.75rem);
  margin-bottom: 1rem;
  color: #0d1b2e;
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  line-height: 1.04;
  letter-spacing: -.03em;
}
body.woocommerce-order-received main.wp-block-group > .wp-block-post-content {
  padding-bottom: clamp(2.5rem, 6vw, 4.5rem);
}
body.woocommerce-order-received .woocommerce {
  color: #24364b;
}
body.woocommerce-order-received .woocommerce-notice--success,
body.woocommerce-order-received .woocommerce-thankyou-order-received {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0 0 1.25rem;
  padding: 1.1rem 1.25rem;
  border: 1px solid #b9d9c4;
  border-radius: 14px;
  background: #f3fbf6;
  color: #17472b;
  font-size: 1rem;
  line-height: 1.45;
}
.hs-order-success__icon {
  display: inline-grid;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50%;
  background: #dff3e5;
  color: #176b39;
  font-size: 1.25rem;
  font-weight: 900;
}
.hs-order-success__copy {
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.hs-order-success__copy strong {
  color: #0d1b2e;
  font-size: 1.08rem;
}
.hs-order-success__copy small {
  color: #49685a;
  font-size: .92rem;
}
body.woocommerce-order-received .woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .75rem;
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}
body.woocommerce-order-received .woocommerce-order-overview li {
  min-width: 0;
  margin: 0;
  padding: 1rem;
  border: 1px solid #d9e2ec;
  border-radius: 12px;
  background: #fff;
  color: #607286;
  font-size: .76rem;
  line-height: 1.35;
  text-transform: uppercase;
}
body.woocommerce-order-received .woocommerce-order-overview li strong {
  display: block;
  margin-top: .35rem;
  overflow-wrap: anywhere;
  color: #0d1b2e;
  font-size: .98rem;
  line-height: 1.35;
  text-transform: none;
}
body.woocommerce-order-received .woocommerce-order-details,
body.woocommerce-order-received .woocommerce-customer-details {
  margin: 1.25rem 0 0;
  padding: clamp(1rem, 2.5vw, 1.4rem);
  border: 1px solid #d9e2ec;
  border-radius: 14px;
  background: #fff;
}
body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-customer-details > h2,
body.woocommerce-order-received .woocommerce-column__title {
  margin: 0 0 1rem;
  color: #0d1b2e;
  font-size: clamp(1.25rem, 2.5vw, 1.6rem);
  line-height: 1.2;
}
body.woocommerce-order-received table.woocommerce-table--order-details,
body.woocommerce-order-received table.shop_table {
  width: 100%;
  margin: 0;
  border: 1px solid #d9e2ec;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}
body.woocommerce-order-received table.shop_table th,
body.woocommerce-order-received table.shop_table td {
  padding: .9rem 1rem;
  border: 0;
  border-bottom: 1px solid #e4ebf2;
  text-align: left;
  vertical-align: top;
}
body.woocommerce-order-received table.shop_table tr:last-child th,
body.woocommerce-order-received table.shop_table tr:last-child td {
  border-bottom: 0;
}
body.woocommerce-order-received table.shop_table th {
  color: #0d1b2e;
  font-weight: 800;
}
body.woocommerce-order-received table.shop_table a {
  color: #0667b1;
  font-weight: 650;
}
body.woocommerce-order-received .woocommerce-customer-details address {
  margin: 0;
  padding: 1rem;
  border: 1px solid #d9e2ec;
  border-radius: 10px;
  background: #f8fbfe;
  color: #24364b;
  font-style: normal;
  line-height: 1.7;
}
body.woocommerce-order-received .woocommerce-columns--addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
body.woocommerce-order-received .woocommerce-columns--addresses .woocommerce-column {
  float: none;
  width: auto;
  margin: 0;
}
.hs-order-next {
  margin-top: 1.25rem;
  padding: clamp(1.1rem, 2.5vw, 1.5rem);
  border: 1px solid #d9e2ec;
  border-radius: 14px;
  background: #fff;
}
.hs-order-next__head {
  margin-bottom: 1rem;
}
.hs-order-next__eyebrow {
  margin: 0 0 .2rem;
  color: #0667b1;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.hs-order-next h2 {
  margin: 0;
  color: #0d1b2e;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}
.hs-order-next__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
}
.hs-order-next__item {
  display: flex;
  gap: .75rem;
  min-width: 0;
  padding: 1rem;
  border: 1px solid #e0e7ef;
  border-radius: 10px;
  background: #f8fbfe;
}
.hs-order-next__number {
  display: inline-grid;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  background: #e7f2fb;
  color: #065b9c;
  font-weight: 900;
}
.hs-order-next__item strong {
  display: block;
  margin-bottom: .2rem;
  color: #0d1b2e;
}
.hs-order-next__item p {
  margin: 0;
  color: #607286;
  font-size: .9rem;
  line-height: 1.5;
}
.hs-order-next a { color: #0667b1; }
.hs-order-next__shop {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  margin-top: 1rem;
  padding: .7rem 1.1rem;
  border-radius: 8px;
  background: #f5971d;
  color: #0d1b2e !important;
  font-weight: 800;
  text-decoration: none;
}
.hs-order-next__shop:hover,
.hs-order-next__shop:focus-visible { background: #db7f0c; }
@media (max-width: 900px) {
  body.woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.woocommerce-order-received .woocommerce-columns--addresses,
  .hs-order-next__grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  body.woocommerce-order-received main.wp-block-group > .wp-block-post-title,
  body.woocommerce-order-received main.wp-block-group > .wp-block-post-content {
    width: min(100% - 1.25rem, 1120px);
  }
  body.woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: 1fr;
  }
  body.woocommerce-order-received .woocommerce-notice--success,
  body.woocommerce-order-received .woocommerce-thankyou-order-received {
    align-items: flex-start;
    padding: 1rem;
  }
  body.woocommerce-order-received table.shop_table th,
  body.woocommerce-order-received table.shop_table td {
    padding: .75rem;
  }
}

/* --------------------------------------------------------------------------
   WooCommerce My Account — HookShore account portal
   Keeps native WooCommerce endpoints/forms intact; presentation only.
   -------------------------------------------------------------------------- */
body.woocommerce-account main.wp-block-group {
  background: #f5f8fb;
}
body.woocommerce-account main.wp-block-group > .wp-block-post-title,
body.woocommerce-account main.wp-block-group > .wp-block-post-content {
  width: min(100% - 2rem, 1120px);
  margin-inline: auto;
}
body.woocommerce-account main.wp-block-group > .wp-block-post-title {
  margin-top: clamp(2rem, 5vw, 3.5rem);
  margin-bottom: 1.4rem;
  color: #0d1b2e;
  font-size: clamp(2.35rem, 5vw, 3.55rem);
  line-height: 1.04;
  letter-spacing: -.03em;
}
body.woocommerce-account main.wp-block-group > .wp-block-post-content {
  padding-bottom: clamp(3rem, 6vw, 5rem);
}
body.woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: minmax(210px, 250px) minmax(0, 1fr);
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
  color: #24364b;
}
body.woocommerce-account .woocommerce::before,
body.woocommerce-account .woocommerce::after {
  display: none;
}
body.woocommerce-account .woocommerce-MyAccount-navigation {
  float: none;
  width: auto;
  margin: 0;
  padding: .7rem;
  border: 1px solid #d9e2ec;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(13, 27, 46, .045);
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  display: grid;
  gap: .3rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li {
  margin: 0;
  padding: 0;
  border: 0;
}
body.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: flex;
  min-height: 46px;
  align-items: center;
  padding: .7rem .85rem;
  border-radius: 9px;
  color: #285374;
  font-weight: 650;
  line-height: 1.25;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}
body.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible {
  background: #edf5fb;
  color: #065b9c;
}
body.woocommerce-account .woocommerce-MyAccount-navigation .is-active > a {
  background: #0d1b2e;
  color: #fff;
  font-weight: 800;
}
body.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout > a {
  margin-top: .25rem;
  border-top: 1px solid #e5ebf1;
  border-radius: 0 0 9px 9px;
  color: #8a3a27;
}
body.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout > a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout > a:focus-visible {
  background: #fff5f1;
  color: #7a2e1d;
}
body.woocommerce-account .woocommerce-MyAccount-content {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: clamp(1.1rem, 2.5vw, 1.6rem);
  border: 1px solid #d9e2ec;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(13, 27, 46, .045);
}
body.woocommerce-account .woocommerce-MyAccount-content > :first-child {
  margin-top: 0;
}
body.woocommerce-account .woocommerce-MyAccount-content > :last-child {
  margin-bottom: 0;
}
body.woocommerce-account .woocommerce-MyAccount-content p {
  color: #334d66;
  line-height: 1.65;
}
body.woocommerce-account .woocommerce-MyAccount-content a:not(.button) {
  color: #0667b1;
  text-underline-offset: 2px;
}
body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3,
body.woocommerce-account .woocommerce-MyAccount-content legend {
  color: #0d1b2e;
  line-height: 1.2;
}

/* Notices */
body.woocommerce-account .woocommerce-info,
body.woocommerce-account .woocommerce-message,
body.woocommerce-account .woocommerce-error {
  margin: 0 0 1rem;
  padding: .95rem 1rem;
  border: 1px solid #c7d9ea;
  border-left: 4px solid #1c7fd6;
  border-radius: 10px;
  background: #f7fbff;
  color: #24364b;
}
body.woocommerce-account .woocommerce-error {
  border-color: #efc8bf;
  border-left-color: #c75033;
  background: #fff7f5;
}
body.woocommerce-account .woocommerce-message {
  border-color: #bedcc7;
  border-left-color: #27844b;
  background: #f5fbf7;
}

/* Orders table */
body.woocommerce-account table.shop_table,
body.woocommerce-account table.woocommerce-orders-table {
  width: 100%;
  margin: 0;
  border: 1px solid #d9e2ec;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 11px;
  overflow: hidden;
  background: #fff;
}
body.woocommerce-account table.shop_table th,
body.woocommerce-account table.shop_table td {
  padding: .9rem .85rem;
  border: 0;
  border-bottom: 1px solid #e5ebf1;
  text-align: left;
  vertical-align: middle;
}
body.woocommerce-account table.shop_table thead th {
  background: #f4f8fb;
  color: #0d1b2e;
  font-size: .9rem;
  font-weight: 800;
}
body.woocommerce-account table.shop_table tbody tr:last-child td,
body.woocommerce-account table.shop_table tbody tr:last-child th {
  border-bottom: 0;
}
body.woocommerce-account table.shop_table tbody tr:hover {
  background: #fbfdff;
}
body.woocommerce-account .woocommerce-orders-table__cell-order-number a {
  font-weight: 800;
}
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .button,
body.woocommerce-account .woocommerce-button,
body.woocommerce-account button.button,
body.woocommerce-account input.button,
body.woocommerce-account a.button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: .68rem 1rem;
  border: 0;
  border-radius: 8px;
  background: #f5971d;
  color: #0d1b2e !important;
  font-family: inherit;
  font-weight: 800;
  line-height: 1.15;
  text-decoration: none;
  box-shadow: none;
}
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .button:hover,
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .button:focus-visible,
body.woocommerce-account .woocommerce-button:hover,
body.woocommerce-account button.button:hover,
body.woocommerce-account input.button:hover,
body.woocommerce-account a.button:hover {
  background: #db7f0c;
  color: #0d1b2e !important;
}

/* Address cards */
body.woocommerce-account .woocommerce-Addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
body.woocommerce-account .woocommerce-Addresses::before,
body.woocommerce-account .woocommerce-Addresses::after {
  display: none;
}
body.woocommerce-account .woocommerce-Address {
  float: none;
  width: auto;
  margin: 0;
  padding: 1.15rem;
  border: 1px solid #d9e2ec;
  border-radius: 11px;
  background: #f8fbfe;
}
body.woocommerce-account .woocommerce-Address-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
body.woocommerce-account .woocommerce-Address-title h2,
body.woocommerce-account .woocommerce-Address-title h3 {
  float: none;
  margin: 0 0 .8rem;
  font-size: 1.28rem;
}
body.woocommerce-account .woocommerce-Address-title .edit {
  float: none;
  flex: 0 0 auto;
  margin-top: .12rem;
  font-size: .9rem;
  font-weight: 700;
}
body.woocommerce-account .woocommerce-Address address {
  margin: 0;
  color: #334d66;
  font-style: normal;
  line-height: 1.7;
}

/* Forms: account details, login/register, addresses, payment methods */
body.woocommerce-account form .form-row,
body.woocommerce-account .woocommerce-form-row {
  margin-bottom: 1rem;
}
body.woocommerce-account form label {
  display: block;
  margin-bottom: .4rem;
  color: #0d1b2e;
  font-size: .93rem;
  font-weight: 700;
}
body.woocommerce-account form input.input-text,
body.woocommerce-account form input[type="email"],
body.woocommerce-account form input[type="password"],
body.woocommerce-account form input[type="text"],
body.woocommerce-account form input[type="tel"],
body.woocommerce-account form select,
body.woocommerce-account form textarea {
  width: 100%;
  min-height: 48px;
  padding: .72rem .82rem;
  border: 1px solid #aebdca;
  border-radius: 8px;
  background: #fff;
  color: #0d1b2e;
  font: inherit;
  box-shadow: none;
}
body.woocommerce-account form textarea {
  min-height: 120px;
}
body.woocommerce-account form input:focus,
body.woocommerce-account form select:focus,
body.woocommerce-account form textarea:focus {
  border-color: #1c7fd6;
  outline: 3px solid rgba(28, 127, 214, .14);
  outline-offset: 0;
}
body.woocommerce-account form fieldset {
  margin: 1.25rem 0;
  padding: 1rem;
  border: 1px solid #d9e2ec;
  border-radius: 10px;
  background: #f8fbfe;
}
body.woocommerce-account form fieldset legend {
  padding: 0 .35rem;
  font-weight: 800;
}
body.woocommerce-account .show-password-input {
  right: .85rem;
}
body.woocommerce-account .woocommerce-form-login,
body.woocommerce-account .woocommerce-form-register,
body.woocommerce-account form.woocommerce-EditAccountForm,
body.woocommerce-account form.woocommerce-address-fields {
  margin: 0;
}
body.woocommerce-account .u-columns.col2-set {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
body.woocommerce-account .u-columns.col2-set::before,
body.woocommerce-account .u-columns.col2-set::after {
  display: none;
}
body.woocommerce-account .u-columns.col2-set > .u-column1,
body.woocommerce-account .u-columns.col2-set > .u-column2 {
  float: none;
  width: auto;
  margin: 0;
  padding: 1.2rem;
  border: 1px solid #d9e2ec;
  border-radius: 12px;
  background: #fff;
}
body.woocommerce-account .u-columns.col2-set > .u-column1 h2,
body.woocommerce-account .u-columns.col2-set > .u-column2 h2 {
  margin-top: 0;
}

/* Saved payment methods */
body.woocommerce-account .woocommerce-PaymentMethods,
body.woocommerce-account .woocommerce-MyAccount-paymentMethods {
  width: 100%;
}
body.woocommerce-account .woocommerce-PaymentMethods + .button,
body.woocommerce-account .woocommerce-MyAccount-content > .button {
  margin-top: .9rem;
}

/* Endpoint content headings should not float or inherit legacy widths. */
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-column,
body.woocommerce-account .woocommerce-MyAccount-content .col-1,
body.woocommerce-account .woocommerce-MyAccount-content .col-2 {
  float: none;
}

@media (max-width: 900px) {
  body.woocommerce-account .woocommerce {
    grid-template-columns: 1fr;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation a {
    justify-content: center;
    text-align: center;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout > a {
    margin-top: 0;
    border-top: 0;
    border-radius: 9px;
  }
}
@media (max-width: 700px) {
  body.woocommerce-account main.wp-block-group > .wp-block-post-title,
  body.woocommerce-account main.wp-block-group > .wp-block-post-content {
    width: min(100% - 1.25rem, 1120px);
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.woocommerce-account .woocommerce-Addresses,
  body.woocommerce-account .u-columns.col2-set {
    grid-template-columns: 1fr;
  }
  body.woocommerce-account table.woocommerce-orders-table thead {
    display: none;
  }
  body.woocommerce-account table.woocommerce-orders-table,
  body.woocommerce-account table.woocommerce-orders-table tbody,
  body.woocommerce-account table.woocommerce-orders-table tr,
  body.woocommerce-account table.woocommerce-orders-table td {
    display: block;
    width: 100%;
  }
  body.woocommerce-account table.woocommerce-orders-table tr {
    padding: .35rem 0;
    border-bottom: 1px solid #d9e2ec;
  }
  body.woocommerce-account table.woocommerce-orders-table tr:last-child {
    border-bottom: 0;
  }
  body.woocommerce-account table.woocommerce-orders-table td {
    display: grid;
    grid-template-columns: minmax(110px, 42%) minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    padding: .65rem .8rem;
    border-bottom: 0;
    text-align: right;
  }
  body.woocommerce-account table.woocommerce-orders-table td::before {
    color: #607286;
    font-weight: 700;
    text-align: left;
  }
  body.woocommerce-account .woocommerce-orders-table__cell-order-actions .button {
    width: 100%;
  }
}
@media (max-width: 440px) {
  body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    grid-template-columns: 1fr 1fr;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation a {
    min-height: 44px;
    padding: .62rem .55rem;
    font-size: .9rem;
  }
  body.woocommerce-account .woocommerce-MyAccount-content {
    padding: 1rem;
  }
  body.woocommerce-account table.woocommerce-orders-table td {
    grid-template-columns: 1fr;
    gap: .2rem;
    text-align: left;
  }
  body.woocommerce-account table.woocommerce-orders-table td::before {
    display: block;
  }
}

/* v0.6.6 — My Account address-card refinement */
body.woocommerce-account .woocommerce-Addresses {
  gap: 1.15rem;
}
body.woocommerce-account .woocommerce-Address {
  min-width: 0;
  padding: 1.25rem;
}
body.woocommerce-account .woocommerce-Address-title {
  display: block;
}
body.woocommerce-account .woocommerce-Address-title h2,
body.woocommerce-account .woocommerce-Address-title h3 {
  margin: 0 0 .45rem;
}
body.woocommerce-account .woocommerce-Address-title .edit {
  display: inline-flex;
  margin: 0 0 .9rem;
  font-size: .9rem;
  line-height: 1.3;
  white-space: normal;
}
@media (min-width: 901px) {
  body.woocommerce-account .woocommerce {
    grid-template-columns: minmax(190px, 230px) minmax(0, 1fr);
  }
  body.woocommerce-account .woocommerce-MyAccount-content {
    padding: clamp(1.25rem, 2.2vw, 1.75rem);
  }
}
@media (max-width: 700px) {
  body.woocommerce-account .woocommerce-Address {
    padding: 1.1rem;
  }
}


/* v0.6.6 — Shop / category archive polish */
body.post-type-archive-product main,
body.tax-product_cat main,
body.tax-product_tag main {
  width: min(100% - 2rem, 1180px);
  margin-inline: auto;
}

body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_tag .woocommerce-result-count {
  float: none;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 0 0 1.25rem;
  color: #53677c;
  font-weight: 600;
}

body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.tax-product_tag .woocommerce-ordering {
  float: right;
  margin: 0 0 1.25rem 1rem;
}

body.post-type-archive-product .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select,
body.tax-product_tag .woocommerce-ordering select {
  min-width: 210px;
  min-height: 44px;
  padding: .65rem 2.4rem .65rem .85rem;
  border: 1px solid #b8c6d5;
  border-radius: 9px;
  background-color: #fff;
  color: #0d1b2e;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

body.post-type-archive-product .woocommerce-ordering select:focus,
body.tax-product_cat .woocommerce-ordering select:focus,
body.tax-product_tag .woocommerce-ordering select:focus {
  outline: 3px solid rgba(28,127,214,.18);
  outline-offset: 1px;
  border-color: #1c7fd6;
}

body.post-type-archive-product .woocommerce::after,
body.tax-product_cat .woocommerce::after,
body.tax-product_tag .woocommerce::after {
  content: "";
  display: table;
  clear: both;
}

body.post-type-archive-product .woocommerce ul.products,
body.tax-product_cat .woocommerce ul.products,
body.tax-product_tag .woocommerce ul.products {
  clear: both;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
  margin: 0;
}

body.post-type-archive-product .woocommerce ul.products::before,
body.post-type-archive-product .woocommerce ul.products::after,
body.tax-product_cat .woocommerce ul.products::before,
body.tax-product_cat .woocommerce ul.products::after,
body.tax-product_tag .woocommerce ul.products::before,
body.tax-product_tag .woocommerce ul.products::after {
  display: none;
}

body.post-type-archive-product .woocommerce ul.products li.product,
body.tax-product_cat .woocommerce ul.products li.product,
body.tax-product_tag .woocommerce ul.products li.product {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
}

body.post-type-archive-product .woocommerce ul.products li.product .woocommerce-LoopProduct-link,
body.tax-product_cat .woocommerce ul.products li.product .woocommerce-LoopProduct-link,
body.tax-product_tag .woocommerce ul.products li.product .woocommerce-LoopProduct-link {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
}

body.post-type-archive-product .woocommerce ul.products li.product .button,
body.tax-product_cat .woocommerce ul.products li.product .button,
body.tax-product_tag .woocommerce ul.products li.product .button {
  align-self: center;
  margin-top: auto;
}

body.post-type-archive-product .woocommerce ul.products li.product:hover,
body.tax-product_cat .woocommerce ul.products li.product:hover,
body.tax-product_tag .woocommerce ul.products li.product:hover {
  box-shadow: 0 14px 34px rgba(13,27,46,.12);
  transform: translateY(-3px);
}

@media (max-width: 1050px) {
  body.post-type-archive-product .woocommerce ul.products,
  body.tax-product_cat .woocommerce ul.products,
  body.tax-product_tag .woocommerce ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  body.post-type-archive-product .woocommerce ul.products,
  body.tax-product_cat .woocommerce ul.products,
  body.tax-product_tag .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.post-type-archive-product .woocommerce-result-count,
  body.tax-product_cat .woocommerce-result-count,
  body.tax-product_tag .woocommerce-result-count,
  body.post-type-archive-product .woocommerce-ordering,
  body.tax-product_cat .woocommerce-ordering,
  body.tax-product_tag .woocommerce-ordering {
    float: none;
    width: 100%;
    margin: 0 0 .85rem;
  }
  body.post-type-archive-product .woocommerce-ordering select,
  body.tax-product_cat .woocommerce-ordering select,
  body.tax-product_tag .woocommerce-ordering select {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 520px) {
  body.post-type-archive-product main,
  body.tax-product_cat main,
  body.tax-product_tag main {
    width: min(100% - 1.25rem, 1180px);
  }
  body.post-type-archive-product .woocommerce ul.products,
  body.tax-product_cat .woocommerce ul.products,
  body.tax-product_tag .woocommerce ul.products {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

/* v0.6.7 — Edge states: 404, no-results, empty cart/account, unavailable products */
.hs-404-page,
.hs-search-results-page {
  width: min(100% - 2rem, 1180px);
  margin-inline: auto;
}

.hs-empty-state-card {
  width: min(100%, 760px);
  margin-inline: auto;
  padding: clamp(2rem, 5vw, 3.75rem);
  border: 1px solid #d9e2ec;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(13,27,46,.06);
}

.hs-empty-state-kicker {
  margin: 0 0 .55rem;
  color: #155fa6;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.hs-empty-state-card h1,
.hs-empty-state-card h2 {
  margin-top: 0;
  color: #0d1b2e;
}

.hs-empty-state-copy {
  max-width: 590px;
  margin-inline: auto;
}

.hs-empty-state-search {
  width: min(100%, 560px);
  margin: 1.5rem auto 0;
}

.hs-empty-state-search .wp-block-search__inside-wrapper {
  min-height: 48px;
  padding: 0;
  border: 1px solid #b8c6d5;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

.hs-empty-state-search .wp-block-search__input {
  min-width: 0;
  border: 0;
  padding: .75rem .9rem;
  font: inherit;
}

.hs-empty-state-search .wp-block-search__button {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: #155fa6;
  color: #fff;
  font-weight: 700;
  padding-inline: 1.1rem;
}

.hs-empty-state-search .wp-block-search__button:hover,
.hs-empty-state-search .wp-block-search__button:focus-visible {
  background: #0f4f8c;
}

.hs-empty-state-actions {
  margin-top: 1.25rem;
  gap: .75rem;
}

.hs-empty-state-actions .wp-block-button__link,
.hs-search-no-results .wp-block-button__link {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}

/* Product-search result cards, including future multi-result searches. */
.hs-search-results-heading {
  margin-bottom: 1.25rem;
}

.hs-search-results-heading .wp-block-query-title {
  margin-top: 0;
}

.hs-search-grid {
  gap: 1.25rem;
}

.hs-search-result-card {
  height: 100%;
  padding: 1rem;
  border: 1px solid #d9e2ec;
  border-radius: 14px;
  background: #fff;
  transition: transform .18s ease, box-shadow .18s ease;
}

.hs-search-result-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(13,27,46,.10);
}

.hs-search-result-card .wp-block-post-featured-image {
  margin-bottom: .9rem;
  overflow: hidden;
}

.hs-search-result-card .wp-block-post-title {
  margin: 0 0 .5rem;
  line-height: 1.3;
}

.hs-search-result-card .wp-block-post-title a {
  color: #155fa6;
  text-decoration: none;
}

.hs-search-result-card .wp-block-post-excerpt {
  margin-bottom: 0;
  color: #53677c;
  font-size: .94rem;
}

.hs-search-no-results {
  margin-top: 1rem;
}

/* Empty cart: make native Woo block and classic fallback read like a deliberate state. */
.hs-cart-page .wp-block-woocommerce-empty-cart-block,
body.woocommerce-cart .cart-empty.woocommerce-info,
body.woocommerce-cart .woocommerce-notices-wrapper + .cart-empty {
  max-width: 760px;
  margin-inline: auto;
}

body.woocommerce-cart .cart-empty.woocommerce-info {
  padding: 2rem;
  border: 1px solid #d9e2ec;
  border-top: 4px solid #155fa6;
  border-radius: 14px;
  background: #fff;
  color: #0d1b2e;
  text-align: center;
}

body.woocommerce-cart .return-to-shop {
  text-align: center;
}

body.woocommerce-cart .return-to-shop .button,
.hs-cart-page .wp-block-woocommerce-empty-cart-block .wp-element-button {
  min-height: 46px;
  padding: .75rem 1.15rem;
  border: 0;
  border-radius: 9px;
  background: #f5971d;
  color: #0d1b2e;
  font-weight: 800;
}

/* My Account empty-order / empty-payment states. */
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message {
  padding: 1rem 1.1rem;
  border: 1px solid #bfd6eb;
  border-left: 4px solid #155fa6;
  border-radius: 10px;
  background: #f7fbff;
  color: #0d1b2e;
}

body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info .button,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message .button {
  min-height: 42px;
  border-radius: 8px;
  background: #f5971d;
  color: #0d1b2e;
  font-weight: 800;
}

/* Out-of-stock / unavailable products: clear, non-alarming state without hiding native Woo behavior. */
body.single-product .summary .stock.out-of-stock,
body.single-product .summary .stock.available-on-backorder {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  margin: .65rem 0 1rem;
  padding: .45rem .75rem;
  border-radius: 999px;
  font-weight: 800;
  line-height: 1.2;
}

body.single-product .summary .stock.out-of-stock {
  border: 1px solid #e4b6b2;
  background: #fff5f4;
  color: #9d2d25;
}

body.single-product .summary .stock.available-on-backorder {
  border: 1px solid #e6cf9b;
  background: #fffaf0;
  color: #77530a;
}

body.post-type-archive-product li.product.outofstock,
body.tax-product_cat li.product.outofstock,
body.tax-product_tag li.product.outofstock {
  position: relative;
}

body.post-type-archive-product li.product.outofstock::after,
body.tax-product_cat li.product.outofstock::after,
body.tax-product_tag li.product.outofstock::after {
  content: "Out of stock";
  position: absolute;
  top: .8rem;
  left: .8rem;
  z-index: 2;
  padding: .35rem .58rem;
  border-radius: 999px;
  background: #0d1b2e;
  color: #fff;
  font-size: .75rem;
  font-weight: 800;
  line-height: 1;
}

body.post-type-archive-product li.product.outofstock .button,
body.tax-product_cat li.product.outofstock .button,
body.tax-product_tag li.product.outofstock .button {
  background: #e8edf2;
  color: #53677c;
}

@media (max-width: 820px) {
  .hs-search-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 520px) {
  .hs-404-page,
  .hs-search-results-page {
    width: min(100% - 1.25rem, 1180px);
  }
  .hs-empty-state-card {
    padding: 1.5rem 1rem;
    border-radius: 14px;
  }
  .hs-empty-state-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .hs-empty-state-actions .wp-block-button,
  .hs-empty-state-actions .wp-block-button__link,
  .hs-search-no-results .wp-block-button,
  .hs-search-no-results .wp-block-button__link {
    width: 100%;
  }
  .hs-search-grid {
    grid-template-columns: 1fr !important;
  }
}

/* v0.6.8 — Final edge-state cleanup: empty cart + product no-results */

/* Woo Blocks adds a large illustrated empty-cart glyph via the title pseudo
   element. HookShore uses a calmer text-first empty state instead. */
.hs-cart-page .wc-block-cart__empty-cart__title.with-empty-cart-icon::before,
.hs-cart-page .wc-block-cart__empty-cart__title::before,
.hs-cart-page .wc-block-cart__empty-cart__title::after,
body.woocommerce-cart .wc-block-cart__empty-cart__title.with-empty-cart-icon::before,
body.woocommerce-cart .wc-block-cart__empty-cart__title::before,
body.woocommerce-cart .wc-block-cart__empty-cart__title::after {
  display: none !important;
  content: none !important;
  background: none !important;
}

/* Remove decorative separators/dots that can render awkwardly when the cart
   block is empty. Keep actual product/recommendation content untouched. */
.hs-cart-page .wp-block-woocommerce-empty-cart-block > .wp-block-separator,
.hs-cart-page .wp-block-woocommerce-empty-cart-block > hr,
.hs-cart-page .wc-block-cart__empty-cart__title + .wp-block-separator,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block > .wp-block-separator,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block > hr {
  display: none !important;
}

.hs-cart-page .wc-block-cart__empty-cart__title,
body.woocommerce-cart .wc-block-cart__empty-cart__title {
  margin: 0 auto 1rem !important;
  color: #0d1b2e;
  font-size: clamp(1.45rem, 2.5vw, 2rem);
  line-height: 1.2;
}

.hs-cart-page .wp-block-woocommerce-empty-cart-block > h2:not(.wc-block-cart__empty-cart__title),
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block > h2:not(.wc-block-cart__empty-cart__title) {
  margin-top: 2rem;
}

.hs-empty-cart-actions {
  display: flex;
  justify-content: center;
  margin: 1.25rem 0 2rem;
}

.hs-empty-cart-actions .hs-empty-cart-shop-button,
.hs-no-products-actions .hs-no-products-shop-button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .75rem 1.2rem;
  border-radius: 9px;
  background: #f5971d;
  color: #0d1b2e;
  font-weight: 800;
  text-decoration: none;
  transition: background .18s ease, transform .18s ease;
}

.hs-empty-cart-actions .hs-empty-cart-shop-button:hover,
.hs-empty-cart-actions .hs-empty-cart-shop-button:focus-visible,
.hs-no-products-actions .hs-no-products-shop-button:hover,
.hs-no-products-actions .hs-no-products-shop-button:focus-visible {
  background: #db7f0c;
  color: #0d1b2e;
  transform: translateY(-1px);
}

/* Make no-product searches feel like a designed state even when a database-
   saved WooCommerce search template bypasses the theme's search.html file. */
body.search-no-results main,
body.search-no-results .wp-site-blocks > main,
body.search-no-results .woocommerce {
  box-sizing: border-box;
}

body.search-no-results .woocommerce-no-products-found,
body.search-no-results .wc-block-product-template + .wc-block-components-notice-banner,
body.search-no-results .woocommerce-info {
  margin-top: 1rem;
}

body.search-no-results .woocommerce-no-products-found,
body.search-no-results .woocommerce-info {
  padding: 1.15rem 1.25rem;
  border: 1px solid #d9e2ec;
  border-left: 4px solid #155fa6;
  border-radius: 12px;
  background: #fff;
  color: #0d1b2e;
}

body.search-no-results form.search-form,
body.search-no-results .wp-block-search,
body.search-no-results .woocommerce-product-search {
  margin-top: 1rem;
}

.hs-no-products-actions {
  margin-top: 1rem;
}

@media (max-width: 520px) {
  .hs-empty-cart-actions .hs-empty-cart-shop-button,
  .hs-no-products-actions .hs-no-products-shop-button {
    width: 100%;
  }
}

/* v0.6.9 — Production launch cleanup: announcement, hero, newsletter/dev copy */

/* v0.7.0 — Conversion-focused production homepage */
.hs-home {
  background: #f6f9fc;
}

.hs-home-hero {
  position: relative;
  min-height: clamp(560px, 62vw, 720px);
  display: flex;
  align-items: center;
  overflow: hidden;
  background-image:
    linear-gradient(90deg, rgba(7, 24, 44, .96) 0%, rgba(7, 24, 44, .84) 35%, rgba(7, 24, 44, .28) 68%, rgba(7, 24, 44, .08) 100%),
    url('../images/home-hero.webp');
  background-size: cover;
  background-position: center right;
  color: #fff;
}

.hs-home-hero::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 110px;
  background: linear-gradient(180deg, transparent, rgba(6, 21, 38, .22));
  pointer-events: none;
}

.hs-home-hero__inner {
  position: relative;
  z-index: 1;
  width: min(100% - 2rem, 1240px);
  padding-top: clamp(5rem, 10vw, 8rem);
  padding-bottom: clamp(5rem, 10vw, 8rem);
}

.hs-home-hero__copy {
  margin-left: 0 !important;
}

.hs-home-hero h1 {
  max-width: 760px;
  margin: .5rem 0 1rem;
  color: #fff;
  font-size: clamp(3rem, 5vw, 5.6rem) !important;
  line-height: .98;
  letter-spacing: -.025em;
}

.hs-home-hero__lead {
  max-width: 650px;
  margin: 0;
  color: rgba(255,255,255,.9);
  font-size: clamp(1.05rem, 1.6vw, 1.28rem);
  line-height: 1.65;
}

.hs-eyebrow {
  margin: 0 0 .4rem;
  color: #155fa6;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.hs-home-hero .hs-eyebrow,
.hs-eyebrow--light {
  color: #f7b04a;
}

.hs-home-hero__actions {
  gap: .75rem;
  margin-top: 1.65rem;
}

.hs-home-hero__actions .is-style-hs-ghost .wp-block-button__link {
  background: rgba(9, 32, 57, .26);
  color: #fff;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
}

.hs-home-benefits {
  border-bottom: 1px solid #dbe4ee;
  background: #fff;
}

.hs-home-benefits__grid {
  width: min(100% - 2rem, 1240px);
  margin: 0 auto;
  gap: 0;
}

.hs-home-benefits__grid > .wp-block-column {
  position: relative;
  padding: 1.45rem 1.35rem;
}

.hs-home-benefits__grid > .wp-block-column + .wp-block-column::before {
  content: '';
  position: absolute;
  left: 0;
  top: 25%;
  bottom: 25%;
  width: 1px;
  background: #dbe4ee;
}

.hs-home-benefits h3 {
  margin: 0 0 .3rem;
  color: #0d1b2e;
  font-size: .98rem !important;
}

.hs-home-benefits p {
  margin: 0;
  color: #607287;
  font-size: .86rem;
  line-height: 1.45;
}

.hs-home-section {
  padding: clamp(3.5rem, 7vw, 6rem) 1rem;
}

.hs-home-section__heading,
.hs-home-shop-paths > .wp-block-group,
.hs-home-path-grid,
.hs-home-value > .wp-block-columns,
.hs-home-final-cta__card {
  width: min(100%, 1240px);
  margin-left: auto;
  margin-right: auto;
}

.hs-home-section__heading {
  margin-bottom: 1.5rem;
}

.hs-home-section__heading h2,
.hs-home-shop-paths h2,
.hs-home-final-cta h2 {
  margin: .25rem 0 0;
  color: #0d1b2e;
}

.hs-section-intro {
  max-width: 660px;
  color: #607287;
}

.hs-home-featured {
  background: #fff;
}

.hs-home-featured .wp-block-woocommerce-product-collection {
  margin-top: 1.5rem;
}

.hs-home-path-grid {
  gap: 1rem;
  margin-top: 1.8rem;
}

.hs-home-path-card {
  min-height: 230px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.55rem;
  border: 1px solid #d6e1ec;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 25px rgba(13, 27, 46, .05);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.hs-home-path-card:hover {
  transform: translateY(-3px);
  border-color: #b9d1e7;
  box-shadow: 0 16px 34px rgba(13, 27, 46, .09);
}

.hs-home-path-card--primary {
  background: linear-gradient(145deg, #0f2e52, #155fa6);
  color: #fff;
}

.hs-home-path-card--primary h3,
.hs-home-path-card--primary p,
.hs-home-path-card--primary a {
  color: #fff;
}

.hs-home-path-card h3 {
  margin: 0 0 .55rem;
}

.hs-home-path-card p {
  margin: 0 0 .75rem;
  color: #607287;
  line-height: 1.55;
}

.hs-home-path-card p:last-child {
  margin-bottom: 0;
  font-weight: 800;
}

.hs-home-value {
  padding: clamp(3.75rem, 7vw, 6rem) 1rem;
  background: linear-gradient(130deg, #0a1b30 0%, #0f3155 58%, #155fa6 100%);
  color: #fff;
}

.hs-home-value p {
  color: rgba(255,255,255,.84) !important;
  line-height: 1.7;
}

.hs-home-value-list {
  margin: 0 0 1.5rem;
  padding-left: 1.25rem;
  color: #fff;
  font-weight: 600;
  line-height: 1.9;
}

.hs-home-final-cta {
  background: #fff;
}

.hs-home-final-cta__card {
  padding: clamp(2.5rem, 6vw, 4.25rem) 1.5rem;
  border: 1px solid #d6e1ec;
  border-radius: 20px;
  background: linear-gradient(180deg, #ffffff, #f5f9fd);
  box-shadow: 0 16px 42px rgba(13, 27, 46, .07);
}

.hs-home-final-cta__card p {
  color: #607287;
}

@media (max-width: 1024px) {
  .hs-home-hero {
    min-height: 620px;
    background-position: 68% center;
  }
  .hs-home-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(7, 24, 44, .2);
  }
  .hs-home-benefits__grid {
    flex-wrap: wrap !important;
  }
  .hs-home-benefits__grid > .wp-block-column {
    flex-basis: 50% !important;
  }
  .hs-home-benefits__grid > .wp-block-column:nth-child(3)::before {
    display: none;
  }
  .hs-home-path-grid {
    flex-wrap: wrap !important;
  }
  .hs-home-path-grid > .wp-block-column {
    flex-basis: calc(50% - .5rem) !important;
  }
}

@media (max-width: 680px) {
  .hs-home-hero {
    min-height: 650px;
    background-position: 74% center;
    background-image:
      linear-gradient(180deg, rgba(7,24,44,.62) 0%, rgba(7,24,44,.86) 62%, rgba(7,24,44,.97) 100%),
      url('../images/home-hero.webp');
    align-items: flex-end;
  }
  .hs-home-hero__inner {
    width: min(100% - 1.25rem, 1240px);
    padding-top: 10rem;
    padding-bottom: 3.5rem;
  }
  .hs-home-hero h1 {
    font-size: clamp(2.65rem, 13vw, 4rem) !important;
  }
  .hs-home-hero__actions,
  .hs-home-hero__actions .wp-block-button,
  .hs-home-hero__actions .wp-block-button__link {
    width: 100%;
  }
  .hs-home-benefits__grid > .wp-block-column {
    flex-basis: 100% !important;
    padding: 1rem .25rem;
  }
  .hs-home-benefits__grid > .wp-block-column + .wp-block-column::before {
    left: 0;
    right: 0;
    top: 0;
    bottom: auto;
    width: auto;
    height: 1px;
  }
  .hs-home-path-grid > .wp-block-column {
    flex-basis: 100% !important;
  }
  .hs-home-path-card {
    min-height: 190px;
  }
}
