{"id":3886,"date":"2026-05-07T10:04:58","date_gmt":"2026-05-07T17:04:58","guid":{"rendered":"https:\/\/centricframing.com\/centricphoto\/?page_id=3886"},"modified":"2026-09-01T13:33:16","modified_gmt":"2026-09-01T20:33:16","slug":"price-calculator","status":"publish","type":"page","link":"https:\/\/centricframing.com\/centricphoto\/price-calculator\/","title":{"rendered":"PRICE CALCULATOR"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3886\" class=\"elementor elementor-3886\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ebc9ac9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ebc9ac9\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b27eb9c\" data-id=\"b27eb9c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-72f7a80 elementor-widget elementor-widget-html\" data-id=\"72f7a80\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ONE help card for the price-calculator page. Replaces all three bars:\n     quick start, full walkthrough, and the photo-fit widget live behind one\n     toggle, as tabs. Self-contained. Paste into a single Elementor HTML widget\n     and REMOVE the three separate widgets. -->\n<div class=\"cph-wrap\">\n<style>\n.cph-wrap{max-width:820px;margin:1.25rem auto;font-family:inherit;color:#2b2b28;}\n.cph-wrap *{box-sizing:border-box;}\n.cph-card{border:1px solid #e3ddd0;border-radius:12px;background:#ffffff;overflow:hidden;}\n.cph-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:#faf8f3;border:0;padding:14px 18px;cursor:pointer;font-family:inherit;font-size:16px;font-weight:600;color:#2b2b28;text-align:left;}\n.cph-more{font-size:13px;font-weight:500;color:#137a9e;white-space:nowrap;}\n.cph-chev{display:inline-block;transition:transform .15s;}\n.cph-body{display:none;}\n.cph-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:10px 18px 0;border-top:1px solid #efe9dc;}\n.cph-tab{font-family:inherit;font-size:13px;font-weight:600;padding:8px 13px;border:1px solid #d8d1c2;border-bottom:0;border-radius:8px 8px 0 0;background:#f3efe6;color:#5c574c;cursor:pointer;}\n.cph-tab.on{background:#ffffff;color:#137a9e;border-color:#bfe0ee;position:relative;top:1px;}\n.cph-pane{display:none;padding:14px 18px 18px;font-size:14px;line-height:1.6;color:#3d3931;border-top:1px solid #efe9dc;}\n.cph-pane.on{display:block;}\n.cph-pane h3{font-size:15px;font-weight:700;color:#2b2b28;margin:18px 0 6px;}\n.cph-pane p{margin:8px 0;}\n.cph-pane ol,.cph-pane ul{margin:6px 0 10px;padding-left:1.2em;}\n.cph-pane li{margin:5px 0;}\n.cph-note{font-size:13px;color:#5c574c;background:#f7f4ed;border-radius:8px;padding:10px 14px;margin:10px 0;}\n.cph-warn{font-size:13px;color:#6a4a12;background:#fdf3dd;border:1px solid #eed9a8;border-radius:8px;padding:10px 14px;margin:10px 0;}\n.cph-tbl{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0 4px;}\n.cph-tbl th,.cph-tbl td{border:1px solid #e3ddd0;padding:7px 10px;text-align:left;vertical-align:top;}\n.cph-tbl th{background:#faf8f3;font-weight:600;white-space:nowrap;}\n.cph-pane strong{color:#2b2b28;}\n.cph-link{color:#137a9e;font-weight:600;cursor:pointer;text-decoration:underline;}\n\/* ---- photo-fit widget (tab 3) ---- *\/\n.cpfit-intro{font-size:14px;color:#5c574c;line-height:1.6;margin:4px 0 16px;}\n.cpfit-lab{font-size:13px;color:#6b665a;margin:0 0 6px;}\n.cpfit-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}\n.cpfit-btn{font-family:inherit;font-size:13px;line-height:1.2;padding:7px 12px;border:1px solid #d8d1c2;border-radius:7px;background:#fff;color:#2b2b28;cursor:pointer;transition:background .12s;}\n.cpfit-btn:hover{background:#f3efe6;}\n.cpfit-btn.on{border-color:#137a9e;border-width:2px;color:#137a9e;font-weight:600;padding:6px 11px;}\n.cpfit-mode{display:flex;gap:16px;align-items:center;background:#f7f4ed;border-radius:10px;padding:12px 16px;margin-bottom:10px;}\n.cpfit-mode.hero{background:#eef7fb;border:1px solid #bfe0ee;}\n.cpfit-dia{flex:0 0 160px;}\n.cpfit-txt{flex:1;min-width:0;}\n.cpfit-mname{font-size:14px;font-weight:600;color:#2b2b28;}\n.cpfit-tag{display:inline-block;font-size:11px;font-weight:600;color:#0d6a8c;background:#d4ecf6;border-radius:20px;padding:1px 9px;margin-left:8px;vertical-align:1px;}\n.cpfit-mdesc{font-size:13px;color:#5c574c;line-height:1.5;margin:3px 0 4px;}\n.cpfit-cap{font-size:12px;color:#8a8478;}\n.cpfit-legend{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:6px;font-size:12px;color:#6b665a;}\n.cpfit-sw{display:inline-block;width:11px;height:11px;border-radius:2px;vertical-align:-1px;margin-right:5px;}\n@media(max-width:430px){.cpfit-dia{flex:0 0 108px;}.cpfit-mode{padding:10px;gap:10px;}}\n<\/style>\n\n<div class=\"cph-card\">\n  <button class=\"cph-toggle\" id=\"cph-toggle\" aria-expanded=\"false\" aria-controls=\"cph-body\">\n    <span>New here? Getting a price takes about a minute<\/span>\n    <span class=\"cph-more\">Show me <span class=\"cph-chev\" id=\"cph-chev\" aria-hidden=\"true\">&#9662;<\/span><\/span>\n  <\/button>\n  <div class=\"cph-body\" id=\"cph-body\">\n    <div class=\"cph-tabs\" role=\"tablist\">\n      <button class=\"cph-tab on\" data-pane=\"cph-quick\" role=\"tab\">Quick start<\/button>\n      <button class=\"cph-tab\" data-pane=\"cph-full\" role=\"tab\">Every option, explained<\/button>\n      <button class=\"cph-tab\" data-pane=\"cph-fit\" role=\"tab\">How your photo fits<\/button>\n    <\/div>\n\n    <!-- ============ TAB 1: QUICK START ============ -->\n    <div class=\"cph-pane on\" id=\"cph-quick\">\n      <ol>\n        <li>Pick what you&rsquo;re making &mdash; print, mounted, metal, plexi or canvas.<\/li>\n        <li>Type the image size in inches.<\/li>\n        <li>Click a paper or surface. The price updates as you click.<\/li>\n        <li>Like it? Click <strong>Add to Quote Cart<\/strong>. The cart appears below with that build on it.<\/li>\n        <li>Want another size or a second product? Change what you like and click <strong>Add to Quote Cart<\/strong> again &mdash; every build gets its own line. Edit or remove any line right in the cart.<\/li>\n        <li>When the cart has everything, <strong>Upload Files &amp; Submit Quote<\/strong> &mdash; or call us at <a href=\"tel:5203250065\" style=\"color:#137a9e;font-weight:600;\">(520)&nbsp;325-0065<\/a> with the number.<\/li>\n      <\/ol>\n      <p class=\"cph-note\">Estimates only, before tax. Nothing is charged. Change anything as often as you like. Want more? See <span class=\"cph-link\" data-goto=\"cph-full\">Every option, explained<\/span>.<\/p>\n    <\/div>\n\n    <!-- ============ TAB 2: FULL WALKTHROUGH ============ -->\n    <div class=\"cph-pane\" id=\"cph-full\">\n      <p>The calculator gives you an instant estimate for prints, mounted prints, metal prints, plexi face mounts and canvas &mdash; and lets you send us your files with the quote so the job is ready to start when you call or walk in. It takes about two minutes per item.<\/p>\n      <p class=\"cph-note\">Prices shown are <strong>estimates<\/strong> for materials. They don&rsquo;t include tax, and we confirm the final price with you when the order is placed. Nothing is charged here.<\/p>\n\n      <h3>1. Pick what you&rsquo;re making<\/h3>\n      <table class=\"cph-tbl\">\n        <tr><th>Choose this<\/th><th>When you want<\/th><\/tr>\n        <tr><td><strong>Simple Print<\/strong><\/td><td>A print on paper, nothing else. You&rsquo;ll frame it or mount it yourself.<\/td><\/tr>\n        <tr><td><strong>Mounted Print<\/strong><\/td><td>A print mounted to a rigid board (foam core, mat board, Gator, or aluminum composite), with or without a protective laminate.<\/td><\/tr>\n        <tr><td><strong>Metal Print<\/strong><\/td><td>The image on aluminum composite with a satin or glossy laminate finish &mdash; modern, rigid, ready to hang.<\/td><\/tr>\n        <tr><td><strong>Face Mount Plexi<\/strong><\/td><td>The print bonded behind clear acrylic &mdash; the gallery look. 1\/8&Prime; or 1\/4&Prime; plexi.<\/td><\/tr>\n        <tr><td><strong>Canvas Print<\/strong><\/td><td>Printed on canvas, stretched on bars or mounted flat to a board.<\/td><\/tr>\n      <\/table>\n      <p>Not sure? Pick the closest one; you can change it any time and the price updates instantly.<\/p>\n\n      <h3>2. Enter the image size<\/h3>\n      <p>Type the width and height <strong>of the image<\/strong> in inches (quarter-inch steps are fine). The calculator shows the square inches under the boxes. If you want white space around the image, use <strong>Borders<\/strong> rather than adding it to the size here &mdash; see step 4.<\/p>\n\n      <h3>3. Choose the paper or surface<\/h3>\n      <p>The list changes with the product type, and the price updates as soon as you click one.<\/p>\n      <ul>\n        <li><em>Simple and Mounted prints:<\/em> photo papers and fine-art papers.<\/li>\n        <li><em>Metal prints:<\/em> the laminate finish. <strong>Satin<\/strong> is the recommended finish &mdash; durable and scratch-resistant. <strong>Glossy<\/strong> is brilliant but shows scratches, so it&rsquo;s best behind glass.<\/li>\n        <li><em>Canvas:<\/em> matte or gloss canvas.<\/li>\n      <\/ul>\n\n      <h3>4. Set the options for your product<\/h3>\n      <p>Only the options that apply to your product type appear. The main ones:<\/p>\n      <p><strong>Borders<\/strong> &mdash; <em>No borders<\/em> prints edge to edge. <em>Outside borders<\/em> adds white paper around the image you sized in step 2 (the paper gets bigger). <em>Inside borders<\/em> keeps the paper at the size you entered and shrinks the image inside it. Uneven borders (for example a wider bottom for a signature) can be set side by side. Curious how borders relate to your photo&rsquo;s shape? See <span class=\"cph-link\" data-goto=\"cph-fit\">How your photo fits<\/span>.<\/p>\n      <p><strong>Mounting<\/strong> (Mounted Print) &mdash; pick the board. Add a <strong>laminate<\/strong> if the print will be handled or displayed unframed; Satin is recommended. Lamination is only available on our 10.4-mil gloss paper &mdash; the calculator will tell you if your paper choice doesn&rsquo;t allow it.<\/p>\n      <p><strong>Decal mount<\/strong> &mdash; the image stays the size you entered but the board underneath is cut larger, so you get a border of bare board around the image. Enter the board size.<\/p>\n      <p><strong>Plexi<\/strong> &mdash; choose 1\/8&Prime; or 1\/4&Prime; thickness. We recommend leaving <strong>ACM backing<\/strong> on; it keeps larger pieces flat.<\/p>\n      <p><strong>Hanging system<\/strong> (Metal and Plexi) &mdash; <em>None<\/em> if it&rsquo;s going in a frame; otherwise a wire hanger, a 5&Prime; standoff, or a metal frame support on the back. For 16&times;20 and larger we recommend the frame support.<\/p>\n      <p><strong>Canvas<\/strong><\/p>\n      <ul>\n        <li><em>Strainer bars<\/em> &mdash; tick this to have the canvas stretched. Then choose the bar type and how the <strong>sides<\/strong> should look: <em>un-inked<\/em> (natural white canvas), <em>solid color<\/em> (tell us the color; we&rsquo;ll confirm it with you), or <em>mirrored<\/em> (the sides echo the edge of the image so nothing is cropped from the front). The preview at the top shows all three.<\/li>\n        <li><em>Varnish<\/em> &mdash; an archival UV spray. Recommended for matte canvas.<\/li>\n        <li><em>Mount to board<\/em> instead of stretching &mdash; the canvas is glued flat to a board, no bars.<\/li>\n        <li><em>Rounded corners<\/em> &mdash; pick a radius; flat $10 per print.<\/li>\n        <li><em>Hanger<\/em> &mdash; wire (standard) or sawtooth (lighter duty, smaller pieces).<\/li>\n      <\/ul>\n\n      <h3>5. Color proofing (optional, recommended for larger orders)<\/h3>\n      <ul>\n        <li><strong>Sliver proof<\/strong> &mdash; a strip about 5&times;17&Prime; printed on the same material as your order so you can check color and density before we run the full print.<\/li>\n        <li><strong>Color swatch<\/strong> &mdash; a bigger 8&times;44&Prime; proof with a color\/density grid and a full-frame section.<\/li>\n      <\/ul>\n      <p class=\"cph-warn\">Please read the proof policy shown under the price: for orders over the amount stated, if you decline a proof we ask for full payment in advance and can&rsquo;t reprint for color or density. A proof is cheap insurance on a big piece.<\/p>\n\n      <h3>6. Add it to your quote &mdash; and keep going<\/h3>\n      <p>The <strong>Estimated Total<\/strong> updates with every click. When it&rsquo;s what you want, click <strong>Add to Quote Cart<\/strong>. The cart opens below the calculator with that build on its own line: what it is, the size and material, and the price.<\/p>\n      <p>Each line has a note box &mdash; put the file name it goes with, or a special instruction (&ldquo;wider bottom border for signature&rdquo;). Under the line you&rsquo;ll see <strong>Edit this build<\/strong> (sends it back up to the calculator; change what you want and click <strong>Update this item<\/strong>) and <strong>Remove this item<\/strong>.<\/p>\n      <p>To add another build &mdash; a different size of the same image, the same size on a different paper, a canvas to go with the print &mdash; change what you want in the calculator and click <strong>Add to Quote Cart<\/strong> again. The form keeps your last settings, so a second size is usually one edit and one click. Add as many lines as you like; the cart total updates as you go.<\/p>\n      <p><strong>Start Over<\/strong> clears the calculator only &mdash; nothing in the cart is touched.<\/p>\n\n      <h3>7. Send it to us<\/h3>\n      <p>When the cart has everything, click <strong>Upload Files &amp; Submit Quote<\/strong>. Your quote is saved with a quote number, and our <strong>file upload page opens in a new tab<\/strong> so you can attach your image files to the quote.<\/p>\n      <p>If the upload page doesn&rsquo;t open (some browsers block new tabs), use the <em>Looking for our file upload page?<\/em> link at the top of the calculator &mdash; and call us with your quote number if you have any trouble. We&rsquo;ll review the quote and files and contact you to confirm the price and timing.<\/p>\n\n      <h3>Tips<\/h3>\n      <ul>\n        <li>Measure the <strong>image<\/strong>, not the paper. Borders and boards are added separately.<\/li>\n        <li>For anything you&rsquo;ll handle or ship unframed, a laminate is worth it.<\/li>\n        <li>Need two of the same thing? Add it to the cart twice, or say so in the line&rsquo;s note box.<\/li>\n        <li>Questions at any point: <a href=\"tel:5203250065\" style=\"color:#137a9e;font-weight:600;\">(520)&nbsp;325-0065<\/a>. We&rsquo;re happy to walk through it with you on the phone.<\/li>\n      <\/ul>\n    <\/div>\n\n    <!-- ============ TAB 3: PHOTO FIT (Richard's widget, unchanged behavior) ============ -->\n    <div class=\"cph-pane\" id=\"cph-fit\">\n      <p class=\"cpfit-intro\">Welcome to the <strong>aspect-ratio dance<\/strong>. Your phone shoots photos in one shape, print paper comes in another, and the two almost never line up on their own. So your picture has to either step in close (and lose a sliver at the edges) or keep its distance (and gain a border). Neither move is wrong &mdash; it&rsquo;s just your call. Tap how your photo was taken and a print size to see the three standard ways it can go &mdash; plus a fourth our team can do for you when none of them feel right.<\/p>\n\n      <p class=\"cpfit-lab\">Your photo<\/p>\n      <div class=\"cpfit-row\" id=\"cpfit-photos\">\n        <button class=\"cpfit-btn\" data-photo=\"4:3\">Phone 4:3<\/button>\n        <button class=\"cpfit-btn\" data-photo=\"3:2\">Camera 3:2<\/button>\n        <button class=\"cpfit-btn\" data-photo=\"1:1\">Square<\/button>\n        <button class=\"cpfit-btn\" data-photo=\"20:9\">Full screen 20:9<\/button>\n      <\/div>\n\n      <p class=\"cpfit-lab\">Print size<\/p>\n      <div class=\"cpfit-row\" id=\"cpfit-prints\">\n        <button class=\"cpfit-btn\" data-print=\"4x6\">4 &times; 6<\/button>\n        <button class=\"cpfit-btn\" data-print=\"5x7\">5 &times; 7<\/button>\n        <button class=\"cpfit-btn\" data-print=\"8x10\">8 &times; 10<\/button>\n        <button class=\"cpfit-btn\" data-print=\"11x14\">11 &times; 14<\/button>\n      <\/div>\n\n      <div class=\"cpfit-mode\">\n        <div class=\"cpfit-dia\" id=\"cpfit-m-cover\"><\/div>\n        <div class=\"cpfit-txt\">\n          <div class=\"cpfit-mname\">Cover &mdash; fill it up<\/div>\n          <div class=\"cpfit-mdesc\">Blows your photo up a touch <em>past<\/em> the print&rsquo;s edges, then trims the overhang &mdash; so it fills corner to corner. Watch out: this is where a head or a hand can get clipped.<\/div>\n          <div class=\"cpfit-cap\" id=\"cpfit-c-cover\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"cpfit-mode\">\n        <div class=\"cpfit-dia\" id=\"cpfit-m-strip\"><\/div>\n        <div class=\"cpfit-txt\">\n          <div class=\"cpfit-mname\">Strip borders &mdash; keep it all<\/div>\n          <div class=\"cpfit-mdesc\">Keeps every bit of your photo. Because the shapes differ, two opposite sides pick up a clean white border while the other two run flush.<\/div>\n          <div class=\"cpfit-cap\" id=\"cpfit-c-strip\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"cpfit-mode\">\n        <div class=\"cpfit-dia\" id=\"cpfit-m-four\"><\/div>\n        <div class=\"cpfit-txt\">\n          <div class=\"cpfit-mname\">Four-sided &mdash; framed look<\/div>\n          <div class=\"cpfit-mdesc\">Your whole photo, centered with an even white border on all four sides &mdash; the classic matted look, ready to frame.<\/div>\n          <div class=\"cpfit-cap\" id=\"cpfit-c-four\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"cpfit-mode hero\">\n        <div class=\"cpfit-dia\" id=\"cpfit-m-extend\"><\/div>\n        <div class=\"cpfit-txt\">\n          <div class=\"cpfit-mname\">We make it fit<span class=\"cpfit-tag\">we do this for you<\/span><\/div>\n          <div class=\"cpfit-mdesc\">None of the above quite working &mdash; don&rsquo;t want a head cropped <em>or<\/em> a border? Our team can blend in matching background &mdash; more sky, more scenery &mdash; so your whole photo fills the print with no cropping and no borders. Just ask and we&rsquo;ll make it fit.<\/div>\n          <div class=\"cpfit-cap\" id=\"cpfit-c-extend\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"cpfit-legend\">\n        <span><span class=\"cpfit-sw\" style=\"background:#7ec0dd;\"><\/span>your photo<\/span>\n        <span><span class=\"cpfit-sw\" style=\"background:#a9d8ec;opacity:.45;\"><\/span>trimmed off<\/span>\n        <span><span class=\"cpfit-sw\" style=\"background:#ffffff;border:1px solid #c9c1ad;\"><\/span>white border<\/span>\n        <span><span class=\"cpfit-sw\" style=\"border:1.5px dashed #137a9e;background:transparent;\"><\/span>your photo&rsquo;s edge<\/span>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n<\/div>\n\n<script>\n(function(){\n  \/* ---- card toggle + tabs ---- *\/\n  var tog=document.getElementById('cph-toggle'),body=document.getElementById('cph-body'),chev=document.getElementById('cph-chev');\n  tog.addEventListener('click',function(){\n    var open=body.style.display==='block';\n    body.style.display=open?'none':'block';\n    tog.setAttribute('aria-expanded',String(!open));\n    chev.style.transform=open?'':'rotate(180deg)';\n  });\n  function showPane(id){\n    Array.prototype.forEach.call(document.querySelectorAll('.cph-pane'),function(p){p.classList.toggle('on',p.id===id);});\n    Array.prototype.forEach.call(document.querySelectorAll('.cph-tab'),function(t){t.classList.toggle('on',t.dataset.pane===id);});\n  }\n  Array.prototype.forEach.call(document.querySelectorAll('.cph-tab'),function(t){t.addEventListener('click',function(){showPane(t.dataset.pane);});});\n  Array.prototype.forEach.call(document.querySelectorAll('.cph-link'),function(l){l.addEventListener('click',function(){showPane(l.dataset.goto);});});\n\n  \/* ---- photo-fit widget (unchanged from the standalone block) ---- *\/\n  var photos={'4:3':{w:3,h:4},'3:2':{w:2,h:3},'1:1':{w:1,h:1},'20:9':{w:9,h:20}};\n  var prints={'4x6':{w:4,h:6},'5x7':{w:5,h:7},'8x10':{w:8,h:10},'11x14':{w:11,h:14}};\n  var MIN=0.25, MINPX=4, state={photo:'4:3',print:'4x6'};\n  function R(x){return Math.round(x*100)\/100;}\n  function fit(mode,ph,pr){\n    var ar=ph.w\/ph.h,qr=pr.w\/pr.h,dW,dH,cap;\n    if(mode==='cover'){\n      if(ar>=qr){dH=pr.h;dW=pr.h*ar;var c=(dW-pr.w)\/2;cap=c<0.04?'Fills exactly, no trim':'Trims '+R(c)+'\\u2033 off each side';}\n      else{dW=pr.w;dH=pr.w\/ar;var c2=(dH-pr.h)\/2;cap=c2<0.04?'Fills exactly, no trim':'Trims '+R(c2)+'\\u2033 off top & bottom';}\n      return {dW:dW,dH:dH,cap:cap,cover:true};\n    }\n    if(mode==='strip'){\n      if(ar>=qr){dW=pr.w;dH=pr.w\/ar;var b=(pr.h-dH)\/2;cap=b<0.04?'Exact fit, no border':R(b)+'\\u2033 border top & bottom';}\n      else{dH=pr.h;dW=pr.h*ar;var b2=(pr.w-dW)\/2;cap=b2<0.04?'Exact fit, no border':R(b2)+'\\u2033 border left & right';}\n      return {dW:dW,dH:dH,cap:cap};\n    }\n    if(mode==='four'){\n      if(ar>=qr){dW=pr.w-2*MIN;dH=dW\/ar;var t=(pr.h-dH)\/2;cap=R(MIN)+'\\u2033 sides (min), '+R(t)+'\\u2033 top & bottom';}\n      else{dH=pr.h-2*MIN;dW=dH*ar;var t2=(pr.w-dW)\/2;cap=R(MIN)+'\\u2033 top & bottom (min), '+R(t2)+'\\u2033 sides';}\n      return {dW:dW,dH:dH,cap:cap};\n    }\n    if(ar>=qr){dW=pr.w;dH=pr.w\/ar;}else{dH=pr.h;dW=pr.h*ar;}\n    return {dW:dW,dH:dH,cap:'Whole photo kept \\u2014 no crop, no borders',extend:true};\n  }\n  function scene(x,y,w,h){\n    var gy=y+h*0.64, sr=Math.min(w,h)*0.13;\n    function f(v){return v.toFixed(1);}\n    return '<rect x=\"'+f(x)+'\" y=\"'+f(y)+'\" width=\"'+f(w)+'\" height=\"'+f(h)+'\" fill=\"#a9d8ec\"\/>'\n         + '<circle cx=\"'+f(x+w*0.74)+'\" cy=\"'+f(y+h*0.27)+'\" r=\"'+f(sr)+'\" fill=\"#f6c659\"\/>'\n         + '<rect x=\"'+f(x)+'\" y=\"'+f(gy)+'\" width=\"'+f(w)+'\" height=\"'+f(y+h-gy)+'\" fill=\"#c9b27e\"\/>';\n  }\n  function render(){\n    var ph=photos[state.photo],pr=prints[state.print];\n    var cov=fit('cover',ph,pr),str=fit('strip',ph,pr),fou=fit('four',ph,pr),ext=fit('extend',ph,pr);\n    var maxExt=Math.max(pr.w,pr.h,cov.dW,cov.dH),sc=100\/maxExt;\n    var vbW=120,vbH=128,cx=vbW\/2,cy=vbH\/2;\n    function box(g,key){\n      var PW=pr.w*sc,PH=pr.h*sc,DW=g.dW*sc,DH=g.dH*sc;\n      var px=cx-PW\/2,py=cy-PH\/2;\n      if(!g.cover && !g.extend){\n        if((PW-DW)\/2>0.5 && (PW-DW)\/2<MINPX) DW=PW-2*MINPX;\n        if((PH-DH)\/2>0.5 && (PH-DH)\/2<MINPX) DH=PH-2*MINPX;\n      }\n      var dx=cx-DW\/2,dy=cy-DH\/2;\n      function f(v){return v.toFixed(1);}\n      var s='<svg viewBox=\"0 0 '+vbW+' '+vbH+'\" width=\"100%\" style=\"width:100%;height:auto;display:block;\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\"><title>'+key+' preview<\/title>';\n      if(g.cover){\n        s+='<g opacity=\"0.34\">'+scene(dx,dy,DW,DH)+'<\/g>';\n        s+='<rect x=\"'+f(dx)+'\" y=\"'+f(dy)+'\" width=\"'+f(DW)+'\" height=\"'+f(DH)+'\" fill=\"none\" stroke=\"#2f93b8\" stroke-dasharray=\"4 3\"\/>';\n        s+='<clipPath id=\"cpfitclip\"><rect x=\"'+f(px)+'\" y=\"'+f(py)+'\" width=\"'+f(PW)+'\" height=\"'+f(PH)+'\"\/><\/clipPath>';\n        s+='<g clip-path=\"url(#cpfitclip)\">'+scene(dx,dy,DW,DH)+'<\/g>';\n      }else if(g.extend){\n        var hy=dy+DH*0.64, sr=Math.min(DW,DH)*0.13;\n        s+='<rect x=\"'+f(px)+'\" y=\"'+f(py)+'\" width=\"'+f(PW)+'\" height=\"'+f(hy-py)+'\" fill=\"#a9d8ec\"\/>';\n        s+='<rect x=\"'+f(px)+'\" y=\"'+f(hy)+'\" width=\"'+f(PW)+'\" height=\"'+f(py+PH-hy)+'\" fill=\"#c9b27e\"\/>';\n        s+='<circle cx=\"'+f(dx+DW*0.74)+'\" cy=\"'+f(dy+DH*0.27)+'\" r=\"'+f(sr)+'\" fill=\"#f6c659\"\/>';\n        s+='<rect x=\"'+f(dx)+'\" y=\"'+f(dy)+'\" width=\"'+f(DW)+'\" height=\"'+f(DH)+'\" fill=\"none\" stroke=\"#137a9e\" stroke-width=\"1.3\" stroke-dasharray=\"4 3\"\/>';\n      }else{\n        s+='<rect x=\"'+f(px)+'\" y=\"'+f(py)+'\" width=\"'+f(PW)+'\" height=\"'+f(PH)+'\" fill=\"#ffffff\" stroke=\"#c9c1ad\"\/>';\n        s+=scene(dx,dy,DW,DH);\n      }\n      s+='<rect x=\"'+f(px)+'\" y=\"'+f(py)+'\" width=\"'+f(PW)+'\" height=\"'+f(PH)+'\" fill=\"none\" stroke=\"#2b2b28\" stroke-width=\"1.2\"\/><\/svg>';\n      return s;\n    }\n    document.getElementById('cpfit-m-cover').innerHTML=box(cov,'Cover');\n    document.getElementById('cpfit-m-strip').innerHTML=box(str,'Strip borders');\n    document.getElementById('cpfit-m-four').innerHTML=box(fou,'Four-sided');\n    document.getElementById('cpfit-m-extend').innerHTML=box(ext,'We make it fit');\n    document.getElementById('cpfit-c-cover').textContent=cov.cap;\n    document.getElementById('cpfit-c-strip').textContent=str.cap;\n    document.getElementById('cpfit-c-four').textContent=fou.cap;\n    document.getElementById('cpfit-c-extend').textContent=ext.cap;\n    function mark(wrapId,key){\n      var w=document.getElementById(wrapId);\n      Array.prototype.forEach.call(w.querySelectorAll('.cpfit-btn'),function(b){\n        if(b.dataset[key]===state[key])b.classList.add('on');else b.classList.remove('on');\n      });\n    }\n    mark('cpfit-photos','photo');mark('cpfit-prints','print');\n  }\n  Array.prototype.forEach.call(document.querySelectorAll('#cpfit-photos .cpfit-btn'),function(b){b.addEventListener('click',function(){state.photo=b.dataset.photo;render();});});\n  Array.prototype.forEach.call(document.querySelectorAll('#cpfit-prints .cpfit-btn'),function(b){b.addEventListener('click',function(){state.print=b.dataset.print;render();});});\n  render();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ad6a63f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ad6a63f\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-badecbe\" data-id=\"badecbe\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2e918e9 elementor-widget elementor-widget-html\" data-id=\"2e918e9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<iframe \r\n  src=\"https:\/\/centricframing.com\/centricphoto\/centric-photo-calculator.html?v=1\" \r\n  width=\"100%\" \r\n  height=\"2400px\" \r\n  frameborder=\"0\" \r\n  scrolling=\"no\" \r\n  style=\"border:none;display:block;overflow:hidden;\">\r\n<\/iframe>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>New here? Getting a price takes about a minute Show me &#9662; Quick start Every option, explained How your photo fits Pick what you&rsquo;re making &mdash; print, mounted, metal, plexi or canvas. Type the image size in inches. Click a paper or surface. The price updates as you click. Like it? Click Add to Quote [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-3886","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/centricframing.com\/centricphoto\/wp-json\/wp\/v2\/pages\/3886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/centricframing.com\/centricphoto\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/centricframing.com\/centricphoto\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/centricframing.com\/centricphoto\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/centricframing.com\/centricphoto\/wp-json\/wp\/v2\/comments?post=3886"}],"version-history":[{"count":34,"href":"https:\/\/centricframing.com\/centricphoto\/wp-json\/wp\/v2\/pages\/3886\/revisions"}],"predecessor-version":[{"id":4348,"href":"https:\/\/centricframing.com\/centricphoto\/wp-json\/wp\/v2\/pages\/3886\/revisions\/4348"}],"wp:attachment":[{"href":"https:\/\/centricframing.com\/centricphoto\/wp-json\/wp\/v2\/media?parent=3886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}