/* Bespoke Order page */
.bespoke-order-page{
  --dc-cream:#fffaf5;
  --dc-cream-2:#fff3ec;
  --dc-blush:#fff4fb;
  --dc-rose:#c94f7c;
  --dc-berry:#9f385f;
  --dc-plum:#5a2638;
  --dc-mauve:#8d6a79;
  --dc-border:#f0cfc8;
  --dc-border-strong:#e7b8c9;
  --dc-shadow:0 18px 50px rgba(90,38,56,.09);
  background:linear-gradient(180deg,#fff 0%,var(--dc-cream) 100%);
}
.bespoke-order-page .header{background:rgba(80,54,58,.34);backdrop-filter:blur(12px)}
.bespoke-order-page.scrolled .header{background:#bebbb1}
.bespoke-main{overflow:hidden;background:linear-gradient(180deg,#fff 0%,#fffaf5 52%,#fff 100%)}
.bespoke-hero{position:relative;min-height:720px;display:flex;align-items:center;padding:132px 0 78px;color:#fff;background:linear-gradient(135deg,rgba(65,28,38,.78),rgba(155,65,100,.62)),url('/assets/img/items/celebration-cake-09-white-pink-petal-vintage-cake.webp') center/cover no-repeat}
.bespoke-hero__wash{position:absolute;inset:0;background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.28),transparent 30%),linear-gradient(180deg,rgba(24,14,18,.25),rgba(24,14,18,.54));pointer-events:none}
.bespoke-hero h1{color:#fff;font-size:clamp(2.35rem,5vw,4.8rem);line-height:.98;letter-spacing:-.055em;margin:0 0 1rem;max-width:760px}
.bespoke-kicker{margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.18em;font-weight:800;font-size:.78rem;color:#ffd8e5}
.bespoke-hero__lead{font-size:clamp(1.05rem,1.8vw,1.28rem);line-height:1.7;max-width:660px;color:rgba(255,255,255,.92);margin:0}
.bespoke-hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.8rem}
.bespoke-hero__actions .btn{padding:.86rem 1.25rem}
.bespoke-trust-row{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1.4rem}
.bespoke-trust-pill{display:inline-flex;align-items:center;gap:.45rem;border:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.14);color:#fff;border-radius:999px;padding:.55rem .78rem;font-weight:700;font-size:.9rem;backdrop-filter:blur(10px)}
.bespoke-trust-pill:hover{color:#fff;background:rgba(255,255,255,.22)}
.hero-collage{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:440px;margin-left:auto;filter:drop-shadow(0 28px 42px rgba(0,0,0,.24))}
.hero-collage__item{border:10px solid rgba(255,255,255,.72);border-radius:32px;overflow:hidden;background:#fff;min-height:190px;transform:rotate(2deg)}
.hero-collage__item--large{grid-row:span 2;min-height:420px;transform:rotate(-3deg)}
.hero-collage__item img{width:100%;height:100%;object-fit:cover;display:block}
.bespoke-promise{background:#fff;padding-top:34px;padding-bottom:34px}
.promise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:-92px;position:relative;z-index:2}
.promise-card{display:flex;gap:1rem;align-items:flex-start;background:#fff;border:1px solid rgba(240,207,200,.95);border-radius:24px;padding:1.25rem;box-shadow:var(--dc-shadow)}
.promise-card i{font-size:1.55rem;color:var(--dc-rose);width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:var(--dc-blush);flex:0 0 auto}
.promise-card h2{font-size:1.05rem;margin:0 0 .25rem;color:var(--dc-plum)}
.promise-card p{margin:0;color:var(--dc-mauve);line-height:1.55;font-size:.95rem}
.promise-card--accent{background:linear-gradient(135deg,#fff5fb,#fffaf0);border-color:#eab6c8}
.bespoke-prices{background:#fffaf5;padding-top:48px;padding-bottom:48px}
.bespoke-section-heading{max-width:820px;text-align:center;margin:0 auto 1.4rem}
.bespoke-section-heading h2{font-size:clamp(1.65rem,3vw,2.35rem);color:var(--dc-plum);letter-spacing:-.035em;margin-bottom:.55rem}
.bespoke-section-heading p:last-child{color:var(--dc-mauve);margin:0 auto;max-width:720px;line-height:1.65}
.price-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem}
.price-guide-card{background:#fff;border:1px solid rgba(240,207,200,.95);border-radius:22px;padding:1.2rem;box-shadow:0 12px 30px rgba(90,38,56,.06)}
.price-guide-card span{display:block;color:var(--dc-mauve);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;margin-bottom:.35rem}
.price-guide-card strong{display:block;font-size:1.4rem;color:var(--dc-plum);margin-bottom:.25rem;font-family:var(--heading-font)}
.price-guide-card small{display:block;color:#806572;line-height:1.45}
.bespoke-order-section{padding:60px 0 76px;background:linear-gradient(180deg,#fff 0%,#fff9f4 100%)}
.bespoke-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1.35rem;align-items:start}
.bespoke-form-main{display:grid;gap:1.1rem}
.form-panel{background:rgba(255,255,255,.94);border:1px solid rgba(240,207,200,.95);border-radius:28px;padding:1.35rem;box-shadow:var(--dc-shadow)}
.panel-heading{display:flex;align-items:center;gap:.85rem;margin-bottom:1.15rem;padding-bottom:.95rem;border-bottom:1px solid rgba(240,207,200,.6)}
.panel-heading--compact{margin-bottom:.75rem;padding-bottom:.75rem}
.panel-icon{width:48px;height:48px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(135deg,#ffe7f0,#fff6fb);color:var(--dc-rose);font-size:1.35rem;flex:0 0 auto;border:1px solid rgba(231,184,201,.7)}
.panel-icon--warning{background:#fff8e9;color:#bf6a13;border-color:#f5d492}
.panel-step{margin:0 0 .15rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.7rem;color:var(--dc-rose)}
.panel-heading h2{font-size:clamp(1.35rem,2vw,1.75rem);margin:0;color:var(--dc-plum);letter-spacing:-.035em}
.form-label,.form-legend{font-weight:800;color:#583043;margin-bottom:.45rem}
.form-control,.form-select{border:1.5px solid var(--dc-border);border-radius:18px;padding:.85rem 1rem;color:#583043;box-shadow:0 7px 18px rgba(90,38,56,.045);background-color:#fff}
textarea.form-control{min-height:112px}.form-control:focus,.form-select:focus{border-color:var(--dc-rose);box-shadow:0 0 0 .22rem rgba(201,79,124,.13)}
.form-text{color:#9a7585;font-size:.86rem;margin-top:.42rem}.dietary-note{color:#9f385f}
.choice-grid{display:grid;gap:.85rem}.choice-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.choice-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid--compact{gap:.65rem}
.choice-card,.mini-choice{position:relative;display:block;cursor:pointer;margin:0}.choice-card input,.mini-choice input{position:absolute;opacity:0;pointer-events:none}
.choice-card__body,.mini-choice span{display:flex;gap:.78rem;align-items:center;min-height:100%;border:2px solid var(--dc-border);background:#fff;border-radius:22px;padding:1rem;color:#704455;box-shadow:0 8px 22px rgba(90,38,56,.045);transition:all .2s ease}
.choice-card__icon{width:42px;height:42px;border-radius:15px;background:#fff4f8;color:var(--dc-rose);display:grid;place-items:center;flex:0 0 auto;font-size:1.25rem}
.choice-card strong{display:block;color:var(--dc-plum);font-family:var(--heading-font);font-size:1.02rem}.choice-card small{display:block;color:#997383;line-height:1.35;margin-top:.15rem}
.choice-card input:checked+.choice-card__body,.mini-choice input:checked+span{border-color:var(--dc-rose);background:linear-gradient(135deg,#fff3fa,#fff);box-shadow:0 10px 30px rgba(201,79,124,.16)}
.choice-card input:checked+.choice-card__body .choice-card__icon{background:var(--dc-rose);color:#fff}.choice-card--promo input:checked+.choice-card__body{background:linear-gradient(135deg,#fff1f8,#fff8ef)}
.mini-choice span{font-weight:800;justify-content:space-between;gap:.65rem}.mini-choice small{font-weight:600;color:#9f7888}.mini-choice--wide{grid-column:1/-1}
.bundle-banner,.unlock-banner,.included-card,.soft-note,.classic-note,.estimate-note{display:flex;align-items:flex-start;gap:.75rem;border-radius:20px;padding:1rem;border:1px solid rgba(231,184,201,.78);background:linear-gradient(135deg,#fff4fb,#fff);color:#704455;margin-bottom:1rem;line-height:1.55}
.bundle-banner{border-color:#ea819d;background:linear-gradient(135deg,#c94f7c,#f58b64);color:#fff;box-shadow:0 16px 34px rgba(201,79,124,.18)}
.bundle-banner i{font-size:1.35rem}.unlock-banner{background:#fff0f6;border-color:#eab6c8;color:var(--dc-berry)}.unlock-banner i{color:var(--dc-rose)}
.included-card{background:#fff4fb}.included-card i,.classic-note i,.soft-note i,.estimate-note i{font-size:1.2rem;color:var(--dc-rose);flex:0 0 auto}.classic-note{margin-top:1rem}.soft-note{background:#fffaf5;border-color:#f1d7cd}.soft-note i{color:#bf6a13}
.dynamic-panel[hidden],.dynamic-panel-inner[hidden],.unlock-banner[hidden],.dietary-note[hidden]{display:none!important}
.addon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}
.addon-grid label,.policy-check{display:flex;gap:.55rem;align-items:flex-start;border:1px solid rgba(240,207,200,.95);border-radius:16px;padding:.8rem .9rem;background:#fff;color:#704455;font-weight:700;line-height:1.35}
.addon-grid input,.policy-check input{margin-top:.18rem;accent-color:var(--dc-rose);flex:0 0 auto}.policy-check{font-weight:600;background:#fffaf5}.policy-check span{flex:1}
.delivery-panel+.delivery-panel{margin-top:1rem}.allergen-panel{border-color:#f2cf8d;background:#fffdf5}.allergen-panel p{color:#9a5f23;line-height:1.65;margin-bottom:.95rem}
.upload-drop{display:grid;place-items:center;text-align:center;gap:.45rem;border:2px dashed #edbed0;border-radius:26px;background:#fffafd;padding:2.2rem 1.2rem;margin-bottom:.8rem;cursor:pointer;transition:all .2s ease;color:#704455}
.upload-drop:hover,.upload-drop.is-dragover{border-color:var(--dc-rose);background:#fff4fb}.upload-drop__icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#ffeaf3;color:var(--dc-rose);font-size:1.65rem}.upload-drop small{color:#9b7686}.upload-drop.has-files{border-style:solid;border-color:var(--dc-rose)}
.estimate-aside{position:sticky;top:104px}.estimate-card{background:#fff;border:1px solid rgba(240,207,200,.98);border-radius:30px;padding:1.2rem;box-shadow:0 22px 58px rgba(90,38,56,.13)}
.estimate-eyebrow{margin:0 0 .25rem;color:var(--dc-rose);text-transform:uppercase;letter-spacing:.16em;font-weight:900;font-size:.72rem}.estimate-card h2{font-size:1.55rem;color:var(--dc-plum);margin:0 0 1rem;letter-spacing:-.04em}
.estimate-lines{display:grid;gap:.65rem}.estimate-line{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-bottom:1px dashed rgba(240,207,200,.95);padding-bottom:.65rem;color:#8c6676}.estimate-line span{font-weight:700}.estimate-line strong{text-align:right;color:#5a2638;font-weight:900;font-size:.95rem}.estimate-line--discount strong{color:#0b7a4b}
.estimate-total{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin:1rem 0;padding:1rem;border-radius:22px;background:linear-gradient(135deg,#fff1f7,#fffaf0);border:1px solid #eab6c8}.estimate-total span{font-weight:900;color:var(--dc-berry)}.estimate-total strong{display:block;text-align:right;font-size:2rem;color:var(--dc-plum);line-height:1;font-family:var(--heading-font)}.estimate-total small{display:block;max-width:220px;text-align:right;color:#8d6a79;line-height:1.35;margin-top:.35rem}
.estimate-note{font-size:.9rem;padding:.85rem;margin-bottom:1rem;background:#fffaf5}.estimate-card .btn{padding:.95rem 1rem;display:flex;align-items:center;justify-content:center;gap:.55rem}.privacy-note{text-align:center;color:#9a7585;font-size:.84rem;margin:.8rem 0 0}.privacy-note a{color:var(--dc-berry);text-decoration:underline;text-underline-offset:3px}
.invalid-feedback:not(:empty){color:#b42318;font-weight:700;margin:.4rem 0 .8rem}.bespoke-form.was-validated :invalid{border-color:#d84a4a!important}
@media (max-width:1199.98px){.bespoke-form-grid{grid-template-columns:1fr}.estimate-aside{position:static}.estimate-card{max-width:none}.price-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.promise-grid{grid-template-columns:1fr;margin-top:-76px}.hero-collage{margin:0 auto}}
@media (max-width:991.98px){.bespoke-hero{min-height:auto;padding:118px 0 70px}.hero-collage{max-width:520px}.promise-grid{margin-top:-54px}.choice-grid--three{grid-template-columns:1fr}.choice-grid--two{grid-template-columns:1fr}.addon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:575.98px){.bespoke-hero{padding:108px 0 58px}.bespoke-hero__actions .btn{width:100%;justify-content:center}.hero-collage{display:none}.promise-grid{margin-top:-34px}.form-panel{border-radius:22px;padding:1rem}.panel-heading{align-items:flex-start}.price-guide-grid,.addon-grid{grid-template-columns:1fr}.estimate-total{display:block}.estimate-total strong,.estimate-total small{text-align:left}.estimate-total strong{margin-top:.55rem}.choice-card__body{align-items:flex-start}.bespoke-trust-pill{width:100%;justify-content:center}}


/* v3.12 bespoke refinements */
.product-toggle-card .choice-card__body{position:relative;padding-right:4.3rem}
.product-toggle-card .switch-pill{position:absolute;right:1rem;top:50%;transform:translateY(-50%);opacity:0;border-radius:999px;background:var(--dc-rose);color:#fff;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .55rem;transition:opacity .18s ease}
.product-toggle-card input:checked+.choice-card__body .switch-pill{opacity:1}
.choice-card__icon--emoji,.panel-icon--emoji{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;line-height:1}
.product-choice-feedback{margin-top:.65rem}
.label-action-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.45rem}
.label-action-row .form-label{margin-bottom:0}
.flavour-guide-link{display:inline-flex;align-items:center;gap:.35rem;border:1px solid rgba(231,184,201,.9);border-radius:999px;background:#fff8fb;color:var(--dc-berry);font-weight:900;font-size:.86rem;padding:.42rem .72rem;text-decoration:none}
.flavour-guide-link:hover{color:#fff;background:var(--dc-rose);border-color:var(--dc-rose)}
.flavour-rule-card{border:1px solid rgba(231,184,201,.75);background:linear-gradient(135deg,#fff7fb,#fffaf5);border-radius:18px;padding:.85rem 1rem;color:#704455;margin-bottom:.8rem;line-height:1.45;font-size:.92rem}
.cupcake-flavour-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.flavour-group{border:1px solid rgba(240,207,200,.95);border-radius:20px;background:#fff;padding:.9rem;display:grid;gap:.55rem}
.flavour-group p{margin:0 0 .15rem;color:var(--dc-berry);font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}
.flavour-group label{display:flex;align-items:center;gap:.5rem;margin:0;border:1px solid rgba(240,207,200,.9);border-radius:14px;padding:.65rem .75rem;color:#704455;font-weight:800;cursor:pointer;background:#fff;transition:all .18s ease}
.flavour-group label:has(input:checked){border-color:var(--dc-rose);background:#fff3fa;color:var(--dc-plum);box-shadow:0 8px 20px rgba(201,79,124,.1)}
.flavour-group input{accent-color:var(--dc-rose)}
.flavour-group input:disabled+span{opacity:.45}
.submit-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;background:linear-gradient(135deg,#fff4fb,#fffaf0)}
.submit-panel__copy h2{font-size:1.55rem;margin:0 0 .35rem;color:var(--dc-plum);letter-spacing:-.035em}.submit-panel__copy p:last-child{margin:0;color:var(--dc-mauve);line-height:1.55}.submit-panel .btn{padding:.95rem 1.35rem;white-space:nowrap;display:inline-flex;align-items:center;gap:.55rem;justify-content:center}
.flavour-guide-section{background:linear-gradient(180deg,#fffaf5 0%,#fff 100%);padding:64px 0 78px}
.flavour-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;align-items:start}.flavour-guide-column{display:grid;gap:.85rem}.flavour-column-heading{border:1px solid rgba(240,207,200,.95);border-radius:24px;background:#fff;padding:1.05rem;box-shadow:0 12px 30px rgba(90,38,56,.06)}.flavour-column-heading span{display:block;color:var(--dc-plum);font-family:var(--heading-font);font-size:1.35rem;font-weight:800}.flavour-column-heading small{display:block;color:var(--dc-mauve);font-weight:700;margin-top:.2rem}.flavour-guide-column--premium .flavour-column-heading{background:linear-gradient(135deg,#fff1f8,#fffaf0);border-color:#eab6c8}
.flavour-card{background:#fff;border:1px solid rgba(240,207,200,.95);border-radius:22px;padding:1rem 1.05rem;box-shadow:0 10px 26px rgba(90,38,56,.055)}.flavour-card h3{font-size:1.08rem;margin:0 0 .35rem;color:var(--dc-berry);letter-spacing:-.02em}.flavour-card p{margin:0;color:#806572;line-height:1.55}
.cupcake-guide-card{margin-top:1.2rem;border:1px solid #eab6c8;border-radius:28px;background:linear-gradient(135deg,#fff3fa,#fffaf2);box-shadow:var(--dc-shadow);padding:1.25rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.7fr);gap:1rem;align-items:center}.cupcake-guide-card h2{margin:0 0 .45rem;color:var(--dc-plum);font-size:1.55rem}.cupcake-guide-card p{color:#806572;line-height:1.6}.cupcake-guide-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.cupcake-guide-rules span{display:grid;gap:.15rem;background:#fff;border:1px solid rgba(240,207,200,.95);border-radius:18px;padding:.8rem;text-align:center;color:#806572;font-weight:700}.cupcake-guide-rules strong{color:var(--dc-berry);display:block}
@media (max-width:991.98px){.cupcake-flavour-grid,.flavour-guide-grid,.cupcake-guide-card{grid-template-columns:1fr}.submit-panel{grid-template-columns:1fr}.submit-panel .btn{width:100%}.cupcake-guide-rules{grid-template-columns:1fr}}
@media (max-width:575.98px){.product-toggle-card .choice-card__body{padding-right:1rem}.product-toggle-card .switch-pill{position:static;transform:none;margin-left:auto}.cupcake-flavour-grid{grid-template-columns:1fr}.label-action-row{align-items:flex-start}.flavour-guide-link{width:100%;justify-content:center}}

/* v3.13 bespoke stability updates */
.upload-file-list{list-style:none;margin:.7rem 0 .8rem;padding:0;display:grid;gap:.5rem}
.upload-file-list[hidden]{display:none!important}
.upload-file-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid rgba(240,207,200,.95);border-radius:16px;background:#fff;padding:.65rem .75rem;color:#704455;font-weight:700;box-shadow:0 8px 18px rgba(90,38,56,.04)}
.upload-file-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-file-list small{color:#9a7585;font-weight:700;white-space:nowrap}
.upload-file-remove{border:0;border-radius:999px;background:#fff0f6;color:var(--dc-berry);font-weight:900;width:32px;height:32px;display:inline-grid;place-items:center;flex:0 0 auto;line-height:1}
.upload-file-remove:hover{background:var(--dc-rose);color:#fff}
@media (max-width:1199.98px){.bottom-submit-panel{display:none!important}}


/* Inline SVG panel icons avoid missing icon-font glyphs on the bespoke form. */
.panel-icon .panel-svg{width:1.35rem;height:1.35rem;display:block;stroke:currentColor;flex:0 0 auto}
