/* v85 - Mid-Autumn visual refresh. Existing controls and data flow stay intact. */
:root{--festival-cream:#fff8e8;--festival-gold:#d9a441;--festival-gold-deep:#a66a18;--festival-red:#a93427;--festival-green:#183f2a}
body{background:radial-gradient(circle at 88% 25%,rgba(255,218,133,.27) 0 12%,transparent 31%),radial-gradient(circle at 8% 72%,rgba(244,190,85,.18) 0 10%,transparent 27%),linear-gradient(180deg,#fffaf0 0%,#fbf2dc 48%,#f7ecd4 100%)}
.top{color:#172f21;background:linear-gradient(90deg,rgba(255,249,235,.98),rgba(255,233,184,.96),rgba(255,249,235,.98));border-bottom:1px solid rgba(196,139,42,.24);box-shadow:0 4px 18px rgba(91,57,14,.11)}
.brand{color:#172f21}.brand-logo{width:42px;height:42px;flex-basis:42px;border-radius:50%;box-shadow:0 0 0 1px rgba(202,144,45,.38),0 5px 14px rgba(91,57,14,.12)}.nav button{color:#263e2c;border-color:transparent}.nav button:hover{background:rgba(255,255,255,.62)}.nav .active{color:#a35517;background:#fff;border-color:rgba(206,153,64,.2);box-shadow:0 5px 14px rgba(91,57,14,.1)}
.quick{position:relative;z-index:2}.quick button{border-color:rgba(83,99,74,.2);box-shadow:0 5px 15px rgba(59,47,25,.12)}.quick .cart-btn{border-color:#9f6a21;background:linear-gradient(135deg,#b17b2d,#8b591c);box-shadow:0 7px 16px rgba(104,62,14,.22)}
#shopPage{position:relative;isolation:isolate;overflow:clip}#shopPage::before,#shopPage::after{position:absolute;z-index:-1;width:320px;height:150px;content:"";pointer-events:none;border-radius:50%;filter:blur(3px);background:radial-gradient(ellipse,rgba(255,255,255,.72),rgba(251,220,151,.14) 58%,transparent 72%)}#shopPage::before{top:290px;left:-180px}#shopPage::after{top:470px;right:-175px}
#shopPage .campaign-intro{min-height:238px;grid-template-columns:minmax(230px,.8fr) minmax(0,1.35fr) auto;gap:clamp(22px,3vw,42px);padding:clamp(24px,3vw,38px);border:1px solid rgba(218,162,67,.44);border-radius:28px;background:radial-gradient(circle at 22% 20%,rgba(255,226,146,.68),transparent 34%),linear-gradient(115deg,rgba(255,253,246,.98),rgba(255,236,190,.88) 55%,rgba(255,247,226,.98));box-shadow:0 18px 42px rgba(112,70,17,.15),inset 0 1px rgba(255,255,255,.9)}
#shopPage .campaign-intro::before,#shopPage .campaign-intro::after{position:absolute;z-index:-1;content:"";pointer-events:none;border:1px solid rgba(203,143,39,.22);border-radius:999px}#shopPage .campaign-intro::before{width:230px;height:230px;top:-126px;right:15%}#shopPage .campaign-intro::after{width:150px;height:150px;right:-68px;bottom:-90px}
#shopPage .campaign-illustration{width:100%;height:176px}#shopPage .campaign-illustration img{filter:drop-shadow(0 13px 18px rgba(134,81,12,.19))}#shopPage .campaign-intro h2{max-width:640px;margin-bottom:11px;color:#7e241d;font-size:clamp(24px,2.45vw,33px);letter-spacing:-.015em}#shopPage .campaign-intro p{max-width:650px;color:#405343;font:italic 500 16px/1.62 Georgia,"Times New Roman",serif}#shopPage .campaign-cta{min-height:50px;padding:12px 22px;background:linear-gradient(135deg,#bd4233,#96291f);box-shadow:0 9px 20px rgba(132,37,27,.25)}
#shopPage>.eyebrow{margin-top:10px;color:#b2671d}#shopPage>.shop-title{position:relative;width:fit-content;margin:0 auto 30px;padding-inline:clamp(28px,6vw,82px);color:#193e2a}#shopPage>.shop-title::before,#shopPage>.shop-title::after{position:absolute;top:52%;width:clamp(24px,4vw,60px);height:1px;content:"";background:linear-gradient(90deg,transparent,#d79b35)}#shopPage>.shop-title::before{left:0}#shopPage>.shop-title::after{right:0;transform:rotate(180deg)}
#shopPage .product-grid{gap:clamp(15px,1.8vw,22px);align-items:stretch}#shopPage .product{min-width:0;border:1px solid rgba(207,165,91,.32);border-radius:21px;background:rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(77,50,15,.1)}#shopPage .product:hover{box-shadow:0 18px 38px rgba(77,50,15,.16)}
#shopPage .product-image{height:220px;padding:0;display:grid;place-items:center;background:linear-gradient(180deg,#fff 0%,#fffcf5 100%);border-bottom:1px solid rgba(211,172,102,.18)}#shopPage .product-image img,#shopPage .product-image.contain img{width:100%;height:100%;padding:20px;object-fit:contain;object-position:center;background:transparent;transform:scale(.94);transform-origin:center}#shopPage .product[data-product="taro"] .product-image img{transform:scale(.86)}#shopPage .product:hover .product-image img{transform:scale(.975)}#shopPage .product[data-product="taro"]:hover .product-image img{transform:scale(.895)}
#shopPage .product-body{padding:16px 17px 17px}#shopPage .product h3{color:#183b28;font-size:17px}#shopPage .product-info{color:#b5651a}#shopPage .product-desc{color:#657066}#shopPage .product .price{color:#b66c17;font-size:19px}#shopPage .product-actions .secondary{background:#edf1eb}#shopPage .product-actions .secondary:hover{background:#e2e9df}#shopPage .product-actions .add{border-color:#8ca994;background:#fff}#shopPage .product-actions .add:hover{border-color:#53755d;background:#edf5ec}
#shopPage .about-tu-phat{border-color:rgba(205,157,74,.34);background:linear-gradient(135deg,rgba(255,253,246,.98),rgba(249,232,194,.76));box-shadow:0 16px 38px rgba(82,53,15,.1)}
@media(max-width:1020px){#shopPage .campaign-intro{grid-template-columns:180px minmax(0,1fr)}#shopPage .campaign-cta{grid-column:1/-1;width:100%}}
@media(max-width:767px){.top{min-height:58px}.brand-logo{width:34px;height:34px;flex-basis:34px}#shopPage .campaign-intro{min-height:0;grid-template-columns:94px minmax(0,1fr);gap:12px;padding:18px 16px;border-radius:20px}#shopPage .campaign-illustration{width:94px;height:96px}#shopPage .campaign-intro h2{font-size:clamp(18px,5vw,22px);margin-bottom:7px}#shopPage .campaign-intro p{font-size:14px;line-height:1.48}#shopPage .campaign-cta{min-height:46px}#shopPage>.shop-title{margin-bottom:22px;padding-inline:27px;font-size:clamp(27px,8vw,36px)}#shopPage>.shop-title::before,#shopPage>.shop-title::after{width:20px}#shopPage .product-image{height:188px!important}#shopPage .product-image img,#shopPage .product-image.contain img{padding:15px;transform:scale(.94)}#shopPage .product[data-product="taro"] .product-image img{transform:scale(.86)}#shopPage .product:hover .product-image img{transform:scale(.94)}#shopPage .product[data-product="taro"]:hover .product-image img{transform:scale(.86)}}
@media(max-width:430px){#shopPage .campaign-intro{grid-template-columns:76px minmax(0,1fr);padding:15px 13px}#shopPage .campaign-illustration{width:76px;height:82px}#shopPage .campaign-intro h2{font-size:17px}#shopPage .campaign-intro p{font-size:13px}#shopPage .product{border-radius:18px}#shopPage .product-image{height:180px!important}}
@media(prefers-reduced-motion:reduce){#shopPage .product,#shopPage .product-image img,#shopPage .campaign-cta{transition:none}}
/* v86 — visual motifs based on the supplied Mid-Autumn reference. CSS decorations only; no third-party image asset. */
.quick{align-items:center}.mid-autumn-countdown{display:inline-flex;align-items:baseline;gap:5px;margin-right:auto;padding:7px 12px;border:1px solid rgba(201,142,42,.32);border-radius:999px;background:rgba(255,252,242,.88);box-shadow:0 5px 15px rgba(80,49,13,.09);color:#6e4113;font-size:11px;font-weight:800;white-space:nowrap}.mid-autumn-countdown span{color:#9e6820}.mid-autumn-countdown strong{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:50%;background:#a93629;color:#fff;font-size:13px}.mid-autumn-countdown small{font-size:10px;color:#7b6d58}.mid-autumn-countdown.is-today strong{background:#2d6941}
#shopPage{overflow:visible}#shopPage::before,#shopPage::after{z-index:-2}.festival-side-art{position:absolute;z-index:-1;pointer-events:none;inset-block:16px;width:min(17vw,270px)}.festival-left{right:calc(100% + 26px)}.festival-right{left:calc(100% + 26px)}
.festival-bamboo{position:absolute;left:12%;top:0;width:120px;height:430px;transform:rotate(-4deg);transform-origin:top}.festival-bamboo::before{position:absolute;left:38px;top:0;width:21px;height:100%;content:"";border-radius:13px;background:repeating-linear-gradient(180deg,#315f37 0 42px,#e5b748 43px 47px,#274c2d 48px 91px);box-shadow:15px 6px 0 rgba(35,73,41,.78)}.festival-bamboo i{position:absolute;width:68px;height:27px;border-radius:100% 0 100% 0;background:linear-gradient(135deg,#6f9d4a,#2e6137);transform-origin:left center;box-shadow:0 3px 7px rgba(45,69,24,.14)}.festival-bamboo i:nth-child(1){left:48px;top:54px;transform:rotate(-34deg)}.festival-bamboo i:nth-child(2){left:46px;top:145px;transform:rotate(30deg)}.festival-bamboo i:nth-child(3){left:48px;top:255px;transform:rotate(-30deg)}
.festival-lantern{position:absolute;width:34px;height:44px;border-radius:47% 47% 42% 42%;background:repeating-linear-gradient(90deg,#d64929 0 7px,#ee7c35 8px 10px);box-shadow:inset 0 0 0 2px rgba(132,36,25,.26),0 8px 15px rgba(145,55,17,.18)}.festival-lantern::before{position:absolute;left:50%;top:-24px;width:1px;height:23px;content:"";background:#a36c25}.festival-lantern::after{position:absolute;left:50%;bottom:-15px;width:1px;height:15px;content:"";background:#a36c25;box-shadow:-4px 8px 0 -0.25px #b57c2c,4px 8px 0 -0.25px #b57c2c}.festival-left>.festival-lantern{left:55%;top:92px}.festival-right>.festival-lantern{right:10%;top:112px;transform:scale(.82)}
.festival-lion{position:absolute;left:0;bottom:48px;width:148px;height:132px;border-radius:47% 47% 43% 43%;background:radial-gradient(circle at 50% 45%,#fff7d6 0 14%,transparent 15%),radial-gradient(circle at 33% 39%,#fff 0 8%,#222 9% 14%,transparent 15%),radial-gradient(circle at 67% 39%,#fff 0 8%,#222 9% 14%,transparent 15%),linear-gradient(145deg,#e6462c,#b92026);border:9px solid #f1b443;box-shadow:0 12px 25px rgba(96,46,10,.22)}.festival-lion::before{position:absolute;left:23px;top:-25px;width:83px;height:39px;content:"";border-radius:80% 80% 20% 20%;background:repeating-linear-gradient(90deg,#f4bd48 0 9px,#c42628 10px 15px)}.festival-lion::after{position:absolute;left:37px;bottom:18px;width:57px;height:24px;content:"";border-radius:50%;background:#fff3cf;border:4px solid #a62c28}.festival-lion span{position:absolute;left:55px;top:55px;width:27px;height:19px;border-radius:50%;background:#e7a734;border:3px solid #8f2a24}
.festival-star{position:absolute;right:0;bottom:45px;width:158px;height:158px;border-radius:50%;display:grid;place-items:center;background:repeating-conic-gradient(from 4deg,#d7a03b 0 4deg,transparent 5deg 13deg);filter:drop-shadow(0 10px 12px rgba(122,69,11,.18))}.festival-star::before{width:110px;height:110px;content:"";clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 93%,50% 70%,21% 93%,32% 56%,2% 35%,39% 35%);background:linear-gradient(145deg,#e83d2d,#a51e22);box-shadow:inset 0 0 0 5px #f4bf4d}.festival-star i{position:absolute;width:46px;height:46px;border-radius:50%;border:2px solid #f7d77b;background:#c92826}
#shopPage .campaign-intro{overflow:visible}#shopPage .campaign-intro::after{z-index:-1}.campaign-intro::marker{content:""}.campaign-copy::after{position:absolute;right:25%;bottom:13px;content:"☾";font:700 31px Georgia,serif;color:rgba(184,111,25,.25)}
#shopPage .product-image img,#shopPage .product-image.contain img{transform:scale(.88)}#shopPage .product[data-product="taro"] .product-image img{transform:scale(.80)}#shopPage .product:hover .product-image img{transform:scale(.91)}#shopPage .product[data-product="taro"]:hover .product-image img{transform:scale(.83)}
@media(max-width:1380px){.festival-side-art{opacity:.7;width:130px}.festival-left{right:calc(100% + 6px)}.festival-right{left:calc(100% + 6px)}.festival-star{transform:scale(.72);transform-origin:right bottom}.festival-lion{transform:scale(.7);transform-origin:left bottom}.festival-bamboo{transform:scale(.7) rotate(-4deg);transform-origin:top left}}
@media(max-width:1180px){#shopPage{overflow:clip}.festival-side-art{display:none}.mid-autumn-countdown{margin-right:8px}}
@media(max-width:767px){.mid-autumn-countdown{display:none}#shopPage .product-image img,#shopPage .product-image.contain img{transform:scale(.87)}#shopPage .product[data-product="taro"] .product-image img{transform:scale(.79)}#shopPage .product:hover .product-image img{transform:scale(.87)}#shopPage .product[data-product="taro"]:hover .product-image img{transform:scale(.79)}}
body{overflow-x:hidden}
html{overflow-x:hidden}
/* v86 image containment fix: keep the complete supplied photograph inside the fixed stage. */
#shopPage .product-image img,#shopPage .product-image.contain img{width:auto;height:auto;max-width:100%;max-height:100%;min-width:0;min-height:0}/* Final v86 refinements from visual review. */
.festival-side-art{display:none!important}
.mid-autumn-countdown{margin-right:auto;padding:10px 16px;gap:7px;border-color:rgba(180,112,28,.48);box-shadow:0 8px 20px rgba(103,62,13,.16);font-size:12px;letter-spacing:.01em}.mid-autumn-countdown strong{min-width:31px;height:31px;font-size:16px}.mid-autumn-countdown small{font-size:11px}
#shopPage .campaign-intro h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(23px,2.5vw,34px);white-space:nowrap;letter-spacing:0;text-rendering:optimizeLegibility}
#shopPage>.shop-title,#shopPage .about-tu-phat h2{font-family:Georgia,"Times New Roman",serif;text-rendering:optimizeLegibility}
#shopPage .product h3,#shopPage .product p,#shopPage .product button{font-family:Inter,"Segoe UI",Arial,sans-serif}
@media(max-width:767px){.mid-autumn-countdown{display:none}#shopPage .campaign-intro h2{white-space:normal;font-size:clamp(18px,5vw,22px)}}
/* v87 — final visual corrections from supplied screenshots. */
#shopPage::before,#shopPage::after,#shopPage .campaign-intro::before,#shopPage .campaign-intro::after{display:none!important}
#shopPage .campaign-copy::after{display:none!important}
.mid-autumn-countdown{border:0;background:transparent;box-shadow:none;padding:4px 0;gap:6px;color:#7f4b14;font-size:13px}.mid-autumn-countdown span{font-weight:850;color:#9f5e17}.mid-autumn-countdown strong{display:inline;background:none;color:#a93427;min-width:0;height:auto;font-size:24px;line-height:1;font-weight:900}.mid-autumn-countdown small{font-size:12px;color:#806c54;font-weight:700}
#shopPage .campaign-intro{overflow:hidden}
#shopPage .campaign-intro h2{font-family:"Segoe UI",Inter,Arial,sans-serif;font-weight:850;font-size:clamp(23px,2.35vw,32px);line-height:1.12;white-space:normal;overflow-wrap:normal;letter-spacing:-.025em}
#shopPage .campaign-intro p{font-family:Inter,"Segoe UI",Arial,sans-serif;font-style:italic;letter-spacing:0}
#shopPage .campaign-cta{align-self:center;margin-top:16px;transform:none}
#shopPage .campaign-cta:hover{transform:translateY(-1px)}
#shopPage .about-tu-phat,#shopPage .about-tu-phat p,#shopPage .about-tu-phat h2,#shopPage .about-tu-phat .about-quote{font-variant-ligatures:none;text-rendering:optimizeLegibility}
@media(max-width:767px){.mid-autumn-countdown{display:none}#shopPage .campaign-cta{margin-top:0}}
/* v88: balance the two square product photos with the wider taro photograph. */
#shopPage .product[data-product="mix"] .product-image img{transform:scale(1.04)}
#shopPage .product[data-product="bean"] .product-image img{transform:scale(1.08)}
#shopPage .product[data-product="mix"]:hover .product-image img{transform:scale(1.07)}
#shopPage .product[data-product="bean"]:hover .product-image img{transform:scale(1.11)}
@media(max-width:767px){#shopPage .product[data-product="mix"] .product-image img{transform:scale(1.02)}#shopPage .product[data-product="bean"] .product-image img{transform:scale(1.06)}#shopPage .product[data-product="mix"]:hover .product-image img{transform:scale(1.02)}#shopPage .product[data-product="bean"]:hover .product-image img{transform:scale(1.06)}}