/*
Theme Name: Swiftmedcare Clean
Theme URI: https://swiftmedcarepharmacy.com/
Author: Swiftmedcare Pharmacy
Description: A fast, image-free WordPress + WooCommerce theme for Swiftmedcare Pharmacy. Product photos and blog featured images never render, on desktop or mobile — category color-coding (pulled from the brand logo) and typography carry the design instead of photography.
Version: 3.0.1
Requires at least: 5.9
Requires PHP: 7.4
License: GPL v2 or later
Text Domain: swiftmedcare-clean
*/

/* =========================================================
   DESIGN TOKENS — colors pulled from the Swiftmedcare logo
   (deep green + crimson red, white base)
   ========================================================= */
:root {
	--sw-bg: #FFFFFF;
	--sw-bg-alt: #EAF5EC;
	--sw-bg-tint: #F5FAF6;
	--sw-ink: #202524;
	--sw-muted: #5C6B60;
	--sw-green: #1F7A34;
	--sw-green-dark: #145C29;
	--sw-green-pale: #DCEFE0;
	--sw-red: #C62828;
	--sw-red-dark: #9E1F1F;
	--sw-red-pale: #F8DDDD;
	--sw-hairline: #DCE8DE;
	--sw-serif: Georgia, "Times New Roman", Times, serif;
	--sw-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--sw-max: 1080px;
	--sw-radius: 8px;
	--sw-radius-lg: 14px;
	--sw-shadow: 0 1px 3px rgba(20, 40, 28, 0.06), 0 1px 2px rgba(20, 40, 28, 0.04);
	--sw-shadow-hover: 0 10px 24px rgba(20, 40, 28, 0.12), 0 2px 6px rgba(20, 40, 28, 0.06);
}

/* =========================================================
   RESET & BASE
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html, body { max-width: 100%; overflow-x: hidden; } /* safety net: nothing can force horizontal scroll */
body {
	margin: 0;
	font-family: var(--sw-sans);
	color: var(--sw-ink);
	background: var(--sw-bg);
	line-height: 1.6;
	font-size: 14px;
}
img { max-width: 100%; height: auto; } /* chrome images only — product/post photos never reach the page */
h1, h2, h3, h4 {
	font-family: var(--sw-serif);
	font-weight: 400;
	line-height: 1.2;
	margin: 0 0 0.5em;
	color: var(--sw-green-dark);
}
h1 { font-size: 2.1rem; }
h2 { font-size: 1.55rem; }
h3 { font-size: 1.1rem; }
p { max-width: 68ch; margin: 0 0 1.1em; }
a { color: var(--sw-green); text-decoration: none; }
a:hover { color: var(--sw-red-dark); text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
	outline: 2px solid var(--sw-red);
	outline-offset: 2px;
}
ul { padding-left: 1.2em; }
.container { max-width: var(--sw-max); margin: 0 auto; padding: 0 20px; }
.section { padding: 48px 0; }
.section-alt { background: var(--sw-bg-alt); }
.section-head { text-align: center; max-width: 560px; margin: 0 auto 32px; }
.section-head p { margin: 8px auto 0; color: var(--sw-muted); }
.eyebrow {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--sw-green-dark);
	background: var(--sw-green-pale);
	padding: 4px 12px;
	border-radius: 20px;
	margin-bottom: 10px;
}

/* =========================================================
   BUTTONS
   ========================================================= */
.btn {
	display: inline-block;
	padding: 11px 22px;
	border-radius: var(--sw-radius);
	font-size: 0.9rem;
	font-weight: 600;
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.btn:hover { text-decoration: none; }
.btn-primary { background: var(--sw-red); color: #fff; box-shadow: 0 4px 12px rgba(198, 40, 40, 0.28); }
.btn-primary:hover { background: var(--sw-red-dark); color: #fff; transform: translateY(-1px); box-shadow: 0 8px 18px rgba(198, 40, 40, 0.32); }
.btn-quiet { background: #fff; color: var(--sw-green); border-color: var(--sw-hairline); }
.btn-quiet:hover { border-color: var(--sw-green); color: var(--sw-green-dark); background: var(--sw-bg-alt); }

/* =========================================================
   HEADER
   ========================================================= */
.site-header {
	border-bottom: 1px solid var(--sw-hairline);
	background: var(--sw-bg);
	position: sticky;
	top: 0;
	z-index: 50;
}
.site-header .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	row-gap: 10px;
	padding-top: 12px;
	padding-bottom: 12px;
}
.site-branding { display: flex; flex-direction: column; min-width: 0; }
.site-logo img { max-height: 48px; width: auto; display: block; }
.site-title { font-family: var(--sw-serif); font-size: 1.25rem; color: var(--sw-green-dark); margin: 0; line-height: 1; }
.site-title a { color: inherit; }
.site-tagline { font-size: 0.72rem; color: var(--sw-muted); margin-top: 2px; }
.site-header-tools { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1 1 auto; justify-content: flex-end; }
.search-form { display: flex; align-items: center; min-width: 0; flex: 0 1 260px; }
.search-form .search-field {
	font-family: var(--sw-sans);
	font-size: 0.85rem;
	padding: 7px 10px;
	border: 1px solid var(--sw-hairline);
	border-right: none;
	border-radius: var(--sw-radius) 0 0 var(--sw-radius);
	width: 100%;
	min-width: 0;
	flex: 1 1 auto;
	color: var(--sw-ink);
}
.search-form .search-submit {
	font-family: var(--sw-sans);
	font-size: 0.85rem;
	padding: 7px 12px;
	border: 1px solid var(--sw-green);
	background: var(--sw-green);
	color: #fff;
	border-radius: 0 var(--sw-radius) var(--sw-radius) 0;
	cursor: pointer;
	flex-shrink: 0;
	white-space: nowrap;
}
.search-form .search-submit:hover { background: var(--sw-green-dark); }
.nav-toggle {
	display: none;
	background: none;
	border: 1px solid var(--sw-hairline);
	border-radius: var(--sw-radius);
	padding: 8px 12px;
	font-size: 0.9rem;
	color: var(--sw-ink);
	flex-shrink: 0;
}
.primary-nav ul { list-style: none; display: flex; gap: 22px; margin: 0; padding: 0; }
.primary-nav a { color: var(--sw-ink); font-size: 0.88rem; display: inline-flex; align-items: center; gap: 6px; }
.nav-icon { color: var(--sw-green); flex-shrink: 0; }
.primary-nav a:hover { color: var(--sw-green); text-decoration: none; border-bottom: 2px solid var(--sw-red); }

/* =========================================================
   TRUST STRIP
   ========================================================= */
.trust-strip { background: var(--sw-green-dark); color: #EAF5EC; }
.trust-strip-inner { display: flex; justify-content: center; gap: 36px; flex-wrap: wrap; padding: 9px 20px; font-size: 0.78rem; }
.trust-item { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.trust-item svg { flex-shrink: 0; opacity: 0.9; }

/* =========================================================
   HERO — decorative backdrop shape, no photography
   ========================================================= */
.hero-wrap { position: relative; overflow: hidden; }
.hero-shape {
	position: absolute;
	top: -120px;
	right: -160px;
	width: 560px;
	height: 560px;
	background: var(--sw-green-pale);
	border-radius: 42% 58% 65% 35% / 45% 40% 60% 55%;
	z-index: 0;
}
.hero-shape.two {
	top: 80px;
	right: -60px;
	width: 260px;
	height: 260px;
	background: var(--sw-red-pale);
	border-radius: 60% 40% 45% 55% / 55% 60% 40% 45%;
}
.hero {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 36px;
	align-items: center;
	padding: 52px 0;
}
.hero h1 { max-width: 14ch; }
.hero .lede { font-size: 1rem; color: var(--sw-muted); max-width: 46ch; }
.hero-actions { margin-top: 20px; display: flex; gap: 12px; flex-wrap: wrap; }
.trust-list { background: #fff; border: 1px solid var(--sw-hairline); border-radius: var(--sw-radius-lg); padding: 22px 26px; box-shadow: var(--sw-shadow); }
.trust-list dt { font-family: var(--sw-serif); font-size: 1.3rem; color: var(--sw-green); }
.trust-list dd { margin: 0 0 16px; color: var(--sw-muted); font-size: 0.85rem; }
.trust-list dd:last-child { margin-bottom: 0; }

/* Genuinely sequential 3-step process, so numbering is appropriate here */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.step { background: #fff; border: 1px solid var(--sw-hairline); border-radius: var(--sw-radius); padding: 22px; }
.step .step-num {
	display: inline-flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; border-radius: 50%;
	background: var(--sw-red); color: #fff;
	font-family: var(--sw-sans); font-weight: 700; font-size: 0.85rem;
	margin-bottom: 10px;
}
.step h3 { margin-bottom: 5px; }
.step p { color: var(--sw-muted); font-size: 0.86rem; margin-bottom: 0; }

/* =========================================================
   CATEGORY SHOWCASE (real WooCommerce categories, no stock photos)
   ========================================================= */
.category-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.category-tile {
	display: block;
	background: #fff;
	border: 1px solid var(--sw-hairline);
	border-top: 4px solid var(--sw-green);
	border-radius: var(--sw-radius);
	padding: 20px 16px;
	text-align: center;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.category-tile:hover { transform: translateY(-3px); box-shadow: var(--sw-shadow-hover); text-decoration: none; border-top-color: var(--sw-red); }
.category-tile .cat-icon { color: var(--sw-green); margin-bottom: 10px; }
.category-tile h3 { font-size: 0.95rem; margin-bottom: 4px; color: var(--sw-green-dark); }
.category-tile span { font-size: 0.75rem; color: var(--sw-muted); }

/* =========================================================
   SHOP TOOLBAR (result count + sorting)
   ========================================================= */
.woocommerce-result-count, .woocommerce-ordering { color: var(--sw-muted); font-size: 0.85rem; }
.woocommerce-ordering select {
	font-family: var(--sw-sans);
	font-size: 0.85rem;
	padding: 8px 12px;
	border: 1px solid var(--sw-hairline);
	border-radius: var(--sw-radius);
	background: var(--sw-bg);
	color: var(--sw-ink);
	cursor: pointer;
}
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	display: inline-flex;
	align-items: center;
	margin: 0 0 24px;
	float: none;
}
form.woocommerce-ordering { display: inline-block; float: right; }
@media (max-width: 800px) {
	form.woocommerce-ordering { float: none; display: block; margin-top: -12px; }
}

/* =========================================================
   PRODUCT GRID — no photos; category-colored left bar and
   typography carry the design instead
   ========================================================= */
.product-grid, ul.products.products {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 18px !important;
	list-style: none !important;
	margin: 0 0 32px !important;
	padding: 0 !important;
	clear: both !important;
}
/* WooCommerce's own stylesheet clearfixes `.products` with a
   `::before`/`::after { content:" "; display:table }` rule. Under
   display:grid, that generated content is treated as a real (invisible)
   grid item and silently eats the first cell, shoving every actual
   product over by one slot. This neutralizes it explicitly. */
.product-grid::before, .product-grid::after,
ul.products.products::before, ul.products.products::after {
	content: none !important;
	display: none !important;
}
.product-card, ul.products li.product, .woocommerce ul.products li.product {
	background: var(--sw-bg);
	border: 1px solid var(--sw-hairline);
	border-left: 4px solid var(--sw-green);
	border-radius: var(--sw-radius);
	box-shadow: var(--sw-shadow);
	padding: 18px 18px 20px;
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	position: relative;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
}
/* Belt-and-braces: force every direct piece of card content to center,
   in case WooCommerce's own stylesheet has a more specific selector
   (e.g. ".woocommerce ul.products li.product") winning the specificity
   tie-break against a plainer rule. */
.product-card > *, ul.products li.product > *, .woocommerce ul.products li.product > * {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.product-card:hover, ul.products li.product:hover {
	border-color: var(--sw-green);
	border-left-color: var(--sw-green);
	box-shadow: var(--sw-shadow-hover);
	transform: translateY(-3px);
}
.product-card .cat-tag, ul.products li.product .cat-tag {
	display: inline-block;
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--sw-green-dark);
	background: var(--sw-bg-alt);
	padding: 3px 9px;
	border-radius: 20px;
	margin-bottom: 10px;
}
.product-card h3, .product-card h2, ul.products li.product h2 {
	font-family: var(--sw-serif);
	font-size: 0.98rem;
	font-weight: 400;
	margin-bottom: 4px;
	line-height: 1.3;
}
.product-card h3 a, .product-card h2 a, ul.products li.product h2 a { color: var(--sw-green-dark); }
.woocommerce ul.products li.product .star-rating { font-size: 0.75rem; margin-bottom: 6px; }
.product-card .price, ul.products li.product .price {
	font-family: var(--sw-sans);
	font-weight: 700;
	color: var(--sw-ink);
	font-size: 1.05rem;
	margin-bottom: 10px;
}
.product-card .price ins { text-decoration: none; color: var(--sw-red-dark); }
.product-card .price del { color: var(--sw-muted); opacity: 0.6; font-size: 0.85em; font-weight: 400; }
.product-card .excerpt { color: var(--sw-muted); font-size: 0.82rem; margin: 0 0 14px; flex-grow: 1; }
.product-card .stock { font-size: 0.72rem; font-weight: 600; color: var(--sw-green); margin-bottom: 8px; }
.product-card .stock.out-of-stock { color: var(--sw-red-dark); }
.product-card .onsale, ul.products li.product .onsale {
	position: absolute;
	top: 14px;
	right: 14px;
	background: var(--sw-red);
	color: #fff;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	padding: 3px 9px;
	border-radius: 20px;
	text-transform: uppercase;
}
.product-card .add_to_cart_button, .product-card .button, ul.products li.product .button {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--sw-red);
	color: #fff !important;
	border: none;
	border-radius: var(--sw-radius);
	padding: 10px 14px;
	font-size: 0.86rem;
	font-weight: 600;
	margin-top: auto;
	box-shadow: 0 2px 6px rgba(198, 40, 40, 0.22);
	transition: background 0.15s ease, transform 0.15s ease;
}
.product-card .add_to_cart_button:hover, .product-card .button:hover, ul.products li.product .button:hover {
	background: var(--sw-red-dark);
	transform: translateY(-1px);
}

/* Single product page: no gallery column, summary takes full width */
.woocommerce div.product { clear: both; }
.woocommerce div.product div.images { display: none !important; }
.woocommerce div.product div.summary { width: 100% !important; float: none !important; }
.woocommerce div.product p.price { font-size: 1.4rem; color: var(--sw-green-dark); }

/* Cart/checkout tables: the thumbnail column is always empty (product
   images are stripped everywhere), so remove the column entirely rather
   than leave a blank gap on both desktop and mobile. */
.woocommerce table.shop_table td.product-thumbnail,
.woocommerce table.shop_table th.product-thumbnail {
	display: none !important;
}

/* =========================================================
   WHATSAPP / CONTACT CTA BAND
   ========================================================= */
.cta-band {
	background: var(--sw-green-dark);
	color: #fff;
	border-radius: var(--sw-radius-lg);
	padding: 32px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
}
.cta-band h2 { color: #fff; margin-bottom: 4px; }
.cta-band p { color: #D9EBDD; margin-bottom: 0; }
.cta-band .btn-primary { background: #fff; color: var(--sw-green-dark); box-shadow: none; }
.cta-band .btn-primary:hover { background: var(--sw-bg-alt); color: var(--sw-green-dark); }

/* =========================================================
   BLOG LIST (no featured images)
   ========================================================= */
.post-list { list-style: none; padding: 0; margin: 0; }
.post-list li { padding: 26px 0; border-bottom: 1px solid var(--sw-hairline); }
.post-list li:first-child { padding-top: 0; }
.post-meta { color: var(--sw-muted); font-size: 0.85rem; margin-bottom: 6px; }
.post-list h2 { font-size: 1.4rem; margin-bottom: 6px; }

/* =========================================================
   FOOTER — multi-column
   ========================================================= */
.site-footer { border-top: 1px solid var(--sw-hairline); background: var(--sw-bg-alt); padding: 44px 0 20px; margin-top: 40px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 28px; padding-bottom: 26px; margin-bottom: 18px; border-bottom: 1px solid var(--sw-hairline); }
.footer-col h4 { font-family: var(--sw-serif); font-size: 0.95rem; color: var(--sw-green-dark); margin-bottom: 12px; }
.footer-col p { font-size: 0.82rem; color: var(--sw-muted); margin-bottom: 8px; }
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col li { margin-bottom: 8px; }
.footer-col a { font-size: 0.85rem; color: var(--sw-ink); }
.footer-col a:hover { color: var(--sw-green); }
.footer-widgets img { max-height: 40px; width: auto; }
.footer-widget-title { font-family: var(--sw-serif); font-size: 0.92rem; color: var(--sw-green-dark); margin: 0 0 8px; }
.footer-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; color: var(--sw-muted); font-size: 0.82rem; }
.site-footer a { color: var(--sw-green); }

/* =========================================================
   HIDE DEFAULT FOOTER WIDGETS
   (Search, Pages, Archives, Categories, Meta — WordPress's
   default widgets, replaced entirely by the WhatsApp button)
   ========================================================= */
.footer-widgets,
.site-footer .widget,
.site-footer .footer-col .widget,
#colophon .widget,
.wp-block-group.footer,
footer .widget_search,
footer .widget_pages,
footer .widget_archive,
footer .widget_categories,
footer .widget_meta {
	display: none !important;
}

/* =========================================================
   FLOATING WHATSAPP BUTTON
   ========================================================= */
.whatsapp-float {
	position: fixed;
	bottom: 22px;
	right: 22px;
	width: 58px;
	height: 58px;
	background: var(--sw-green);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 6px 18px rgba(31, 122, 52, 0.4), 0 2px 6px rgba(0, 0, 0, 0.15);
	z-index: 999;
	transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.whatsapp-float:hover {
	background: var(--sw-green-dark);
	transform: scale(1.08) translateY(-2px);
	box-shadow: 0 10px 22px rgba(31, 122, 52, 0.45), 0 3px 8px rgba(0, 0, 0, 0.18);
}
.whatsapp-float:focus-visible {
	outline: 2px solid var(--sw-red);
	outline-offset: 3px;
}

@media (max-width: 480px) {
	.whatsapp-float {
		bottom: 16px;
		right: 16px;
		width: 52px;
		height: 52px;
	}
}

/* =========================================================
   MOBILE
   ========================================================= */
@media (max-width: 900px) {
	.category-grid { grid-template-columns: repeat(2, 1fr); }
	.footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 800px) {
	.hero { grid-template-columns: 1fr; padding: 32px 0; }
	.hero h1 { max-width: none; font-size: 1.8rem; }
	.hero-shape { width: 260px; height: 260px; top: -60px; right: -110px; opacity: 0.7; }
	.hero-shape.two { width: 120px; height: 120px; opacity: 0.7; }
	.steps { grid-template-columns: 1fr; }
	.product-grid, ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
	.product-card, ul.products li.product { padding: 14px 14px 16px; }

	/* Header: stack logo row, then a full-width search+menu row */
	.site-branding { order: 1; width: 100%; }
	.site-header-tools { order: 2; width: 100%; justify-content: space-between; }
	.search-form { flex: 1 1 auto; max-width: none; }
	.search-form .search-field, .search-form .search-submit { padding-top: 11px; padding-bottom: 11px; } /* ~44px tap target */
	.nav-toggle { display: inline-block; padding: 11px 16px; }

	/* Mobile nav: full-width tappable rows */
	.primary-nav { display: none; width: 100%; order: 3; }
	.primary-nav.is-open { display: block; }
	.primary-nav ul { flex-direction: column; gap: 0; padding: 8px 0; }
	.primary-nav li { border-top: 1px solid var(--sw-hairline); }
	.primary-nav a { display: block; padding: 15px 4px; font-size: 0.95rem; }

	/* Trust strip: stack instead of a horizontal-scroll strip */
	.trust-strip-inner { flex-direction: column; align-items: center; gap: 6px; padding: 10px 16px; font-size: 0.75rem; }

	/* Full-width, easy-to-tap hero and CTA buttons */
	.hero-actions { flex-direction: column; }
	.hero-actions .btn { width: 100%; text-align: center; }
	.cta-band { flex-direction: column; text-align: center; }
	.cta-band .btn { width: 100%; text-align: center; }

	.trust-list { padding: 18px 20px; }
	.section { padding: 32px 0; }
}
@media (max-width: 480px) {
	/* Keep 2 columns even on small phones — just tighten the card itself */
	.product-card, ul.products li.product { padding: 10px 10px 12px; }
	.product-card h3, .product-card h2, ul.products li.product h2 { font-size: 0.85rem; }
	.product-card .price, ul.products li.product .price { font-size: 0.92rem; }
	.product-card .excerpt { display: none; } /* trim clutter at this width — name + price + button is enough */
	.product-card .cat-tag { font-size: 0.6rem; padding: 2px 7px; }
	.product-card .add_to_cart_button, .product-card .button, ul.products li.product .button { font-size: 0.78rem; padding: 8px 10px; }
	.category-grid { grid-template-columns: 1fr; }
	.footer-grid { grid-template-columns: 1fr; }
	.footer-grid { text-align: center; }
	.footer-col ul { padding-left: 0; }
	h1 { font-size: 1.6rem; }
	.container { padding: 0 16px; }
}

/* =========================================================
   WooCommerce cart / checkout / my-account tables on mobile —
   these become stacked cards (label: value rows) instead of a
   cramped tiny table, using the data-title attributes WooCommerce
   already renders on each cell.
   ========================================================= */
@media (max-width: 700px) {
	.woocommerce table.shop_table thead { display: none; }
	.woocommerce table.shop_table,
	.woocommerce table.shop_table tbody,
	.woocommerce table.shop_table tr,
	.woocommerce table.shop_table td {
		display: block;
		width: 100%;
	}
	.woocommerce table.shop_table tr {
		margin-bottom: 12px;
		border: 1px solid var(--sw-hairline);
		border-radius: var(--sw-radius);
		padding: 6px 12px;
		background: #fff;
	}
	.woocommerce table.shop_table tr.cart_item:hover { background: #fff; }
	.woocommerce table.shop_table td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 10px;
		padding: 10px 0;
		border-top: 1px solid var(--sw-hairline);
		text-align: right;
	}
	.woocommerce table.shop_table td:first-child { border-top: none; }
	.woocommerce table.shop_table td[data-title]::before {
		content: attr(data-title);
		font-weight: 600;
		color: var(--sw-green-dark);
		text-align: left;
		flex-shrink: 0;
	}
	.woocommerce table.shop_table td.product-remove {
		justify-content: flex-end;
		border-top: none;
		padding-bottom: 0;
	}
	.woocommerce table.shop_table td.actions { padding-top: 14px; }

	/* Bigger touch targets: remove (×) icon, quantity input, coupon field */
	.woocommerce table.shop_table td.product-remove a.remove {
		width: 36px !important;
		height: 36px !important;
		line-height: 36px !important;
		font-size: 1.1rem !important;
	}
	.woocommerce table.shop_table .quantity .qty {
		width: 64px;
		padding: 8px;
		font-size: 1rem;
	}
	.woocommerce-page table.cart td.actions .coupon .input-text {
		width: 100%;
		max-width: none;
		margin-bottom: 8px;
		padding: 10px;
	}
	.woocommerce-page table.cart td.actions .coupon { display: block; }
	.woocommerce-page table.cart td.actions .coupon .button { width: 100%; }
}

/* Order review table on the checkout page uses the same shop_table
   class but has no product-remove/qty controls — the stacked-row
   treatment above already covers it correctly. */

/* =========================================================
   REDUCED MOTION
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; }
}

/* =========================================================
   2026 COMMUNITY PHARMACY REFRESH - PHASE 1
   Conservative visual and mobile improvements.
   ========================================================= */
:root {
	--sw-accent: #D89B24;
	--sw-accent-dark: #A86F0D;
	--sw-radius: 10px;
	--sw-radius-lg: 18px;
}
body { font-size: 15px; }
h1, h2, h3, h4 { font-family: var(--sw-sans); font-weight: 700; letter-spacing: -0.015em; }
a:hover { color: var(--sw-green-dark); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline-color: var(--sw-accent); }

/* A tighter, clearer storefront header with a readable brand mark. */
.site-header .container { padding-top: 9px; padding-bottom: 9px; }
.site-branding { flex: 0 1 310px; }
.site-logo img { width: auto; height: 70px; max-height: 70px; max-width: 205px; object-fit: contain; }
.site-tagline { font-size: 0.78rem; line-height: 1.35; margin: 3px 0 0; }
.primary-nav a:hover { border-bottom-color: var(--sw-accent); }
.search-form .search-submit, .btn-primary,
.product-card .add_to_cart_button, .product-card .button, ul.products li.product .button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt,
.woocommerce button.button.alt, .woocommerce input.button.alt {
	background: var(--sw-green) !important;
	color: #fff !important;
	border-color: var(--sw-green) !important;
	box-shadow: none;
}
.search-form .search-submit:hover, .btn-primary:hover,
.product-card .add_to_cart_button:hover, .product-card .button:hover, ul.products li.product .button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover, .woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover {
	background: var(--sw-green-dark) !important;
	border-color: var(--sw-green-dark) !important;
}
.product-card, ul.products li.product, .woocommerce ul.products li.product { border-left-color: var(--sw-accent) !important; }
.product-card:hover, ul.products li.product:hover { border-left-color: var(--sw-green) !important; }
.product-card .onsale, ul.products li.product .onsale { background: var(--sw-accent-dark); }

/* The active custom theme does not render this legacy sidebar itself, but
   WordPress/WooCommerce can still inject it. Hide it and give shop content
   the full width so Archives, Meta and login links never reach customers. */
.widget-area, #secondary, aside.sidebar, .site-main + aside,
.widget_archive, .widget_meta, .widget_categories, .widget_pages { display: none !important; }
.content-area, #primary, .site-main { width: 100% !important; float: none !important; }

/* Footer hierarchy and tap-friendly links. */
.site-footer { background: #0E4320; color: #fff; border-top: 4px solid var(--sw-accent); }
.site-footer .footer-col h4 { color: #fff; font-family: var(--sw-sans); font-weight: 700; }
.site-footer .footer-col p, .site-footer .footer-bottom { color: #D7E8DC; }
.site-footer .footer-col a, .site-footer a { color: #fff; }
.site-footer .footer-col a:hover { color: #F2C56F; }
.footer-grid { border-bottom-color: rgba(255,255,255,.18); grid-template-columns: 1.4fr 1fr 1.2fr; }
.footer-col li { margin-bottom: 10px; }

@media (max-width: 800px) {
	.site-header { position: static; }
	.site-branding { width: auto; flex: 1 1 220px; }
	.site-logo img { width: auto; height: 55px; max-height: 55px; max-width: 165px; object-fit: contain; }
	.site-tagline { max-width: 34ch; }
	.site-header-tools { flex-basis: 100%; }
	.product-grid, ul.products.products, .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.product-card, ul.products li.product, .woocommerce ul.products li.product { min-width: 0 !important; }
	.product-card h2, ul.products li.product h2 { overflow-wrap: anywhere; }
}
@media (max-width: 420px) {
	.product-grid, ul.products.products, .woocommerce ul.products { grid-template-columns: 1fr !important; }
	.product-card, ul.products li.product, .woocommerce ul.products li.product { padding: 16px !important; }
	.product-card h2, ul.products li.product h2 { font-size: 1rem; }
	.product-card .excerpt { display: block; }
	.footer-grid { grid-template-columns: 1fr; text-align: left; }
}

/* =========================================================
   2026 COMMUNITY PHARMACY REFRESH - PHASE 2 HOMEPAGE
   ========================================================= */
.community-hero {
	background: linear-gradient(135deg, #EAF5EC 0%, #F8FBF8 58%, #FFF7E7 100%);
	border: 1px solid var(--sw-hairline);
	border-radius: 24px;
	padding: 44px;
	margin: -8px 0 44px;
	display: grid;
	grid-template-columns: 1.45fr .75fr;
	gap: 36px;
	align-items: center;
}
.community-hero h1 { font-size: clamp(2.1rem, 4vw, 3.5rem); max-width: 15ch; margin-bottom: 14px; }
.community-hero-copy > p { font-size: 1.08rem; color: var(--sw-muted); max-width: 54ch; }
.community-trust-card { background: #fff; border-radius: var(--sw-radius-lg); padding: 26px; box-shadow: var(--sw-shadow-hover); border-top: 4px solid var(--sw-accent); }
.community-trust-card strong { color: var(--sw-green-dark); font-size: 1.05rem; }
.community-trust-card ul { margin: 14px 0 0; padding: 0; list-style: none; }
.community-trust-card li { padding: 9px 0 9px 26px; border-top: 1px solid var(--sw-hairline); position: relative; }
.community-trust-card li::before { content: '✓'; position: absolute; left: 2px; color: var(--sw-green); font-weight: 800; }
.medicine-search { display: flex; margin-top: 22px; max-width: 620px; }
.medicine-search input { min-width: 0; flex: 1; border: 1px solid #B9D4C0; border-right: 0; border-radius: 10px 0 0 10px; padding: 13px 15px; font: inherit; background: #fff; }
.medicine-search button { border: 0; border-radius: 0 10px 10px 0; padding: 13px 20px; background: var(--sw-green); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.need-section { margin: 0 0 42px; }
.need-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.need-grid a { min-height: 86px; border: 1px solid var(--sw-hairline); border-radius: var(--sw-radius-lg); padding: 20px; display: flex; align-items: center; justify-content: space-between; background: #fff; box-shadow: var(--sw-shadow); font-weight: 700; color: var(--sw-green-dark); font-size: 1.03rem; }
.need-grid a:hover { text-decoration: none; border-color: var(--sw-accent); transform: translateY(-2px); box-shadow: var(--sw-shadow-hover); }
.need-grid b { color: var(--sw-accent-dark); font-size: 1.35rem; }
.service-band { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.24); border-radius: var(--sw-radius-lg); overflow: hidden; margin: 0 0 44px; border: 1px solid var(--sw-green-dark); }
.service-band > div { background: var(--sw-green-dark); color: #fff; padding: 22px; }
.service-band strong, .service-band span { display: block; }
.service-band strong { font-size: 1rem; margin-bottom: 5px; color: #fff; }
.service-band span { color: #D7E8DC; font-size: .86rem; line-height: 1.5; }
.catalogue-heading { margin: 0 0 10px; scroll-margin-top: 140px; }
.home .woocommerce-products-header { display: none; }

@media (max-width: 800px) {
	.community-hero { grid-template-columns: 1fr; padding: 28px 22px; margin-top: 0; gap: 22px; }
	.community-hero h1 { font-size: 2.05rem; }
	.need-grid { grid-template-columns: repeat(2, 1fr); }
	.service-band { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
	.community-hero { padding: 24px 18px; border-radius: 16px; }
	.community-hero h1 { font-size: 1.82rem; }
	.medicine-search { flex-direction: column; gap: 8px; }
	.medicine-search input, .medicine-search button { border: 1px solid #B9D4C0; border-radius: 10px; width: 100%; }
	.need-grid { grid-template-columns: 1fr; }
	.need-grid a { min-height: 68px; }
}

/* =========================================================
   2026 COMMUNITY PHARMACY REFRESH - PHASE 3 PILOT (36 ITEMS)
   ========================================================= */
.product-photo { display: block; width: 100%; aspect-ratio: 4/3; margin: 0 0 14px !important; border-radius: 10px; overflow: hidden; background: #F4F7F4; }
.product-photo img { width: 100%; height: 100%; object-fit: contain; display: block; }
ul.products li.product.refresh-pilot { align-items: stretch !important; text-align: left !important; }
ul.products li.product.refresh-pilot > * { text-align: left !important; margin-left: 0 !important; margin-right: 0 !important; }
ul.products li.product.refresh-pilot .button { text-align: center !important; }
.delivery-note { color: var(--sw-muted); font-size: .75rem; margin: auto 0 10px !important; }
.woocommerce div.product .product-care-panel { margin: 28px 0 0; padding: 24px; background: var(--sw-bg-tint); border: 1px solid var(--sw-hairline); border-top: 4px solid var(--sw-accent); border-radius: var(--sw-radius-lg); }
.product-care-panel h3 { margin-bottom: 14px; }
.product-care-panel dl { margin: 0 0 16px; }
.product-care-panel dl > div { display: grid; grid-template-columns: 130px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--sw-hairline); }
.product-care-panel dt { color: var(--sw-green-dark); font-weight: 700; }
.product-care-panel dd { margin: 0; }
.medicine-note { color: var(--sw-muted); font-size: .88rem; }
.pharmacist-help { margin-top: 4px; }
.woocommerce.swm-images-on div.product div.images,
body.swm-images-on.woocommerce div.product div.images { display: block !important; }
body.swm-images-on.woocommerce div.product:has(.product-care-panel) div.images { display: block !important; }
body.swm-images-on.woocommerce div.product:has(.product-care-panel) div.summary { width: 54% !important; float: right !important; }
@media (max-width: 800px) {
	body.swm-images-on.woocommerce div.product:has(.product-care-panel) div.images,
	body.swm-images-on.woocommerce div.product:has(.product-care-panel) div.summary { width: 100% !important; float: none !important; }
	.product-care-panel dl > div { grid-template-columns: 1fr; gap: 2px; }
}

/* Legacy Twenty-style sidebar still emitted by sidebar.php on some routes. */
#sidebar[role="complementary"], #sidebar { display: none !important; }


/* User preference: keep product photography off for now. The swm-images-off
   body class comes from the single PHP switch above, making this reversible. */
.swm-images-off .product-photo,
.swm-images-off .woocommerce-product-gallery,
.swm-images-off .woocommerce div.product div.images { display: none !important; }
.swm-images-off .woocommerce div.product div.summary { width: 100% !important; float: none !important; }


/* Community photography */
.community-visual { position: relative; min-width: 0; }
.community-visual > img { width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: 55% center; display: block; border-radius: 22px; box-shadow: 0 20px 45px rgba(20,92,41,.2); }
.community-visual .community-trust-card { position: absolute; left: -44px; right: 24px; bottom: -28px; padding: 20px 22px; }
.care-story { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 44px; margin: 12px 0 44px; background: #FFF7E7; border: 1px solid #E7D39A; border-radius: 24px; padding: 20px; overflow: hidden; }
.care-story > img { width: 100%; height: 310px; object-fit: cover; object-position: center; display: block; border-radius: 16px; }
.care-story > div { padding: 20px 28px 20px 0; }
.care-story h2 { color: var(--sw-green-dark); margin: 8px 0 12px; font-size: clamp(1.65rem,3vw,2.35rem); }
.care-story p { color: var(--sw-muted); margin-bottom: 20px; }
@media (max-width: 800px) { .community-visual > img { aspect-ratio: 16/10; object-position: center 38%; } .community-visual .community-trust-card { position: relative; left: auto; right: auto; bottom: auto; margin: -34px 16px 0; } .care-story { grid-template-columns: 1fr; gap: 4px; padding: 14px; } .care-story > img { height: 250px; } .care-story > div { padding: 20px 10px 12px; } }
@media (max-width: 420px) { .community-visual > img { aspect-ratio: 4/3; border-radius: 14px; } .community-visual .community-trust-card { margin: -22px 10px 0; padding: 18px; } .care-story { border-radius: 16px; } .care-story > img { height: 210px; } }

.contact-location{display:grid;grid-template-columns:.85fr 1.15fr;gap:30px;align-items:center;margin:28px 0 12px;padding:28px;background:#F5FAF6;border:1px solid var(--sw-hairline);border-radius:20px}.contact-location h2{color:var(--sw-green-dark);margin:8px 0 12px}.contact-location p{color:var(--sw-muted);line-height:1.7}.contact-location iframe{width:100%;height:360px;border:0;border-radius:14px;box-shadow:var(--sw-shadow)}@media(max-width:700px){.contact-location{grid-template-columns:1fr;padding:20px}.contact-location iframe{height:300px}}

.pharmacy-welcome{text-align:center;max-width:800px;margin:0 auto 40px;padding:10px 24px}.pharmacy-welcome h2{color:var(--sw-green-dark);font-size:clamp(1.8rem,3vw,2.5rem);margin:8px 0 10px}.pharmacy-welcome p{font-size:1.05rem;color:var(--sw-muted)}.pharmacy-services{margin:0 0 44px}.pharmacy-services-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.pharmacy-services-grid>div{min-height:150px;padding:22px 18px;border:1px solid var(--sw-hairline);border-top:4px solid var(--sw-accent);border-radius:16px;background:#fff;box-shadow:var(--sw-shadow);display:flex;flex-direction:column;gap:14px}.pharmacy-services-grid b{color:var(--sw-green);font-size:.82rem}.pharmacy-services-grid strong{color:var(--sw-green-dark);line-height:1.35}.footer-tagline{color:#fff!important;font-weight:700;font-size:1.05rem}@media(max-width:900px){.pharmacy-services-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:420px){.pharmacy-services-grid{grid-template-columns:1fr}.pharmacy-services-grid>div{min-height:auto}}
/* Health Tips article images */.entry-content .wp-block-image{margin:0 0 1.5rem}.entry-content .wp-block-image img{width:100%;height:auto;border-radius:8px;display:block}.entry-content .wp-block-image figcaption{font-size:.8rem;line-height:1.4;color:#6b6b6b;margin:.45rem 0 0;text-align:left}
/* Service cards: soft tint per card */.pharmacy-services-grid>div:nth-child(1){background:#FCEDED}.pharmacy-services-grid>div:nth-child(2){background:#E9F1FB}.pharmacy-services-grid>div:nth-child(3){background:#EAF5EC}.pharmacy-services-grid>div:nth-child(4){background:#FDF3E1}.pharmacy-services-grid>div:nth-child(5){background:#F1EDF8}
