/* Gift product pages: all styling stays scoped to avoid other store pages. */
.fa-single-product-wrapper { --fa-teal:#17576a; --fa-pale:#f3f7f8; --fa-line:#e9eeee; font-family:'Poppins',sans-serif; color:#424747; background:var(--fa-pale); padding:0 0 40px; }
.fa-single-product-wrapper *, .fa-fun-popup * { box-sizing:border-box; }
.fa-single-product-wrapper [hidden], .fa-fun-popup [hidden], .fa-fun-popup[hidden], .fa-fun-overlay[hidden] { display:none !important; }
.fa-single-product-wrapper .fa-container { max-width:1360px; padding:0 26px; margin:0 auto; }
.fa-breadcrumbs { padding:20px 0; font-size:12px; }
.fa-breadcrumbs .woocommerce-breadcrumb { margin:0; color:#444; font-size:12px; }
.fa-breadcrumbs a { color:var(--fa-teal); text-decoration:none; }
.fa-single-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.07fr); gap:32px; background:white; border-radius:24px; padding:24px; align-items:start; }
.fa-single-left { position:sticky; top:145px; }
.fa-gallery-wrapper { display:flex; gap:16px; align-items:start; }
.fa-gallery-thumbs { width:68px; flex-shrink:0; display:flex; flex-direction:column; gap:16px; max-height:540px; overflow:auto; scrollbar-width:thin; }
.fa-single-product-wrapper .fa-thumb { display:block; width:68px; height:68px; padding:0; flex-shrink:0; border:2px solid transparent; background:#f7f7f7; border-radius:9px; overflow:hidden; cursor:pointer; }
.fa-thumb img { width:100%; height:100%; object-fit:cover; }
.fa-single-product-wrapper .fa-thumb.active { border-color:var(--fa-teal); }
.fa-single-product-wrapper .fa-video-thumb { background:#111; color:white; font-size:25px; }
.fa-gallery-main { flex:1; min-width:0; border-radius:13px; overflow:hidden; background:#f5f4f2; }
.fa-gallery-main button { border:0; padding:0; display:block; background:none; width:100%; cursor:zoom-in; }
.fa-gallery-main img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; }
.fa-gallery-main video { display:block; width:100%; aspect-ratio:1; }
.fa-trust-badges { display:flex; gap:14px; justify-content:space-around; padding:24px 0 14px 80px; text-align:center; }
.fa-trust-item { flex:1; font-size:11px; line-height:1.5; display:flex; flex-direction:column; gap:3px; }
.fa-trust-icon { color:var(--fa-teal); font-size:34px; line-height:1.2; margin-bottom:8px; }
.fa-title-row { display:flex; gap:12px; align-items:flex-start; justify-content:space-between; }
.fa-single-product-wrapper .fa-product-title-main { font-size:23px; font-weight:600; line-height:1.4; margin:0; color:#454949; }
.fa-single-product-wrapper .fa-wishlist-btn { border:1px solid #eff3f3; background:white; color:#31838a; font-size:32px; width:46px; height:46px; border-radius:50%; flex-shrink:0; padding:0; line-height:1; cursor:pointer; }
.fa-badge-green { display:inline-flex; gap:4px; align-items:center; color:#339a34; font-size:10px; font-weight:700; margin-bottom:6px; }
.fa-badge-blue { display:inline-block; font-size:11px; color:var(--fa-teal); background:#eaf5f5; padding:4px 7px; border-radius:3px; margin-bottom:8px; }
.fa-product-rating-row { display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:13px; margin:18px 0 20px; padding-bottom:22px; border-bottom:1px solid var(--fa-line); }
.fa-product-rating-row a { color:#287c86; font-weight:600; }
.fa-rating-badge { background:#50af57; color:#fff; padding:3px 8px; border-radius:4px; font-weight:600; }
.fa-product-price-row { font-weight:600; font-size:25px; display:flex; gap:12px; align-items:center; color:#292d2d; margin-bottom:3px; }
.fa-product-price-row del { color:#92a1a3; font-size:17px; font-weight:400; margin-right:10px; }
.fa-product-price-row ins, .fa-single-product-wrapper ins { background:transparent; text-decoration:none; }
.fa-tax-note { font-size:10px; color:#818787; margin:0 0 24px; }
/* Native form remains visible and functional without JavaScript. */
.fa-single-product-wrapper form.cart { margin:0 0 20px !important; }
.fa-single-product-wrapper form.cart .variations { border:0; margin-bottom:16px; width:100%; }
.fa-single-product-wrapper form.cart .variations th, .fa-single-product-wrapper form.cart .variations td { display:block; padding:0; border:0; text-align:left; }
.fa-single-product-wrapper form.cart .variations th { font-size:13px; font-weight:500; margin-bottom:10px; }
.fa-single-product-wrapper form.cart .variations tr { display:block; margin-bottom:14px; }
.fa-single-product-wrapper .fa-variation-select { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
.fa-single-product-wrapper .reset_variations { display:inline-block; color:var(--fa-teal); font-size:11px; margin-top:8px; }
.fa-single-product-wrapper .fa-swatches { display:flex; flex-wrap:wrap; gap:10px; }
.fa-single-product-wrapper .fa-swatch-btn { min-width:70px; border:1px solid #c6d1d3; background:#fff; color:var(--fa-teal); padding:10px 14px; border-radius:4px; font-size:12px; cursor:pointer; }
.fa-single-product-wrapper .fa-swatch-btn.selected { border-color:var(--fa-teal); background:#eff7f8; box-shadow:0 0 0 1px var(--fa-teal); }
.fa-single-product-wrapper .fa-swatch-btn:disabled { opacity:.35; text-decoration:line-through; cursor:not-allowed; }
.fa-single-product-wrapper.fa-js-ready .single_add_to_cart_button, .fa-single-product-wrapper.fa-js-ready form.cart > .quantity, .fa-single-product-wrapper.fa-js-ready .woocommerce-variation-add-to-cart > .quantity { display:none !important; }
.fa-single-product-wrapper.fa-js-ready .woocommerce-variation-price { display:none; }
.fa-serving-guide { margin:0 0 14px; color:var(--fa-teal); font-size:12px; }
.fa-serving-guide summary { cursor:pointer; text-align:right; }
.fa-serving-guide ul { margin:12px 0; padding-left:20px; color:#555; }
.fa-name-cake-wrap { margin:18px 0; }
.fa-name-cake-header { display:flex; justify-content:space-between; font-size:12px; margin-bottom:10px; }
#faCharCount { color:#9aa0a0; }
.fa-single-product-wrapper input[type="text"], .fa-single-product-wrapper input[type="date"], .fa-single-product-wrapper select { font-family:inherit; border:1px solid #cbd6d7; border-radius:7px; padding:13px; font-size:13px; color:#454949; background:white; max-width:100%; }
#faNameOnCakeInput { width:100%; min-height:58px; }
.fa-field-help { font-size:12px; color:#347d77; min-height:1em; margin:8px 0; }
.fa-error { color:#b43232 !important; }
.fa-single-product-wrapper section h2, .fa-single-product-wrapper .fa-sku h2, .fa-single-product-wrapper .fa-note h2 { font-size:14px; font-weight:500; margin:0 0 14px; line-height:1.5; }
.fa-combo-section, .fa-inline-addons { margin:20px 0; }
.fa-combo-cards, .fa-addon-row { display:flex; gap:14px; overflow-x:auto; padding:2px 1px 8px; }
.fa-combo-card { display:flex; flex-direction:column; width:112px; flex-shrink:0; border:1px solid #ebeeee; border-radius:10px; padding:8px; color:#444; text-decoration:none; font-size:11px; gap:7px; }
.fa-combo-card.selected { border-color:#4c9199; background:#fbfdfd; }
.fa-combo-card img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:7px; }
.fa-combo-card span:not(.woocommerce-Price-amount):not(.woocommerce-Price-currencySymbol) { overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.fa-combo-card strong { margin-top:auto; font-size:12px; }
.fa-double-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:22px 0; font-size:14px; cursor:pointer; }
.fa-double-row small { white-space:nowrap; }
.fa-double-row input { appearance:none; width:46px; height:25px; border-radius:20px; background:#ededed; position:relative; border:1px solid #ddd; cursor:pointer; flex-shrink:0; }
.fa-double-row input:before { content:''; position:absolute; width:19px; height:19px; top:2px; left:2px; border-radius:50%; background:white; box-shadow:0 1px 4px #0002; transition:left .2s; }
.fa-double-row input:checked { background:#226a78; }
.fa-double-row input:checked:before { left:22px; }
.fa-extra-card { width:114px; flex-shrink:0; border:1px solid #e7eeee; border-radius:9px; padding:8px; display:flex; flex-direction:column; gap:6px; background:white; }
.fa-extra-card img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:6px; }
.fa-single-product-wrapper .fa-extra-card h3, .fa-fun-popup .fa-extra-card h3 { font-size:11px; font-weight:400; margin:0; line-height:1.4; flex:1; }
.fa-extra-price { font-size:12px; font-weight:600; }
.fa-extra-price del { font-size:10px; color:#99a4a4; }
.fa-extra-card button { border:1px solid #448e97; background:white; border-radius:4px; color:#226874; padding:8px 6px; font-size:12px; font-weight:600; cursor:pointer; }
.fa-extra-quantity { display:flex; justify-content:space-between; align-items:center; font-size:12px; }
.fa-extra-quantity button { min-width:26px; padding:7px 5px; }
.fa-delivery-section { margin:24px 0; }
.fa-loc-input-row { display:flex; align-items:center; gap:8px; border:1px solid #9bc1c7; border-radius:7px; padding:0 12px; background:#fbfefe; }
.fa-loc-input-row > span { font-size:25px; color:var(--fa-teal); }
.fa-single-product-wrapper .fa-loc-input-row input { width:100%; border:0; background:transparent; min-width:0; }
.fa-loc-input-row button { background:none; border:0; color:var(--fa-teal); font-weight:600; font-size:12px; cursor:pointer; white-space:nowrap; }
.fa-delivery-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fa-delivery-fields label { font-size:12px; display:block; margin-bottom:8px; }
.fa-delivery-fields input, .fa-delivery-fields select { width:100%; min-width:0; }
.fa-single-product-wrapper .fa-text-btn { padding:0; margin-top:12px; background:none; border:0; color:var(--fa-teal); text-decoration:underline; cursor:pointer; font-size:12px; }
.fa-detail-box { border:1px solid #e7eded; border-radius:12px; margin:16px 0; overflow:hidden; }
.fa-single-product-wrapper .fa-detail-box h2 { background:#f3f7f8; margin:0; padding:14px 16px; font-size:13px; }
.fa-detail-content { padding:14px 18px; color:#666; font-size:12px; line-height:1.7; }
ul.fa-detail-content { padding-left:32px; margin:0; }
.fa-detail-content p { margin:0 0 10px; }
.fa-detail-content p:last-child { margin-bottom:0; }
.fa-sku { margin:24px 8px; font-size:12px; color:#818989; }
.fa-single-product-wrapper .fa-sku h2 { font-size:12px; margin-bottom:6px; color:#444; }
.fa-quality-badges { background:#f4f8f8; border-radius:16px; display:flex; padding:20px; gap:18px; justify-content:space-around; margin:16px 0 24px; text-align:center; }
.fa-quality-badges div { flex:1; font-size:11px; }
.fa-quality-badges span { display:block; font-size:28px; color:#416969; margin-bottom:8px; }
.fa-quality-badges strong { font-weight:500; }
.fa-note { margin:20px 0; font-size:12px; }
.fa-note p { background:#f3f7f8; border-radius:8px; padding:14px 16px; color:#777; }
.fa-offers { border:1px solid #79aeb7; border-radius:9px; margin:22px 0; overflow:hidden; font-size:13px; }
.fa-offers summary { cursor:pointer; background:linear-gradient(90deg,#d0e8f4,#eef8fa); padding:16px; color:var(--fa-teal); font-weight:600; }
.fa-offers > div { padding:12px 16px; }
.fa-offers article { padding:12px 0; border-bottom:1px dashed #d9e5e7; }
.fa-offers article:last-child { border:0; }
.fa-offers p { font-size:12px; margin:8px 0; color:#777; }
.fa-offer-code { background:white; border:1px dashed #5e929a; border-radius:4px; color:#226874; padding:6px 10px; cursor:pointer; font-size:12px; }
.fa-desktop-actions { position:sticky; bottom:0; z-index:20; background:rgba(255,255,255,.97); padding:12px 0 16px; margin:18px 0; }
.fa-earliest { font-size:12px; margin:0 0 10px; }
.fa-earliest strong { color:var(--fa-teal); }
.fa-earliest small { color:#8b9595; margin-left:6px; }
.fa-action-buttons { display:flex; gap:12px; }
.fa-single-product-wrapper .fa-sticky-btn { flex:1; min-width:0; border:1px solid var(--fa-teal); border-radius:7px; padding:15px 10px; font-family:inherit; font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap; }
.fa-single-product-wrapper .fa-btn-cart { background:white; color:var(--fa-teal); }
.fa-single-product-wrapper .fa-btn-buy { background:var(--fa-teal); color:white; }
.fa-reviews-section { margin-top:20px; padding:20px; background:#f4f8f8; border-radius:14px; }
.fa-single-product-wrapper .fa-reviews-section h2 { font-weight:600; font-size:17px; }
.fa-single-product-wrapper #reviews #comments ol.commentlist { padding:0; margin:0; }
.fa-single-product-wrapper #reviews #comments ol.commentlist li .comment-text { border:1px solid #e7eeee; border-radius:10px; background:white; margin-left:50px; font-size:12px; }
.fa-single-product-wrapper #reviews #comments ol.commentlist li img.avatar { width:38px; height:38px; padding:0; border-radius:50%; }
.fa-single-product-wrapper #review_form_wrapper { margin-top:24px; font-size:13px; }
.fa-single-product-wrapper #review_form input, .fa-single-product-wrapper #review_form textarea { max-width:100%; }
.fa-product-recommendations, .fa-recent-section, .fa-quick-links { margin:30px 0; background:white; border-radius:16px; padding:24px; }
.fa-single-product-wrapper .fa-product-recommendations h2, .fa-single-product-wrapper .fa-recent-section h2, .fa-single-product-wrapper .fa-quick-links h2 { font-size:21px; font-weight:600; margin-bottom:20px; }
.fa-single-product-wrapper .related ul.products { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:18px; margin:0; }
.fa-single-product-wrapper .related ul.products:before, .fa-single-product-wrapper .related ul.products:after { display:none; }
.fa-single-product-wrapper .related ul.products li.product { float:none; width:auto; margin:0; }
.fa-single-product-wrapper .related ul.products li.product img { border-radius:10px; }
.fa-single-product-wrapper .related ul.products li.product .woocommerce-loop-product__title { font-size:13px; }
.fa-product-cards { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:18px; }
.fa-recent-card { color:#444; text-decoration:none; }
.fa-recent-card img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; }
.fa-recent-card h3 { font-size:13px; font-weight:500; }
.fa-recent-card > div { font-size:14px; }
.fa-quick-links > div { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; padding:10px 0; border-bottom:1px solid #eee; }
.fa-quick-links h3 { width:100%; font-size:12px; text-transform:uppercase; margin:0; }
.fa-quick-links a { color:#666; font-size:12px; text-decoration:none; }
.fa-quick-links a:hover { color:var(--fa-teal); text-decoration:underline; }
/* Modal stays above headers, WordPress admin bars and theme overlays. */
.fa-fun-overlay { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:100000; }
.fa-fun-popup { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); width:min(920px,94vw); max-height:88vh; max-height:88dvh; background:white; color:#424747; border-radius:16px; box-shadow:0 16px 70px #0004; z-index:100001; display:flex; flex-direction:column; font-family:'Poppins',sans-serif; overflow:hidden; }
.fa-fun-header { display:flex; justify-content:space-between; align-items:center; padding:22px; border-bottom:1px solid #eee; }
.fa-fun-header h2 { font-size:23px; margin:0 0 6px; }
.fa-fun-header p { margin:0; color:#777; font-size:13px; }
#faFunClose { border:0; background:transparent; font-size:30px; cursor:pointer; padding:8px; color:#444; }
.fa-fun-tabs { display:flex; overflow:auto; gap:8px; padding:14px 22px 0; flex-shrink:0; }
.fa-fun-tabs button { border:1px solid #d4e3e5; background:white; color:#4b7076; border-radius:20px; padding:7px 14px; white-space:nowrap; cursor:pointer; font-size:12px; }
.fa-fun-tabs button[aria-pressed="true"] { background:#17576a; color:white; }
.fa-fun-products { padding:22px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; overflow-y:auto; min-height:0; }
.fa-fun-products > p { grid-column:1/-1; font-size:14px; }
.fa-fun-popup .fa-extra-card { width:auto; padding:10px; }
.fa-fun-popup .fa-extra-card h3 { font-size:13px; }
.fa-fun-popup .fa-extra-price { font-size:14px; }
.fa-fun-footer { display:flex; align-items:center; gap:12px; padding:18px 22px; border-top:1px solid #eee; }
.fa-fun-footer > div { margin-right:auto; font-size:13px; }
.fa-fun-footer button { padding:12px 16px; border:1px solid #17576a; color:#17576a; background:white; border-radius:6px; cursor:pointer; font-family:inherit; }
#faFunContinueBtn { background:#17576a; color:white; }
#faPopupStatus { margin:0; padding:0 22px 8px; font-size:12px; }
.fa-fun-popup button:disabled { opacity:.4; cursor:wait; }
.fa-image-dialog { padding:0; max-width:92vw; max-height:92vh; border:0; border-radius:12px; background:#fafafa; }
.fa-image-dialog::backdrop { background:#000b; }
.fa-image-dialog img { display:block; max-width:90vw; max-height:88vh; object-fit:contain; }
.fa-image-dialog button { position:absolute; right:12px; top:12px; width:40px; height:40px; border:0; border-radius:50%; background:#fffffff0; font-size:25px; cursor:pointer; }
.fa-single-product-wrapper button:focus-visible, .fa-fun-popup button:focus-visible, .fa-single-product-wrapper input:focus-visible, .fa-single-product-wrapper a:focus-visible { outline:3px solid #deab52; outline-offset:3px; }
@media(max-width:1050px) { .fa-single-grid { gap:24px; padding:18px; } .fa-gallery-thumbs { width:52px; } .fa-single-product-wrapper .fa-thumb { width:52px; height:52px; } .fa-trust-badges { padding-left:50px; } .fa-gallery-wrapper { gap:10px; } .fa-single-product-wrapper .fa-product-title-main { font-size:20px; } }
@media(max-width:800px) {
 .fa-single-product-wrapper { padding-bottom:110px; } .fa-single-product-wrapper .fa-container { padding:0 12px; } .fa-breadcrumbs { padding:14px 2px; font-size:10px; }
 .fa-single-grid { display:block; padding:14px; border-radius:16px; } .fa-single-left { position:static; margin-bottom:22px; } .fa-gallery-wrapper { flex-direction:column-reverse; }
 .fa-gallery-main { width:100%; } .fa-gallery-thumbs { flex-direction:row; width:100%; max-height:none; gap:8px; } .fa-single-product-wrapper .fa-thumb { width:54px; height:54px; }
 .fa-trust-badges { padding:16px 0 0; } .fa-trust-icon { font-size:26px; } .fa-trust-item { font-size:10px; } .fa-product-price-row { font-size:24px; }
 .fa-desktop-actions { position:fixed; bottom:0; left:0; right:0; padding:10px 14px max(10px,env(safe-area-inset-bottom)); box-shadow:0 -3px 15px #0001; margin:0; z-index:1000; }
 .fa-single-product-wrapper .fa-sticky-btn { padding:14px 8px; font-size:12px; } .fa-earliest { margin-bottom:7px; font-size:11px; }
 .fa-single-product-wrapper .related ul.products, .fa-product-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
 .fa-product-recommendations, .fa-recent-section, .fa-quick-links { padding:18px 14px; } .fa-single-product-wrapper .fa-product-recommendations h2, .fa-single-product-wrapper .fa-recent-section h2, .fa-single-product-wrapper .fa-quick-links h2 { font-size:18px; }
 .fa-fun-products { grid-template-columns:repeat(2,minmax(0,1fr)); padding:14px; gap:12px; } .fa-fun-header { padding:16px; } .fa-fun-header h2 { font-size:19px; } .fa-fun-tabs { padding:12px 14px 0; }
 .fa-fun-footer { padding:14px; gap:8px; } .fa-fun-footer button { padding:10px; font-size:12px; } .fa-reviews-section { padding:14px; }
}
@media(prefers-reduced-motion:reduce) { .fa-single-product-wrapper *, .fa-fun-popup * { scroll-behavior:auto !important; transition:none !important; } }

.fa-price-discount { color:#df9a14; font-size:16px; font-weight:700; white-space:nowrap; }

.fa-trust-icon svg { width:34px; height:34px; }
.fa-loc-input-row > span svg { width:20px; height:20px; display:block; }
.fa-single-product-wrapper .fa-wishlist-btn { position:static; top:auto; right:auto; transform:none; margin:0; }
.woocommerce .fa-single-product-wrapper .fa-product-price-row .price { color:#292d2d; font-size:25px; font-weight:600; }
.fa-serving-guide summary .fa-info-icon { display:inline-flex; width:13px; height:13px; border:1px solid currentColor; align-items:center; justify-content:center; border-radius:50%; font-size:9px; margin-left:4px; }
