.pfm { --pfm-wine:var(--pf-wine,#671d2b); --pfm-cream:#f5eadf; --pfm-gold:var(--pf-gold,#e9ad51); color:#30252a; padding-block:.5rem 3rem; }
.pfm *, .pfm *::before, .pfm *::after { box-sizing:border-box; }
.pfm [hidden] { display:none!important; }
.pfm-heading { display:flex; align-items:center; gap:1rem; margin-bottom:.5rem; }
.pfm .pfm-heading h1 { margin:0; font-size:clamp(1.65rem,2.8vw,2.65rem); line-height:1.12; color:var(--pfm-wine); }
.pfm-heading p { margin:0; font-size:1rem; }
.pfm-eyebrow { text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; font-weight:750; color:var(--pfm-wine); }
.pfm-categories { margin-inline:-.3rem; padding:.3rem; }
.pfm-category-track { display:flex; align-items:stretch; gap:.5rem; overflow-x:auto; padding:.2rem .2rem .5rem; scrollbar-width:thin; scrollbar-color:#ba9b8f transparent; }
.pfm-category { display:flex; flex:1 0 102px; flex-direction:column; align-items:center; justify-content:flex-start; gap:.35rem; max-width:150px; padding:.5rem; text-align:center; border:1px solid transparent; border-radius:14px; color:var(--pfm-wine); text-decoration:none!important; font-size:.875rem; font-weight:700; line-height:1.25; }
.pfm-category-icon { display:grid; place-items:center; width:52px; height:42px; color:var(--pfm-wine); }
.pfm-category-icon svg { width:36px; height:36px; stroke-width:1.55; }
.pfm-category:hover { background:#fff6e8; border-color:#edd9bf; }
.pfm-category[aria-current="true"] { background:var(--pfm-wine); color:#fff8eb; box-shadow:0 6px 16px -9px #671d2b99; }
.pfm-category[aria-current="true"] .pfm-category-icon { color:var(--pfm-gold); }
.pfm-results { color:#75615c; font-size:.8rem; margin:.45rem 0; }
.pfm-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1.4rem; }
.pfm .pfm-group-heading { grid-column:1/-1; color:#35292b; font-size:1.15rem; margin:.6rem 0 -.3rem; text-transform:uppercase; letter-spacing:.02em; }
.pfm-card { min-width:0; background:var(--pfm-cream); border:1px solid #efe3d7; border-radius:12px; transition:box-shadow .18s,border-color .18s; }
.pfm-card > a { display:flex; flex-direction:column; height:100%; color:inherit; text-decoration:none; border-radius:inherit; overflow:hidden; }
.pfm-card:hover { border-color:#d0a784; box-shadow:0 12px 28px -18px #671d2b80; }
.pfm-card-image { position:relative; width:100%; aspect-ratio:1; flex:0 0 auto; min-height:0; background:#fff8ed; overflow:hidden; display:grid; place-items:center; }
/* Absolute containment avoids intrinsic grid/percentage-height overflow in WebKit and Chromium. */
.pfm-card-image img { position:absolute; inset:0; display:block; width:100%; height:100%; min-width:0; min-height:0; max-width:100%; max-height:100%; object-fit:contain; object-position:center; transition:transform .25s; }
.pfm-card:hover .pfm-card-image:not(.pfm-fallback) img { transform:scale(1.025); }
.pfm-card-image.pfm-fallback img { object-fit:contain; padding:1.3rem; }
.pfm-card-copy { display:flex; flex:1; flex-direction:column; padding:1rem; }
.pfm .pfm-card-copy h3 { margin:0 0 .5rem; font-size:1.05rem; line-height:1.3; color:#30252a; }
.pfm-card-copy > p { margin:0 0 1rem; color:#65544f; font-size:.875rem; line-height:1.5; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.pfm-card-bottom { display:flex; gap:.6rem; justify-content:space-between; align-items:end; margin-top:auto; padding-top:.4rem; }
.pfm-card-bottom strong { white-space:nowrap; font-size:1rem; color:var(--pfm-wine); }
.pfm-card-bottom > span { text-align:end; font-size:.8rem; line-height:1.3; color:var(--pfm-wine); }
.pfm-card-arrow { display:inline-block; width:20px; height:20px; vertical-align:middle; margin-left:3px; flex:none; }
.pfm-empty { background:#fff5e1; border-radius:14px; padding:2rem; text-align:center; }
.pfm-dialog { width:min(940px,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); padding:0; border:0; border-radius:22px; color:#30252a; background:#fffaf4; box-shadow:0 30px 90px #0006; overscroll-behavior:contain; overflow-y:auto; scrollbar-width:thin; scrollbar-color:var(--pfm-wine) #f0e5d8; scrollbar-gutter:stable; }
.pfm-dialog::-webkit-scrollbar { width:8px; }
.pfm-dialog::-webkit-scrollbar-track { background:#f0e5d8; border-radius:12px; }
.pfm-dialog::-webkit-scrollbar-thumb { background:var(--pfm-wine); border:2px solid #f0e5d8; border-radius:12px; }
#pf-public-menu .pfm-scroll-hint { position:sticky; bottom:14px; z-index:2; display:grid; place-items:center; margin:-48px 14px 12px auto; padding:0; width:44px; height:44px; min-height:44px; border:1px solid #d8b36d; border-radius:50%; background:var(--pfm-wine); color:#fff5e1; box-shadow:0 4px 16px #671d2b40; cursor:pointer; font-size:1.6rem; }
.pfm-scroll-hint span { animation:pfm-scroll-cue 1.6s ease-in-out infinite; }
@keyframes pfm-scroll-cue { 0%,100% { transform:translateY(-3px); } 50% { transform:translateY(3px); } }
.pfm-menu-intro { margin:2rem 0 0; padding-top:1rem; border-top:1px solid #e5d6c9; font-size:.9rem; line-height:1.6; color:#75615c; white-space:pre-line; }
.pfm-dialog:not([open]) { display:none; }
.pfm-dialog::backdrop { background:#261119b3; backdrop-filter:blur(4px); }
.pfm-close { position:sticky; top:12px; float:right; margin:12px 12px -58px 0; z-index:2; width:44px; height:44px; display:grid; place-items:center; padding:0; border:1px solid #e4d5ca; border-radius:50%; color:var(--pfm-wine); background:#fffaf4; cursor:pointer; font-size:2rem; line-height:1; box-shadow:0 3px 12px #0001; }
.pfm-detail { display:grid; grid-template-columns:1fr 1fr; min-width:0; }
.pfm-detail-image { display:grid; place-items:center; min-height:390px; background:#f6ecdf; }
.pfm-detail-image img { width:100%; height:100%; object-fit:cover; }
.pfm-detail-image.pfm-fallback img { height:auto; padding:2rem; object-fit:contain; }
.pfm-detail-copy { padding:3rem 2rem 2rem; min-width:0; }
.pfm-detail-copy .pfm-eyebrow { margin:0 0 .7rem; }
.pfm .pfm-product-title { margin:0 0 1rem; font-size:clamp(1.55rem,2.4vw,2.15rem); line-height:1.15; color:var(--pfm-wine); }
.pfm-description { white-space:pre-line; font-size:1rem; line-height:1.6; color:#66534d; }
.pfm-sizes { margin:1.5rem 0; padding:0; border:0; min-width:0; }
.pfm-sizes legend { padding:0; margin-bottom:.7rem; font-size:.9rem; font-weight:750; float:none; width:auto; }
.pfm-size-options { display:flex; flex-wrap:wrap; gap:.6rem; }
.pfm-size-options label { position:relative; display:flex; flex:1 1 130px; cursor:pointer; }
.pfm-size-options input { position:absolute; opacity:0; width:1px; height:1px; }
.pfm-size-options label > span { display:flex; flex:1; flex-direction:column; gap:.3rem; padding:.8rem 1rem; border:1px solid #d8c5bb; border-radius:12px; min-height:64px; }
.pfm-size-options input:checked + span { border:2px solid var(--pfm-wine); padding:calc(.8rem - 1px) calc(1rem - 1px); background:#f8e8d7; color:var(--pfm-wine); }
.pfm-size-options small { font-size:.8rem; }
.pfm-price-row { display:flex; justify-content:space-between; gap:1rem; align-items:center; border-top:1px solid #e8dbcf; padding-top:1.2rem; margin-top:1rem; }
.pfm-detail-price { color:var(--pfm-wine); font-size:1.6rem; }
.pfm-order-note { margin:1.3rem 0 0; padding:.85rem 1rem; border-radius:10px; background:#f4eadf; font-size:.8rem; line-height:1.5; color:#705850; }
.pfm-inline-detail { margin:1rem 0 2rem; border:1px solid #e9dacc; border-radius:16px; overflow:hidden; }
.pfm-back { display:inline-block; margin:1rem; color:var(--pfm-wine); }
.pfm :is(a,button):focus-visible, .pfm-size-options input:focus-visible + span { outline:3px solid #a96c21; outline-offset:3px; }
html.pfm-modal-open { overflow:hidden; scrollbar-gutter:stable; }
/* Outrank the site's generic component links/form controls without changing the site template. */
#pf-public-menu .pfm-category { color:var(--pfm-wine); }
#pf-public-menu .pfm-category[aria-current="true"] { color:#fff8eb; }
#pf-public-menu .pfm-card > a { color:inherit; }
#pf-public-menu .pfm-close { display:grid; min-height:44px; padding:0; border:1px solid #e4d5ca; border-radius:50%; background:#fffaf4; color:var(--pfm-wine); font:400 2rem/1 Arial,sans-serif; }
#pf-public-menu .pfm-sizes { padding:0; border:0; margin:1.5rem 0; }
#pf-public-menu .pfm-card-image img { height:100%; }
#pf-public-menu .pfm-detail-image img { height:100%; }
#pf-public-menu .pfm-detail-image.pfm-fallback img { height:auto; }
@media(min-width:1900px) { .pfm-grid { gap:1.7rem; } }
@media(max-width:1399px) { .pfm-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.1rem; } }
@media(max-width:1099px) { .pfm-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .pfm-category { flex-basis:96px; } }
@media(max-width:767px) {
  .pfm-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
  .pfm-heading { margin-bottom:.4rem; }.pfm-heading p { font-size:.9rem; }
  .pfm-category { flex:0 0 82px; padding:.4rem .3rem; font-size:.78rem; border-radius:12px; }
  .pfm-category-icon { height:34px; }.pfm-category-icon svg { width:30px; height:30px; }
  .pfm-card-copy { padding:.8rem; }.pfm .pfm-card-copy h3 { font-size:.95rem; }
  .pfm-card-copy > p { font-size:.8rem; }.pfm-card-bottom { flex-wrap:wrap; gap:.3rem; }
  .pfm-card-bottom > span { margin-left:auto; }.pfm-card-bottom strong { font-size:.95rem; }
  .pfm-dialog { width:calc(100vw - 1rem); max-height:calc(100dvh - 1rem); border-radius:18px; }
  .pfm-detail { grid-template-columns:1fr; }.pfm-detail-image { min-height:0; height:230px; }
  .pfm-detail-image img { max-height:230px; }.pfm-detail-image.pfm-fallback img { height:230px; padding:1.3rem; }
  #pf-public-menu .pfm-detail-image.pfm-fallback img { height:230px; }
  .pfm-detail-copy { padding:1.2rem; }.pfm-close { top:10px; margin-top:10px; margin-right:10px; }
}

/* Small local sauce mark; no font or remote image dependency. */
.pfm .pfm-addons-title{display:flex;align-items:center;gap:10px;min-width:0}
.pfm .pfm-addons-title>span{min-width:0}
.pfm .pfm-sauce-icon{width:32px;height:36px;flex:0 0 32px;display:block;overflow:visible}

/* Optional native disclosure: selections remain successful form controls when closed. */
.pfm .pfm-addons-disclosure{margin:18px 0;border:1px solid #e6d5c0;border-radius:14px;background:#fffaf3;min-width:0}
.pfm .pfm-addons-disclosure>summary{display:grid;grid-template-columns:minmax(0,1fr) 22px;align-items:center;gap:8px;min-height:58px;padding:14px 16px;cursor:pointer;list-style:none;color:var(--pf-wine,#671d2b);font-size:1.08rem;font-weight:700;line-height:1.35;border-radius:14px}
.pfm .pfm-addons-disclosure>summary::-webkit-details-marker{display:none}
.pfm .pfm-addons-disclosure>summary>span{grid-column:1;grid-row:1}
.pfm .pfm-addons-disclosure>summary small{grid-column:1;grid-row:2;justify-self:start;font-size:.75rem;font-weight:600;background:#f1e3d4;border-radius:20px;padding:4px 8px;white-space:nowrap}
.pfm .pfm-addons-disclosure>summary small[hidden]{display:none}
.pfm .pfm-addons-chevron{grid-column:2;grid-row:1;width:22px;height:22px;transition:transform .18s ease}
.pfm .pfm-addons-disclosure[open]>summary .pfm-addons-chevron{transform:rotate(180deg)}
.pfm .pfm-addons-disclosure>summary:hover{background:#f8eddf}
.pfm .pfm-addons-disclosure>summary:focus-visible{outline:3px solid #bb842b;outline-offset:3px}
.pfm .pfm-addons-disclosure>.pfm-addons{margin:0;padding:0 16px 14px;border:0}
.pfm .pfm-addons-disclosure>.pfm-addons>legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.pfm .pfm-addons-disclosure[open]>summary{border-bottom:1px solid #e6d5c0;margin-bottom:12px}
@media(prefers-reduced-motion:reduce){.pfm .pfm-addons-chevron{transition:none}}
@media(max-width:360px) { .pfm-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .pfm * { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

/* Recipe controls: independent, update-safe presentation owned by PizzaFashion. */
.pfm-size-pizza { display:grid; place-items:center; height:56px; color:var(--pfm-wine,#751b35); }
.pfm-size-pizza svg { width:48px; height:48px; }
.pfm-size-family svg { width:56px; height:56px; }
.pfm-weight { display:inline-flex; padding:.35rem .8rem; border-radius:999px; background:#f1e6d7; color:#702039; font-weight:750; }
.pfm .pfm-ingredients { border:0; padding:0; margin:1.2rem 0; }
.pfm .pfm-ingredients legend { font-weight:750; font-size:1.1rem; }
.pfm-ingredient-list { display:flex; flex-wrap:wrap; gap:.5rem; }
.pfm .pfm-ingredient { display:flex; align-items:center; gap:.4rem; border:1px solid #e2d6c8; padding:.5rem .65rem; background:#fffaf3; border-radius:10px; font-size:.88rem; }
.pfm .pfm-ingredient input[type=checkbox],.pfm .pfm-crust input[type=checkbox] { width:18px; height:18px; margin:0; min-height:0; flex:none; accent-color:#82213d; }
.pfm-ingredient small { font-size:.65rem; opacity:.65; }
.pfm .pfm-omitted { background:#f5ece9; opacity:.75; }
.pfm-omitted span { text-decoration:line-through; }
.pfm .pfm-small { font-size:.78rem; line-height:1.55; color:#675c58; }
.pfm .pfm-safety { font-size:.8rem; line-height:1.65; padding:1rem; border-left:3px solid #d6a657; background:#f8efde; border-radius:0 10px 10px 0; margin:1.3rem 0; }
.pfm-allergens h3 { font-size:1rem; margin:1rem 0 .65rem; }
.pfm-allergen-list { display:flex; flex-wrap:wrap; gap:.55rem; }
.pfm-allergen { display:inline-flex; align-items:center; gap:.4rem; font-size:.75rem; color:#653d31; }
.pfm-allergen > span { width:29px; height:29px; display:grid; place-items:center; background:#f1e4d3; border-radius:50%; }
.pfm-allergen svg { width:18px; height:18px; }
.pfm .pfm-crust { display:flex; align-items:center; gap:.7rem; background:#f3e7cf; border:1px solid #d5b06f; padding:1rem; border-radius:12px; font-weight:650; }
.pfm-crust small { display:block; font-size:.75rem; font-weight:400; }
.pfm-variant[hidden] { display:none!important; }
.pfm-variant-label { font-size:1rem; margin:.3rem 0; }
.pfm .pfm-add-row { display:flex; align-items:end; gap:1rem; margin:1rem 0; }
.pfm .pfm-add-row label { display:grid; gap:.2rem; font-size:.8rem; }
.pfm .pfm-add-row input { width:75px; min-height:48px; border:1px solid #d6c5b8; border-radius:10px; padding:.5rem; background:#fffaf3; }
.pfm .pfm-add { display:inline-flex; align-items:center; justify-content:center; background:#801d3b; color:#fff; border:0; border-radius:12px; padding:.85rem 1.3rem; font-family:inherit; font-weight:700; font-size:.95rem; line-height:1.35; min-height:48px; text-decoration:none; }
.pfm .pfm-add:disabled { opacity:.45; cursor:not-allowed; }
.pf-site .pf-component .pfm a.pfm-add { color:#fff; }
.pfm-builder-icon { color:var(--pfm-wine); }
.pfm-builder-icon svg { width:clamp(58px,6vw,86px); height:auto; }
.pfm-builder-product .pfm-card-bottom { justify-content:flex-end; }
.pfm-info { max-width:1440px; margin:0 auto; padding:2rem 0; }
.pfm-allergen-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin:2rem 0; }
.pfm-allergen-card { background:#f7ede0; border:1px solid #ecdfcf; border-radius:18px; padding:1.4rem; }
.pfm .pfm-allergen-card h2 { font-size:1.05rem; margin:.8rem 0; }
.pfm-allergen-card p { font-size:.85rem; line-height:1.6; }
.pfm-allergen-icon { display:grid; place-items:center; width:64px; height:64px; margin-inline:auto; border-radius:50%; background:#f0dbbb; color:#80233c; }
.pfm-allergen-card { text-align:center; }
.pfm-allergen-icon svg { width:36px; height:36px; }
.pfm-half-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2rem; }
.pfm-half { padding:1.5rem; border:1px solid #e6d5c0; border-radius:18px; background:#fffaf3; min-width:0; }
.pfm-half select { display:block; max-width:100%; width:100%; border-radius:10px; padding:.8rem; margin:.5rem 0 1rem; background:#fff; color:#4d3030; }
.pfm-half-image { width:100%; height:250px; object-fit:cover; border-radius:12px; }
.pfm-half-fallback { object-fit:contain; padding:1.5rem; }
.pfm-cart-line { display:flex; justify-content:space-between; gap:2rem; padding:1.5rem; border:1px solid #e6d5c0; border-radius:18px; background:#fffaf3; margin:1rem 0; }
.pfm .pfm-cart-line h2 { font-size:1.25rem; }.pfm .pfm-cart-recipe h3 { font-size:.95rem; }
.pfm-cart-recipe p { font-size:.85rem; margin:.35rem 0; }
.pfm .pfm-remove { border:0; background:none; text-decoration:underline; color:#7a203b; padding:.5rem 0; }
.pfm .pfm-addons { border:0; border-top:1px solid #e6d5c0; padding:1rem 0 0; margin:1rem 0 0; min-width:0; }
.pfm .pfm-addons legend { float:none; width:auto; padding:0 .5rem 0 0; font-size:1.15rem; font-weight:700; color:var(--pf-wine,#671d2b); }
.pfm .pfm-addon-list { display:grid; gap:0; margin:.5rem 0; border-top:1px solid #e6d5c0; }
.pfm .pfm-addon { display:grid; grid-template-columns:minmax(0,1fr) auto 20px; align-items:center; gap:.6rem; padding:.55rem .5rem; min-height:48px; border:0; border-bottom:1px solid #e6d5c0; border-radius:0; background:transparent; cursor:pointer; font-size:.9375rem; }
.pfm .pfm-addon:has(input:checked) { background:#f5e8d6; }
.pfm .pfm-addon input { grid-column:3; grid-row:1; appearance:auto; width:20px; height:20px; min-height:0; padding:0; margin:0; accent-color:var(--pf-wine,#671d2b); }
.pfm .pfm-addon > span { grid-column:1; grid-row:1; }
.pfm .pfm-addon > strong { grid-column:2; grid-row:1; }
.pfm .pfm-addon small { display:block; font-size:.72rem; color:#766662; line-height:1.3; margin-top:.1rem; }
.pfm .pfm-addon strong { color:var(--pf-wine,#671d2b); font-size:.9rem; white-space:nowrap; }
.pfm .pfm-addon input:focus-visible { outline:3px solid #bf842d; outline-offset:4px; }
.pfm .pfm-cart-breakdown { margin:.8rem 0; padding:.8rem 1rem; border-radius:10px; background:#f5ebdd; }
.pfm .pfm-cart-breakdown ul { list-style:none; padding:0; margin:.5rem 0; font-size:.9rem; }.pfm .pfm-cart-breakdown li { display:flex; justify-content:space-between; gap:1rem; padding:.25rem 0; }.pfm .pfm-cart-breakdown strong { white-space:nowrap; }
@media(max-width:400px) { .pfm .pfm-addon { padding:.5rem .3rem; gap:.5rem; }.pfm .pfm-addon strong { font-size:.85rem; } }
@media(max-width:1000px) { .pfm-allergen-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:700px) { .pfm-allergen-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.pfm-half-grid { grid-template-columns:1fr; }.pfm-half { padding:1rem; }.pfm-cart-line { flex-direction:column; gap:.5rem; }.pfm .pfm-add-row { gap:.5rem; }.pfm .pfm-add { padding:.8rem; font-size:.85rem; } }
@media(max-width:380px) { .pfm-allergen-grid { grid-template-columns:1fr; } }
.pf-base-options{border:0;padding:0;margin:22px 0;min-width:0}.pf-base-options legend{font-size:1.05rem;font-weight:800;padding:0;color:var(--pf-wine,#671d2b)}.pf-base-options .pf-base-free{font-size:.875rem;margin:4px 0 10px}.pf-base-list{display:flex;flex-wrap:wrap;gap:8px}.pf-base-options .pf-base-list label{display:flex;align-items:center;gap:9px;flex:1 1 145px;min-height:48px;padding:12px;border:1px solid #dacfc7;border-radius:10px;background:#fff;cursor:pointer;font-size:.875rem}.pf-base-options .pf-base-list label:has(input:checked){border-color:var(--pf-wine,#671d2b);box-shadow:inset 0 0 0 1px var(--pf-wine,#671d2b);background:var(--pf-cream,#fff5e1)}.pf-base-options .pf-base-list input[type=radio]{appearance:auto;position:static;opacity:1;inline-size:18px;width:18px!important;height:18px;min-height:0!important;margin:0;flex:0 0 18px;accent-color:var(--pf-wine,#671d2b)}.pf-base-list strong,.pf-base-list small{display:block}.pf-base-list small{font-size:.8125rem;margin-top:3px;font-weight:400}.pf-base-options .pf-base-note{font-size:.8125rem;line-height:1.5;margin:9px 0 0;color:#726461}

/* Compact navigation and a persistent, single save action. */
.pfm .pfm-categories{background:linear-gradient(115deg,#fbf5ec 0%,#f8edf0 55%,#fffaf2 100%);border:1px solid #eee0d5;border-radius:18px;padding:10px 12px}.pfm .pfm-size-family svg{width:46px;height:46px}.pfm .pfm-size-medium svg{width:38px;height:38px}.pfm-save-anchor{padding-right:60px;box-sizing:border-box;position:sticky;top:12px;z-index:4;display:flex;justify-content:flex-end;height:0;pointer-events:none;transform:translateY(-6px)}.pfm .pfm-save-heart{pointer-events:auto;position:relative;top:0;right:0;flex:0 0 48px;width:48px;height:48px;background:#fffbf3;border:1px solid #e2cdbb;box-shadow:0 4px 15px #3b142522}.pfm .pfm-save-heart svg{width:30px;height:30px}.pfm .pfm-detail-copy{position:relative}.pfm .pfm-product-title{padding-right:50px}.pfm .pfm-save-heart[aria-pressed=true]{background:#f9e2e8;color:#751b36}.pfm .pfm-save-heart[aria-pressed=true] svg{fill:currentColor}.pfm .pfs-feedback{position:sticky;bottom:8px;z-index:5;background:#fffaf3;padding:12px;border-radius:10px;box-shadow:0 2px 12px #3b142518}.pfm .pfm-builder-product img{object-fit:cover}

/* Product action fills its own dialog/card content width at every breakpoint. */
.pfm .pfm-add-row,.pfm-dialog .pfm-add-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;width:100%;align-items:end}
.pfm .pfm-add-row .pfm-add,.pfm-dialog .pfm-add-row .pfm-add{width:100%;max-width:none;min-width:0;justify-content:center;margin:0}
@media(max-width:600px){.pfm .pfm-add-row,.pfm-dialog .pfm-add-row{grid-template-columns:72px minmax(0,1fr);gap:8px}}

/* Complete product packshots: never crop food or bottle labels. */
.pfm-card-image,.pfm-detail-image{background:#fff}.pfm .pfm-card-image img,.pfm .pfm-detail-image img,.pfm .pfm-half-image{object-fit:contain}

.pfm-product-choices{margin:18px 0}.pfm .pfm-product-choices h3{font-size:1rem;margin:0 0 10px}.pfm-product-choices>div{display:flex;flex-wrap:wrap;gap:8px}.pfm-product-choices a{display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:48px;padding:10px 16px;border:1px solid #d9c9bc;border-radius:10px;color:#591525;background:#fffaf1;text-decoration:none;font-weight:650;line-height:1.3}.pfm-product-choices a[aria-current]{background:#591525;color:white;border-color:#591525}.pfm-product-choices a:focus-visible{outline:3px solid #d99a23;outline-offset:3px}.pfm-product-choices small{font-weight:400}

#pf-public-menu .pfm-product-choices a[aria-current],#pf-public-menu .pfm-product-choices a[aria-current] small{color:#fff!important}

/* Optional pinned product imagery. Only the dialog changes; full-image cards and no-JS pages retain their layout. */
.pfm-dialog[data-sticky-photo="1"] .pfm-has-photo{grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);align-items:start}
.pfm-dialog[data-sticky-photo="1"] .pfm-has-photo .pfm-detail-copy{grid-column:1;grid-row:1;padding:28px;min-width:0}
.pfm-dialog[data-sticky-photo="1"] .pfm-has-photo .pfm-detail-image{grid-column:2;grid-row:1;display:block;position:sticky;top:0;align-self:start;height:calc(100dvh - 32px);min-height:0;max-height:860px;overflow:hidden;background:#fff;z-index:3}
#pf-public-menu .pfm-dialog[data-sticky-photo="1"] .pfm-has-photo .pfm-detail-image img{width:100%;height:100%;min-height:0;max-height:none;max-width:none;object-fit:contain}
#pf-public-menu .pfm-dialog[data-sticky-photo="1"] .pfm-detail-pizza.pfm-has-photo .pfm-detail-image img{position:absolute;right:0;top:50%;transform:translateY(-50%);width:200%;height:auto;max-height:none;object-fit:contain}
#pf-public-menu .pfm-dialog[data-sticky-photo="1"] .pfm-close{z-index:8}
#pf-public-menu .pfm-dialog[data-sticky-photo="1"] .pfm-scroll-hint{z-index:6;margin-right:calc(42% + 14px)}
.pfm-dialog[data-sticky-photo="1"] .pfm-save-anchor{padding-right:0}
@media(max-width:700px){
 .pfm-dialog[data-sticky-photo="1"]{--pfm-pinned-height:min(var(--pfm-mobile-photo,140px),24dvh);scroll-padding-top:calc(var(--pfm-pinned-height) + 20px)}
 .pfm-dialog[data-sticky-photo="1"] .pfm-has-photo{display:block}
 .pfm-dialog[data-sticky-photo="1"] .pfm-has-photo .pfm-detail-image{height:var(--pfm-pinned-height);max-height:none;box-shadow:0 7px 15px -12px #671d2b80}
 #pf-public-menu .pfm-dialog[data-sticky-photo="1"] .pfm-detail-pizza.pfm-has-photo .pfm-detail-image img{width:calc(min(100%,400px) * var(--pfm-pizza-scale,.9));height:auto;top:50%;bottom:auto;right:50%;transform:translate(50%,-50%)}
 .pfm-dialog[data-sticky-photo="1"] .pfm-has-photo .pfm-detail-copy{padding:20px}
 .pfm-dialog[data-sticky-photo="1"] .pfm-has-photo .pfm-save-anchor{top:calc(var(--pfm-pinned-height) + 10px);padding-right:0}
 .pfm-dialog[data-sticky-photo="1"] .pfm-has-photo .pfm-detail-copy :is(input,button,a){scroll-margin-top:calc(var(--pfm-pinned-height) + 24px)}
 #pf-public-menu .pfm-dialog[data-sticky-photo="1"] .pfm-scroll-hint{margin-right:14px}
}

@media(min-width:701px){
 .pfm-dialog[data-sticky-photo="1"][data-photo-side="left"] .pfm-has-photo{grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr)}
 .pfm-dialog[data-sticky-photo="1"][data-photo-side="left"] .pfm-has-photo .pfm-detail-image{grid-column:1}
 .pfm-dialog[data-sticky-photo="1"][data-photo-side="left"] .pfm-has-photo .pfm-detail-copy{grid-column:2}
 #pf-public-menu .pfm-dialog[data-sticky-photo="1"][data-photo-side="left"] .pfm-scroll-hint{margin-right:14px}
 .pfm-dialog[data-sticky-photo="1"][data-photo-side="left"] .pfm-save-anchor{padding-right:48px}
}

/* Clear catalogue actions and a persistent submit action for long product dialogs. */
.pfm-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 16px 16px;margin-top:auto}
.pfm-card-actions form{flex:1;min-width:0;margin:0}.pfm-card-actions .pfm-options{display:flex!important;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid var(--pfm-wine);border-radius:24px;font-size:.8rem;font-weight:750;text-decoration:none;color:var(--pfm-wine)}
.pfm-card-actions .pfm-quick-add{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:44px;padding:8px 12px;border:0;border-radius:24px;background:var(--pf-action,#09852c);color:#fff;font:inherit;font-size:.85rem;font-weight:750;cursor:pointer}
.pfm-quick-add svg,.pfm-add svg,#pf-public-menu .pfm-scroll-hint svg{width:20px;height:20px;flex:none}.pfm-quick-size{flex-basis:100%;text-align:right;font-size:.72rem;color:#62534d}
#pf-public-menu .pfm-scroll-hint{display:flex;gap:8px;width:auto;height:46px;padding:0 20px;border:0;border-radius:24px;font-size:.95rem;font-weight:750;background:var(--pf-action,#09852c);color:#fff;box-shadow:0 4px 16px #143f242b}
#pf-public-menu .pfm-scroll-hint span{animation:none}.pfm-quick-add:disabled,#pf-public-menu .pfm-scroll-hint:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:480px){.pfm-card-actions{gap:6px;padding:0 10px 12px}.pfm-card-actions .pfm-options{padding:8px}.pfm-card-actions .pfm-quick-add{padding:8px;gap:5px;font-size:.8rem}}

.pfm-card:has(.pfm-card-actions){display:flex;flex-direction:column}.pfm-card:has(.pfm-card-actions)>a{height:auto;flex:1}

/* Compact product choices and image-local favourite; native radio semantics retained. */
#pf-public-menu .pfm-detail-image{position:relative}
#pf-public-menu .pfm-photo-favorite{position:absolute;top:16px;right:16px;left:auto;margin:0;z-index:4}
#pf-public-menu .pfm-photo-favorite .pfs-heart{position:static;display:grid;place-items:center;width:44px;height:44px;padding:9px;border:1px solid #e2cdbb;border-radius:50%;background:#fffaf4;box-shadow:0 3px 12px #39121d1a}
#pf-public-menu .pfm-photo-favorite .pfs-heart svg{width:25px;height:25px}
#pf-public-menu .pfm-photo-favorite .pfs-feedback{position:absolute;top:48px;right:0;bottom:auto;width:220px;font-size:.8rem}
#pf-public-menu .pfm-product-title{padding-right:0}
#pf-public-menu .pfm-sizes{margin:14px 0}
#pf-public-menu .pfm-sizes legend,#pf-public-menu .pfm-detail .pf-base-options legend{font-size:.85rem;font-weight:700;margin-bottom:7px}
#pf-public-menu .pfm-size-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#pf-public-menu .pfm-size-options label{display:flex;flex-direction:column;min-width:0;gap:5px}
#pf-public-menu .pfm-size-options label>.pfm-size-button{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:7px 10px;border:1px solid #d8c5bb;border-radius:9px;flex:none;font-size:.875rem}
#pf-public-menu .pfm-size-options input:checked+.pfm-size-button{padding:7px 10px;border-color:var(--pfm-wine);box-shadow:inset 0 0 0 1px var(--pfm-wine);background:#f8e8d7}
#pf-public-menu .pfm-size-pizza{width:28px;height:28px;flex:none}
#pf-public-menu .pfm-size-pizza svg{width:27px;height:27px}
#pf-public-menu .pfm-size-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:3px 8px;padding:0 2px;font-size:.73rem;line-height:1.4;color:#74605b}
#pf-public-menu .pfm-size-meta span{white-space:nowrap}
#pf-public-menu .pfm-size-options input:checked~.pfm-size-meta{color:var(--pfm-wine);font-weight:650}
#pf-public-menu .pfm-detail .pf-base-options{margin:15px 0}
#pf-public-menu .pfm-detail .pf-base-free{font-size:.73rem;margin:0 0 7px;color:#74605b}
#pf-public-menu .pfm-detail .pf-base-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#pf-public-menu .pfm-detail .pf-base-list label{min-width:0;min-height:44px;padding:8px;gap:6px;font-size:.78rem;line-height:1.3}
#pf-public-menu .pfm-detail .pf-base-list input[type=radio]{width:16px!important;height:16px;flex-basis:16px}
#pf-public-menu .pfm-detail .pf-base-list small{font-size:.68rem}
#pf-public-menu .pfm-detail .pf-base-note{font-size:.73rem;margin-top:6px}
#pf-public-menu .pfm-add-row .pfm-add{gap:10px}
#pf-public-menu .pfm-save-combination{display:inline-flex;background:transparent;color:var(--pfm-wine);border:0;padding:5px 0;min-height:36px;font-size:.78rem;text-decoration:underline}
#pf-public-menu .pfm-product-allergens{border-top:1px solid #e8dbcf;margin-top:14px;padding-top:6px}
#pf-public-menu .pfm-product-allergens .pfm-safety{font-size:.73rem;padding:10px 12px;margin-bottom:0}
@media(max-width:700px){
 #pf-public-menu .pfm-photo-favorite{top:12px;left:12px;right:auto}
 #pf-public-menu .pfm-photo-favorite .pfs-feedback{left:0;right:auto}
 #pf-public-menu .pfm-size-options label>.pfm-size-button{font-size:.8rem;padding:7px 6px;gap:6px}
 #pf-public-menu .pfm-size-options input:checked+.pfm-size-button{padding:7px 6px}
}

#pf-public-menu .pfm-detail .pf-base-options{border:0;padding:0;min-width:0}
#pf-public-menu .pfm-detail .pf-base-options legend{float:none;padding:0;width:auto}
#pf-public-menu .pfm-detail .pf-base-list{grid-template-columns:repeat(var(--pf-base-count,3),minmax(0,1fr))}
#pf-public-menu .pfm-detail .pf-base-list label{justify-content:center;padding:8px 6px;font-size:.75rem}
#pf-public-menu .pfm-detail .pf-base-list label>span{min-width:0}
@media(max-width:700px){#pf-public-menu .pfm-detail .pf-base-list label{font-size:.72rem;gap:4px;padding:7px 4px}#pf-public-menu .pfm-detail .pf-base-list input[type=radio]{width:14px!important;height:14px;flex-basis:14px}}

@media(max-width:360px){
 #pf-public-menu .pfm-detail .pf-base-list label{position:relative;text-align:center;gap:0}
 #pf-public-menu .pfm-detail .pf-base-list input[type=radio]{position:absolute;opacity:0;width:1px!important;height:1px;flex-basis:1px}
 #pf-public-menu .pfm-detail .pf-base-list label:has(input:focus-visible){outline:2px solid var(--pfm-wine);outline-offset:2px}
}

/* Compact optional extras; price stays next to the stuffed-crust label. */
#pf-public-menu .pfm-detail .pfm-addons-disclosure{margin:10px 0;border-radius:9px}
#pf-public-menu .pfm-detail .pfm-addons-disclosure>summary{grid-template-columns:minmax(0,1fr) auto 18px;gap:8px;min-height:46px;padding:7px 12px;font-size:.85rem;line-height:1.3;box-sizing:border-box}
#pf-public-menu .pfm-detail .pfm-addons-disclosure>summary small{grid-column:2;grid-row:1;margin:0;font-size:.7rem;white-space:nowrap}
#pf-public-menu .pfm-detail .pfm-addons-chevron{grid-column:3;grid-row:1;width:18px;height:18px}
#pf-public-menu .pfm-detail .pfm-sauce-icon{width:25px;height:28px;flex-basis:25px}
#pf-public-menu .pfm-detail .pfm-crust{min-height:46px;margin:10px 0;padding:7px 12px;gap:8px;border-radius:9px;font-size:.83rem;line-height:1.3;box-sizing:border-box}
#pf-public-menu .pfm-detail .pfm-crust>span{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 8px;min-width:0}
#pf-public-menu .pfm-detail .pfm-crust small{display:inline;font-size:.72rem;white-space:nowrap;color:#74605b}
@media(max-width:360px){#pf-public-menu .pfm-detail .pfm-crust{font-size:.76rem;padding-inline:9px;gap:6px}#pf-public-menu .pfm-detail .pfm-crust>span{column-gap:5px}#pf-public-menu .pfm-detail .pfm-crust small{font-size:.68rem}}
#pf-public-menu .pfm-stock-label{display:inline-block;background:#8f2739;color:#fff;padding:5px 11px;border-radius:6px;font-weight:700;font-size:.8rem}
#pf-public-menu .pfm-stock-notice{background:#fff0ef;border:1px solid #e5b9b8;color:#7a1d2c;padding:12px 15px;border-radius:10px;font-weight:600;line-height:1.5}
