/* Papillon Cake: self-contained presentation, shared Store business rules. */
.storefront.cake-store,.storefront.cake-store[data-mode=light]{--primary:#cf517c;--primary-deep:#a93764;--surface:#fffaf7;--panel:#fff;--text:#492c38;--muted:#856d75;--border:#eddce1;--radius:20px;--shadow:0 14px 40px #7c3c4e0b;background:var(--surface);color:var(--text)}
.storefront.cake-store[data-mode=dark]{--primary:#efa4be;--primary-deep:#e78aa9;--surface:#241a20;--panel:#34232c;--text:#fff0f3;--muted:#d7b2c1;--border:#6a4051}
.storefront.cake-store button,.storefront.cake-store .button{background:var(--primary);color:#fff;border-radius:100px}
.storefront.cake-store .secondary,.storefront.cake-store .icon-button{background:var(--panel);color:var(--text);border-color:var(--border)}
.storefront.cake-store a{color:inherit}.storefront.cake-store a:hover{color:var(--primary-deep)}
.storefront.cake-store .announcement{background:#60283f;color:#ffedf2;letter-spacing:.02em}
.storefront.cake-store .store-header{background:var(--surface);border-color:var(--border)}
.storefront.cake-store .brand{font-size:18px;font-weight:900;letter-spacing:-.6px}
.storefront.cake-store .brand-mark{background:#fbe1e9;color:#a93764;border-radius:50%}
.storefront.cake-store .brand-mark svg{display:none}
.storefront.cake-store .brand-mark:after{content:"P";font:bold 22px Georgia,serif}
.storefront.cake-store .cart-link{border-color:var(--border);background:var(--panel);color:var(--text)}
.storefront.cake-store .cart-count{background:#f7d2df;color:#66253f}
.storefront.cake-store .store-nav a:hover{color:var(--primary-deep)}
.storefront.cake-store .product-card{background:var(--panel);border:1px solid var(--border);border-radius:22px;box-shadow:none}
.storefront.cake-store .product-card:hover{border-color:var(--primary)}
.storefront.cake-store .product-media{background:#fff2f3;border-radius:16px}
.storefront.cake-store .product-card h3,.storefront.cake-store .product-price{color:var(--text)}
.storefront.cake-store .product-badge,.storefront.cake-store .card-bottom .icon-button{background:var(--primary);color:white}
.storefront.cake-store .store-footer{background:#f8e9eb;color:#512f3d;border-color:#e7cbd5}
.storefront.cake-store[data-mode=dark] .store-footer{background:#35232b;color:var(--text)}
.storefront.cake-store .footer-bottom{color:var(--muted)}
.cake-home,.cake-builder-page{max-width:1220px;margin:0 auto;font-size:15px}
.cake-home h1,.cake-home h2,.cake-builder-page h1,.cake-builder-page h2{font-family:Vazirmatn,Tahoma,sans-serif;letter-spacing:-1.5px}
.cake-kicker{color:#bc4b71;font-size:12px;font-weight:800;letter-spacing:.02em;display:inline-flex;align-items:center;gap:9px}
.cake-kicker-dot{width:7px;height:7px;background:#cb527c;border-radius:50%}
.cake-hero{display:grid;grid-template-columns:1.03fr .97fr;min-height:548px;overflow:hidden;border-radius:32px;background:#fbedef}
.cake-hero-copy{padding:90px 65px 70px 30px;position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start}
.cake-hero h1{font-size:clamp(42px,4.9vw,68px);font-weight:900;line-height:1.38;margin:24px 0 17px;color:#502c3b}
.cake-hero em,.cake-builder-heading em{font-style:normal;color:#c6507b}
.cake-hero-copy>p{max-width:450px;color:#775663;font-size:16px;line-height:2.2;margin-bottom:26px}
.cake-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:25px}
.storefront.cake-store .cake-main-cta,.storefront.cake-store .cake-hero-actions .button{background:#562b3c;color:#fff;padding:13px 27px;font-size:14px;min-height:54px}
.storefront.cake-store .cake-main-cta:hover{background:#a93764;color:#fff}
.cake-text-link{font-weight:800;color:#6a374c!important;border-bottom:1px solid #cb7891;padding-bottom:5px}
.cake-hero-footnote{font-size:12px;color:#985f75;margin-top:auto;padding-top:26px;display:flex;align-items:center;gap:10px}
.cake-tiny-flower{font-size:18px}
.cake-hero-art{position:relative;display:flex;align-items:flex-end;justify-content:center;min-height:480px;background:radial-gradient(circle at 50% 45%,#fce5e7 0 36%,#f6d7dd 36% 55%,#f8e0e5 55% 100%);overflow:hidden}
.cake-art-orbit{position:absolute;width:400px;height:400px;border:1px solid #d987a252;border-radius:50%;top:8%;left:50%;transform:translateX(-50%)}
.orbit-two{width:330px;height:330px;top:15%}
.cake-art-label{position:absolute;font-size:10px;letter-spacing:2px;color:#a75875;font-weight:900}
.cake-label-top{top:50px;left:30px;transform:rotate(-12deg)}.cake-label-bottom{bottom:39px;right:30px}
.cake-art-label span{font-size:21px}.cake-petal{position:absolute;font-size:41px;color:#c96189}
.cake-petal-a{right:14%;top:20%}.cake-petal-b{left:12%;bottom:33%;color:#fdf3ed}
.cake-hero-stack{position:relative;width:min(90%,450px);height:415px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:46px;animation:cake-gentle 6s ease-in-out infinite}
.cake-art-tier{position:relative;flex:none;height:136px;box-shadow:inset -16px -12px 0 #6f325021,0 10px 0 #9a526020;border:2px solid #9e476341}
.cake-art-tier:before{content:"";position:absolute;top:-15px;left:-1.5%;width:103%;height:39px;border-radius:50%;background:inherit;border:2px solid #9e47631a}
.cake-art-tier:after{content:"";position:absolute;top:14px;left:0;width:100%;height:18px;background:radial-gradient(circle at 13px 0,#fff8f3 12px,transparent 13px) repeat-x;background-size:27px 24px;opacity:.85}
.cake-art-top{width:57%;height:125px;border-radius:43% 43% 17px 17px / 28px 28px 17px 17px;background:linear-gradient(120deg,#f5b6c6,#ed8eae);z-index:2}
.cake-art-bottom{width:80%;border-radius:48% 48% 20px 20px / 27px 27px 20px 20px;background:linear-gradient(120deg,#eab1c7,#d87698);z-index:1}
.cake-art-plate{position:absolute;bottom:29px;width:90%;height:30px;background:#fff9f4;border:3px solid #d1a4ae;border-radius:50%;box-shadow:0 14px 0 -6px #ad7385}
.cake-art-cherry{position:absolute;bottom:299px;width:34px;height:35px;z-index:4;background:#aa254d;border-radius:60% 40% 45% 50%;box-shadow:28px 2px 0 -5px #c64267}
.cake-art-cherry:before{content:"";position:absolute;width:3px;height:36px;background:#577c5d;bottom:24px;left:17px;transform:rotate(30deg)}
.cake-ribbon{display:flex;justify-content:center;align-items:center;gap:32px;flex-wrap:wrap;color:#9d5170;text-align:center;padding:23px;border-bottom:1px solid #eddce1;font-size:13px;font-weight:800}
.cake-ribbon i{font-style:normal;font-size:18px;color:#cc6d8c}
.cake-editorial,.cake-collection{padding:95px 4px 70px}
.cake-section-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:30px}
.cake-section-heading h2{font-size:clamp(28px,3vw,40px);line-height:1.5;margin:10px 0 0}
.cake-section-heading p{max-width:300px;font-size:13px;color:var(--muted);margin:0}
.cake-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.cake-steps>div{position:relative;background:#fff;border:1px solid #efdee3;border-radius:24px;padding:34px 27px 31px;min-height:250px}
.cake-steps b{position:absolute;top:18px;left:22px;color:#e5c5d0;font:700 13px Arial,sans-serif}
.cake-step-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#fbe5ec;color:#ad476f;font-size:28px;margin-bottom:20px}
.cake-steps h3{font-size:17px;margin-bottom:6px}.cake-steps p{font-size:13px;color:#896d77;margin:0}
.cake-invitation{display:flex;align-items:center;justify-content:space-between;gap:40px;min-height:330px;padding:58px 70px;border-radius:28px;background:#f6dbdf;position:relative;overflow:hidden}
.cake-invitation:after{content:"";position:absolute;border:2px solid #e9a6b9;border-radius:50%;width:360px;height:360px;left:-80px;top:-50px;pointer-events:none}
.cake-invitation-copy{max-width:600px;position:relative;z-index:1}
.cake-invitation h2{font-size:clamp(25px,3.4vw,39px);margin:10px 0 14px}
.cake-invitation p{color:#745461;margin-bottom:21px}
.cake-invitation-stamp{z-index:1;width:180px;height:180px;flex:none;border:2px dashed #b35c78;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;transform:rotate(-14deg);color:#a24365;line-height:1.3;text-align:center;font:800 20px Georgia,serif}
.cake-invitation-stamp strong{font-size:40px;margin-top:12px}
.cake-category-pills{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.cake-category-pills a{border:1px solid #ebcad4;background:#fff;padding:9px 20px;border-radius:100px;font-weight:700}
.cake-empty-collection{grid-column:1/-1;background:#fff;border:1px dashed #e7b8c8;border-radius:24px;text-align:center;padding:45px}
.cake-empty-collection>span{font-size:32px;color:#bb5279}.cake-empty-collection h3{font-size:19px}
.cake-empty-collection p{color:#8b7080}.cake-empty-collection a{color:#ae446d!important;font-weight:800}
.cake-footer-note{border-top:1px solid #ead2d9;text-align:center;padding:40px 12px 65px}
.cake-footer-note span{color:#bf4d75;font-size:36px}
.cake-footer-note p{font-size:18px;font-weight:800}.cake-footer-note a{font-weight:800;color:#a84468!important}
.cake-builder-page{padding:16px 5px 70px}
.cake-breadcrumb{color:#947381;font-size:12px;margin-bottom:33px}.cake-breadcrumb a{font-weight:800}
.cake-breadcrumb span{margin-inline:4px}
.cake-builder-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:30px}
.cake-builder-heading h1{font-size:clamp(31px,4vw,48px);margin:8px 0}
.cake-builder-heading p{color:var(--muted);max-width:650px;margin-bottom:0}
.cake-build-counter{background:#f9e5eb;border-radius:100px;padding:12px 20px;white-space:nowrap;color:#a4476a;font-size:12px;font-weight:800}.cake-build-counter span{font-size:17px;margin-right:12px}
.cake-builder-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:24px;align-items:start}
.cake-controls{display:grid;gap:18px}
.cake-panel,.cake-preview-panel{background:var(--panel);border:1px solid var(--border);border-radius:24px;padding:27px}
.cake-panel-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px;gap:15px}
.cake-panel-heading span{font-size:12px;font-weight:800;color:#c35c80}
.cake-panel-heading h2{font-size:23px;margin:2px 0 0}
.cake-panel-heading small{color:var(--muted);font-size:11px}
.cake-tier-list{display:grid;gap:15px}
.cake-tier-card{position:relative;min-width:0;border:1px solid #efdce3;background:#fffafc;border-radius:18px;padding:18px 20px 22px;margin:0}
.cake-tier-card legend{padding:0 10px;font-size:13px;font-weight:900;color:#993f63}
.cake-tier-actions{position:absolute;top:-18px;left:12px;display:flex;gap:5px}
.storefront.cake-store .cake-mini-button{min-height:29px;min-width:29px;padding:0 7px;background:#fff;color:#8f4562;border:1px solid #ebc9d4;font-size:17px;box-shadow:none}
.storefront.cake-store .cake-mini-button:hover{background:#fae4eb}
.storefront.cake-store .cake-mini-button:disabled{opacity:.3}
.cake-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cake-fields label{color:#805d6a;font-size:11px}
.cake-fields select{display:block;width:100%;min-width:0;margin-top:7px;padding:8px 6px;font-size:12px;background:#fff;border-color:#efdae3}
.storefront.cake-store .cake-add-tier{width:100%;padding:12px;margin-top:17px;border:1px dashed #c97090;background:#fff7fa;color:#a33f65;border-radius:12px}
.storefront.cake-store .cake-add-tier:hover{background:#fae5ed}
.storefront.cake-store .cake-add-tier:disabled{opacity:.55;cursor:not-allowed}
.cake-help{font-size:11px;margin:12px 0 0;color:#957582}
.cake-finish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cake-finish-option{cursor:pointer;position:relative;border:1px solid #efdae3;background:#fffafc;border-radius:16px;min-height:132px;padding:14px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.cake-finish-option input{position:absolute;top:8px;right:8px;accent-color:#bd4a70;width:16px!important;height:16px!important}
.cake-finish-option:has(input:checked){border-color:#c45079;background:#fcecf2;box-shadow:inset 0 0 0 1px #c45079}
.cake-finish-icon{font-size:30px;color:#ac4a72}
.cake-finish-option strong{font-size:12px;color:#63374a}
.cake-finish-option small{font-size:10px;color:#987985}
.cake-message-label{display:block;color:#71485c;font-size:13px;margin:25px 0 8px}
.cake-message-label span{color:#a99aa0;font-size:11px}
.cake-panel #cake-message{width:100%;border-radius:12px}
.cake-mobile-cta .button{width:100%;padding:15px;border-radius:14px}
.cake-preview-panel{position:sticky;top:95px;background:#fff5f6;overflow:hidden}
.cake-preview-top{display:flex;justify-content:space-between;align-items:center}
.cake-preview-heart{font-size:30px;color:#b95377}
.cake-stage{height:340px;margin:10px auto 0;position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 70%,#f8e1e7,#fff3f4 65%,transparent 70%);border-radius:22px}
.cake-layer-visuals{width:100%;min-height:250px;display:flex;align-items:center;flex-direction:column-reverse;justify-content:flex-start;z-index:1;padding-top:10px}
.cake-illustrated-tier{width:var(--cake-width);height:78px;flex:none;position:relative;border-radius:48% 48% 10px 10px/25px 25px 10px 10px;background:linear-gradient(110deg,#f3b7c9,#de7f9c);border:1px solid #c66a8970;box-shadow:inset -10px -9px 0 #7e344525;transition:width .25s}
.cake-illustrated-tier:before{content:"";width:102%;height:24px;position:absolute;left:-1%;top:-11px;border-radius:50%;background:inherit;border:1px solid #d88a9f}
.cake-illustrated-tier:after{content:"";position:absolute;left:0;top:13px;width:100%;height:15px;background:radial-gradient(circle at 13px 0,#fff8f7 12px,transparent 13px) repeat-x;background-size:26px 21px}
.cake-illustrated-tier[data-frosting=vanilla]{background:linear-gradient(110deg,#fff1d7,#efdbba);border-color:#dfcaaa}
.cake-illustrated-tier[data-frosting=cocoa]{background:linear-gradient(110deg,#a36b5d,#784a47);border-color:#69403c}
.cake-illustrated-tier[data-frosting=cocoa]:after{background:radial-gradient(circle at 13px 0,#e1b6aa 12px,transparent 13px) repeat-x;background-size:26px 21px}
.cake-stand{z-index:1;height:21px;width:78%;border-radius:50%;background:#f9f5ef;border:2px solid #d0afaf;box-shadow:0 8px 0 -3px #bd9195;margin-top:-8px;margin-bottom:26px}
.cake-preview-deco{position:absolute;font-size:27px;color:#d47a9a;z-index:0}.cake-deco-left{left:10%;top:33%}.cake-deco-right{right:13%;top:19%}
.cake-preview-caption{font-size:11px;text-align:center;color:#9d7c87;margin:0 0 18px}
.cake-quote-box{border-top:1px solid #edceda;padding:22px 0 13px;display:flex;flex-direction:column;gap:7px}
.cake-quote-box>span{font-size:12px;color:#7b5b69}
.cake-quote-box strong{font-size:29px;line-height:1.3;letter-spacing:-1px;color:#522a3e}
.cake-quote-box strong small{font-size:13px;font-weight:500;color:#836673}
.cake-quote-box p{font-size:11px;color:#946e7d;margin:5px 0;min-height:24px}
.storefront.cake-store .cake-preview-add{width:100%;padding:14px;font-size:13px}
@keyframes cake-gentle{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:1000px){.cake-hero-copy{padding:65px 40px}.cake-builder-layout{grid-template-columns:1fr}.cake-preview-panel{position:static;order:-1}.cake-stage{max-width:570px}.cake-hero{min-height:490px}}
@media(max-width:700px){.cake-home,.cake-builder-page{max-width:100%}.cake-hero{grid-template-columns:1fr;min-height:0}.cake-hero-copy{padding:39px 24px 30px}.cake-hero h1{font-size:40px}.cake-hero-copy>p{font-size:14px}.cake-hero-art{min-height:330px}.cake-hero-stack{height:320px;padding-bottom:24px}.cake-art-tier{height:98px}.cake-art-top{height:98px}.cake-art-cherry{bottom:222px}.cake-art-plate{bottom:9px}.cake-label-top{top:21px}.cake-ribbon{gap:10px;font-size:11px}.cake-ribbon i{font-size:10px}.cake-editorial,.cake-collection{padding:58px 0}.cake-section-heading{align-items:start;flex-direction:column;gap:6px}.cake-section-heading h2{font-size:28px}.cake-steps{grid-template-columns:1fr}.cake-steps>div{min-height:0}.cake-invitation{padding:35px 24px;min-height:0}.cake-invitation-stamp{display:none}.cake-builder-heading{display:block}.cake-build-counter{display:inline-block;margin-top:15px}.cake-controls{gap:12px}.cake-panel,.cake-preview-panel{padding:20px 15px}.cake-fields{grid-template-columns:1fr}.cake-fields label{font-size:12px}.cake-fields select{font-size:14px}.cake-finish-grid{gap:6px}.cake-finish-option{min-height:118px;padding:13px 3px}.cake-finish-option strong{font-size:11px}.cake-quote-box strong{font-size:25px}.cake-stage{height:285px}.cake-layer-visuals{min-height:205px}.cake-illustrated-tier{height:61px}.cake-preview-add{display:none}}
@media(prefers-reduced-motion:reduce){.cake-hero-stack{animation:none}.cake-illustrated-tier{transition:none}}

/* Floral accents are vector/CSS geometry, never font-dependent emoji. */
.cake-tiny-flower,.cake-petal,.cake-preview-deco{display:inline-block;position:relative;width:22px;height:22px}
.cake-tiny-flower:before,.cake-petal:before,.cake-preview-deco:before{content:"";position:absolute;top:8px;left:8px;width:7px;height:7px;border-radius:50%;background:#bf5077;box-shadow:0 -8px 0 #eaaabc,0 8px 0 #eaaabc,-8px 0 0 #eaaabc,8px 0 0 #eaaabc}
.cake-petal{position:absolute;width:38px;height:38px}
.cake-petal:before{transform:scale(1.5)}
.cake-preview-deco:before{background:#b85475;box-shadow:0 -8px 0 #e7a6ba,0 8px 0 #e7a6ba,-8px 0 0 #e7a6ba,8px 0 0 #e7a6ba}
.cake-preview-deco[data-finish=none]:before{box-shadow:none;width:11px;height:11px;border:2px solid #cb7891;background:transparent}
.cake-preview-deco[data-finish=berries]:before{background:#a83b5c;box-shadow:4px -5px 0 #d4617d,-5px -5px 0 #d4617d}

/* Photography and legible, responsive cake storefront. */
.cake-photo-art{background:#efd6d5;min-height:520px}.cake-photo-art>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.cake-photo-caption{position:absolute;bottom:24px;right:24px;left:24px;background:#fff9f2e8;color:#623c4b;padding:12px 20px;border-radius:100px;backdrop-filter:blur(14px);font-weight:800;text-align:center}
.cake-invitation-photo{width:34%;aspect-ratio:1;object-fit:cover;border-radius:50% 50% 28px 28px;position:relative;z-index:1}.cake-practical{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;margin-bottom:64px;padding:24px;background:var(--panel);border:1px solid var(--border);border-radius:28px}.cake-practical img{width:100%;height:auto;border-radius:20px}.cake-practical h2{font-size:28px}.cake-practical p{color:var(--muted);line-height:2.1}
.cake-home .cake-kicker,.cake-builder-page .cake-kicker{font-size:14px}.cake-steps p,.cake-section-heading p,.cake-hero-footnote,.cake-help{font-size:14px;line-height:2}.cake-illustrated-tier{background:var(--cake-frosting,#ed8eae)!important}.cake-illustrated-tier:before{background:inherit!important}.cake-controls select,.cake-controls input{font:inherit;min-height:46px}.cake-finish-option input{min-height:0}.cake-builder-page button:focus-visible,.cake-home a:focus-visible{outline:3px solid #b14578;outline-offset:4px}
.storefront.cake-store[data-mode=dark] .cake-hero{background:#37232d}.storefront.cake-store[data-mode=dark] .cake-hero h1{color:#fff0f3}.storefront.cake-store[data-mode=dark] .cake-hero-copy>p{color:#ddbdc9}.storefront.cake-store[data-mode=dark] .cake-steps>div,.storefront.cake-store[data-mode=dark] .cake-category-pills a{background:var(--panel);border-color:var(--border)}.storefront.cake-store[data-mode=dark] .cake-steps p{color:var(--muted)}.storefront.cake-store[data-mode=dark] .cake-invitation{background:#482b37}.storefront.cake-store[data-mode=dark] .cake-invitation p{color:#e4c4cf}.storefront.cake-store[data-mode=dark] .cake-kicker,.storefront.cake-store[data-mode=dark] .cake-text-link{color:#efb0c6!important}
@media(max-width:760px){.cake-photo-art{min-height:350px;order:-1}.cake-photo-art>img{object-position:center 45%}.cake-hero-copy{padding:32px 24px}.cake-hero h1{font-size:40px;margin-top:12px}.cake-invitation-photo{width:100%;max-width:360px;aspect-ratio:4/3;border-radius:22px}.cake-practical{grid-template-columns:1fr;padding:20px;gap:20px}.cake-practical img{order:-1}.cake-invitation{padding:28px}.cake-home{padding:0 12px}.cake-builder-page{padding:20px 12px 80px}.cake-panel,.cake-preview-panel{padding:20px}.cake-section-heading{align-items:start}.cake-hero-actions{gap:20px}.cake-main-cta{width:100%}.cake-practical h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){.cake-store *{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
