/* Product building blocks share the established brand tokens and native Woo cart. */
body:has(.gw-product-sticky) { padding-bottom:var(--gw-sticky-height,96px); }
.gw-product-page .wp-block-post-content { margin:0; }
.gw-product-page main .gw-section { scroll-margin-top:24px; }
.gw-product-hero { padding-top:16px; padding-bottom:64px; }
.gw-product-breadcrumb { display:flex; flex-wrap:wrap; gap:8px 16px; font-size:14px; line-height:20px; color:var(--gw-muted); margin-bottom:40px; }
.gw-product-breadcrumb a { color:inherit; text-decoration:none; }
.gw-product-breadcrumb a:hover { color:var(--gw-purple); text-decoration:underline; }
.gw-product-hero-grid { display:grid; grid-template-columns:minmax(0,594fr) minmax(0,654fr); gap:32px; align-items:center; }
.gw-product-hero-copy { display:flex; flex-direction:column; gap:16px; align-items:flex-start; min-width:0; }
.gw-product-hero h1 { margin:0; font:700 clamp(40px,3.612vw,52px)/1.077 var(--gw-display); letter-spacing:-.031em; font-variation-settings:"opsz" 14,"wdth" 100; }
.gw-product-badge { margin:0; background:var(--gw-lavender); color:var(--gw-purple); font-size:12px; line-height:16px; font-weight:700; letter-spacing:.5px; padding:8px 16px; border-radius:999px; }
.gw-product-subtitle { margin:0; color:var(--gw-purple); font:700 24px/28px var(--gw-display); letter-spacing:-.4px; }
.gw-product-hero .gw-lead p { margin:0; }
.gw-product-hero .gw-lead p+p { margin-top:12px; }
.gw-product-facts { display:flex; flex-wrap:wrap; gap:12px 24px; padding:4px 0; margin:0; list-style:none; font-size:14px; line-height:20px; color:var(--gw-purple); }
.gw-product-facts li { display:flex; align-items:center; gap:8px; }
.gw-product-facts img { display:block; flex:none; }
.gw-product-hero-copy>.gw-button,.gw-product-hero-copy>.gw-purchase-card { width:100%; }
.gw-product-organizer { line-height:22px; }
.gw-product-art { position:relative; width:100%; aspect-ratio:594.08/567.76; container-type:inline-size; }
.gw-product-art img { display:block; position:absolute; height:auto; }
.gw-product-art-bg { inset:0; width:100%; height:100%!important; }
.gw-product-art-back,.gw-product-art-cover { border-radius:1.25cqw; box-shadow:0 1.58cqw 3.8cqw #4222691f; }
.gw-product-art-back--one { width:36.1%; left:8%; top:25%; transform:rotate(-12deg); }
.gw-product-art-back--two { width:37.3%; left:53%; top:27%; transform:rotate(10deg); }
.gw-product-art-cover { width:47.2%; left:31%; top:10%; transform:rotate(-4deg); box-shadow:0 3.8cqw 7.6cqw #4222692e; }
.gw-product-art-star { width:12.4%; left:7%; top:7%; }
.gw-product-art-sticker { position:absolute; left:69%; top:4%; width:29%; min-height:14.8%; padding:2cqw; box-sizing:border-box; display:grid; place-content:center; transform:rotate(8deg); border-radius:3.8cqw; background:var(--gw-apricot); color:var(--gw-ink); white-space:pre-line; text-align:center; font:700 2.7cqw/1.25 var(--gw-body); box-shadow:0 1.58cqw 3.8cqw #4222691f; }
.gw-product-art-caption { position:absolute; bottom:1%; left:2%; width:53%; padding:3.37cqw; display:flex; flex-direction:column; gap:1.35cqw; box-sizing:border-box; border-radius:3.8cqw; background:#fff; transform:rotate(-3deg); box-shadow:0 1.58cqw 3.8cqw #4222691f; }
.gw-product-art-caption strong { font-size:2.7cqw; line-height:1.25; color:var(--gw-purple); }
.gw-product-art-caption span { font-size:2.36cqw; line-height:1.4; color:var(--gw-muted); }

.gw-purchase-card { box-sizing:border-box; background:white; color:var(--gw-ink); border-radius:24px; padding:24px; display:flex; flex-direction:column; gap:16px; min-width:0; }
.gw-purchase-price-row { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.gw-purchase-price { font:700 42px/1.1 var(--gw-display); color:var(--gw-purple); letter-spacing:-1px; }
.gw-purchase-price :is(ins,del) { font:inherit; }
.gw-purchase-price del { font-size:24px; color:var(--gw-muted); }
.gw-purchase-price ins { text-decoration:none; }
.gw-buy-button { width:100%; }
.gw-buy-button .gw-cart-return { width:100%; }
.gw-buy-button .wc-block-components-product-button { margin:0; width:100%; display:flex; flex-direction:column; align-items:stretch; }
.gw-buy-button [data-gw-native-buy] .wp-block-button .wc-block-components-product-button__button { box-sizing:border-box; display:flex; justify-content:center; align-items:center; min-height:56px; width:100%; border:1px solid var(--gw-purple); border-radius:999px; padding:16px 20px; margin:0; font:700 16px/22px var(--gw-body); color:white; background:var(--gw-purple); text-decoration:none; text-align:center; transition:background .18s,box-shadow .18s; }
.gw-buy-button [data-gw-native-buy] .wp-block-button .wc-block-components-product-button__button:hover { background:var(--gw-deep); box-shadow:0 6px 18px #42226925; }
.gw-buy-button .gw-cart-return:hover { transform:none; box-shadow:0 6px 18px #42226925; }
.gw-buy-button .added_to_cart { display:block; color:var(--gw-purple); font:700 14px/20px var(--gw-body); text-align:center; margin-top:8px; text-underline-offset:3px; }
/* The single-package CTA already becomes a cart link. Hide Woo's extra link and
   its flex item from first paint, before the two Woo stores finish synchronizing. */
.gw-purchase-action[data-gw-single="true"] .added_to_cart,
.gw-purchase-action[data-gw-single="true"] .wc-block-components-product-button>span:has(>.added_to_cart) { display:none; }
.gw-product-unavailable { color:var(--gw-muted); font-size:16px; }
.gw-purchase-closing>.gw-shell { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,420px); align-items:center; gap:64px; }
.gw-purchase-closing .gw-section-heading { margin:0; }
.gw-purchase-closing.gw-tone--lavender .gw-purchase-card { background:transparent; padding:0; }
.gw-purchase-closing.gw-tone--lavender .gw-section-heading :is(h2,.gw-lead) { color:var(--gw-purple); }
.gw-purchase-closing.gw-tone--deep .gw-buy-button .wc-block-components-product-button__button { background:var(--gw-apricot); border-color:var(--gw-apricot); color:var(--gw-ink); }
.gw-purchase-closing.gw-tone--deep .gw-buy-button .wc-block-components-product-button__button:hover { background:var(--gw-peach); }
.gw-product-sticky { box-sizing:border-box; position:fixed; inset:auto 0 0; z-index:90; background:var(--gw-cream); color:var(--gw-ink); border-top:1px solid var(--gw-line); box-shadow:0 -6px 32px #4222690b; font-family:var(--gw-body); padding:12px 0 max(12px,env(safe-area-inset-bottom)); }
.gw-product-sticky>.gw-shell { display:flex; align-items:center; gap:24px; }
.gw-sticky-info { display:flex; flex-direction:column; gap:4px; flex:1 1 280px; min-width:0; font-size:14px; line-height:20px; }
.gw-sticky-info>strong { font:700 18px/22px var(--gw-display); }
.gw-sticky-info>span { color:var(--gw-purple); font-weight:700; }
.gw-product-sticky .gw-buy-button { flex:0 0 248px; width:248px; }
.gw-product-jumps { display:flex; gap:8px; }
.gw-product-jumps a { text-decoration:none; border:1px solid var(--gw-line); border-radius:999px; padding:12px 16px; color:var(--gw-purple); font-size:14px; line-height:20px; }
.gw-product-jumps a:hover { background:var(--gw-soft); border-color:var(--gw-purple); }
.gw-product-sticky .added_to_cart { margin-top:3px; }
noscript .gw-button { width:100%; }

.gw-content-grid .gw-section-heading { gap:24px; margin-bottom:32px; }
.gw-grid-intro--split .gw-section-heading { display:grid; grid-template-columns:1fr 1fr; column-gap:48px; align-items:center; }
.gw-grid-intro--split .gw-section-heading .gw-eyebrow { grid-column:1/-1; }
.gw-content-grid.gw-tone--deep { color:var(--gw-cream); }
.gw-content-grid.gw-tone--deep .gw-section-heading .gw-lead { color:var(--gw-lavender); }
.gw-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.gw-detail-card { display:flex; gap:24px; padding:24px; border-radius:24px; box-sizing:border-box; color:var(--gw-ink); min-width:0; }
.gw-detail-card-copy { display:flex; flex:1; flex-direction:column; gap:12px; min-width:0; }
.gw-detail-card p { margin:0; }
.gw-detail-card h3 { margin:0; font:700 28px/32px var(--gw-display); letter-spacing:-.6px; }
.gw-detail-description { font-size:16px; line-height:24px; color:var(--gw-muted); }
.gw-detail-note,.gw-detail-subtitle { font-size:14px; line-height:20px; color:var(--gw-purple); }
.gw-detail-card--highlight { box-shadow:inset 0 0 0 1px var(--gw-purple); }
.gw-detail-card-image { flex:0 0 29%; min-width:0; }
.gw-detail-card-image img { display:block; width:100%; height:auto; border-radius:8px; box-shadow:0 10px 24px #4222691f; }
.gw-detail-card--stat { padding:32px; }
.gw-detail-stat { font:700 76px/1 var(--gw-display); letter-spacing:-2px; }
.gw-detail-card--stat .gw-detail-description { color:var(--gw-ink); }
.gw-grid-subheading { margin:0 0 24px; font:700 24px/28px var(--gw-display); letter-spacing:-.4px; }
.gw-grid-footer { margin-top:32px; border-radius:24px; font-size:14px; line-height:22px; }
.gw-grid-footer[class*="gw-tone--"] { padding:24px; }
.gw-grid-footer h3 { margin:0 0 8px; font:700 18px/24px var(--gw-body); }
.gw-grid-footer p { margin:0; }
.gw-content-grid--characters .gw-detail-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px; }
.gw-content-grid--characters .gw-detail-card { flex-direction:column; gap:12px; padding:16px; }
.gw-content-grid--characters .gw-detail-card-image { width:100%; flex:none; }
.gw-content-grid--characters .gw-detail-card-image img { aspect-ratio:164/172; height:auto; object-fit:cover; box-shadow:none; border-radius:16px; }
.gw-content-grid--characters .gw-detail-card h3 { font-size:24px; line-height:28px; letter-spacing:-.4px; }
.gw-content-grid--characters .gw-detail-description { font-size:14px; line-height:20px; }
.gw-content-grid--characters .gw-detail-card-copy { gap:8px; }
.gw-content-grid--characters .gw-grid-footer { color:var(--gw-purple); }
.gw-content-grid--characters.gw-tone--deep .gw-grid-footer { color:var(--gw-apricot); }
.gw-content-grid--features .gw-detail-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.gw-content-grid--features .gw-detail-card { flex-direction:column; padding:16px; gap:24px; }
.gw-content-grid--features .gw-detail-card-image { flex:none; }
.gw-content-grid--features .gw-detail-card-image img { height:auto; aspect-ratio:378/230; object-fit:cover; border-radius:16px; box-shadow:none; }
.gw-content-grid--features .gw-detail-card-copy { padding:0 8px 16px; }
.gw-content-grid--features .gw-detail-card h3 { font-size:24px; line-height:28px; }

.gw-feature-panel-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:64px; align-items:center; }
.gw-feature-panel .gw-section-heading { margin:0; }
.gw-feature-panel-copy { display:flex; flex-direction:column; align-items:flex-start; gap:24px; min-width:0; }
.gw-feature-points { display:flex; flex-direction:column; gap:24px; }
.gw-feature-points .gw-benefit { align-items:flex-start; }
.gw-feature-points .gw-benefit-title { font:700 16px/24px var(--gw-body); margin:0 0 8px; }
.gw-feature-points .gw-note { font-size:16px; line-height:24px; }
.gw-feature-points .gw-benefit-icon { width:32px; height:32px; flex-basis:32px; }
.gw-feature-preview { margin:0; padding:40px 32px; border-radius:40px; display:flex; flex-direction:column; gap:24px; align-items:center; min-width:0; box-sizing:border-box; }
.gw-feature-preview>a { display:block; width:100%; max-width:350px; transform:rotate(-3deg); transition:transform .18s; border-radius:8px; }
.gw-feature-preview>a:hover { transform:rotate(0deg); }
.gw-feature-preview img { display:block; max-width:100%; width:350px; height:auto; border-radius:8px; box-shadow:0 10px 24px #4222691f; }
.gw-feature-preview figcaption { font-size:14px; line-height:20px; color:var(--gw-purple); text-align:center; }
.gw-feature-panel-card { display:flex; flex-direction:column; gap:20px; border-radius:24px; padding:32px; color:var(--gw-ink); min-width:0; box-sizing:border-box; }
.gw-feature-panel-card h3 { margin:0; font:700 28px/32px var(--gw-display); letter-spacing:-.6px; }
.gw-panel-text { font-size:18px; line-height:28px; white-space:pre-line; }
.gw-panel-text p { margin:0; }.gw-panel-text p+p { margin-top:16px; }
.gw-feature-panel--guide .gw-feature-panel-card { transform:rotate(2deg); }
.gw-feature-panel--guide .gw-feature-panel-copy :is(.gw-lead,.gw-eyebrow) { color:var(--gw-lavender); }
.gw-feature-panel--guide h2 { color:white; }
.gw-feature-panel--preparation .gw-section-heading { margin-bottom:40px; }
.gw-feature-panel--preparation .gw-feature-panel-grid { grid-template-columns:minmax(0,688fr) minmax(0,560fr); gap:32px; align-items:start; }
.gw-feature-panel--occasion .gw-feature-panel-grid { padding:48px; background:var(--gw-peach); border-radius:32px; gap:32px; align-items:start; }
.gw-feature-panel--occasion .gw-feature-panel-card { padding:0; background:transparent; }
.gw-feature-panel--occasion h2 { font-size:32px; line-height:36px; }
.gw-product-page .gw-how { padding-block:80px; }
.gw-product-page .gw-gallery .gw-document-copy h3 { font-size:24px; line-height:28px; }
.gw-product-page .gw-benefits { padding-block:32px; }
.gw-product-page .gw-faq .gw-lead { font-size:16px; line-height:24px; }
.gw-product-page .gw-faq .gw-lead a { color:var(--gw-purple); text-underline-offset:4px; }
.gw-editor-commerce { pointer-events:none; width:100%; }
.editor-styles-wrapper .gw-product-sticky { position:static; }
.editor-styles-wrapper .gw-feature-panel-card .block-editor-block-list__layout { width:100%; }

@media(max-width:1100px) {
 .gw-product-jumps { display:none; }
 .gw-product-hero-grid { gap:24px; }
 .gw-product-hero h1 { font-size:42px; }
 .gw-content-grid--characters .gw-detail-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .gw-content-grid--packages .gw-detail-card { flex-direction:column; }
 .gw-content-grid--packages .gw-detail-card-image { width:166px; align-self:center; flex:none; }
 .gw-feature-panel-grid { gap:32px; }
 .gw-purchase-closing>.gw-shell { gap:32px; grid-template-columns:minmax(0,1fr) minmax(0,360px); }
}
@media(max-width:780px) {
 .gw-product-hero-grid { display:flex; flex-direction:column; gap:20px; align-items:stretch; }
 .gw-product-hero-copy { display:contents; }
 .gw-product-hero-copy>* { order:7; }
 .gw-product-hero-copy .gw-product-badge { order:1; align-self:flex-start; }
 .gw-product-hero-copy h1 { order:2; }
 .gw-product-hero-copy .gw-product-subtitle { order:3; }
 .gw-product-hero-copy>.gw-lead { order:4; }
 .gw-product-hero-copy .gw-product-facts { order:5; }
 .gw-product-art { order:6; max-width:510px; align-self:center; }
 .gw-product-hero .gw-lead { font-size:16px; line-height:24px; }
 .gw-product-hero h1 { font-size:42px; line-height:44px; letter-spacing:-1.3px; }
 .gw-product-hero h1 br { display:none; }
 .gw-product-hero h1 br:after { content:' '; }
 .gw-product-breadcrumb { margin-bottom:24px; }
 .gw-product-hero { padding-block:16px 40px; }
 .gw-product-badge { font-size:11px; letter-spacing:.3px; }
 .gw-product-art-sticker { font-size:3.5cqw; }
 .gw-product-art-caption strong { font-size:3.5cqw; }.gw-product-art-caption span { font-size:3.1cqw; }
 .gw-product-art-caption { width:63%; }
 .gw-product-facts { gap:12px 16px; font-size:13px; }
 .gw-product-facts img { width:20px; height:20px; }
 .gw-content-grid .gw-section-heading,.gw-grid-intro--split .gw-section-heading { display:flex; gap:24px; }
 .gw-detail-grid,.gw-content-grid--features .gw-detail-grid { grid-template-columns:1fr; }
 .gw-feature-panel-grid,.gw-feature-panel--preparation .gw-feature-panel-grid { grid-template-columns:1fr; gap:32px; }
 .gw-feature-panel--preview .gw-feature-panel-copy { order:-1; }
 .gw-feature-panel--guide .gw-feature-panel-card { transform:none; }
 .gw-feature-panel--occasion .gw-feature-panel-grid { padding:24px; }
 .gw-feature-panel-card { padding:24px; }
 .gw-feature-panel-card h3 { font-size:24px; line-height:28px; }
 .gw-panel-text { font-size:16px; line-height:24px; }
 .gw-purchase-closing>.gw-shell { grid-template-columns:1fr; gap:32px; }
 .gw-purchase-price { font-size:40px; line-height:44px; }
 .gw-purchase-price-row { gap:16px; }
 .gw-sticky-info>strong { font-size:12px; line-height:16px; }
 .gw-sticky-info { flex-basis:130px; }
 .gw-sticky-info>span { font-size:20px; line-height:24px; }
 .gw-product-sticky>.gw-shell { gap:12px; padding-inline:16px; }
 .gw-product-sticky .gw-buy-button { flex:1 0 175px; width:auto; }
 .gw-product-sticky .gw-buy-button [data-gw-native-buy] .wc-block-components-product-button__button { min-height:48px; padding:12px; font-size:14px; line-height:20px; }
 .gw-product-sticky .gw-cart-return { min-height:48px; padding:12px; font-size:14px; line-height:20px; }
 .gw-product-sticky .added_to_cart { font-size:12px; line-height:18px; }
 .gw-product-page .gw-how { padding-block:56px; }
}
@media(max-width:700px) {
 .gw-content-grid--characters .gw-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
 .gw-content-grid--characters .gw-detail-card { padding:12px; border-radius:20px; }
 .gw-content-grid--characters .gw-detail-card h3 { font-size:22px; line-height:26px; }
 .gw-content-grid--characters .gw-detail-description { font-size:13px; line-height:19px; }
 .gw-content-grid--characters .gw-detail-subtitle { font-size:13px; }
 .gw-content-grid--packages .gw-detail-card-image { width:200px; }
 .gw-feature-preview { padding:32px 24px; border-radius:24px; }
 .gw-product-page .gw-benefits-list { gap:24px; }
 .gw-content-grid .gw-grid-footer { margin-top:24px; }
}
@media(prefers-reduced-motion:reduce) {
 .gw-product-art *, .gw-feature-preview>a, .gw-buy-button .wc-block-components-product-button__button { transition:none; }
}

/* Large game-world imagery is opt-in; the cover remains a recognizable PDF package. */
.gw-product-art--scene { aspect-ratio:1.06; isolation:isolate; align-self:start; margin-top:24px; }
.gw-product-scene { width:100%; aspect-ratio:3/2; border-radius:32px; overflow:hidden; background:var(--gw-lavender); box-shadow:0 18px 42px #42226916; }
.gw-product-art--scene .gw-product-scene-image { position:static; display:block; width:100%; height:100%; object-fit:cover; }
.gw-product-art--scene .gw-product-art-cover { width:27%; top:auto; left:auto; right:5%; bottom:3%; transform:rotate(7deg); border:5px solid white; border-radius:8px; box-sizing:border-box; box-shadow:0 16px 35px #24162b30; }
.gw-product-art--scene .gw-product-art-sticker { top:3%; left:3%; width:auto; max-width:50%; min-height:0; padding:2.4cqw 3.2cqw; font-size:2.5cqw; transform:rotate(-5deg); border-radius:2.7cqw; }
.gw-product-art--scene .gw-product-art-caption { width:61%; bottom:1%; left:0; padding:3.7cqw 3.2cqw; transform:none; box-shadow:none; background:var(--gw-lavender); }
.gw-product-art--scene .gw-product-art-caption strong { font:700 3.5cqw/1.15 var(--gw-display); }
.gw-product-art--scene .gw-product-art-caption span { font-size:2.5cqw; line-height:1.4; }
@media(max-width:780px) {
 .gw-product-art--scene { max-width:560px; align-self:center; margin-top:0; order:4; }
 .gw-product-hero-grid:has(>.gw-product-art--scene) .gw-product-hero-copy>.gw-lead { order:5; }
 .gw-product-hero-grid:has(>.gw-product-art--scene) .gw-product-hero-copy>.gw-product-facts { order:6; }
 .gw-product-art--scene .gw-product-scene { border-radius:24px; }
 .gw-product-art--scene .gw-product-art-sticker { font-size:3.1cqw; }
 .gw-product-art--scene .gw-product-art-caption strong { font-size:4cqw; }
 .gw-product-art--scene .gw-product-art-caption span { font-size:3.1cqw; }
}
