/* ==========================================================================
   Paws Uni-Fur-Sity — product.css
   The single product page and the product archives.

   Loaded on WooCommerce-routed pages only. WooCommerce's own stylesheets are
   switched off on those pages (see includes/product.php), so everything the
   page needs — notices, quantity, variations, tabs, stars, reviews — is styled
   here. Colours, fonts, radii and shadows come from the tokens in main.css.
   ========================================================================== */

/* ---------- Things WooCommerce's stylesheet used to provide ---------- */
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: var(--white); clip: auto; clip-path: none; color: var(--ink); display: block; height: auto; width: auto;
	left: 8px; top: 8px; padding: 12px 18px; z-index: 100000; border-radius: var(--radius-sm); box-shadow: var(--shadow);
}
.woocommerce-no-js .woocommerce-product-gallery { opacity: 1 !important; }

/* Shared icon masks (stars, cart, chevron) */
.pacad-pdp {
	--star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2.6l2.9 6.2 6.8.8-5 4.7 1.3 6.7L12 17.6l-6 3.4 1.3-6.7-5-4.7 6.8-.8z'/%3E%3C/svg%3E");
	--ic-out: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7'/%3E%3Cpath d='M8 7h9v9'/%3E%3C/svg%3E");
	--ic-cart: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3Cpath d='M2.5 3.5h3l2.4 11.2a1.6 1.6 0 0 0 1.6 1.3h8.1a1.6 1.6 0 0 0 1.6-1.2L21 8H6.2'/%3E%3C/svg%3E");
	--chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23070d38' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--star-off: #d3dae7;
	--leader: rgba(7, 13, 56, .3);
	--pdp-left: 46%;
	--pdp-radius: 22px;
}

/* ==========================================================================
   1. Breadcrumb band
   ========================================================================== */
.pacad-pdp-band {
	position: relative; overflow: hidden; color: var(--paper);
	background: radial-gradient(120% 170% at 85% -40%, var(--royal) 0%, var(--ink) 60%);
	padding: 1.05rem 0 clamp(4.4rem, 8vw, 5.8rem);
}
.pacad-pdp-band::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Ccircle cx='20' cy='20' r='1' fill='%23157a48' opacity='0.12'/%3E%3C/svg%3E");
}
.pacad-pdp-band-inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }

.pacad-crumbs { display: flex; flex: 1 1 auto; align-items: center; gap: .55rem; min-width: 0; font-size: .8rem; font-weight: 500; letter-spacing: .02em; color: #aab3d6; white-space: nowrap; }
.pacad-crumb { flex: 0 0 auto; }
.pacad-crumb:last-child { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; color: var(--white); font-weight: 600; }
.pacad-crumb a { color: #cfd6f2; }
.pacad-crumb a:hover { color: var(--white); }
.pacad-crumb-sep { flex: 0 0 auto; opacity: .45; }

.pacad-pdp-band .pacad-cart-link { flex: 0 0 auto; background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .22); color: var(--paper); }
.pacad-pdp-band .pacad-cart-link:hover { background: rgba(255, 255, 255, .13); border-color: var(--gilt-2); color: var(--white); }
.pacad-pdp-band .pacad-cart-count { background: rgba(255, 255, 255, .18); color: var(--white); }
.pacad-pdp-band .pacad-cart-link.has-items { border-color: var(--gilt-2); }
.pacad-pdp-band .pacad-cart-link.has-items .pacad-cart-count { background: var(--gilt-2); }

/* The card rides up over the band. */
.pacad-pdp { position: relative; z-index: 1; overflow-x: clip; margin-top: calc(-1 * clamp(2.6rem, 5vw, 3.6rem)); padding-bottom: clamp(3rem, 6vw, 5rem); }

/* ==========================================================================
   2. Notices ("added to your cart", errors)
   ========================================================================== */
.pacad-pdp .woocommerce-notices-wrapper { display: grid; gap: .7rem; }
.pacad-pdp .woocommerce-notices-wrapper:not(:empty) { margin-bottom: 1.1rem; }
.pacad-pdp .woocommerce-message,
.pacad-pdp .woocommerce-info,
.pacad-pdp .woocommerce-error {
	display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin: 0; padding: .95rem 1.2rem; list-style: none;
	background: var(--white); color: var(--ink-text); font-size: .95rem;
	border: 1px solid rgba(21, 122, 72, .3); border-left: 4px solid var(--green); border-radius: var(--radius-sm); box-shadow: var(--shadow);
}
.pacad-pdp .woocommerce-error { border-color: rgba(179, 38, 30, .3); border-left-color: #b3261e; }
.pacad-pdp .woocommerce-message:focus,
.pacad-pdp .woocommerce-info:focus,
.pacad-pdp .woocommerce-error:focus { outline: none; }
.pacad-pdp .woocommerce-error li { margin: 0; }
.pacad-pdp .woocommerce-message .button,
.pacad-pdp .woocommerce-info .button,
.pacad-pdp .woocommerce-message .wc-forward {
	order: 2; margin-left: auto; display: inline-block; padding: .6em 1.2em; border-radius: 999px;
	font: 700 .85rem var(--ui); color: var(--white); text-decoration: none;
	background: linear-gradient(180deg, var(--gilt-2), var(--gilt));
}
.pacad-pdp .woocommerce-message .button:hover { color: var(--white); filter: brightness(1.06); }

/* ==========================================================================
   3. The product card — gallery | details
   ========================================================================== */
.pacad-pdp .product { position: relative; }

.pacad-pdp-card {
	position: relative; display: grid; grid-template-columns: var(--pdp-left) minmax(0, 1fr);
	background: var(--white); border: 1px solid var(--line); border-radius: var(--pdp-radius); box-shadow: var(--shadow);
}
/* Parchment mat behind the gallery, full height of the card. */
.pacad-pdp-card::before {
	content: ""; position: absolute; inset: 0 auto 0 0; width: var(--pdp-left);
	border-radius: calc(var(--pdp-radius) - 1px) 0 0 calc(var(--pdp-radius) - 1px);
	background: radial-gradient(95% 75% at 50% 32%, #f7fbf8 0%, var(--parchment) 62%, #dde9e2 100%);
	border-right: 1px solid var(--line);
}

/* ---------- Seal: "Sale" / "Free" ---------- */
.pacad-seal {
	position: absolute; z-index: 6; top: -14px; left: -12px; width: 80px; height: 80px; margin: 0;
	display: grid; place-content: center; text-align: center; line-height: 1; text-transform: uppercase; color: var(--white);
	border-radius: 50%; transform: rotate(-9deg);
	background: radial-gradient(circle at 30% 24%, var(--gilt-2), var(--green) 58%, var(--green-2));
	box-shadow: 0 0 0 3px var(--white), 0 0 0 4.5px rgba(21, 122, 72, .55), 0 14px 26px -10px rgba(7, 13, 56, .6);
}
.pacad-seal::before { content: ""; position: absolute; inset: 6px; border: 1.5px dashed rgba(255, 255, 255, .6); border-radius: 50%; }
.pacad-seal-main { position: relative; font-family: var(--display); font-weight: 800; font-size: .92rem; letter-spacing: .1em; }
.pacad-seal-sub { position: relative; display: block; margin-top: .28rem; font-family: var(--ui); font-weight: 800; font-size: .72rem; letter-spacing: .04em; }
.pacad-seal--sale {
	background: radial-gradient(circle at 30% 24%, #22388f, var(--royal) 58%, var(--ink));
	box-shadow: 0 0 0 3px var(--white), 0 0 0 4.5px rgba(17, 32, 95, .5), 0 14px 26px -10px rgba(7, 13, 56, .6);
}
.pacad-seal--sale::before { border-color: rgba(42, 165, 102, .8); }

/* ---------- Gallery ---------- */
.pacad-pdp .woocommerce-product-gallery {
	position: relative; z-index: 1; grid-column: 1; align-self: center; min-width: 0; margin: 0;
	padding: clamp(1.6rem, 3.6vw, 3.1rem); float: none; width: auto;
}
.pacad-pdp .woocommerce-product-gallery__wrapper { margin: 0; }
.pacad-pdp .woocommerce-product-gallery__image { margin: 0; }
.pacad-pdp .woocommerce-product-gallery__image a { display: block; cursor: zoom-in; }
.pacad-pdp .woocommerce-product-gallery__image img,
.pacad-pdp .woocommerce-product-gallery__image--placeholder img { display: block; width: 100%; height: auto; }
/* With the slider running, the viewport is the frame — shadow + corners live there. */
.pacad-pdp .flex-viewport,
.pacad-pdp .woocommerce-product-gallery:not(.flex-ready) .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child {
	border-radius: 8px; overflow: hidden;
	box-shadow: 0 34px 52px -30px rgba(7, 13, 56, .62), 0 10px 22px -12px rgba(7, 13, 56, .42);
}
.pacad-pdp .woocommerce-product-gallery__image--placeholder {
	position: relative; display: grid; place-items: center; aspect-ratio: 4 / 5; border-radius: 8px;
	background: radial-gradient(120% 90% at 50% 0%, var(--royal) 0%, var(--ink) 72%);
	box-shadow: 0 34px 52px -30px rgba(7, 13, 56, .62), 0 10px 22px -12px rgba(7, 13, 56, .42);
}
.pacad-pdp .woocommerce-product-gallery__image--placeholder::before {
	content: ""; position: absolute; inset: 14px; border: 1.5px solid rgba(42, 165, 102, .55); border-radius: 4px; pointer-events: none;
}
.pacad-pdp .woocommerce-product-gallery__image--placeholder img { width: 38%; max-width: 160px; height: auto; border-radius: 18%; box-shadow: 0 14px 30px -10px rgba(0, 0, 0, .55); }

/* Thumbnails */
.pacad-pdp .flex-control-thumbs { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.pacad-pdp .flex-control-thumbs li { width: 62px; height: 62px; margin: 0; padding: 0; }
.pacad-pdp .flex-control-thumbs img {
	width: 100%; height: 100%; object-fit: cover; cursor: pointer; opacity: .6;
	border: 2px solid transparent; border-radius: 10px; background: var(--white);
	transition: opacity .15s ease, border-color .15s ease, transform .15s ease;
}
.pacad-pdp .flex-control-thumbs img:hover { opacity: 1; transform: translateY(-2px); }
.pacad-pdp .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--green); }

/* Enlarge button (hover-zoom trigger) */
.pacad-pdp .woocommerce-product-gallery__trigger {
	position: absolute; z-index: 9; top: clamp(1.9rem, 3.9vw, 3.4rem); right: clamp(1.9rem, 3.9vw, 3.4rem);
	display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; font-size: 0; text-decoration: none;
	background: var(--white); box-shadow: var(--shadow-sm); transition: transform .15s ease;
}
.pacad-pdp .woocommerce-product-gallery__trigger:hover { transform: scale(1.06); }
.pacad-pdp .woocommerce-product-gallery__trigger span { display: none; }
.pacad-pdp .woocommerce-product-gallery__trigger::before {
	content: ""; width: 18px; height: 18px; background: var(--ink);
	-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' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.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' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ==========================================================================
   4. Summary column
   ========================================================================== */
.pacad-pdp .summary {
	position: relative; z-index: 1; grid-column: 2; min-width: 0; margin: 0; float: none; width: auto;
	display: flex; flex-direction: column;
	padding: clamp(1.6rem, 3.6vw, 3.1rem) clamp(1.4rem, 3.4vw, 3rem) clamp(1.5rem, 3vw, 2.6rem) clamp(1.5rem, 3.2vw, 2.8rem);
}

.pacad-pdp-eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .55rem; margin: 0 0 .8rem; }
.pacad-pdp-eyebrow a { color: var(--gilt); }
.pacad-pdp-eyebrow a:hover { color: var(--green-2); }
.pacad-pdp-eyebrow > span { color: var(--muted); }
.pacad-pdp-eyebrow-sep { opacity: .6; }

.pacad-pdp .product_title {
	margin: 0 0 .75rem; font-family: var(--display); font-weight: 700; color: var(--ink);
	font-size: clamp(1.6rem, 2.7vw, 2.3rem); line-height: 1.16; letter-spacing: .005em; text-wrap: balance;
}

/* Stars (pure CSS, no icon font) */
.pacad-pdp .star-rating {
	position: relative; display: inline-block; flex: 0 0 auto; width: 5.5em; height: 1.05em; overflow: hidden; line-height: 1; font-size: 1rem;
	background: var(--star-off);
	-webkit-mask: var(--star) 0 0 / 1.1em 100% repeat-x; mask: var(--star) 0 0 / 1.1em 100% repeat-x;
}
.pacad-pdp .star-rating > span {
	position: absolute; inset: 0 auto 0 0; display: block; overflow: hidden; font-size: 0; white-space: nowrap;
	background: linear-gradient(90deg, var(--gilt-2), var(--green));
}
.pacad-pdp .woocommerce-product-rating { display: flex; align-items: center; flex-wrap: wrap; gap: .3rem .7rem; margin: 0 0 .9rem; font-size: .88rem; }
.pacad-pdp .woocommerce-review-link { color: var(--muted); font-weight: 500; }
.pacad-pdp .woocommerce-review-link:hover { color: var(--green-2); text-decoration: underline; }

/* Price */
.pacad-pdp .summary .price {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .75rem; margin: 0 0 1.1rem;
	font-family: var(--display); font-weight: 700; font-size: clamp(1.75rem, 2.8vw, 2.2rem); line-height: 1.1; color: var(--green-2);
}
.pacad-pdp .price ins { order: 1; background: none; text-decoration: none; }
.pacad-pdp .price del { order: 2; font-family: var(--ui); font-weight: 500; font-size: 1.05rem; color: var(--muted); opacity: .9; }
.pacad-pdp .price .woocommerce-price-suffix { order: 3; font: 500 .8rem var(--ui); color: var(--muted); }
.pacad-price-free { letter-spacing: .03em; }

.pacad-pdp .woocommerce-product-details__short-description {
	max-width: 56ch; margin: 0 0 1.6rem; font-family: var(--editorial); font-size: 1.2rem; line-height: 1.6; color: var(--ink-text);
}
.pacad-pdp .woocommerce-product-details__short-description > :last-child { margin-bottom: 0; }
.pacad-pdp .woocommerce-product-details__short-description p { margin: 0 0 .8rem; }

/* ---------- Purchase area ---------- */
.pacad-cta { margin: 0 0 1.1rem; padding-top: 1.4rem; border-top: 1px solid var(--line); }
.pacad-pdp form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: .8rem; margin: 0; }
.pacad-pdp form.cart .single_add_to_cart_button { flex: 1 1 210px; }
.pacad-pdp form.variations_form,
.pacad-pdp form.grouped_form { display: block; }

.pacad-pdp .single_add_to_cart_button,
.pacad-pdp .woocommerce-Button.button.alt,
.pacad-pdp #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: .6em; min-height: 3.2rem; padding: .95em 1.9em;
	font: 700 1.02rem/1 var(--ui); color: var(--white); text-align: center; cursor: pointer;
	background: linear-gradient(180deg, var(--gilt-2), var(--gilt)); border: 1.5px solid transparent; border-radius: 999px; box-shadow: var(--shadow-sm);
	transition: transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.pacad-pdp .single_add_to_cart_button::before {
	content: ""; flex: 0 0 auto; width: 1.2em; height: 1.2em; background: currentColor;
	-webkit-mask: var(--ic-cart) center / contain no-repeat; mask: var(--ic-cart) center / contain no-repeat;
}
.pacad-pdp .product-type-external .single_add_to_cart_button::before { -webkit-mask-image: var(--ic-out); mask-image: var(--ic-out); }
.pacad-pdp .single_add_to_cart_button:hover,
.pacad-pdp #respond input#submit:hover { color: var(--white); box-shadow: 0 10px 26px -10px rgba(21, 122, 72, .7); transform: translateY(-1px); }
.pacad-pdp .single_add_to_cart_button:active { transform: translateY(1px); }
.pacad-pdp .single_add_to_cart_button.disabled,
.pacad-pdp .single_add_to_cart_button:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; transform: none; }

/* Quantity stepper */
.pacad-pdp .quantity {
	display: inline-flex; align-items: center; flex: 0 0 auto; height: 3.2rem; overflow: hidden;
	background: var(--white); border: 1.5px solid var(--line); border-radius: 999px; transition: border-color .15s ease, box-shadow .15s ease;
}
.pacad-pdp .quantity:focus-within { border-color: var(--gilt); box-shadow: var(--ring); }
.pacad-pdp .quantity .qty {
	width: 2.8rem; height: 100%; padding: 0; text-align: center; background: transparent; border: 0; border-radius: 0;
	font: 700 1rem var(--ui); color: var(--ink); -moz-appearance: textfield; appearance: textfield;
}
.pacad-pdp .quantity .qty:focus-visible { box-shadow: none; }
.pacad-pdp .quantity .qty::-webkit-inner-spin-button,
.pacad-pdp .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.pacad-qty-btn { position: relative; width: 2.9rem; height: 100%; padding: 0; background: transparent; border: 0; color: var(--ink); cursor: pointer; transition: background .15s ease, color .15s ease; }
.pacad-qty-btn::before,
.pacad-qty-btn--plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; border-radius: 2px; background: currentColor; transform: translate(-50%, -50%); }
.pacad-qty-btn--plus::after { transform: translate(-50%, -50%) rotate(90deg); }
.pacad-qty-btn:hover:not(:disabled) { background: var(--parchment); color: var(--green-2); }
.pacad-qty-btn:disabled { opacity: .3; cursor: default; }
.pacad-qty-btn:focus-visible { box-shadow: inset var(--ring); border-radius: 999px; }
/* A download is one file: no stepper. */
.pacad-pdp .product.downloadable .quantity,
.pacad-pdp form.cart .quantity:has(> input[type="hidden"]),
.pacad-pdp form.cart .quantity.hidden { display: none; }

/* Variations */
.pacad-pdp table.variations,
.pacad-pdp table.variations tbody,
.pacad-pdp table.variations tr,
.pacad-pdp table.variations th,
.pacad-pdp table.variations td { display: block; padding: 0; border: 0; text-align: left; }
.pacad-pdp table.variations { width: 100%; margin: 0 0 .5rem; }
.pacad-pdp table.variations tr { margin: 0 0 .95rem; }
.pacad-pdp table.variations .label label { display: block; margin: 0 0 .4rem; font: 700 .72rem var(--ui); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.pacad-pdp table.variations select {
	width: 100%; padding: .85em 2.8em .85em 1.2em; cursor: pointer; appearance: none; -webkit-appearance: none;
	font: 600 1rem var(--ui); color: var(--ink);
	background: var(--white) var(--chev) no-repeat right 1.2em center / 12px; border: 1.5px solid var(--line); border-radius: 999px;
}
.pacad-pdp table.variations select:focus { border-color: var(--gilt); }
.pacad-pdp .reset_variations { display: inline-block; margin-top: .5rem; font-size: .8rem; font-weight: 600; color: var(--muted); text-decoration: underline; }
.pacad-pdp .reset_variations:hover { color: var(--green-2); }
.pacad-pdp .single_variation_wrap .woocommerce-variation:not(:empty) { margin: 0 0 1rem; padding: .85rem 1rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.pacad-pdp .woocommerce-variation-price .price { margin: 0; font-size: 1.35rem; }
.pacad-pdp .woocommerce-variation-description p { margin: 0 0 .5rem; font-size: .92rem; color: var(--muted); }
.pacad-pdp .woocommerce-variation > :last-child { margin-bottom: 0; }
.pacad-pdp .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .8rem; }
.pacad-pdp .woocommerce-variation-add-to-cart .single_add_to_cart_button { flex: 1 1 210px; }

/* Stock */
.pacad-pdp p.stock { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 .9rem; font-size: .88rem; font-weight: 700; color: var(--green-2); }
.pacad-pdp p.stock::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: currentColor; }
.pacad-pdp p.stock.out-of-stock { color: #b3261e; }
.pacad-pdp p.stock.available-on-backorder { color: #96650a; }
.pacad-pdp .woocommerce-variation-availability p.stock { margin: 0; }

/* Grouped products */
.pacad-pdp table.group_table { width: 100%; margin: 0 0 1.2rem; border-collapse: collapse; }
.pacad-pdp table.group_table tbody { display: block; }
.pacad-pdp table.group_table tr { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .6rem 1rem; padding: .85rem 0; border-bottom: 1px dashed var(--line); }
.pacad-pdp table.group_table td { display: block; padding: 0; border: 0; }
.pacad-pdp table.group_table .woocommerce-grouped-product-list-item__label { font-weight: 700; }
.pacad-pdp table.group_table .woocommerce-grouped-product-list-item__label a { color: var(--ink); }
.pacad-pdp table.group_table .woocommerce-grouped-product-list-item__label a:hover { color: var(--green); }
.pacad-pdp table.group_table .woocommerce-grouped-product-list-item__price { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; gap: .15rem .55rem; text-align: right; font-weight: 700; color: var(--green-2); }
.pacad-pdp table.group_table .woocommerce-grouped-product-list-item__price del { font-weight: 500; color: var(--muted); }
.pacad-pdp table.group_table .woocommerce-grouped-product-list-item__price ins { background: none; text-decoration: none; }
.pacad-pdp table.group_table p.stock { flex: 0 0 100%; justify-content: flex-end; margin: 0; font-size: .78rem; font-weight: 600; }
.pacad-pdp form.grouped_form .single_add_to_cart_button { width: 100%; }
.pacad-pdp table.group_table .quantity { height: 2.7rem; }
.pacad-pdp table.group_table .pacad-qty-btn { width: 2.4rem; }
.pacad-pdp table.group_table .quantity .qty { width: 2.2rem; }

/* Free downloads (buttons come from includes/store.php) */
.pacad-pdp .pacad-free-dl { gap: .65rem; }
.pacad-pdp .pacad-free-dl .pacad-btn { width: 100%; }
.pacad-pdp .pacad-free-dl .pacad-dl-ic { width: 26px; height: 26px; font-size: .95rem; }
.pacad-pdp .pacad-free-note { margin: .4rem 0 0; font-size: .88rem; }

/* Express-checkout buttons added by payment plugins (Apple Pay, Google Pay, Link…) */
.pacad-cta #wc-stripe-express-checkout-element,
.pacad-cta #wc-stripe-payment-request-wrapper,
.pacad-cta #wcpay-express-checkout-element,
.pacad-cta .wcpay-payment-request-wrapper,
.pacad-cta .ppc-button-wrapper { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; margin-top: 1rem !important; clear: both; }
.pacad-cta iframe { max-width: 100%; }
.pacad-cta #wc-stripe-express-checkout-button-separator,
.pacad-cta #wc-stripe-payment-request-button-separator,
.pacad-cta #wcpay-payment-request-button-separator { margin: .9rem 0 0 !important; font: 700 .72rem var(--ui); letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }

/* Some payment plugins print their buttons inside the cart form (after the quantity):
   keep quantity and "Add to cart" on the first row and everything else below them. */
.pacad-pdp form.cart .single_add_to_cart_button,
.pacad-pdp .woocommerce-variation-add-to-cart .single_add_to_cart_button { order: 1; }
.pacad-pdp form.cart > :not(.quantity):not(.single_add_to_cart_button),
.pacad-pdp .woocommerce-variation-add-to-cart > :not(.quantity):not(.single_add_to_cart_button) { order: 2; flex: 0 0 100%; min-width: 0; }

/* Reassurance line */
.pacad-pdp-assure { display: flex; align-items: flex-start; gap: .75rem; margin: 0 0 1.7rem; font-size: .92rem; line-height: 1.5; color: var(--muted); }
.pacad-pdp-assure .pacad-ic { flex: 0 0 auto; margin-top: .05rem; color: var(--green); }
.pacad-cta + .pacad-cat-card,
.pacad-cta + .pacad-cat-card { margin-top: 1.7rem; }

/* ---------- Catalogue card ---------- */
.pacad-cat-card {
	margin-top: auto; padding: 1rem 1.3rem 1.1rem; font-family: var(--ui);
	background: var(--parchment); border: 1px solid rgba(21, 122, 72, .24); border-top: 3px solid var(--green); border-radius: 12px;
}
.pacad-cat-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 0 0 .4rem; padding: 0 0 .7rem; border-bottom: 1px solid rgba(21, 122, 72, .24); }
.pacad-cat-title { margin: 0; font: 500 .7rem var(--mono); letter-spacing: .2em; text-transform: uppercase; color: var(--green-2); }
.pacad-cat-no { font: 500 .78rem var(--mono); letter-spacing: .04em; color: var(--ink); }
.pacad-cat-list { margin: 0; }
.pacad-cat-row { display: flex; align-items: baseline; gap: .6rem; padding: .4rem 0; }
.pacad-cat-row dt {
	display: flex; flex: 1 1 auto; align-items: baseline; gap: .55rem; margin: 0;
	font: 500 .68rem var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); white-space: nowrap;
}
.pacad-cat-row dt::after { content: ""; flex: 1 1 auto; min-width: .8rem; border-bottom: 1px dotted var(--leader); transform: translateY(-.28em); }
.pacad-cat-row dd { flex: 0 1 auto; max-width: 68%; margin: 0; text-align: right; font: 600 .9rem/1.45 var(--ui); color: var(--ink); }
.pacad-cat-row dd a { color: var(--green-2); }
.pacad-cat-row dd a:hover { color: var(--green); text-decoration: underline; }
.pacad-cat-dim { font-weight: 500; color: var(--muted); }

.pacad-included { display: grid; gap: .6rem; margin: .5rem 0 0; padding: 0; list-style: none; }
.pacad-included li {
	position: relative; padding-left: 1.9rem; font-size: .95rem; line-height: 1.45; color: var(--ink-text);
}
.pacad-included li::before {
	content: ""; position: absolute; left: 0; top: .12em; width: 1.2rem; height: 1.2rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%23ffffff'/%3E%3Cpath d='M7 12.5l3.2 3.2L17 8.8' fill='none' stroke='%23157a48' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ==========================================================================
   5. Tabs — description / details / reviews
   ========================================================================== */
.pacad-pdp .woocommerce-tabs { max-width: 880px; margin: clamp(2.4rem, 4.5vw, 3.6rem) auto 0; }
.pacad-pdp .wc-tabs {
	display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem; width: fit-content; max-width: 100%; margin: 0 auto 1.3rem; padding: .4rem; list-style: none;
	background: var(--parchment); border: 1px solid var(--line); border-radius: 999px;
}
.pacad-pdp .wc-tabs li { margin: 0; padding: 0; }
.pacad-pdp .wc-tabs li a {
	display: block; padding: .65rem 1.5rem; border-radius: 999px; white-space: nowrap;
	font: 700 .95rem var(--display); color: var(--ink); transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}
.pacad-pdp .wc-tabs li a:hover { background: rgba(21, 122, 72, .1); }
.pacad-pdp .wc-tabs li.active a { background: var(--ink); color: var(--white); box-shadow: var(--shadow-sm); }
/* A lone tab is just a heading: hide the switch. */
.pacad-pdp .wc-tabs:has(> li:only-child) { display: none; }

.pacad-pdp .woocommerce-Tabs-panel {
	margin: 0; padding: clamp(1.4rem, 3.2vw, 2.5rem); background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-sm);
}
.pacad-pdp .woocommerce-Tabs-panel > h2:first-child,
.pacad-pdp #reviews .woocommerce-Reviews-title {
	display: flex; align-items: center; gap: 1rem; margin: 0 0 1.2rem; font: 700 1.3rem/1.25 var(--display); color: var(--ink);
}
.pacad-pdp .woocommerce-Tabs-panel > h2:first-child::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--line), transparent); }
.pacad-pdp #reviews .woocommerce-Reviews-title span { font-weight: 700; }

/* Description typography */
.pacad-pdp .woocommerce-Tabs-panel--description { font-family: var(--editorial); font-size: 1.16rem; line-height: 1.7; color: var(--ink-text); }
.pacad-pdp .woocommerce-Tabs-panel--description p { margin: 0 0 1.1rem; }
.pacad-pdp .woocommerce-Tabs-panel--description h3,
.pacad-pdp .woocommerce-Tabs-panel--description h4 { margin: 1.8rem 0 .6rem; font-family: var(--display); font-weight: 700; font-size: 1.1rem; line-height: 1.3; color: var(--ink); }
.pacad-pdp .woocommerce-Tabs-panel--description a { color: var(--green-2); text-decoration: underline; text-underline-offset: .15em; }
.pacad-pdp .woocommerce-Tabs-panel--description a:hover { color: var(--green); }
.pacad-pdp .woocommerce-Tabs-panel--description img { height: auto; border-radius: var(--radius-sm); }
.pacad-pdp .woocommerce-Tabs-panel--description ul,
.pacad-pdp .woocommerce-Tabs-panel--description ol { margin: 0 0 1.2rem; padding: 0; list-style: none; display: grid; gap: .45rem; }
.pacad-pdp .woocommerce-Tabs-panel--description ol { counter-reset: pdp; }
.pacad-pdp .woocommerce-Tabs-panel--description li { position: relative; padding-left: 1.6rem; }
.pacad-pdp .woocommerce-Tabs-panel--description ul > li::before {
	content: ""; position: absolute; left: .25rem; top: .62em; width: .45rem; height: .45rem; background: var(--gilt-2); transform: rotate(45deg);
}
.pacad-pdp .woocommerce-Tabs-panel--description ol > li { counter-increment: pdp; }
.pacad-pdp .woocommerce-Tabs-panel--description ol > li::before { content: counter(pdp) "."; position: absolute; left: 0; font: 700 .85rem var(--mono); color: var(--green); top: .35em; }
.pacad-pdp .woocommerce-Tabs-panel--description blockquote { margin: 1.5rem 0; padding: .1rem 0 .1rem 1.3rem; border-left: 3px solid var(--green); }
.pacad-pdp .woocommerce-Tabs-panel--description blockquote p { margin: 0; font-size: 1.32rem; font-style: italic; line-height: 1.5; color: var(--ink); }

/* Details table */
.pacad-pdp table.woocommerce-product-attributes { width: 100%; margin: 0; border-collapse: collapse; }
.pacad-pdp table.woocommerce-product-attributes th,
.pacad-pdp table.woocommerce-product-attributes td { padding: .85rem 0; text-align: left; vertical-align: top; border-bottom: 1px dotted var(--leader); }
.pacad-pdp table.woocommerce-product-attributes tr:last-child th,
.pacad-pdp table.woocommerce-product-attributes tr:last-child td { border-bottom: 0; }
.pacad-pdp table.woocommerce-product-attributes th { width: 34%; padding-right: 1rem; font: 500 .72rem/1.6 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.pacad-pdp table.woocommerce-product-attributes td { font-weight: 600; color: var(--ink); }
.pacad-pdp table.woocommerce-product-attributes td p { margin: 0; font: inherit; }
.pacad-pdp table.woocommerce-product-attributes td a { color: var(--green-2); }

/* ---------- Reviews ---------- */
.pacad-pdp #reviews ol.commentlist { display: grid; gap: 1rem; margin: 0 0 2rem; padding: 0; list-style: none; }
.pacad-pdp #reviews ol.commentlist li { margin: 0; padding: 0; }
.pacad-pdp #reviews .comment_container { display: flex; align-items: flex-start; gap: 1rem; padding: 1.1rem 1.25rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.pacad-pdp #reviews img.avatar { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 50%; object-fit: cover; background: var(--line); }
.pacad-pdp #reviews .comment-text { flex: 1 1 auto; min-width: 0; }
.pacad-pdp #reviews .comment-text .star-rating { margin: .1rem 0 .45rem; font-size: .92rem; }
.pacad-pdp #reviews .comment-text .meta { margin: 0 0 .5rem; font-size: .85rem; color: var(--muted); }
.pacad-pdp #reviews .woocommerce-review__author { color: var(--ink); font-weight: 700; }
.pacad-pdp #reviews .woocommerce-review__verified { font-style: normal; font-weight: 600; color: var(--green-2); }
.pacad-pdp #reviews .woocommerce-review__dash { opacity: .5; }
.pacad-pdp #reviews .description p { margin: 0; font-family: var(--editorial); font-size: 1.12rem; line-height: 1.6; color: var(--ink-text); }
.pacad-pdp #reviews .woocommerce-noreviews,
.pacad-pdp #reviews .woocommerce-verification-required { margin: 0 0 1.5rem; font-family: var(--editorial); font-size: 1.1rem; color: var(--muted); font-style: italic; }

.pacad-pdp #review_form_wrapper { padding-top: 1.6rem; border-top: 1px dashed var(--line); }
.pacad-pdp #review_form #reply-title { display: block; margin: 0 0 .9rem; font: 700 1.1rem var(--display); color: var(--ink); }
.pacad-pdp #review_form .comment-notes { margin: 0 0 1rem; font-size: .88rem; color: var(--muted); }
.pacad-pdp #review_form p { margin: 0 0 1rem; }
.pacad-pdp #review_form label { display: block; margin: 0 0 .35rem; font: 700 .78rem var(--ui); letter-spacing: .04em; color: var(--ink); }
.pacad-pdp #review_form .required { color: #b3261e; text-decoration: none; }
.pacad-pdp #review_form input[type="text"],
.pacad-pdp #review_form input[type="email"],
.pacad-pdp #review_form textarea,
.pacad-pdp #review_form select {
	width: 100%; padding: .8em 1em; font: 500 1rem var(--ui); color: var(--ink-text); background: var(--white); border: 1.5px solid var(--line); border-radius: 12px;
}
.pacad-pdp #review_form textarea { min-height: 8.5rem; resize: vertical; }
.pacad-pdp #review_form input:focus,
.pacad-pdp #review_form textarea:focus,
.pacad-pdp #review_form select:focus { border-color: var(--gilt); }
.pacad-pdp #review_form .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: .6rem; }
.pacad-pdp #review_form .comment-form-cookies-consent input { width: auto; margin-top: .3em; }
.pacad-pdp #review_form .comment-form-cookies-consent label { margin: 0; font-weight: 500; font-size: .88rem; }
.pacad-pdp #review_form #submit { width: auto; }

/* Star picker (WooCommerce's script swaps the <select> for these links) */
.pacad-pdp p.stars { margin: 0 0 1rem; }
.pacad-pdp p.stars span { display: inline-flex; gap: .15rem; }
.pacad-pdp p.stars a {
	display: block; width: 1.8rem; height: 1.8rem; overflow: hidden; text-indent: -999em; background: var(--star-off); transition: background .12s ease, transform .12s ease;
	-webkit-mask: var(--star) center / contain no-repeat; mask: var(--star) center / contain no-repeat;
}
.pacad-pdp p.stars a:hover { transform: scale(1.12); }
.pacad-pdp p.stars:hover a,
.pacad-pdp p.stars.selected a { background: var(--gilt-2); }
.pacad-pdp p.stars.selected a.active ~ a { background: var(--star-off); }
.pacad-pdp p.stars.selected:hover a { background: var(--gilt-2); }
.pacad-pdp p.stars a:hover ~ a,
.pacad-pdp p.stars.selected:hover a:hover ~ a { background: var(--star-off); }

/* ==========================================================================
   6. "More from the Library / Shop"
   ========================================================================== */
.pacad-pdp-more { margin-top: clamp(2.8rem, 5vw, 4.2rem); }
.pacad-pdp-more-head { display: flex; align-items: center; gap: 1rem; margin: 0 0 1.4rem; }
.pacad-pdp-more-head h2 { display: flex; flex: 1 1 auto; align-items: center; gap: 1.2rem; margin: 0; font: 700 clamp(1.25rem, 2.2vw, 1.65rem)/1.2 var(--display); color: var(--ink); }
.pacad-pdp-more-head h2::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--line), transparent); }
.pacad-pdp-more-link { flex: 0 0 auto; font: 700 .88rem var(--ui); color: var(--green-2); white-space: nowrap; }
.pacad-pdp-more-link:hover { color: var(--green); text-decoration: underline; }

/* While a card's "Add to cart" is working (the added state is styled in main.css) */
.pacad-prod-btn.loading { opacity: .65; pointer-events: none; }

/* ==========================================================================
   7. Archives (shop, categories, tags, search)
   ========================================================================== */
.pacad-pagination { display: flex; justify-content: center; margin-top: 2.4rem; }
.pacad-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; }
.pacad-pagination .page-numbers {
	display: inline-grid; place-items: center; min-width: 2.6rem; height: 2.6rem; padding: 0 .85rem;
	font-weight: 700; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 999px;
}
.pacad-pagination a.page-numbers:hover { border-color: var(--gilt); color: var(--green); }
.pacad-pagination .page-numbers.current { background: var(--ink); border-color: var(--ink); color: var(--white); }
.pacad-archive-back { margin: 2.2rem 0 0; text-align: center; font-weight: 600; }

/* ==========================================================================
   8. Buy bar (small screens)
   ========================================================================== */
.pacad-buybar { display: none; }

/* ==========================================================================
   9. Responsive
   ========================================================================== */
@media (max-width: 1000px) {
	.pacad-pdp-card { --pdp-left: 44%; }
}

@media (max-width: 860px) {
	.pacad-pdp { margin-top: -2.4rem; }
	.pacad-pdp-band { padding-bottom: 3.8rem; }

	.pacad-pdp-card { grid-template-columns: minmax(0, 1fr); }
	.pacad-pdp-card::before { display: none; }
	.pacad-pdp .woocommerce-product-gallery {
		grid-column: 1; padding: 2.4rem 1.4rem 1.6rem;
		background: radial-gradient(95% 80% at 50% 30%, #f7fbf8 0%, var(--parchment) 62%, #dde9e2 100%);
		border-bottom: 1px solid var(--line); border-radius: calc(var(--pdp-radius) - 1px) calc(var(--pdp-radius) - 1px) 0 0;
	}
	.pacad-pdp .woocommerce-product-gallery__trigger { top: 2.9rem; right: 1.9rem; }
	.pacad-pdp .woocommerce-product-gallery .flex-viewport,
	.pacad-pdp .woocommerce-product-gallery__wrapper { max-width: 440px; margin-inline: auto; }
	.pacad-pdp .summary { grid-column: 1; padding: 1.6rem 1.4rem 1.6rem; }
	.pacad-seal { top: -12px; left: -8px; width: 70px; height: 70px; }
	.pacad-seal-main { font-size: .82rem; }

	.pacad-cat-card { margin-top: 1.4rem; }
	.pacad-pdp-assure { margin-bottom: 0; }

	/* Buy bar */
	.pacad-buybar {
		display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
		padding: .7rem var(--gap) calc(.7rem + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
		border-top: 1px solid var(--line); box-shadow: 0 -16px 32px -20px rgba(7, 13, 56, .55);
		transform: translateY(110%); visibility: hidden; transition: transform .25s ease, visibility 0s linear .25s;
	}
	.pacad-buybar.is-visible { transform: none; visibility: visible; transition: transform .25s ease; }
	.pacad-buybar-inner { display: flex; align-items: center; gap: 1rem; max-width: 560px; margin-inline: auto; }
	.pacad-buybar-info { display: grid; flex: 1 1 auto; min-width: 0; gap: .1rem; }
	.pacad-buybar-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 700 .82rem var(--display); color: var(--ink); }
	.pacad-buybar-price { font: 700 1rem var(--ui); color: var(--green-2); }
	.pacad-buybar-price del { font-weight: 500; font-size: .85rem; color: var(--muted); }
	.pacad-buybar-price ins { background: none; text-decoration: none; }
	.pacad-buybar-btn { flex: 0 0 auto; padding: .85em 1.4em; }
	body.pacad-buybar-on { padding-bottom: 4.8rem; }
}

@media (max-width: 560px) {
	.pacad-pdp-band-inner .pacad-cart-link { padding: .45rem .75rem; }
	/* Small screens: only the last two crumbs ("Library / Title"). */
	.pacad-crumbs > :nth-last-child(n+4) { display: none; }
	.pacad-pdp .wc-tabs { border-radius: 24px; }
	.pacad-pdp .wc-tabs li a { padding: .6rem 1.1rem; font-size: .88rem; }
	.pacad-pdp #reviews .comment_container { gap: .8rem; padding: 1rem; }
	.pacad-pdp #reviews img.avatar { flex-basis: 42px; width: 42px; height: 42px; }
	.pacad-pdp table.woocommerce-product-attributes th { width: 40%; }

	/* Catalogue card: label above value, so long values read in full. */
	.pacad-cat-row { flex-direction: column; gap: .1rem; padding: .5rem 0; }
	.pacad-cat-row dt { flex: none; }
	.pacad-cat-row dt::after { display: none; }
	.pacad-cat-row dd { max-width: none; text-align: left; }

	.pacad-pdp-more-head { flex-wrap: wrap; row-gap: .4rem; }
	.pacad-pdp-more-head h2 { flex: 1 0 100%; }
	.pacad-pdp-more-head h2::after { display: none; }
	/* "More from" becomes a swipeable row instead of a tall stack. */
	.pacad-pdp-more .pacad-prod-grid {
		contain: paint; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: minmax(230px, 76%); gap: 1rem;
		margin-inline: calc(-1 * var(--gap)); padding: .3rem var(--gap) 1.3rem; scroll-padding-inline: var(--gap);
		overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none;
	}
	.pacad-pdp-more .pacad-prod-grid::-webkit-scrollbar { display: none; }
	.pacad-pdp-more .pacad-prod-card { scroll-snap-align: start; }

	.pacad-pdp table.group_table tr { grid-template-columns: auto minmax(0, 1fr); }
	.pacad-pdp table.group_table .woocommerce-grouped-product-list-item__price { grid-column: 1 / -1; justify-content: flex-start; text-align: left; }
	.pacad-pdp table.group_table p.stock { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
	.pacad-pdp *,
	.pacad-buybar { transition: none !important; }
}
