:root{--color-bg:#fff;--color-surface:#fdf7ee;--color-text:#1c1a17;--color-accent:#f2a03d;--color-accent-2:#d2776a;--color-divider:#ece8e1;--color-neutral-100:#fbfaf8;--color-neutral-200:#f3f1ed;--color-neutral-300:#e7e3dd;--color-neutral-400:#cbc5bc;--color-neutral-500:#a39c93;--color-neutral-600:#7c756c;--color-neutral-700:#585249;--color-neutral-800:#3a352e;--color-neutral-900:#221f1a;--color-accent-100:#fef6e9;--color-accent-200:#fde8c7;--color-accent-300:#fbd79b;--color-accent-400:#f8c06a;--color-accent-500:#f2a03d;--color-accent-600:#e08a24;--color-accent-700:#bd6f16;--color-accent-800:#8f5310;--color-accent-900:#5e360a;--color-accent-2-100:#fdf0ee;--color-accent-2-200:#f8dcd7;--color-accent-2-300:#f0bdb4;--color-accent-2-400:#e3978b;--color-accent-2-500:#d2776a;--color-accent-2-600:#b85c4f;--color-accent-2-700:#96473c;--color-accent-2-800:#70342c;--color-accent-2-900:#4a211b;--color-success:#2e9e5b;--font-heading:var(--next-font-body),"Inter",system-ui,sans-serif;--font-body:var(--next-font-body),"Inter",system-ui,sans-serif;--font-zh:var(--next-font-zh),"Noto Sans SC",sans-serif;--space-1:4.4px;--space-2:8.8px;--space-3:13.2px;--space-4:17.6px;--space-6:26.4px;--space-8:35.2px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--shadow-sm:0 1px 2px rgba(28,26,23,.06);--shadow-md:0 2px 10px rgba(28,26,23,.08);--shadow-lg:0 8px 28px rgba(28,26,23,.14);--washi:var(--color-bg);--paper:var(--color-neutral-100);--ink:var(--color-text);--ink-soft:var(--color-neutral-600);--ink-faint:var(--color-neutral-400);--sage:var(--color-accent-2);--sage-deep:var(--color-accent-2-700);--blush:var(--color-accent-200);--blush-deep:var(--color-accent-700);--hairline:var(--color-divider);--danger:#b23a2b;--display:var(--font-heading);--body:var(--font-body)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0}body,html{overscroll-behavior-y:none}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:15px;line-height:1.55;font-weight:400;-webkit-font-smoothing:antialiased;padding-bottom:calc(76px + env(safe-area-inset-bottom))}@media (min-width:900px){body{padding-bottom:0}}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:color-mix(in srgb,var(--color-accent) 30%,transparent)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;letter-spacing:-.015em;line-height:1.2;margin:0 0 var(--space-2);text-wrap:pretty}h1{font-size:27px}h2{font-size:22px}h3{font-size:18px}h4{font-size:16px}h5{font-size:14px}p{margin:0 0 var(--space-3)}@media (min-width:900px){h1{font-size:36px}h2{font-size:27px}h3{font-size:21px}}.washed{filter:none}.zh{font-family:var(--font-zh)}.container{max-width:1180px;margin:0 auto;padding:0 20px}.biline,.biline .zh{display:block}.biline .zh{font-family:var(--font-zh);font-size:13px;font-weight:500;color:var(--color-accent-700);margin-bottom:5px}.biline .en{display:block;font-family:var(--font-heading);font-size:26px;line-height:1.18;font-weight:700;letter-spacing:-.02em}.biline.small .en{font-size:18px}.biline.small .zh{font-size:12px;color:var(--color-neutral-600)}.biline.sage .zh{color:var(--color-accent-2-600)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none;text-align:center;font-family:var(--font-body);font-weight:600;font-size:14.5px;line-height:1;color:var(--color-text);background:var(--color-accent);border:none;padding:15px 22px;border-radius:12px;white-space:nowrap;transition:background .15s ease,box-shadow .15s ease}.btn:hover{background:var(--color-accent-400)}.btn:active{background:var(--color-accent-600)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.rose{background:var(--color-accent-2);color:#fff}.btn.rose:hover{background:var(--color-accent-2-400)}.btn.rose:active{background:var(--color-accent-2-600)}.btn.ghost{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-divider)}.btn.ghost:hover{background:var(--color-neutral-200)}.btn.ghost:active{background:var(--color-neutral-300)}.btn.dark{background:var(--color-text);color:#fff}.btn.dark:hover{background:var(--color-neutral-800)}.btn-block{width:100%}.cta-row{gap:12px;flex-wrap:wrap}.circle-btn,.cta-row{display:flex;align-items:center}.circle-btn{width:38px;height:38px;border-radius:999px;border:none;cursor:pointer;justify-content:center;flex:none;background:var(--color-neutral-200);color:var(--color-neutral-800)}.circle-btn.on-accent{background:var(--color-accent);color:var(--color-text)}.circle-btn.sage{background:var(--color-accent-2-200);color:var(--color-accent-2-800)}label{display:block;font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--color-neutral-700);margin:0 0 7px}input,select,textarea{width:100%;padding:13px 15px;font:inherit;font-size:14px;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-divider);border-radius:12px;caret-color:var(--color-accent-600)}textarea{border-radius:12px;resize:vertical;min-height:90px}input::placeholder,textarea::placeholder{color:var(--color-neutral-500)}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--color-text) 45%,transparent)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--color-accent);outline-offset:0}.error{color:var(--danger);font-size:13px;margin-top:10px}.hint{font-size:12px;color:var(--color-neutral-600)}.dialog-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:var(--space-4);background:color-mix(in srgb,var(--color-neutral-900) 50%,transparent)}.dialog{width:min(420px,100%);max-height:85vh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-neutral-100);box-shadow:var(--shadow-lg)}.dialog-title{font-family:var(--font-heading);font-weight:400;font-size:20px}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.top-bar{position:-webkit-sticky;position:sticky;top:0;z-index:30;border-bottom:1px solid var(--color-divider)}.top-bar,.top-bar.on-sage{background:var(--color-bg)}.top-bar-row{display:flex;align-items:center;gap:10px;padding:12px 20px;max-width:1180px;margin:0 auto}.top-bar-brand{display:flex;flex-direction:column;margin-right:auto}.top-bar-brand .name{font-family:var(--font-heading);font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.top-bar-brand .sub{font-family:var(--font-zh);font-size:11.5px;letter-spacing:.02em;color:var(--color-neutral-600);margin-top:2px}.top-bar-brand .sub.sage{color:var(--color-accent-2-600)}.top-bar-title{flex:1 1;min-width:0}.top-bar-title .title{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-bar-title .subtitle{font-family:var(--font-zh);font-size:10.5px;color:var(--color-neutral-600)}.top-bar-actions{display:flex;gap:8px;flex:none}.cart-circle{position:relative}.cart-badge{position:absolute;top:-2px;right:-2px;min-width:17px;height:17px;background:var(--color-text);color:var(--color-bg);font-size:10px;justify-content:center;padding:0 3px}.cart-badge,.stripe-pill{border-radius:999px;font-weight:700;display:flex;align-items:center}.stripe-pill{gap:5px;padding:8px 12px;background:var(--color-accent-2-100);color:var(--color-accent-2-800);font-size:11px;flex:none}.desktop-header{display:none}.desktop-nav{display:flex;gap:28px;font-size:13.5px;font-weight:600}.desktop-nav a{color:var(--color-neutral-700)}.desktop-nav a[aria-current=page]{color:var(--color-accent-800)}.desktop-search{width:210px;gap:8px;padding:10px 16px;background:var(--color-neutral-200);border-radius:12px;color:var(--color-neutral-600);font-size:13px}.desktop-search,.lang-pill{display:flex;align-items:center}.lang-pill{gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--color-divider);font-size:12.5px;font-weight:600}.bottom-nav{display:flex;align-items:stretch;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--color-bg);border-top:1px solid var(--color-divider);padding:8px 8px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -2px 16px rgba(28,26,23,.05)}.bottom-nav-item{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;border-radius:14px;color:var(--color-neutral-600);font-size:10.5px;font-weight:600}.bottom-nav-item svg{width:21px;height:21px}.bottom-nav-item.active{color:var(--color-accent-800);background:var(--color-accent-100);font-weight:700}.site-footer{border-top:1px solid var(--color-divider);margin-top:96px;padding:32px 0 48px;font-size:12px;color:var(--color-neutral-600);line-height:1.9}.preview-banner{text-align:center;font-size:11px;padding:8px 12px;letter-spacing:.06em}.draft-badge,.preview-banner{background:var(--color-text);color:var(--color-bg)}.draft-badge{position:absolute;top:8px;left:8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:999px}.draft-badge.inline{position:static;display:inline-block;background:var(--danger);margin-bottom:12px}.hero,.hero-compact{padding:14px 0 0}.section{margin-top:44px}.section>.biline{margin-bottom:20px}.rule{border:none;border-top:1px solid var(--color-divider);margin:44px 0}.img-placeholder{background:linear-gradient(140deg,var(--color-neutral-200) 0,var(--color-accent-100) 100%);display:flex;align-items:center;justify-content:center}.desktop-only{display:none!important}@media (min-width:900px){.mobile-only{display:none!important}.desktop-only{display:block!important}}.app-greeting{padding-top:var(--space-4)}.app-greeting .hello{font-size:13px;color:var(--color-neutral-600)}.app-greeting .who{font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.25}.app-search{display:flex;align-items:center;gap:9px;margin-top:var(--space-3);padding:12px 15px;border-radius:12px;background:var(--color-neutral-200);color:var(--color-neutral-600);font-size:13.5px}.app-search svg{flex:none}@media (min-width:900px){.app-search{max-width:420px}}.cat-tabs{display:flex;gap:20px;margin-top:var(--space-4);border-bottom:1px solid var(--color-divider);overflow-x:auto;scrollbar-width:none}.cat-tabs::-webkit-scrollbar{display:none}.cat-tab{flex:none;padding:0 0 9px;background:none;cursor:pointer;font:inherit;font-size:13.5px;font-weight:600;color:var(--color-neutral-600);border:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.cat-tab.active{color:var(--color-text);border-bottom-color:var(--color-accent)}.cat-tab[aria-disabled=true]{opacity:.55;cursor:default}.rail-head{display:flex;align-items:baseline;gap:10px;margin:var(--space-6) 0 var(--space-3)}.rail-head h2{font-size:17px;margin:0}.rail-head .sub{font-size:12px;color:var(--color-neutral-600)}.rail-head .see-all-link{margin-left:auto;display:flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;color:var(--color-accent-800);white-space:nowrap}.bench-rail{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 4px}.bench-rail::-webkit-scrollbar{display:none}.see-all-tile{width:86px;flex:none;align-self:stretch;border-radius:var(--radius-md);background:var(--color-accent-100);border:1px solid var(--color-accent-200);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--color-accent-800);text-align:center;font-size:11px;font-weight:700;line-height:1.3}.desktop-grid-4{display:grid;grid-template-columns:repeat(4,1fr) 92px;grid-gap:18px;gap:18px}.hero-promo{display:grid;grid-template-columns:1fr;margin-top:var(--space-4);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface);border:1px solid var(--color-accent-200)}.hero-promo-copy{padding:var(--space-6)}.hero-promo-copy .eyebrow{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent-800);background:var(--color-accent-200);padding:4px 9px;border-radius:999px;margin-bottom:10px}.hero-promo-copy h1{font-size:25px;margin-bottom:7px}.hero-promo-copy p{font-size:13.5px;color:var(--color-neutral-700);margin-bottom:0}.hero-promo-photo{position:relative;min-height:170px;background:var(--color-neutral-200)}.hero-promo-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}@media (min-width:760px){.hero-promo{grid-template-columns:1.15fr 1fr;align-items:stretch}.hero-promo-copy{padding:var(--space-8)}.hero-promo-copy h1{font-size:34px}.hero-promo-photo{min-height:250px}}.promo-card{position:relative;overflow:hidden;border-radius:var(--radius-lg);padding:var(--space-6);background:var(--color-accent-100);border:1px solid var(--color-accent-200)}.promo-card h3{margin-bottom:4px}.promo-card .promo-sub{font-size:13px;color:var(--color-neutral-700);margin:0}.promo-card .cta-row{margin-top:var(--space-4)}.promo-card.rose{background:var(--color-accent-2-100);border-color:var(--color-accent-2-200)}.capacity-pill{display:inline-flex;align-items:center;gap:7px;margin-top:var(--space-3);padding:8px 13px;background:var(--color-accent-100);border-radius:999px;font-size:12.5px;font-weight:600;color:var(--color-accent-800)}.capacity-pill .dot{width:7px;height:7px;border-radius:999px;background:var(--color-accent-500)}.custom-promo-band,.wedding-promo-band{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;background:var(--color-accent-2-100);border:1px solid var(--color-accent-2-200);border-radius:var(--radius-lg);padding:var(--space-6)}.inspiration-gallery{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.inspiration-tile{aspect-ratio:4/3;border-radius:var(--radius-md);padding:12px;align-items:flex-end!important;background:linear-gradient(150deg,var(--color-accent-200),var(--color-accent-2-200));border:1px solid var(--color-divider)}.inspiration-tile:nth-child(2n){background:linear-gradient(150deg,var(--color-accent-2-200),var(--color-accent-300))}.inspiration-tile-caption{font-size:12px;font-weight:700;color:var(--color-neutral-900);line-height:1.3}.inspiration-tile-en{font-size:11px;font-weight:500;color:var(--color-neutral-700)}.quick-package-teaser{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:13px 16px;background:var(--color-accent-100);border-radius:var(--radius-md);font-size:12.5px;line-height:1.5;color:var(--color-accent-800)}.quick-package-teaser svg{flex:none;margin-top:2px;color:var(--color-accent-600)}@media (min-width:900px){.inspiration-gallery{grid-template-columns:repeat(4,1fr)}}.cakes-head,.cakes-head-titles{display:flex;align-items:center;gap:14px}.cakes-title-en{font-family:var(--font-heading);font-size:22px;font-weight:700;letter-spacing:-.02em}.cakes-title-sub{font-size:13px;color:var(--color-neutral-600);margin-left:10px}@media (min-width:900px){.cakes-title-en{font-size:28px}}.product-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:14px;gap:14px;margin-top:var(--space-4)}@media (min-width:900px){.product-grid{grid-template-columns:repeat(4,1fr);gap:20px}}.capacity-badge{position:absolute;top:8px;left:8px;font-size:10px;font-weight:700;padding:4px 9px;border-radius:999px;background:hsla(0,0%,100%,.92);color:var(--color-neutral-800);box-shadow:var(--shadow-sm)}.capacity-badge.tight{background:var(--color-accent-500);color:var(--color-text)}.price-desktop{display:none}@media (min-width:900px){.container{padding:0 48px}.top-bar{display:none}.desktop-header{display:block;border-bottom:1px solid var(--color-divider);position:-webkit-sticky;position:sticky;top:0;z-index:30}.desktop-header,.desktop-header.on-sage{background:var(--color-bg)}.desktop-header-row{display:flex;align-items:center;gap:28px;padding:14px 48px}.bottom-nav{display:none!important}.biline .en{font-size:34px}.biline.small .en{font-size:20px}.hero{padding:28px 0 0}.section{margin-top:56px}.price-mobile{display:none}.price-desktop{display:inline}.product-card-name .zh{font-size:14.5px}.product-card-name .en-name{font-size:12px}}.product-card-rail{width:158px;flex:none}.product-card-rail .product-card-name .zh{font-size:12.5px}.product-card-rail .product-card-name .en-name{font-size:11px}.product-desc{color:var(--color-neutral-700);margin-top:var(--space-4)}.size-card-row{display:flex;gap:9px}.finish-card,.method-card,.size-card{flex:1 1;border:1px solid var(--color-divider);border-radius:20px;padding:11px 8px;text-align:center;background:none;cursor:pointer;font:inherit;color:var(--color-text)}.finish-card.active,.method-card.active,.size-card.active{border:1.5px solid var(--color-accent);background:var(--color-accent-100)}.size-card-label{display:block;font-family:var(--font-heading);font-size:16px}.size-card-price{display:block;font-size:12px;font-weight:700;color:var(--color-neutral-700);margin-top:3px}.size-card.active .size-card-price{color:var(--color-accent-700)}.finish-card{display:flex;align-items:center;gap:9px;text-align:left;padding:10px;font-size:12px;font-weight:600}.finish-swatch{width:26px;height:26px;border-radius:999px;flex:none;border:1px solid var(--color-neutral-300);background:var(--color-neutral-100)}.finish-swatch-fruit{background:var(--color-accent-200);border-color:var(--color-accent-300)}.counted-input{position:relative}.counted-input input{padding-right:56px}.counted-input-count{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--color-neutral-500);pointer-events:none}.tile-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:9px;gap:9px}.customise-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--color-divider);border-radius:20px;padding:14px 6px;background:none;cursor:pointer;font-size:11px;font-weight:600;line-height:1.25;text-align:center;color:var(--color-text)}.customise-tile-dashed{border-style:dashed;border-width:1.5px;color:var(--color-neutral-600)}.customise-tile-check{position:absolute;top:8px;right:8px;width:16px;height:16px;border-radius:999px;background:var(--color-accent-2);color:var(--color-neutral-100);display:flex;align-items:center;justify-content:center}.day-rail-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-neutral-600);margin-bottom:10px}.day-rail{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.day-rail::-webkit-scrollbar{display:none}.day-tile{width:66px;flex:none;border-radius:24px;padding:13px 0;text-align:center;border:none;cursor:pointer;font:inherit;color:var(--color-text)}.day-tile:disabled{cursor:not-allowed}.day-tile.full{background:rgba(32,30,29,.06);color:var(--color-neutral-500)}.day-tile.open{background:var(--color-accent-2-100);color:var(--color-accent-2-700)}.day-tile.tight{background:var(--color-accent-200);color:var(--color-accent-700)}.day-tile.selected{background:var(--color-accent);color:var(--color-bg);box-shadow:var(--shadow-md)}.day-tile-dow{display:block;font-size:11px}.day-tile-num{display:block;font-family:var(--font-heading);font-size:20px;line-height:1.1;margin-top:2px}.day-tile-caption{display:block;font-size:10px;margin-top:5px;font-weight:700}.day-detail-card{margin-top:20px;padding:20px;background:var(--color-neutral-100);border-radius:var(--radius-lg);border:1px solid var(--color-divider)}.day-detail-head{display:flex;justify-content:space-between;align-items:baseline}.day-detail-date{font-family:var(--font-heading);font-size:18px}.capacity-meter{display:flex;gap:5px;margin-top:16px}.capacity-meter-seg{flex:1 1;height:12px;border-radius:999px;background:var(--color-accent)}.capacity-meter-seg.used{background:var(--color-neutral-300)}.day-detail-caption{font-size:12.5px;color:var(--color-neutral-700);margin-top:10px}.day-detail-caption b{color:var(--color-accent-700)}.open-full-month-row{display:flex;align-items:center;gap:10px;margin-top:14px;padding:14px 18px;border:1px dashed rgba(32,30,29,.22);border-radius:24px;background:none;width:100%;cursor:pointer;font-size:12.5px;color:var(--color-neutral-700);text-align:left}.open-full-month-row svg:first-child{color:var(--color-neutral-600);flex:none}.method-card-row{display:flex;gap:9px}.method-card-title{display:block;font-size:13px;font-weight:700}.method-card-sub{display:block;font-size:11px;color:var(--color-neutral-700);margin-top:2px}.method-card.active .method-card-sub{color:var(--color-accent-700)}.cal-sage .cal-day:not(:disabled){background:var(--color-accent-2-200);border-radius:14px}.cal-sage .cal-day:disabled{background:rgba(32,30,29,.07);text-decoration:line-through}.cal-sage .cal-day.selected{background:var(--color-accent-2);color:var(--color-neutral-100);box-shadow:var(--shadow-md)}.cal-sage .month{color:var(--color-accent-2-800)}.order-step-screen{max-width:480px}.checkout-summary-card{display:flex;gap:13px;padding:14px;background:var(--color-neutral-100);border-radius:26px;border:1px solid var(--color-divider)}.checkout-summary-thumb{width:60px;height:60px;border-radius:20px;flex:none;overflow:hidden}.checkout-summary-thumb img{width:100%;height:100%;object-fit:cover}.checkout-summary-info{flex:1 1;min-width:0}.checkout-summary-name{font-size:13.5px;font-weight:700}.checkout-summary-meta{font-size:12px;color:var(--color-neutral-700);margin-top:2px}.checkout-summary-edit{display:block;margin-top:4px;border:none;background:none;padding:0;font:inherit;font-size:12px;color:var(--color-accent-700);font-weight:700;cursor:pointer}.checkout-summary-price{font-family:var(--font-heading);font-size:16px;flex:none}.stacked-inputs{display:flex;flex-direction:column;gap:9px}.postcode-row{gap:9px;flex-wrap:wrap}.postcode-row,.postcode-status{display:flex;align-items:center}.postcode-status{gap:6px;font-size:12.5px;font-weight:600}.postcode-status.ok{color:var(--color-accent-2-800)}.postcode-status.bad{color:var(--danger)}input.postcode-valid{border-color:var(--color-accent-2);background:var(--color-accent-2-100)}.payment-method-list{display:flex;flex-direction:column;gap:9px}.payment-method-row{display:flex;align-items:center;gap:12px;border:1px solid var(--color-divider);border-radius:22px;padding:13px 16px;cursor:pointer}.payment-method-row.active{border:1.5px solid var(--color-accent);background:var(--color-accent-100)}.payment-method-row input{position:absolute;opacity:0;width:0;height:0}.payment-method-dot{width:20px;height:20px;border-radius:999px;border:1.5px solid var(--color-neutral-500);flex:none}.payment-method-row.active .payment-method-dot{border:5px solid var(--color-accent);background:var(--color-bg)}.payment-method-label{font-size:13.5px;font-weight:700}.payment-method-badge{font-size:10.5px;font-weight:700;color:var(--color-accent-700);background:var(--color-accent-200);padding:3px 8px;border-radius:999px}.checkout-summary-bar{display:block}.checkout-line-item{color:var(--color-neutral-700);margin-bottom:4px}.checkout-line-item,.checkout-total-row{display:flex;justify-content:space-between;font-size:12.5px}.checkout-total-row{align-items:baseline;margin-bottom:11px;font-weight:700}.checkout-total-row b{font-family:var(--font-heading);font-size:22px;font-weight:400}.success-screen{max-width:440px;padding-top:12px}.success-icon-circle{width:104px;height:104px;border-radius:999px;background:var(--color-accent-2-100);color:var(--color-accent-2-600);display:flex;align-items:center;justify-content:center;margin-bottom:20px}.success-heading{font-size:32px}.success-subheading{color:var(--color-accent-700);font-size:16px;font-weight:600;margin:0 0 var(--space-3)}.success-body{color:var(--color-neutral-700)}.success-summary-card{margin:var(--space-4) 0;align-items:flex-start}.success-summary-divider{height:1px;background:var(--color-divider);margin:8px 0}.success-summary-line{display:flex;align-items:center;gap:6px;font-size:12.5px;margin-top:3px}.success-summary-line.muted{color:var(--color-neutral-600)}.success-cta-row{margin-top:var(--space-4)}.success-back-link{display:inline-block;margin-top:var(--space-6);font-weight:700;color:var(--color-accent-700)}.weddings-landing{padding-bottom:110px}.weddings-enquiry-col{scroll-margin-top:90px;margin-top:32px;background:var(--color-accent-2-100);border-radius:var(--radius-lg);padding:var(--space-6)}.weddings-eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--color-accent-2-600)}.weddings-heading{font-size:27px;line-height:1.16;margin-top:10px}.weddings-sub{font-size:13.5px;color:var(--color-neutral-700);margin-top:9px;line-height:1.6}.weddings-photo{height:200px;margin:18px 0 0;border-radius:var(--radius-lg)}.weddings-services-block{padding:24px 0 0}.service-tile-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.service-tile{display:flex;align-items:center;gap:10px;padding:12px 13px;background:var(--color-bg);border:1px solid var(--color-divider);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);font-size:12px;font-weight:600;line-height:1.3;color:var(--color-text)}.service-tile svg{color:var(--color-accent-2-600);flex:none}.service-tile-en{color:var(--color-neutral-600);font-weight:500}.wedding-stats{display:flex;gap:12px;margin-top:18px}.wedding-stats>div{flex:1 1;padding:14px;border-radius:var(--radius-md);background:var(--color-accent-2-100);border:1px solid var(--color-accent-2-200)}.wedding-stat-value{font-family:var(--font-heading);font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--color-accent-2-800)}.wedding-stat-label{font-size:11.5px;color:var(--color-neutral-700);margin-top:2px}.weddings-sticky-cta{position:fixed;left:0;right:0;bottom:calc(68px + env(safe-area-inset-bottom));z-index:20;background:var(--color-bg);border-top:1px solid var(--color-divider);padding:12px 20px 14px}.weddings-sticky-cta-note{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-accent-2-800);font-weight:600;margin-bottom:10px}.weddings-sticky-cta-note .dot{width:7px;height:7px;border-radius:999px;background:var(--color-accent-2-600);flex:none}@media (min-width:900px){.weddings-landing{display:grid;grid-template-columns:1fr 400px;grid-gap:48px;gap:48px;align-items:start;padding-bottom:0}.weddings-photo{margin:18px 0 0;border-radius:var(--radius-lg)}.service-tile-grid,.weddings-photo-strip{grid-template-columns:repeat(3,1fr)}.weddings-photo-strip{display:grid;grid-gap:10px;gap:10px;margin-top:28px}.weddings-photo-strip span{aspect-ratio:4/3;border-radius:var(--radius-md);display:block}.weddings-enquiry-col{margin-top:0}}.enquiry-form .pill.active{background:var(--color-accent-2);color:var(--color-neutral-100);border-color:var(--color-accent-2)}.enquiry-legend{display:flex;gap:16px;margin-top:10px;font-size:11px;color:var(--color-accent-2-700)}.enquiry-legend span{display:flex;align-items:center;gap:5px}.enquiry-legend-swatch{width:11px;height:11px;border-radius:4px;display:block}.enquiry-legend-swatch.open{background:var(--color-accent-2-200)}.enquiry-legend-swatch.taken{background:rgba(32,30,29,.1)}.enquiry-band-row{display:flex;gap:10px;margin-top:14px}.enquiry-footer{margin-top:18px;padding:16px 18px;background:var(--color-accent-2-100);border-radius:var(--radius-lg)}.enquiry-footer-note{font-size:11.5px;color:var(--color-accent-2-800);line-height:1.5;margin-bottom:10px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:32px;gap:32px}.card{background:var(--paper);border:1px solid var(--hairline)}.card .pad{padding:20px 22px 24px}.card h3{margin:0 0 2px;font-family:var(--display);font-size:20px;font-weight:400}.card .en-name{font-size:10px;letter-spacing:.2em;text-transform:uppercase}.card .en-name,.card p{color:var(--ink-soft);font-weight:300}.card p{font-size:14px;margin:10px 0 14px}.price{font-size:12px;font-weight:500;color:var(--color-neutral-600)}.price b{font-size:15.5px;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.cal{border:1px solid var(--hairline);background:var(--paper);padding:20px;border-radius:var(--radius-md)}.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.cal-head button{border:none;background:none;font-size:16px;cursor:pointer;color:var(--ink-soft);padding:4px 10px}.cal-head .month{font-family:var(--display);font-size:17px;font-weight:400}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.cal-grid .dow{font-size:10px;text-align:center;color:var(--ink-faint);padding:4px 0;letter-spacing:.12em;font-weight:300}.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;border:1px solid transparent;background:none;cursor:pointer;color:var(--ink);font-family:var(--body);font-weight:400;border-radius:var(--radius-sm)}.cal-day:hover:not(:disabled){border-color:var(--hairline)}.cal-day:disabled{color:var(--ink-faint);cursor:not-allowed;text-decoration:line-through}.cal-day.selected{background:var(--color-accent);color:var(--color-bg);border-color:var(--color-accent)}.cal-day .left{font-size:9px;color:var(--sage)}.cal-day.selected .left{color:hsla(0,0%,100%,.7)}.order-layout{display:grid;grid-template-columns:1fr 1fr;grid-gap:56px;gap:56px;align-items:start}.product-card{display:block;background:var(--color-bg);overflow:hidden;border:1px solid var(--color-divider);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:box-shadow .16s ease}.product-card:focus-visible,.product-card:hover{box-shadow:var(--shadow-md)}.product-card-photo{display:block;aspect-ratio:1/1;overflow:hidden;background:var(--color-neutral-200);position:relative}.product-card-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}.product-card:focus-visible .product-card-photo img,.product-card:hover .product-card-photo img{transform:scale(1.04)}.product-card-photo-empty{display:block;width:100%;height:100%}.product-card-meta{display:block;padding:10px 12px 12px}.product-card-stock{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:var(--color-success);margin-bottom:4px}.product-card-stock .dot{width:5px;height:5px;border-radius:999px;background:currentColor;flex:none}.product-card-stock.tight{color:var(--color-accent-800)}.product-card-name{display:flex;flex-direction:column;min-height:36px}.product-card-name .zh{font-family:var(--font-zh);font-size:13.5px;font-weight:600;line-height:1.3}.product-card-name .en-name{font-size:11.5px;color:var(--color-neutral-600);margin-top:1px;line-height:1.3}.product-card-price-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px}.product-card-cart{width:32px;height:32px;flex:none;border-radius:10px;background:var(--color-accent);color:var(--color-text);display:flex;align-items:center;justify-content:center}.gallery{position:-webkit-sticky;position:sticky;top:108px}.gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:var(--hairline)}.gallery-track::-webkit-scrollbar{display:none}.gallery-slide{width:100%;object-fit:cover}.gallery-slide,.gallery-slide-empty{flex:0 0 100%;aspect-ratio:4/5;scroll-snap-align:start}.gallery-dots{display:flex;justify-content:center;gap:6px;margin-top:14px}.gallery-dot{width:5px;height:5px;border-radius:50%;border:none;padding:0;background:var(--hairline);cursor:pointer}.gallery-dot.active{background:var(--color-accent)}.gallery-thumbs{display:none}@media (min-width:900px){.gallery-dots{display:none}.gallery-thumbs{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:8px;gap:8px;margin-top:10px}.gallery-thumb{padding:0;border:1px solid transparent;cursor:pointer;aspect-ratio:1;overflow:hidden;background:var(--hairline);border-radius:var(--radius-sm)}.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:.5}.gallery-thumb.active{border-color:var(--ink-faint)}.gallery-thumb.active img{opacity:1}}.field-group{margin:22px 0}.field-group>label:first-child{margin-top:0}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.pill{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 15px;border:1px solid var(--hairline);background:var(--paper);border-radius:999px;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;min-height:40px;justify-content:center}.pill:hover{border-color:var(--color-accent)}.pill.active{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}.pill-sub{font-size:11px;color:var(--ink-soft);font-weight:500}.pill.active .pill-sub{color:hsla(0,0%,100%,.65)}.stepper{display:inline-flex;align-items:center;border:1px solid var(--hairline);border-radius:999px}.stepper button{width:40px;height:40px;border:none;background:none;font-size:18px;cursor:pointer;color:var(--ink-soft)}.stepper button:disabled{color:var(--ink-faint);cursor:not-allowed}.stepper span{width:36px;text-align:center;font-size:14px}.order-summary-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;padding-top:18px;border-top:1px solid var(--hairline)}.order-summary-total b{font-size:20px;font-weight:400;font-family:var(--display)}@media (max-width:899px){.order-layout{grid-template-columns:1fr!important;gap:0}.product-detail{margin-top:0}.gallery{position:static;margin:0 -20px 24px}.product-detail .order-form{padding-bottom:90px}.order-summary-bar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--color-neutral-100);border-top:1px solid var(--hairline);padding:12px 20px calc(12px + env(safe-area-inset-bottom));margin-top:0}.order-summary-bar .btn{padding:13px 22px}.grid{grid-template-columns:repeat(2,1fr);gap:15px 14px}}.admin table{width:100%;border-collapse:collapse;font-size:13px;background:var(--paper)}.admin td,.admin th{border:1px solid var(--hairline);padding:9px 12px;text-align:left;vertical-align:top;font-weight:300}.admin th{background:var(--washi);font-weight:400;font-size:12px;letter-spacing:.06em}.admin .row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.admin .mini{font-size:12px;padding:6px 12px}.admin h3{font-family:var(--display);font-size:20px;font-weight:400;margin:36px 0 16px}.admin h3:first-child{margin-top:0}.admin h4{font-size:13px;font-weight:400;margin:0 0 8px}.admin-flash{color:var(--sage-deep);font-size:13px}.admin-tabs{display:flex;gap:2px;margin-top:28px;border-bottom:1px solid var(--hairline);flex-wrap:wrap}.admin-tab{background:none;font:inherit;font-size:13px;color:var(--ink-soft);padding:10px 18px;cursor:pointer;border:none;border-bottom:1px solid transparent;margin-bottom:-1px;font-weight:300}.admin-tab:hover{color:var(--ink)}.admin-tab.active{color:var(--ink);border-bottom-color:var(--ink)}.admin-tab-panel{padding-top:32px}.preview-toggle-row{justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}.preview-toggle-row,.switch{display:flex;align-items:center}.switch{gap:8px;font-size:13px;cursor:pointer;font-weight:300}.switch input{width:auto;margin:0}.pending-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blush-deep);vertical-align:middle;margin-left:4px}.image-manager{display:flex;flex-wrap:wrap;gap:10px}.image-manager-item{position:relative;width:120px}.image-manager-item img{width:120px;height:120px;object-fit:cover;display:block;background:var(--hairline)}.image-manager-actions{display:flex;flex-direction:column;gap:3px;margin-top:4px}.image-manager-add{width:120px;height:120px;border:1px dashed var(--hairline);background:none;cursor:pointer;font-size:12px;color:var(--ink-soft);font:inherit;font-weight:300}.image-manager-add:hover{border-color:var(--ink-soft);color:var(--ink)}.row-editor{display:flex;gap:8px;margin-bottom:8px;align-items:center;flex-wrap:wrap}.row-editor input,.row-editor select{margin:0;width:auto;flex:1 1 140px}.price-input{display:flex;align-items:center;gap:4px;flex:0 0 100px;border:1px solid var(--hairline);background:var(--paper);padding:0 10px;border-radius:var(--radius-sm)}.price-input input{border:none;padding:10px 0;flex:1 1 auto;width:100%;border-radius:0}.price-input input:focus-visible{outline:none}.admin-product-list{display:flex;flex-direction:column;gap:1px;background:var(--hairline);margin-top:16px}.admin-product-row{display:flex;align-items:center;gap:14px;background:var(--paper);padding:10px 12px}.admin-product-thumb{width:52px;height:52px;flex:none;background:var(--hairline);overflow:hidden}.admin-product-thumb img{width:100%;height:100%;object-fit:cover;display:block}.admin-product-info{flex:1 1;font-size:13px;font-weight:300}.status-live{color:var(--sage-deep)}.status-draft{color:var(--blush-deep)}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:1px;gap:1px;background:var(--hairline);margin-top:20px}.stat-tile{background:var(--paper);padding:18px 20px;display:flex;flex-direction:column;gap:6px}.stat-tile-label{font-size:11px;color:var(--ink-soft);letter-spacing:.1em;font-weight:300}.stat-tile-value{font-family:var(--body);font-size:26px;font-weight:400;font-feature-settings:"pnum";font-variant-numeric:proportional-nums}.range-picker{display:flex;gap:4px}.range-picker .btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}.chart-card{background:var(--paper);border:1px solid var(--hairline);padding:20px 20px 10px;margin-top:20px}.chart-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.bar-chart-wrap{position:relative}.bar-chart{width:100%;height:182px;display:block;overflow:visible}.chart-baseline{stroke:var(--hairline);stroke-width:.3;vector-effect:non-scaling-stroke}.bar{fill:var(--ink-faint)}.bar-hover{fill:var(--ink)}.chart-axis-label{font-size:3.4px;fill:var(--ink-soft)}.chart-tooltip{position:absolute;top:4px;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:12px;padding:6px 10px;white-space:nowrap;pointer-events:none;z-index:5;font-weight:300}.chart-tooltip b{font-size:13px;font-weight:400}.chart-table-wrap table{font-size:12px}.analytics-tables{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:24px;gap:24px;margin-top:24px}