/*
Theme Name: Willowroot Grove
Theme URI: https://willowrootwands.com/
Author: Dependent Media
Author URI: https://dependentmedia.com/
Description: "Willow & Root" for Willowroot Wands. The night willow at the top (a wand you can draw with), parchment pages in the middle, glowing roots and crystals underground. Block theme with WooCommerce; pages are editable core blocks.
Version: 1.1.0
Requires at least: 6.6
Requires PHP: 8.1
License: Proprietary (client theme)
Text Domain: willowroot-grove
*/

:root {
	--night: #15122b; --dusk: #2a2150; --violet: #5b2a86; --amethyst: #b48ce6; --willow: #4f6b35; --willow-light: #b8cf8f;
	--pewter: #c7ccd4; --moon: #f4ecd6; --parchment: #f3ead6; --parchment-deep: #e6d8b8; --ink: #2b2236; --candle: #e7b955; --root: #f0a35e;
	--earth: #17110d; --line: rgba(43, 34, 54, .16); --glass: rgba(21, 18, 43, .82);
	--fell: 'IM Fell English', 'Iowan Old Style', Georgia, serif; --uncial: 'Uncial Antiqua', 'IM Fell English', Georgia, serif;
	--r: 18px; --shadow: 0 14px 40px -18px rgba(21, 18, 43, .55);
}

/* ------------------------------------------------------------------ base */
html { background: var(--night); scroll-padding-top: 6rem; }
body { background: var(--night); overflow-x: clip; }
.wp-site-blocks { background: var(--parchment); }
img, svg { max-width: 100%; height: auto; }
[hidden] { display: none !important; }
:where(a) { text-underline-offset: .18em; text-decoration-thickness: 1px; }
:where(p, li) a { text-decoration-line: underline; }
:focus-visible { outline: 3px solid var(--candle); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--amethyst); color: var(--night); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wrw-eyebrow, .wrw-eyebrow a { font-family: var(--uncial); font-size: .82rem; letter-spacing: .08em; text-transform: none; color: var(--willow); text-decoration: none; }
.wrw-main { margin-block-start: 0 !important; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.wrw-main > * { margin-block-start: 0; }
.wp-element-button, .wp-block-button__link { transition: background .2s, transform .2s, box-shadow .2s; }
.wp-element-button:hover, .wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 8px 20px -10px var(--violet); }
.is-style-outline > .wp-block-button__link { border: 2px solid currentColor; background: transparent; color: inherit; }

/* ------------------------------------------------------------------ header */
.wrw-header { position: sticky; top: 0; z-index: 50; background: linear-gradient(180deg, #0f0d22 0%, var(--night) 100%); color: var(--moon); }
.admin-bar .wrw-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .wrw-header { top: 0; position: relative; } }
.wrw-header a { color: var(--moon); }
.wrw-header__sky { padding: .3rem clamp(1rem, 4vw, 2.5rem); font-size: .88rem; border-bottom: 1px solid rgba(244, 236, 214, .1); gap: .25rem 1.5rem; }
.wrw-header__sky p { margin: 0; }
.wrw-sky { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .6rem; color: var(--pewter); }
.wrw-sky__moon { display: inline-flex; align-items: center; gap: .45rem; }
.wrw-sky__sabbat { color: var(--candle); }
.wrw-moon-icon__dark { fill: #2c2850; stroke: rgba(244, 236, 214, .35); stroke-width: .6; }
.wrw-moon-icon__lit { fill: var(--moon); }
.wrw-header__call { color: var(--pewter); }
.wrw-header__call a { color: var(--moon); font-weight: 700; }
.wrw-header__bar { padding: .55rem clamp(1rem, 4vw, 2.5rem); gap: 1rem; max-width: 92rem; margin: 0 auto; }
.wrw-logo { display: inline-flex; flex-direction: column; text-decoration: none; line-height: 1; flex: 0 0 auto; }
.wrw-logo img { width: clamp(170px, 18vw, 250px); height: auto; display: block; filter: drop-shadow(0 0 10px rgba(180, 140, 230, .45)); }
.wrw-logo__tag { font-family: var(--uncial); font-size: .72rem; letter-spacing: .06em; color: var(--willow-light); margin-top: .3rem; padding-left: .2rem; }
.wrw-nav { font-size: 1.04rem; font-weight: 600; }
.wrw-nav .wp-block-navigation-item__content { padding: .45rem .2rem; }
.wrw-nav .wp-block-navigation__container { gap: .4rem 1.4rem; }
.wrw-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { position: relative; }
.wrw-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: .15rem; height: 2px; border-radius: 2px; background: var(--candle); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.wrw-nav > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.wrw-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:focus-visible::after { transform: scaleX(1); }
/* small dropdowns: text under the parent's text, opening right, with a hover bridge */
.wrw-nav .wp-block-navigation__submenu-container { background: rgba(21, 18, 43, .96) !important; border: 1px solid rgba(180, 140, 230, .28) !important; border-radius: 14px; padding: .5rem 0 !important; min-width: 15.5rem !important; left: -.9rem !important; top: calc(100% + .45rem) !important; box-shadow: 0 24px 50px -20px #000; }
.wrw-nav .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -.6rem; height: .6rem; }
.wrw-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .42rem 1.1rem !important; font-weight: 500; color: var(--moon); }
.wrw-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--candle); background: rgba(180, 140, 230, .12); }
.wrw-nav .wp-block-navigation__responsive-container.is-menu-open { background: radial-gradient(120% 80% at 50% 0%, #2a2150, var(--night)) !important; color: var(--moon) !important; padding: 1.5rem; }
.wrw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; border: 0 !important; box-shadow: none; backdrop-filter: none; padding: 0 0 .5rem 1rem !important; }
.wrw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.15rem; }
.wrw-nav .wp-block-navigation__responsive-container-open, .wrw-nav .wp-block-navigation__responsive-container-close { color: var(--moon); }
.wrw-nav .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.wrw-header__tools { gap: .35rem; align-items: center; }
.wrw-search .wp-block-search__button { background: transparent; color: var(--moon); border: 0; padding: .45rem; }
.wrw-search .wp-block-search__button svg { fill: currentColor; width: 26px; height: 26px; }
.wrw-search .wp-block-search__input { border-radius: 999px; border: 1px solid var(--amethyst); background: #fff; color: var(--ink); padding: .4rem .9rem; min-width: 14rem; }
.wrw-search.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper { border: 0; }
.wrw-tools__keep { display: inline-flex; align-items: center; gap: .3rem; background: transparent; color: var(--moon); border: 0; padding: .45rem; cursor: pointer; font: inherit; font-size: .92rem; border-radius: 999px; }
.wrw-tools__keep:hover { color: var(--candle); }
.wrw-tools__count { min-width: 1.35rem; height: 1.35rem; border-radius: 999px; display: inline-grid; place-items: center; font-size: .78rem; font-weight: 700; background: var(--amethyst); color: var(--night); padding: 0 .3rem; }
.wrw-tools__count[data-zero] { background: rgba(244, 236, 214, .18); color: var(--moon); }
.wrw-tools__label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.wrw-account a, .wrw-account svg { color: var(--moon); fill: var(--moon); }
.wrw-account .wc-block-customer-account__account-icon { width: 26px; height: 26px; }
.wrw-cart .wc-block-mini-cart__button { color: var(--moon); padding: .45rem; }
.wrw-cart .wc-block-mini-cart__badge { background: var(--candle); color: var(--night); font-weight: 700; }
.wc-block-mini-cart__drawer .wc-block-components-drawer { background: var(--parchment); color: var(--ink); }
@media (max-width: 1100px) { .wrw-header__call { display: none; } }
@media (max-width: 600px) {
	.wrw-header__sky { font-size: .8rem; justify-content: center !important; }
	.wrw-logo__tag { display: none; }
	.wrw-header__bar { gap: .4rem; }
	.wrw-search { display: none; }
}

/* ------------------------------------------------------------------ page band (night sky title) + parchment leaf */
.wrw-band { position: relative; isolation: isolate; color: var(--moon); background: radial-gradient(120% 140% at 70% 0%, #3b2c74 0%, var(--dusk) 35%, var(--night) 75%); padding-block: clamp(2.5rem, 7vw, 4.5rem) clamp(4rem, 9vw, 6.5rem) !important; overflow: hidden; }
.wrw-band::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: clamp(40px, 6vw, 70px); background: var(--parchment); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0 70V40c60-18 110 14 170 4s90-34 160-30 100 30 170 26 110-36 180-34 100 34 170 30 110-32 180-30 100 26 170 24 80-18 120-20 60 12 120 4V70z'/%3E%3C/svg%3E") bottom / 100% 100% no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0 70V40c60-18 110 14 170 4s90-34 160-30 100 30 170 26 110-36 180-34 100 34 170 30 110-32 180-30 100 26 170 24 80-18 120-20 60 12 120 4V70z'/%3E%3C/svg%3E") bottom / 100% 100% no-repeat; z-index: 1; }
.wrw-band__stars { position: absolute; inset: 0; z-index: -1; opacity: .85; background-image:
	radial-gradient(1.5px 1.5px at 12% 22%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 27% 64%, #fff 50%, transparent 51%),
	radial-gradient(1.5px 1.5px at 41% 18%, #f4ecd6 50%, transparent 51%), radial-gradient(1px 1px at 55% 46%, #fff 50%, transparent 51%),
	radial-gradient(2px 2px at 68% 28%, #e7b955 50%, transparent 51%), radial-gradient(1px 1px at 79% 58%, #fff 50%, transparent 51%),
	radial-gradient(1.5px 1.5px at 88% 16%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 6% 70%, #f4ecd6 50%, transparent 51%),
	radial-gradient(1px 1px at 35% 82%, #fff 50%, transparent 51%), radial-gradient(1.5px 1.5px at 94% 72%, #b48ce6 50%, transparent 51%);
	animation: wrw-twinkle 6s ease-in-out infinite alternate; }
@keyframes wrw-twinkle { from { opacity: .45; } to { opacity: 1; } }
.wrw-band__title, .wrw-band h1 { color: var(--moon) !important; text-align: center; max-width: 52rem; margin-inline: auto !important; text-shadow: 0 0 24px rgba(180, 140, 230, .45); }
.wrw-band .wrw-crumbs, .wrw-band .woocommerce-breadcrumb { color: var(--pewter); font-size: .92rem; text-align: center; }
.wrw-band .wrw-crumbs a, .wrw-band .woocommerce-breadcrumb a { color: var(--moon); }
.wrw-band--slim { padding-block: 1.1rem 3.4rem !important; }
.wrw-band--slim .wrw-crumbs { text-align: left; max-width: 76rem; margin-inline: auto; }
.wrw-leaf { position: relative; background: #fbf6ea; border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow); padding: clamp(1.4rem, 4vw, 3rem) clamp(1.1rem, 4vw, 3.2rem) !important; margin-block: clamp(-2.5rem, -3vw, -1.5rem) clamp(2.5rem, 6vw, 4.5rem) !important; z-index: 2; max-width: 52rem !important; }
.wrw-leaf--wide { max-width: 76rem !important; }
.wrw-leaf::before, .wrw-leaf::after { content: "❧"; content: "❧" / ""; position: absolute; top: .55rem; font-size: 1.3rem; color: var(--parchment-deep); line-height: 1; }
.wrw-leaf::before { left: .8rem; transform: scaleX(-1); }
.wrw-leaf::after { right: .8rem; }
.wrw-page .wrw-leaf .wp-block-post-content > p:first-child::first-letter { font-family: var(--uncial); float: left; font-size: 3.4em; line-height: .9; padding: .08em .12em 0 0; color: var(--violet); }
.wrw-leaf h2, .wrw-leaf h3 { margin-block-start: 1.8em; }
.wrw-leaf h2:first-child, .wrw-leaf h3:first-child { margin-block-start: 0; }
.wrw-leaf blockquote, .wrw-quote { border-left: 3px solid var(--amethyst); margin-inline: 0; padding: .3rem 0 .3rem 1.2rem; font-style: italic; }
.wrw-leaf hr, .wrw-rule { border: 0; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 18'%3E%3Cpath d='M0 9h48M72 9h48' stroke='%23b8a988' stroke-width='1'/%3E%3Cpath d='M60 2l3 7-3 7-3-7z' fill='%235b2a86'/%3E%3C/svg%3E") center / 120px 18px no-repeat; margin-block: 2rem; }

/* ------------------------------------------------------------------ home: hero */
.wrw-hero { position: relative; isolation: isolate; color: var(--moon); min-height: clamp(560px, 88vh, 860px); display: flex; flex-direction: column; justify-content: center; padding-block: clamp(3rem, 8vw, 6rem) clamp(5rem, 10vw, 8rem) !important; background: radial-gradient(90% 90% at 75% 10%, #3d2f7a 0%, #241c4e 38%, var(--night) 78%); overflow: hidden; }
.wrw-hero > .wp-block-group, .wrw-hero > h1, .wrw-hero > p { position: relative; z-index: 2; }
.wrw-hero .wrw-grove { position: absolute !important; inset: 0; z-index: 1; max-width: none !important; margin: 0 !important; }
.wrw-hero__copy { max-width: 36rem !important; margin-left: max(clamp(1rem, 4vw, 2.5rem), calc((100% - 76rem) / 2)) !important; margin-right: auto !important; pointer-events: none; }
.wrw-hero__copy > * { pointer-events: auto; }
.wrw-hero h1 { color: var(--moon); font-size: clamp(2.3rem, 5.4vw, 4.2rem); line-height: 1.04; text-shadow: 0 2px 30px rgba(21, 18, 43, .9); }
.wrw-hero h1 em { color: var(--candle); font-style: italic; }
.wrw-hero__lede { font-size: clamp(1.1rem, 1.6vw, 1.3rem); color: var(--moon); text-shadow: 0 1px 14px var(--night); max-width: 32rem; }
.wrw-hero .wp-block-button__link { background: var(--candle); color: var(--night); }
.wrw-hero .wp-block-button__link:hover { background: var(--moon); color: var(--night); }
.wrw-hero .is-style-outline > .wp-block-button__link { background: rgba(21, 18, 43, .4); color: var(--moon); border-color: var(--moon); }
.wrw-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 70px; background: var(--parchment); z-index: 3; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0 70V30c80 22 140-10 230 0s140 30 230 22 140-34 240-30 150 32 250 30 140-28 230-26 100 18 260 4v40z'/%3E%3C/svg%3E") bottom / 100% 100% no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0 70V30c80 22 140-10 230 0s140 30 230 22 140-34 240-30 150 32 250 30 140-28 230-26 100 18 260 4v40z'/%3E%3C/svg%3E") bottom / 100% 100% no-repeat; }
.wrw-grove { position: relative; }
.wrw-grove__canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; touch-action: pan-y; }
.wrw-spells .wrw-grove__canvas { cursor: crosshair; }
.wrw-grove__ui { position: absolute; right: max(clamp(1rem, 4vw, 2.5rem), calc((100% - 76rem) / 2)); bottom: 5.2rem; width: min(25rem, calc(100% - 2rem)); display: grid; gap: .6rem; z-index: 3; }
.wrw-grove__hint { margin: 0; font-size: .95rem; color: var(--pewter); background: rgba(21, 18, 43, .8); border: 1px solid rgba(180, 140, 230, .3); border-radius: 14px; padding: .65rem .9rem; }
.wrw-grove__hint b { color: var(--candle); font-weight: 700; }
.wrw-grove__hint-wand { display: inline-block; width: 1.6rem; height: .35rem; margin-right: .5rem; vertical-align: middle; border-radius: 4px; background: linear-gradient(90deg, #8d939d, #e9ecf0 70%, var(--candle)); box-shadow: 0 0 10px var(--candle); transform: rotate(-30deg); }
.wrw-grove__cast { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; font-size: .88rem; }
.wrw-grove__cast-label { color: var(--pewter); margin-right: .2rem; }
.wrw-grove__cast button { font: inherit; font-weight: 600; color: var(--moon); background: rgba(91, 42, 134, .55); border: 1px solid rgba(180, 140, 230, .45); border-radius: 999px; padding: .28rem .8rem; cursor: pointer; }
.wrw-grove__cast button:hover { background: var(--violet); border-color: var(--candle); }
.wrw-spell:empty { display: none; }
.wrw-spell { background: rgba(244, 236, 214, .95); color: var(--ink); border-radius: 16px; padding: .9rem 1rem; box-shadow: 0 20px 50px -20px #000, 0 0 0 1px rgba(231, 185, 85, .6); animation: wrw-spell-in .5s cubic-bezier(.2, 1.4, .4, 1); }
.wrw-spell__glyph { float: left; width: 46px; height: 46px; margin: 0 .7rem .2rem 0; color: var(--violet); }
.wrw-spell__name { font-family: var(--fell); font-size: 1.35rem; color: var(--violet); margin: 0; line-height: 1.1; }
.wrw-spell__line { margin: .25rem 0 .5rem; font-style: italic; font-size: .98rem; }
.wrw-spell a { font-weight: 700; color: var(--violet); }
@keyframes wrw-spell-in { from { transform: translateY(14px) scale(.96); opacity: 0; } }
@media (max-width: 760px) {
	.wrw-hero { min-height: 0; justify-content: flex-start; padding-block: 2.5rem 1.5rem !important; }
	.wrw-hero__copy { margin-left: clamp(1rem, 4vw, 2.5rem) !important; }
	.wrw-hero .wrw-grove { position: relative !important; inset: auto; height: 440px; margin: 1.2rem calc(-1 * clamp(1rem, 4vw, 2.5rem)) 0 !important; }
	.wrw-grove__ui { left: 1rem; right: 1rem; width: auto; bottom: 4.6rem; }
	.wrw-grove__hint { font-size: .88rem; }
}

/* ------------------------------------------------------------------ home: sections */
.wrw-sec { padding-block: clamp(3rem, 8vw, 5.5rem) !important; position: relative; }
.wrw-sec--night { background: radial-gradient(100% 120% at 20% 0%, #2d2358 0%, var(--night) 70%); color: var(--moon); }
.wrw-sec--night h2, .wrw-sec--night h3 { color: var(--moon); }
.wrw-sec--night a:not(.wp-block-button__link) { color: var(--candle); }
.wrw-sec--night .wrw-eyebrow { color: var(--willow-light); }
.wrw-sec--sage { background: linear-gradient(180deg, #eef0e2, #e4e8d2); }
.wrw-sec__head { text-align: center; max-width: 44rem !important; margin-inline: auto !important; }
.wrw-sec__head h2 { margin-block: .3rem .6rem; }
.wrw-sec__head p { margin: 0 auto; }

/* wand rack: a shelf of wands to pick up */
.wrw-rack { list-style: none; margin: 2rem 0 0; padding: 0 0 1.2rem; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(200px, 1fr); gap: 1.1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
@media (min-width: 1200px) { .wrw-rack { grid-auto-flow: row; grid-template-columns: repeat(6, 1fr); overflow: visible; } }
.wrw-rack__item { position: relative; scroll-snap-align: start; }
.wrw-rack__link { display: grid; text-decoration: none; color: inherit; background: #fffaf0; border-radius: 120px 120px 14px 14px; padding: .55rem .55rem 1rem; box-shadow: var(--shadow); border: 1px solid var(--line); transition: transform .35s cubic-bezier(.2, 1.3, .4, 1), box-shadow .3s; height: 100%; }
.wrw-rack__img { display: block; border-radius: 110px 110px 10px 10px; overflow: hidden; aspect-ratio: 1; background: var(--dusk); }
.wrw-rack__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.wrw-rack__name { font-family: var(--fell); font-size: 1.15rem; color: var(--violet); margin: .7rem .4rem .1rem; line-height: 1.15; }
.wrw-rack__price { margin: 0 .4rem; font-size: .95rem; }
.wrw-rack__link:hover, .wrw-rack__link:focus-visible { transform: translateY(-10px) rotate(-1deg); box-shadow: 0 24px 40px -18px var(--violet), 0 0 0 2px var(--candle); }
.wrw-rack__link:hover img { transform: scale(1.06); }
.wrw-rack .wrw-keep { position: absolute; top: .9rem; right: .9rem; }

/* shortlist heart */
.wrw-keep { display: inline-flex; align-items: center; gap: .45rem; font: inherit; cursor: pointer; border-radius: 999px; border: 1px solid rgba(91, 42, 134, .35); background: rgba(255, 250, 240, .92); color: var(--violet); padding: .4rem; line-height: 1; }
.wrw-keep svg { fill: transparent; stroke: currentColor; stroke-width: 2; transition: transform .3s, fill .3s; }
.wrw-keep[aria-pressed="true"] svg { fill: #c2457a; stroke: #c2457a; transform: scale(1.15); }
.wrw-keep:hover { border-color: var(--violet); }
.wrw-keep--big { padding: .6rem 1.1rem; font-weight: 700; margin-top: .4rem; }
.wrw-keep--big[aria-pressed="true"] .wrw-keep__text::after { content: " ✓"; }
.wp-block-woocommerce-product-template .wrw-keep { position: absolute; top: .7rem; right: .7rem; z-index: 2; }

/* finder */
.wrw-finder { display: grid; gap: 1.4rem; margin-top: 2rem; }
.wrw-finder__step { border: 0; margin: 0; padding: 0; }
.wrw-finder__step legend { font-family: var(--fell); font-size: clamp(1.3rem, 2.4vw, 1.65rem); color: inherit; margin-bottom: .7rem; display: flex; align-items: center; gap: .6rem; }
.wrw-finder__num { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--candle); color: var(--night); font-family: var(--uncial); font-size: 1rem; flex: none; }
.wrw-finder__opts { display: flex; flex-wrap: wrap; gap: .5rem; }
.wrw-finder__opt { position: relative; }
.wrw-finder__opt input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.wrw-finder__opt span { display: inline-block; padding: .5rem 1rem; border-radius: 999px; border: 1px solid rgba(180, 140, 230, .55); background: rgba(244, 236, 214, .06); font-weight: 600; transition: all .2s; }
.wrw-finder__opt input:hover + span { border-color: var(--candle); }
.wrw-finder__opt input:checked + span { background: var(--amethyst); color: var(--night); border-color: var(--amethyst); box-shadow: 0 0 18px rgba(180, 140, 230, .6); }
.wrw-finder__opt input:focus-visible + span { outline: 3px solid var(--candle); outline-offset: 2px; }
.wrw-finder__go { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }
.wrw-finder__go .wp-element-button { background: var(--candle); color: var(--night); border: 0; cursor: pointer; }
.wrw-finder__reset { background: none; border: 0; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; }
.wrw-finder__results:empty { display: none; }
.wrw-finder__results h3 { margin: .5rem 0 1rem; }
.wrw-finder__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1rem; }
.wrw-finder__card { position: relative; background: #fffaf0; color: var(--ink); border-radius: 110px 110px 14px 14px; padding: .5rem .5rem 1rem; box-shadow: var(--shadow); animation: wrw-rise .5s backwards; }
.wrw-finder__card:nth-child(2) { animation-delay: .07s; } .wrw-finder__card:nth-child(3) { animation-delay: .14s; } .wrw-finder__card:nth-child(4) { animation-delay: .21s; } .wrw-finder__card:nth-child(5) { animation-delay: .28s; } .wrw-finder__card:nth-child(6) { animation-delay: .35s; }
.wrw-finder__card img { border-radius: 100px 100px 10px 10px; aspect-ratio: 1; object-fit: cover; width: 100%; display: block; }
.wrw-finder__card a { color: var(--violet) !important; font-family: var(--fell); font-size: 1.15rem; text-decoration: none; display: block; margin: .6rem .4rem .1rem; }
.wrw-finder__card p { margin: 0 .4rem; font-size: .9rem; }
.wrw-finder__why { color: var(--willow); font-style: italic; }
.wrw-finder__card .wrw-keep { position: absolute; top: .8rem; right: .8rem; }
.wrw-finder__note { margin-top: 1rem; font-style: italic; }
@keyframes wrw-rise { from { opacity: 0; transform: translateY(18px); } }

/* made: the root line from Abby's drawing table to your door */
.wrw-made { position: relative; display: grid; gap: clamp(1.5rem, 4vw, 2.6rem); margin-top: 2.2rem; padding-left: clamp(2.4rem, 6vw, 4.5rem); }
.wrw-made__line { position: absolute; left: clamp(.6rem, 2vw, 1.4rem); top: 0; bottom: 0; width: 40px; height: 100%; overflow: visible; }
.wrw-made__line path { fill: none; stroke-linecap: round; }
.wrw-made__line .bg { stroke: #cbbd99; stroke-width: 6; }
.wrw-made__line .glow { stroke: var(--root); stroke-width: 4; }
.wrw-made__step { position: relative; }
.wrw-made__step::before { content: ""; position: absolute; left: calc(-1 * clamp(2.4rem, 6vw, 4.5rem) + clamp(.6rem, 2vw, 1.4rem) + 12px); top: .45rem; width: 16px; height: 16px; border-radius: 50%; background: var(--parchment); border: 3px solid var(--willow); transition: background .4s, box-shadow .4s; }
.wrw-made__step.is-lit::before { background: var(--candle); border-color: var(--root); box-shadow: 0 0 16px var(--candle); }
.wrw-made__step h3 { margin: 0 0 .3rem; font-size: clamp(1.3rem, 2.3vw, 1.6rem); }
.wrw-made__step p { margin: 0; max-width: 40rem; }
.wrw-made__smoke { display: inline-block; width: 26px; height: 32px; vertical-align: -6px; margin-left: .4rem; }
.wrw-made__smoke path { fill: none; stroke: #9aa39a; stroke-width: 2; stroke-linecap: round; animation: wrw-smoke 3.2s ease-in-out infinite; transform-origin: bottom; }
.wrw-made__smoke path:nth-child(2) { animation-delay: -1.6s; }
@keyframes wrw-smoke { 0% { opacity: 0; transform: translateY(8px) scaleX(.6); } 40% { opacity: .9; } 100% { opacity: 0; transform: translateY(-10px) scaleX(1.3); } }
.wrw-altar { border-radius: 200px 200px 16px 16px; overflow: hidden; box-shadow: var(--shadow); border: 6px solid #fffaf0; }
.wrw-altar img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }

/* arches (categories) */
.wrw-arches { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 165px), 1fr)); gap: 1.1rem; }
.wrw-arch { display: grid; text-decoration: none; color: inherit; text-align: center; }
.wrw-arch__img { display: block; aspect-ratio: 4 / 5; border-radius: 999px 999px 10px 10px; overflow: hidden; border: 3px solid #fffaf0; box-shadow: 0 0 0 1px var(--line), var(--shadow); background: var(--dusk); position: relative; }
.wrw-arch__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(21, 18, 43, .55)); opacity: 0; transition: opacity .3s; }
.wrw-arch__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.wrw-arch:hover .wrw-arch__img img { transform: scale(1.07); }
.wrw-arch:hover .wrw-arch__img::after { opacity: 1; }
.wrw-arch__name { font-family: var(--fell); font-size: 1.12rem; line-height: 1.15; color: var(--violet); margin-top: .6rem; }
.wrw-arch__count { font-size: .85rem; color: var(--willow); }
.wrw-sec--night .wrw-arch__name { color: var(--moon); }
.wrw-sec--night .wrw-arch__count { color: var(--willow-light); }

/* customer notes */
.wrw-notes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 1.6rem; margin-top: 2rem; }
.wrw-note { position: relative; background: #fffaf0 !important; color: var(--ink); padding: 1.6rem 1.4rem 1.2rem !important; border-radius: 4px; box-shadow: var(--shadow); transform: rotate(-1.2deg); }
.wrw-note:nth-child(even) { transform: rotate(1deg); }
.wrw-note::before { content: ""; position: absolute; top: -10px; left: 50%; width: 70px; height: 22px; margin-left: -35px; background: rgba(184, 207, 143, .75); transform: rotate(-3deg); }
.wrw-note p { margin: 0 0 .6rem; }
.wrw-note p:last-child { font-family: var(--fell); font-style: italic; color: var(--violet); margin: 0; }

/* Wheel of the Year */
.wrw-wheel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(1.5rem, 5vw, 3.5rem); align-items: center; margin-top: 1.5rem; }
@media (max-width: 760px) { .wrw-wheel { grid-template-columns: 1fr; } }
.wrw-wheel__dial svg { width: 100%; max-width: 420px; display: block; margin: 0 auto; overflow: visible; }
.wrw-wheel__rim { fill: rgba(244, 236, 214, .04); stroke: rgba(231, 185, 85, .55); stroke-width: 2; }
.wrw-wheel__inner { fill: none; stroke: rgba(180, 140, 230, .35); stroke-dasharray: 3 6; animation: wrw-spin 120s linear infinite; transform-origin: center; }
@keyframes wrw-spin { to { transform: rotate(360deg); } }
.wrw-wheel__spokes line { stroke: rgba(244, 236, 214, .18); }
.wrw-wheel__spokes text { fill: var(--moon); font-family: var(--uncial); font-size: 12px; text-anchor: middle; dominant-baseline: middle; }
.wrw-wheel__spokes .is-next text { fill: var(--candle); }
.wrw-wheel__spokes circle { fill: var(--dusk); stroke: var(--amethyst); stroke-width: 1.5; }
.wrw-wheel__spokes .is-next circle { fill: var(--candle); stroke: var(--root); }
.wrw-wheel__today line { stroke: var(--candle); stroke-width: 2; stroke-dasharray: 2 5; }
.wrw-wheel__today circle { fill: var(--root); }
.wrw-wheel__hub > circle { fill: var(--night); stroke: rgba(244, 236, 214, .3); }
.wrw-wheel__next { font-family: var(--fell); font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.15; margin: .3rem 0 1rem; }
.wrw-wheel__next b { color: var(--candle); font-weight: 400; }
.wrw-wheel__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.wrw-wheel__list li { display: grid; grid-template-columns: 6.5rem 1fr; gap: .8rem; padding: .45rem 0; border-bottom: 1px solid rgba(244, 236, 214, .12); font-size: .95rem; }
.wrw-wheel__list li.is-next { color: var(--candle); }
.wrw-wheel__list b { font-family: var(--uncial); font-weight: 400; }
.wrw-wheel__list span { color: var(--pewter); }
.wrw-wheel__list li.is-next span { color: var(--moon); }

/* the keeper (Kim) */
.wrw-keeper img { border-radius: 50% 50% 18px 18px / 40% 40% 18px 18px; box-shadow: var(--shadow); border: 6px solid #fffaf0; }
.wrw-badges { list-style: none; padding: 0; margin: 1.2rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.wrw-badges li { font-size: .9rem; border: 1px solid var(--line); border-radius: 999px; padding: .3rem .8rem; background: #fffaf0; }

/* ------------------------------------------------------------------ footer: the roots */
.wrw-footer { position: relative; background: linear-gradient(180deg, #1d1611 0%, var(--earth) 40%, #0e0a10 100%); color: #e9dfc8; padding-block: 0 2rem !important; overflow: hidden; }
.wrw-footer a { color: var(--moon); }
.wrw-footer a:hover { color: var(--candle); }
.wrw-roots { margin: 0 calc(-1 * var(--wp--style--root--padding-right, 2.5rem)) 0 calc(-1 * var(--wp--style--root--padding-left, 2.5rem)) !important; max-width: none !important; height: clamp(120px, 18vw, 260px); background: var(--parchment); }
.wrw-roots svg { width: 100%; height: 100%; display: block; background: linear-gradient(180deg, var(--parchment) 0%, #cdb98f 6%, #4a3626 16%, #1d1611 40%); }
.wrw-roots__light path { stroke: var(--root); stroke-width: 2.4; stroke-dasharray: 60 900; animation: wrw-sap 7s linear infinite; opacity: .9; }
.wrw-roots__light path:nth-child(2) { animation-delay: -2s; } .wrw-roots__light path:nth-child(3) { animation-delay: -4s; stroke: var(--candle); } .wrw-roots__light path:nth-child(4) { animation-delay: -1s; } .wrw-roots__light path:nth-child(5) { animation-delay: -5s; }
@keyframes wrw-sap { from { stroke-dashoffset: 960; } to { stroke-dashoffset: 0; } }
.wrw-roots__crystals .c1 { fill: #b48ce6; } .wrw-roots__crystals .c2 { fill: #e7a6c0; } .wrw-roots__crystals .c3 { fill: #9fd3d6; } .wrw-roots__crystals .c4 { fill: #e7b955; }
.wrw-roots__crystals > * { animation: wrw-gleam 4s ease-in-out infinite alternate; }
.wrw-roots__crystals > :nth-child(2n) { animation-delay: -2s; }
@keyframes wrw-gleam { from { opacity: .45; } to { opacity: 1; } }
.wrw-footer__cols { margin-top: 1rem; gap: 2rem !important; }
.wrw-footer__h { font-family: var(--uncial); font-size: 1.05rem; color: var(--willow-light) !important; margin-bottom: .6rem; }
.wrw-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: .35rem; }
.wrw-footer__links a { text-decoration: none; }
.wrw-footer__links a:hover { text-decoration: underline; }
.wrw-logo--footer img { width: 220px; }
.wrw-social { gap: .7rem !important; margin-top: 1rem !important; }
.wrw-footer__base { border-top: 1px solid rgba(233, 223, 200, .14); margin-top: 2rem !important; padding-top: 1.2rem; font-size: .92rem; color: #cfc3a8; }
.wrw-footer__base p { margin: 0; }
.wrw-footer__blessing { font-family: var(--fell); font-style: italic; font-size: 1.15rem; color: var(--candle); }
.wrw-contact { display: grid; gap: .8rem; }
.wrw-contact__line { margin: 0; display: grid; gap: .1rem; }
.wrw-contact__line .wrw-eyebrow { color: var(--willow-light); }
.wrw-contact__note { font-size: .88rem; color: #cfc3a8; }
.wrw-leaf .wrw-contact__line .wrw-eyebrow { color: var(--willow); }
.wrw-leaf .wrw-contact__note { color: var(--ink); }

/* ------------------------------------------------------------------ shop */
.wrw-band--shop { padding-block: 1.2rem 4.2rem !important; }
.wrw-band--shop .wrw-crumbs { margin-bottom: .4rem; }
.wrw-shop-intro { max-width: 44rem; margin: .4rem auto 0; text-align: center; color: var(--pewter); }
.wrw-shop-intro p { margin: .4rem 0; }
.wrw-shop-intro a { color: var(--candle); }
.wrw-shop__body { padding-block: 1.5rem 4rem; }
.wrw-shop-h { text-align: center; margin: 2.2rem 0 0; }
.wrw-shop-h:first-child { margin-top: .5rem; }
.wrw-shop__bar { margin-top: 1.5rem; align-items: center; font-size: .95rem; }
.wrw-shop__bar select { font: inherit; border-radius: 999px; border: 1px solid var(--line); padding: .35rem .8rem; background: #fffaf0; }
.wrw-products .wc-block-product-template { gap: 1.4rem !important; }
.wrw-products .wc-block-product { position: relative; background: #fffaf0; border: 1px solid var(--line); border-radius: 120px 120px 14px 14px; padding: .5rem .5rem 1.1rem; box-shadow: 0 10px 28px -20px rgba(21, 18, 43, .6); text-align: center; transition: transform .3s cubic-bezier(.2, 1.3, .4, 1), box-shadow .3s; display: flex; flex-direction: column; }
.wrw-products .wc-block-product:hover { transform: translateY(-6px); box-shadow: 0 22px 40px -22px var(--violet), 0 0 0 2px rgba(231, 185, 85, .7); }
.wrw-products .wc-block-components-product-image { border-radius: 110px 110px 10px 10px; overflow: hidden; margin-bottom: .6rem !important; }
.wrw-products .wc-block-components-product-image img { aspect-ratio: 1; object-fit: cover; }
.wrw-card__title { font-family: var(--fell); font-size: 1.15rem !important; line-height: 1.2; margin: .2rem .5rem .3rem !important; }
.wrw-card__title a { color: var(--violet); text-decoration: none; }
.wrw-products .wc-block-components-product-price { font-size: 1rem; margin-bottom: .6rem; }
.wrw-products .wp-block-woocommerce-product-button { margin-top: auto; }
.wrw-products .wp-block-button__link, .wrw-products .wc-block-components-product-button__button { border-radius: 999px !important; background: var(--violet) !important; color: var(--moon) !important; font-weight: 700; padding: .55rem 1.2rem !important; font-size: .98rem !important; }
.wrw-products .wc-block-components-product-button__button:hover { background: var(--ink) !important; }
.wp-block-query-pagination { margin-top: 2rem; font-size: 1.05rem; gap: .5rem; }
.wp-block-query-pagination .page-numbers { padding: .3rem .7rem; border-radius: 999px; }
.wp-block-query-pagination .page-numbers.current { background: var(--violet); color: var(--moon); }
.wc-block-components-product-sale-badge { background: var(--candle); color: var(--night); border: 0; border-radius: 999px; }

/* single product */
.wrw-product__sheet { position: relative; z-index: 2; background: #fbf6ea; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); margin-top: -2.4rem !important; padding: clamp(1rem, 3vw, 2.4rem); margin-bottom: 3rem !important; }
.wrw-product__top { gap: clamp(1.4rem, 4vw, 3rem) !important; }
.wrw-product__media .woocommerce-product-gallery { margin: 0 !important; }
.wrw-product__media .woocommerce-product-gallery__wrapper > div:first-child, .wrw-product__media .flex-viewport { border-radius: 200px 200px 12px 12px; overflow: hidden; box-shadow: 0 0 0 1px var(--line); }
.wrw-product__media .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(5, 1fr); gap: .5rem; margin-top: .6rem !important; }
.wrw-product__media .flex-control-thumbs li { width: auto !important; margin: 0 !important; }
.wrw-product__media .flex-control-thumbs img { border-radius: 8px; opacity: .65; transition: opacity .2s; }
.wrw-product__media .flex-control-thumbs img.flex-active, .wrw-product__media .flex-control-thumbs img:hover { opacity: 1; box-shadow: 0 0 0 2px var(--candle); }
.wrw-product__media .woocommerce-product-gallery__trigger { background: #fffaf0; border-radius: 50%; }
.wrw-product__cats { margin: 0; }
.wrw-product__cats a { text-decoration: none; }
.wrw-product__title { font-size: clamp(2rem, 4.2vw, 3rem) !important; margin: .2rem 0 .3rem !important; }
.wrw-sku { margin: 0; font-size: .9rem; }
.wrw-sku span { font-family: var(--uncial); color: var(--willow); font-size: .8rem; }
.wrw-product__price { font-size: 1.6rem !important; font-weight: 700; margin: .4rem 0 !important; color: var(--ink); }
.wrw-product__buy table.variations { border: 0; margin: .5rem 0 1rem; width: 100%; }
.wrw-product__buy table.variations th, .wrw-product__buy table.variations td { display: block; padding: 0; border: 0; text-align: left; background: none; }
.wrw-product__buy table.variations th label { font-family: var(--fell); font-size: 1.15rem; color: var(--violet); }
.wrw-product__buy table.variations td { margin-bottom: .9rem; }
.wrw-product__buy select { font: inherit; padding: .5rem .8rem; border-radius: 10px; border: 1px solid var(--line); background: #fff; min-width: 14rem; max-width: 100%; }
.wrw-product__buy .reset_variations { font-size: .9rem; margin-left: .5rem; }
.wrw-product__buy .quantity input { width: 4.2rem; font: inherit; padding: .55rem; border-radius: 10px; border: 1px solid var(--line); text-align: center; }
.wrw-product__buy .single_add_to_cart_button, .wrw-store .button, .wrw-store button.button, .wrw-store .checkout-button, .wrw-store #place_order { background: var(--violet) !important; color: var(--moon) !important; border-radius: 999px !important; font-weight: 700 !important; padding: .75rem 1.6rem !important; border: 0 !important; font-size: 1.05rem !important; cursor: pointer; }
.wrw-product__buy .single_add_to_cart_button:hover, .wrw-store .button:hover { background: var(--ink) !important; }
.wrw-product__buy .single_add_to_cart_button.disabled { opacity: .55; }
.wrw-product__buy form.cart { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.wrw-product__buy form.variations_form { display: block; }
.wrw-product__buy .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.wrw-product__buy .woocommerce-variation-price { font-size: 1.3rem; font-weight: 700; margin-bottom: .5rem; }
/* stone swatches (built over the select by site.js; the select stays for the form) */
.wrw-swatches { display: flex; flex-wrap: wrap; gap: .45rem; margin: .1rem 0 .4rem; }
.wrw-swatch { display: inline-flex; align-items: center; gap: .45rem; font: inherit; font-size: .95rem; padding: .35rem .8rem .35rem .4rem; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; transition: all .2s; }
.wrw-swatch--plain { padding-left: .8rem; }
.wrw-swatch:hover { border-color: var(--violet); }
.wrw-swatch[aria-checked="true"] { border-color: var(--violet); box-shadow: 0 0 0 2px var(--violet); background: #f6efff; font-weight: 700; }
.wrw-swatch[aria-disabled="true"] { opacity: .4; text-decoration: line-through; }
.wrw-gem { width: 22px; height: 22px; border-radius: 50%; flex: none; box-shadow: inset -3px -4px 6px rgba(0, 0, 0, .28), inset 3px 3px 5px rgba(255, 255, 255, .65), 0 0 0 1px rgba(0, 0, 0, .15); }
.wrw-has-swatches select { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.wrw-trust { list-style: none; padding: 1rem 0 0; margin: 1.2rem 0 0; border-top: 1px solid var(--line); display: grid; gap: .35rem; font-size: .98rem; }
.wrw-trust li { padding-left: 1.6rem; position: relative; }
.wrw-trust li::before { content: "✦"; content: "✦" / ""; position: absolute; left: 0; color: var(--candle); text-shadow: 0 0 1px var(--violet); }
.wrw-ship-note { font-size: .92rem; margin: .7rem 0 0; color: var(--willow); }
.wrw-product__story { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.wrw-product__story-h { text-align: center; }
.wrw-product__related { padding-bottom: 3rem; }
.wrw-product__related h2 { text-align: center; }
.wrw-product__related .wc-block-product { position: relative; background: #fffaf0; border: 1px solid var(--line); border-radius: 120px 120px 14px 14px; padding: .5rem .5rem 1rem; text-align: center; }
.wrw-product__related .wc-block-components-product-image { border-radius: 110px 110px 10px 10px; overflow: hidden; }
.wrw-product__related .wp-block-post-title a { color: var(--violet); text-decoration: none; font-family: var(--fell); }
.wrw-product__related .wp-block-button__link, .wrw-product__related .wc-block-components-product-button__button { border-radius: 999px; background: var(--violet); color: var(--moon); }
@media (max-width: 781px) { .wrw-product__sheet { margin-top: -2rem !important; } .wrw-product__media .woocommerce-product-gallery__wrapper > div:first-child, .wrw-product__media .flex-viewport { border-radius: 140px 140px 12px 12px; } }

/* cart / checkout / account (classic shortcodes) */
.wrw-store .wrw-leaf--wide { max-width: 76rem !important; }
.wrw-store table.shop_table { border-collapse: collapse; width: 100%; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #fff; }
.wrw-store table.shop_table th, .wrw-store table.shop_table td { padding: .8rem; border-top: 1px solid var(--line); text-align: left; }
.wrw-store table.shop_table th { font-family: var(--fell); font-weight: 400; color: var(--violet); }
.wrw-store img { border-radius: 8px; }
.wrw-store input.input-text, .wrw-store select, .wrw-store textarea, .woocommerce-account input.input-text { font: inherit; padding: .6rem .8rem; border-radius: 10px; border: 1px solid #b8a988; background: #fff; width: 100%; box-sizing: border-box; }
.wrw-store .form-row { margin: 0 0 1rem; }
.wrw-store .form-row label { display: block; font-weight: 600; margin-bottom: .25rem; }
.wrw-store .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
@media (max-width: 760px) { .wrw-store .col2-set { grid-template-columns: 1fr; } }
.wrw-store #order_review_heading { margin-top: 2rem; }
.wrw-store #payment { background: #f6efff; border-radius: 12px; padding: 1rem; }
.wrw-store #payment ul.payment_methods { list-style: none; padding: 0; margin: 0 0 1rem; }
.wrw-store #payment .payment_box { background: #fff; border-radius: 10px; padding: .8rem; margin: .5rem 0; font-size: .95rem; }
.wrw-store .cart-collaterals { margin-top: 2rem; }
.wrw-store .cart_totals { max-width: 30rem; margin-left: auto; }
.wrw-store .woocommerce-message, .wrw-store .woocommerce-info, .wrw-store .woocommerce-error, .woocommerce-notices-wrapper .woocommerce-message { list-style: none; background: #f6efff; border-left: 4px solid var(--violet); padding: .9rem 1rem; border-radius: 8px; margin: 0 0 1.2rem; }
.wrw-store .woocommerce-error { border-color: #a3263b; background: #fdecee; }
.wrw-store .coupon { display: none; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.woocommerce-MyAccount-navigation a { display: inline-block; padding: .35rem .9rem; border-radius: 999px; border: 1px solid var(--line); text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--violet); color: var(--moon); }

/* ------------------------------------------------------------------ forms (Ninja Forms) */
.wrw-form .nf-form-content { padding: 0; max-width: none; }
.wrw-form .nf-field-label label { font-weight: 700; color: var(--ink); }
.wrw-form .nf-form-content input:not([type=submit]):not([type=checkbox]):not([type=radio]), .wrw-form .nf-form-content textarea, .wrw-form .nf-form-content select { background: #fff !important; border: 1px solid #b8a988 !important; border-radius: 10px !important; color: var(--ink) !important; font: inherit !important; padding: .6rem .8rem !important; height: auto; }
.wrw-form .nf-form-content textarea { min-height: 9rem; }
.wrw-form .nf-form-content input[type=submit] { background: var(--violet) !important; color: var(--moon) !important; border: 0 !important; border-radius: 999px !important; padding: .8rem 1.8rem !important; font: 700 1.05rem/1 Alegreya, Georgia, serif !important; cursor: pointer; height: auto !important; }
.wrw-form .nf-form-content input[type=submit]:hover { background: var(--ink) !important; }
.wrw-form .nf-field-description { font-size: .9rem; color: var(--willow); }
.wrw-form .nf-error-msg, .wrw-form .ninja-forms-req-symbol { color: #a3263b; }
.wrw-form .nf-form-fields-required { font-size: .9rem; margin-bottom: .8rem; }
.wrw-form .list-radio-wrap ul, .wrw-form .listradio-wrap ul { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; }
.wrw-form .nf-response-msg { display: none; }
.wrw-thanks { position: relative; text-align: center; background: radial-gradient(120% 120% at 50% 0%, #3b2c74, var(--night) 75%); color: var(--moon); border-radius: 20px; padding: 2.5rem 1.5rem; overflow: hidden; animation: wrw-spell-in .6s cubic-bezier(.2, 1.4, .4, 1); }
.wrw-thanks h3 { color: var(--candle); font-size: clamp(1.8rem, 4vw, 2.6rem); margin: .3rem 0 .6rem; }
.wrw-thanks p { max-width: 32rem; margin: .4rem auto; }
.wrw-thanks a { color: var(--candle); }
.wrw-thanks canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.wrw-thanks__moon { width: 70px; height: 70px; margin: 0 auto; border-radius: 50%; background: var(--moon); box-shadow: 0 0 40px var(--candle); position: relative; }
.wrw-thanks__moon::after { content: ""; position: absolute; inset: 0 0 0 22px; border-radius: 50%; background: #3b2c74; transform: translateX(14px); }

/* ------------------------------------------------------------------ pause pill + shortlist drawer */
.wrw-pause { position: fixed; left: 1rem; bottom: 1rem; z-index: 60; display: inline-flex; align-items: center; gap: .5rem; padding: .55rem 1rem .55rem .8rem; border-radius: 999px; border: 1px solid rgba(231, 185, 85, .6); background: rgba(21, 18, 43, .94); color: var(--moon); font: 600 .92rem/1 Alegreya, Georgia, serif; cursor: pointer; box-shadow: 0 10px 30px -12px #000; }
.wrw-pause:hover { border-color: var(--candle); color: var(--candle); }
.wrw-pause svg { fill: currentColor; }
.wrw-pause__icon--play { display: none; }
.wrw-paused .wrw-pause__icon--play { display: block; }
.wrw-paused .wrw-pause__icon--pause { display: none; }
@media (max-width: 600px) { .wrw-pause { left: .6rem; bottom: .6rem; font-size: .85rem; padding: .5rem .8rem .5rem .65rem; } }
.wrw-shortlist { border: 0; padding: 0; margin: 0 0 0 auto; height: 100dvh; max-height: 100dvh; width: min(28rem, 100vw); background: var(--parchment); color: var(--ink); box-shadow: -20px 0 60px -20px #000; }
.wrw-shortlist::backdrop { background: rgba(15, 13, 34, .6); backdrop-filter: blur(2px); }
.wrw-shortlist[open] { animation: wrw-slide .35s cubic-bezier(.2, 1, .3, 1); }
@keyframes wrw-slide { from { transform: translateX(100%); } }
.wrw-shortlist__inner { padding: 1.4rem 1.3rem 2rem; position: relative; }
.wrw-shortlist__inner h2 { font-size: 1.9rem; margin: .2rem 2.5rem .6rem 0; }
.wrw-shortlist__close { position: absolute; top: 1rem; right: 1rem; background: none; border: 0; cursor: pointer; color: var(--ink); padding: .3rem; }
.wrw-shortlist__advice { font-style: italic; border-left: 3px solid var(--amethyst); padding-left: .9rem; font-size: .98rem; }
.wrw-shortlist__advice span { display: block; font-style: normal; font-size: .82rem; color: var(--willow); margin-top: .2rem; }
.wrw-shortlist__list { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .8rem; }
.wrw-shortlist__item { display: grid; grid-template-columns: 72px 1fr auto; gap: .8rem; align-items: center; background: #fffaf0; border-radius: 14px; padding: .5rem; border: 1px solid var(--line); }
.wrw-shortlist__item img { width: 72px; height: 72px; object-fit: cover; border-radius: 40px 40px 8px 8px; }
.wrw-shortlist__item a { font-family: var(--fell); font-size: 1.12rem; color: var(--violet); text-decoration: none; }
.wrw-shortlist__item p { margin: .1rem 0 0; font-size: .86rem; }
.wrw-shortlist__item .is-ready { color: var(--willow); font-weight: 700; }
.wrw-shortlist__remove { background: none; border: 0; color: var(--ink); cursor: pointer; padding: .3rem; font-size: 1.3rem; line-height: 1; }

/* ------------------------------------------------------------------ reveal + motion off */
.wrw-js .wrw-reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s ease, transform .8s cubic-bezier(.2, .9, .3, 1); }
.wrw-js .wrw-reveal.is-in { opacity: 1; transform: none; }
.wrw-paused *, .wrw-paused *::before, .wrw-paused *::after { animation-play-state: paused !important; }
.wrw-paused .wrw-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) { .wrw-js .wrw-reveal { transition-duration: .01s; } }

/* ------------------------------------------------------------------ layout fixes: home sections go wide, no gaps between bands */
.wrw-home .wp-block-post-content > * { margin-block: 0; }
.wrw-sec > :where(.wrw-rack, .wrw-arches, .wrw-finder, .wrw-wheel, .wp-block-columns, .wrw-notes, .wp-block-buttons, h3) { max-width: var(--wp--style--global--wide-size) !important; }
.wrw-sec > .wrw-finder { max-width: 62rem !important; }
.wrw-sec__sub { text-align: center; margin-top: 3rem !important; }
.wrw-hero .wrw-eyebrow { color: var(--willow-light); }
.wrw-arch__img { aspect-ratio: 1 / 1.08; }
.wrw-page--wide .wrw-wide-content > *:not(.alignfull):not(.wrw-sec) { max-width: var(--wp--style--global--wide-size); }
.wrw-page--wide .wrw-wide-content > .wp-block-columns { margin-block: clamp(-2.5rem, -3vw, -1.5rem) 3rem !important; position: relative; z-index: 2; background: #fbf6ea; border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow); padding: clamp(1.2rem, 4vw, 2.6rem); gap: 2.4rem; }
.wrw-page--wide .wrw-wide-content > p { margin-inline: auto; }
.wrw-stars-list { list-style: none; padding-left: 0; display: grid; gap: .35rem; }
.wrw-stars-list li { padding-left: 1.5rem; position: relative; }
.wrw-stars-list li::before { content: "✦"; content: "✦" / ""; position: absolute; left: 0; color: var(--candle); text-shadow: 0 0 1px var(--violet); }
.wrw-leaf .wrw-stars-list { grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); column-gap: 1.5rem; }
.wrw-letter { background: #f6efff; border-left: 4px solid var(--amethyst) !important; border-radius: 0 12px 12px 0; padding: 1.2rem 1.4rem !important; font-style: normal !important; }
.wrw-letter cite { display: block; margin-top: .6rem; font-family: var(--fell); font-style: italic; color: var(--violet); }
.wrw-elements { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; margin-block: 1.4rem; }
.wrw-element { border-radius: 14px; padding: 1rem 1.1rem !important; color: var(--ink); border: 1px solid var(--line); position: relative; overflow: hidden; }
.wrw-element h3 { margin: 0 0 .3rem !important; font-family: var(--uncial); font-size: 1.15rem; }
.wrw-element p { margin: 0; font-size: .98rem; }
.wrw-element--air { background: linear-gradient(160deg, #f4f6fb, #e3e8f6); } .wrw-element--air h3 { color: #3f5a9a; }
.wrw-element--earth { background: linear-gradient(160deg, #f1f0e2, #e1e3c8); } .wrw-element--earth h3 { color: var(--willow); }
.wrw-element--fire { background: linear-gradient(160deg, #fbefe4, #f5dcc4); } .wrw-element--fire h3 { color: #a2441a; }
.wrw-element--water { background: linear-gradient(160deg, #e8f4f4, #d3e9ea); } .wrw-element--water h3 { color: #1f6670; }
.wrw-leaf .wp-block-details { border-bottom: 1px solid var(--line); padding: .9rem 0; }
.wrw-leaf .wp-block-details summary { font-family: var(--fell); font-size: 1.3rem; color: var(--violet); cursor: pointer; list-style: none; position: relative; padding-right: 2rem; }
.wrw-leaf .wp-block-details summary::-webkit-details-marker { display: none; }
.wrw-leaf .wp-block-details summary::after { content: "✦"; content: "✦" / ""; position: absolute; right: .3rem; top: .1rem; color: var(--candle); transition: transform .3s; }
.wrw-leaf .wp-block-details[open] summary::after { transform: rotate(135deg); }
.wrw-leaf .wp-block-details > p { margin: .6rem 0 0; }
.wrw-about-img img { border-radius: 24px; box-shadow: var(--shadow); }
.wrw-contact-side { background: #f3ead6; border-radius: 14px; padding: 1.2rem !important; }
.wrw-product__buy table.variations { margin-bottom: .2rem; }
.wrw-product__buy table.variations th { padding-bottom: .3rem; line-height: 1.2; }
.wrw-product__buy table.variations td { margin-bottom: .2rem; }
.wrw-product__buy .reset_variations { font-size: .88rem; display: inline-block; }
.wrw-contact__line .wrw-eyebrow { color: var(--willow); }
.wrw-contact__note { color: var(--ink); font-size: .88rem; }
.wrw-footer .wrw-contact__line .wrw-eyebrow { color: var(--willow-light); }
.wrw-footer .wrw-contact__note { color: #cfc3a8; }
.wrw-thanks__moon { background: transparent; box-shadow: inset -20px 8px 0 0 var(--moon); filter: drop-shadow(0 0 14px var(--candle)); transform: rotate(-20deg); }
.wrw-thanks__moon::after { display: none; }
.wrw-cart--plain .wc-block-mini-cart__button { position: relative; display: inline-flex; color: var(--moon); padding: .45rem; }
.wrw-cart--plain .wc-block-mini-cart__badge { position: absolute; top: 0; right: -.2rem; min-width: 1.2rem; height: 1.2rem; border-radius: 999px; display: grid; place-items: center; font-size: .72rem; }
.wc-block-components-notice-banner { border-radius: 10px; }
.wrw-product__buy .single_add_to_cart_button.disabled, .wrw-product__buy .single_add_to_cart_button:disabled { opacity: 1 !important; background: #6b5a78 !important; color: #fff !important; cursor: not-allowed; }
.show-password-input { min-width: 28px; min-height: 28px; }
.wrw-has-swatches { position: relative; }
.wrw-has-swatches select { min-width: 0 !important; max-width: 1px !important; left: 0; top: 0; clip-path: inset(50%); overflow: hidden; }
/* mobile polish */
.has-modal-open .wrw-pause { display: none; }
.wrw-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-family: var(--uncial); color: var(--candle); font-size: 1.2rem; }
.wrw-nav .is-menu-open .wp-block-navigation__container { gap: 1.4rem; }
.wrw-tools__keep svg { flex: none; }
@media (max-width: 600px) {
	.wrw-search { display: block; }
	.wrw-logo img { width: 148px; }
	.wrw-header__tools { gap: 0; }
	.wrw-header__tools .wrw-search .wp-block-search__button, .wrw-tools__keep, .wrw-cart .wc-block-mini-cart__button { padding: .4rem .3rem; }
	.wrw-search.wp-block-search__button-only:not(.wp-block-search__searchfield-hidden) { position: absolute; left: 1rem; right: 1rem; top: 100%; z-index: 5; }
	.wrw-search .wp-block-search__input { min-width: 0; }
}
.wrw-footer { padding-bottom: 4.5rem !important; }
.wrw-wheel__spokes text { font-size: 11.5px; }
.wrw-cart .wc-block-mini-cart__button, .wrw-tools__keep, .wrw-search .wp-block-search__button, .wrw-account a { min-width: 32px; min-height: 32px; justify-content: center; }
@media (max-width: 400px) { .wrw-logo img { width: 126px; } .wrw-header__bar { padding-inline: .7rem; } .wrw-cart--plain .wc-block-mini-cart__button { padding: .4rem .2rem; } }
.wrw-nav .wrw-nav-mobile-only { display: none; }
.wrw-nav .is-menu-open .wrw-nav-mobile-only { display: block; }
@media (max-width: 440px) { .wrw-header__tools .wrw-account { display: none; } .wrw-tools__count { min-width: 1.15rem; height: 1.15rem; font-size: .7rem; } }
.wrw-thankyou .wc-block-order-confirmation-status { font-family: var(--fell); color: var(--violet); }
.wrw-thankyou .wc-block-order-confirmation-summary-list { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 2rem; }
.wrw-thankyou__next { background: #f6efff; border-left: 4px solid var(--amethyst); border-radius: 0 10px 10px 0; padding: .9rem 1rem; }

/* ================================================================== the magic layer (assets/js/magic.js) */
@property --wrw-ang { syntax: '<angle>'; inherits: false; initial-value: 0deg; }

/* v1.3: the system cursor is never replaced (Skip's note); the wand cursor is gone. */

/* the sparkle canvas, flying orbs, click rings, pops */
.wrw-magic { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 70; }
.wrw-orb { position: fixed; left: 0; top: 0; z-index: 71; pointer-events: none; border-radius: 50%; background: #2a2150 center / cover no-repeat; box-shadow: 0 0 0 2px rgba(255, 233, 168, .95), 0 0 24px 6px rgba(231, 185, 85, .75), 0 0 60px 12px rgba(180, 140, 230, .5); will-change: transform; }
.wrw-orb--heart { box-shadow: 0 0 0 2px #f2b8c6, 0 0 24px 6px rgba(194, 69, 122, .7), 0 0 50px 10px rgba(242, 184, 198, .5); }
.wrw-ring { position: fixed; z-index: 71; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; border: 2px solid var(--candle); box-shadow: 0 0 10px var(--candle); pointer-events: none; animation: wrw-ring .6s cubic-bezier(.2, .8, .3, 1) forwards; }
@keyframes wrw-ring { to { transform: scale(6); opacity: 0; border-width: .5px; } }
.wrw-pop { animation: wrw-pop .8s cubic-bezier(.2, 1.6, .4, 1); }
@keyframes wrw-pop { 25% { transform: scale(1.4) rotate(-10deg); } 55% { transform: scale(.9) rotate(5deg); } 100% { transform: none; } }

/* the heart beats when a wand starts calling to you, and sighs when you let it go */
.wrw-keep { transition: border-color .2s, box-shadow .25s, background .2s; }
.wrw-keep:hover { box-shadow: 0 0 0 3px rgba(194, 69, 122, .18), 0 0 16px rgba(194, 69, 122, .35); }
.wrw-keep:hover svg { transform: scale(1.18); }
.wrw-keep[aria-pressed="true"] svg { filter: drop-shadow(0 0 4px rgba(194, 69, 122, .7)); }
.wrw-keep.wrw-beat svg { animation: wrw-beat .65s cubic-bezier(.2, 1.8, .4, 1); }
@keyframes wrw-beat { 30% { transform: scale(1.7); } 60% { transform: scale(.9); } 100% { transform: scale(1.15); } }
.wrw-keep.wrw-sigh svg { animation: wrw-sigh .5s ease; }
@keyframes wrw-sigh { 45% { transform: scale(.65) rotate(-12deg); } }
.wrw-tools__count:not([data-zero]) { box-shadow: 0 0 10px 2px rgba(180, 140, 230, .6); }

/* cards: tilt toward the wand, catch the light, wear a turning aura */
.wrw-tilt, .wrw-rack__img, .wrw-tilt .wc-block-components-product-image { position: relative; }
.wrw-rack__link.wrw-tilt:hover, .wrw-rack__link.wrw-tilt:focus-visible, .wrw-products .wc-block-product.wrw-tilt:hover, .wrw-product__related .wc-block-product.wrw-tilt:hover, .wrw-finder__card.wrw-tilt:hover, .wrw-arch.wrw-tilt:hover {
	transform: perspective(900px) translateY(-8px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .14s linear, box-shadow .3s; box-shadow: 0 28px 44px -22px var(--violet); }
.wrw-arch.wrw-tilt:hover { box-shadow: none; }
.wrw-product__related .wc-block-product, .wrw-finder__card, .wrw-arch { transition: transform .5s cubic-bezier(.2, 1.3, .4, 1), box-shadow .3s; }
.wrw-glint, .wrw-aura { position: absolute; pointer-events: none; border-radius: inherit; opacity: 0; transition: opacity .35s; }
.wrw-glint { inset: 0; z-index: 3; mix-blend-mode: screen; background: radial-gradient(circle at var(--mx, 50%) var(--my, 30%), rgba(255, 248, 225, .45), rgba(255, 248, 225, 0) 40%), linear-gradient(115deg, transparent 25%, rgba(180, 140, 230, .2) 42%, rgba(231, 185, 85, .22) 50%, rgba(159, 211, 214, .18) 58%, transparent 75%) var(--mx, 50%) 0 / 260% 100% no-repeat; }
.wrw-aura { inset: -3px; z-index: -1; padding: 3px; background: conic-gradient(from var(--wrw-ang), #e7b955, #b48ce6, #f2b8c6, #9fd3d6, #e7b955); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); filter: drop-shadow(0 0 8px rgba(231, 185, 85, .75)); }
.wrw-arch__img .wrw-aura { inset: 0; z-index: 2; }
.wrw-tilt:is(:hover, :focus-visible, :focus-within) .wrw-glint { opacity: 1; }
.wrw-tilt:is(:hover, :focus-visible, :focus-within) .wrw-aura { opacity: 1; animation: wrw-aura-spin 2.6s linear infinite; }
@keyframes wrw-aura-spin { to { --wrw-ang: 360deg; } }
.wrw-rack .wrw-keep { z-index: 4; transition: transform .35s cubic-bezier(.2, 1.3, .4, 1), box-shadow .25s; }
.wrw-rack__item:hover .wrw-keep { transform: translateY(-8px); }
.wrw-products .wc-block-components-product-image img, .wrw-product__related .wc-block-components-product-image img { transition: transform .6s cubic-bezier(.2, 1, .3, 1); }
.wrw-products .wc-block-product:hover .wc-block-components-product-image img, .wrw-product__related .wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.07); }

/* buttons: a sweep of light, and they lean toward the wand (magic.js sets translate) */
.wp-block-button__link, .wp-element-button, .wrw-keep--big { position: relative; overflow: hidden; isolation: isolate; transition: background .2s, transform .2s, box-shadow .25s, translate .25s cubic-bezier(.2, 1.4, .4, 1); }
.wp-block-button__link::before, .wp-element-button::before, .wrw-keep--big::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(105deg, transparent 30%, rgba(255, 246, 220, .55) 47%, rgba(255, 246, 220, .12) 56%, transparent 68%) -160% 0 / 60% 100% no-repeat; }
:is(.wp-block-button__link, .wp-element-button, .wrw-keep--big):hover::before { background-position: 260% 0; transition: background-position .85s ease; }
.wp-element-button:hover, .wp-block-button__link:hover { box-shadow: 0 10px 26px -10px var(--violet), 0 0 18px -4px rgba(231, 185, 85, .6); }
.wrw-grove__cast button { transition: background .2s, border-color .2s, transform .25s cubic-bezier(.2, 1.6, .4, 1), box-shadow .25s; }
.wrw-grove__cast button:hover { transform: translateY(-2px) scale(1.06); box-shadow: 0 0 16px rgba(231, 185, 85, .55); }
.wrw-pause { transition: border-color .2s, color .2s, box-shadow .25s; }
.wrw-pause:hover { box-shadow: 0 10px 30px -12px #000, 0 0 18px rgba(231, 185, 85, .45); }

/* links in reading text: a line drawn by the wand */
:where(.wrw-leaf, .wrw-sec, .wrw-product__story, .wrw-shop-intro, .wrw-thanks) :where(p, li) a:not(.wp-element-button) { background: linear-gradient(90deg, var(--candle), currentColor) 0 100% / 0 2px no-repeat; transition: background-size .35s cubic-bezier(.2, 1, .3, 1), color .2s; }
:where(.wrw-leaf, .wrw-sec, .wrw-product__story, .wrw-shop-intro, .wrw-thanks) :where(p, li) a:not(.wp-element-button):hover { background-size: 100% 2px; text-decoration-color: transparent; }

/* the header: a glowing underline with a star, dropdowns that unfurl, a moon that breathes, the logo catching the light */
.wrw-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after { background: linear-gradient(90deg, rgba(231, 185, 85, 0), var(--candle) 35%, #ffe9a8); box-shadow: 0 0 8px var(--candle); }
.wrw-nav .wp-block-navigation-item:is(:hover, :focus-within) > .wp-block-navigation__submenu-container { animation: wrw-unfurl .35s cubic-bezier(.2, 1, .3, 1); }
@keyframes wrw-unfurl { from { opacity: 0; transform: translateY(-8px) scale(.97); } }
.wrw-nav .wp-block-navigation-item:is(:hover, :focus-within) > .wp-block-navigation__submenu-container > li { animation: wrw-item-in .4s cubic-bezier(.2, 1, .3, 1) backwards; }
.wrw-nav .wp-block-navigation__submenu-container > li:nth-child(2) { animation-delay: .025s !important; } .wrw-nav .wp-block-navigation__submenu-container > li:nth-child(3) { animation-delay: .05s !important; }
.wrw-nav .wp-block-navigation__submenu-container > li:nth-child(4) { animation-delay: .075s !important; } .wrw-nav .wp-block-navigation__submenu-container > li:nth-child(5) { animation-delay: .1s !important; }
.wrw-nav .wp-block-navigation__submenu-container > li:nth-child(6) { animation-delay: .125s !important; } .wrw-nav .wp-block-navigation__submenu-container > li:nth-child(7) { animation-delay: .15s !important; }
.wrw-nav .wp-block-navigation__submenu-container > li:nth-child(8) { animation-delay: .175s !important; } .wrw-nav .wp-block-navigation__submenu-container > li:nth-child(9) { animation-delay: .2s !important; }
.wrw-nav .wp-block-navigation__submenu-container > li:nth-child(n+10) { animation-delay: .225s !important; }
@keyframes wrw-item-in { from { opacity: 0; transform: translateX(-12px); } }
.wrw-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { position: relative; transition: padding .25s cubic-bezier(.2, 1, .3, 1), color .2s, background .2s, text-shadow .2s; }
.wrw-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before { content: "✦"; content: "✦" / ""; position: absolute; left: .55rem; top: 50%; font-size: .8rem; color: var(--candle); opacity: 0; transform: translate(-6px, -50%) scale(.3) rotate(-120deg); transition: opacity .2s, transform .3s cubic-bezier(.2, 1.6, .4, 1); }
.wrw-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:is(:hover, :focus-visible)::before { opacity: 1; transform: translate(0, -50%) scale(1) rotate(0); }
.wrw-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:is(:hover, :focus-visible) { padding-left: 1.65rem !important; text-shadow: 0 0 12px rgba(231, 185, 85, .55); }
.wrw-logo { position: relative; }
.wrw-logo__shine { position: absolute; left: 0; top: 0; pointer-events: none; -webkit-mask: var(--logo) left top / 100% 100% no-repeat; mask: var(--logo) left top / 100% 100% no-repeat; background: linear-gradient(105deg, transparent 40%, rgba(255, 250, 235, .95) 48%, rgba(231, 185, 85, .85) 53%, transparent 61%) 150% 0 / 260% 100% no-repeat; }
.wrw-logo:hover .wrw-logo__shine { animation: wrw-shine-now .9s ease-out; }
@keyframes wrw-shine-now { from { background-position: 150% 0; } to { background-position: -60% 0; } }

/* section headings get a flourish that draws itself out from its star */
:is(.wrw-sec__head.wrw-flourish h2, h1.wrw-flourish, h2.wrw-flourish)::after { content: ""; display: block; width: 190px; max-width: 70%; height: 18px; margin: .5rem auto 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 18'%3E%3Cg fill='none' stroke='%23d9a63c' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M88 9C70 9 62 2 50 6s-10 9-20 6S16 4 4 9'/%3E%3Cpath d='M112 9c18 0 26-7 38-3s10 9 20 6 14-8 26-3'/%3E%3Cpath d='M50 6c-2-3-6-3-7 0M150 6c2-3 6-3 7 0'/%3E%3C/g%3E%3Cpath d='M100 1l2.2 5.8L108 9l-5.8 2.2L100 17l-2.2-5.8L92 9l5.8-2.2z' fill='%23d9a63c'/%3E%3Ccircle cx='4' cy='9' r='1.6' fill='%23d9a63c'/%3E%3Ccircle cx='196' cy='9' r='1.6' fill='%23d9a63c'/%3E%3C/svg%3E") center / contain no-repeat; filter: drop-shadow(0 0 4px rgba(231, 185, 85, .45)); }
.wrw-js :is(.wrw-sec__head.wrw-flourish h2, h1.wrw-flourish, h2.wrw-flourish)::after { clip-path: inset(0 50% 0 50%); opacity: 0; transition: clip-path 1.2s cubic-bezier(.6, 0, .2, 1) .3s, opacity .3s .3s; }
.wrw-js :is(.wrw-sec__head.wrw-flourish.is-in h2, h1.wrw-flourish.is-in, h2.wrw-flourish.is-in)::after { clip-path: inset(0 0 0 0); opacity: 1; }
@keyframes wrw-flourish-glow { to { filter: drop-shadow(0 0 9px rgba(231, 185, 85, .9)); } }
.wrw-shop-h.wrw-flourish::after { margin-top: .35rem; }

/* conjured in: grid pieces rise out of a soft blur, one after another */
.wrw-js .wrw-conjure { opacity: 0; translate: 0 22px;
	transition: opacity .7s ease, translate .85s cubic-bezier(.2, 1, .3, 1), transform .5s cubic-bezier(.2, 1.3, .4, 1), box-shadow .3s;
	transition-delay: calc(var(--i, 0) * 70ms), calc(var(--i, 0) * 70ms), 0s, 0s; }
.wrw-js .wrw-conjure.is-in { opacity: 1; translate: none; }

/* fireflies and a shooting star in every night band; the lantern under the roots */
.wrw-band, .wrw-sec--night, .wrw-footer { isolation: isolate; }
.wrw-flies { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.wrw-flies i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: #ffe9a8; box-shadow: 0 0 8px 3px rgba(240, 226, 140, .55); opacity: .1; animation: wrw-fly var(--d, 10s) ease-in-out var(--dl, 0s) infinite alternate, wrw-glow 2.6s ease-in-out var(--dl, 0s) infinite alternate; }
@keyframes wrw-fly { to { transform: translate(var(--dx, 30px), var(--dy, -20px)); } }
@keyframes wrw-glow { 0%, 25% { opacity: .08; } 100% { opacity: 1; } }
.wrw-footer .wrw-flies i { background: #f0a35e; box-shadow: 0 0 8px 3px rgba(240, 163, 94, .5); }
.wrw-shoot { position: absolute; width: 140px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, rgba(255, 246, 220, 0), #fff6dc 85%, #fff); box-shadow: 0 0 6px 1px rgba(255, 233, 168, .7); transform: rotate(24deg); transform-origin: right center; opacity: 0; animation: wrw-shoot var(--sd, 8s) linear var(--sdl, 0s) infinite; }
@keyframes wrw-shoot { 0% { opacity: 0; translate: 0 0; } 2% { opacity: 1; } 13% { opacity: 0; translate: 330px 147px; } 100% { opacity: 0; translate: 330px 147px; } }
.wrw-band__stars { transition: translate 1.2s cubic-bezier(.2, 1, .3, 1); }
.wrw-roots { position: relative; }
.wrw-roots::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle 230px at var(--lx, 50%) var(--ly, 60%), rgba(240, 163, 94, .3), rgba(240, 163, 94, .12) 45%, rgba(240, 163, 94, 0) 100%); opacity: 0; transition: opacity .5s; }
.wrw-roots.is-lit::after { opacity: 1; }
.wrw-roots__crystals > * { transition: filter .3s; }
.wrw-roots.is-lit .wrw-roots__crystals > * { filter: brightness(1.35) drop-shadow(0 0 6px #fff); }

/* product photos: the crystal-ball lens and the chosen stone's aura */
.wrw-lens { position: fixed; left: 0; top: 0; z-index: 72; pointer-events: none; border-radius: 50%; background-repeat: no-repeat; background-color: #fbf6ea; box-shadow: 0 0 0 3px rgba(255, 246, 220, .95), 0 0 0 6px rgba(91, 42, 134, .6), 0 0 34px 8px rgba(180, 140, 230, .55), inset 0 0 26px rgba(21, 18, 43, .35); opacity: 0; scale: .5; transition: opacity .2s, scale .3s cubic-bezier(.2, 1.5, .4, 1); }
.wrw-lens.is-on { opacity: 1; scale: 1; }
.wrw-lens::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 32% 26%, rgba(255, 255, 255, .6), rgba(255, 255, 255, 0) 26%), radial-gradient(circle at 72% 80%, rgba(180, 140, 230, .28), rgba(180, 140, 230, 0) 40%); }
.wrw-product__media .woocommerce-product-gallery__wrapper > div:first-child, .wrw-product__media .flex-viewport { transition: box-shadow .6s; }
.wrw-product__media.has-aura .woocommerce-product-gallery__wrapper > div:first-child, .wrw-product__media.has-aura .flex-viewport { box-shadow: 0 0 0 1px var(--line), 0 0 0 4px color-mix(in srgb, var(--wrw-aura) 65%, transparent), 0 0 46px 6px color-mix(in srgb, var(--wrw-aura) 55%, transparent); animation: wrw-aura-pulse 2.4s ease-in-out infinite alternate; }
@keyframes wrw-aura-pulse { to { box-shadow: 0 0 0 1px var(--line), 0 0 0 6px color-mix(in srgb, var(--wrw-aura) 45%, transparent), 0 0 70px 14px color-mix(in srgb, var(--wrw-aura) 40%, transparent); } }
.wrw-swatch { transition: all .2s, transform .3s cubic-bezier(.2, 1.6, .4, 1); }
.wrw-swatch:hover { transform: translateY(-2px); box-shadow: 0 6px 14px -8px var(--violet); }
.wrw-swatch:hover .wrw-gem { animation: wrw-gem 1.2s ease-in-out infinite alternate; }
.wrw-swatch[aria-checked="true"] .wrw-gem { box-shadow: inset -3px -4px 6px rgba(0, 0, 0, .28), inset 3px 3px 5px rgba(255, 255, 255, .65), 0 0 0 1px rgba(0, 0, 0, .15), 0 0 12px 2px rgba(231, 185, 85, .7); }
@keyframes wrw-gem { to { filter: brightness(1.25) saturate(1.2); transform: rotate(25deg) scale(1.1); } }
.wrw-altar img, .wrw-keeper img, .wrw-about-img img { transition: transform .8s cubic-bezier(.2, 1, .3, 1), filter .6s; }
.wrw-altar:hover img, .wrw-keeper:hover img, .wrw-about-img:hover img { transform: scale(1.04); filter: saturate(1.12) brightness(1.04); }

/* the hero: spell card takes the spell's colour; the hint gets a whisper */
.wrw-spell { box-shadow: 0 20px 50px -20px #000, 0 0 0 1px var(--spell, rgba(231, 185, 85, .6)), 0 0 34px -6px var(--spell, transparent); }
.wrw-spell.is-new { animation: wrw-spell-in .55s cubic-bezier(.2, 1.4, .4, 1); }
.wrw-spell__glyph { filter: drop-shadow(0 0 6px var(--spell, transparent)); }
.wrw-grove__hint-more { display: block; margin-top: .35rem; font-size: .86rem; color: var(--willow-light); font-style: italic; }

/* wand finder: answers spark, finished steps glow, the next one calls, the wands are dealt like cards */
.wrw-finder__num { transition: background .3s, box-shadow .3s; }
.wrw-finder__step.is-done .wrw-finder__num { background: var(--amethyst); box-shadow: 0 0 0 4px rgba(180, 140, 230, .25), 0 0 18px var(--amethyst); animation: wrw-pop .6s cubic-bezier(.2, 1.6, .4, 1); }
.wrw-finder__step.is-calling legend { animation: wrw-call 1.1s ease 2; }
@keyframes wrw-call { 50% { text-shadow: 0 0 18px rgba(231, 185, 85, .95); } }
.wrw-finder__opt span { transition: all .2s, transform .3s cubic-bezier(.2, 1.6, .4, 1); }
.wrw-finder__opt input:hover + span { transform: translateY(-2px); box-shadow: 0 0 14px rgba(231, 185, 85, .35); }
.wrw-finder__opt input:checked + span { animation: wrw-chosen .5s cubic-bezier(.2, 1.6, .4, 1); }
@keyframes wrw-chosen { 40% { transform: scale(1.14); } }
.wrw-finder__stir { display: flex; align-items: center; gap: .9rem; font-family: var(--fell); font-size: 1.35rem; margin: 1rem 0; }
.wrw-finder__sigil { position: relative; flex: none; width: 48px; height: 48px; border-radius: 50%; border: 2px dashed var(--candle); box-shadow: 0 0 18px rgba(231, 185, 85, .6); animation: wrw-spin 1.4s linear infinite; }
.wrw-finder__sigil::before { content: "✦"; content: "✦" / ""; position: absolute; inset: 0; display: grid; place-items: center; color: var(--candle); font-size: 1.3rem; animation: wrw-spin 1.4s linear infinite reverse; }
.wrw-finder__card { animation: wrw-deal .75s cubic-bezier(.2, 1, .3, 1) backwards; }
.wrw-finder__card:nth-child(2) { animation-delay: .12s; } .wrw-finder__card:nth-child(3) { animation-delay: .24s; } .wrw-finder__card:nth-child(4) { animation-delay: .36s; } .wrw-finder__card:nth-child(5) { animation-delay: .48s; } .wrw-finder__card:nth-child(6) { animation-delay: .6s; }
@keyframes wrw-deal { from { opacity: 0; transform: perspective(800px) translateY(50px) rotateY(-110deg) scale(.8); } 55% { opacity: 1; } }

/* Wheel of the Year: list and spokes light together; the next sabbat pulses */
.wrw-wheel__spokes circle { transform-box: fill-box; transform-origin: center; transition: transform .35s cubic-bezier(.2, 1.6, .4, 1), fill .3s; }
.wrw-wheel__spokes text, .wrw-wheel__spokes line { transition: fill .3s, stroke .3s; }
.wrw-wheel__spokes g.is-hover circle { transform: scale(1.8); fill: var(--candle); }
.wrw-wheel__spokes g.is-hover text { fill: var(--candle); }
.wrw-wheel__spokes g.is-hover line { stroke: var(--candle); }
.wrw-wheel__spokes .is-next circle { animation: wrw-next 1.8s ease-in-out infinite alternate; }
@keyframes wrw-next { to { transform: scale(1.5); } }
.wrw-wheel__today circle { transform-box: fill-box; transform-origin: center; animation: wrw-next 1.4s ease-in-out infinite alternate; }
.wrw-wheel__list li { transition: background .25s, padding .3s cubic-bezier(.2, 1, .3, 1); border-radius: 8px; }
.wrw-wheel__list li.is-hover { background: rgba(231, 185, 85, .1); padding-left: .55rem; }

/* the shortlist drawer: wands drift in one by one */
.wrw-shortlist[open] .wrw-shortlist__item { animation: wrw-item-in .45s cubic-bezier(.2, 1, .3, 1) backwards; }
.wrw-shortlist[open] .wrw-shortlist__item:nth-child(2) { animation-delay: .06s; } .wrw-shortlist[open] .wrw-shortlist__item:nth-child(3) { animation-delay: .12s; }
.wrw-shortlist[open] .wrw-shortlist__item:nth-child(4) { animation-delay: .18s; } .wrw-shortlist[open] .wrw-shortlist__item:nth-child(n+5) { animation-delay: .24s; }

/* page to page: the old page dissolves into mist and the new one rises out of it (Chrome, Edge, Safari 18.2+) */
@media (prefers-reduced-motion: no-preference) { @view-transition { navigation: auto; } }
::view-transition-old(root) { animation: wrw-vt-out .3s ease-in both; }
::view-transition-new(root) { animation: wrw-vt-in .55s cubic-bezier(.2, .9, .3, 1) both; }
@keyframes wrw-vt-out { to { opacity: 0; transform: scale(.985); } }
@keyframes wrw-vt-in { from { opacity: 0; transform: translateY(16px); } }
.wrw-header { view-transition-name: wrw-header; }

/* paused (the pill, or reduced motion): everything is simply there */
.wrw-paused .wrw-conjure { opacity: 1 !important; translate: none !important; transition: none !important; }
.wrw-paused :is(.wrw-sec__head.wrw-flourish h2, h1.wrw-flourish, h2.wrw-flourish)::after { clip-path: none !important; opacity: 1 !important; transition: none !important; }
.wrw-paused .wrw-flies, .wrw-paused .wrw-logo__shine { display: none; }
.wrw-paused .wrw-tilt:hover { transform: none !important; }

/* the header stays with you (magic.js adds .wrw-headwrap to its template-part wrapper, which is what has to stick) */
.wrw-headwrap { position: sticky; top: 0; z-index: 50; transition: transform .45s cubic-bezier(.2, 1, .3, 1); }
.admin-bar .wrw-headwrap { top: 32px; }
@media (max-width: 782px) { .admin-bar .wrw-headwrap { top: 0; position: relative; } }
.wrw-head-hide .wrw-headwrap { transform: translateY(calc(-100% - 4px)); }
.wrw-paused .wrw-headwrap { transform: none !important; }

/* phones: the whole willow is visible and tappable; the hint, spell buttons and spell card sit underneath it */
@media (max-width: 760px) {
	.wrw-hero .wrw-grove { height: auto !important; padding: 360px 0 76px; background: linear-gradient(#110e25, var(--night)) 0 359px / 100% calc(100% - 359px) no-repeat; }
	.wrw-hero .wrw-grove__canvas { inset: 0 0 auto 0; height: 360px; }
	.wrw-hero .wrw-grove__ui { position: relative; left: auto; right: auto; bottom: auto; width: auto; margin: .2rem 1rem 0; }
}
/* the narrowest phones: the menu button never gets squeezed (cart/checkout's plain cart link is a little wider) */
@media (max-width: 600px) { .wrw-header__bar .wrw-nav { flex: none; } }
.wrw-nav .wp-block-navigation__responsive-container-open { min-width: 32px; min-height: 32px; justify-content: center; }
@media (max-width: 360px) { .wrw-logo img { width: 112px; } .wrw-header__bar { gap: .25rem; } }
/* the best-seller cards: height 100% has to include the padding, or each card runs 27 px past its row into the next one */
.wrw-rack__link { box-sizing: border-box; }

/* ================================================================== v1.2: review pass (shop, product, checkout, phones) */
/* checkout: the fields on the left, "Your order" beside them and staying put as you scroll; WooCommerce's own stylesheet
   floats its two columns at 48% inside the grid, which is why billing sat narrow and on the right */
.wrw-store .col2-set > .col-1, .wrw-store .col2-set > .col-2 { float: none !important; width: auto !important; }
/* rows: notices (if any) / heading beside the fields / the order box, which stays in view while the fields scroll */
.wrw-store form.checkout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); grid-template-rows: auto auto 1fr; gap: 0 clamp(1.5rem, 4vw, 3rem); align-items: start; }
.wrw-store form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; grid-row: 1; }
.wrw-store form.checkout > #customer_details { grid-column: 1; grid-row: 2 / span 2; grid-template-columns: 1fr; gap: 0; }
.wrw-store form.checkout > #order_review_heading { grid-column: 2; grid-row: 2; margin-top: 0; }
.wrw-store form.checkout > #order_review { grid-column: 2; grid-row: 3; align-self: start; position: sticky; top: 7.5rem; background: #fffaf0; border: 1px solid var(--line); border-radius: 14px; padding: 1rem; }
.wrw-store form.checkout > #order_review table.shop_table { border: 0; background: transparent; }
.wrw-store #ship-to-different-address { margin-top: 1.2rem; font-size: 1.25rem; }
.wrw-store .woocommerce-additional-fields h3 { font-size: 1.25rem; }
@media (max-width: 900px) {
	.wrw-store form.checkout { grid-template-columns: 1fr; grid-template-rows: none; }
	.wrw-store form.checkout > #customer_details, .wrw-store form.checkout > #order_review_heading, .wrw-store form.checkout > #order_review { grid-column: 1; grid-row: auto; }
	.wrw-store form.checkout > #order_review { position: static; }
	.wrw-store form.checkout > #order_review_heading { margin-top: 2rem; }
}

/* family chips on category pages */
.wrw-families { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin: 1.2rem 0 .2rem; }
.wrw-families__label { font-family: var(--uncial); font-size: .82rem; color: var(--willow); margin-right: .2rem; }
.wrw-chip { display: inline-block; padding: .38rem .9rem; border-radius: 999px; border: 1px solid rgba(91, 42, 134, .35); background: #fffaf0; color: var(--violet); text-decoration: none; font-weight: 600; font-size: .95rem; transition: background .2s, color .2s, border-color .2s, transform .25s cubic-bezier(.2, 1.6, .4, 1); }
.wrw-chip:hover { border-color: var(--violet); transform: translateY(-2px); }
.wrw-chip.is-current { background: var(--violet); color: var(--moon); border-color: var(--violet); }
.wrw-chip--all { border-style: dashed; margin-left: auto; }

/* the shop grids on phones: two arches across, not one giant arch after another */
.wrw-arches { grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); }
@media (max-width: 520px) {
	.wrw-arches { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
	.wrw-arch__name { font-size: 1rem; }
	.wrw-arch__count { font-size: .8rem; }
}
/* related: the shop's cards, four of them, two across on phones */
.wrw-product__related .wrw-products { margin-top: 1.2rem; }
.wrw-product__related .wrw-products .wc-block-product { text-align: center; }
.wrw-product__related .wrw-products .wc-block-product-template { gap: 1.2rem !important; }

/* product photo: centred in its column and the same size for every piece (the old photos vary from 414 to 600 px) */
.wrw-product__media .woocommerce-product-gallery { max-width: min(100%, 560px); margin-inline: auto !important; }
.wrw-product__media .woocommerce-product-gallery__image img { width: 100%; height: auto; display: block; }
.wrw-product__media .woocommerce-product-gallery__wrapper > div:first-child, .wrw-product__media .flex-viewport { background: radial-gradient(120% 100% at 50% 0%, #3b2c74, var(--night) 70%); }

/* "Good to know" shelf under the home hero */
.wrw-sec--facts { padding-block: 1.1rem 1.3rem !important; background: linear-gradient(180deg, var(--parchment), var(--parchment-deep)); border-bottom: 1px solid rgba(43, 34, 54, .1); }
.wrw-facts { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem 1.6rem; max-width: var(--wp--style--global--wide-size) !important; }
.wrw-fact { display: flex; align-items: center; gap: .7rem; font-size: .92rem; line-height: 1.3; }
.wrw-fact__icon { flex: none; width: 34px; height: 34px; color: var(--violet); padding: 5px; border-radius: 50%; background: #fffaf0; box-shadow: 0 0 0 1px var(--line); }
.wrw-fact__text { display: grid; }
.wrw-fact__text b { color: var(--ink); font-weight: 700; }
.wrw-fact__text span { color: var(--willow); font-size: .86rem; }
.wrw-fact a { color: var(--violet); font-weight: 700; }
@media (max-width: 900px) { .wrw-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .wrw-facts { grid-template-columns: 1fr; gap: .7rem; } .wrw-fact__icon { width: 30px; height: 30px; } }

/* about page: the wand photo sits beside the opening text instead of under it; contact: the side card hugs its content */
@media (min-width: 700px) { .wrw-leaf .wrw-about-img { float: right; width: 42%; margin: .3rem 0 1rem 1.8rem; } .wrw-leaf .wrw-about-img + h2 { clear: none; } }
.wp-block-column:has(> .wrw-contact-side) { align-self: flex-start; }

/* ================================================================== v1.3 perf pass (Skip's note, 10-27) */
/* pointer magic is a choice: the pill next to the pause pill, and a button in the willow's hint */
.wrw-spells-pill { left: auto; right: 1rem; }
@media (max-width: 600px) { .wrw-spells-pill { right: .6rem; padding: .5rem .6rem; } .wrw-spells-pill [data-wrw-spells-label] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }
.wrw-spells-pill[aria-pressed="true"] { background: var(--violet); border-color: var(--candle); }
.wrw-spells-pill svg { fill: currentColor; }
.wrw-grove__hint--on, .wrw-spells .wrw-grove__hint--off { display: none; }
.wrw-spells .wrw-grove__hint--on { display: block; }
.wrw-grove__spells { font: inherit; font-weight: 700; color: var(--candle); background: rgba(91, 42, 134, .55); border: 1px solid rgba(231, 185, 85, .5); border-radius: 999px; padding: .15rem .6rem; cursor: pointer; }
.wrw-grove__spells:hover { background: var(--violet); }
.wrw-grove__hint-more { font-style: normal; }
/* card tilt only when pointer magic is on; the plain hover lift stays for everyone */
html:not(.wrw-spells) .wrw-tilt:hover { transform: translateY(-6px) !important; }
/* SVG animations are main-thread work: they only run while that part of the page is on screen (site.js adds .is-seen) */
.wrw-js .wrw-roots:not(.is-seen) .wrw-roots__light path, .wrw-js .wrw-roots:not(.is-seen) .wrw-roots__crystals > *,
.wrw-js .wrw-wheel__dial:not(.is-seen) .wrw-wheel__inner, .wrw-js .wrw-wheel__dial:not(.is-seen) .wrw-wheel__spokes .is-next circle, .wrw-js .wrw-wheel__dial:not(.is-seen) .wrw-wheel__today circle,
.wrw-js .wrw-made:not(.is-seen) .wrw-made__smoke path { animation-play-state: paused; }
.wrw-js .wrw-flies:not(.is-seen) i, .wrw-js .wrw-flies:not(.is-seen) .wrw-shoot { animation-play-state: paused; }

/* ------------------------------------------------------------------------------------------------ SearchShifter (2026-10-28)
   Glossary terms and Q&A pages come from the plugin's own PHP templates through header.php / footer.php: the night band with
   crumbs, then the plugin's markup inside the parchment leaf. The glossary and FAQ pages are ordinary pages with its shortcodes. */
.wrw-band--classic { padding-block: 1.2rem 3.4rem !important; }
.wrw-band--classic .wrw-crumbs { text-align: center; margin: 0; }
.wrw-band__eyebrow { text-align: center; color: var(--amethyst); margin-block: .5rem 0 !important; }
.wrw-leaf--classic { margin-inline: auto !important; }
.wrw-classic-body > .ss-glossary-wrapper, .wrw-classic-body > .container { padding: 0 !important; max-width: none !important; margin: 0 !important; }
.wrw-classic-body h1, .wrw-classic-body h1.ss-term-title { font-family: var(--fell); font-weight: 400; color: var(--violet); font-size: clamp(2rem, 4.5vw, 2.9rem); line-height: 1.1; margin: 0 0 .5em; }
.wrw-classic-body .ss-section-title { font-family: var(--uncial); font-weight: 400; font-size: .9rem; letter-spacing: .08em; color: var(--willow); margin: 1.8em 0 .5em; }
.wrw-classic-body .ss-section-text, .wrw-classic-body .container > div { font-size: 1.05rem; line-height: 1.7; }
.wrw-classic-body .ss-section-text p:first-child { margin-top: 0; }
.wrw-classic-body .ss-qa-updated { color: #5e5668; font-size: .9rem; margin: 0 0 1rem; }
.wrw-classic-body hr { border: 0; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 18'%3E%3Cpath d='M0 9h48M72 9h48' stroke='%23b8a988' stroke-width='1'/%3E%3Cpath d='M60 2l3 7-3 7-3-7z' fill='%235b2a86'/%3E%3C/svg%3E") center / 120px 18px no-repeat; margin-block: 1.5rem; }
.wrw-classic-body .ss-related-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.wrw-classic-body .ss-related-list a { display: inline-block; border: 1px solid var(--line); border-radius: 999px; padding: .35rem 1rem; background: var(--parchment); color: var(--violet); font-family: var(--fell); text-decoration: none; }
.wrw-classic-body .ss-related-list a:hover { background: var(--parchment-deep); }
.wrw-classic-body .ss-brand-reinforce { font-style: italic; color: #5e5668; }
.wrw-classic-body .ss-authority-badge, .wrw-classic-body .ss-locked, .wrw-classic-body .ss-back-link { display: none; } /* footer.php prints the way back */
.wrw-classic-body .ss-appears-list { list-style: none; padding: 0; margin: 0; }
.wrw-classic-body .ss-appears-list li { padding: .35rem 0; margin: 0; border-bottom: 1px dotted var(--line); }
.wrw-classic-body .ss-appears-list a { font-family: var(--fell); font-size: 1.1rem; color: var(--violet); text-decoration: none; }
.wrw-classic-body .ss-appears-list a:hover { text-decoration: underline; }
.wrw-classic-back { margin: 2.2rem 0 0; }
.wrw-classic-back a { font-family: var(--uncial); font-size: .85rem; letter-spacing: .04em; color: var(--willow); text-decoration: none; }
.wrw-classic-back a:hover { text-decoration: underline; }
/* the glossary page */
.wrw-leaf .ss-glossary-wrapper .ss-glossary-page { max-width: none; }
.wrw-leaf .ss-glossary-search-wrapper input { width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; padding: .7rem 1.1rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); }
.wrw-leaf .ss-glossary-nav { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0 1.6rem; }
.wrw-leaf .ss-glossary-nav a { display: grid; place-items: center; min-width: 44px; min-height: 44px; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 8px; background: var(--parchment); color: var(--violet); font-family: var(--fell); font-size: 1.1rem; text-decoration: none; }
.wrw-leaf .ss-glossary-nav a:hover, .wrw-leaf .ss-glossary-nav a:focus-visible { background: var(--parchment-deep); }
.wrw-leaf .ss-letter-section { margin: 0 0 1.4rem; }
.wrw-leaf .ss-letter-section h2 { font-family: var(--uncial); font-weight: 400; font-size: 1rem; letter-spacing: .08em; color: var(--willow); border-bottom: 1px solid var(--line); padding-bottom: .3rem; margin: 0 0 .4rem; }
.wrw-leaf .ss-term-list { list-style: none; padding: 0; margin: 0; }
.wrw-leaf .ss-term-list li { padding: .55rem 0; border-bottom: 1px dotted var(--line); margin: 0; font-family: inherit; font-size: .95rem; color: var(--ink); line-height: 1.5; }
.wrw-leaf .ss-term-list li p, .wrw-leaf .ss-term-list .ss-term-preview { font: inherit; color: #4a4356; margin: .15rem 0 0; }
.wrw-leaf .ss-term-list a { font-family: var(--fell); font-size: 1.15rem; color: var(--violet); text-decoration: none; }
.wrw-leaf .ss-term-list a:hover { text-decoration: underline; }
/* the FAQ page: the same look as the theme's own details, the plugin's duplicate heading out of the way (the page H1 says it) */
.wrw-leaf .ss-public-faq .ss-faq-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrw-leaf .ss-public-faq { margin: 0; padding: 0; max-width: none; }
.wrw-leaf .ss-public-faq .ss-faq-item { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: none; padding: .9rem 0; margin: 0; }
.wrw-leaf .ss-public-faq .ss-faq-question { display: block; font-family: var(--fell); font-size: 1.3rem; font-weight: 400; color: var(--violet); cursor: pointer; list-style: none; position: relative; padding: 0 2rem 0 0; background: none; }
.wrw-leaf .ss-public-faq .ss-faq-question::-webkit-details-marker { display: none; }
.wrw-leaf .ss-public-faq .ss-faq-icon { display: none; }
.wrw-leaf .ss-public-faq .ss-faq-question::after { content: "✦"; content: "✦" / ""; position: absolute; right: .3rem; top: .1rem; color: var(--candle); transition: transform .3s; }
.wrw-leaf .ss-public-faq .ss-faq-item[open] .ss-faq-question::after { transform: rotate(135deg); }
.wrw-leaf .ss-public-faq .ss-faq-answer { margin: .6rem 0 0; padding: 0; color: var(--ink); }
.wrw-leaf .ss-public-faq .ss-faq-answer p { margin: 0 0 .6rem; }
/* glossary links in prose */
a.ss-glossary-term { color: var(--violet); text-decoration: underline; text-decoration-style: dotted; text-underline-offset: .18em; text-decoration-thickness: 1px; }
a.ss-glossary-term:hover { text-decoration-style: solid; }
