/* ==========================================================================
   Dhi Astro theme
   1. Fonts & tokens   2. Base   3. Layout & utilities   4. Buttons
   5. Header & nav     6. Hero   7. Home sections        8. Inner pages
   9. Footer          10. WooCommerce                    11. Motion & print
   ========================================================================== */

/* 1. Fonts (self-hosted, latin subset, swap) ------------------------------ */
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/cormorant-garamond-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 600; font-display: swap; src: url(../fonts/cormorant-garamond-latin-600-italic.woff2) format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/inter-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/inter-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/inter-latin-600-normal.woff2) format("woff2"); }

:root {
	--dhi-purple-950: #170a2e;
	--dhi-purple-900: #2a1650;
	--dhi-purple-800: #3a1d6e;
	--dhi-purple-700: #4b2a86;
	--dhi-purple-600: #5b2e91;
	--dhi-purple-100: #f1eaf9;
	--dhi-purple-50: #f8f4fc;
	--dhi-gold-300: #e6c45c;
	--dhi-gold-400: #d4af37;
	--dhi-gold-700: #7d5e12;
	--dhi-ivory: #fbf7ef;
	--dhi-surface: #ffffff;
	--dhi-ink: #1f1830;
	--dhi-muted: #5b5468;
	--dhi-line: #e7e0f0;
	--dhi-radius: 18px;
	--dhi-shadow: 0 1px 2px rgba(42, 22, 80, .06), 0 10px 30px rgba(42, 22, 80, .08);
	--dhi-font-display: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
	--dhi-font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Noto Sans Devanagari", sans-serif;
	--dhi-container: 1200px;
	--dhi-gutter: clamp(16px, 4vw, 32px);
	--dhi-section: clamp(56px, 8vw, 104px);
	--dhi-header-h: 76px;
	--dhi-stars: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cg fill='%23fff'%3E%3Ccircle cx='20' cy='30' r='1'/%3E%3Ccircle cx='90' cy='12' r='.7'/%3E%3Ccircle cx='160' cy='48' r='1.3' fill-opacity='.8'/%3E%3Ccircle cx='220' cy='20' r='.8'/%3E%3Ccircle cx='60' cy='110' r='.9' fill-opacity='.6'/%3E%3Ccircle cx='130' cy='140' r='.7'/%3E%3Ccircle cx='200' cy='120' r='1.1' fill-opacity='.7'/%3E%3Ccircle cx='30' cy='190' r='1.2' fill-opacity='.7'/%3E%3Ccircle cx='110' cy='220' r='.8'/%3E%3Ccircle cx='180' cy='200' r='.6'/%3E%3C/g%3E%3C/svg%3E");
	--dhi-stars-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cg fill='%234b2a86' fill-opacity='.14'%3E%3Ccircle cx='20' cy='30' r='1.2'/%3E%3Ccircle cx='160' cy='48' r='1.5'/%3E%3Ccircle cx='60' cy='110' r='1'/%3E%3Ccircle cx='200' cy='120' r='1.3'/%3E%3Ccircle cx='30' cy='190' r='1.4'/%3E%3Ccircle cx='180' cy='200' r='1'/%3E%3C/g%3E%3C/svg%3E");
}

/* 2. Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--dhi-header-h) + 16px); }
body {
	margin: 0; background: var(--dhi-surface); color: var(--dhi-ink);
	font-family: var(--dhi-font-body); font-size: 1.0625rem; line-height: 1.7;
	-webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; }
h1, h2, h3, h4, h5, h6 {
	font-family: var(--dhi-font-display); font-weight: 600; color: var(--dhi-purple-900);
	line-height: 1.15; margin: 0 0 .5em; letter-spacing: -.005em;
}
h1 { font-size: clamp(2.3rem, 4.5vw + .5rem, 4rem); }
h2 { font-size: clamp(1.9rem, 2.6vw + .6rem, 2.9rem); }
h3 { font-size: clamp(1.45rem, 1.2vw + .8rem, 1.8rem); }
h4 { font-size: 1.3rem; }
p, ul, ol, dl, blockquote, figure { margin: 0 0 1.15em; }
a { color: var(--dhi-purple-700); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--dhi-purple-900); }
:focus-visible { outline: 3px solid var(--dhi-gold-400); outline-offset: 2px; }
::selection { background: var(--dhi-gold-300); color: var(--dhi-purple-900); }
hr { border: 0; height: 1px; background: var(--dhi-line); margin: 2.5rem 0; }
blockquote { border-left: 3px solid var(--dhi-gold-400); padding: .25rem 0 .25rem 1.25rem; font-family: var(--dhi-font-display); font-size: 1.35rem; font-style: italic; color: var(--dhi-purple-800); }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .6rem .75rem; border-bottom: 1px solid var(--dhi-line); text-align: left; }
input, select, textarea, button { font: inherit; }

.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;
}
.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto; margin: 0; z-index: 1000;
	top: 8px; left: 8px; padding: .75rem 1.25rem; background: var(--dhi-purple-900); color: #fff; border-radius: 8px; text-decoration: none;
}
.site-main:focus { outline: 0; }

/* 3. Layout & utilities ---------------------------------------------------- */
.container { width: 100%; max-width: calc(var(--dhi-container) + var(--dhi-gutter) * 2); margin-inline: auto; padding-inline: var(--dhi-gutter); }
.section { padding-block: var(--dhi-section); }
.center { text-align: center; }
.button-row { display: flex; flex-wrap: wrap; gap: .85rem; margin: 0; }
.center .button-row, .button-row.center { justify-content: center; }
.eyebrow {
	display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 .9rem;
	font-size: .78rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--dhi-gold-700);
}
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.eyebrow--light { color: var(--dhi-gold-300); }
.section-head { text-align: center; max-width: 720px; margin: 0 auto clamp(32px, 4vw, 52px); }
.section-head .eyebrow::after { content: ""; width: 28px; height: 1px; background: currentColor; }
.section-title { margin-bottom: .35em; }
.section-lead { color: var(--dhi-muted); font-size: 1.1rem; margin: 0; }
.section-foot { margin: clamp(28px, 3vw, 40px) 0 0; }

/* 4. Buttons --------------------------------------------------------------- */
.dhi-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	min-height: 48px; padding: .75em 1.6em; border-radius: 999px; border: 2px solid transparent;
	font-family: var(--dhi-font-body); font-size: 1rem; font-weight: 600; line-height: 1.2; letter-spacing: .01em;
	text-decoration: none; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s, transform .2s;
}
.dhi-btn--primary { background: var(--dhi-gold-400); color: var(--dhi-purple-950); box-shadow: 0 6px 18px rgba(212, 175, 55, .28); }
.dhi-btn--primary:hover, .dhi-btn--primary:focus-visible { background: var(--dhi-gold-300); color: var(--dhi-purple-950); transform: translateY(-1px); box-shadow: 0 10px 24px rgba(212, 175, 55, .35); }
.dhi-btn--ghost { background: transparent; color: var(--dhi-purple-700); border-color: var(--dhi-purple-700); }
.dhi-btn--ghost:hover, .dhi-btn--ghost:focus-visible { background: var(--dhi-purple-700); color: #fff; }
.dhi-btn--light { background: rgba(255, 255, 255, .06); color: #fff; border-color: rgba(255, 255, 255, .7); }
.dhi-btn--light:hover, .dhi-btn--light:focus-visible { background: #fff; color: var(--dhi-purple-900); border-color: #fff; }

/* 5. Header & navigation --------------------------------------------------- */
.site-header {
	position: sticky; top: 0; z-index: 100; background: rgba(255, 255, 255, .97);
	border-bottom: 1px solid var(--dhi-line); transition: box-shadow .25s;
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; position: relative; } }
.site-header.is-scrolled { box-shadow: 0 6px 24px rgba(42, 22, 80, .1); }
.site-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: linear-gradient(90deg, transparent, var(--dhi-gold-400), transparent); opacity: .55; }
.site-header__inner { display: flex; align-items: center; gap: 1.5rem; min-height: var(--dhi-header-h); }

.brand { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; color: inherit; flex-shrink: 0; }
.brand__logo { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; display: block; }
.brand__mark svg { display: block; width: 48px; height: 48px; }
.brand__text { display: flex; flex-direction: column; line-height: 1.1; }
.brand__name { font-family: var(--dhi-font-display); font-weight: 600; font-size: 1.6rem; color: var(--dhi-purple-900); letter-spacing: .01em; }
.brand__tagline { font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; color: var(--dhi-gold-700); margin-top: 3px; }

.site-header__panel { display: flex; align-items: center; gap: 1.5rem; margin-left: auto; }
.primary-nav .menu { list-style: none; margin: 0; padding: 0; display: flex; gap: .25rem; }
.primary-nav li { position: relative; margin: 0; }
.primary-nav a {
	display: block; padding: .6rem .85rem; color: var(--dhi-ink); text-decoration: none; font-weight: 500; font-size: .98rem; border-radius: 8px;
}
.primary-nav a:hover, .primary-nav a:focus-visible { color: var(--dhi-purple-700); background: var(--dhi-purple-50); }
.primary-nav .current-menu-item > a, .primary-nav .current_page_item > a, .primary-nav .current-menu-ancestor > a {
	color: var(--dhi-purple-700); box-shadow: inset 0 -2px 0 var(--dhi-gold-400); border-radius: 0;
}
.primary-nav .sub-menu {
	list-style: none; margin: 0; padding: .5rem; position: absolute; top: 100%; left: 0; min-width: 220px;
	background: #fff; border: 1px solid var(--dhi-line); border-radius: 12px; box-shadow: var(--dhi-shadow);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s;
}
.primary-nav li:hover > .sub-menu, .primary-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.site-header__actions { display: flex; align-items: center; gap: .75rem; }
.header-cart { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 50%; color: var(--dhi-purple-900); }
.header-cart:hover, .header-cart:focus-visible { background: var(--dhi-purple-50); color: var(--dhi-purple-700); }
.header-cta { min-height: 44px; padding: .6em 1.25em; font-size: .95rem; }

.nav-toggle {
	display: none; margin-left: auto; width: 48px; height: 48px; border: 1px solid var(--dhi-line); border-radius: 12px;
	background: #fff; cursor: pointer; align-items: center; justify-content: center; color: var(--dhi-purple-900);
}
.nav-toggle__bars, .nav-toggle__bars::before, .nav-toggle__bars::after {
	display: block; width: 22px; height: 2px; background: currentColor; border-radius: 2px; position: relative; transition: transform .2s, background-color .2s;
}
.nav-toggle__bars::before, .nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.nav-toggle__bars::before { top: -7px; }
.nav-toggle__bars::after { top: 7px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1023px) {
	:root { --dhi-header-h: 68px; }
	.brand__logo { width: 48px; height: 48px; }
	.brand__name { font-size: 1.4rem; }
	.js .nav-toggle { display: inline-flex; }
	.site-header__inner { flex-wrap: wrap; gap: .75rem; }
	.site-header__panel {
		flex-basis: 100%; flex-direction: column; align-items: stretch; gap: 1rem; margin: 0;
		padding: .5rem 0 1.25rem; border-top: 1px solid var(--dhi-line);
	}
	.js .site-header__panel { display: none; }
	.js .site-header.is-open .site-header__panel { display: flex; max-height: calc(100vh - var(--dhi-header-h)); overflow-y: auto; }
	.primary-nav .menu { flex-direction: column; gap: 0; }
	.primary-nav a { padding: .85rem .5rem; font-size: 1.05rem; border-bottom: 1px solid var(--dhi-purple-50); border-radius: 0; }
	.primary-nav .current-menu-item > a, .primary-nav .current_page_item > a { box-shadow: inset 3px 0 0 var(--dhi-gold-400); padding-left: .9rem; }
	.primary-nav .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 1rem; }
	.site-header__actions { justify-content: space-between; }
	.site-header__actions .header-cta { flex: 1; }
}

/* 6. Hero ------------------------------------------------------------------ */
.hero {
	position: relative; isolation: isolate; overflow: hidden; color: #fff;
	min-height: clamp(520px, 78vh, 760px); display: flex; align-items: center;
	background: radial-gradient(120% 90% at 85% 15%, #5b2e91 0%, transparent 60%), linear-gradient(135deg, var(--dhi-purple-950) 0%, var(--dhi-purple-900) 45%, var(--dhi-purple-700) 100%);
}
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--dhi-stars); opacity: .7; }
.hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -3; }
.hero__veil { position: absolute; inset: 0; z-index: -2; }
.hero--has-image .hero__veil { background: linear-gradient(90deg, rgba(23, 10, 46, .92) 0%, rgba(42, 22, 80, .78) 45%, rgba(42, 22, 80, .35) 100%); }
.hero__wheel {
	position: absolute; z-index: -1; right: -12%; top: 50%; width: min(78vw, 820px); aspect-ratio: 1; transform: translateY(-50%);
	background: url(../img/zodiac-wheel.svg) center / contain no-repeat; opacity: .22; pointer-events: none;
}
.hero__content { padding-block: clamp(64px, 10vw, 120px); }
.hero__content > * { max-width: 680px; }
.hero__title { color: #fff; margin-bottom: .35em; text-wrap: balance; }
.hero__subtitle { font-size: clamp(1.05rem, .5vw + .95rem, 1.25rem); color: rgba(255, 255, 255, .88); margin-bottom: 2rem; max-width: 600px; }
@media (max-width: 760px) {
	.hero { min-height: 0; }
	.hero__wheel { right: -40%; top: 18%; width: 120vw; opacity: .14; }
	.hero .button-row .dhi-btn { flex: 1 1 100%; }
}

/* 7. Home sections --------------------------------------------------------- */
.section--services { background: var(--dhi-ivory); background-image: var(--dhi-stars-dark); }
.feature-grid { display: grid; gap: clamp(20px, 3vw, 36px); grid-template-columns: 1fr; }
@media (min-width: 760px) { .feature-grid { grid-template-columns: 1fr 1fr; } }
.feature-card {
	display: flex; flex-direction: column; background: #fff; border-radius: var(--dhi-radius); overflow: hidden;
	box-shadow: var(--dhi-shadow); border: 1px solid var(--dhi-line); position: relative;
}
.feature-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--dhi-gold-400), var(--dhi-gold-300)); z-index: 1; }
.feature-card__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--dhi-purple-900); }
.feature-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.feature-card:hover .feature-card__media img { transform: scale(1.03); }
.feature-card__body { padding: clamp(22px, 3vw, 36px); display: flex; flex-direction: column; align-items: flex-start; flex: 1; }
.feature-card__title { margin-bottom: .45em; }
.feature-card__text { color: var(--dhi-muted); flex: 1; }

.section--author { background: #fff; }
.author { display: grid; gap: clamp(32px, 5vw, 72px); align-items: center; grid-template-columns: 1fr; }
@media (min-width: 900px) { .author { grid-template-columns: minmax(300px, 5fr) 7fr; } }
.author__photo { margin: 0 auto; width: 100%; max-width: 440px; position: relative; }
@media (max-width: 899px) { .author__photo { max-width: 300px; margin-top: 14px; } }
.author__photo::before {
	content: ""; position: absolute; inset: -14px 14px 14px -14px; border: 1.5px solid var(--dhi-gold-400);
	border-radius: 240px 240px 24px 24px; z-index: 0;
}
.author__photo img {
	position: relative; z-index: 1; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top;
	border-radius: 240px 240px 24px 24px; display: block; box-shadow: 0 24px 48px rgba(42, 22, 80, .22); background: var(--dhi-purple-800);
}
.author__role { margin: -.2rem 0 1.25rem; font-weight: 500; color: var(--dhi-gold-700); letter-spacing: .02em; }
.author__bio { color: var(--dhi-ink); }
.brand-box {
	margin: 1.75rem 0 2rem; padding: 1.4rem 1.6rem; background: var(--dhi-ivory); border-radius: 14px;
	border-left: 4px solid var(--dhi-gold-400);
}
.brand-box__title { font-size: 1.45rem; margin-bottom: .35em; }
.brand-box p:last-child { margin-bottom: 0; }

.section--testimonials { background: linear-gradient(180deg, var(--dhi-purple-50) 0%, var(--dhi-ivory) 100%); }

/* 8. Inner pages ----------------------------------------------------------- */
.page-hero {
	position: relative; isolation: isolate; color: #fff; text-align: center; overflow: hidden;
	padding-block: clamp(48px, 7vw, 88px);
	background: linear-gradient(135deg, var(--dhi-purple-950) 0%, var(--dhi-purple-900) 50%, var(--dhi-purple-700) 100%);
}
.page-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--dhi-stars); opacity: .6; }
.page-hero::after {
	content: ""; position: absolute; z-index: -1; width: 520px; aspect-ratio: 1; left: 50%; top: 50%; transform: translate(-50%, -50%);
	background: url(../img/zodiac-wheel.svg) center / contain no-repeat; opacity: .1;
}
.page-hero__title { color: #fff; margin: 0; text-wrap: balance; }
.page-hero__subtitle { margin: .75rem auto 0; max-width: 640px; color: rgba(255, 255, 255, .85); }

.section--page { padding-block: clamp(40px, 6vw, 80px); }
.entry-content > :where(p, h2, h3, h4, h5, h6, ul, ol, blockquote, dl, table, .wp-block-heading, .wp-block-list):not(.dhi-tgrid, .dhi-cards) { max-width: 780px; margin-inline: auto; }
.dhi-page-consultations .entry-content > p:first-child,
.dhi-page-courses .entry-content > p:first-child,
.dhi-page-testimonials .entry-content > p:first-child { text-align: center; font-size: 1.15rem; color: var(--dhi-muted); margin-bottom: clamp(32px, 4vw, 52px); }
.entry-content h2 { margin-top: 1.6em; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content .wp-block-image img { border-radius: 12px; }
.page-featured { margin: 0 0 2.5rem; }
.page-featured img { width: 100%; border-radius: var(--dhi-radius); }
.dhi-contact-columns { gap: clamp(28px, 5vw, 64px) !important; align-items: flex-start; }
.dhi-contact-columns > .wp-block-column:first-child { background: #fff; border: 1px solid var(--dhi-line); border-radius: var(--dhi-radius); padding: clamp(22px, 3.5vw, 40px); box-shadow: var(--dhi-shadow); }
.dhi-contact-columns > .wp-block-column:last-child { background: var(--dhi-ivory); border-radius: var(--dhi-radius); padding: clamp(22px, 3.5vw, 36px); }
.dhi-contact-columns h2 { font-size: 1.8rem; margin-top: 0; }
.post-list { display: grid; gap: 1.25rem; max-width: 780px; margin: 0 auto; }
.post-card { padding: 1.5rem; border: 1px solid var(--dhi-line); border-radius: 14px; }
.post-card__title { font-size: 1.6rem; margin-bottom: .3em; }
.post-card__title a { text-decoration: none; color: var(--dhi-purple-900); }
.post-card__excerpt { margin: 0; color: var(--dhi-muted); }

/* 9. Footer ---------------------------------------------------------------- */
.site-footer {
	position: relative; isolation: isolate; color: rgba(255, 255, 255, .82); font-size: .97rem;
	background: linear-gradient(180deg, var(--dhi-purple-900) 0%, var(--dhi-purple-950) 100%);
}
.site-footer::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--dhi-stars); opacity: .45; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover, .site-footer a:focus-visible { color: var(--dhi-gold-300); text-decoration: underline; }
.site-footer__grid { display: grid; gap: 2.5rem; padding-block: clamp(48px, 6vw, 80px) 40px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .site-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .site-footer__grid { grid-template-columns: 1.6fr 1fr 1fr 1.2fr; } }
.site-footer .brand__name { color: #fff; }
.site-footer .brand__tagline { color: var(--dhi-gold-300); }
.site-footer .brand:hover { text-decoration: none; }
.site-footer__about { margin: 1.1rem 0 0; max-width: 360px; }
.site-footer__title { font-family: var(--dhi-font-body); font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: var(--dhi-gold-300); margin: .6rem 0 1rem; font-weight: 600; }
.footer-menu, .footer-contact, .legal-menu, .footer-social { list-style: none; margin: 0; padding: 0; }
.footer-menu li, .footer-contact li { margin: 0 0 .6rem; }
.footer-social { display: flex; gap: .5rem; margin-top: 1.25rem; flex-wrap: wrap; }
.footer-social a { display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .25); }
.footer-social a:hover, .footer-social a:focus-visible { background: var(--dhi-gold-400); color: var(--dhi-purple-950); border-color: var(--dhi-gold-400); }
.site-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .12); font-size: .88rem; }
.site-footer__bottom-inner { display: flex; flex-wrap: wrap; gap: .75rem 2rem; justify-content: space-between; align-items: center; padding-block: 1.25rem; }
.site-footer__copy { margin: 0; color: rgba(255, 255, 255, .7); }
.site-footer__credit { margin-left: .5em; }
.legal-menu { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.legal-menu li { margin: 0; }
.legal-menu a { color: rgba(255, 255, 255, .85); }

/* 10. WooCommerce ---------------------------------------------------------- */
.section--shop { padding-block: clamp(32px, 5vw, 64px); }
.woocommerce-breadcrumb { font-size: .88rem; color: var(--dhi-muted); margin-bottom: 1.5rem !important; }
.woocommerce-breadcrumb .sep { margin: 0 .5em; color: var(--dhi-gold-700); }
.woocommerce-breadcrumb a { color: var(--dhi-purple-700); }

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce-page a.button, .woocommerce-page button.button, .wc-block-components-button:not(.is-link) {
	background: var(--dhi-gold-400); color: var(--dhi-purple-950); border-radius: 999px; padding: .85em 1.6em;
	font-weight: 600; border: 0; min-height: 48px; line-height: 1.2; transition: background-color .2s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .wc-block-components-button:not(.is-link):hover {
	background: var(--dhi-gold-300); color: var(--dhi-purple-950);
}
.woocommerce button.button:disabled, .woocommerce button.button.disabled { opacity: .5; }

.woocommerce div.product { display: flow-root; }
.woocommerce div.product div.images img { border-radius: var(--dhi-radius); background: var(--dhi-ivory); }
.woocommerce div.product .product_title { font-size: clamp(2rem, 3vw + .6rem, 3rem); margin-bottom: .3em; }
.woocommerce div.product p.price, .woocommerce div.product span.price, .woocommerce ul.products li.product .price {
	color: var(--dhi-purple-700); font-weight: 600; font-size: 1.4rem;
}
.woocommerce ul.products li.product .price { font-size: 1.05rem; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--dhi-muted); font-size: 1.05rem; }
.woocommerce div.product form.cart { margin: 1.5rem 0; display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .button { float: none; }
.woocommerce .quantity .qty { width: 4.5em; min-height: 48px; border: 1.5px solid #cfc6dc; border-radius: 12px; padding: .5em; text-align: center; }
.woocommerce div.product .product_meta { font-size: .9rem; color: var(--dhi-muted); border-top: 1px solid var(--dhi-line); padding-top: 1rem; }
.woocommerce div.product .product_meta > span { display: block; margin-bottom: .3rem; }

.woocommerce div.product .woocommerce-tabs { clear: both; padding-top: 2.5rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 1.75rem; display: flex; flex-wrap: wrap; gap: .5rem; overflow: visible; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: #fff; border: 1px solid var(--dhi-line); border-radius: 999px; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: .6em 1.2em; color: var(--dhi-purple-700); font-weight: 500; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--dhi-purple-900); border-color: var(--dhi-purple-900); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 820px; background: #fff; }
.woocommerce div.product .woocommerce-tabs .panel h2:first-child { font-size: 1.8rem; }
.woocommerce .related > h2, .woocommerce .upsells > h2 { text-align: center; margin-top: 2rem; }

.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
	background: #fff; border: 1px solid var(--dhi-line); border-radius: var(--dhi-radius); padding: 0 0 1.25rem; overflow: hidden; box-shadow: var(--dhi-shadow); text-align: left;
}
.woocommerce ul.products li.product a img { margin: 0 0 1rem; aspect-ratio: 4 / 3; object-fit: cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--dhi-font-display); font-size: 1.35rem; color: var(--dhi-purple-900); padding: 0 1.1rem; }
.woocommerce ul.products li.product .price, .woocommerce ul.products li.product .button { margin-left: 1.1rem; margin-right: 1.1rem; }

.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
	border-top-color: var(--dhi-purple-700) !important; background: var(--dhi-purple-50) !important; border-radius: 0 0 12px 12px; color: var(--dhi-ink);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--dhi-purple-700) !important; }
.woocommerce-error { border-top-color: #a3262a !important; background: #fff4f4 !important; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
	min-height: 48px; border: 1.5px solid #cfc6dc; border-radius: 12px; padding: .65rem .9rem; background: #fff;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { outline: 3px solid rgba(212, 175, 55, .5); border-color: var(--dhi-purple-700); }
.woocommerce table.shop_table { border-radius: 12px; border-color: var(--dhi-line); }
.woocommerce span.onsale { background: var(--dhi-gold-400); color: var(--dhi-purple-950); }

.woocommerce div.product form.cart .quantity:has(input[type="hidden"]) { display: none; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce #review_form #respond { max-width: 640px; }
.woocommerce #review_form #respond p { margin-bottom: 1rem; }
.woocommerce #review_form #respond label { display: block; font-weight: 600; margin-bottom: .3rem; }
.woocommerce #review_form #respond input[type="text"], .woocommerce #review_form #respond input[type="email"], .woocommerce #review_form #respond textarea, .woocommerce #review_form #respond select {
	width: 100%; min-height: 48px; border: 1.5px solid #cfc6dc; border-radius: 12px; padding: .65rem .9rem; background: #fff;
}
.woocommerce #review_form #respond .comment-form-cookies-consent label { display: inline; font-weight: 400; }
.woocommerce #review_form #respond .comment-form-cookies-consent input { width: auto; min-height: 0; }

/* 11. Motion & print ------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.dhi-btn--primary:hover, .feature-card:hover .feature-card__media img { transform: none; }
}
@media print {
	.site-header, .site-footer, .hero__wheel, .nav-toggle, .dhi-carousel__controls { display: none !important; }
	body { color: #000; }
}
