/* ==========================================================================
   Dineshcara theme styles. Tokens and rules follow DESIGN.md.
   ========================================================================== */

/* Fonts: Plus Jakarta Sans, self-hosted */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/plus-jakarta-sans-normal-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/plus-jakarta-sans-normal-400-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/plus-jakarta-sans-normal-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/plus-jakarta-sans-normal-500-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/plus-jakarta-sans-normal-600-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/plus-jakarta-sans-normal-600-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/plus-jakarta-sans-normal-700-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/plus-jakarta-sans-normal-700-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Plus Jakarta Sans";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/plus-jakarta-sans-italic-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Plus Jakarta Sans";font-style:italic;font-weight:500;font-display:swap;src:url("../fonts/plus-jakarta-sans-italic-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* --------------------------------------------------------------------------
   Tokens
   -------------------------------------------------------------------------- */
:root {
	--dc-bg: #F6F7F4;
	--dc-surface: #FDFDFB;
	--dc-surface-2: #EDF0EA;
	--dc-line: #D9DED6;
	--dc-ink: #14211A;
	--dc-ink-2: #4A5A50;
	--dc-muted: #66756B;
	--dc-forest: #1E4D3A;
	--dc-forest-2: #163A2C;
	--dc-forest-soft: #DCE8E0;
	--dc-forest-rgb: 30, 77, 58;
	--dc-on-forest: #F6F7F4;
	--dc-accent: #B9771B;
	--dc-accent-soft: #F5E4C3;
	--dc-danger: #B23A3A;
	--dc-danger-soft: #F6E0E0;
	--dc-success: #2F7A4F;
	--dc-success-soft: #DCEFE3;

	--dc-font: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--dc-radius: 20px;
	--dc-radius-sm: 12px;
	--dc-radius-pill: 999px;
	--dc-shadow: 0 12px 32px -16px rgb(20 33 26 / 0.25);
	--dc-shadow-lg: 0 30px 60px -30px rgb(20 33 26 / 0.35);
	--dc-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--dc-dur: 300ms;
	--dc-container: 1320px;
	--dc-gutter: clamp(1rem, 4vw, 3rem);
	--dc-section: clamp(3.5rem, 8vw, 7rem);
	--dc-header-h: 72px;
	--dc-scale: 1;
}

:root[data-theme="dark"] {
	--dc-bg: #0F1613;
	--dc-surface: #161F1A;
	--dc-surface-2: #1E2A24;
	--dc-line: #2C3A32;
	--dc-ink: #ECEFEA;
	--dc-ink-2: #B5C0B9;
	--dc-muted: #93A199;
	--dc-on-forest: #0F1613;
	--dc-danger: #E08A8A;
	--dc-danger-soft: #3A1F1F;
	--dc-success: #8FD1A8;
	--dc-success-soft: #1D3327;
	--dc-shadow: 0 12px 32px -16px rgb(0 0 0 / 0.6);
	--dc-shadow-lg: 0 30px 60px -30px rgb(0 0 0 / 0.7);
	color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
	:root[data-theme="auto"] {
		--dc-bg: #0F1613;
		--dc-surface: #161F1A;
		--dc-surface-2: #1E2A24;
		--dc-line: #2C3A32;
		--dc-ink: #ECEFEA;
		--dc-ink-2: #B5C0B9;
		--dc-muted: #93A199;
		--dc-on-forest: #0F1613;
		--dc-danger: #E08A8A;
		--dc-danger-soft: #3A1F1F;
		--dc-success: #8FD1A8;
		--dc-success-soft: #1D3327;
		--dc-shadow: 0 12px 32px -16px rgb(0 0 0 / 0.6);
		--dc-shadow-lg: 0 30px 60px -30px rgb(0 0 0 / 0.7);
		color-scheme: dark;
	}
}

body.dc-font-compact { --dc-scale: 0.94; }
body.dc-font-large { --dc-scale: 1.06; }
body.dc-radius-sharp { --dc-radius: 4px; --dc-radius-sm: 2px; --dc-radius-pill: 4px; }
body.dc-radius-round { --dc-radius: 28px; --dc-radius-sm: 16px; }

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

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

body {
	margin: 0;
	font-family: var(--dc-font);
	font-size: calc(1rem * var(--dc-scale));
	line-height: 1.6;
	color: var(--dc-ink);
	background: var(--dc-bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

html.dc-drawer-open { overflow: hidden; }

img, svg, video { max-width: 100%; height: auto; display: block; }
img { border-radius: inherit; }

a { color: var(--dc-forest); text-decoration: none; transition: color var(--dc-dur) var(--dc-ease), opacity var(--dc-dur) var(--dc-ease); }
a:hover { color: var(--dc-forest-2); }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.5em;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--dc-ink);
	overflow-wrap: anywhere;
}
h1 { font-size: clamp(2.25rem, 4.5vw, 3.5rem); line-height: 1.05; letter-spacing: -0.025em; }
h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); line-height: 1.1; }
h3 { font-size: 1.375rem; line-height: 1.25; letter-spacing: -0.01em; }
h4 { font-size: 1.0625rem; font-weight: 500; letter-spacing: 0; line-height: 1.35; }
h5, h6 { font-size: 1rem; letter-spacing: 0; }

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

ul, ol { padding-left: 1.25em; margin: 0 0 1em; }

blockquote {
	margin: 1.5rem 0;
	padding: 1rem 1.5rem;
	border-left: 3px solid var(--dc-forest);
	background: var(--dc-surface-2);
	border-radius: 0 var(--dc-radius-sm) var(--dc-radius-sm) 0;
	font-size: 1.125rem;
}
blockquote p { margin: 0; }

hr { border: 0; border-top: 1px solid var(--dc-line); margin: 2rem 0; }

figure { margin: 0; }
figcaption { font-size: 0.875rem; color: var(--dc-muted); margin-top: 0.5rem; }

table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; padding: 0.75rem; border-bottom: 1px solid var(--dc-line); }
th { font-weight: 600; }

code, kbd, pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.9em; }
pre { padding: 1rem 1.25rem; background: var(--dc-surface-2); border-radius: var(--dc-radius-sm); overflow: auto; }

::selection { background: var(--dc-forest); color: var(--dc-on-forest); }

:focus-visible { outline: 2px solid var(--dc-forest); outline-offset: 3px; border-radius: 4px; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: var(--dc-surface); clip: auto !important; clip-path: none; color: var(--dc-ink);
	display: block; font-size: 0.875rem; height: auto; left: 8px; line-height: normal; padding: 14px 22px;
	text-decoration: none; top: 8px; width: auto; z-index: 100000; border-radius: var(--dc-radius-sm); box-shadow: var(--dc-shadow);
}
.skip-link:focus { outline: 2px solid var(--dc-forest); }

/* --------------------------------------------------------------------------
   Layout primitives
   -------------------------------------------------------------------------- */
.dc-container {
	width: 100%;
	max-width: var(--dc-container);
	margin-inline: auto;
	padding-inline: var(--dc-gutter);
}

.dc-section { padding-block: var(--dc-section); }
.dc-section + .dc-section { padding-top: 0; }

.dc-section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.dc-section__head--center { justify-content: center; text-align: center; }
.dc-section__title { margin: 0; }
.dc-section__head .dc-btn--link { flex-shrink: 0; margin-bottom: 0.35em; }

.dc-eyebrow {
	margin: 0 0 0.75rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--dc-forest);
}

.dc-icon { display: inline-block; vertical-align: middle; flex-shrink: 0; }

.dc-notice-inline {
	padding: 1rem 1.25rem;
	border: 1px dashed var(--dc-line);
	border-radius: var(--dc-radius-sm);
	color: var(--dc-muted);
	font-size: 0.9375rem;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.dc-btn {
	--btn-bg: var(--dc-forest);
	--btn-fg: var(--dc-on-forest);
	--btn-border: var(--dc-forest);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55em;
	min-height: 48px;
	padding: 0.8em 1.6em;
	border: 1px solid var(--btn-border);
	border-radius: var(--dc-radius-pill);
	background: var(--btn-bg);
	color: var(--btn-fg);
	font: inherit;
	font-weight: 600;
	font-size: 0.9375rem;
	line-height: 1.2;
	white-space: nowrap;
	cursor: pointer;
	text-decoration: none;
	transition: transform var(--dc-dur) var(--dc-ease), background-color var(--dc-dur) var(--dc-ease), color var(--dc-dur) var(--dc-ease), border-color var(--dc-dur) var(--dc-ease), box-shadow var(--dc-dur) var(--dc-ease);
}
.dc-btn:hover { --btn-bg: var(--dc-forest-2); --btn-border: var(--dc-forest-2); color: var(--btn-fg); box-shadow: var(--dc-shadow); }
.dc-btn:active { transform: scale(0.98); }
.dc-btn .dc-icon { transition: transform var(--dc-dur) var(--dc-ease); }
.dc-btn:hover .dc-icon { transform: translateX(3px); }

.dc-btn--secondary { --btn-bg: transparent; --btn-fg: var(--dc-forest); --btn-border: var(--dc-forest); }
.dc-btn--secondary:hover { --btn-bg: var(--dc-forest-soft); --btn-fg: var(--dc-forest); --btn-border: var(--dc-forest); box-shadow: none; }

.dc-btn--ghost { --btn-bg: transparent; --btn-fg: var(--dc-ink); --btn-border: var(--dc-line); }
.dc-btn--ghost:hover { --btn-bg: var(--dc-surface-2); --btn-fg: var(--dc-ink); --btn-border: var(--dc-line); box-shadow: none; }

.dc-btn--light { --btn-bg: var(--dc-surface); --btn-fg: var(--dc-forest); --btn-border: var(--dc-surface); }
.dc-btn--light:hover { --btn-bg: var(--dc-forest-soft); --btn-fg: var(--dc-forest); --btn-border: var(--dc-forest-soft); }

.dc-btn--link {
	--btn-bg: transparent; --btn-fg: var(--dc-forest); --btn-border: transparent;
	min-height: 0; padding: 0; border-radius: 0; font-weight: 600;
}
.dc-btn--link:hover { --btn-bg: transparent; --btn-fg: var(--dc-forest-2); box-shadow: none; }
.dc-btn--link span { background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: left bottom; transition: background-size var(--dc-dur) var(--dc-ease); padding-bottom: 2px; }
.dc-btn--link:hover span { background-size: 100% 1px; }

.dc-btn--sm { min-height: 40px; padding: 0.55em 1.1em; font-size: 0.875rem; }
.dc-btn--block { width: 100%; }

.dc-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: var(--dc-radius-pill);
	background: transparent;
	color: var(--dc-ink);
	cursor: pointer;
	transition: background-color var(--dc-dur) var(--dc-ease), color var(--dc-dur) var(--dc-ease), transform var(--dc-dur) var(--dc-ease);
}
.dc-icon-btn:hover { background: var(--dc-surface-2); color: var(--dc-forest); }
.dc-icon-btn:active { transform: scale(0.94); }

/* --------------------------------------------------------------------------
   Forms
   -------------------------------------------------------------------------- */
label { display: block; font-size: 0.875rem; font-weight: 600; margin-bottom: 0.4rem; color: var(--dc-ink); }

input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"],
input[type="number"], input[type="tel"], input[type="date"], textarea, select {
	width: 100%;
	min-height: 48px;
	padding: 0.7rem 1rem;
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius-sm);
	background: var(--dc-surface);
	color: var(--dc-ink);
	font: inherit;
	line-height: 1.4;
	transition: border-color var(--dc-dur) var(--dc-ease), box-shadow var(--dc-dur) var(--dc-ease);
	appearance: none;
	-webkit-appearance: none;
}
textarea { min-height: 140px; resize: vertical; }
select {
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%2366756B'><path d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/></svg>");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
	background-size: 16px;
}
input::placeholder, textarea::placeholder { color: var(--dc-muted); opacity: 1; }
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--dc-forest); box-shadow: 0 0 0 3px rgb(var(--dc-forest-rgb) / 0.18); }
input[type="checkbox"], input[type="radio"] { width: 18px; height: 18px; accent-color: var(--dc-forest); margin: 0 0.5rem 0 0; vertical-align: -3px; }

button, input[type="submit"] { font: inherit; }

/* --------------------------------------------------------------------------
   Badges, empty state, breadcrumb, pagination
   -------------------------------------------------------------------------- */
.dc-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.3em 0.75em;
	border-radius: var(--dc-radius-pill);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.3;
	background: var(--dc-forest-soft);
	color: var(--dc-forest);
}
.dc-badge--sale { background: var(--dc-accent-soft); color: var(--dc-ink); }
.dc-badge--new { background: var(--dc-forest); color: var(--dc-on-forest); }
.dc-badge--muted { background: var(--dc-surface-2); color: var(--dc-muted); }

.dc-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.75rem;
	padding: clamp(2.5rem, 6vw, 5rem) 1.5rem;
	max-width: 520px;
	margin-inline: auto;
}
.dc-empty__icon {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: var(--dc-radius-pill);
	background: var(--dc-surface-2);
	color: var(--dc-forest);
	margin-bottom: 0.5rem;
}
.dc-empty__title { font-size: 1.5rem; margin: 0; }
.dc-empty__text { color: var(--dc-ink-2); margin: 0 0 0.5rem; }

.dc-crumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.8125rem;
	color: var(--dc-muted);
	margin-bottom: 1rem;
}
.dc-crumb a { color: var(--dc-muted); }
.dc-crumb a:hover { color: var(--dc-forest); }
.dc-crumb__sep { display: inline-flex; color: var(--dc-line); }
.dc-crumb [aria-current], .dc-crumb > span:last-child { color: var(--dc-ink-2); }

.dc-pagination { margin-top: clamp(2rem, 5vw, 3.5rem); }
.dc-pagination .nav-links, .woocommerce-pagination ul.page-numbers {
	display: flex;
	justify-content: center;
	gap: 0.4rem;
	list-style: none;
	padding: 0;
	margin: 0;
}
.dc-pagination .page-numbers, .woocommerce-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 0.9rem;
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius-pill);
	color: var(--dc-ink);
	font-weight: 600;
	font-size: 0.9375rem;
	background: var(--dc-surface);
	transition: background-color var(--dc-dur) var(--dc-ease), color var(--dc-dur) var(--dc-ease), border-color var(--dc-dur) var(--dc-ease);
}
.dc-pagination .page-numbers:hover, .woocommerce-pagination .page-numbers:hover { border-color: var(--dc-forest); color: var(--dc-forest); }
.dc-pagination .page-numbers.current, .woocommerce-pagination .page-numbers.current { background: var(--dc-forest); border-color: var(--dc-forest); color: var(--dc-on-forest); }
.dc-pagination .page-numbers.dots, .woocommerce-pagination .page-numbers.dots { border: 0; background: transparent; }

/* --------------------------------------------------------------------------
   Reveal (JS-gated so content never hides without JS)
   -------------------------------------------------------------------------- */
html.dc-js [data-reveal] {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.7s var(--dc-ease), transform 0.7s var(--dc-ease);
	transition-delay: calc(var(--reveal-index, 0) * 60ms);
}
html.dc-js [data-reveal].is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	html.dc-js [data-reveal] { opacity: 1; transform: none; transition: none; }
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

/* --------------------------------------------------------------------------
   Announcement + header
   -------------------------------------------------------------------------- */
.dc-announce {
	background: var(--dc-forest);
	color: var(--dc-on-forest);
	font-size: 0.8125rem;
	font-weight: 500;
	text-align: center;
	padding: 0.55rem 0;
}
.dc-announce__text { color: inherit; }
.dc-announce a:hover { color: inherit; text-decoration: underline; }

.dc-header-sentinel { position: absolute; top: 0; height: 1px; width: 1px; pointer-events: none; }

.dc-header {
	position: relative;
	z-index: 50;
	background: color-mix(in srgb, var(--dc-surface) 88%, transparent);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color var(--dc-dur) var(--dc-ease), box-shadow var(--dc-dur) var(--dc-ease);
}
body.dc-has-sticky-header .dc-header { position: sticky; top: 0; }
.dc-header.is-condensed { border-bottom-color: var(--dc-line); box-shadow: 0 10px 30px -22px rgb(20 33 26 / 0.35); }
.admin-bar.dc-has-sticky-header .dc-header { top: 32px; }
@media (max-width: 782px) { .admin-bar.dc-has-sticky-header .dc-header { top: 46px; } }

.dc-header__inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 1rem;
	height: var(--dc-header-h);
}
.dc-header__burger { display: none; }

.dc-brand { display: flex; align-items: center; min-width: 0; }
.dc-brand__link { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--dc-ink); }
.dc-brand__link:hover { color: var(--dc-forest); }
.dc-brand__mark { color: var(--dc-forest); }
.dc-brand__name { font-size: 1.375rem; font-weight: 700; letter-spacing: -0.03em; white-space: nowrap; }
.dc-brand .custom-logo-link img { max-height: 44px; width: auto; }

.dc-nav { display: flex; justify-content: center; min-width: 0; }
.dc-menu { display: flex; align-items: center; gap: 0.25rem; list-style: none; margin: 0; padding: 0; }
.dc-menu > li { position: relative; }
.dc-menu a {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.5rem 0.9rem;
	border-radius: var(--dc-radius-pill);
	color: var(--dc-ink);
	font-weight: 500;
	font-size: 0.9375rem;
	white-space: nowrap;
	transition: background-color var(--dc-dur) var(--dc-ease), color var(--dc-dur) var(--dc-ease);
}
.dc-menu > li > a:hover, .dc-menu > li.current-menu-item > a, .dc-menu > li.current-menu-ancestor > a, .dc-menu > li.current_page_parent > a { background: var(--dc-surface-2); color: var(--dc-forest); }
.dc-menu__caret { transition: transform var(--dc-dur) var(--dc-ease); }
.dc-menu li:hover > a .dc-menu__caret, .dc-menu li:focus-within > a .dc-menu__caret { transform: rotate(180deg); }

.dc-menu .sub-menu {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	min-width: 220px;
	padding: 0.5rem;
	margin: 0;
	list-style: none;
	background: var(--dc-surface);
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius);
	box-shadow: var(--dc-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--dc-dur) var(--dc-ease), transform var(--dc-dur) var(--dc-ease), visibility 0s linear var(--dc-dur);
	z-index: 5;
}
.dc-menu .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.dc-menu li:hover > .sub-menu, .dc-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.dc-menu .sub-menu a { display: flex; padding: 0.55rem 0.8rem; border-radius: var(--dc-radius-sm); font-weight: 500; }
.dc-menu .sub-menu a:hover { background: var(--dc-surface-2); color: var(--dc-forest); }

.dc-header__actions { display: flex; align-items: center; gap: 0.15rem; justify-content: flex-end; }
.dc-cart-count {
	position: absolute;
	top: 4px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: var(--dc-radius-pill);
	background: var(--dc-forest);
	color: var(--dc-on-forest);
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
}
.dc-cart-count[data-count="0"] { display: none; }

@media (max-width: 1023px) {
	.dc-header__inner { grid-template-columns: auto 1fr auto; }
	.dc-header__burger { display: inline-flex; }
	.dc-nav { display: none; }
	.dc-header__account { display: none; }
	.dc-brand { justify-content: flex-start; }
}

/* --------------------------------------------------------------------------
   Drawers and overlays
   -------------------------------------------------------------------------- */
.dc-scrim {
	position: fixed;
	inset: 0;
	z-index: 90;
	background: rgb(20 33 26 / 0.45);
	opacity: 0;
	transition: opacity var(--dc-dur) var(--dc-ease);
}
.dc-scrim.is-open { opacity: 1; }

.dc-drawer {
	position: fixed;
	top: 0;
	bottom: 0;
	z-index: 100;
	width: min(420px, 92vw);
	display: flex;
	flex-direction: column;
	background: var(--dc-surface);
	box-shadow: var(--dc-shadow-lg);
	transition: transform 0.36s var(--dc-ease);
}
.admin-bar .dc-drawer, .admin-bar .dc-search { top: 32px; }
@media (max-width: 1023px) { .admin-bar .dc-shop__filters { top: 32px; } }
@media (max-width: 782px) { .admin-bar .dc-drawer, .admin-bar .dc-search, .admin-bar .dc-shop__filters { top: 46px; } }
.dc-drawer:focus { outline: none; }
.dc-drawer--menu { left: 0; transform: translateX(-100%); border-radius: 0 var(--dc-radius) var(--dc-radius) 0; }
.dc-drawer--cart { right: 0; transform: translateX(100%); border-radius: var(--dc-radius) 0 0 var(--dc-radius); }
.dc-drawer.is-open { transform: none; }

.dc-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--dc-line);
	min-height: var(--dc-header-h);
}
.dc-drawer__title { font-size: 1.125rem; margin: 0; }
.dc-drawer__body { flex: 1; overflow-y: auto; padding: 1.25rem; display: flex; flex-direction: column; gap: 1.5rem; }

.dc-drawer-menu { list-style: none; margin: 0; padding: 0; }
.dc-drawer-menu > li + li { border-top: 1px solid var(--dc-line); }
.dc-drawer-menu a { display: flex; align-items: center; justify-content: space-between; padding: 0.9rem 0; color: var(--dc-ink); font-weight: 600; font-size: 1.0625rem; }
.dc-drawer-menu .sub-menu { list-style: none; padding: 0 0 0.75rem 1rem; margin: 0; }
.dc-drawer-menu .sub-menu a { font-weight: 500; font-size: 0.9375rem; padding: 0.45rem 0; color: var(--dc-ink-2); }
.dc-drawer-menu .dc-menu__caret { display: none; }
.dc-drawer__links { display: grid; gap: 0.5rem; }
.dc-drawer__links a { display: inline-flex; align-items: center; gap: 0.6rem; color: var(--dc-ink-2); font-weight: 500; }

.dc-search {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 100;
	background: var(--dc-surface);
	border-bottom: 1px solid var(--dc-line);
	box-shadow: var(--dc-shadow-lg);
	transform: translateY(-100%);
	transition: transform 0.36s var(--dc-ease);
}
.dc-search.is-open { transform: none; }
.dc-search__inner { display: flex; align-items: center; gap: 1rem; padding-block: clamp(1rem, 4vw, 2.5rem); }
.dc-search__inner .dc-search-form { flex: 1; }

.dc-search-form { position: relative; display: flex; align-items: center; gap: 0.5rem; }
.dc-search-form__icon { position: absolute; left: 1rem; color: var(--dc-muted); pointer-events: none; display: inline-flex; }
.dc-search-form__input { padding-left: 2.9rem; min-height: 52px; border-radius: var(--dc-radius-pill); }
.dc-search-form__submit { flex-shrink: 0; }
@media (max-width: 640px) { .dc-search-form__submit span { display: none; } .dc-search-form__submit { padding-inline: 1em; } }

.dc-wa-float {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 40;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: var(--dc-radius-pill);
	background: var(--dc-forest);
	color: var(--dc-on-forest);
	box-shadow: var(--dc-shadow-lg);
	transition: transform var(--dc-dur) var(--dc-ease), background-color var(--dc-dur) var(--dc-ease);
}
.dc-wa-float:hover { color: var(--dc-on-forest); background: var(--dc-forest-2); transform: translateY(-2px); }

/* --------------------------------------------------------------------------
   Hero: asymmetric split
   -------------------------------------------------------------------------- */
.dc-hero { padding-block: clamp(2rem, 5vw, 4.5rem) clamp(2.5rem, 6vw, 5rem); overflow: hidden; }
.dc-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(2rem, 5vw, 5rem);
}
.dc-hero__copy { max-width: 560px; }
.dc-hero__title { font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1.02; letter-spacing: -0.025em; margin-bottom: 1.25rem; padding-bottom: 0.05em; }
.dc-hero__title em { font-style: italic; font-weight: 500; line-height: 1.1; }
.dc-hero__text { font-size: 1.125rem; color: var(--dc-ink-2); max-width: 46ch; margin-bottom: 1.75rem; }
.dc-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }

.dc-hero__media { position: relative; padding-bottom: 12%; padding-left: 8%; }
.dc-hero__img { border-radius: var(--dc-radius); overflow: hidden; background: var(--dc-surface-2); }
.dc-hero__img img { width: 100%; height: 100%; object-fit: cover; }
.dc-hero__img--main { aspect-ratio: 4 / 5; box-shadow: var(--dc-shadow-lg); }
.dc-hero__img--main.dc-hero__img--empty { display: grid; place-items: center; color: var(--dc-forest); }
.dc-hero__img--offset {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 40%;
	aspect-ratio: 1;
	border: 6px solid var(--dc-bg);
	box-shadow: var(--dc-shadow-lg);
}

@media (max-width: 1023px) {
	.dc-hero__grid { grid-template-columns: 1fr; }
	.dc-hero__media { padding-left: 0; padding-bottom: 10%; max-width: 560px; }
	.dc-hero__img--offset { left: -0.5rem; width: 38%; }
}
@media (max-width: 640px) {
	.dc-hero { padding-block: 1.5rem 2.5rem; }
	.dc-hero__actions .dc-btn { flex: 1 1 auto; }
}

/* --------------------------------------------------------------------------
   Category rail
   -------------------------------------------------------------------------- */
.dc-rail { position: relative; }
.dc-rail__track {
	display: flex;
	gap: clamp(0.75rem, 1.5vw, 1.25rem);
	list-style: none;
	margin: 0;
	padding: 0.25rem 0 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.dc-rail__track::-webkit-scrollbar { display: none; }
.dc-cat-tile { flex: 0 0 clamp(170px, 20vw, 230px); scroll-snap-align: start; }
.dc-cat-tile__link { display: block; color: var(--dc-ink); }
.dc-cat-tile__media { aspect-ratio: 1; border-radius: var(--dc-radius); overflow: hidden; background: var(--dc-surface-2); }
.dc-cat-tile__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--dc-ease); }
.dc-cat-tile__link:hover .dc-cat-tile__media img { transform: scale(1.05); }
.dc-cat-tile__body { display: flex; flex-direction: column; padding: 0.85rem 0.25rem 0; }
.dc-cat-tile__name { font-weight: 600; }
.dc-cat-tile__count { font-size: 0.8125rem; color: var(--dc-muted); }
.dc-rail__nav { position: absolute; top: -4.25rem; right: 0; display: flex; gap: 0.4rem; }
.dc-rail__btn {
	display: grid; place-items: center; width: 40px; height: 40px;
	border: 1px solid var(--dc-line); border-radius: var(--dc-radius-pill); background: var(--dc-surface); color: var(--dc-ink); cursor: pointer;
	transition: background-color var(--dc-dur) var(--dc-ease), border-color var(--dc-dur) var(--dc-ease), opacity var(--dc-dur) var(--dc-ease);
}
.dc-rail__btn:hover { border-color: var(--dc-forest); color: var(--dc-forest); }
.dc-rail.is-start [data-rail-prev], .dc-rail.is-end [data-rail-next] { opacity: 0.35; pointer-events: none; }
@media (max-width: 640px) { .dc-rail__nav { display: none; } }

/* --------------------------------------------------------------------------
   Story band
   -------------------------------------------------------------------------- */
.dc-story__frame {
	position: relative;
	border-radius: var(--dc-radius);
	overflow: hidden;
	background: var(--dc-forest);
	min-height: 520px;
	display: grid;
	align-items: end;
}
.dc-story__media { position: absolute; inset: 0; }
.dc-story__media img { width: 100%; height: 100%; object-fit: cover; }
.dc-story__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(20 33 26 / 0) 30%, rgb(20 33 26 / 0.55) 100%); }
.dc-story__panel {
	position: relative;
	margin: clamp(1.5rem, 4vw, 3rem);
	max-width: 480px;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	background: var(--dc-surface);
	border-radius: var(--dc-radius);
	box-shadow: var(--dc-shadow-lg);
}
.dc-story__title { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-bottom: 0.75rem; }
.dc-story__text { color: var(--dc-ink-2); margin-bottom: 1.5rem; }
.dc-story__panel .dc-btn--light { --btn-bg: var(--dc-forest); --btn-fg: var(--dc-on-forest); --btn-border: var(--dc-forest); }
.dc-story__panel .dc-btn--light:hover { --btn-bg: var(--dc-forest-2); --btn-border: var(--dc-forest-2); }
.dc-story__frame--empty { background: var(--dc-forest); }
@media (max-width: 767px) {
	.dc-story__frame { min-height: 0; display: block; }
	.dc-story__media { position: relative; aspect-ratio: 4 / 3; }
	.dc-story__media::after { display: none; }
	.dc-story__panel { margin: 0; max-width: none; border-radius: 0; box-shadow: none; }
}

/* --------------------------------------------------------------------------
   Benefits bento
   -------------------------------------------------------------------------- */
.dc-bento {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: 260px;
	gap: clamp(0.75rem, 1.5vw, 1.25rem);
}
.dc-bento__cell { border-radius: var(--dc-radius); overflow: hidden; background: var(--dc-surface-2); min-width: 0; }
.dc-bento__cell img { width: 100%; height: 100%; object-fit: cover; }
.dc-bento__cell--tall { grid-column: 1; grid-row: 1 / 3; }
.dc-bento__cell--wide { grid-column: 2 / 4; grid-row: 2; }
.dc-bento__cell--empty { display: grid; place-items: center; color: var(--dc-forest); }
.dc-bento__cell--text { display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(1.25rem, 2vw, 1.75rem); background: var(--dc-surface); border: 1px solid var(--dc-line); }
.dc-bento__cell--forest { background: var(--dc-forest); border-color: var(--dc-forest); color: var(--dc-on-forest); }
.dc-bento__cell--forest .dc-bento__title, .dc-bento__cell--forest .dc-bento__text, .dc-bento__cell--forest .dc-bento__icon { color: var(--dc-on-forest); }
.dc-bento__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--dc-radius-pill); background: var(--dc-forest-soft); color: var(--dc-forest); margin-bottom: auto; }
.dc-bento__cell--forest .dc-bento__icon { background: rgb(255 255 255 / 0.12); }
.dc-bento__title { font-size: 1.125rem; margin: 1rem 0 0.35rem; }
.dc-bento__text { font-size: 0.9375rem; color: var(--dc-ink-2); margin: 0; }
@media (max-width: 1023px) {
	.dc-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 240px; }
	.dc-bento__cell--tall { grid-column: 1; grid-row: 1 / 3; }
	.dc-bento__cell--wide { grid-column: 1 / 3; grid-row: auto; }
}
@media (max-width: 640px) {
	.dc-bento { grid-template-columns: 1fr; grid-auto-rows: auto; }
	.dc-bento__cell--tall, .dc-bento__cell--wide { grid-column: 1; grid-row: auto; aspect-ratio: 4 / 3; }
	.dc-bento__cell--text { min-height: 180px; }
}

/* --------------------------------------------------------------------------
   Testimonials
   -------------------------------------------------------------------------- */
.dc-quotes { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); grid-auto-rows: minmax(0, 1fr); gap: clamp(0.75rem, 1.5vw, 1.25rem); }
.dc-quote {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: clamp(1.25rem, 2.5vw, 2rem);
	background: var(--dc-surface);
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius);
}
.dc-quote--featured { grid-row: 1 / 3; background: var(--dc-surface-2); border-color: transparent; padding: clamp(1.75rem, 4vw, 3rem); justify-content: center; }
.dc-quote__mark { color: var(--dc-forest); display: inline-flex; }
.dc-quote__text { margin: 0; padding: 0; border: 0; background: transparent; font-size: 1.0625rem; line-height: 1.55; color: var(--dc-ink); border-radius: 0; }
.dc-quote--featured .dc-quote__text { font-size: clamp(1.25rem, 2vw, 1.625rem); font-weight: 500; letter-spacing: -0.01em; line-height: 1.4; }
.dc-quote__by { display: flex; flex-direction: column; font-size: 0.875rem; margin-top: auto; }
.dc-quote__name { font-weight: 600; color: var(--dc-ink); }
.dc-quote__city { color: var(--dc-muted); }
@media (max-width: 767px) {
	.dc-quotes { grid-template-columns: 1fr; }
	.dc-quote--featured { grid-row: auto; }
}

/* --------------------------------------------------------------------------
   Journal
   -------------------------------------------------------------------------- */
.dc-journal__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: start; }
.dc-journal__media { display: block; aspect-ratio: 3 / 2; border-radius: var(--dc-radius); overflow: hidden; background: var(--dc-surface-2); margin-bottom: 1.25rem; }
.dc-journal__media img, .dc-journal__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--dc-ease); }
.dc-journal__media:hover img, .dc-journal__thumb:hover img { transform: scale(1.04); }
.dc-journal__title { font-size: clamp(1.375rem, 2.2vw, 1.75rem); margin: 0.5rem 0 0.5rem; }
.dc-journal__title a, .dc-journal__row-title a, .dc-post-card__title a { color: var(--dc-ink); }
.dc-journal__title a:hover, .dc-journal__row-title a:hover, .dc-post-card__title a:hover { color: var(--dc-forest); }
.dc-journal__excerpt { color: var(--dc-ink-2); margin: 0; }
.dc-journal__list { display: grid; gap: 1.25rem; }
.dc-journal__row { display: grid; grid-template-columns: 120px 1fr; gap: 1rem; align-items: center; padding-bottom: 1.25rem; border-bottom: 1px solid var(--dc-line); }
.dc-journal__row:last-child { border-bottom: 0; padding-bottom: 0; }
.dc-journal__thumb { display: block; aspect-ratio: 1; border-radius: var(--dc-radius-sm); overflow: hidden; background: var(--dc-surface-2); }
.dc-journal__row-title { font-size: 1.0625rem; margin: 0.35rem 0 0; }
.dc-post-meta { display: flex; align-items: center; gap: 0.5rem; font-size: 0.8125rem; color: var(--dc-muted); }
.dc-post-meta a { color: var(--dc-forest); font-weight: 600; }
.dc-post-meta__sep { width: 4px; height: 4px; border-radius: 50%; background: var(--dc-line); }
@media (max-width: 767px) { .dc-journal__grid { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Newsletter
   -------------------------------------------------------------------------- */
.dc-newsletter__band {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: center;
	padding: clamp(2rem, 5vw, 4rem);
	border-radius: var(--dc-radius);
	background: var(--dc-forest);
	color: var(--dc-on-forest);
}
.dc-newsletter__title { color: inherit; font-size: clamp(1.5rem, 2.6vw, 2.125rem); margin-bottom: 0.5rem; }
.dc-newsletter__text { color: inherit; opacity: 0.85; margin: 0; }
.dc-newsletter__form label { color: inherit; }
.dc-newsletter__row { display: flex; gap: 0.5rem; }
.dc-newsletter__row input { min-height: 52px; border-radius: var(--dc-radius-pill); border-color: transparent; padding-left: 1.25rem; background: var(--dc-surface); color: var(--dc-ink); }
.dc-newsletter__row input:focus { box-shadow: 0 0 0 3px rgb(255 255 255 / 0.35); border-color: transparent; }
.dc-newsletter__row .dc-btn { flex-shrink: 0; }
.dc-newsletter__hp { position: absolute; left: -9999px; }
.dc-newsletter__status { margin: 0.75rem 0 0; font-size: 0.875rem; font-weight: 500; }
.dc-newsletter__status--error { color: #FFD0D0; }
@media (max-width: 767px) {
	.dc-newsletter__band { grid-template-columns: 1fr; }
	.dc-newsletter__row { flex-direction: column; }
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.dc-footer { border-top: 1px solid var(--dc-line); padding: clamp(3rem, 6vw, 5rem) 0 2rem; background: var(--dc-surface); }
.dc-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr; gap: clamp(1.5rem, 4vw, 3rem); }
.dc-footer__about { color: var(--dc-ink-2); max-width: 36ch; margin: 1rem 0 1.25rem; font-size: 0.9375rem; }
.dc-footer__title { font-size: 0.9375rem; font-weight: 600; margin-bottom: 1rem; }
.dc-footer__menu { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; }
.dc-footer__menu a { color: var(--dc-ink-2); font-size: 0.9375rem; }
.dc-footer__menu a:hover { color: var(--dc-forest); }
.dc-footer__contact-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.75rem; font-size: 0.9375rem; color: var(--dc-ink-2); }
.dc-footer__contact-list li { display: flex; gap: 0.6rem; align-items: flex-start; }
.dc-footer__contact-list .dc-icon { color: var(--dc-forest); margin-top: 3px; }
.dc-social { display: flex; gap: 0.35rem; list-style: none; padding: 0; margin: 0; }
.dc-social a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: var(--dc-radius-pill); border: 1px solid var(--dc-line); color: var(--dc-ink); transition: background-color var(--dc-dur) var(--dc-ease), color var(--dc-dur) var(--dc-ease), border-color var(--dc-dur) var(--dc-ease); }
.dc-social a:hover { background: var(--dc-forest); border-color: var(--dc-forest); color: var(--dc-on-forest); }
.dc-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: clamp(2rem, 5vw, 3.5rem); padding-top: 1.5rem; border-top: 1px solid var(--dc-line); font-size: 0.8125rem; color: var(--dc-muted); }
.dc-footer__bottom p { margin: 0; }
.dc-footer__payment { display: inline-flex; align-items: center; gap: 0.4rem; }
@media (max-width: 1023px) { .dc-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .dc-footer__grid { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Pages, posts, listings
   -------------------------------------------------------------------------- */
.dc-page-header { padding: clamp(2rem, 5vw, 4rem) 0 clamp(1.5rem, 3vw, 2.5rem); }
.dc-page-header__title { margin: 0; }
.dc-page-header__subtitle { color: var(--dc-ink-2); font-size: 1.125rem; max-width: 60ch; margin: 0.75rem 0 0; }

.dc-page-content { padding-bottom: var(--dc-section); }
.dc-page__thumb { aspect-ratio: 21 / 9; border-radius: var(--dc-radius); overflow: hidden; margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.dc-page__thumb img { width: 100%; height: 100%; object-fit: cover; }

.dc-listing { padding-bottom: var(--dc-section); }
.dc-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 2.5vw, 2rem); }
.dc-post-card__media { display: block; aspect-ratio: 3 / 2; border-radius: var(--dc-radius); overflow: hidden; background: var(--dc-surface-2); margin-bottom: 1rem; }
.dc-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--dc-ease); }
.dc-post-card:hover .dc-post-card__media img { transform: scale(1.04); }
.dc-post-card__title { font-size: 1.25rem; margin: 0.5rem 0 0.5rem; }
.dc-post-card__excerpt { color: var(--dc-ink-2); font-size: 0.9375rem; margin: 0; }
@media (max-width: 1023px) { .dc-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .dc-post-grid { grid-template-columns: 1fr; } }

.dc-search-page__form { margin-bottom: 2rem; max-width: 640px; }
.dc-404__search { max-width: 520px; margin: 0 auto; }

.dc-article__header { padding: clamp(2rem, 5vw, 4rem) 0 clamp(1.5rem, 3vw, 2.5rem); }
.dc-article__inner { max-width: 760px; }
.dc-article__title { margin: 0 0 1rem; }
.dc-article__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; font-size: 0.8125rem; color: var(--dc-muted); }
.dc-article__cover { aspect-ratio: 21 / 9; border-radius: var(--dc-radius); overflow: hidden; margin-bottom: clamp(1.5rem, 4vw, 3rem); }
.dc-article__cover img { width: 100%; height: 100%; object-fit: cover; }
.dc-article__tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 2rem; }
.dc-article__tags a { display: inline-flex; padding: 0.3em 0.8em; border-radius: var(--dc-radius-pill); background: var(--dc-surface-2); color: var(--dc-ink-2); font-size: 0.8125rem; font-weight: 500; }
.dc-article__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: clamp(2rem, 5vw, 3.5rem) auto; padding-top: 1.5rem; border-top: 1px solid var(--dc-line); }
.dc-article__nav-item a { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--dc-ink); font-weight: 600; }
.dc-article__nav-item--next { text-align: right; justify-self: end; }
@media (max-width: 640px) { .dc-article__nav { grid-template-columns: 1fr; } .dc-article__nav-item--next { justify-self: start; text-align: left; } }

/* Prose: long-form content and block editor output */
.dc-prose { font-size: calc(1.0625rem * var(--dc-scale)); line-height: 1.7; }
.dc-prose > * { max-width: 760px; margin-left: auto; margin-right: auto; }
.dc-prose > .alignwide { max-width: var(--dc-container); }
.dc-prose > .alignfull { max-width: none; }
.dc-prose h2 { margin-top: 2.25em; font-size: clamp(1.5rem, 2.4vw, 1.875rem); }
.dc-prose h3 { margin-top: 1.75em; }
.dc-prose p, .dc-prose ul, .dc-prose ol { margin-bottom: 1.25em; }
.dc-prose a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--dc-forest-soft); }
.dc-prose a:hover { text-decoration-color: currentColor; }
.dc-prose img, .dc-prose .wp-block-image img { border-radius: var(--dc-radius); }
.dc-prose .wp-block-image { margin: 2rem auto; }
.dc-prose .wp-block-image figcaption { text-align: center; }
.dc-prose .wp-block-columns { gap: 2rem; }
.dc-prose .wp-block-button__link { border-radius: var(--dc-radius-pill); background: var(--dc-forest); color: var(--dc-on-forest); font-weight: 600; padding: 0.8em 1.6em; }
.dc-prose .wp-block-quote { border-left-color: var(--dc-forest); }
.dc-prose .wp-block-table td, .dc-prose .wp-block-table th { border: 1px solid var(--dc-line); }
.dc-prose details { padding: 1rem 1.25rem; border: 1px solid var(--dc-line); border-radius: var(--dc-radius-sm); margin-bottom: 0.75rem; background: var(--dc-surface); }
.dc-prose details summary { font-weight: 600; cursor: pointer; }
.dc-prose details[open] summary { margin-bottom: 0.75rem; }
.dc-prose .wp-block-group.has-background { padding: clamp(1.5rem, 3vw, 2.5rem); border-radius: var(--dc-radius); }
.dc-prose .wp-block-media-text { border-radius: var(--dc-radius); overflow: hidden; }
.dc-page-links { margin-top: 2rem; font-weight: 600; }
.wp-block-cover { border-radius: var(--dc-radius); overflow: hidden; }
.has-forest-color { color: var(--dc-forest) !important; }
.has-forest-background-color { background-color: var(--dc-forest) !important; }
.has-amber-color { color: var(--dc-accent) !important; }
.has-mist-background-color { background-color: var(--dc-surface-2) !important; }
.has-ground-background-color { background-color: var(--dc-bg) !important; }

/* Comments */
.dc-comments { margin-top: clamp(2rem, 5vw, 3.5rem); padding-top: 2rem; border-top: 1px solid var(--dc-line); }
.dc-comments__title { font-size: 1.375rem; }
.dc-comments__list, .dc-comments__list .children { list-style: none; padding: 0; margin: 0; }
.dc-comments__list .children { padding-left: 2.5rem; }
.dc-comments__list .comment-body { display: grid; grid-template-columns: 44px 1fr; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid var(--dc-line); }
.dc-comments__list .comment-body .avatar { border-radius: 50%; grid-row: 1 / 4; }
.dc-comments__list .comment-meta { grid-column: 2; font-size: 0.8125rem; color: var(--dc-muted); }
.dc-comments__list .comment-author .fn { font-weight: 600; font-style: normal; color: var(--dc-ink); }
.dc-comments__list .comment-content { grid-column: 2; }
.dc-comments__list .comment-content p { margin-bottom: 0.5em; }
.dc-comments__list .reply { grid-column: 2; font-size: 0.8125rem; font-weight: 600; }
.comment-respond { margin-top: 2rem; }
.comment-form { display: grid; gap: 1rem; }
.comment-form p { margin: 0; }
.comment-form-cookies-consent { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; }
.comment-form-cookies-consent label { margin: 0; font-weight: 400; }
.comment-notes, .logged-in-as { font-size: 0.875rem; color: var(--dc-muted); }

/* Widgets (shop sidebar and friends) */
.dc-widget + .dc-widget { margin-top: 1.75rem; padding-top: 1.75rem; border-top: 1px solid var(--dc-line); }
.dc-widget__title { font-size: 0.9375rem; font-weight: 600; margin-bottom: 0.9rem; }
.dc-widget ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.4rem; }
.dc-widget ul ul { padding-left: 1rem; margin-top: 0.4rem; }
.dc-widget li a { color: var(--dc-ink-2); font-size: 0.9375rem; }
.dc-widget li a:hover, .dc-widget li.current-cat > a { color: var(--dc-forest); font-weight: 600; }
.dc-widget li .count { color: var(--dc-muted); font-size: 0.8125rem; margin-left: 0.25rem; }

/* Elementor-built pages: no theme padding around the canvas */
.dc-elementor-page .dc-main { padding: 0; }
.dc-full-width { width: 100%; }
