/* ==========================================================================
   Athena Boho — styles
   Layout: warm boho storefront. Arched photo frames, wine + terracotta on sand.
   Everything Athena-specific is scoped under .ath; WooCommerce pages are
   restyled under body.athena so Astra's defaults are overridden cleanly.
   ========================================================================== */

:root {
	--ath-wine: #6e1c17;
	--ath-wine-deep: #4a120f;
	--ath-terracotta: #b65d3c;
	--ath-clay: #d9a385;
	--ath-blush: #efd6c6;
	--ath-sand: #f3e7d8;
	--ath-cream: #fbf6ef;
	--ath-paper: #fffdf9;
	--ath-sage: #7f8f6e;
	--ath-sage-deep: #4f5d41;
	--ath-sage-soft: #dfe4d3;
	--ath-ink: #2e211c;
	--ath-muted: #7a6a60;
	--ath-line: #e7d8c6;
	--ath-wa: #1f9e52;

	--ath-display: "Fraunces", Georgia, "Times New Roman", serif;
	--ath-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--ath-script-font: "Caveat", "Segoe Script", cursive;

	--ath-radius: 18px;
	--ath-arch: 999px 999px 18px 18px;
	--ath-shadow: 0 18px 40px -22px rgba(74, 18, 15, .35);

	/* Tell Astra's own styles to use the Athena palette */
	--ast-global-color-0: var(--ath-wine);
	--ast-global-color-1: var(--ath-wine-deep);
	--ast-global-color-2: var(--ath-ink);
	--ast-global-color-3: var(--ath-ink);
	--ast-global-color-4: var(--ath-cream);
	--ast-global-color-5: var(--ath-paper);
	--ast-global-color-6: var(--ath-sand);
	--ast-global-color-7: var(--ath-ink);
	--ast-global-color-8: var(--ath-muted);
}

/* ---------- Base (whole site) ---------- */
body.athena {
	background: var(--ath-cream);
	color: var(--ath-ink);
	font-family: var(--ath-body);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
body.athena h1, body.athena h2, body.athena h3, body.athena h4, body.athena h5,
body.athena .entry-title, body.athena .woocommerce-loop-product__title, body.athena .product_title {
	font-family: var(--ath-display);
	font-weight: 500;
	color: var(--ath-ink);
	letter-spacing: -.01em;
	line-height: 1.15;
	text-wrap: balance;
}
body.athena a { color: var(--ath-wine); }
body.athena a:hover { color: var(--ath-terracotta); }
body.athena :focus-visible { outline: 2px solid var(--ath-terracotta); outline-offset: 2px; }
body.athena .site-content { background: transparent; }
body.athena .ast-separate-container,
body.athena.ast-separate-container { background: var(--ath-cream); }
body.athena.ast-separate-container .ast-article-single,
body.athena.ast-separate-container .ast-article-post,
body.athena.ast-separate-container .ast-woocommerce-container,
body.athena.ast-separate-container .comments-area {
	background: var(--ath-paper);
	border-radius: 24px;
}
body.athena .site-content > .ast-container { padding-top: 2.5rem; padding-bottom: 3.5rem; }

.ath, .ath * { box-sizing: border-box; }
.ath img { max-width: 100%; height: auto; display: block; }
.ath-wrap { width: min(1200px, 100% - 32px); margin-inline: auto; }
.ath-icon { width: 1.2em; height: 1.2em; flex: none; }

/* ---------- Buttons (Athena + WooCommerce) ---------- */
.ath-btn,
body.athena .woocommerce a.button, body.athena .woocommerce button.button, body.athena .woocommerce input.button,
body.athena a.button, body.athena button.button, body.athena .button,
body.athena .woocommerce #respond input#submit,
body.athena .wc-block-components-button:not(.is-link),
body.athena .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	padding: .9em 1.6em; border-radius: 999px; border: 1.5px solid transparent;
	font-family: var(--ath-body); font-weight: 600; font-size: .97rem; line-height: 1.2;
	text-decoration: none; cursor: pointer;
	transition: transform .2s, background-color .2s, color .2s, border-color .2s;
	background: var(--ath-wine); color: #fff;
}
.ath-btn:hover,
body.athena .woocommerce a.button:hover, body.athena .woocommerce button.button:hover,
body.athena a.button:hover, body.athena button.button:hover, body.athena .button:hover,
body.athena .wc-block-components-button:not(.is-link):hover {
	background: var(--ath-wine-deep); color: #fff; transform: translateY(-2px);
}
body.athena .woocommerce a.button.alt, body.athena .woocommerce button.button.alt,
body.athena .woocommerce #place_order { background: var(--ath-wine); color: #fff; }
body.athena .woocommerce button.button:disabled,
body.athena .woocommerce button.button.disabled { opacity: .55; transform: none; }

.ath .ath-btn-primary { background: var(--ath-wine); color: #fff; box-shadow: var(--ath-shadow); }
.ath .ath-btn-ghost { background: transparent; color: var(--ath-wine); border-color: var(--ath-wine); }
.ath .ath-btn-ghost:hover { background: var(--ath-wine); color: #fff; }
.ath .ath-btn-sage { background: var(--ath-sage); color: #fff; }
.ath .ath-btn-sage:hover { background: var(--ath-sage-deep); }
.ath-btn-wa, .ath .ath-btn-wa { background: var(--ath-wa); color: #fff; }
.ath-btn-wa:hover, .ath .ath-btn-wa:hover { background: #17803f; color: #fff; }

/* ---------- Type helpers ---------- */
.ath-script { font-family: var(--ath-script-font); font-size: 1.55rem; line-height: 1.1; color: var(--ath-terracotta); font-weight: 600; display: inline-block; }
.ath-script-lg { font-size: 1.75rem; margin: 0 0 1rem; }
.ath-eyebrow { display: inline-block; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ath-terracotta); font-weight: 700; margin-bottom: .8rem; }
.ath-muted { color: var(--ath-muted); }
.ath-center { text-align: center; margin-top: 2.5rem; }
.ath h1 { font-size: clamp(2.4rem, 5.2vw, 4.3rem); margin: .3rem 0 1.2rem; }
.ath h2 { font-size: clamp(1.9rem, 3.5vw, 2.9rem); margin: 0 0 .9rem; }
.ath h3 { font-size: 1.4rem; margin: 0 0 .5rem; }
.ath p { margin: 0 0 1em; }

/* ---------- Announcement + header ---------- */
.ath-announce {
	background: var(--ath-wine); color: var(--ath-blush); text-align: center;
	font-size: .85rem; padding: .55rem 16px; letter-spacing: .02em;
}
/* The wrapper is what sticks; no backdrop-filter, so the phone menu can be fixed to the screen */
.ath-chrome { position: sticky; top: 0; z-index: 99; }
body.admin-bar .ath-chrome { top: 32px; }
@media (max-width: 782px) { body.admin-bar .ath-chrome { top: 0; } }
.ath-header {
	background: var(--ath-cream);
	border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s;
}
.ath-header.is-scrolled { border-color: var(--ath-line); box-shadow: 0 6px 24px -18px rgba(74, 18, 15, .4); }
.ath-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 78px; }
.ath-logo img { height: 58px; width: auto; }
.ath-nav .ath-menu { display: flex; gap: 2rem; list-style: none; margin: 0; padding: 0; }
.ath-nav .ath-menu a {
	color: var(--ath-ink); text-decoration: none; font-weight: 500; font-size: .96rem; position: relative; padding: .3rem 0;
}
.ath-nav .ath-menu a::after {
	content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 2px; border-radius: 2px;
	background: var(--ath-terracotta); transition: right .25s;
}
.ath-nav .ath-menu a:hover::after, .ath-nav .current-menu-item > a::after { right: 0; }
.ath .ath-nav .ath-nav-close { display: none; }
.ath-header-actions { display: flex; align-items: center; gap: .2rem; }
.ath-icon-btn {
	position: relative; width: 46px; height: 46px; border-radius: 50%; border: 0; background: transparent;
	color: var(--ath-wine); display: grid; place-items: center; transition: background .2s; padding: 0; cursor: pointer;
}
.ath .ath-icon-btn { background: transparent; box-shadow: none; border: 0; min-height: 0; }
.ath .ath-icon-btn:hover, .ath .ath-icon-btn:focus { background: var(--ath-sand); color: var(--ath-wine); }
.ath-icon-btn .ath-icon { width: 24px; height: 24px; }
.ath-cart-count {
	position: absolute; top: 4px; right: 2px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px;
	background: var(--ath-terracotta); color: #fff; font-size: .72rem; font-weight: 700; line-height: 20px; text-align: center;
	transform: scale(0); transition: transform .25s cubic-bezier(.5, 1.8, .5, 1);
}
.ath-cart-count.is-on { transform: scale(1); }
.ath-cart-count.is-bump { animation: ath-bump .4s; }
@keyframes ath-bump { 50% { transform: scale(1.35); } }
.ath-menu-toggle { display: none; }
.ath-scrim { position: fixed; inset: 0; background: rgba(46, 20, 15, .45); z-index: 100; }

/* ---------- Home: hero ---------- */
.ath-main { overflow: hidden; }
.ath-hero { position: relative; padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(3rem, 7vw, 6rem); }
.ath-hero::before {
	content: ""; position: absolute; width: 720px; height: 720px; right: -180px; top: -200px; border-radius: 50%;
	background: radial-gradient(circle at 40% 40%, var(--ath-blush), transparent 65%); opacity: .8; z-index: 0; pointer-events: none;
}
.ath-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: clamp(2rem, 5vw, 4rem); }
.ath-hero-copy { min-width: 0; }
.ath-hero h1 em { font-style: italic; color: var(--ath-terracotta); }
.ath-lead { font-size: 1.15rem; color: var(--ath-muted); max-width: 32em; margin-bottom: 1.8rem; }
.ath-ctas { display: flex; flex-wrap: wrap; gap: .8rem; margin-bottom: 1.8rem; }
.ath-proof { display: flex; flex-wrap: wrap; gap: 1.4rem; font-size: .9rem; color: var(--ath-muted); }
.ath-proof span { display: inline-flex; align-items: center; gap: .45rem; }
.ath-proof .ath-icon { color: var(--ath-sage); }

.ath-hero-art { position: relative; aspect-ratio: 1 / 1.05; max-width: 560px; width: 100%; justify-self: end; }
.ath-arch {
	position: absolute; inset: 0 14% 4% 6%; border-radius: var(--ath-arch); overflow: hidden;
	box-shadow: var(--ath-shadow); border: 8px solid var(--ath-paper);
}
.ath-arch img { width: 100%; height: 100%; object-fit: cover; }
.ath-bubble { position: absolute; border-radius: 50%; overflow: hidden; border: 6px solid var(--ath-paper); box-shadow: var(--ath-shadow); aspect-ratio: 1; }
.ath-bubble img { width: 100%; height: 100%; object-fit: cover; }
.ath-b1 { width: 38%; right: 0; bottom: 6%; }
.ath-b2 { width: 26%; left: -2%; top: 8%; }
.ath-tag {
	position: absolute; left: 0; bottom: 10%; background: var(--ath-paper); border-radius: 16px; padding: .8rem 1.1rem;
	box-shadow: var(--ath-shadow); font-size: .85rem; line-height: 1.35; max-width: 210px;
}
.ath-tag b { display: block; font-family: var(--ath-display); font-size: 1.05rem; color: var(--ath-wine); font-weight: 600; }
.ath-sprig { position: absolute; right: 6%; top: -2%; width: 90px; height: 144px; color: var(--ath-sage); transform: rotate(20deg); opacity: .9; }

/* ---------- Trust strip ---------- */
.ath-trust { background: var(--ath-sand); border-block: 1px solid var(--ath-line); }
.ath-trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; padding: 1.5rem 0; }
.ath-trust-item { display: flex; gap: .85rem; align-items: center; min-width: 0; }
.ath-ti { flex: none; width: 46px; height: 46px; border-radius: 50%; background: var(--ath-paper); display: grid; place-items: center; color: var(--ath-terracotta); }
.ath-trust-item b { display: block; font-size: .95rem; }
.ath-trust-item span span, .ath-trust-item div > span { font-size: .84rem; color: var(--ath-muted); }

/* ---------- Sections ---------- */
.ath-section { padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.ath-head { display: flex; justify-content: space-between; align-items: end; gap: 1.5rem; margin-bottom: 2.4rem; flex-wrap: wrap; }
.ath-head p { color: var(--ath-muted); max-width: 36em; margin: 0; }
.ath-head-center { flex-direction: column; align-items: center; text-align: center; }

/* Category tiles */
.ath-cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.ath .ath-cat {
	position: relative; display: block; border-radius: var(--ath-arch); overflow: hidden; aspect-ratio: 3 / 4;
	color: #fff; text-decoration: none; background: var(--ath-sand);
}
.ath-cat img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.ath-cat::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(46, 20, 15, .72), transparent 55%); }
.ath-cat:hover img { transform: scale(1.06); }
.ath-cat-label { position: absolute; z-index: 1; left: 1.2rem; right: 1.2rem; bottom: 1.1rem; }
.ath-cat-label b { font-family: var(--ath-display); font-weight: 500; font-size: 1.4rem; display: block; line-height: 1.1; color: #fff; }
.ath-cat-label span { font-size: .85rem; opacity: .9; }

/* Product cards (home) */
.ath-shop { background: var(--ath-paper); }
.ath-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem 1.5rem; }
.ath-card { display: flex; flex-direction: column; min-width: 0; }
.ath-card-media { position: relative; border-radius: var(--ath-radius); overflow: hidden; aspect-ratio: 1; background: var(--ath-sand); }
.ath-card-link { position: absolute; inset: 0; display: block; }
.ath-card-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .45s, transform .6s; margin: 0; }
.ath-card-media img.ath-alt { opacity: 0; }
.ath-card:hover .ath-card-media img.ath-alt { opacity: 1; }
.ath-card:hover .ath-card-media img { transform: scale(1.04); }
.ath-badge {
	position: absolute; top: .8rem; left: .8rem; z-index: 2; background: var(--ath-paper); color: var(--ath-wine);
	font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .35rem .7rem; border-radius: 999px;
}
.ath-badge-sold { background: var(--ath-ink); color: #fff; }
.ath-card-add { position: absolute; z-index: 2; left: .8rem; right: .8rem; bottom: .8rem; opacity: 0; transform: translateY(10px); transition: all .25s; }
.ath-card:hover .ath-card-add, .ath-card-add:focus-within { opacity: 1; transform: none; }
body.athena .ath-card-add .button { width: 100%; padding: .75rem; font-size: .88rem; margin: 0; }
body.athena .ath-card-add .button.loading { opacity: .7; }
body.athena .ath-card-add .button.added::after { display: none; }
.ath-card-add .added_to_cart { display: none !important; }
.ath-card-body { padding: 1rem .2rem 0; display: flex; flex-direction: column; flex: 1; }
.ath-card-cat { font-size: .76rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ath-sage); font-weight: 700; margin-bottom: .25rem; }
.ath .ath-card-title { font-size: 1.12rem; line-height: 1.25; margin: 0 0 .35rem; }
.ath .ath-card-title a { color: var(--ath-ink); text-decoration: none; }
.ath .ath-card-title a:hover { color: var(--ath-terracotta); }
.ath-card-price { font-weight: 700; color: var(--ath-wine); }
.ath-card-price del { opacity: .55; font-weight: 400; margin-right: .3rem; }
.ath-card-price ins { text-decoration: none; }

/* Ragamuffins */
.ath-rag { background: var(--ath-sage-soft); }
.ath-rag-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.ath-rag-grid > * { min-width: 0; }
.ath-rag-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ath .ath-rag-photos a { position: relative; display: block; border-radius: var(--ath-arch); overflow: hidden; aspect-ratio: 3 / 4; box-shadow: var(--ath-shadow); }
.ath-rag-photos a:nth-child(2) { margin-top: 3rem; }
.ath-rag-photos img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.ath-rag-photos a:hover img { transform: scale(1.05); }
.ath-rag-name {
	position: absolute; bottom: .8rem; left: 50%; transform: translateX(-50%); background: var(--ath-paper);
	padding: .2rem .9rem; border-radius: 999px; font-family: var(--ath-script-font); font-size: 1.35rem; color: var(--ath-wine); white-space: nowrap;
}
.ath-ticks { list-style: none; padding: 0; margin: 1.4rem 0 2rem; }
.ath-ticks li { display: flex; gap: .7rem; margin-bottom: .6rem; }
.ath-ticks .ath-icon { color: var(--ath-sage-deep); margin-top: .25rem; }

/* Storybook */
.ath-storybook { background: var(--ath-blush); }
.ath-storybook-inner { display: grid; grid-template-columns: auto 1fr auto; gap: 2rem; align-items: center; padding: 2.5rem 0; }
.ath-storybook-inner > div { min-width: 0; }
.ath-storybook-thumbs { display: flex; }
.ath-storybook-thumbs img { width: 90px; height: 120px; object-fit: cover; border-radius: 10px; border: 4px solid var(--ath-paper); box-shadow: var(--ath-shadow); }
.ath-storybook-thumbs img:nth-child(1) { transform: rotate(-8deg); }
.ath-storybook-thumbs img:nth-child(2) { transform: rotate(3deg) translateY(-6px); margin-left: -30px; }
.ath-storybook-thumbs img:nth-child(3) { transform: rotate(10deg); margin-left: -30px; }
.ath-storybook h3 { font-size: 1.6rem; margin: .2rem 0; }
.ath-storybook p { margin: 0; color: var(--ath-muted); }

/* Custom orders */
.ath-custom { background: var(--ath-wine); color: var(--ath-blush); }
.ath .ath-custom h2, .ath .ath-custom h3 { color: #fff; }
.ath-custom .ath-eyebrow { color: var(--ath-clay); }
.ath-custom-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.ath-custom-grid > * { min-width: 0; }
.ath-steps { counter-reset: step; list-style: none; padding: 0; margin: 2rem 0; }
.ath-steps li { counter-increment: step; position: relative; padding-left: 3.4rem; margin-bottom: 1.4rem; }
.ath-steps li::before {
	content: counter(step); position: absolute; left: 0; top: -.1rem; width: 2.4rem; height: 2.4rem; border-radius: 50%;
	border: 1.5px solid var(--ath-clay); color: #fff; display: grid; place-items: center; font-family: var(--ath-display); font-size: 1.1rem;
}
.ath-steps b { color: #fff; display: block; }
.ath-steps span { font-size: .95rem; opacity: .85; }
.ath-custom .ath-btn-ghost { border-color: var(--ath-clay); color: #fff; }
.ath-custom .ath-btn-ghost:hover { background: var(--ath-clay); color: var(--ath-wine-deep); }
.ath-note { margin-top: 1.5rem; font-size: .9rem; opacity: .8; }
.ath-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; }
.ath-gallery figure { margin: 0; position: relative; border-radius: 14px; overflow: hidden; aspect-ratio: 3 / 4; background: var(--ath-wine-deep); }
.ath-gallery figure:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.ath-gallery img { width: 100%; height: 100%; object-fit: cover; }
.ath-gallery figcaption {
	position: absolute; inset: auto 0 0 0; padding: 1.6rem .8rem .7rem; font-size: .8rem; line-height: 1.3; color: #fff;
	background: linear-gradient(to top, rgba(0, 0, 0, .7), transparent);
}

/* Story */
.ath-story-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.ath-story-grid > * { min-width: 0; }
.ath-story-photo { position: relative; }
.ath-story-photo > img { border-radius: var(--ath-arch); box-shadow: var(--ath-shadow); width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ath-stamp {
	position: absolute; right: -1rem; bottom: 2rem; width: 150px; height: 150px; border-radius: 50%; background: var(--ath-paper);
	display: grid; place-items: center; box-shadow: var(--ath-shadow); padding: 14px;
}
.ath blockquote {
	margin: 1.8rem 0; padding: 1.2rem 1.4rem; border: 0; border-left: 3px solid var(--ath-terracotta); background: var(--ath-sand);
	border-radius: 0 14px 14px 0; font-family: var(--ath-display); font-style: italic; font-size: 1.15rem; color: var(--ath-wine);
}

/* Help + contact */
.ath-help { background: var(--ath-paper); }
.ath-help-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); }
.ath-help-grid > * { min-width: 0; }
.ath-faq details { border-bottom: 1px solid var(--ath-line); padding: 1.1rem 0; }
.ath-faq summary { cursor: pointer; font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.ath-faq summary::-webkit-details-marker { display: none; }
.ath-faq summary::after { content: "+"; font-family: var(--ath-display); font-size: 1.5rem; line-height: 1; color: var(--ath-terracotta); transition: transform .25s; }
.ath-faq details[open] summary::after { transform: rotate(45deg); }
.ath-faq details p { margin: .8rem 0 0; color: var(--ath-muted); }
.ath-contact { background: var(--ath-sand); border-radius: 24px; padding: clamp(1.6rem, 4vw, 2.6rem); align-self: start; }
.ath .ath-contact h3 { font-size: 1.8rem; margin-top: .4rem; }
.ath-contact-list { list-style: none; padding: 0; margin: 1.4rem 0 1.8rem; }
.ath-contact-list li { display: flex; gap: .9rem; margin-bottom: 1rem; align-items: flex-start; overflow-wrap: anywhere; }
.ath-contact-list .ath-icon { color: var(--ath-terracotta); margin-top: .2rem; }
.ath-contact-list a { text-decoration: none; }

/* ---------- Footer ---------- */
.ath-footer { background: var(--ath-wine-deep); color: var(--ath-blush); padding: 4rem 0 2rem; font-size: .93rem; }
.ath-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2rem; }
.ath-footer-grid > * { min-width: 0; }
.ath.ath-footer h4 { color: #fff; font-family: var(--ath-body); font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; margin: 0 0 1rem; }
.ath-footer ul { list-style: none; padding: 0; margin: 0; }
.ath-footer li { margin-bottom: .5rem; overflow-wrap: anywhere; }
.ath.ath-footer a { color: var(--ath-blush); text-decoration: none; opacity: .88; }
.ath.ath-footer a:hover { opacity: 1; color: #fff; }
.ath-footer-logo { background: var(--ath-cream); border-radius: 16px; padding: .6rem 1rem; display: inline-block; margin-bottom: 1rem; }
.ath-footer-logo img { height: 64px; width: auto; }
.ath-socials { display: flex; gap: .6rem; margin-top: 1rem; }
.ath.ath-footer .ath-socials a { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .1); opacity: 1; }
.ath.ath-footer .ath-socials a:hover { background: var(--ath-terracotta); }
.ath-footer-bottom { border-top: 1px solid rgba(239, 214, 198, .2); margin-top: 3rem; padding-top: 1.5rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; opacity: .75; font-size: .85rem; }

/* ---------- Toast ---------- */
.ath-toast {
	position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, calc(100% + 40px)); visibility: hidden; z-index: 999;
	background: var(--ath-ink); color: #fff; padding: .85rem 1.3rem; border-radius: 20px; font-size: .92rem; line-height: 1.4;
	display: flex; gap: .4rem 1rem; align-items: center; flex-wrap: wrap; justify-content: center; text-align: center;
	transition: transform .35s, visibility .35s;
	box-shadow: 0 12px 30px -10px rgba(0, 0, 0, .45); width: max-content; max-width: min(560px, calc(100% - 32px));
}
.ath-toast.is-on { transform: translate(-50%, 0); visibility: visible; }
.ath.ath-toast a { color: var(--ath-clay); font-weight: 700; white-space: nowrap; }

/* ---------- Reveal on scroll (content is visible unless JS opts an item in) ---------- */
.ath-reveal { transition: opacity .8s, transform .8s; }
.ath-reveal.is-pre { opacity: .001; transform: translateY(24px); }

/* ==========================================================================
   WooCommerce pages
   ========================================================================== */

/* Free delivery meter (basket + checkout) */
.ath-meter { background: var(--ath-sand); border-radius: 16px; padding: 1rem 1.2rem; margin: 0 0 1.5rem; font-size: .95rem; }
.ath-meter-bar { display: block; height: 8px; border-radius: 4px; background: var(--ath-paper); margin-top: .55rem; overflow: hidden; }
.ath-meter-bar i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--ath-clay), var(--ath-terracotta)); }

/* Shop + category pages */
body.athena .woocommerce-products-header__title.page-title,
body.athena .ast-archive-title { font-size: clamp(2rem, 4vw, 3rem); }
body.athena .woocommerce ul.products li.product,
body.athena ul.products li.product { text-align: left; }
body.athena ul.products li.product .astra-shop-thumbnail-wrap,
body.athena ul.products li.product a img { border-radius: var(--ath-radius); overflow: hidden; }
body.athena ul.products li.product a img { aspect-ratio: 1; object-fit: cover; background: var(--ath-sand); transition: transform .5s; }
body.athena ul.products li.product:hover a img { transform: scale(1.03); }
body.athena ul.products li.product .woocommerce-loop-product__title { font-size: 1.12rem; color: var(--ath-ink); margin-top: .4rem; }
body.athena ul.products li.product .ast-woo-product-category { font-size: .74rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ath-sage); font-weight: 700; }
body.athena ul.products li.product .price,
body.athena .woocommerce ul.products li.product .price { color: var(--ath-wine); font-weight: 700; font-size: 1rem; }
body.athena ul.products li.product .button { margin-top: .6rem; padding: .7rem 1.2rem; font-size: .88rem; }
body.athena .woocommerce span.onsale, body.athena span.onsale,
body.athena .ast-shop-product-out-of-stock, body.athena .ast-onsale-card {
	background: var(--ath-ink); color: #fff; border-radius: 999px; font-family: var(--ath-body); font-weight: 700;
	font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; min-height: 0; line-height: 1; padding: .45rem .75rem;
}
body.athena .woocommerce-ordering select,
body.athena .woocommerce .woocommerce-ordering select {
	border: 1.5px solid var(--ath-line); background-color: var(--ath-paper); border-radius: 999px; padding: .5rem 2rem .5rem 1rem; font-family: var(--ath-body);
}
body.athena .woocommerce-pagination ul.page-numbers li .page-numbers { border-radius: 50%; }
body.athena .woocommerce-pagination ul.page-numbers li span.current { background: var(--ath-wine); color: #fff; border-color: var(--ath-wine); }
body.athena .woocommerce-breadcrumb, body.athena .ast-breadcrumbs { font-size: .85rem; color: var(--ath-muted); }

/* Single product */
body.athena .woocommerce div.product div.images img,
body.athena div.product div.images .woocommerce-product-gallery__image img { border-radius: 20px; }
body.athena div.product .flex-control-thumbs li img { border-radius: 10px; }
body.athena div.product .product_title { font-size: clamp(1.8rem, 3vw, 2.6rem); margin-bottom: .5rem; }
body.athena div.product p.price, body.athena div.product span.price,
body.athena .woocommerce div.product p.price { color: var(--ath-wine); font-weight: 700; font-size: 1.5rem; }
body.athena div.product .woocommerce-product-details__short-description { color: var(--ath-muted); }
body.athena div.product form.cart { margin: 1.4rem 0; }
body.athena div.product form.cart .button { padding: 1em 2.2em; font-size: 1rem; }
body.athena .quantity .qty { border-radius: 999px; border: 1.5px solid var(--ath-line); min-height: 48px; }
body.athena div.product .stock.out-of-stock { color: var(--ath-terracotta); }
.ath-pill {
	display: inline-block; font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	background: var(--ath-sage-soft); color: var(--ath-sage-deep); padding: .35rem .8rem; border-radius: 999px; margin: 0 0 1rem;
}
.ath-pill-sold { background: var(--ath-ink); color: #fff; }
.ath-perks { list-style: none; padding: 1rem 0; margin: 0 0 1rem; border-block: 1px solid var(--ath-line); display: grid; gap: .5rem; font-size: .9rem; color: var(--ath-muted); }
.ath-perks li { display: flex; gap: .6rem; align-items: center; margin: 0; }
.ath-perks .ath-icon { color: var(--ath-sage); }
.ath-ask { font-size: .9rem; }
body.athena .woocommerce-tabs ul.tabs li a { font-family: var(--ath-body); font-weight: 600; }
body.athena .woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ath-wine); }
body.athena .woocommerce div.product .woocommerce-tabs ul.tabs li.active:before,
body.athena .woocommerce div.product .woocommerce-tabs ul.tabs li.active::before { background: var(--ath-terracotta); }
body.athena .related.products > h2, body.athena .up-sells > h2 { font-size: 1.8rem; }

/* Basket + checkout */
body.athena .woocommerce table.shop_table { border-radius: 18px; border-color: var(--ath-line); background: var(--ath-paper); }
body.athena .woocommerce table.shop_table td, body.athena .woocommerce table.shop_table th { border-color: var(--ath-line); }
body.athena .woocommerce table.cart img { border-radius: 10px; }
body.athena .woocommerce .cart-collaterals .cart_totals,
body.athena .woocommerce-checkout #order_review,
body.athena .wc-block-components-sidebar { background: var(--ath-paper); border-radius: 20px; }
body.athena .woocommerce form .form-row input.input-text,
body.athena .woocommerce form .form-row textarea,
body.athena .woocommerce form .form-row select,
body.athena .wc-block-components-text-input input,
body.athena .select2-container--default .select2-selection--single {
	border-radius: 12px; border: 1.5px solid var(--ath-line); background-color: var(--ath-paper);
}
body.athena .woocommerce form .form-row input.input-text:focus,
body.athena .wc-block-components-text-input input:focus { border-color: var(--ath-terracotta); box-shadow: none; }
body.athena .woocommerce-message, body.athena .woocommerce-info, body.athena .woocommerce-error,
body.athena .wc-block-components-notice-banner {
	border-radius: 14px; border: 0; border-left: 4px solid var(--ath-sage); background: var(--ath-sage-soft); color: var(--ath-ink);
}
body.athena .woocommerce-error, body.athena .wc-block-components-notice-banner.is-error { border-left-color: var(--ath-terracotta); background: var(--ath-blush); }
body.athena .woocommerce-message::before, body.athena .woocommerce-info::before { color: var(--ath-sage-deep); }

/* Pages built with Elementor or the editor keep their own layout, just in Athena's fonts */
body.athena .entry-content { font-size: 1.02rem; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.ath-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 980px) {
	.ath-hero-grid, .ath-rag-grid, .ath-custom-grid, .ath-story-grid, .ath-help-grid { grid-template-columns: 1fr; }
	.ath-hero-art { justify-self: center; max-width: 460px; }
	.ath-trust-grid, .ath-cat-grid { grid-template-columns: repeat(2, 1fr); }
	.ath-footer-grid { grid-template-columns: 1fr 1fr; }
	.ath-storybook-inner { grid-template-columns: 1fr; text-align: center; justify-items: center; }
	.ath-story-photo { max-width: 460px; }
}
@media (max-width: 860px) {
	.ath-menu-toggle { display: grid; }
	.ath-nav {
		position: fixed; top: 0; left: 0; bottom: 0; width: min(320px, 85%); background: var(--ath-cream); z-index: 101;
		padding: 4.5rem 1.6rem 2rem; transform: translateX(-105%); transition: transform .35s; box-shadow: var(--ath-shadow); overflow-y: auto;
	}
	.ath-nav.is-open { transform: none; }
	body.admin-bar .ath-nav { top: 32px; }
	.ath-nav .ath-menu { flex-direction: column; gap: 0; }
	.ath-nav .ath-menu a { display: block; font-family: var(--ath-display); font-size: 1.45rem; padding: .7rem 0; border-bottom: 1px solid var(--ath-line); }
	.ath-nav .ath-menu a::after { display: none; }
	.ath .ath-nav .ath-nav-close { display: grid; position: absolute; top: 1rem; right: 1rem; }
	.ath-account { display: none; }
}
@media (max-width: 782px) {
	body.admin-bar .ath-nav { top: 46px; }
}
@media (max-width: 760px) {
	body.athena { font-size: 16px; }
	.ath-logo img { height: 48px; }
	.ath-header-inner { height: 68px; }
	.ath-grid { grid-template-columns: repeat(2, 1fr); gap: 1.6rem 1rem; }
	.ath .ath-card-title { font-size: 1rem; }
	.ath-card-add { opacity: 1; transform: none; left: .5rem; right: .5rem; bottom: .5rem; }
	body.athena .ath-card-add .button { padding: .55rem; font-size: .8rem; }
	.ath-card:hover .ath-card-media img.ath-alt { opacity: 0; }
	.ath-gallery { grid-template-columns: repeat(2, 1fr); }
	.ath-gallery figure:first-child { grid-column: span 2; grid-row: auto; aspect-ratio: 4 / 3; }
	.ath-trust-item div > span { display: none; }
	.ath-tag { display: none; }
	.ath-head { margin-bottom: 1.6rem; }
}
@media (max-width: 420px) {
	.ath-cat-label b { font-size: 1.15rem; }
	.ath-footer-grid { grid-template-columns: 1fr; }
	.ath-rag-photos a:nth-child(2) { margin-top: 1.5rem; }
	.ath-stamp { width: 110px; height: 110px; right: -.4rem; }
}
@media (prefers-reduced-motion: reduce) {
	.ath *, .ath *::before, .ath *::after { transition: none !important; animation: none !important; }
	.ath-reveal.is-pre { opacity: 1; transform: none; }
}

/* ---------- Optional Elementor area on the home page ---------- */
.ath-elementor-area:empty { display: none; }
.ath-elementor-area { position: relative; }
