/*
Theme Name: Foam & Fibre Storefront
Description: The existing Foam & Fibre storefront with WooCommerce payment pages.
Version: 0.2.11
Requires PHP: 8.1
*/
/* Scoped to native WordPress pages; the original storefront keeps its own CSS. */
.ff-commerce-main{max-width:1200px;padding:0 28px;margin:0 auto 64px}
.ff-payment-page .store-header{height:88px}
.ff-commerce-main .review-hero{grid-template-columns:minmax(0,1fr) 360px;gap:24px;padding:28px 0 24px;margin-bottom:8px}
.ff-commerce-main .review-hero h1{font-size:46px;line-height:1.06;margin:12px 0}
.ff-commerce-main .review-hero p{margin:0;font-size:15px}
.ff-commerce-main .review-hero img{max-height:230px;width:360px;justify-self:end}
.ff-payment-page .woocommerce{font-size:15px;line-height:1.65;color:var(--ink,#253e38)}
/* Override WooCommerce's floated billing/shipping columns rather than nesting two two-column layouts. */
.ff-payment-page .woocommerce form.checkout{display:block;margin-top:24px;width:100%;float:none}
.ff-payment-page .ff-checkout-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);grid-template-areas:"details summary";gap:28px;align-items:start;clear:both}
.ff-payment-page .ff-checkout-columns>:not(#customer_details):not(.ff-payment-summary){grid-column:1/-1}
.ff-payment-page .woocommerce form.checkout::before,.ff-payment-page .woocommerce form.checkout::after{display:none}
.ff-payment-page .woocommerce form.checkout #customer_details{display:block!important;float:none!important;width:100%!important;min-width:0;grid-area:details;background:#fff;border:1px solid #d6dfcb;border-radius:10px;padding:26px}
.ff-payment-page .woocommerce form.checkout #customer_details>.col-1,.ff-payment-page .woocommerce form.checkout #customer_details>.col-2{display:block!important;float:none!important;width:100%!important;margin:0!important;min-width:0}
.ff-payment-page .woocommerce #customer_details .col-2:empty{display:none!important}
.ff-payment-page .ff-payment-summary{grid-area:summary;background:#eff2e9;border:1px solid #d6dfcb;border-radius:10px;padding:24px;min-width:0}
.ff-payment-page .woocommerce #order_review,.ff-payment-page .woocommerce #order_review_heading{float:none!important;width:100%!important;clear:none!important}
.ff-payment-page .woocommerce h3,.ff-payment-page .woocommerce #order_review_heading{font:32px/1.15 var(--serif,Georgia,serif);letter-spacing:-.5px;color:var(--ink,#253e38);margin:0 0 22px}
.ff-payment-page .woocommerce #ship-to-different-address{font:16px/1.5 var(--sans,Arial,sans-serif);letter-spacing:0;margin:24px 0 16px}
.ff-payment-page .woocommerce .woocommerce-additional-fields h3{font-size:24px;margin-top:24px}
.ff-payment-page .woocommerce .form-row{padding:0;margin:0 0 18px;float:none;width:100%;clear:both}
.ff-payment-page .woocommerce .form-row-first{float:left;width:calc(50% - 8px);clear:none}
.ff-payment-page .woocommerce .form-row-last{float:right;width:calc(50% - 8px);clear:none}
.ff-payment-page .woocommerce label{display:block;margin:0 0 6px;font-size:14px;font-weight:500;line-height:1.5}
.ff-payment-page .woocommerce form .form-row input.input-text,.ff-payment-page .woocommerce form .form-row select,.ff-payment-page .woocommerce form .form-row textarea{font:inherit;padding:12px 13px;border:1px solid #c4cebd;border-radius:5px;min-height:48px;background:#fff;color:#253e38;width:100%;box-sizing:border-box;box-shadow:none;line-height:1.5}
.ff-payment-page .woocommerce form .form-row textarea{min-height:100px;resize:vertical}
.ff-payment-page .woocommerce .select2-container{width:100%!important}
.ff-payment-page .woocommerce .select2-container .select2-selection--single{height:48px;border:1px solid #c4cebd;border-radius:5px;background:#fff}
.ff-payment-page .woocommerce .select2-container .select2-selection__rendered{line-height:46px;padding-left:13px;color:#253e38}
.ff-payment-page .woocommerce .select2-container .select2-selection__arrow{height:46px;right:8px}
.ff-payment-page .woocommerce input:focus,.ff-payment-page .woocommerce textarea:focus,.ff-payment-page .woocommerce select:focus{outline:2px solid #234e40;outline-offset:2px}
.ff-payment-page .woocommerce input[type=checkbox],.ff-payment-page .woocommerce input[type=radio]{width:18px;height:18px;accent-color:#234e40;vertical-align:middle;flex-shrink:0}
.ff-payment-page .woocommerce .form-row label.checkbox{display:flex;align-items:flex-start;gap:9px;font-weight:400}
.ff-payment-page .woocommerce button.button,.ff-payment-page .woocommerce a.button{background:#234e40!important;color:#fff!important;padding:16px 22px!important;border:0;border-radius:5px;font:600 16px/1.4 var(--sans,Arial,sans-serif)!important;min-height:52px;box-shadow:none;text-decoration:none}
.ff-payment-page .woocommerce #place_order{display:block;float:none;width:100%;margin:18px 0 0}
.ff-payment-page .woocommerce button.button:focus-visible,.ff-payment-page .woocommerce a:focus-visible{outline:2px solid #234e40;outline-offset:3px}
.ff-payment-page .woocommerce table.shop_table{border:0;border-collapse:collapse;width:100%;margin:0 0 20px;border-radius:0;background:transparent;font-size:14px;table-layout:fixed}
.ff-payment-page .woocommerce table.shop_table th,.ff-payment-page .woocommerce table.shop_table td{text-align:left;padding:14px 0;border:0;border-bottom:1px solid #cdd7c4;vertical-align:top;overflow-wrap:anywhere}
.ff-payment-page .woocommerce table.shop_table th:first-child,.ff-payment-page .woocommerce table.shop_table td:first-child{padding-right:14px;width:69%}
.ff-payment-page .woocommerce table.shop_table .product-total,.ff-payment-page .woocommerce table.shop_table tfoot td{text-align:right}
.ff-payment-page .woocommerce table.shop_table .amount{white-space:nowrap}
.ff-payment-page .woocommerce table.shop_table .order-total{font-size:20px}
.ff-payment-page .woocommerce .product-name dl{font-size:12px;line-height:1.55;margin:10px 0 0}
.ff-payment-page .woocommerce .product-name dt{font-weight:500;float:none;display:block;margin-top:5px;color:#52624e}
.ff-payment-page .woocommerce .product-name dd{margin:0 0 5px;float:none;display:block}
.ff-payment-page .woocommerce .product-name dd p{margin:0}
.ff-payment-page .woocommerce-checkout #payment{background:#fff;border:1px solid #d6dfcb;border-radius:7px;padding:0;clear:both}
.ff-payment-page .woocommerce-checkout #payment ul.payment_methods{list-style:none;padding:18px;margin:0;border-bottom:1px solid #d6dfcb}
.ff-payment-page .woocommerce-checkout #payment ul.payment_methods li{list-style:none;margin:0;line-height:1.6}
.ff-payment-page .woocommerce-checkout #payment div.payment_box{padding:14px 0 0;margin:0;background:transparent;color:#253e38;font-size:14px;width:100%}
.ff-payment-page .woocommerce-checkout #payment div.payment_box::before{display:none}
.ff-payment-page .woocommerce-checkout #payment div.form-row{margin:0;padding:18px}
.ff-payment-page .woocommerce .woocommerce-privacy-policy-text,.ff-payment-page .woocommerce .woocommerce-terms-and-conditions-wrapper{font-size:12px;line-height:1.75;color:#52624e}
.ff-payment-page .woocommerce .woocommerce-privacy-policy-text p{margin:0 0 12px}
.ff-payment-page .woocommerce-error,.ff-payment-page .woocommerce-info,.ff-payment-page .woocommerce-message{grid-column:1/-1;padding:16px 20px;margin:0 0 20px;background:#eff2e9;border:1px solid #cdd7c4;border-radius:6px;color:#253e38;line-height:1.7;list-style:none}
.ff-payment-page .woocommerce-error{border-left:4px solid #9d453e;background:#fff7f5}
.ff-payment-page .woocommerce-error::before,.ff-payment-page .woocommerce-info::before,.ff-payment-page .woocommerce-message::before{display:none}
.ff-payment-page .woocommerce .woocommerce-notices-wrapper{grid-column:1/-1}
/* Give Stripe the full checkout width for one desktop wallet row; its secure iframe wraps on small screens. */
.ff-payment-page #wc-stripe-express-checkout-element,.ff-payment-page #wc-stripe-payment-request-wrapper{width:100%;max-width:100%;margin-left:auto!important;margin-right:auto!important}
.ff-payment-page #wc-stripe-express-checkout-button-separator,.ff-payment-page #wc-stripe-payment-request-button-separator{font-size:12px;color:#52624e;margin:12px 0!important}
.ff-payment-page .ff-payment-reassurance{font-size:12px;line-height:1.7;margin:16px 0 0;color:#52624e}
@media(max-width:860px){
 .ff-commerce-main{padding:0 20px;margin-bottom:40px}
 .ff-commerce-main .review-hero{grid-template-columns:minmax(0,1fr) 180px;gap:16px;padding:22px 0}
 .ff-commerce-main .review-hero h1{font-size:38px}
 .ff-commerce-main .review-hero img{width:180px;max-height:130px}
 .ff-payment-page .ff-checkout-columns{grid-template-columns:minmax(0,1fr);grid-template-areas:"details" "summary";gap:20px}
 .ff-payment-page .ff-payment-summary{padding:20px}
 .ff-payment-page .woocommerce form.checkout #customer_details{padding:20px}
}
@media(max-width:480px){
 .ff-payment-page .store-header{height:76px;padding:0 18px}
 .ff-payment-page .store-header .nav-cta{font-size:11px;padding:10px}
 .ff-payment-page .wordmark{font-size:25px}
 .ff-commerce-main{padding:0 16px}
 .ff-commerce-main .review-hero{grid-template-columns:minmax(0,1fr) 120px;gap:10px}
 .ff-commerce-main .review-hero h1{font-size:32px}
 .ff-commerce-main .review-hero img{width:120px;max-height:100px}
 .ff-commerce-main .review-hero p{font-size:14px}
 .ff-commerce-main .review-hero .eyebrow{font-size:9px}
 .ff-payment-page .woocommerce .form-row-first,.ff-payment-page .woocommerce .form-row-last{float:none;width:100%}
 .ff-payment-page .woocommerce form .form-row input.input-text,.ff-payment-page .woocommerce form .form-row select,.ff-payment-page .woocommerce form .form-row textarea{font-size:16px}
 .ff-payment-page .woocommerce h3{font-size:28px}
}
/* The saved-order receipt shares the storefront's typography and restrained illustration system. */
.ff-receipt-hero{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:40px;align-items:center;padding:32px 0 26px}
.ff-receipt-hero h1{font:52px/1.08 var(--serif,Georgia,serif);letter-spacing:-1.3px;max-width:650px;margin:14px 0 18px}
.ff-receipt-hero p{font-size:16px;line-height:1.85;max-width:600px;margin:0;color:#52624e}
.ff-receipt-hero img{display:block;width:100%;height:auto;max-height:200px}
.ff-order-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:20px 24px;margin:0 0 32px;border:1px solid #d6dfcb;border-radius:8px;background:#f3f5ef}
.ff-order-facts span{display:block;font-size:12px;color:#52624e;margin-bottom:5px}
.ff-order-facts strong{font-size:15px;overflow-wrap:anywhere}
.ff-receipt-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start}
.ff-receipt h2{font:32px/1.2 var(--serif,Georgia,serif);letter-spacing:-.5px;margin:0 0 20px}
.ff-ordered-piece{border:1px solid #d6dfcb;border-radius:9px;overflow:hidden;margin:0 0 20px;background:#fff}
.ff-ordered-piece>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border-bottom:1px solid #e0e6d8}
.ff-ordered-piece h3{font:25px/1.2 var(--serif,Georgia,serif)!important;margin:4px 0 0!important;letter-spacing:0!important}
.ff-ordered-piece .eyebrow{font-size:10px;letter-spacing:1.3px}
.ff-piece-amount{text-align:right;flex-shrink:0}.ff-piece-amount>strong{display:block;font-size:17px}.ff-piece-amount>span{font-size:12px;color:#52624e}
.ff-ordered-piece-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;padding:20px;align-items:center}
.ff-order-art{background:#f1f4eb;border-radius:6px;padding:10px;min-width:0}
.ff-order-art .drawing-grid{display:grid;grid-template-columns:1fr;gap:5px}.ff-order-art figure{margin:0}.ff-order-art figure:nth-child(n+3){display:none}
.ff-order-art figcaption{font-size:11px;color:#52624e;padding:0 4px}.ff-order-art svg{display:block;width:100%;height:auto;max-height:135px;fill:none}
.ff-order-art svg text{font:12px Arial,sans-serif;fill:#3f5739}.ff-order-art .view-note{font-size:10px}.ff-order-art .dimension path{fill:none;stroke:#80946e;stroke-width:1}
.ff-piece-spec{margin:0;font-size:14px}.ff-piece-spec>div{border-bottom:1px solid #e0e6d8;padding:9px 0}.ff-piece-spec dt{color:#52624e;font-size:12px;margin-bottom:3px}.ff-piece-spec dd{margin:0;line-height:1.6;overflow-wrap:anywhere}
.ff-receipt-summary{padding:24px;background:#eff2e9;border:1px solid #d6dfcb;border-radius:9px;margin-top:58px}
.ff-final-totals{margin:0}.ff-final-totals>div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #cdd7c4;padding:12px 0;font-size:14px}.ff-final-totals dt{font-weight:400}.ff-final-totals dd{margin:0;text-align:right}.ff-final-totals .ff-final-total{font-size:20px;font-weight:bold;padding:18px 0}.ff-final-total dt{font-weight:bold}.ff-final-totals .amount{white-space:nowrap}
.ff-saving-note{font-size:12px;line-height:1.7;padding:12px;background:#e2ead8;border-radius:5px;margin:16px 0 0}
.ff-receipt-status{font-size:13px;font-weight:600;color:#234e40;margin:18px 0 0}
.ff-address-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin:30px 0}.ff-address-grid>div{padding:22px;border:1px solid #d6dfcb;border-radius:8px;min-width:0}.ff-address-grid h2{font-size:25px;margin-bottom:15px}.ff-address-grid address{font-style:normal;line-height:1.85;font-size:14px}.ff-address-grid p{font-size:14px;overflow-wrap:anywhere;margin:0 0 10px}.ff-address-grid .ff-small{font-size:12px;color:#52624e;line-height:1.7;margin:12px 0 0}
.ff-order-next{background:#f3f5ee;border-radius:9px;padding:26px;margin:30px 0}.ff-order-next>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.ff-order-next article>span{font-size:12px;color:#52624e}.ff-order-next article>h3{font:22px/1.3 var(--serif,Georgia,serif)!important;margin:10px 0!important}.ff-order-next p{font-size:14px;line-height:1.8;margin:0;color:#52624e}
.ff-receipt-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin:24px 0 40px}.ff-receipt-actions a{font-size:14px}
.ff-mobile-order-jump{display:none}
@media(max-width:860px){.ff-receipt-hero{grid-template-columns:1fr 180px;gap:20px;padding:25px 0}.ff-receipt-hero h1{font-size:42px}.ff-receipt-layout{grid-template-columns:1fr}.ff-receipt-summary{margin-top:0}.ff-order-facts{grid-template-columns:1fr 1fr;gap:16px}.ff-address-grid{grid-template-columns:1fr 1fr}.ff-address-grid>div:last-child{grid-column:1/-1}.ff-order-next>div{grid-template-columns:1fr;gap:18px}.ff-mobile-order-jump{display:flex;align-items:center;gap:8px;margin:12px 0 20px;font-size:14px}.ff-mobile-order-jump svg{width:16px;height:16px}}
@media(max-width:480px){.ff-receipt-hero{grid-template-columns:1fr 100px;gap:12px}.ff-receipt-hero h1{font-size:34px}.ff-receipt-hero p{font-size:14px;line-height:1.7}.ff-order-facts{padding:16px;margin-bottom:24px}.ff-order-facts strong{font-size:14px}.ff-ordered-piece>header{padding:16px;align-items:flex-start}.ff-ordered-piece h3{font-size:23px!important}.ff-ordered-piece-body{padding:16px;grid-template-columns:1fr}.ff-order-art .drawing-grid{grid-template-columns:1fr 1fr}.ff-order-art svg{max-height:none}.ff-piece-spec{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.ff-receipt-summary{padding:20px}.ff-address-grid{grid-template-columns:1fr;gap:14px}.ff-address-grid>div:last-child{grid-column:auto}.ff-order-next{padding:20px}.ff-receipt-actions{gap:18px}}
@media print{.ff-receipt-page .store-header,.ff-receipt-page footer,.ff-receipt-actions,.ff-receipt-page #wpadminbar{display:none!important}.ff-receipt-hero{padding:10px 0;grid-template-columns:1fr 150px}.ff-receipt-hero h1{font-size:30px}.ff-order-facts{padding:12px;margin-bottom:18px}.ff-receipt-layout{display:block}.ff-receipt-summary{margin:20px 0;break-inside:avoid}.ff-ordered-piece,.ff-address-grid>div{break-inside:avoid}.ff-order-next{display:none}.ff-order-art svg{max-height:100px}.ff-commerce-main{max-width:none;padding:0}.ff-ordered-piece-body{grid-template-columns:1fr 1fr}.ff-address-grid{grid-template-columns:1fr 1fr 1fr}.ff-address-grid>div:last-child{grid-column:auto}}
