/* ==========================================================================
   Pick-a-Little — main stylesheet
   Palette from the printed labels: label paper, saguaro green, mesa rust, desert sun.
   ========================================================================== */

@font-face { font-family: "Rokkitt"; src: url("../fonts/rokkitt-latin-wght-normal.woff2") format("woff2-variations"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Figtree"; src: url("../fonts/figtree-latin-wght-normal.woff2") format("woff2-variations"); font-weight: 300 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Figtree"; src: url("../fonts/figtree-latin-wght-italic.woff2") format("woff2-variations"); font-weight: 300 900; font-style: italic; font-display: swap; }

:root {
	--paper: #F6EDD9;
	--paper-2: #EDDFC0;
	--paper-3: #FBF6EA;
	--ink: #2A2118;
	--ink-2: #5A4B3B;
	--line: #D8C7A2;
	--saguaro: #2E4A26;
	--saguaro-2: #3D5E32;
	--saguaro-ink: #1D3018;
	--mesa: #9A3E1F;
	--sun: #E2A13B;
	--dusk-1: #161B33;
	--dusk-2: #2B2545;
	--dusk-3: #5A3A4C;
	--accent: var(--saguaro);

	--f-display: "Rokkitt", "Rockwell", "Roboto Slab", Georgia, serif;
	--f-body: "Figtree", "Segoe UI", system-ui, -apple-system, sans-serif;

	--step--1: 0.875rem;
	--step-0: 1.0625rem;
	--step-1: 1.3rem;
	--step-2: clamp(1.5rem, 1.1rem + 1.2vw, 1.9rem);
	--step-3: clamp(1.9rem, 1.3rem + 2.2vw, 2.75rem);
	--step-4: clamp(2.5rem, 1.4rem + 4.4vw, 4.6rem);

	--wrap: 1220px;
	--gutter: clamp(1.1rem, 3vw, 2.5rem);
	--r-label: 18px;
	--r-soft: 10px;
	--shadow-label: 0 1px 0 rgba(42,33,24,.06), 0 14px 30px -18px rgba(42,33,24,.45);
	--ease: cubic-bezier(.2,.7,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
	margin: 0;
	background: var(--paper);
	background-image:
		radial-gradient(1200px 600px at 85% -10%, rgba(226,161,59,.16), transparent 60%),
		radial-gradient(900px 500px at -10% 30%, rgba(61,94,50,.07), transparent 60%);
	background-attachment: fixed;
	color: var(--ink);
	font: 400 var(--step-0)/1.6 var(--f-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--f-display); font-weight: 650; line-height: 1.05; letter-spacing: -0.012em; margin: 0 0 .5em; text-wrap: balance; }
h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); }
h3 { font-size: var(--step-1); line-height: 1.15; }
p { margin: 0 0 1em; text-wrap: pretty; }
del { opacity: .6; }
ins { text-decoration: none; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--sun); color: var(--ink); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.pal-skip { position: absolute; left: 1rem; top: -100px; z-index: 100; background: var(--ink); color: var(--paper); padding: .6rem 1rem; border-radius: 6px; }
.pal-skip:focus { top: 1rem; }
.pal-icon { flex: none; }

/* ---------- Buttons: ribbon-shaped like the "Rooted in Arizona" banner ---------- */
.pal-btn {
	--btn-bg: var(--saguaro);
	--btn-fg: var(--paper-3);
	position: relative;
	isolation: isolate;
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	min-height: 52px;
	padding: .7em 1.9em;
	border: 0; background: none; cursor: pointer;
	color: var(--btn-fg);
	font-family: var(--f-display); font-size: 1.2rem; font-weight: 650; letter-spacing: .01em; line-height: 1.1;
	text-decoration: none; text-align: center;
	transition: transform .2s var(--ease);
}
.pal-btn::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: var(--btn-bg);
	clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 50%, 100% 100%, 0 100%, 14px 50%);
	transition: background-color .2s, filter .2s;
}
.pal-btn:hover { transform: translateY(-1px); }
.pal-btn:hover::before { filter: brightness(1.12); }
.pal-btn:active { transform: translateY(1px); }
.pal-btn[disabled] { cursor: not-allowed; opacity: .45; transform: none; }
.pal-btn--accent { --btn-bg: var(--accent); }
.pal-btn--ghost { --btn-fg: var(--ink); }
.pal-btn--ghost::before { background: transparent; clip-path: none; border: 2px solid currentColor; border-radius: 999px; opacity: .85; }
.pal-btn--small { min-height: 42px; padding: .5em 1.4em; font-size: 1.05rem; }
.pal-btn--wide { width: 100%; }
.pal-link { color: var(--saguaro); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.pal-link:hover { color: var(--mesa); }
.pal-icon-btn {
	display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
	background: var(--accent); color: var(--paper-3); border: 0; cursor: pointer; text-decoration: none;
	transition: transform .2s var(--ease), filter .2s;
}
.pal-icon-btn:hover { transform: scale(1.06); filter: brightness(1.1); }
.pal-icon-btn.is-added { background: var(--saguaro); }

/* Brand ribbon (the label's own spaced-caps line) */
.pal-ribbon { margin: 0 0 1.2rem; }
.pal-ribbon span {
	display: inline-block; position: relative;
	padding: .45em 1.6em;
	color: var(--paper-3); font: 600 .78rem/1 var(--f-body); letter-spacing: .2em; text-transform: uppercase;
}
.pal-ribbon span::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: var(--saguaro);
	clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 50%, 100% 100%, 0 100%, 10px 50%);
}
.pal-ribbon span { isolation: isolate; }
.pal-ribbon--light span { color: var(--saguaro-ink); }
.pal-ribbon--light span::before { background: var(--paper); }

/* ---------- Header ---------- */
.pal-announce { background: var(--saguaro-ink); color: var(--paper); font-size: var(--step--1); text-align: center; }
.pal-announce p { margin: 0; padding: .5rem var(--gutter); display: flex; gap: .5rem; align-items: center; justify-content: center; }
.pal-header { position: sticky; top: 0; z-index: 40; background: rgba(246,237,217,.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.admin-bar .pal-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .pal-header { top: 0; } }
.pal-header__inner { max-width: var(--wrap); margin: 0 auto; padding: .55rem var(--gutter); display: flex; align-items: center; gap: 1.5rem; }
.pal-brand { flex: none; display: block; }
.pal-brand img { height: 46px; width: auto; }
.pal-nav { margin-left: auto; }
.pal-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: .3rem; }
.pal-nav__list a { display: block; padding: .55rem .9rem; border-radius: 999px; text-decoration: none; font-weight: 600; font-size: .98rem; }
.pal-nav__list a:hover, .pal-nav__list .current-menu-item > a { background: var(--paper-2); }
.pal-header__actions { display: flex; align-items: center; gap: .4rem; }
.pal-cart { position: relative; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; color: var(--ink); }
.pal-cart:hover { background: var(--paper-2); }
.pal-cart-count { position: absolute; top: 3px; right: 1px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--mesa); color: #fff; font: 700 .72rem/20px var(--f-body); text-align: center; }
.pal-cart-count.is-empty { display: none; }
.pal-cart-count.is-bumped { animation: pal-bump .45s var(--ease); }
@keyframes pal-bump { 40% { transform: scale(1.35); } }
.pal-menu-toggle { display: none; width: 46px; height: 46px; border: 0; background: none; border-radius: 50%; cursor: pointer; place-items: center; }

@media (max-width: 900px) {
	.pal-brand img { height: 38px; }
	.pal-menu-toggle { display: grid; }
	.pal-header__actions { margin-left: auto; }
	.pal-nav { position: absolute; left: 0; right: 0; top: 100%; background: var(--paper-3); border-bottom: 1px solid var(--line); box-shadow: 0 20px 30px -20px rgba(42,33,24,.35); display: none; }
	.pal-nav.is-open { display: block; animation: pal-drop .25s var(--ease); }
	.pal-nav__list { flex-direction: column; padding: .6rem var(--gutter) 1rem; }
	.pal-nav__list a { padding: .85rem .6rem; font-size: 1.15rem; border-radius: 8px; }
}
@keyframes pal-drop { from { opacity: 0; transform: translateY(-8px); } }

/* Funnel header: logo + cart only, sits on the dusk sky */
.pal-header--funnel { position: absolute; left: 0; right: 0; background: transparent; border: 0; backdrop-filter: none; -webkit-backdrop-filter: none; }
body.is-funnel .pal-header--funnel .pal-cart { color: var(--paper); }
body.is-funnel .pal-header--funnel .pal-cart:hover { background: rgba(255,255,255,.12); }

/* ---------- Layout ---------- */
.pal-main { display: block; }
.pal-section { max-width: var(--wrap); margin: 0 auto; padding: clamp(3.5rem, 7vw, 6.5rem) var(--gutter); }
.pal-section__head { max-width: 46rem; margin-bottom: 2.2rem; }
.pal-section__head p { color: var(--ink-2); font-size: 1.12rem; }
.pal-section__head--row { max-width: none; display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem 1.5rem; margin-bottom: 1.5rem; }
.pal-section__head--row h2 { margin: 0; font-size: var(--step-2); }
.pal-section__head--row p { margin: 0; font-size: 1rem; }

/* ---------- Hero ---------- */
.pal-hero {
	max-width: var(--wrap); margin: 0 auto;
	padding: clamp(2rem, 5vw, 4.5rem) var(--gutter) clamp(2rem, 4vw, 3.5rem);
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center;
}
.pal-hero__title { font-size: var(--step-4); font-weight: 700; color: var(--saguaro-ink); max-width: 11ch; margin-bottom: .35em; }
.pal-hero__text { font-size: 1.2rem; max-width: 34rem; color: var(--ink-2); }
.pal-hero__ctas { display: flex; flex-wrap: wrap; gap: .8rem 1rem; margin: 1.8rem 0 1.2rem; }
.pal-hero__note { display: flex; align-items: center; gap: .45rem; font-size: .95rem; color: var(--ink-2); }
.pal-hero__art { position: relative; aspect-ratio: 1000 / 760; }
.pal-hero__scene { width: 100%; height: auto; position: relative; z-index: 0; }
.pal-hero__fan { position: absolute; left: 0; right: 0; bottom: -2%; height: 62%; z-index: 1; }
.pal-hero__card {
	--rot: calc((var(--i) - 1) * 9deg);
	position: absolute; bottom: 0; left: 50%;
	width: 36%;
	transform-origin: 50% 120%;
	transform: translateX(calc(-50% + (var(--i) - 1) * 62%)) rotate(var(--rot));
	border-radius: 12px; overflow: hidden;
	box-shadow: 0 2px 0 rgba(42,33,24,.08), 0 22px 40px -18px rgba(42,33,24,.55);
	background: var(--paper-3);
}
.pal-hero__card:nth-child(2) { z-index: 2; bottom: 6%; }
.pal-hero__card img { width: 100%; aspect-ratio: 4 / 4.3; object-fit: cover; object-position: top; }

/* One orchestrated page-load moment: scene settles, then labels are dealt onto the table. */
@media (prefers-reduced-motion: no-preference) {
	.pal-hero__scene { animation: pal-rise 1.1s var(--ease) both; }
	.pal-hero__card { animation: pal-deal .9s var(--ease) both; animation-delay: calc(.45s + var(--i) * .14s); }
	.pal-hero__copy > * { animation: pal-fade .8s var(--ease) both; }
	.pal-hero__copy > :nth-child(2) { animation-delay: .08s; }
	.pal-hero__copy > :nth-child(3) { animation-delay: .16s; }
	.pal-hero__copy > :nth-child(4) { animation-delay: .24s; }
	.pal-hero__copy > :nth-child(5) { animation-delay: .32s; }
}
@keyframes pal-rise { from { opacity: 0; transform: translateY(24px) scale(.98); } }
@keyframes pal-fade { from { opacity: 0; transform: translateY(12px); } }
@keyframes pal-deal { from { opacity: 0; transform: translateX(-50%) translateY(40%) rotate(0deg) scale(.9); } }

@media (max-width: 860px) {
	.pal-hero { grid-template-columns: 1fr; }
	.pal-hero__art { order: -1; max-width: 520px; margin: 0 auto; width: 100%; }
	.pal-hero__title { max-width: 13ch; }
}

/* Facts strip */
.pal-facts { list-style: none; margin: 0 auto; padding: 1.1rem var(--gutter); max-width: var(--wrap); display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.pal-facts li { display: flex; align-items: center; gap: .6rem; font-weight: 600; font-size: .98rem; color: var(--saguaro-ink); }
.pal-facts .pal-icon { color: var(--mesa); }
@media (max-width: 760px) { .pal-facts { grid-template-columns: 1fr 1fr; } }

/* ---------- Quiz ---------- */
.pal-quiz { padding: clamp(1rem, 3vw, 2rem) var(--gutter); scroll-margin-top: 70px; }
.pal-quiz__inner {
	max-width: var(--wrap); margin: clamp(2rem, 5vw, 4rem) auto;
	background: var(--saguaro); color: var(--paper);
	border-radius: 28px;
	padding: clamp(1.5rem, 4vw, 3.5rem);
	display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr); gap: clamp(1.5rem, 4vw, 3.5rem);
	position: relative; overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), inset 0 0 0 9px var(--saguaro), inset 0 0 0 10px rgba(246,237,217,.35);
}
.pal-quiz__title { color: var(--paper-3); font-size: var(--step-3); }
.pal-quiz__intro p { color: rgba(246,237,217,.85); }
.pal-quiz__progress { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: .55rem; counter-reset: q; }
.pal-quiz__progress li { counter-increment: q; display: flex; align-items: center; gap: .7rem; color: rgba(246,237,217,.55); font-weight: 600; }
.pal-quiz__progress li::before { content: counter(q); display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid currentColor; font-size: .85rem; }
.pal-quiz__progress li.is-active { color: var(--paper-3); }
.pal-quiz__progress li.is-active::before { background: var(--sun); border-color: var(--sun); color: var(--saguaro-ink); }
.pal-quiz__progress li.is-done { color: rgba(246,237,217,.85); }
.pal-quiz__progress li.is-done::before { content: "✓"; background: rgba(246,237,217,.15); border-color: transparent; }
.pal-quiz__form { min-width: 0; }
.pal-q { border: 0; margin: 0; padding: 0; min-width: 0; display: none; }
.pal-q.is-active { display: block; animation: pal-fade .4s var(--ease); }
.pal-q__title { font: 650 var(--step-2)/1.15 var(--f-display); color: var(--paper-3); padding: 0; margin-bottom: .3rem; }
.pal-q__hint { color: rgba(246,237,217,.75); margin-bottom: 1rem; }
.pal-q__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .7rem; margin-top: 1rem; }
.pal-q__grid--goals { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.pal-choice { position: relative; display: block; cursor: pointer; }
.pal-choice input { position: absolute; opacity: 0; pointer-events: none; }
.pal-choice__box {
	display: flex; align-items: center; gap: .7rem; min-height: 64px; height: 100%;
	padding: .8rem 1rem; border-radius: 14px;
	background: var(--paper-3); color: var(--ink);
	font-weight: 600; line-height: 1.25;
	border: 2px solid transparent;
	transition: transform .18s var(--ease), border-color .18s, background-color .18s;
}
.pal-choice__box .pal-icon { color: var(--saguaro-2); }
.pal-choice:hover .pal-choice__box { transform: translateY(-2px); }
.pal-choice input:checked + .pal-choice__box { background: var(--sun); border-color: var(--paper-3); color: var(--saguaro-ink); }
.pal-choice input:checked + .pal-choice__box .pal-icon { color: var(--saguaro-ink); }
.pal-choice input:focus-visible + .pal-choice__box { outline: 3px solid var(--paper-3); outline-offset: 2px; }
.pal-choice input:disabled + .pal-choice__box { opacity: .45; cursor: not-allowed; transform: none; }
.pal-quiz__nav { display: flex; align-items: center; gap: 1rem; margin-top: 1.6rem; }
.pal-quiz__nav [data-next] { margin-left: auto; --btn-bg: var(--sun); --btn-fg: var(--saguaro-ink); }
.pal-quiz__back { background: none; border: 0; color: var(--paper); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; padding: .5rem; }
.pal-quiz__error { margin: 0; color: #FFD9A8; font-size: .95rem; }
.pal-quiz__result { min-width: 0; outline: none; }
.pal-quiz__result:not([hidden]) { animation: pal-fade .5s var(--ease); }
.pal-match { display: grid; grid-template-columns: minmax(150px, 230px) 1fr; gap: 1.5rem; align-items: start; background: var(--paper-3); color: var(--ink); border-radius: 18px; padding: 1.2rem; border-top: 6px solid var(--accent); }
.pal-match__img { border-radius: 12px; overflow: hidden; background: var(--paper); }
.pal-match__img img { width: 100%; aspect-ratio: 1; object-fit: cover; object-position: top; }
.pal-match__kicker { font-weight: 700; color: var(--accent); margin: 0 0 .2rem; }
.pal-match h3 { font-size: var(--step-2); margin-bottom: .2rem; }
.pal-match__tag { color: var(--ink-2); margin-bottom: .8rem; }
.pal-match__why { margin: 0 0 1rem; }
.pal-match__why li::before { content: ""; flex: none; width: 18px; height: 18px; margin-top: .2em; background: var(--accent); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.pal-match__tip { background: var(--paper); border-radius: 10px; padding: .7rem .9rem; font-size: .95rem; }
.pal-match__price { font: 650 1.35rem var(--f-display); margin: .8rem 0; }
.pal-match__actions { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: center; }
.pal-match__actions .pal-btn { --btn-bg: var(--accent); }
.pal-also { margin-top: 1.4rem; }
.pal-also h3 { color: var(--paper-3); font-size: 1.2rem; }
.pal-also ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .7rem; }
.pal-also li { display: flex; gap: .7rem; align-items: center; background: rgba(246,237,217,.1); border: 1px solid rgba(246,237,217,.2); border-radius: 14px; padding: .55rem; }
.pal-also img { width: 56px; height: 56px; object-fit: cover; object-position: top; border-radius: 8px; flex: none; }
.pal-also a { color: var(--paper-3); font-weight: 650; text-decoration: none; }
.pal-also a:hover { text-decoration: underline; }
.pal-also small { display: block; color: rgba(246,237,217,.75); }
.pal-also .pal-icon-btn { margin-left: auto; background: var(--sun); color: var(--saguaro-ink); width: 40px; height: 40px; }
.pal-quiz__restart { margin-top: 1.2rem; }
.pal-quiz__restart button { background: none; border: 0; color: var(--paper); text-decoration: underline; cursor: pointer; font-weight: 600; text-underline-offset: 3px; }
.pal-quiz .pal-fda { color: rgba(246,237,217,.65); margin-top: 1rem; }
@media (max-width: 860px) {
	.pal-quiz__inner { grid-template-columns: 1fr; }
	.pal-quiz__progress { display: flex; margin-top: 1rem; gap: .4rem; }
	.pal-quiz__progress li { font-size: 0; gap: 0; }
	.pal-quiz__progress li::before { font-size: .85rem; }
	.pal-match { grid-template-columns: 1fr; }
	.pal-match__img { max-width: 220px; }
}
.pal-quiz-page .pal-quiz__inner { margin-top: 1.5rem; }
@media (max-width: 600px) {
	.pal-q__grid--goals { grid-template-columns: 1fr 1fr; gap: .55rem; }
	.pal-q__grid--goals .pal-choice__box { flex-direction: column; align-items: flex-start; gap: .4rem; min-height: 92px; padding: .75rem; font-size: .93rem; }
	.pal-quiz__inner { border-radius: 22px; }
}
.pal-quiz__nav [data-next][disabled] { opacity: 1; }
.pal-quiz__nav [data-next][disabled]::before { background: rgba(246,237,217,.16); }
.pal-quiz__nav [data-next][disabled] span { color: rgba(246,237,217,.6); }

/* ---------- Label shelf (house blends) ---------- */
.pal-shelf { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: clamp(1.5rem, 3vw, 2.5rem) clamp(1rem, 2.5vw, 2rem); }
.pal-label { display: flex; flex-direction: column; }
.pal-label__card { position: relative; perspective: 1400px; aspect-ratio: 482 / 527; }
.pal-label__face {
	position: absolute; inset: 0;
	border-radius: var(--r-label);
	backface-visibility: hidden; -webkit-backface-visibility: hidden;
	transition: transform .7s var(--ease), box-shadow .3s;
	box-shadow: var(--shadow-label);
	overflow: hidden;
}
.pal-label__front { background: var(--paper-3); }
.pal-label__front img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.pal-label__back {
	transform: rotateY(180deg);
	background: var(--paper-3);
	border: 2px solid var(--accent);
	outline: 1px solid var(--accent); outline-offset: -8px;
	padding: 1.3rem 1.3rem 1rem;
	display: flex; flex-direction: column; gap: .4rem;
	font-size: .93rem; line-height: 1.45;
	overflow: auto;
}
.pal-label__back h3 { color: var(--accent); font-size: 1.45rem; margin: 0; }
.pal-label__tagline { font-weight: 700; font-size: .8rem; letter-spacing: .06em; color: var(--ink-2); margin: 0; }
.pal-label__ing { margin: .2rem 0; }
.pal-label__how { color: var(--ink-2); margin: 0; }
.pal-label__more { margin: auto 0 0; }
.pal-label__more a { color: var(--accent); font-weight: 700; }
.pal-label.is-flipped .pal-label__front { transform: rotateY(-180deg); }
.pal-label.is-flipped .pal-label__back { transform: rotateY(0); }
.pal-label:not(.is-flipped) .pal-label__card:hover .pal-label__front { transform: translateY(-4px) rotate(-.6deg); box-shadow: 0 2px 0 rgba(42,33,24,.06), 0 24px 40px -18px rgba(42,33,24,.5); }
.pal-label__meta { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; margin-top: 1rem; }
.pal-label__name { margin: 0; font-size: 1.35rem; }
.pal-label__name a { text-decoration: none; }
.pal-label__name a:hover { color: var(--accent); }
.pal-label__price { font-weight: 700; white-space: nowrap; }
.pal-label__price del { font-weight: 400; font-size: .9em; margin-right: .2em; }
.pal-label__actions { margin-top: .7rem; }
.pal-label__actions .pal-btn { --btn-bg: var(--accent); }
.pal-label__flip {
	position: absolute; right: .7rem; bottom: .7rem; z-index: 3;
	display: inline-flex; align-items: center; gap: .35rem;
	padding: .45rem .8rem; border: 0; border-radius: 999px; cursor: pointer;
	background: rgba(251,246,234,.94); color: var(--ink); font-weight: 650; font-size: .85rem;
	box-shadow: 0 4px 14px -4px rgba(42,33,24,.4);
	transition: background .2s, color .2s;
}
.pal-label__flip:hover { background: var(--accent); color: #fff; }
.pal-label.is-flipped .pal-label__flip { background: var(--accent); color: #fff; }
.pal-label__back { padding-bottom: 3.2rem; }
.pal-label__sub { display: inline-flex; align-items: center; gap: .35rem; margin-top: .5rem; font-size: .92rem; font-weight: 600; color: var(--accent); text-decoration: none; }
.pal-label__sub:hover { text-decoration: underline; }
@media (max-width: 620px) {
	.pal-shelf { grid-template-columns: 1fr 1fr; gap: 1.6rem .9rem; }
	.pal-label__meta { flex-direction: column; gap: .1rem; margin-top: .7rem; }
	.pal-label__name { font-size: 1.08rem; }
	.pal-label__price { font-size: .95rem; }
	.pal-label__flip span { display: none; }
	.pal-label__flip { padding: .5rem; right: .45rem; bottom: .45rem; }
	.pal-label__back { padding: .8rem .8rem 2.8rem; font-size: .8rem; }
	.pal-label__back h3 { font-size: 1.1rem; }
	.pal-label__back .pal-checks { gap: .2rem; }
	.pal-label__how, .pal-label__ing { display: none; }
	.pal-label__sub { font-size: .82rem; }
}
@media (prefers-reduced-motion: reduce) {
	.pal-label__face { transition: opacity .25s; transform: none !important; }
	.pal-label__back { opacity: 0; }
	.pal-label.is-flipped .pal-label__back { opacity: 1; }
	.pal-label.is-flipped .pal-label__front { opacity: 0; }
}

/* Labels pressed onto the shelf as they scroll in */
@media (prefers-reduced-motion: no-preference) {
	.js [data-reveal] { opacity: 0; transform: translateY(18px) rotate(-1.2deg); transition: opacity .7s var(--ease), transform .7s var(--ease); }
	.js [data-reveal].is-in { opacity: 1; transform: none; }
}

/* ---------- Ways to use ---------- */
.pal-uses { text-align: center; padding-top: clamp(2rem, 5vw, 4rem); padding-bottom: clamp(2rem, 5vw, 4rem); }
.pal-uses__lead { font: 700 var(--step-3)/1 var(--f-display); color: var(--mesa); margin-bottom: 1rem; }
.pal-uses__words { font-family: var(--f-display); font-size: clamp(1.4rem, 1rem + 2.2vw, 2.5rem); line-height: 1.25; max-width: 56rem; margin: 0 auto 1rem; color: var(--saguaro-ink); }
.pal-uses__w { white-space: nowrap; }
.pal-uses__w + .pal-uses__w::before { content: " / "; color: var(--line); font-weight: 300; }
.pal-uses__w--0 { font-weight: 700; }
.pal-uses__w--1 { font-weight: 400; color: var(--saguaro-2); }
.pal-uses__w--2 { font-weight: 600; font-style: italic; }
.pal-uses__w--3 { font-weight: 300; }
.pal-uses__shot { color: var(--ink-2); max-width: 36rem; margin: 0 auto; }

/* ---------- Tabs, cards, rows ---------- */
.pal-tabs__list { display: flex; flex-wrap: wrap; gap: .4rem; border-bottom: 2px solid var(--line); margin-bottom: 1.5rem; }
.pal-tabs__list [role="tab"] { background: none; border: 0; padding: .8rem 1.1rem; margin-bottom: -2px; border-bottom: 3px solid transparent; font: 650 1.25rem var(--f-display); cursor: pointer; color: var(--ink-2); }
.pal-tabs__list [aria-selected="true"] { color: var(--saguaro-ink); border-bottom-color: var(--mesa); }
.pal-tabs__count { display: inline-block; font: 700 .75rem/1 var(--f-body); background: var(--paper-2); border-radius: 999px; padding: .3em .55em; vertical-align: middle; margin-left: .2rem; }
.pal-tabs__intro { color: var(--ink-2); }
.pal-tabs__panel:not([hidden]) { animation: pal-fade .35s var(--ease); }

.pal-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1.4rem 1.1rem; }
.pal-grid:not(.is-expanded) > .is-extra { display: none; }
@media (max-width: 620px) {
	.pal-grid, .pal-grid--4 { grid-template-columns: 1fr 1fr; gap: .9rem .7rem; }
	.pal-card__body { padding: .7rem .75rem .8rem; }
	.pal-card__name { font-size: 1.05rem; }
	.pal-card__tagline { font-size: .8rem; }
	.pal-card__price { font-size: .92rem; }
	.pal-icon-btn { width: 38px; height: 38px; }
	.pal-tabs__list { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.pal-tabs__list [role="tab"] { white-space: nowrap; font-size: 1.1rem; padding: .7rem .8rem; }
	.pal-row-item summary { gap: .7rem; }
	.pal-row-item__body { padding-left: .4rem; }
}
.pal-more { display: flex; justify-content: center; margin-top: 1.5rem; }
.pal-more button { background: none; border: 2px solid var(--line); border-radius: 999px; padding: .65rem 1.4rem; font-weight: 650; cursor: pointer; color: var(--ink); }
.pal-more button:hover { border-color: var(--saguaro-2); }
.pal-grid--4 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.pal-card { display: flex; flex-direction: column; background: var(--paper-3); border-radius: 16px; overflow: hidden; box-shadow: 0 0 0 1px var(--line); transition: box-shadow .2s, transform .2s var(--ease); }
.pal-card:hover { box-shadow: 0 0 0 2px var(--accent); }
.pal-card__media { position: relative; display: block; aspect-ratio: 1; background: var(--paper-2); overflow: hidden; }
.pal-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.pal-card--label .pal-card__media img { object-position: top; }
.pal-card:hover .pal-card__media img { transform: scale(1.04); }
.pal-card__flag { position: absolute; top: .7rem; left: .7rem; background: var(--mesa); color: #fff; font: 700 .75rem/1 var(--f-body); padding: .4em .7em; border-radius: 999px; }
.pal-card__body { display: flex; flex-direction: column; flex: 1; padding: .9rem 1rem 1rem; border-top: 5px solid var(--accent); }
.pal-card__name { font-size: 1.25rem; margin: 0 0 .15rem; }
.pal-card__name a { text-decoration: none; }
.pal-card__name a:hover { color: var(--accent); }
.pal-card__tagline { font-size: .9rem; color: var(--ink-2); margin: 0 0 .6rem; }
.pal-card__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.pal-card__price { font-weight: 700; }
.pal-card__price del { font-weight: 400; font-size: .9em; }

.pal-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.pal-row-item { border-bottom: 1px solid var(--line); }
.pal-row-item summary { list-style: none; display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 1rem; padding: 1rem .4rem; cursor: pointer; }
.pal-row-item summary::-webkit-details-marker { display: none; }
.pal-row-item summary:hover { background: rgba(255,255,255,.35); }
.pal-row-item__swatch { width: 22px; height: 30px; border-radius: 6px 6px 10px 10px; background: var(--accent); box-shadow: inset 0 -8px 0 rgba(0,0,0,.12), inset 0 4px 0 rgba(255,255,255,.25); }
.pal-row-item__name { font: 650 1.2rem/1.2 var(--f-display); }
.pal-row-item__name small { display: block; font: 500 .85rem var(--f-body); color: var(--ink-2); }
.pal-row-item__price { font-weight: 700; }
.pal-row-item__chev { transition: transform .25s var(--ease); color: var(--ink-2); }
.pal-row-item details[open] .pal-row-item__chev { transform: rotate(180deg); }
.pal-row-item__body { padding: 0 .4rem 1.2rem calc(22px + 1.4rem); display: grid; gap: .6rem; }
.pal-row-item__desc p { margin: 0; color: var(--ink-2); }
.pal-row-item__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; }
.pal-row-item__actions .pal-btn { --btn-bg: var(--accent); }

/* Smooth open/close for every <details> where supported */
:root { interpolate-size: allow-keywords; }
details::details-content { block-size: 0; overflow: hidden; transition: block-size .35s var(--ease), content-visibility .35s allow-discrete; }
details[open]::details-content { block-size: auto; }

/* ---------- Chart ---------- */
.pal-chart { padding-top: 0; }
.pal-chart__wrap { background: var(--paper-3); border-radius: 22px; box-shadow: 0 0 0 1px var(--line); }
.pal-chart__wrap > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 1fr auto; gap: .2rem 1rem; padding: 1.4rem 1.6rem; }
.pal-chart__wrap > summary::-webkit-details-marker { display: none; }
.pal-chart__sum-title { font: 650 var(--step-2)/1.1 var(--f-display); }
.pal-chart__sum-text { grid-column: 1; color: var(--ink-2); }
.pal-chart__chev { grid-row: 1 / span 2; grid-column: 2; align-self: center; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--paper-2); transition: transform .3s var(--ease); }
.pal-chart__wrap[open] .pal-chart__chev { transform: rotate(180deg); }
.pal-chart__body { padding: 0 1.6rem 1.4rem; }
.pal-chart__filters { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.pal-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .9rem; border-radius: 999px; border: 1.5px solid var(--line); background: var(--paper-3); color: var(--ink); font-weight: 600; font-size: .9rem; cursor: pointer; text-decoration: none; transition: background .15s, border-color .15s; }
.pal-chip span { font-size: .78rem; opacity: .7; }
.pal-chip:hover { border-color: var(--saguaro-2); }
.pal-chip.is-active { background: var(--saguaro); border-color: var(--saguaro); color: var(--paper-3); }
.pal-chart__scroll { overflow-x: auto; border-radius: 12px; border: 1px solid var(--line); }
.pal-chart__table { border-collapse: collapse; width: 100%; min-width: 900px; font-size: .9rem; }
.pal-chart__table th, .pal-chart__table td { padding: .55rem .4rem; text-align: center; border-bottom: 1px solid var(--line); transition: background .2s, opacity .2s; }
.pal-chart__table thead th { vertical-align: bottom; font-weight: 600; font-size: .8rem; line-height: 1.2; color: var(--ink-2); background: var(--paper); }
.pal-chart__table thead th span { display: block; max-width: 7em; margin: 0 auto; }
.pal-chart__table tbody th { text-align: left; white-space: nowrap; font-weight: 650; position: sticky; left: 0; background: var(--paper-3); padding-left: .9rem; }
.pal-chart__table tbody th a { text-decoration: none; }
.pal-chart__table tbody th a:hover { color: var(--mesa); text-decoration: underline; }
.pal-chart__table thead th:first-child { text-align: left; padding-left: .9rem; position: sticky; left: 0; }
.pal-dot { display: inline-block; width: 14px; height: 14px; border-radius: 50%; background: var(--saguaro-2); }
.pal-chart__table.is-filtered td, .pal-chart__table.is-filtered thead th:not(:first-child) { opacity: .25; }
.pal-chart__table.is-filtered .is-col { opacity: 1; background: rgba(226,161,59,.18); }
.pal-chart__table.is-filtered .is-col .pal-dot { background: var(--mesa); transform: scale(1.25); }
.pal-chart__table tr.is-dim th { opacity: .35; }
.pal-chart__table tr.is-match th { color: var(--mesa); }

/* ---------- Story ---------- */
.pal-story { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.pal-story__copy h2 { color: var(--saguaro-ink); }
.pal-story__copy p { font-size: 1.12rem; max-width: 38rem; }
.pal-story__cards { display: grid; gap: 1rem; }
.pal-story__card { background: var(--paper-3); border-radius: 18px; padding: 1.4rem 1.5rem; box-shadow: 0 0 0 1px var(--line); }
.pal-story__card .pal-icon { color: var(--mesa); margin-bottom: .5rem; }
.pal-story__card h3 { margin-bottom: .3rem; }
.pal-story__card p { color: var(--ink-2); margin-bottom: .6rem; }
.pal-story__card--seed { background: var(--saguaro); color: var(--paper); box-shadow: none; }
.pal-story__card--seed p { color: rgba(246,237,217,.85); }
.pal-story__card--seed .pal-icon { color: var(--sun); }
.pal-story__card--seed .pal-link { color: var(--sun); }
@media (max-width: 860px) { .pal-story { grid-template-columns: 1fr; } }

/* ---------- Footer ---------- */
.pal-footer { background: var(--saguaro-ink); color: rgba(246,237,217,.85); margin-top: clamp(3rem, 6vw, 5rem); }
.pal-footer__inner { max-width: var(--wrap); margin: 0 auto; padding: clamp(2.5rem, 6vw, 4rem) var(--gutter) 2rem; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 2rem; }
.pal-footer__brand img { width: 260px; margin-bottom: 1rem; }
.pal-footer h2 { font-size: 1.15rem; color: var(--paper-3); margin-bottom: .8rem; }
.pal-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.pal-footer a { color: var(--paper); text-decoration: none; }
.pal-footer a:hover { color: var(--sun); text-decoration: underline; }
.pal-social { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; }
.pal-footer__legal { max-width: var(--wrap); margin: 0 auto; padding: 1.4rem var(--gutter) 2rem; border-top: 1px solid rgba(246,237,217,.15); font-size: .82rem; }
.pal-footer__legal p { margin: 0 0 .5rem; }
.pal-footer .pal-fda { color: rgba(246,237,217,.7); }
@media (max-width: 860px) { .pal-footer__inner { grid-template-columns: 1fr 1fr; } .pal-footer__brand { grid-column: 1 / -1; } }
.pal-fda { font-size: .8rem; line-height: 1.45; color: var(--ink-2); max-width: 60rem; }

/* ---------- Shop ---------- */
.pal-shop { max-width: var(--wrap); margin: 0 auto; padding: clamp(1.5rem, 4vw, 3rem) var(--gutter) 2rem; }
.pal-shop__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.2rem; }
.pal-page__title { font-size: var(--step-4); color: var(--saguaro-ink); margin-bottom: .2em; }
.pal-shop__desc { color: var(--ink-2); font-size: 1.1rem; max-width: 38rem; margin: 0; }
.pal-shop__quiz { display: flex; align-items: center; gap: .8rem; background: var(--saguaro); color: var(--paper); text-decoration: none; padding: .9rem 1.2rem; border-radius: 16px; max-width: 340px; line-height: 1.3; }
.pal-shop__quiz strong { display: block; color: var(--sun); }
.pal-shop__quiz:hover { background: var(--saguaro-2); }
.pal-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 2rem; position: sticky; top: 64px; z-index: 5; padding: .6rem 0; background: linear-gradient(var(--paper) 70%, transparent); }
.admin-bar .pal-chips { top: 96px; }
.pal-shop__section { padding: 1.5rem 0 3rem; scroll-margin-top: 130px; }

/* ---------- Single product ---------- */
.pal-pdp { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 5vw, 4.5rem); align-items: start; padding-top: .5rem; }
.pal-pdp__media { position: sticky; top: 90px; }
.pal-pdp__media .woocommerce-product-gallery { position: relative; margin: 0; }
.pal-pdp__media .woocommerce-product-gallery__wrapper { margin: 0; }
.pal-pdp__media .woocommerce-product-gallery__image img { width: 100%; border-radius: var(--r-label); box-shadow: var(--shadow-label); background: var(--paper-3); }
.pal-pdp__media .flex-control-thumbs { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; gap: .6rem; }
.pal-pdp__media .flex-control-thumbs li { width: 72px; }
.pal-pdp__media .flex-control-thumbs img { border-radius: 10px; cursor: pointer; opacity: .6; border: 2px solid transparent; }
.pal-pdp__media .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--accent); }
.pal-pdp__media .woocommerce-product-gallery__trigger { position: absolute; top: .8rem; right: .8rem; z-index: 3; width: 40px; height: 40px; border-radius: 50%; background: var(--paper-3); display: grid; place-items: center; text-indent: -999px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.pal-pdp__media .woocommerce-product-gallery__trigger::before { content: ""; width: 14px; height: 14px; border: 2px solid var(--ink); border-radius: 50%; position: absolute; left: 11px; top: 10px; }
.pal-pdp__media .woocommerce-product-gallery__trigger::after { content: ""; width: 2px; height: 8px; background: var(--ink); position: absolute; left: 26px; top: 23px; transform: rotate(-45deg); }
.pal-pdp__crumb { margin: 0 0 .4rem; font-weight: 600; font-size: .92rem; }
.pal-pdp__crumb a { color: var(--accent); }
.pal-pdp__title { font-size: var(--step-4); color: var(--ink); margin-bottom: .1em; }
.pal-pdp__tagline { font-weight: 700; letter-spacing: .06em; color: var(--accent); }
.pal-pdp__price { font: 650 1.7rem var(--f-display); }
.pal-pdp__short p { font-size: 1.12rem; color: var(--ink-2); }
.pal-checks { list-style: none; margin: 0 0 1.2rem; padding: 0; display: grid; gap: .45rem; }
.pal-checks li { display: flex; gap: .55rem; align-items: flex-start; }
.pal-checks .pal-icon { color: var(--accent); margin-top: .2em; }
.pal-pdp__buy { margin: 1.5rem 0 1rem; }
.pal-pdp__trust { list-style: none; margin: 0 0 1.2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; color: var(--ink-2); font-size: .95rem; }
.pal-pdp__trust li { display: flex; align-items: center; gap: .45rem; }
.pal-pdp__story { display: flex; align-items: center; gap: .7rem; padding: .9rem 1.1rem; border-radius: 14px; background: var(--dusk-2); color: var(--paper); text-decoration: none; font-weight: 600; margin-bottom: 1.2rem; }
.pal-pdp__story .pal-icon { color: var(--sun); }
.pal-pdp__story:hover { background: var(--dusk-1); }
@media (max-width: 860px) { .pal-pdp { grid-template-columns: 1fr; } .pal-pdp__media { position: static; max-width: 520px; } }

/* Purchase options */
.pal-plans { border: 0; margin: 0 0 1rem; padding: 0; display: grid; gap: .7rem; }
.pal-plan { display: block; cursor: pointer; position: relative; }
.pal-plan input { position: absolute; opacity: 0; }
.pal-plan__body { display: grid; gap: .5rem; padding: 1rem 1.1rem 1rem 3.1rem; border-radius: 14px; background: var(--paper-3); border: 2px solid var(--line); position: relative; transition: border-color .2s, background .2s; }
.pal-plan__body::before { content: ""; position: absolute; left: 1.05rem; top: 1.2rem; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--ink-2); background: var(--paper-3); }
.pal-plan input:checked + .pal-plan__body { border-color: var(--accent); background: #fff; }
.pal-plan input:checked + .pal-plan__body::before { border-color: var(--accent); background: radial-gradient(circle, var(--accent) 45%, transparent 50%); }
.pal-plan input:focus-visible + .pal-plan__body { outline: 3px solid var(--sun); outline-offset: 2px; }
.pal-plan__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; align-items: baseline; }
.pal-plan__title { font: 650 1.25rem var(--f-display); }
.pal-plan__price { font-weight: 700; font-size: 1.1rem; }
.pal-plan__price small { font-weight: 500; color: var(--ink-2); }
.pal-plan__perks { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .9rem; color: var(--ink-2); }
.pal-plan__perks span { display: inline-flex; align-items: center; gap: .3rem; }
.pal-plan__perks .pal-icon { color: var(--accent); }
.pal-plan.is-featured .pal-plan__title::after { content: "Most popular"; margin-left: .6rem; font: 700 .7rem/1 var(--f-body); letter-spacing: .04em; background: var(--accent); color: #fff; padding: .35em .6em; border-radius: 999px; vertical-align: middle; }
.pal-buy__row { display: flex; gap: .8rem; align-items: stretch; }
.pal-buy__row .single_add_to_cart_button { flex: 1; --btn-bg: var(--accent); }
.quantity { display: inline-flex; }
.quantity .qty { width: 4.2rem; min-height: 52px; text-align: center; border: 2px solid var(--line); border-radius: 12px; background: var(--paper-3); font: 600 1.1rem var(--f-body); color: var(--ink); }

/* Variable products (WooCommerce form) */
.variations_form .variations { border: 0; margin-bottom: 1rem; width: 100%; }
.variations_form .variations th, .variations_form .variations td { display: block; text-align: left; padding: 0 0 .4rem; }
.variations_form select { min-height: 48px; width: 100%; max-width: 320px; border: 2px solid var(--line); border-radius: 12px; padding: .5rem .8rem; background: var(--paper-3); font: inherit; }
.variations_form .reset_variations { font-size: .9rem; margin-left: .6rem; }
.woocommerce-variation-price { font: 650 1.5rem var(--f-display); margin: .5rem 0 1rem; }
.woocommerce-variation-add-to-cart { display: flex; gap: .8rem; }
.single_add_to_cart_button.button, .woocommerce-variation-add-to-cart .button {
	flex: 1; min-height: 52px; border: 0; border-radius: 999px; background: var(--accent); color: var(--paper-3); font: 650 1.2rem var(--f-display); cursor: pointer; padding: .6em 1.8em;
}
.single_add_to_cart_button.disabled { opacity: .5; }

/* Accordions */
.pal-acc { border-top: 1px solid var(--line); }
.pal-acc:last-child { border-bottom: 1px solid var(--line); }
.pal-acc > summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem .2rem; cursor: pointer; font: 650 1.2rem var(--f-display); }
.pal-acc > summary::-webkit-details-marker { display: none; }
.pal-acc > summary span { transition: transform .25s var(--ease); display: grid; }
.pal-acc[open] > summary span { transform: rotate(45deg); }
.pal-acc__body { padding: 0 .2rem 1.1rem; color: var(--ink-2); }
.pal-acc__body ul { padding-left: 1.2rem; }
.pal-related { padding-top: clamp(3rem, 6vw, 5rem); padding-left: 0; padding-right: 0; }

/* ---------- Notices, toast, forms ---------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	list-style: none; margin: 0 0 1.5rem; padding: 1rem 1.2rem; border-radius: 12px; background: var(--paper-3); border-left: 5px solid var(--saguaro-2); box-shadow: 0 0 0 1px var(--line);
}
.woocommerce-error { border-left-color: var(--mesa); }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: 1rem; font-weight: 700; color: var(--saguaro); }
.pal-toast {
	position: fixed; left: 50%; bottom: 1.4rem; z-index: 90; transform: translateX(-50%);
	display: flex; align-items: center; gap: 1rem;
	max-width: min(92vw, 520px); padding: .9rem 1.1rem .9rem 1.3rem; border-radius: 14px;
	background: var(--saguaro-ink); color: var(--paper); box-shadow: 0 20px 40px -12px rgba(0,0,0,.45);
	font-weight: 600;
}
.pal-toast a { color: var(--sun); white-space: nowrap; }
.pal-toast:not([hidden]) { animation: pal-toast .4s var(--ease); }
@keyframes pal-toast { from { opacity: 0; transform: translate(-50%, 16px); } }
body.is-funnel .pal-toast { bottom: 5.6rem; }

input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="search"], textarea, select {
	font: inherit; color: var(--ink);
}
.pal-page { max-width: var(--wrap); margin: 0 auto; padding: clamp(1.5rem, 4vw, 3rem) var(--gutter) 2rem; }
.pal-prose { max-width: 44rem; }
.pal-prose a { color: var(--saguaro); }
.pal-404__ctas { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.pal-wc-wrap .pal-page__title { font-size: var(--step-3); }

/* My account (classic) */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: 2rem; align-items: start; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .2rem; }
.woocommerce-MyAccount-navigation a { display: block; padding: .65rem .9rem; border-radius: 10px; text-decoration: none; font-weight: 600; }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--paper-2); }
.woocommerce form .form-row { margin: 0 0 1rem; display: flex; flex-direction: column; gap: .3rem; }
.woocommerce form .input-text, .woocommerce-Input { min-height: 46px; padding: .5rem .8rem; border: 2px solid var(--line); border-radius: 10px; background: var(--paper-3); }
.woocommerce button.button, .woocommerce a.button, .woocommerce input.button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: .5em 1.4em; border: 0; border-radius: 999px; background: var(--saguaro); color: var(--paper-3); font: 650 1.1rem var(--f-display); cursor: pointer; text-decoration: none;
}
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { text-align: left; padding: .7rem .5rem; border-bottom: 1px solid var(--line); }
.woocommerce-account .woocommerce:has(> .u-columns), .woocommerce-account .woocommerce:has(> form.login) { display: block; }
.u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
@media (max-width: 760px) { .woocommerce-account .woocommerce, .u-columns { grid-template-columns: 1fr; } }

/* Cart & Checkout blocks: brand the WooCommerce components */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-family: var(--f-body); }
.wc-block-components-title, .wc-block-components-checkout-step__title, .wc-block-cart__totals-title { font-family: var(--f-display) !important; font-weight: 650 !important; }
.wc-block-components-button:not(.is-link) {
	background: var(--saguaro) !important; color: var(--paper-3) !important; border-radius: 999px !important; min-height: 52px; font-family: var(--f-display) !important; font-size: 1.15rem !important; font-weight: 650 !important; border: 0 !important;
}
.wc-block-components-button:not(.is-link):hover { background: var(--saguaro-2) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input, .wc-block-components-select select { border-radius: 10px !important; }
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img { border-radius: 8px; }
.wc-block-components-product-name { font-weight: 650; }
.wc-block-components-totals-wrapper, .wc-block-components-sidebar { background: transparent; }
.wc-block-components-sidebar-layout .wc-block-components-main, .wc-block-components-sidebar { padding-top: 0; }
.wc-block-cart .wc-block-components-sidebar { background: var(--paper-3); border-radius: 18px; padding: 1.2rem !important; box-shadow: 0 0 0 1px var(--line); }

/* ==========================================================================
   Funnel pages
   ========================================================================== */
.pal-funnel { --pf-bg: var(--paper); --pf-fg: var(--ink); --pf-soft: var(--ink-2); }
.pal-funnel--dusk { --pf-sky: linear-gradient(180deg, var(--dusk-1) 0%, var(--dusk-2) 55%, var(--dusk-3) 85%, #A0573C 100%); --pf-hero-fg: var(--paper-3); --pf-hero-soft: rgba(246,237,217,.82); --pf-ridge: #120F1F; }
.pal-funnel--dawn { --pf-sky: linear-gradient(180deg, #F5D7B4 0%, #F2C08E 45%, #F6EDD9 100%); --pf-hero-fg: var(--saguaro-ink); --pf-hero-soft: var(--ink-2); --pf-ridge: #6B4A32; }
.pal-funnel--day { --pf-sky: linear-gradient(180deg, #E9D9B5 0%, var(--paper) 100%); --pf-hero-fg: var(--saguaro-ink); --pf-hero-soft: var(--ink-2); --pf-ridge: #B98E62; }
body.is-funnel:has(.pal-funnel--dawn) .pal-header--funnel .pal-cart,
body.is-funnel:has(.pal-funnel--day) .pal-header--funnel .pal-cart { color: var(--ink); }

.pf-hero { position: relative; background: var(--pf-sky); color: var(--pf-hero-fg); padding: clamp(5.5rem, 11vw, 8rem) var(--gutter) clamp(6.5rem, 13vw, 11rem); overflow: hidden; }
.pal-funnel--dusk .pf-hero::before {
	content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .75;
	background-image:
		radial-gradient(1.4px 1.4px at 12% 18%, #fff 50%, transparent 52%),
		radial-gradient(1px 1px at 28% 8%, #fff 50%, transparent 52%),
		radial-gradient(1.6px 1.6px at 44% 22%, #fff 50%, transparent 52%),
		radial-gradient(1px 1px at 63% 12%, #fff 50%, transparent 52%),
		radial-gradient(1.3px 1.3px at 78% 26%, #fff 50%, transparent 52%),
		radial-gradient(1px 1px at 90% 9%, #fff 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 6% 40%, #fff 50%, transparent 52%),
		radial-gradient(1px 1px at 36% 36%, #fff 50%, transparent 52%),
		radial-gradient(1px 1px at 55% 44%, #fff 50%, transparent 52%),
		radial-gradient(1.4px 1.4px at 85% 42%, #fff 50%, transparent 52%);
}
.pf-sky { position: absolute; inset: auto 0 0 0; height: clamp(70px, 11vw, 150px); pointer-events: none; }
.pf-ridge { position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; fill: var(--pf-ridge); }
.pf-saguaro { position: absolute; bottom: 30%; left: 3%; width: clamp(44px, 5vw, 76px); fill: var(--pf-ridge); }
.pf-hero__inner { position: relative; z-index: 1; max-width: var(--wrap); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.pf-eyebrow { font-weight: 700; color: var(--accent); filter: brightness(1.25); margin-bottom: .6rem; font-size: 1.05rem; }
.pal-funnel--dawn .pf-eyebrow, .pal-funnel--day .pf-eyebrow { filter: none; }
.pf-title { font-size: clamp(2.8rem, 1.4rem + 5.4vw, 5.4rem); font-weight: 700; line-height: .98; margin-bottom: .35em; }
.pf-title--small { font-size: var(--step-3); }
.pf-lede { font-size: 1.22rem; color: var(--pf-hero-soft); max-width: 34rem; }
.pf-ctas { display: flex; flex-wrap: wrap; gap: .8rem 1rem; margin: 1.8rem 0 1.4rem; }
.pal-funnel--dusk .pf-hero .pal-btn--ghost { --btn-fg: var(--paper-3); }
.pf-facts { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.3rem; color: var(--pf-hero-soft); font-weight: 600; font-size: .95rem; }
.pf-facts li { display: inline-flex; align-items: center; gap: .35rem; }
.pf-facts .pal-icon { color: var(--accent); }
.pf-hero__media { position: relative; display: grid; place-items: center; }
.pf-glow { position: absolute; width: 120%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--accent) 70%, transparent) 0%, transparent 62%); filter: blur(8px); }
.pf-hero__img { position: relative; width: min(100%, 440px); border-radius: var(--r-label); box-shadow: 0 30px 60px -20px rgba(0,0,0,.6); transform: rotate(2.5deg); }
@media (prefers-reduced-motion: no-preference) {
	.pf-hero__img { animation: pf-float 1.2s var(--ease) both .15s; }
	.pf-glow { animation: pf-glow 2.4s var(--ease) both; }
	.pf-hero__copy > * { animation: pal-fade .8s var(--ease) both; }
	.pf-hero__copy > :nth-child(2) { animation-delay: .1s; }
	.pf-hero__copy > :nth-child(3) { animation-delay: .2s; }
	.pf-hero__copy > :nth-child(4) { animation-delay: .3s; }
	.pf-hero__copy > :nth-child(5) { animation-delay: .4s; }
}
@keyframes pf-float { from { opacity: 0; transform: translateY(40px) rotate(-3deg); } }
@keyframes pf-glow { from { opacity: 0; transform: scale(.6); } }
@media (max-width: 860px) {
	.pf-hero__inner { grid-template-columns: 1fr; }
	.pf-hero__media { order: -1; max-width: 300px; margin: 0 auto; }
}

.pf-section { padding: clamp(3.5rem, 8vw, 6.5rem) var(--gutter); }
.pf-wrap { max-width: var(--wrap); margin: 0 auto; }
.pf-wrap--narrow { max-width: 46rem; }
.pf-h2 { font-size: var(--step-3); }

.pf-moments { background: var(--dusk-1); color: var(--paper); }
.pal-funnel--dawn .pf-moments, .pal-funnel--day .pf-moments { background: var(--saguaro-ink); }
.pf-moments__list { list-style: none; margin: 2rem 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.pf-moments__list li { padding: 1.4rem; border-radius: 16px; border: 1px solid rgba(246,237,217,.18); background: rgba(246,237,217,.04); }
.pf-moments__list h3 { color: var(--paper-3); }
.pf-moments__list p { color: rgba(246,237,217,.78); margin: 0; }
.pf-moments__close { font: 650 var(--step-2)/1.2 var(--f-display); color: var(--sun); margin: 0; }

.pf-ing { list-style: none; margin: 2.2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: clamp(1rem, 3vw, 2.5rem); }
.pf-ing__item { text-align: center; }
.pf-ing__mound { display: block; width: 170px; height: 78px; margin: 0 auto 1.1rem; clip-path: polygon(0 100%, 6% 86%, 14% 70%, 24% 50%, 34% 30%, 42% 16%, 48% 8%, 53% 7%, 59% 13%, 67% 27%, 77% 47%, 87% 68%, 95% 86%, 100% 100%); border-radius: 0; background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--ing) 60%, #fff) 0 6%, transparent 7%), radial-gradient(circle at 60% 55%, color-mix(in srgb, var(--ing) 70%, #000) 0 4%, transparent 5%), radial-gradient(circle at 25% 70%, color-mix(in srgb, var(--ing) 75%, #000) 0 3%, transparent 4%), var(--ing); filter: drop-shadow(0 6px 0 rgba(42,33,24,.08)); box-shadow: inset 0 -16px 22px -8px rgba(0,0,0,.28); }
.pf-ing__item h3 { font-size: var(--step-2); }
.pf-ing__item p { color: var(--ink-2); max-width: 22rem; margin: 0 auto; }

.pf-ritual { background: var(--paper-2); }
.pf-ritual__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.pf-steps { list-style: none; margin: 1.8rem 0 0; padding: 0; counter-reset: s; display: grid; gap: 1.1rem; }
.pf-steps li { counter-increment: s; display: grid; grid-template-columns: 52px 1fr; column-gap: 1rem; }
.pf-steps li::before { content: counter(s); grid-row: span 2; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--accent); color: #fff; font: 700 1.4rem var(--f-display); }
.pf-steps h3 { margin: .2rem 0 .1rem; }
.pf-steps p { margin: 0; color: var(--ink-2); }
.pf-value { text-align: center; padding: 2rem 1.2rem; border-radius: 50%; aspect-ratio: 1; display: grid; place-content: center; background: var(--paper-3); box-shadow: 0 0 0 10px var(--paper-3), 0 0 0 12px var(--accent); max-width: 320px; margin: 0 auto; width: 100%; }
.pf-value__num { font: 700 clamp(3.5rem, 2rem + 5vw, 5.5rem)/1 var(--f-display); color: var(--accent); margin: 0; }
.pf-value__label { font-weight: 700; margin: .3rem 0; }
.pf-value__note { color: var(--ink-2); margin: 0; }
@media (max-width: 860px) { .pf-ritual__grid { grid-template-columns: 1fr; } }

.pf-ticket {
	display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1.5rem 3rem; align-items: center;
	padding: clamp(1.5rem, 4vw, 2.8rem);
	background: var(--paper-3);
	border: 2px dashed var(--accent);
	border-radius: 22px;
	position: relative;
	-webkit-mask: radial-gradient(circle 18px at 0 50%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 18px at 100% 50%, transparent 98%, #000) right / 51% 100% no-repeat;
	        mask: radial-gradient(circle 18px at 0 50%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 18px at 100% 50%, transparent 98%, #000) right / 51% 100% no-repeat;
}
.pf-ticket__copy p { color: var(--ink-2); font-size: 1.1rem; margin: 0; }
.pf-ticket__action { text-align: center; }
.pf-ticket__code:not([hidden]) { display: grid; gap: .8rem; justify-items: center; animation: pal-fade .45s var(--ease); }
.pf-code { display: inline-flex; align-items: center; gap: .6rem; margin: 0; padding: .5rem .5rem .5rem 1.2rem; border-radius: 12px; background: var(--paper-2); font: 700 1.6rem var(--f-display); letter-spacing: .08em; }
.pf-copy { border: 0; background: var(--ink); color: var(--paper); border-radius: 8px; padding: .45rem .8rem; font: 600 .9rem var(--f-body); cursor: pointer; letter-spacing: 0; }
.pf-ticket__price { font-size: 1.15rem; margin: 0; }
.pf-ticket__price strong { font: 700 1.6rem var(--f-display); color: var(--accent); }
.pf-small { font-size: .85rem; color: var(--ink-2); margin: 0; }
.pf-admin-note { background: #FFF1C7; color: #6B4A00; border-radius: 8px; padding: .4rem .7rem; font-size: .82rem; font-weight: 600; margin: 0 0 .6rem; }
@media (max-width: 760px) { .pf-ticket { grid-template-columns: 1fr; text-align: center; } }

.pf-reviews { background: color-mix(in srgb, var(--accent) 12%, var(--paper)); }
.pf-quotes { list-style: none; margin: 2rem 0 1rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.2rem; }
.pf-quote { background: var(--paper-3); border-radius: 18px; padding: 1.5rem; display: flex; flex-direction: column; }
.pf-quotes:has(> :only-child) { max-width: 48rem; }
.pf-quotes:has(> :only-child) blockquote { font-size: var(--step-2); }
.pf-quote.is-sample { outline: 2px dashed #D9A400; }
.pf-quote blockquote { margin: 0 0 1rem; font: 500 1.35rem/1.3 var(--f-display); }
.pf-quote blockquote p::before { content: "“"; color: var(--accent); }
.pf-quote blockquote p::after { content: "”"; color: var(--accent); }
.pf-quote__by { margin: auto 0 0; font-size: .95rem; }
.pf-quote__by span { color: var(--ink-2); }

.pf-offer { background: var(--dusk-2); color: var(--paper); }
.pal-funnel--dawn .pf-offer, .pal-funnel--day .pf-offer { background: var(--saguaro); }
.pf-offer .pf-h2 { color: var(--paper-3); }
.pf-offer__intro { color: rgba(246,237,217,.82); max-width: 40rem; font-size: 1.1rem; }
.pf-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.4rem; margin-top: 2rem; align-items: stretch; }
.pf-plan { position: relative; background: var(--paper-3); color: var(--ink); border-radius: 22px; padding: 1.8rem 1.6rem 1.4rem; display: flex; flex-direction: column; }
.pf-plan h3 { font-size: var(--step-2); }
.pf-plan .pal-checks { margin: 1rem 0 1.4rem; }
.pf-plan .pal-btn { margin-top: auto; }
.pf-plan--best { box-shadow: 0 0 0 4px var(--accent), 0 30px 50px -25px rgba(0,0,0,.6); }
.pf-plan__badge { position: absolute; top: -14px; left: 1.6rem; margin: 0; background: var(--accent); color: #fff; font: 700 .8rem/1 var(--f-body); padding: .5em .9em; border-radius: 999px; }
.pf-plan__price { margin: 0; display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.pf-plan__price strong { font: 700 2.6rem/1 var(--f-display); }
.pf-plan__price del { font-size: 1.1rem; }
.pf-plan__price span { color: var(--ink-2); }
.pf-plan__total { margin: .8rem 0 0; text-align: center; font-size: .92rem; color: var(--ink-2); }
.pf-plan .pal-btn--ghost { --btn-fg: var(--ink); }

.pf-faq__list { margin-top: 1.5rem; }
.pf-closing { text-align: center; background: var(--pf-sky); color: var(--pf-hero-fg); padding-bottom: 3rem; }
.pf-closing .pf-wrap { display: grid; justify-items: center; gap: .6rem; }
.pf-closing .pf-lede { margin: 0 auto 1rem; }
.pf-closing .pal-fda { color: var(--pf-hero-soft); margin-top: 2rem; }
body.is-funnel .pal-footer { margin-top: 0; }

.pf-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: .6rem var(--gutter) calc(.6rem + env(safe-area-inset-bottom)); background: rgba(22,27,51,.94); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: var(--paper); transform: translateY(110%); transition: transform .35s var(--ease); }
.pf-sticky.is-shown { transform: none; }
.pf-sticky__inner { max-width: var(--wrap); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.pf-sticky p { margin: 0; line-height: 1.25; }
.pf-sticky p span { display: block; font-size: .88rem; color: rgba(246,237,217,.78); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-delay: 0s !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
