/*
Theme Name: Dantrio Pharmacy
Theme URI: https://dantriopharmacy.com
Author: Dantrio Pharmacy
Author URI: https://dantriopharmacy.com
Description: The official theme for Dantrio Pharmacy — Your Health is our first priority. A complete pharmacy website: homepage, About, Prescription Upload (secure photo/PDF uploads viewed in the dashboard), WooCommerce shop, Family Planning, Health & News blog with categories, Gallery with lightbox and Contact page with form and map. Fully editable with the block editor (Gutenberg) and Elementor, including Dantrio Elementor widgets, block patterns and a one-click setup under Appearance > Dantrio Setup. Based on the PharmaCare theme.
Version: 1.2.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pharmacare
Tags: blog, e-commerce, one-column, two-columns, right-sidebar, custom-colors, custom-logo, custom-menu, featured-images, block-styles, block-patterns, wide-blocks, translation-ready, accessibility-ready, full-width-template, theme-options, threaded-comments, rtl-language-support

Dantrio Pharmacy is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/*/

/* -------------------------------------------------------------------------
   1. Design tokens
   ------------------------------------------------------------------------- */

:root {
	/* Colour — overridden by the Customizer via inline styles. */
	--pc-primary: #0b7268;
	--pc-primary-dark: #095049;
	--pc-accent: #c2410c;
	--pc-ink: #12201e;
	--pc-body: #46565b;
	--pc-surface: #f4faf8;
	--pc-mint: #d9f0ec;

	--pc-white: #ffffff;
	--pc-muted: #6b7b80;
	--pc-border: #dde9e7;
	--pc-border-strong: #c3d8d4;
	--pc-success: #15803d;
	--pc-danger: #b91c1c;

	/* Typography */
	--pc-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--pc-font-head: "Fraunces", Georgia, "Times New Roman", serif;

	--pc-text-xs: 0.8125rem;
	--pc-text-sm: 0.9375rem;
	--pc-text-base: 1.0625rem;
	--pc-text-lg: 1.1875rem;
	--pc-text-xl: 1.375rem;
	--pc-text-2xl: 1.75rem;
	--pc-text-3xl: 2.125rem;
	--pc-text-4xl: 2.75rem;
	--pc-text-5xl: 3.25rem;

	/* Spacing */
	--pc-space-1: 0.25rem;
	--pc-space-2: 0.5rem;
	--pc-space-3: 0.75rem;
	--pc-space-4: 1rem;
	--pc-space-5: 1.5rem;
	--pc-space-6: 2rem;
	--pc-space-7: 3rem;
	--pc-space-8: 4rem;
	--pc-space-9: 5.5rem;

	/* Shape */
	--pc-radius: 14px;
	--pc-radius-sm: 7px;
	--pc-radius-lg: 22px;
	--pc-radius-pill: 999px;

	/* Elevation */
	--pc-shadow-sm: 0 1px 2px rgba(18, 32, 30, 0.05), 0 1px 3px rgba(18, 32, 30, 0.04);
	--pc-shadow: 0 2px 4px rgba(18, 32, 30, 0.04), 0 8px 24px rgba(18, 32, 30, 0.07);
	--pc-shadow-lg: 0 4px 8px rgba(18, 32, 30, 0.05), 0 20px 48px rgba(18, 32, 30, 0.1);

	/* Layout */
	--pc-container: 1200px;
	--pc-container-narrow: 760px;
	--pc-gutter: 1.25rem;
	--pc-header-h: 76px;
}

/* -------------------------------------------------------------------------
   2. Reset and base
   ------------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--pc-header-h) + 1rem);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

body {
	margin: 0;
	background-color: var(--pc-white);
	color: var(--pc-body);
	font-family: var(--pc-font-body);
	font-size: var(--pc-text-base);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 var(--pc-space-4);
	color: var(--pc-ink);
	font-family: var(--pc-font-head);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.015em;
}

h1 { font-size: var(--pc-text-4xl); }
h2 { font-size: var(--pc-text-3xl); }
h3 { font-size: var(--pc-text-xl); }
h4 { font-size: var(--pc-text-lg); }
h5, h6 { font-size: var(--pc-text-base); }

p, ul, ol, dl, table, blockquote, figure, pre {
	margin: 0 0 var(--pc-space-5);
}

a {
	color: var(--pc-primary);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

a:hover,
a:focus {
	color: var(--pc-primary-dark);
}

:focus-visible {
	outline: 3px solid var(--pc-primary);
	outline-offset: 2px;
	border-radius: 3px;
}

/*
 * Author styles on elements such as `button` and the card components beat the
 * user-agent rule for [hidden], so restate it here. The theme's JavaScript
 * relies on the attribute for the back-to-top button and the store locator.
 */
[hidden] {
	display: none !important;
}

img,
video,
iframe,
embed,
object {
	max-width: 100%;
	height: auto;
}

img {
	display: block;
	border-style: none;
}

figure {
	margin-inline: 0;
}

address {
	font-style: normal;
}

strong, b { font-weight: 600; }

small { font-size: var(--pc-text-sm); }

hr {
	height: 1px;
	margin: var(--pc-space-7) 0;
	border: 0;
	background: var(--pc-border);
}

blockquote {
	margin-inline: 0;
	padding: var(--pc-space-4) var(--pc-space-5);
	border-left: 3px solid var(--pc-primary);
	background: var(--pc-surface);
	border-radius: 0 var(--pc-radius-sm) var(--pc-radius-sm) 0;
	color: var(--pc-ink);
	font-size: var(--pc-text-lg);
}

blockquote p:last-child { margin-bottom: 0; }

code, kbd, samp, pre {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.9em;
}

code {
	padding: 0.15em 0.4em;
	background: var(--pc-surface);
	border: 1px solid var(--pc-border);
	border-radius: 4px;
}

pre {
	padding: var(--pc-space-4);
	overflow-x: auto;
	background: var(--pc-ink);
	color: #e8f2f0;
	border-radius: var(--pc-radius-sm);
}

pre code {
	padding: 0;
	background: none;
	border: 0;
	color: inherit;
}

table {
	width: 100%;
	border-collapse: collapse;
}

th, td {
	padding: var(--pc-space-3);
	border-bottom: 1px solid var(--pc-border);
	text-align: left;
}

th {
	color: var(--pc-ink);
	font-weight: 600;
}

/* -------------------------------------------------------------------------
   3. Accessibility helpers
   ------------------------------------------------------------------------- */

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	display: block;
	top: 0.5rem;
	left: 0.5rem;
	z-index: 100000;
	width: auto;
	height: auto;
	padding: 0.75rem 1.25rem;
	clip: auto !important;
	clip-path: none;
	background: var(--pc-white);
	border-radius: var(--pc-radius-sm);
	box-shadow: var(--pc-shadow);
	color: var(--pc-primary-dark);
	font-size: var(--pc-text-sm);
	font-weight: 600;
	text-decoration: none;
}

.skip-link:focus { outline-offset: 0; }

/* -------------------------------------------------------------------------
   4. Layout
   ------------------------------------------------------------------------- */

.site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site-content {
	flex: 1 0 auto;
}

.container {
	width: 100%;
	max-width: var(--pc-container);
	margin-inline: auto;
	padding-inline: var(--pc-gutter);
}

.container--narrow {
	max-width: var(--pc-container-narrow);
}

.content-area {
	display: grid;
	gap: var(--pc-space-7);
	padding-block: var(--pc-space-7);
}

.has-sidebar .content-area {
	grid-template-columns: minmax(0, 1fr);
}

.content-area--split,
.content-area--shop {
	display: grid;
	gap: var(--pc-space-7);
	padding-block: var(--pc-space-7);
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 900px) {
	.has-sidebar .content-area {
		grid-template-columns: minmax(0, 1fr) 320px;
		gap: var(--pc-space-7);
	}

	/*
	 * Doubled class so these match the specificity of `.has-sidebar
	 * .content-area` above; otherwise that rule would win and drop the main
	 * column into the narrow track.
	 */
	.content-area.content-area--split {
		grid-template-columns: minmax(0, 1fr) 340px;
	}

	/* Aside first, in the narrow column. */
	.content-area.content-area--reverse {
		grid-template-columns: 340px minmax(0, 1fr);
	}

	.content-area--reverse .site-main { order: 2; }
	.content-area--reverse .entry-aside { order: 1; }

	.content-area.content-area--shop {
		grid-template-columns: 300px minmax(0, 1fr);
	}

	.content-area--shop .site-main { order: 2; }
	.content-area--shop .widget-area { order: 1; }
}

.site-main--wide,
.site-main--front {
	min-width: 0;
}

.section {
	padding-block: var(--pc-space-8);
}

.section--tint {
	background: var(--pc-surface);
}

.section__more {
	margin-top: var(--pc-space-6);
	text-align: center;
}

.grid {
	display: grid;
	gap: var(--pc-space-5);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
}

@media (min-width: 768px) {
	.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1040px) {
	.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	.grid--3,
	.grid--4 { grid-template-columns: minmax(0, 1fr); }
}

/* -------------------------------------------------------------------------
   5. Buttons and badges
   ------------------------------------------------------------------------- */

.btn,
button,
input[type="submit"],
input[type="button"],
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	padding: 0.75rem 1.4rem;
	border: 1px solid transparent;
	border-radius: var(--pc-radius-pill);
	background: var(--pc-primary);
	color: var(--pc-white);
	font-family: inherit;
	font-size: var(--pc-text-sm);
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.btn:hover,
.btn:focus,
button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover {
	background: var(--pc-primary-dark);
	color: var(--pc-white);
	transform: translateY(-1px);
	box-shadow: var(--pc-shadow-sm);
}

.btn--primary {
	background: var(--pc-primary);
	color: var(--pc-white);
}

.btn--ghost {
	background: transparent;
	border-color: var(--pc-border-strong);
	color: var(--pc-primary-dark);
}

.btn--ghost:hover,
.btn--ghost:focus {
	background: var(--pc-mint);
	border-color: var(--pc-primary);
	color: var(--pc-primary-dark);
}

.btn--light {
	background: var(--pc-white);
	color: var(--pc-primary-dark);
}

.btn--light:hover,
.btn--light:focus {
	background: var(--pc-mint);
	color: var(--pc-primary-dark);
}

.btn--sm {
	padding: 0.5rem 1rem;
	font-size: var(--pc-text-xs);
}

.btn--lg {
	padding: 0.95rem 1.8rem;
	font-size: var(--pc-text-base);
}

.btn--block {
	display: flex;
	width: 100%;
}

.button-group {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-space-3);
	align-items: center;
}

.badge {
	display: inline-block;
	padding: 0.25em 0.75em;
	border-radius: var(--pc-radius-pill);
	background: var(--pc-mint);
	color: var(--pc-primary-dark);
	font-size: var(--pc-text-xs);
	font-weight: 600;
	letter-spacing: 0.01em;
}

.badge--accent {
	background: var(--pc-accent);
	color: var(--pc-white);
}

.badge--mint {
	background: var(--pc-mint);
	color: var(--pc-primary-dark);
}

.pc-icon {
	flex: none;
}

.pc-icon.is-flipped { transform: rotate(180deg); }
.pc-icon.is-up { transform: rotate(-90deg); }

/* -------------------------------------------------------------------------
   6. Status pill
   ------------------------------------------------------------------------- */

.status-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	padding: 0.35em 0.85em;
	border-radius: var(--pc-radius-pill);
	background: var(--pc-mint);
	color: var(--pc-primary-dark);
	font-size: var(--pc-text-sm);
	font-weight: 600;
	line-height: 1.4;
}

.status-pill__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--pc-success);
}

.status-pill.is-closed {
	background: #fdeee8;
	color: #8a2c08;
}

.status-pill.is-closed .status-pill__dot {
	background: var(--pc-accent);
}

.status-pill__detail {
	font-weight: 400;
	opacity: 0.85;
}

.status-pill--sm {
	padding: 0.25em 0.7em;
	font-size: var(--pc-text-xs);
}

/* In narrow columns let the pill wrap onto two tidy lines. */
.widget .status-pill,
.info-card .status-pill,
.site-footer__column .status-pill {
	flex-wrap: wrap;
	row-gap: 0;
	line-height: 1.35;
}

/* -------------------------------------------------------------------------
   7. Top bar and header
   ------------------------------------------------------------------------- */

.topbar {
	background: var(--pc-primary-dark);
	color: rgba(255, 255, 255, 0.92);
	font-size: var(--pc-text-xs);
}

.topbar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--pc-space-3);
	min-height: 42px;
	padding-block: 0.4rem;
}

.topbar__left,
.topbar__right {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pc-space-4);
}

.topbar__message {
	margin: 0;
}

.topbar .status-pill {
	background: rgba(255, 255, 255, 0.16);
	color: #ffffff;
}

.topbar .status-pill.is-closed {
	background: rgba(255, 255, 255, 0.16);
	color: #ffe9e0;
}

.topbar__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	color: inherit;
	text-decoration: none;
}

.topbar__link:hover,
.topbar__link:focus {
	color: #ffffff;
	text-decoration: underline;
}

.topbar__menu {
	display: flex;
	gap: var(--pc-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.topbar__menu a {
	color: inherit;
	text-decoration: none;
}

.topbar__menu a:hover { text-decoration: underline; }

@media (max-width: 782px) {
	.topbar__message { display: none; }
	.topbar__nav { display: none; }
}

.site-header {
	position: relative;
	z-index: 50;
	background: var(--pc-white);
	border-bottom: 1px solid var(--pc-border);
}

.has-sticky-header .site-header {
	position: sticky;
	top: 0;
}

.admin-bar.has-sticky-header .site-header { top: 32px; }

@media (max-width: 782px) {
	.admin-bar.has-sticky-header .site-header { top: 46px; }
}

.site-header.is-stuck {
	box-shadow: var(--pc-shadow-sm);
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: var(--pc-space-5);
	min-height: var(--pc-header-h);
	padding-block: var(--pc-space-3);
}

.site-branding {
	flex: none;
	margin-right: auto;
}

.site-title {
	margin: 0;
	font-size: var(--pc-text-xl);
	font-weight: 700;
	letter-spacing: -0.02em;
}

.site-title a {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	color: var(--pc-ink);
	text-decoration: none;
}

.site-title__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 11px;
	background: var(--pc-primary);
	color: var(--pc-white);
}

.site-title__mark svg { fill: currentColor; stroke: none; }

.site-description {
	margin: 0.15rem 0 0;
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
}

.custom-logo-link { display: inline-block; }
.custom-logo { max-height: 56px; width: auto; }

.site-header__actions {
	display: flex;
	align-items: center;
	gap: var(--pc-space-3);
}

/* Navigation */

.main-navigation .nav-menu {
	display: flex;
	align-items: center;
	gap: var(--pc-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.main-navigation .nav-menu li { position: relative; }

.main-navigation .nav-menu a {
	display: block;
	padding: 0.55rem 0.8rem;
	border-radius: var(--pc-radius-sm);
	color: var(--pc-ink);
	font-size: var(--pc-text-sm);
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.main-navigation .nav-menu a:hover,
.main-navigation .nav-menu a:focus {
	background: var(--pc-surface);
	color: var(--pc-primary-dark);
}

.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a,
.main-navigation .current-menu-ancestor > a {
	color: var(--pc-primary-dark);
	font-weight: 600;
}

.main-navigation .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 60;
	min-width: 230px;
	margin: 0;
	padding: 0.4rem;
	list-style: none;
	background: var(--pc-white);
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius);
	box-shadow: var(--pc-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s;
}

.main-navigation .sub-menu .sub-menu {
	top: 0;
	left: 100%;
}

.main-navigation li:hover > .sub-menu,
.main-navigation li:focus-within > .sub-menu,
.main-navigation li.is-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.main-navigation .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 0.42em;
	height: 0.42em;
	margin-left: 0.45em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-0.15em) rotate(45deg);
	opacity: 0.6;
}

.menu-toggle {
	display: none;
	width: 44px;
	height: 44px;
	padding: 0;
	background: var(--pc-surface);
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius-sm);
	color: var(--pc-ink);
}

.menu-toggle:hover,
.menu-toggle:focus {
	background: var(--pc-mint);
	color: var(--pc-primary-dark);
	transform: none;
	box-shadow: none;
}

.menu-toggle__icon {
	display: flex;
	flex-direction: column;
	gap: 4px;
	align-items: center;
}

.menu-toggle__icon span {
	display: block;
	width: 18px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__icon span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.header-cart {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: var(--pc-radius-sm);
	color: var(--pc-ink);
}

.header-cart:hover { background: var(--pc-surface); }

.header-cart__count {
	position: absolute;
	top: 4px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: var(--pc-radius-pill);
	background: var(--pc-accent);
	color: var(--pc-white);
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
}

.header-cart__count[data-count="0"] { display: none; }

@media (max-width: 1023px) {
	.menu-toggle { display: inline-flex; }

	.site-header__cta { display: none; }

	.main-navigation {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		display: none;
		max-height: calc(100vh - var(--pc-header-h));
		overflow-y: auto;
		padding: var(--pc-space-4) var(--pc-gutter) var(--pc-space-6);
		background: var(--pc-white);
		border-bottom: 1px solid var(--pc-border);
		box-shadow: var(--pc-shadow);
	}

	.main-navigation.is-open { display: block; }

	.main-navigation .nav-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.main-navigation .nav-menu > li {
		border-bottom: 1px solid var(--pc-border);
	}

	.main-navigation .nav-menu a {
		padding: 0.9rem 0.25rem;
		font-size: var(--pc-text-base);
	}

	.main-navigation .sub-menu {
		position: static;
		display: none;
		min-width: 0;
		padding: 0 0 0 var(--pc-space-4);
		border: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.main-navigation li.is-open > .sub-menu { display: block; }
}

/* -------------------------------------------------------------------------
   8. Hero
   ------------------------------------------------------------------------- */

.hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, var(--pc-surface) 0%, var(--pc-white) 100%);
}

.hero::before {
	content: "";
	position: absolute;
	top: -180px;
	right: -140px;
	width: 520px;
	height: 520px;
	border-radius: 50%;
	background: var(--pc-mint);
	opacity: 0.5;
	pointer-events: none;
}

.hero__inner {
	position: relative;
	display: grid;
	gap: var(--pc-space-7);
	align-items: center;
	padding-block: var(--pc-space-8);
}

@media (min-width: 900px) {
	.hero__inner {
		grid-template-columns: 1.05fr 0.95fr;
		padding-block: var(--pc-space-9);
	}
}

.hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	margin: 0 0 var(--pc-space-4);
	padding: 0.35em 0.9em;
	border-radius: var(--pc-radius-pill);
	background: var(--pc-mint);
	color: var(--pc-primary-dark);
	font-size: var(--pc-text-xs);
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.hero__eyebrow svg { fill: currentColor; stroke: none; }

.hero__title {
	margin-bottom: var(--pc-space-4);
	font-size: clamp(2.1rem, 5vw, var(--pc-text-5xl));
	line-height: 1.08;
}

.hero__text {
	max-width: 52ch;
	margin-bottom: var(--pc-space-5);
	font-size: var(--pc-text-lg);
}

.hero__note {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	margin: var(--pc-space-5) 0 0;
	color: var(--pc-muted);
	font-size: var(--pc-text-sm);
}

.hero__media {
	position: relative;
}

.hero__image {
	width: 100%;
	border-radius: var(--pc-radius-lg);
	box-shadow: var(--pc-shadow-lg);
	object-fit: cover;
	aspect-ratio: 4 / 3;
}

/*
 * Shown until a hero image is chosen in the Customizer. Kept purely in CSS so
 * the theme ships without bundled imagery.
 */
.hero__placeholder {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--pc-mint);
	border-radius: var(--pc-radius-lg);
	color: var(--pc-primary);
}

.hero__placeholder::before,
.hero__placeholder::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	border: 1px solid currentColor;
	opacity: 0.18;
}

.hero__placeholder::before {
	width: 62%;
	aspect-ratio: 1;
}

.hero__placeholder::after {
	width: 88%;
	aspect-ratio: 1;
}

.hero__placeholder svg {
	position: relative;
	fill: currentColor;
	stroke: none;
	opacity: 0.5;
}

.hero__badge {
	position: absolute;
	left: var(--pc-space-4);
	bottom: var(--pc-space-4);
	padding: var(--pc-space-2);
	background: var(--pc-white);
	border-radius: var(--pc-radius-pill);
	box-shadow: var(--pc-shadow);
}

/* -------------------------------------------------------------------------
   9. Trust strip
   ------------------------------------------------------------------------- */

.trust-strip {
	border-block: 1px solid var(--pc-border);
	background: var(--pc-white);
}

.trust-strip__list {
	display: grid;
	gap: var(--pc-space-5);
	margin: 0;
	padding: var(--pc-space-6) 0;
	list-style: none;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}

.trust-strip__item {
	display: flex;
	align-items: flex-start;
	gap: var(--pc-space-3);
}

.trust-strip__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--pc-mint);
	color: var(--pc-primary-dark);
}

.trust-strip__title {
	margin: 0;
	color: var(--pc-ink);
	font-size: var(--pc-text-sm);
	font-weight: 600;
}

.trust-strip__text {
	margin: 0.1rem 0 0;
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
}

/* -------------------------------------------------------------------------
   10. Section headings
   ------------------------------------------------------------------------- */

.section-heading {
	max-width: 62ch;
	margin: 0 auto var(--pc-space-7);
	text-align: center;
}

.section-heading--left {
	margin-inline: 0;
	text-align: left;
}

.section-heading__eyebrow {
	margin: 0 0 var(--pc-space-2);
	color: var(--pc-primary);
	font-size: var(--pc-text-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.section-heading__title {
	margin: 0 0 var(--pc-space-3);
	font-size: clamp(1.7rem, 3.4vw, var(--pc-text-3xl));
}

.section-heading__lead {
	margin: 0;
	font-size: var(--pc-text-lg);
	color: var(--pc-body);
}

/* -------------------------------------------------------------------------
   11. Cards
   ------------------------------------------------------------------------- */

.service-card,
.product-card,
.team-card,
.location-card,
.post-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--pc-white);
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius);
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.service-card:hover,
.product-card:hover,
.team-card:hover,
.location-card:hover,
.post-card:hover {
	border-color: var(--pc-border-strong);
	box-shadow: var(--pc-shadow);
	transform: translateY(-2px);
}

.service-card__media img,
.location-card__media img,
.post-thumbnail img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.service-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin: var(--pc-space-5) var(--pc-space-5) 0;
	border-radius: 14px;
	background: var(--pc-mint);
	color: var(--pc-primary-dark);
}

.service-card__body,
.product-card__body,
.team-card__body,
.location-card__body,
.post-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: var(--pc-space-5);
}

.service-card__title,
.product-card__title,
.location-card__title,
.post-card__title {
	margin-bottom: var(--pc-space-2);
	font-size: var(--pc-text-lg);
}

.service-card__title a,
.product-card__title a,
.team-card__name a,
.location-card__title a,
.post-card__title a {
	color: inherit;
	text-decoration: none;
}

.service-card__title a:hover,
.product-card__title a:hover,
.team-card__name a:hover,
.location-card__title a:hover,
.post-card__title a:hover {
	color: var(--pc-primary-dark);
	text-decoration: underline;
}

.service-card__excerpt p,
.product-card__excerpt p,
.post-card__excerpt p {
	margin: 0 0 var(--pc-space-4);
	font-size: var(--pc-text-sm);
}

.service-card__facts {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-space-2) var(--pc-space-4);
	margin: 0 0 var(--pc-space-4);
	padding: 0;
	list-style: none;
	font-size: var(--pc-text-xs);
	color: var(--pc-muted);
}

.service-card__facts li {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
}

.service-card__link,
.location-card__link,
.post-card__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	margin-top: auto;
	color: var(--pc-primary);
	font-size: var(--pc-text-sm);
	font-weight: 600;
	text-decoration: none;
}

.service-card__link:hover svg,
.location-card__link:hover svg,
.post-card__link:hover svg {
	transform: translateX(3px);
}

.service-card__link svg,
.location-card__link svg,
.post-card__link svg {
	transition: transform 0.18s ease;
}

/* Product card */

.product-card__media {
	position: relative;
	background: var(--pc-surface);
}

.product-card__media img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.product-card__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	color: var(--pc-primary);
	opacity: 0.4;
}

.product-card__badge {
	position: absolute;
	top: var(--pc-space-3);
	left: var(--pc-space-3);
}

.product-card__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--pc-space-2);
	margin-top: auto;
}

.product-card__price {
	color: var(--pc-ink);
	font-family: var(--pc-font-head);
	font-size: var(--pc-text-lg);
	font-weight: 700;
}

.product-card__stock {
	font-size: var(--pc-text-xs);
	font-weight: 600;
}

.product-card__stock.is-in { color: var(--pc-success); }
.product-card__stock.is-out { color: var(--pc-muted); }

.product-card__rx {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	margin: var(--pc-space-2) 0 0;
	color: var(--pc-accent);
	font-size: var(--pc-text-xs);
	font-weight: 600;
}

.product-card__btn { margin-top: var(--pc-space-4); }

/* Team card */

.team-card { text-align: center; }

.team-card__media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.team-card__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 5;
	background: var(--pc-mint);
	color: var(--pc-primary);
}

.team-card__name {
	margin-bottom: var(--pc-space-1);
	font-size: var(--pc-text-lg);
}

.team-card__role {
	margin: 0 0 var(--pc-space-3);
	color: var(--pc-primary);
	font-size: var(--pc-text-sm);
	font-weight: 600;
}

.team-card__bio {
	margin: 0 0 var(--pc-space-3);
	font-size: var(--pc-text-sm);
}

.team-card__langs {
	margin: 0;
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
}

.team-card__links {
	display: flex;
	justify-content: center;
	gap: var(--pc-space-2);
	margin: var(--pc-space-4) 0 0;
	padding: 0;
	list-style: none;
}

.team-card__links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid var(--pc-border);
	border-radius: 50%;
	color: var(--pc-primary-dark);
}

.team-card__links a:hover {
	background: var(--pc-mint);
	border-color: var(--pc-primary);
}

/* Location card */

.location-card__body .badge { align-self: flex-start; margin-bottom: var(--pc-space-3); }

/* Post card */

.post-card__cat {
	margin: 0 0 var(--pc-space-2);
	color: var(--pc-primary);
	font-size: var(--pc-text-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.post-card__meta {
	margin-bottom: var(--pc-space-4);
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
}

.post-card__sep { margin-inline: 0.4em; }

.post-list--grid {
	display: grid;
	gap: var(--pc-space-5);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
}

.post-list--list {
	display: flex;
	flex-direction: column;
	gap: var(--pc-space-5);
}

.post-list--list .post-card {
	flex-direction: row;
	align-items: stretch;
}

.post-list--list .post-thumbnail {
	flex: 0 0 34%;
	max-width: 300px;
}

.post-list--list .post-thumbnail img { height: 100%; }

@media (max-width: 600px) {
	.post-list--list .post-card { flex-direction: column; }
	.post-list--list .post-thumbnail { flex: none; max-width: none; }
}

/* -------------------------------------------------------------------------
   12. Page hero, breadcrumbs, pagination
   ------------------------------------------------------------------------- */

.page-hero {
	padding-block: var(--pc-space-7);
	background: var(--pc-surface);
	border-bottom: 1px solid var(--pc-border);
}

.page-hero__title {
	max-width: 24ch;
	margin: 0;
	font-size: clamp(1.9rem, 4vw, var(--pc-text-4xl));
}

.page-hero__subtitle {
	max-width: 60ch;
	margin: var(--pc-space-3) 0 0;
	font-size: var(--pc-text-lg);
	color: var(--pc-body);
}

.page-hero__search { max-width: 520px; margin-top: var(--pc-space-5); }

/* Breadcrumb-only hero, used on single WooCommerce products. */
.page-hero--slim {
	padding-block: var(--pc-space-4);
}

.page-hero--slim .breadcrumbs { margin-bottom: 0; }

.page-hero .entry-meta { margin-top: var(--pc-space-4); }

.breadcrumbs {
	margin-bottom: var(--pc-space-4);
	font-size: var(--pc-text-xs);
}

.breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--pc-muted);
}

.breadcrumbs li:not(:last-child)::after {
	content: "/";
	margin-left: 0.5em;
	opacity: 0.5;
}

.breadcrumbs a {
	color: var(--pc-muted);
	text-decoration: none;
}

.breadcrumbs a:hover { color: var(--pc-primary-dark); text-decoration: underline; }

.pagination {
	margin-top: var(--pc-space-7);
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--pc-space-2);
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	min-width: 42px;
	height: 42px;
	padding-inline: 0.75rem;
	justify-content: center;
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius-sm);
	color: var(--pc-ink);
	font-size: var(--pc-text-sm);
	font-weight: 600;
	text-decoration: none;
}

.pagination .page-numbers:hover {
	background: var(--pc-surface);
	border-color: var(--pc-border-strong);
}

.pagination .page-numbers.current {
	background: var(--pc-primary);
	border-color: var(--pc-primary);
	color: var(--pc-white);
}

.pagination .dots { border-color: transparent; }

.filter-nav {
	margin-bottom: var(--pc-space-6);
}

.filter-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.filter-nav a {
	display: inline-block;
	padding: 0.45rem 1rem;
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius-pill);
	color: var(--pc-ink);
	font-size: var(--pc-text-sm);
	font-weight: 500;
	text-decoration: none;
}

.filter-nav a:hover,
.filter-nav a.is-current {
	background: var(--pc-primary);
	border-color: var(--pc-primary);
	color: var(--pc-white);
}

/* -------------------------------------------------------------------------
   13. Entry content
   ------------------------------------------------------------------------- */

.entry-content > * {
	max-width: var(--pc-container-narrow);
}

.has-sidebar .entry-content > *,
.content-area--split .entry-content > * { max-width: none; }

.entry-content > .alignwide {
	max-width: min(1100px, 100%);
}

.entry-content > .alignfull {
	max-width: none;
	width: auto;
	margin-inline: calc(50% - 50vw);
	padding-inline: var(--pc-gutter);
}

.entry-content h2 { margin-top: var(--pc-space-7); }
.entry-content h3 { margin-top: var(--pc-space-6); }

.entry-content ul,
.entry-content ol { padding-left: 1.3em; }

.entry-content li { margin-bottom: 0.4em; }

.entry-content--intro {
	margin-bottom: var(--pc-space-7);
	font-size: var(--pc-text-lg);
}

.post-thumbnail {
	display: block;
	margin-bottom: var(--pc-space-6);
	overflow: hidden;
	border-radius: var(--pc-radius);
}

.entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-space-4);
	color: var(--pc-muted);
	font-size: var(--pc-text-sm);
}

.entry-meta a { color: inherit; }

.entry-footer {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-space-4);
	align-items: center;
	margin-top: var(--pc-space-6);
	padding-top: var(--pc-space-5);
	border-top: 1px solid var(--pc-border);
	font-size: var(--pc-text-sm);
}

.tags-links a {
	display: inline-block;
	margin: 0 0.3em 0.3em 0;
	padding: 0.25em 0.8em;
	background: var(--pc-surface);
	border-radius: var(--pc-radius-pill);
	color: var(--pc-primary-dark);
	font-size: var(--pc-text-xs);
	text-decoration: none;
}

.tags-links a:hover { background: var(--pc-mint); }

.post-navigation {
	margin-top: var(--pc-space-7);
	padding-top: var(--pc-space-5);
	border-top: 1px solid var(--pc-border);
}

.post-navigation .nav-links {
	display: grid;
	gap: var(--pc-space-4);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

.post-navigation a {
	display: block;
	padding: var(--pc-space-4);
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius);
	text-decoration: none;
}

.post-navigation a:hover { border-color: var(--pc-border-strong); background: var(--pc-surface); }

.post-navigation .nav-label {
	display: block;
	margin-bottom: 0.2rem;
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.post-navigation .nav-title {
	color: var(--pc-ink);
	font-weight: 600;
}

.pharmacare-embed {
	position: relative;
	margin-bottom: var(--pc-space-5);
}

.pharmacare-embed iframe { width: 100%; }

/* -------------------------------------------------------------------------
   14. Refill call-out and form
   ------------------------------------------------------------------------- */

.section--refill { padding-block: 0; }

.refill-cta {
	display: grid;
	gap: var(--pc-space-6);
	align-items: center;
	padding: var(--pc-space-7);
	background: var(--pc-primary);
	border-radius: var(--pc-radius-lg);
	color: rgba(255, 255, 255, 0.92);
}

@media (min-width: 900px) {
	.refill-cta { grid-template-columns: 1fr 1fr; padding: var(--pc-space-8); }
}

.refill-cta__title {
	margin-bottom: var(--pc-space-3);
	color: var(--pc-white);
	font-size: clamp(1.7rem, 3.4vw, var(--pc-text-3xl));
}

.refill-cta__text {
	margin-bottom: var(--pc-space-5);
	font-size: var(--pc-text-lg);
}

.refill-cta__steps {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: step;
}

.refill-step {
	display: flex;
	gap: var(--pc-space-4);
	padding: var(--pc-space-4) 0;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.refill-step:first-child { border-top: 0; padding-top: 0; }

.refill-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.16);
	color: var(--pc-white);
	font-size: var(--pc-text-sm);
	font-weight: 700;
}

.refill-step__title {
	margin: 0 0 0.15rem;
	color: var(--pc-white);
	font-weight: 600;
}

.refill-step__text {
	margin: 0;
	font-size: var(--pc-text-sm);
	opacity: 0.9;
}

/* Form */

.refill-form-wrap { max-width: 780px; }

.refill-form {
	padding: var(--pc-space-6);
	background: var(--pc-white);
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius-lg);
	box-shadow: var(--pc-shadow-sm);
}

.refill-form__hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.refill-form__title { margin-bottom: var(--pc-space-5); }

.refill-form__grid {
	display: grid;
	gap: var(--pc-space-4);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 640px) {
	.refill-form__grid { grid-template-columns: minmax(0, 1fr); }
	.refill-form { padding: var(--pc-space-5) var(--pc-space-4); }
}

.form-field--full { grid-column: 1 / -1; }

.form-field__label,
.refill-form legend.form-field__label {
	display: block;
	margin-bottom: 0.35rem;
	color: var(--pc-ink);
	font-size: var(--pc-text-sm);
	font-weight: 600;
}

.form-field__fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}

.form-field__req { color: var(--pc-accent); }

.form-field__desc {
	margin: 0.35rem 0 0;
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
}

.form-field__error {
	margin: 0.35rem 0 0;
	color: var(--pc-danger);
	font-size: var(--pc-text-xs);
	font-weight: 600;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="date"],
input[type="number"],
input[type="password"],
input[type="search"],
select,
textarea {
	width: 100%;
	padding: 0.7rem 0.9rem;
	background: var(--pc-white);
	border: 1px solid var(--pc-border-strong);
	border-radius: var(--pc-radius-sm);
	color: var(--pc-ink);
	font-family: inherit;
	font-size: var(--pc-text-sm);
	line-height: 1.5;
	transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

textarea { min-height: 120px; resize: vertical; }

input:focus,
select:focus,
textarea:focus {
	border-color: var(--pc-primary);
	box-shadow: 0 0 0 3px var(--pc-mint);
	outline: none;
}

.has-error input,
.has-error select,
.has-error textarea {
	border-color: var(--pc-danger);
}

.form-field__options {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-space-3);
}

.radio-card { flex: 1 1 200px; cursor: pointer; }

.radio-card input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.radio-card__box {
	display: block;
	padding: 0.75rem 1rem;
	border: 1px solid var(--pc-border-strong);
	border-radius: var(--pc-radius-sm);
	font-size: var(--pc-text-sm);
	font-weight: 500;
	text-align: center;
	transition: border-color 0.16s ease, background-color 0.16s ease;
}

.radio-card input:checked + .radio-card__box {
	background: var(--pc-mint);
	border-color: var(--pc-primary);
	color: var(--pc-primary-dark);
	font-weight: 600;
}

.radio-card input:focus-visible + .radio-card__box {
	outline: 3px solid var(--pc-primary);
	outline-offset: 2px;
}

.form-check {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	font-size: var(--pc-text-sm);
	cursor: pointer;
}

.form-check input {
	flex: none;
	width: 20px;
	height: 20px;
	margin-top: 0.15rem;
	accent-color: var(--pc-primary);
}

.refill-form__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pc-space-4);
	margin-top: var(--pc-space-6);
	padding-top: var(--pc-space-5);
	border-top: 1px solid var(--pc-border);
}

.refill-form__privacy {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	margin: 0;
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
}

.alert {
	display: flex;
	gap: var(--pc-space-3);
	align-items: flex-start;
	padding: var(--pc-space-4);
	margin-bottom: var(--pc-space-5);
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius);
	background: var(--pc-surface);
	font-size: var(--pc-text-sm);
}

.alert p { margin: 0; }
.alert ul { margin: 0.5rem 0 0; padding-left: 1.2em; }

.alert--success {
	background: #eaf7ef;
	border-color: #bfe3cd;
	color: #14532d;
}

.alert--notice {
	background: var(--pc-mint);
	border-color: var(--pc-border-strong);
	color: var(--pc-primary-dark);
}

.alert--error {
	background: #fdecec;
	border-color: #f3c6c6;
	color: #7f1d1d;
}

.alert--error a { color: inherit; }

/* -------------------------------------------------------------------------
   15. Info cards, hours, contact lists
   ------------------------------------------------------------------------- */

.entry-aside {
	display: flex;
	flex-direction: column;
	gap: var(--pc-space-5);
	min-width: 0;
}

.info-card {
	padding: var(--pc-space-5);
	background: var(--pc-white);
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius);
}

.info-card--mint {
	background: var(--pc-mint);
	border-color: transparent;
}

.info-card--call { text-align: center; }

.info-card__title {
	margin-bottom: var(--pc-space-4);
	font-size: var(--pc-text-lg);
}

.info-card__list {
	margin: 0 0 var(--pc-space-4);
	padding: 0;
	list-style: none;
}

.info-card__list li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--pc-space-2);
	padding: var(--pc-space-2) 0;
	border-bottom: 1px solid var(--pc-border);
	font-size: var(--pc-text-sm);
}

.info-card__list li:last-child { border-bottom: 0; }

.info-card__label { color: var(--pc-muted); }
.info-card__value { color: var(--pc-ink); font-weight: 600; }

.info-card__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	font-family: var(--pc-font-head);
	font-size: var(--pc-text-xl);
	font-weight: 700;
	text-decoration: none;
}

.check-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.check-list li {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	margin-bottom: var(--pc-space-3);
	font-size: var(--pc-text-sm);
}

.check-list svg {
	margin-top: 0.25em;
	color: var(--pc-primary);
}

.hours-table {
	margin: var(--pc-space-3) 0 0;
	font-size: var(--pc-text-sm);
}

.hours-table th,
.hours-table td {
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--pc-border);
	font-weight: 400;
}

.hours-table th { color: var(--pc-body); font-weight: 400; }

/* Keep "8:00 am - 7:00 pm" on one line in narrow sidebars. */
.hours-table td {
	text-align: right;
	color: var(--pc-ink);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.hours-table tr:last-child th,
.hours-table tr:last-child td { border-bottom: 0; }

.hours-table .is-today th,
.hours-table .is-today td { color: var(--pc-primary-dark); font-weight: 600; }

.hours-table__today {
	display: inline-block;
	margin-left: 0.5em;
	padding: 0.1em 0.5em;
	background: var(--pc-mint);
	border-radius: var(--pc-radius-pill);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.info-card--mint .hours-table__today { background: rgba(255, 255, 255, 0.7); }

.hours-table__closed { color: var(--pc-muted); }

.hours-table__all-day {
	margin: var(--pc-space-3) 0 0;
	font-size: var(--pc-text-sm);
	font-weight: 600;
	color: var(--pc-primary-dark);
}

.contact-list {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--pc-text-sm);
}

.contact-list li {
	display: flex;
	align-items: flex-start;
	gap: 0.65em;
	margin-bottom: var(--pc-space-3);
}

.contact-list svg { margin-top: 0.2em; color: var(--pc-primary); flex: none; }

.contact-list a { color: inherit; text-decoration: none; }
.contact-list a:hover { color: var(--pc-primary-dark); text-decoration: underline; }

.contact-list--compact li { margin-bottom: var(--pc-space-2); font-size: var(--pc-text-xs); }

.widget-hours .status-pill { margin-bottom: var(--pc-space-2); }

.location-map {
	overflow: hidden;
	margin-bottom: var(--pc-space-6);
	border-radius: var(--pc-radius);
	border: 1px solid var(--pc-border);
	aspect-ratio: 16 / 10;
}

.location-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.location-map--wide {
	margin-top: var(--pc-space-7);
	aspect-ratio: 21 / 9;
}

.location-hours { margin: 0; font-size: var(--pc-text-sm); }

.locator__search {
	position: relative;
	display: flex;
	align-items: center;
	max-width: 480px;
	margin-bottom: var(--pc-space-4);
}

.locator__search svg {
	position: absolute;
	left: 0.9rem;
	color: var(--pc-muted);
	pointer-events: none;
}

.locator__search input { padding-left: 2.6rem; }

.locator__count {
	margin-bottom: var(--pc-space-4);
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
}

.locator__empty {
	padding: var(--pc-space-6);
	background: var(--pc-surface);
	border-radius: var(--pc-radius);
	text-align: center;
}

/* Profile */

.profile {
	display: grid;
	gap: var(--pc-space-7);
	padding-block: var(--pc-space-7);
}

@media (min-width: 860px) {
	.profile { grid-template-columns: 340px minmax(0, 1fr); align-items: start; }
}

.profile__media img,
.profile__placeholder {
	width: 100%;
	border-radius: var(--pc-radius-lg);
}

.profile__media img { aspect-ratio: 4 / 5; object-fit: cover; }

.profile__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 5;
	background: var(--pc-mint);
	color: var(--pc-primary);
}

.profile__name { margin-bottom: var(--pc-space-2); }

.profile__role {
	margin: 0 0 var(--pc-space-5);
	color: var(--pc-primary);
	font-size: var(--pc-text-lg);
	font-weight: 600;
}

.profile__facts {
	margin: var(--pc-space-6) 0 0;
	padding: var(--pc-space-5);
	list-style: none;
	background: var(--pc-surface);
	border-radius: var(--pc-radius);
}

.profile__facts li {
	display: flex;
	align-items: flex-start;
	gap: 0.65em;
	margin-bottom: var(--pc-space-3);
	font-size: var(--pc-text-sm);
}

.profile__facts li:last-child { margin-bottom: 0; }
.profile__facts svg { margin-top: 0.15em; color: var(--pc-primary); }

/* Product single */

.product-single {
	display: grid;
	gap: var(--pc-space-7);
	padding-block: var(--pc-space-7);
}

@media (min-width: 860px) {
	.product-single { grid-template-columns: 1fr 1fr; align-items: start; }
}

.product-single__media img,
.product-single__placeholder {
	width: 100%;
	border-radius: var(--pc-radius-lg);
}

.product-single__media img { aspect-ratio: 1 / 1; object-fit: cover; }

.product-single__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	background: var(--pc-mint);
	color: var(--pc-primary);
}

.product-single__title { margin-bottom: var(--pc-space-3); }

.product-single__price {
	margin: 0 0 var(--pc-space-2);
	color: var(--pc-primary-dark);
	font-family: var(--pc-font-head);
	font-size: var(--pc-text-2xl);
	font-weight: 700;
}

.service-group { margin-bottom: var(--pc-space-8); }
.service-group__title { margin-bottom: var(--pc-space-2); }
.service-group__desc { margin-bottom: var(--pc-space-5); color: var(--pc-muted); }

.related-services {
	margin-top: var(--pc-space-8);
	padding-top: var(--pc-space-6);
	border-top: 1px solid var(--pc-border);
}

.related-services__title { margin-bottom: var(--pc-space-5); font-size: var(--pc-text-xl); }

/* -------------------------------------------------------------------------
   16. Search, 404, no results
   ------------------------------------------------------------------------- */

.search-form__field {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--pc-space-2);
}

.search-form__field > svg {
	position: absolute;
	left: 0.9rem;
	color: var(--pc-muted);
	pointer-events: none;
}

.search-form .search-field { padding-left: 2.7rem; }

.search-result {
	display: flex;
	gap: var(--pc-space-5);
	align-items: flex-start;
	justify-content: space-between;
	padding-bottom: var(--pc-space-5);
	border-bottom: 1px solid var(--pc-border);
}

.search-result__type {
	margin: 0 0 var(--pc-space-1);
	color: var(--pc-primary);
	font-size: var(--pc-text-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.search-result__title { margin-bottom: var(--pc-space-2); font-size: var(--pc-text-lg); }
.search-result__title a { color: inherit; text-decoration: none; }
.search-result__title a:hover { color: var(--pc-primary-dark); text-decoration: underline; }

.search-result__excerpt p { margin: 0 0 var(--pc-space-2); font-size: var(--pc-text-sm); }

.search-result__url {
	margin: 0;
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
}

.search-result__thumb {
	flex: none;
	width: 96px;
	border-radius: var(--pc-radius-sm);
	overflow: hidden;
}

@media (max-width: 600px) {
	.search-result__thumb { display: none; }
}

.error-404-main,
.no-results {
	padding-block: var(--pc-space-8);
	text-align: center;
}

.error-404 { max-width: 620px; margin-inline: auto; }

.error-404__icon,
.no-results__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 88px;
	height: 88px;
	margin-bottom: var(--pc-space-5);
	border-radius: 50%;
	background: var(--pc-mint);
	color: var(--pc-primary);
}

.error-404__text,
.no-results__text { font-size: var(--pc-text-lg); }

.error-404__search,
.no-results .search-form {
	max-width: 480px;
	margin: var(--pc-space-5) auto;
	text-align: left;
}

.error-404 .button-group { justify-content: center; }

/* -------------------------------------------------------------------------
   17. Widgets and sidebar
   ------------------------------------------------------------------------- */

.widget-area {
	display: flex;
	flex-direction: column;
	gap: var(--pc-space-5);
	min-width: 0;
}

.widget {
	padding: var(--pc-space-5);
	background: var(--pc-white);
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius);
	font-size: var(--pc-text-sm);
}

.widget-title {
	margin-bottom: var(--pc-space-4);
	font-size: var(--pc-text-lg);
}

.widget ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.widget ul li {
	padding: 0.45rem 0;
	border-bottom: 1px solid var(--pc-border);
}

.widget ul li:last-child { border-bottom: 0; }

.widget ul ul { margin-top: 0.45rem; padding-left: var(--pc-space-4); }

.widget a { color: var(--pc-ink); text-decoration: none; }
.widget a:hover { color: var(--pc-primary-dark); text-decoration: underline; }

.widget select { width: 100%; }

.widget_search .widget-title { margin-bottom: var(--pc-space-3); }

.widget-hours__note {
	margin: var(--pc-space-3) 0 0;
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
}

/* -------------------------------------------------------------------------
   18. Comments
   ------------------------------------------------------------------------- */

.comments-area {
	margin-top: var(--pc-space-8);
	padding-top: var(--pc-space-6);
	border-top: 1px solid var(--pc-border);
}

.comments-title,
.comment-reply-title { font-size: var(--pc-text-xl); }

.comment-list {
	margin: 0 0 var(--pc-space-7);
	padding: 0;
	list-style: none;
}

.comment-list .children {
	margin: var(--pc-space-4) 0 0;
	padding-left: var(--pc-space-5);
	list-style: none;
	border-left: 2px solid var(--pc-border);
}

.comment-body {
	padding: var(--pc-space-4) 0;
	border-bottom: 1px solid var(--pc-border);
}

.comment-author {
	display: flex;
	align-items: center;
	gap: var(--pc-space-3);
	margin-bottom: var(--pc-space-2);
	font-weight: 600;
	color: var(--pc-ink);
}

.comment-author img { border-radius: 50%; }

.comment-metadata {
	margin-bottom: var(--pc-space-3);
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
}

.comment-metadata a { color: inherit; }

.reply a {
	font-size: var(--pc-text-xs);
	font-weight: 600;
	text-decoration: none;
}

.comment-form {
	display: grid;
	gap: var(--pc-space-4);
}

.comment-form label {
	display: block;
	margin-bottom: 0.3rem;
	color: var(--pc-ink);
	font-size: var(--pc-text-sm);
	font-weight: 600;
}

.comment-form .form-submit { margin: 0; }

.comment-notes,
.comment-form-cookies-consent label {
	font-size: var(--pc-text-xs);
	font-weight: 400;
	color: var(--pc-muted);
}

/* -------------------------------------------------------------------------
   19. Footer
   ------------------------------------------------------------------------- */

.site-footer {
	margin-top: var(--pc-space-8);
	background: var(--pc-ink);
	color: rgba(255, 255, 255, 0.78);
	font-size: var(--pc-text-sm);
}

.site-footer a { color: rgba(255, 255, 255, 0.86); }
.site-footer a:hover { color: #ffffff; }

.site-footer .site-title a { color: #ffffff; }
.site-footer .site-description { color: rgba(255, 255, 255, 0.6); }

.site-footer__top {
	display: grid;
	gap: var(--pc-space-7);
	padding-block: var(--pc-space-8) var(--pc-space-6);
}

@media (min-width: 900px) {
	.site-footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); }
}

.site-footer__about {
	max-width: 42ch;
	margin: var(--pc-space-4) 0;
	color: rgba(255, 255, 255, 0.7);
}

.contact-list--footer svg { color: var(--pc-mint); }

.site-footer__widgets {
	display: grid;
	gap: var(--pc-space-6);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
}

.site-footer .widget {
	padding: 0;
	background: none;
	border: 0;
}

.site-footer .widget-title {
	color: #ffffff;
	font-size: var(--pc-text-base);
}

.site-footer .widget ul li {
	border-bottom-color: rgba(255, 255, 255, 0.12);
}

.site-footer .widget a { color: rgba(255, 255, 255, 0.78); }

.site-footer .hours-table th { color: rgba(255, 255, 255, 0.7); }
.site-footer .hours-table td { color: #ffffff; }
.site-footer .hours-table th,
.site-footer .hours-table td { border-bottom-color: rgba(255, 255, 255, 0.12); }
.site-footer .hours-table__today { background: rgba(255, 255, 255, 0.16); color: #ffffff; }
.site-footer .status-pill { background: rgba(255, 255, 255, 0.14); color: #ffffff; }

.footer-menu,
.legal-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-menu li { padding: 0.35rem 0; }
.footer-menu a { text-decoration: none; }

.social-links {
	display: flex;
	gap: var(--pc-space-2);
	margin: var(--pc-space-5) 0 0;
	padding: 0;
	list-style: none;
}

.social-links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	color: rgba(255, 255, 255, 0.86);
}

.social-links a:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.4);
}

.site-footer__disclaimer {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	margin: 0 0 var(--pc-space-6);
	padding: var(--pc-space-4);
	background: rgba(255, 255, 255, 0.05);
	border-radius: var(--pc-radius-sm);
	color: rgba(255, 255, 255, 0.62);
	font-size: var(--pc-text-xs);
}

.site-footer__disclaimer svg { margin-top: 0.15em; flex: none; }

.site-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.site-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--pc-space-3);
	padding-block: var(--pc-space-4);
	font-size: var(--pc-text-xs);
	color: rgba(255, 255, 255, 0.6);
}

.site-footer__copyright { margin: 0; }

.legal-menu {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pc-space-4);
}

.legal-menu a { text-decoration: none; }

.back-to-top {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 90;
	width: 44px;
	height: 44px;
	padding: 0;
	border-radius: 50%;
	background: var(--pc-primary);
	color: var(--pc-white);
	box-shadow: var(--pc-shadow);
}

.back-to-top:hover { background: var(--pc-primary-dark); }

/* -------------------------------------------------------------------------
   20. Block editor front-end styles
   ------------------------------------------------------------------------- */

.wp-block-image figcaption,
.wp-caption-text {
	margin-top: 0.5rem;
	color: var(--pc-muted);
	font-size: var(--pc-text-xs);
	text-align: center;
}

.wp-block-image img,
.wp-block-cover { border-radius: var(--pc-radius-sm); }

.wp-block-quote {
	padding: var(--pc-space-4) var(--pc-space-5);
	border-left: 3px solid var(--pc-primary);
	background: var(--pc-surface);
}

.wp-block-pullquote {
	padding: var(--pc-space-6);
	border-block: 2px solid var(--pc-primary);
	text-align: center;
}

.wp-block-separator {
	max-width: 120px;
	border: 0;
	border-top: 2px solid var(--pc-border-strong);
}

.wp-block-separator.is-style-wide { max-width: 100%; }

.wp-block-button__link { border-radius: var(--pc-radius-pill); }

.is-style-outline .wp-block-button__link {
	background: transparent;
	border: 1px solid currentColor;
	color: var(--pc-primary-dark);
}

.wp-block-table table { border: 1px solid var(--pc-border); }
.wp-block-table thead { border-bottom: 2px solid var(--pc-border-strong); }

.wp-block-group.has-background { padding: var(--pc-space-6); border-radius: var(--pc-radius); }

.alignleft { float: left; margin: 0 var(--pc-space-5) var(--pc-space-4) 0; }
.alignright { float: right; margin: 0 0 var(--pc-space-4) var(--pc-space-5); }
.aligncenter { margin-inline: auto; }

.sticky .post-card { border-color: var(--pc-primary); }

.page-links {
	display: flex;
	gap: 0.5rem;
	margin-top: var(--pc-space-5);
	font-size: var(--pc-text-sm);
	font-weight: 600;
}

.gallery {
	display: grid;
	gap: var(--pc-space-3);
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.gallery-item { margin: 0; }
.gallery-caption { font-size: var(--pc-text-xs); color: var(--pc-muted); }

/* -------------------------------------------------------------------------
   21. Print
   ------------------------------------------------------------------------- */

@media print {
	.topbar,
	.site-header__actions,
	.main-navigation,
	.back-to-top,
	.site-footer__bottom,
	.comments-area,
	.refill-form__actions {
		display: none !important;
	}

	body { color: #000; font-size: 12pt; }
	a { text-decoration: underline; }
	.container { max-width: none; }
}

/* -------------------------------------------------------------------------
   22. WordPress core classes
   ------------------------------------------------------------------------- */

.bypostauthor > .comment-body .comment-author {
	color: var(--pc-primary-dark);
}

.bypostauthor > .comment-body {
	border-left: 3px solid var(--pc-mint);
	padding-left: var(--pc-space-4);
}

.sticky {
	position: relative;
}

.wp-caption {
	margin-bottom: var(--pc-space-5);
	max-width: 100%;
}

.wp-caption img {
	width: 100%;
}

.wp-caption .wp-caption-text {
	margin: 0.5rem 0 0;
}

.screen-reader-response {
	margin-bottom: var(--pc-space-4);
}

.alignnone {
	margin: 0 0 var(--pc-space-5);
}

/* -------------------------------------------------------------------------
   23. Custom block styles
   ------------------------------------------------------------------------- */

.wp-block-group.is-style-pharmacare-card,
.is-style-pharmacare-card {
	padding: var(--pc-space-5);
	background: var(--pc-white);
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius);
	box-shadow: var(--pc-shadow-sm);
}

.wp-block-group.is-style-pharmacare-notice {
	display: flex;
	gap: var(--pc-space-3);
	padding: var(--pc-space-5);
	background: var(--pc-mint);
	border-radius: var(--pc-radius);
	color: var(--pc-primary-dark);
}

.wp-block-group.is-style-pharmacare-notice p:last-child {
	margin-bottom: 0;
}

.wp-block-list.is-style-pharmacare-checks {
	list-style: none;
	padding-left: 0;
}

.wp-block-list.is-style-pharmacare-checks li {
	position: relative;
	padding-left: 1.9em;
	margin-bottom: var(--pc-space-3);
}

.wp-block-list.is-style-pharmacare-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.35em;
	width: 1.15em;
	height: 1.15em;
	border-radius: 50%;
	background-color: var(--pc-mint);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B7268' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 13 4 4L19 7'/%3E%3C/svg%3E");
	background-size: 0.75em;
	background-position: center;
	background-repeat: no-repeat;
}

.wp-block-quote.is-style-pharmacare-pull {
	border: 0;
	padding: var(--pc-space-6);
	background: var(--pc-primary);
	border-radius: var(--pc-radius-lg);
	color: #ffffff;
	font-family: var(--pc-font-head);
	font-size: var(--pc-text-xl);
	text-align: center;
}

.wp-block-quote.is-style-pharmacare-pull cite {
	display: block;
	margin-top: var(--pc-space-3);
	font-family: var(--pc-font-body);
	font-size: var(--pc-text-sm);
	font-style: normal;
	opacity: 0.85;
}

.wp-block-image.is-style-pharmacare-rounded img {
	border-radius: var(--pc-radius-lg);
}

.wp-block-button.is-style-pharmacare-pill .wp-block-button__link {
	border-radius: var(--pc-radius-pill);
	padding-inline: 1.8rem;
}
