/* The homepage subtitle keeps the existing upper-line type and button alignment. */
body.wmi-sitewide.wmi-enabled .miaoling-hero-actions .wp-block-button__link:has(.wmi-cta-subtitle) { flex-direction:column; align-items:center; justify-content:center; gap:0; }
body.wmi-enabled .miaoling-hero-actions .wmi-cta-subtitle { display:block; font-size:var(--wmi-cta-subtitle,72%); font-weight:400; line-height:1.45; letter-spacing:.04em; text-align:center; margin-top:2px; }

/* A separate, smoke-free scene for Tarot introductions and booking. */
body.wmi-enabled .wmi-booking-enhanced { isolation:isolate; position:relative; overflow:clip; background:radial-gradient(ellipse at 50% 38%,#401b22 0,#241018 46%,#11090f 85%) !important; }
body.wmi-enabled .wmi-booking-enhanced::after { display:none !important; }
.wmi-booking-enhanced > :is(.walkin-booking-experience__hero-inner,.alignwide) { position:relative; z-index:2; }
.wmi-booking-scene { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0; contain:strict; }
.wmi-booking-scene::after { content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%,#210f176b,transparent 54%),linear-gradient(0deg,#12090f99,transparent 25%,transparent 75%,#12090f44); }
.wmi-booking-celestial { position:absolute; inset:2%; background:url('../images/booking-celestial.svg') center/100% 100% no-repeat; opacity:var(--wmi-booking-decoration,.65); filter:drop-shadow(-3px 5px 2px #0009); }
.wmi-booking-phases { position:absolute; top:10%; left:50%; translate:-50% 0; display:flex; align-items:center; gap:19px; opacity:var(--wmi-booking-decoration,.65); }
.wmi-booking-phases::before,.wmi-booking-phases::after { content:""; width:clamp(22px,4vw,65px); height:1px; background:linear-gradient(90deg,transparent,#d2b579); }
.wmi-booking-phases::after { rotate:180deg; }
.wmi-booking-phases i { position:relative; width:17px; height:17px; border-radius:50%; border:1px solid #c3a269; overflow:hidden; background:#d9be87; box-shadow:0 0 14px #c6994733; }
.wmi-booking-phases i::after { content:""; position:absolute; inset:-1px; border-radius:50%; background:#28151c; translate:5px 0; }
.wmi-booking-phases i:nth-child(2)::after { translate:9px 0; }
.wmi-booking-phases i:nth-child(3) { width:23px; height:23px; background:radial-gradient(circle at 35% 30%,#f2dfad,#b4935d); }
.wmi-booking-phases i:nth-child(3)::after { display:none; }
.wmi-booking-phases i:nth-child(4)::after { translate:-9px 0; }
.wmi-booking-phases i:nth-child(5)::after { translate:-5px 0; }
.wmi-booking-cards { position:absolute; inset:0; z-index:3; pointer-events:none; }
.wmi-booking-orbit { position:absolute; left:50%; top:48%; width:calc(min(84vw,118svh) * var(--wmi-booking-circle,1)); aspect-ratio:1; translate:-50% -50%; background:url('../images/booking-orbit.svg') center/contain no-repeat; opacity:var(--wmi-booking-alpha,.58); filter:drop-shadow(-5px 9px 2px #000c) drop-shadow(0 0 12px #bb8e4944); animation:wmi-booking-turn var(--wmi-booking-duration,150s) linear infinite; }
.wmi-booking-orbit--inner { width:calc(min(70vw,98svh) * var(--wmi-booking-circle,1)); background-image:url('../images/miaoling-center-ornament.svg'); opacity:calc(var(--wmi-booking-alpha,.58) * .55); animation-direction:reverse; }
.wmi-booking-card { position:absolute; top:13%; width:calc(clamp(145px,20vw,330px) * var(--wmi-booking-card,1)); aspect-ratio:3/5; border-radius:16px; opacity:var(--wmi-booking-alpha,.58); background:center/100% 100% no-repeat; box-shadow:-22px 32px 35px #000b,0 0 22px #c6a36d22; filter:brightness(1.25); animation:wmi-booking-float 14s ease-in-out infinite alternate; }
.wmi-booking-card--sun { left:-5%; rotate:-14deg; background-image:url('../images/booking-sun.svg'); }
.wmi-booking-card--moon { right:-5%; top:28%; rotate:14deg; background-image:url('../images/booking-moon.svg'); animation-delay:-7s; }
.wmi-booking-cards button.wmi-booking-card { padding:0; border:0; cursor:pointer; pointer-events:auto; touch-action:manipulation; color:#f1d8a4; transition:translate .28s,filter .28s,opacity .28s; }
.wmi-booking-card-hint { position:absolute; bottom:18%; left:20%; right:12%; font:12px/1.6 "Noto Serif TC",serif; letter-spacing:.15em; background:#1f101cc9; border-block:1px solid #c3a26966; padding:7px 3px; }
.wmi-booking-card--moon .wmi-booking-card-hint { left:12%; right:20%; }
.wmi-booking-cards button.wmi-booking-card:focus-visible { outline:2px solid #ffe3ad; outline-offset:6px; opacity:1; }
.wmi-booking-cards button.wmi-booking-card.is-drawn { opacity:.3; }
.wmi-booking-motion-paused .wmi-booking-card { animation-play-state:paused; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) { .wmi-booking-enhanced:not(.wmi-booking-motion-paused) .wmi-booking-cards button.wmi-booking-card:hover { translate:0 -12px; filter:brightness(1.6); } }
.wmi-booking-dust { position:absolute; inset:0; }
.wmi-booking-dust i { position:absolute; width:var(--dust-size,2px); height:var(--dust-size,2px); animation:wmi-booking-drift var(--dust-duration,18s) ease-in-out infinite alternate; animation-delay:var(--dust-delay,0s); }
.wmi-booking-dust i span { display:block; width:100%; height:100%; border-radius:50%; background:#f5db99; box-shadow:0 0 4px #f2c984,0 0 9px #e9b45a66; animation:wmi-booking-twinkle 3.6s ease-in-out infinite alternate; animation-delay:var(--dust-delay,0s); }
.wmi-booking-dust i:nth-child(17n) { clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%); }
.wmi-booking-scene.is-paused * { animation-play-state:paused !important; }
.wmi-booking-enhanced .walkin-booking-experience__button { border-radius:40px; box-shadow:0 6px 20px #0008,inset 0 0 0 2px #d7af6922; transition:box-shadow .25s,background .25s; }
.wmi-booking-enhanced .walkin-booking-experience__button:hover { background:#d7af6922; box-shadow:0 6px 20px #0008,0 0 22px #d7af6944; }
@keyframes wmi-booking-turn { to { transform:rotate(360deg); } }
@keyframes wmi-booking-float { from { transform:translateY(-9px) rotate(-1deg); } to { transform:translateY(13px) rotate(1deg); } }
@keyframes wmi-booking-drift { from { transform:translate(-18px,22px); } to { transform:translate(var(--dust-x,38px),-65px); } }
@keyframes wmi-booking-twinkle { from { opacity:.18; } to { opacity:.85; } }
@media(max-width:782px) {
  .wmi-booking-orbit { width:calc(140vw * var(--wmi-booking-circle,1)); }
  .wmi-booking-orbit--inner { width:calc(116vw * var(--wmi-booking-circle,1)); }
  .wmi-booking-card { width:calc(37vw * var(--wmi-booking-card,1)); opacity:calc(var(--wmi-booking-alpha,.58) * .8); }
  .wmi-booking-card--sun { left:-18%; top:10%; }
  .wmi-booking-card--moon { right:-18%; top:53%; }
}
@media(prefers-reduced-motion:reduce) { .wmi-booking-scene * { animation:none !important; } }

/* Native modal focus handling keeps keyboard and touch card reading contained. */
dialog.wmi-booking-reading { width:min(320px,calc(100vw - 40px)); height:min(490px,calc(100svh - 48px)); max-width:none; max-height:none; padding:0; border:0; background:transparent; color:#f3dfb5; overflow:visible; perspective:1200px; font-family:"Noto Serif TC",serif; }
.wmi-booking-reading::backdrop { background:#0b070db3; backdrop-filter:blur(5px); }
.wmi-booking-reading-face { position:relative; width:100%; height:100%; }
.wmi-booking-reading-front,.wmi-booking-reading-back { position:absolute; inset:0; backface-visibility:hidden; border:1px solid #cfaa68; border-radius:17px; box-shadow:0 25px 60px #000b,inset 0 0 0 6px #29121a,inset 0 0 0 7px #a6804666; }
.wmi-booking-reading-front { display:flex; flex-direction:column; align-items:center; gap:17px; text-align:center; padding:46px 28px 26px; background:radial-gradient(ellipse at 70% 0,#61402788,transparent 65%),#29121a; }
.wmi-booking-reading-back { visibility:hidden; transform:rotateY(180deg) translateZ(1px); background:url('../images/booking-sun.svg') center/100% 100% #29121a; }
.wmi-booking-reading.is-moon .wmi-booking-reading-back { background-image:url('../images/booking-moon.svg'); }
.wmi-booking-reading-symbol { color:#e9cb8d; font-size:34px; margin-top:auto; text-shadow:0 0 18px #d2aa6688; }
.wmi-booking-reading .wmi-booking-reading-label { font:10px/1.5 serif; letter-spacing:.18em; margin:0; color:#c3a77a; }
body.wmi-enabled .wmi-booking-reading h2 { margin:0; font-size:22px; line-height:1.6; letter-spacing:.1em; color:#f3dfb5; }
.wmi-booking-reading #wmi-booking-reading-text { min-height:0; overflow:auto; width:100%; font-size:16px; line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
.wmi-booking-reading .wmi-booking-reading-note { margin:auto 0 0; font-size:10px; line-height:1.7; letter-spacing:.06em; color:#bda071; }
.wmi-booking-reading-close { position:absolute; right:8px; top:8px; width:44px; height:44px; border:1px solid #d4ae6655; border-radius:50%; background:#301820; padding:0; color:#f1d3a0; font-size:26px; cursor:pointer; }
.wmi-booking-reading-close:focus-visible { outline:2px solid #ffe3ad; outline-offset:2px; }
.wmi-booking-reading.is-entering { animation:wmi-booking-deal .65s cubic-bezier(.2,.75,.2,1) both; }
.wmi-booking-reading.is-entering .wmi-booking-reading-face { transform-style:preserve-3d; animation:wmi-booking-reveal .85s .08s ease both; }
.wmi-booking-reading.is-entering .wmi-booking-reading-front { transform:translateZ(1px); }
.wmi-booking-reading.is-entering .wmi-booking-reading-back { visibility:visible; }
@keyframes wmi-booking-deal { from { transform:translate(var(--deal-x,0px),var(--deal-y,60px)) scale(.4); opacity:.2; } to { transform:translate(0,0) scale(1); opacity:1; } }
@keyframes wmi-booking-reveal { from { transform:rotateY(180deg); } to { transform:rotateY(0); } }
@media(max-width:782px) {
  .wmi-booking-celestial { inset:1% -40%; opacity:calc(var(--wmi-booking-decoration,.65) * .75); }
  .wmi-booking-phases { top:7%; gap:12px; }
  .wmi-booking-phases i { width:12px; height:12px; }
  .wmi-booking-phases i:nth-child(3) { width:18px; height:18px; }
  .wmi-booking-card-hint { font-size:10px; left:48%; right:2%; bottom:27%; letter-spacing:0; }
  .wmi-booking-card--moon .wmi-booking-card-hint { left:2%; right:48%; }
}
@media(prefers-reduced-motion:reduce) { .wmi-booking-card,.wmi-booking-reading,.wmi-booking-reading-face { animation:none !important; transition:none !important; } }

/* Shared with the isolated admin preview. Only product archives carry this class. */
body.wmi-shop-layout .brand-shop-content .brand-shop-inner { width:100%; max-width:var(--wmi-shop-width,1240px) !important; box-sizing:border-box; }
body.wmi-shop-layout .brand-shop-content .brand-shop-intro { display:flex; justify-content:flex-end; align-items:center; gap:0; padding:18px 0 22px; margin:0; border-bottom:1px solid #d7af6933; min-height:0; }
body.wmi-shop-layout .brand-shop-content .brand-shop-title { font-size:20px !important; line-height:1.5; letter-spacing:.12em; text-align:right; margin:0; max-width:100%; color:inherit; }
body.wmi-shop-layout .brand-shop-content .brand-shop-intro-copy:empty { display:none; }
body.wmi-shop-layout :is(.brand-shop-content,.woocommerce) :is(.wc-block-product-template,ul.products) { display:grid !important; grid-template-columns:repeat(var(--wmi-shop-cols,3),minmax(0,1fr)) !important; gap:var(--wmi-shop-gap,24px) !important; padding:0; margin:0; list-style:none; }
body.wmi-shop-layout :is(.brand-shop-content,.woocommerce) ul.products::before,body.wmi-shop-layout :is(.brand-shop-content,.woocommerce) ul.products::after { display:none; }
body.wmi-shop-layout :is(.brand-shop-content,.woocommerce) :is(.wc-block-product-template,ul.products) > li { box-sizing:border-box; width:auto !important; min-width:0; float:none; margin:0 !important; padding:var(--wmi-shop-padding,16px); display:flex; flex-direction:column; border:1px solid #d7af6940; background:linear-gradient(155deg,#382024,#281217); box-shadow:0 12px 24px #0002; }
body.wmi-shop-layout :is(.brand-shop-content,.woocommerce) :is(.wc-block-components-product-image,.wc-block-grid__product-image) { width:100%; height:auto !important; aspect-ratio:var(--wmi-shop-ratio,1/1) !important; }
body.wmi-shop-layout :is(.brand-shop-content,.woocommerce) :is(.wc-block-components-product-image,.wc-block-grid__product-image) > a { display:block; width:100%; height:100%; }
body.wmi-shop-layout :is(.brand-shop-content,.woocommerce) :is(.wc-block-components-product-image img,.wc-block-grid__product-image img,ul.products li.product a img) { display:block; width:100% !important; max-width:100%; height:auto !important; aspect-ratio:var(--wmi-shop-ratio,1/1) !important; object-fit:var(--wmi-shop-fit,contain) !important; background:#ffffff04; }
body.wmi-shop-layout :is(.brand-shop-content,.woocommerce) :is(.brand-shop-product-title,.woocommerce-loop-product__title) { font-size:var(--wmi-shop-title-size,18px) !important; line-height:1.5; text-align:center; margin:8px 0; overflow-wrap:anywhere; }
body.wmi-shop-layout .brand-shop-content .wc-block-components-product-button { margin-top:auto; }
body.wmi-shop-layout .brand-shop-content .wc-block-components-product-button button { min-height:44px; }
@media(max-width:900px) { body.wmi-shop-layout :is(.brand-shop-content,.woocommerce) :is(.wc-block-product-template,ul.products) { grid-template-columns:repeat(var(--wmi-shop-tablet-cols,2),minmax(0,1fr)) !important; } }
@media(max-width:600px) {
  body.wmi-shop-layout .brand-shop-content .brand-shop-title { font-size:17px !important; }
  body.wmi-shop-layout :is(.brand-shop-content,.woocommerce) :is(.wc-block-product-template,ul.products) { grid-template-columns:repeat(var(--wmi-shop-mobile-cols,2),minmax(0,1fr)) !important; gap:min(var(--wmi-shop-gap,24px),20px) !important; }
  body.wmi-shop-layout :is(.brand-shop-content,.woocommerce) :is(.wc-block-product-template,ul.products) > li { padding:min(var(--wmi-shop-padding,16px),16px); }
}
