{"id":201,"date":"2026-07-14T19:45:47","date_gmt":"2026-07-14T19:45:47","guid":{"rendered":"https:\/\/squarefootcalc.com\/blog\/?p=201"},"modified":"2026-07-14T19:53:00","modified_gmt":"2026-07-14T19:53:00","slug":"how-to-calculate-square-footage-for-tile","status":"publish","type":"post","link":"https:\/\/squarefootcalc.com\/blog\/how-to-calculate-square-footage-for-tile\/","title":{"rendered":"How to Calculate Square Footage for Tile (Including Waste)"},"content":{"rendered":"\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&#038;family=Source+Serif+4:opsz,wght@8..60,300;8..60,400;8..60,600&#038;display=swap\" rel=\"stylesheet\">\n<style>\n  :root {\n    --ink: #1a1612;\n    --paper: #faf7f2;\n    --cream: #f2ede3;\n    --rust: #b84c2a;\n    --gold: #c9983a;\n    --teal: #2a7c72;\n    --muted: #6b6257;\n    --border: #d9d0c3;\n    --highlight: #fff8e8;\n  }\n\n  * { box-sizing: border-box; margin: 0; padding: 0; }\n\n  .subtitle { font-size: 1.1rem; color: var(--muted); line-height: 1.6; max-width: 640px; font-style: italic; margin-bottom: 8px; }\n  .divider { border: none; border-top: 1px solid var(--border); margin: 48px 0; }\n\n  h2 { font-family: 'Playfair Display', serif; font-size: 1.65rem; font-weight: 700; color: var(--ink); margin: 56px 0 16px; padding-bottom: 8px; border-bottom: 2px solid var(--gold); display: inline-block; }\n  h3 { font-family: 'Playfair Display', serif; font-size: 1.2rem; font-weight: 700; color: var(--ink); margin: 32px 0 12px; }\n\n  p { margin-bottom: 18px; font-size: 1rem; line-height: 1.75; color: var(--ink); }\n  a { color: var(--rust); text-decoration: none; }\n  a:hover { text-decoration: underline; }\n  strong { color: var(--ink); }\n\n  .toc { background: var(--cream); border: 1px solid var(--border); padding: 24px 28px; margin: 36px 0; border-radius: 3px; }\n  .toc-title { font-family: 'Playfair Display', serif; font-size: 0.95rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); margin-bottom: 12px; }\n  .toc ol { padding-left: 20px; font-size: 0.95rem; color: var(--muted); }\n  .toc li { margin-bottom: 5px; }\n  .toc a { color: var(--muted); }\n  .toc a:hover { color: var(--rust); }\n\n  .formula-hero { background: var(--ink); color: white; border-radius: 4px; padding: 32px; margin: 32px 0; text-align: center; }\n  .formula-hero .label { font-family: 'Source Serif 4', serif; font-size: 0.78rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); font-weight: 600; margin-bottom: 14px; }\n  .formula-hero .formula { font-family: 'Playfair Display', serif; font-size: 1.55rem; font-weight: 700; color: white; margin-bottom: 10px; line-height: 1.45; }\n  .formula-hero .note { font-size: 0.9rem; color: rgba(255,255,255,0.6); font-style: italic; }\n\n  .formula-box { background: var(--highlight); border-left: 3px solid var(--gold); padding: 14px 18px; margin: 20px 0; border-radius: 0 3px 3px 0; }\n  .formula-box .formula-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); font-weight: 600; margin-bottom: 6px; }\n  .formula-box .formula-text { font-family: 'Playfair Display', serif; font-size: 1.05rem; color: var(--ink); line-height: 1.6; }\n\n  .steps { margin: 24px 0; }\n  .step { display: flex; gap: 18px; margin-bottom: 24px; align-items: flex-start; }\n  .step-num { min-width: 40px; height: 40px; background: var(--rust); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1rem; flex-shrink: 0; margin-top: 2px; }\n  .step-content { font-size: 0.98rem; color: var(--muted); line-height: 1.65; }\n  .step-content strong { display: block; color: var(--ink); font-size: 1.02rem; margin-bottom: 4px; }\n\n  .example-box { background: #f8faf9; border: 1px solid #c5d9d5; border-radius: 3px; padding: 14px 18px; font-size: 0.95rem; margin: 14px 0; color: var(--muted); line-height: 1.75; }\n  .example-box .ex-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--teal); font-weight: 600; margin-bottom: 6px; }\n  .example-box .ex-answer { font-size: 1.15rem; font-weight: 700; color: var(--teal); margin-top: 6px; display: block; }\n\n  \/* TILE SIZE CARDS *\/\n  .tile-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin: 28px 0; }\n  @media (max-width: 560px) { .tile-grid { grid-template-columns: 1fr 1fr; } }\n  .tile-card { background: white; border: 1px solid var(--border); border-radius: 3px; padding: 18px 12px; text-align: center; }\n  .tile-size { font-family: 'Playfair Display', serif; font-size: 1.1rem; font-weight: 700; color: var(--ink); margin-bottom: 4px; }\n  .tile-sqft { font-size: 1.3rem; font-weight: 700; color: var(--rust); font-family: 'Playfair Display', serif; }\n  .tile-note { font-size: 0.78rem; color: var(--muted); margin-top: 4px; line-height: 1.4; }\n\n  \/* PATTERN CARDS *\/\n  .pattern-card { background: white; border: 1px solid var(--border); border-radius: 4px; padding: 32px; margin: 36px 0; box-shadow: 0 2px 12px rgba(0,0,0,0.04); position: relative; }\n  .pattern-card::before { content: attr(data-label); position: absolute; top: -14px; left: 28px; background: var(--rust); color: white; font-family: 'Playfair Display', serif; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 3px 12px; border-radius: 2px; }\n  .pattern-card.teal::before { background: var(--teal); }\n  .pattern-card.gold::before { background: var(--gold); }\n  .pattern-card.dark::before { background: #3a3530; }\n  .pattern-card h3 { font-size: 1.2rem; margin-top: 6px; margin-bottom: 6px; }\n  .pattern-meta { font-size: 0.9rem; color: var(--muted); margin-bottom: 20px; font-style: italic; }\n  .pattern-body { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; }\n  @media (max-width: 580px) { .pattern-body { grid-template-columns: 1fr; } .pattern-card { padding: 24px; } }\n  .pattern-svg-wrap { display: flex; justify-content: center; align-items: center; background: var(--cream); border-radius: 4px; padding: 16px; min-height: 180px; }\n  .pattern-svg-wrap svg { max-width: 100%; height: auto; display: block; }\n\n  \/* WASTE CALLOUT *\/\n  .callout { background: var(--cream); border: 1px solid var(--border); border-radius: 4px; padding: 24px 28px; margin: 32px 0; }\n  .callout-title { font-family: 'Playfair Display', serif; font-size: 1.05rem; font-weight: 700; color: var(--ink); margin-bottom: 16px; }\n  .waste-row { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }\n  .waste-pct { min-width: 48px; font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.15rem; color: var(--rust); }\n  .waste-bar-wrap { flex: 1; height: 10px; background: var(--border); border-radius: 4px; overflow: hidden; }\n  .waste-bar { height: 100%; background: var(--rust); border-radius: 4px; }\n  .waste-label { color: var(--muted); font-size: 0.9rem; }\n\n  table { width: 100%; border-collapse: collapse; margin: 28px 0; font-size: 0.95rem; }\n  thead tr { background: var(--ink); color: white; }\n  thead th { padding: 12px 16px; text-align: left; font-family: 'Source Serif 4', serif; font-weight: 600; font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; }\n  tbody tr:nth-child(even) { background: var(--cream); }\n  tbody tr:nth-child(odd) { background: white; }\n  tbody td { padding: 11px 16px; border-bottom: 1px solid var(--border); color: var(--muted); }\n  tbody td:first-child { font-weight: 600; color: var(--ink); }\n\n  .tips-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 24px 0; }\n  @media (max-width: 520px) { .tips-grid { grid-template-columns: 1fr; } }\n  .tip-card { background: white; border: 1px solid var(--border); border-radius: 3px; padding: 18px 20px; }\n  .tip-card .tip-icon { font-size: 1.4rem; margin-bottom: 8px; }\n  .tip-card strong { display: block; color: var(--rust); margin-bottom: 4px; font-size: 0.88rem; letter-spacing: 0.05em; text-transform: uppercase; }\n  .tip-card p { margin: 0; color: var(--muted); line-height: 1.5; font-size: 0.93rem; }\n\n  .diagram-wrap { margin: 32px 0; background: var(--cream); border: 1px solid var(--border); border-radius: 4px; padding: 20px; overflow-x: auto; }\n  .diagram-wrap svg { display: block; margin: 0 auto; max-width: 100%; }\n\n  \/* EXAMPLES GRID *\/\n  .examples-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 28px 0; }\n  @media (max-width: 540px) { .examples-grid { grid-template-columns: 1fr; } }\n  .ex-card { background: white; border: 1px solid var(--border); border-radius: 4px; padding: 22px 20px; position: relative; }\n  .ex-card::before { content: attr(data-room); position: absolute; top: -13px; left: 16px; background: var(--gold); color: white; font-family: 'Source Serif 4', serif; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; padding: 3px 10px; border-radius: 2px; }\n  .ex-card h3 { font-size: 1.05rem; margin: 6px 0 10px; color: var(--ink); }\n  .ex-step { display: flex; gap: 10px; align-items: baseline; margin-bottom: 7px; font-size: 0.93rem; color: var(--muted); }\n  .ex-arrow { color: var(--gold); font-weight: 700; flex-shrink: 0; }\n  .ex-result { margin-top: 14px; background: #f8faf9; border: 1px solid #c5d9d5; border-radius: 3px; padding: 10px 14px; font-size: 1rem; font-weight: 700; color: var(--teal); }\n\n  .faq { margin: 24px 0; }\n  .faq-item { border-top: 1px solid var(--border); padding: 20px 0; }\n  .faq-q { font-family: 'Playfair Display', serif; font-size: 1.05rem; font-weight: 700; color: var(--ink); margin-bottom: 8px; }\n  .faq-a { color: var(--muted); font-size: 0.97rem; line-height: 1.7; margin: 0; }\n\n  .cta-box { background: var(--ink); color: white; border-radius: 4px; padding: 28px 32px; margin: 48px 0 24px; text-align: center; }\n  .cta-box p { color: rgba(255,255,255,0.75); margin-bottom: 16px; font-size: 0.97rem; }\n  .cta-btn { display: inline-block; background: var(--rust); color: white; font-family: 'Source Serif 4', serif; font-weight: 600; font-size: 0.9rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 12px 28px; border-radius: 2px; text-decoration: none; }\n  .cta-btn:hover { background: #9e3e22; text-decoration: none; }\n<\/style>\n\n<!-- INTRO -->\n<header>\n  <p class=\"subtitle\">Tile is sold by the piece or box, installed with grout joints, and wasted in different amounts depending on the pattern. Getting the quantity wrong means a second order from a different dye lot \u2014 and a colour mismatch you can&#8217;t fix without retiling. Here&#8217;s how to get it right the first time.<\/p>\n<\/header>\n\n<div class=\"toc\">\n  <div class=\"toc-title\">In this guide<\/div>\n  <ol>\n    <li><a href=\"#formula\">The formula<\/a><\/li>\n    <li><a href=\"#steps\">Step-by-step process<\/a><\/li>\n    <li><a href=\"#tile-sizes\">Tile sizes and sq ft per piece<\/a><\/li>\n    <li><a href=\"#straight\">Straight lay<\/a><\/li>\n    <li><a href=\"#diagonal\">Diagonal lay<\/a><\/li>\n    <li><a href=\"#herringbone\">Herringbone and brick patterns<\/a><\/li>\n    <li><a href=\"#mosaic\">Mosaic tile<\/a><\/li>\n    <li><a href=\"#wall-tile\">Wall tile \u2014 a different calculation<\/a><\/li>\n    <li><a href=\"#examples\">Worked examples by room<\/a><\/li>\n    <li><a href=\"#reference\">Quick reference table<\/a><\/li>\n    <li><a href=\"#mistakes\">Mistakes to avoid<\/a><\/li>\n    <li><a href=\"#faq\">Frequently asked questions<\/a><\/li>\n  <\/ol>\n<\/div>\n\n<p>Tile calculation has two variables that other flooring doesn&#8217;t: the tile&#8217;s own square footage (which depends on its size), and the pattern you&#8217;re laying it in (which determines how much gets wasted). Both affect how much you need to buy. This guide handles both.<\/p>\n\n<p>Have your room dimensions ready? Use <a href=\"https:\/\/squarefootcalc.com\/\">SquareFootCalc.com<\/a> to get your floor area in seconds, then apply the waste factor from this guide.<\/p>\n\n<hr class=\"divider\" id=\"formula\">\n\n<h2>The Formula<\/h2>\n\n<div class=\"formula-hero\">\n  <div class=\"label\">Tile Order Formula<\/div>\n  <div class=\"formula\">Room sq ft \u00d7 Waste factor \u00f7 Sq ft per tile = Number of tiles<br><br>Round UP to nearest whole tile or box<\/div>\n  <div class=\"note\">Three inputs: your room area, the right waste factor for your pattern, and the tile&#8217;s individual square footage.<\/div>\n<\/div>\n\n<!-- SVG: Formula flow diagram -->\n<div class=\"diagram-wrap\" style=\"padding:16px;\">\n  <svg width=\"100%\" viewBox=\"0 0 480 170\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"max-width:480px; display:block; margin:0 auto;\" role=\"img\">\n    <title>Three-step tile calculation flow: room area times waste factor divided by tile sq ft equals tile count<\/title>\n    <defs>\n      <marker id=\"arr-t\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"6\" markerHeight=\"6\" orient=\"auto\">\n        <path d=\"M1 2L8 5L1 8\" fill=\"none\" stroke=\"#c9983a\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n      <\/marker>\n    <\/defs>\n\n    <!-- Box 1: Room area -->\n    <rect x=\"10\" y=\"30\" width=\"100\" height=\"80\" rx=\"4\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"1.5\"\/>\n    <text x=\"60\" y=\"58\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"10\" fill=\"#6b6257\">Room area<\/text>\n    <text x=\"60\" y=\"80\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"20\" font-weight=\"700\" fill=\"#b84c2a\">120<\/text>\n    <text x=\"60\" y=\"98\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"10\" fill=\"#6b6257\">sq ft<\/text>\n    <text x=\"60\" y=\"130\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"9\"  fill=\"#6b6257\">Step 1 \u2014 measure<\/text>\n\n    <!-- \u00d7 waste -->\n    <line x1=\"114\" y1=\"70\" x2=\"148\" y2=\"70\" stroke=\"#c9983a\" stroke-width=\"2\" marker-end=\"url(#arr-t)\"\/>\n    <text x=\"131\" y=\"60\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#8a6820\" font-weight=\"600\">\u00d7 1.10<\/text>\n    <text x=\"131\" y=\"85\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\"  fill=\"#6b6257\">10% waste<\/text>\n\n    <!-- Box 2: Buffered area -->\n    <rect x=\"152\" y=\"30\" width=\"100\" height=\"80\" rx=\"4\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n    <text x=\"202\" y=\"58\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"10\" fill=\"#6b6257\">With buffer<\/text>\n    <text x=\"202\" y=\"80\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"20\" font-weight=\"700\" fill=\"#2a7c72\">132<\/text>\n    <text x=\"202\" y=\"98\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"10\" fill=\"#6b6257\">sq ft<\/text>\n    <text x=\"202\" y=\"130\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"9\"  fill=\"#6b6257\">Step 2 \u2014 add waste<\/text>\n\n    <!-- \u00f7 tile size -->\n    <line x1=\"256\" y1=\"70\" x2=\"290\" y2=\"70\" stroke=\"#c9983a\" stroke-width=\"2\" marker-end=\"url(#arr-t)\"\/>\n    <text x=\"273\" y=\"60\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#8a6820\" font-weight=\"600\">\u00f7 1 sq ft<\/text>\n    <text x=\"273\" y=\"85\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\"  fill=\"#6b6257\">12\u00d712 tile<\/text>\n\n    <!-- Box 3: Result -->\n    <rect x=\"294\" y=\"20\" width=\"176\" height=\"100\" rx=\"4\" fill=\"#1a1612\"\/>\n    <text x=\"382\" y=\"52\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"10\" fill=\"rgba(255,255,255,0.6)\">Tiles needed<\/text>\n    <text x=\"382\" y=\"82\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"28\" font-weight=\"700\" fill=\"#c9983a\">132<\/text>\n    <text x=\"382\" y=\"104\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"10\" fill=\"rgba(255,255,255,0.6)\">tiles \u2014 round UP<\/text>\n    <text x=\"382\" y=\"138\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"9\"  fill=\"#6b6257\">Step 3 \u2014 convert to tiles<\/text>\n  <\/svg>\n<\/div>\n\n<hr class=\"divider\" id=\"steps\">\n\n<h2>Step-by-Step Process<\/h2>\n\n<div class=\"steps\">\n  <div class=\"step\">\n    <div class=\"step-num\">1<\/div>\n    <div class=\"step-content\">\n      <strong>Measure the room area in square feet<\/strong>\n      Length \u00d7 width for a rectangular room. For irregular rooms, split into sections and add. Include every surface that will receive tile \u2014 closets, alcoves, under-vanity areas if tiling before installation.\n      <div class=\"example-box\" style=\"margin-top:10px;\">\n        <div class=\"ex-label\">Example \u2014 bathroom<\/div>\n        9 ft \u00d7 8 ft = <strong>72 sq ft<\/strong>\n      <\/div>\n    <\/div>\n  <\/div>\n  <div class=\"step\">\n    <div class=\"step-num\">2<\/div>\n    <div class=\"step-content\">\n      <strong>Choose the right waste factor for your pattern<\/strong>\n      Straight lay needs 10%. Diagonal needs 15%. Mosaic and complex patterns need 20%. See each pattern section below for full guidance.\n      <div class=\"example-box\" style=\"margin-top:10px;\">\n        <div class=\"ex-label\">Straight lay example<\/div>\n        72 \u00d7 1.10 = <strong>79.2 sq ft needed<\/strong>\n      <\/div>\n    <\/div>\n  <\/div>\n  <div class=\"step\">\n    <div class=\"step-num\">3<\/div>\n    <div class=\"step-content\">\n      <strong>Calculate how many sq ft each tile covers<\/strong>\n      Convert tile dimensions from inches to feet, then multiply. An 18\u00d718 inch tile is 1.5 ft \u00d7 1.5 ft = 2.25 sq ft. See the tile size reference below.\n    <\/div>\n  <\/div>\n  <div class=\"step\">\n    <div class=\"step-num\">4<\/div>\n    <div class=\"step-content\">\n      <strong>Divide buffered area by tile sq ft \u2014 round up<\/strong>\n      <div class=\"example-box\" style=\"margin-top:10px;\">\n        <div class=\"ex-label\">12\u00d712 tiles (1 sq ft each)<\/div>\n        79.2 \u00f7 1 = 79.2 \u2192 <span class=\"ex-answer\">Buy 80 tiles<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n  <div class=\"step\">\n    <div class=\"step-num\">5<\/div>\n    <div class=\"step-content\">\n      <strong>Convert to boxes if sold by the box<\/strong>\n      Divide tile count by the number of tiles per box. Round up to the nearest whole box. Check that all boxes share the same lot or batch number before purchasing.\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"tile-sizes\">\n\n<h2>Tile Sizes and Square Feet Per Piece<\/h2>\n\n<p>Every tile covers a fixed area. Before you can calculate how many tiles to buy, you need to know how many square feet one tile covers. Here are the most common sizes:<\/p>\n\n<div class=\"tile-grid\">\n  <div class=\"tile-card\">\n    <div class=\"tile-size\">6 \u00d7 6 in<\/div>\n    <div class=\"tile-sqft\">0.25 sq ft<\/div>\n    <div class=\"tile-note\">Small bathroom floors, feature walls<\/div>\n  <\/div>\n  <div class=\"tile-card\">\n    <div class=\"tile-size\">12 \u00d7 12 in<\/div>\n    <div class=\"tile-sqft\">1.00 sq ft<\/div>\n    <div class=\"tile-note\">Most common floor tile \u2014 easy to calculate<\/div>\n  <\/div>\n  <div class=\"tile-card\">\n    <div class=\"tile-size\">12 \u00d7 24 in<\/div>\n    <div class=\"tile-sqft\">2.00 sq ft<\/div>\n    <div class=\"tile-note\">Popular rectangular format<\/div>\n  <\/div>\n  <div class=\"tile-card\">\n    <div class=\"tile-size\">16 \u00d7 16 in<\/div>\n    <div class=\"tile-sqft\">1.78 sq ft<\/div>\n    <div class=\"tile-note\">Medium floor tile<\/div>\n  <\/div>\n  <div class=\"tile-card\">\n    <div class=\"tile-size\">18 \u00d7 18 in<\/div>\n    <div class=\"tile-sqft\">2.25 sq ft<\/div>\n    <div class=\"tile-note\">Large floor tile, living rooms<\/div>\n  <\/div>\n  <div class=\"tile-card\">\n    <div class=\"tile-size\">24 \u00d7 24 in<\/div>\n    <div class=\"tile-sqft\">4.00 sq ft<\/div>\n    <div class=\"tile-note\">Large format \u2014 fewer grout lines<\/div>\n  <\/div>\n<\/div>\n\n<div class=\"formula-box\">\n  <div class=\"formula-label\">How to calculate sq ft for any tile size<\/div>\n  <div class=\"formula-text\">Width (in) \u00f7 12 \u00d7 Length (in) \u00f7 12 = sq ft per tile<br>Example: 18 in \u00f7 12 = 1.5 ft \u00b7 1.5 \u00d7 1.5 = 2.25 sq ft per tile<\/div>\n<\/div>\n\n<!-- SVG: Tile size comparison to scale -->\n<div class=\"diagram-wrap\" style=\"padding:16px;\">\n  <svg width=\"100%\" viewBox=\"0 0 480 200\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"max-width:480px; display:block; margin:0 auto;\" role=\"img\">\n    <title>Common tile sizes drawn to scale showing relative size from 6&#215;6 to 24&#215;24 inches<\/title>\n\n    <text x=\"240\" y=\"16\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\" font-weight=\"600\">Tile sizes drawn to scale \u2014 1 px = 1 inch<\/text>\n\n    <!-- 6\u00d76 tile at (20, 30) -->\n    <rect x=\"20\" y=\"30\" width=\"36\" height=\"36\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n    <text x=\"38\" y=\"52\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"8\" fill=\"#2a7c72\" font-weight=\"600\">6\u00d76<\/text>\n    <text x=\"38\" y=\"80\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"8\" fill=\"#6b6257\">0.25 sq ft<\/text>\n\n    <!-- 12\u00d712 at (70, 30) -->\n    <rect x=\"70\" y=\"30\" width=\"72\" height=\"72\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"1.5\"\/>\n    <text x=\"106\" y=\"68\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"11\" font-weight=\"700\" fill=\"#b84c2a\">12\u00d712<\/text>\n    <text x=\"106\" y=\"116\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">1.00 sq ft<\/text>\n\n    <!-- 16\u00d716 at (155, 30) -->\n    <rect x=\"155\" y=\"30\" width=\"96\" height=\"96\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n    <text x=\"203\" y=\"80\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#8a6820\">16\u00d716<\/text>\n    <text x=\"203\" y=\"140\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">1.78 sq ft<\/text>\n\n    <!-- 18\u00d718 at (263, 30) -->\n    <rect x=\"263\" y=\"30\" width=\"108\" height=\"108\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n    <text x=\"317\" y=\"86\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#2a7c72\">18\u00d718<\/text>\n    <text x=\"317\" y=\"152\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">2.25 sq ft<\/text>\n\n    <!-- 24\u00d724 \u2014 show partial with \"...\" -->\n    <rect x=\"383\" y=\"30\" width=\"90\" height=\"144\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"5,3\"\/>\n    <text x=\"428\" y=\"90\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"11\" font-weight=\"700\" fill=\"#b84c2a\">24\u00d724<\/text>\n    <text x=\"428\" y=\"107\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">(extends<\/text>\n    <text x=\"428\" y=\"120\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">beyond frame)<\/text>\n    <text x=\"428\" y=\"165\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">4.00 sq ft<\/text>\n\n    <!-- Baseline -->\n    <line x1=\"20\" y1=\"175\" x2=\"460\" y2=\"175\" stroke=\"#d9d0c3\" stroke-width=\"1\" stroke-dasharray=\"4,3\"\/>\n  <\/svg>\n<\/div>\n\n<hr class=\"divider\" id=\"straight\">\n\n<!-- STRAIGHT LAY -->\n<div class=\"pattern-card\" data-label=\"Pattern 01\">\n  <h3>Straight Lay (Grid Pattern)<\/h3>\n  <div class=\"pattern-meta\">The most common layout \u2014 tiles aligned in rows and columns, all joints running straight across the room<\/div>\n  <div class=\"pattern-body\">\n    <div class=\"pattern-svg-wrap\">\n      <svg viewBox=\"0 0 220 220\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"220\" height=\"220\">\n        <!-- Full tiles -->\n        <rect x=\"10\"  y=\"10\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"58\"  y=\"10\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"106\" y=\"10\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"10\"  y=\"58\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"58\"  y=\"58\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"106\" y=\"58\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"10\"  y=\"106\" width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"58\"  y=\"106\" width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"106\" y=\"106\" width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <!-- Cut edge tiles -->\n        <rect x=\"154\" y=\"10\"  width=\"26\" height=\"44\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <rect x=\"154\" y=\"58\"  width=\"26\" height=\"44\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <rect x=\"154\" y=\"106\" width=\"26\" height=\"44\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <rect x=\"10\"  y=\"154\" width=\"44\" height=\"26\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <rect x=\"58\"  y=\"154\" width=\"44\" height=\"26\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <rect x=\"106\" y=\"154\" width=\"44\" height=\"26\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <rect x=\"154\" y=\"154\" width=\"26\" height=\"26\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <!-- Labels -->\n        <text x=\"80\"  y=\"90\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#2a7c72\" font-weight=\"600\">Full tiles \u2713<\/text>\n        <text x=\"167\" y=\"184\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"8\" fill=\"#8c3318\">cuts \u2717<\/text>\n        <!-- Waste badge -->\n        <rect x=\"10\" y=\"192\" width=\"170\" height=\"22\" rx=\"3\" fill=\"#1a1612\"\/>\n        <text x=\"95\" y=\"207\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"11\" font-weight=\"700\" fill=\"#c9983a\">Add 10% waste<\/text>\n      <\/svg>\n    <\/div>\n    <div>\n      <div class=\"formula-box\">\n        <div class=\"formula-label\">Waste factor<\/div>\n        <div class=\"formula-text\">10% for simple rectangular rooms<br>12% if many doorways, obstacles, or outlets<\/div>\n      <\/div>\n      <p style=\"font-size:0.95rem; color:var(--muted); margin-bottom:14px;\">Straight lay is the most material-efficient pattern. Waste comes from edge cuts at walls and around obstacles like toilets and vanities. In a clean rectangular bathroom, 10% is plenty. Add 12% if there are many fixtures to cut around.<\/p>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Bathroom \u2014 72 sq ft, 12\u00d712 tiles<\/div>\n        72 \u00d7 1.10 = 79.2 sq ft<br>\n        Each tile = 1 sq ft<br>\n        <span class=\"ex-answer\">\u2192 Buy 80 tiles<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"diagonal\">\n\n<!-- DIAGONAL LAY -->\n<div class=\"pattern-card teal\" data-label=\"Pattern 02\">\n  <h3>Diagonal Lay (45\u00b0 Pattern)<\/h3>\n  <div class=\"pattern-meta\">Tiles rotated 45 degrees \u2014 creates a dynamic visual but wastes significantly more material at every corner and wall<\/div>\n  <div class=\"pattern-body\">\n    <div class=\"pattern-svg-wrap\">\n      <svg viewBox=\"0 0 220 220\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"220\" height=\"220\">\n        <defs>\n          <pattern id=\"diag-tile\" width=\"62\" height=\"62\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45 110 110)\">\n            <rect width=\"62\" height=\"62\" fill=\"#e8f2f0\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n          <\/pattern>\n          <clipPath id=\"room-clip\">\n            <rect x=\"10\" y=\"10\" width=\"170\" height=\"170\"\/>\n          <\/clipPath>\n        <\/defs>\n        <!-- Clipped diagonal tile pattern -->\n        <rect x=\"10\" y=\"10\" width=\"170\" height=\"170\" fill=\"url(#diag-tile)\" clip-path=\"url(#room-clip)\"\/>\n        <!-- Room border -->\n        <rect x=\"10\" y=\"10\" width=\"170\" height=\"170\" fill=\"none\" stroke=\"#2a7c72\" stroke-width=\"2\"\/>\n        <!-- Corner waste highlights -->\n        <polygon points=\"10,10 50,10 10,50\" fill=\"#fdf3ef\" opacity=\"0.8\"\/>\n        <polygon points=\"180,10 180,50 140,10\" fill=\"#fdf3ef\" opacity=\"0.8\"\/>\n        <polygon points=\"10,180 50,180 10,140\" fill=\"#fdf3ef\" opacity=\"0.8\"\/>\n        <polygon points=\"180,180 140,180 180,140\" fill=\"#fdf3ef\" opacity=\"0.8\"\/>\n        <!-- Waste badge -->\n        <rect x=\"10\" y=\"192\" width=\"170\" height=\"22\" rx=\"3\" fill=\"#1a1612\"\/>\n        <text x=\"95\" y=\"207\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"11\" font-weight=\"700\" fill=\"#c9983a\">Add 15% waste<\/text>\n        <!-- Corner label -->\n        <text x=\"95\" y=\"100\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#2a7c72\" font-weight=\"600\">Corner triangles<\/text>\n        <text x=\"95\" y=\"114\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#2a7c72\">all wasted<\/text>\n      <\/svg>\n    <\/div>\n    <div>\n      <div class=\"formula-box\" style=\"border-left-color:var(--teal);\">\n        <div class=\"formula-label\">Waste factor<\/div>\n        <div class=\"formula-text\">15% minimum for any diagonal layout<br>The rotated tile creates large triangular offcuts at every wall and corner that cannot be reused<\/div>\n      <\/div>\n      <p style=\"font-size:0.95rem; color:var(--muted); margin-bottom:14px;\">Every wall edge requires a diagonal cut, leaving a triangular offcut that&#8217;s too small to use elsewhere. This happens at all four walls, every doorway, and every obstacle. 15% is the minimum \u2014 consider 17\u201318% for rooms with many corners or obstacles.<\/p>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Same bathroom \u2014 72 sq ft, diagonal 12\u00d712 tiles<\/div>\n        72 \u00d7 1.15 = 82.8 sq ft<br>\n        Each tile = 1 sq ft<br>\n        <span class=\"ex-answer\">\u2192 Buy 83 tiles (3 more than straight lay)<\/span>\n      <\/div>\n      <div class=\"formula-box\" style=\"border-left-color:var(--rust); margin-top:14px;\">\n        <div class=\"formula-label\">Key point<\/div>\n        <div class=\"formula-text\">The same room needs 3 extra tiles just from changing the layout pattern. On a large floor, this difference adds up to a full box or more.<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"herringbone\">\n\n<!-- HERRINGBONE -->\n<div class=\"pattern-card gold\" data-label=\"Pattern 03\">\n  <h3>Herringbone and Brick Patterns<\/h3>\n  <div class=\"pattern-meta\">Rectangular tiles laid in a staggered V-shape (herringbone) or offset rows (brick) \u2014 visually striking but cut-intensive<\/div>\n  <div class=\"pattern-body\">\n    <div class=\"pattern-svg-wrap\">\n      <svg viewBox=\"0 0 220 220\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"220\" height=\"220\">\n        <!-- Herringbone pattern using rectangles -->\n        <!-- Row 1 \u2014 horizontal group -->\n        <rect x=\"10\"  y=\"10\"  width=\"44\" height=\"22\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"10\"  y=\"36\"  width=\"22\" height=\"44\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"58\"  y=\"10\"  width=\"44\" height=\"22\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"36\"  y=\"36\"  width=\"44\" height=\"22\" fill=\"#f5ede0\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"80\"  y=\"10\"  width=\"22\" height=\"44\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"106\" y=\"10\"  width=\"44\" height=\"22\" fill=\"#f5ede0\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"106\" y=\"36\"  width=\"22\" height=\"44\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"132\" y=\"10\"  width=\"22\" height=\"44\" fill=\"#f5ede0\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <!-- Row 2 -->\n        <rect x=\"10\"  y=\"84\"  width=\"44\" height=\"22\" fill=\"#f5ede0\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"58\"  y=\"62\"  width=\"22\" height=\"44\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"58\"  y=\"84\"  width=\"44\" height=\"22\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"84\"  y=\"62\"  width=\"44\" height=\"22\" fill=\"#f5ede0\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"128\" y=\"62\"  width=\"22\" height=\"44\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"128\" y=\"84\"  width=\"44\" height=\"22\" fill=\"#f5ede0\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <!-- Row 3 -->\n        <rect x=\"10\"  y=\"110\" width=\"22\" height=\"44\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"36\"  y=\"110\" width=\"44\" height=\"22\" fill=\"#f5ede0\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"36\"  y=\"132\" width=\"22\" height=\"44\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"60\"  y=\"132\" width=\"44\" height=\"22\" fill=\"#f5ede0\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"106\" y=\"110\" width=\"44\" height=\"22\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"106\" y=\"132\" width=\"22\" height=\"44\" fill=\"#f5ede0\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <rect x=\"130\" y=\"110\" width=\"22\" height=\"44\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <!-- Room border -->\n        <rect x=\"10\" y=\"10\" width=\"162\" height=\"162\" fill=\"none\" stroke=\"#b84c2a\" stroke-width=\"2\"\/>\n        <!-- Waste badge -->\n        <rect x=\"10\" y=\"184\" width=\"162\" height=\"22\" rx=\"3\" fill=\"#1a1612\"\/>\n        <text x=\"91\" y=\"199\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"11\" font-weight=\"700\" fill=\"#c9983a\">Add 15% waste<\/text>\n      <\/svg>\n    <\/div>\n    <div>\n      <div class=\"formula-box\" style=\"border-left-color:var(--gold);\">\n        <div class=\"formula-label\">Waste factor<\/div>\n        <div class=\"formula-text\">Herringbone (true) \u2192 15%<br>Brick \/ running bond offset \u2192 10\u201312%<br>Chevron (angled herringbone) \u2192 15\u201320%<\/div>\n      <\/div>\n      <p style=\"font-size:0.95rem; color:var(--muted); margin-bottom:14px;\">True herringbone requires tiles to be cut at 45\u00b0 at the edges of every row \u2014 generating significant waste. Brick patterns (simple offset rows) are more efficient, generating waste only at row ends. Chevron is cut-intensive and can easily need 20%.<\/p>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Living room \u2014 240 sq ft, herringbone, rectangular tiles<\/div>\n        240 \u00d7 1.15 = 276 sq ft<br>\n        Each 12\u00d724 tile = 2 sq ft<br>\n        276 \u00f7 2 = 138 tiles<br>\n        <span class=\"ex-answer\">\u2192 Buy 138 tiles (round up to full box)<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"mosaic\">\n\n<!-- MOSAIC -->\n<div class=\"pattern-card dark\" data-label=\"Pattern 04\">\n  <h3>Mosaic Tile<\/h3>\n  <div class=\"pattern-meta\">Small tiles \u2014 typically 1\u00d71 to 4\u00d74 inches \u2014 often sold on mesh-backed sheets; complex patterns need the highest waste buffer<\/div>\n  <div class=\"pattern-body\">\n    <div class=\"pattern-svg-wrap\">\n      <svg viewBox=\"0 0 220 220\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"220\" height=\"220\">\n        <!-- Mosaic grid \u2014 small 10\u00d710 px tiles -->\n        <!-- Row 1 -->\n        <rect x=\"10\"  y=\"10\"  width=\"10\" height=\"10\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"0.5\"\/>\n        <rect x=\"22\"  y=\"10\"  width=\"10\" height=\"10\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"0.5\"\/>\n        <rect x=\"34\"  y=\"10\"  width=\"10\" height=\"10\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"0.5\"\/>\n        <rect x=\"46\"  y=\"10\"  width=\"10\" height=\"10\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"0.5\"\/>\n        <rect x=\"58\"  y=\"10\"  width=\"10\" height=\"10\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"0.5\"\/>\n        <rect x=\"70\"  y=\"10\"  width=\"10\" height=\"10\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"0.5\"\/>\n        <rect x=\"82\"  y=\"10\"  width=\"10\" height=\"10\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"0.5\"\/>\n        <rect x=\"94\"  y=\"10\"  width=\"10\" height=\"10\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"0.5\"\/>\n        <rect x=\"106\" y=\"10\"  width=\"10\" height=\"10\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"0.5\"\/>\n        <rect x=\"118\" y=\"10\"  width=\"10\" height=\"10\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"0.5\"\/>\n        <rect x=\"130\" y=\"10\"  width=\"10\" height=\"10\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"0.5\"\/>\n        <rect x=\"142\" y=\"10\"  width=\"10\" height=\"10\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"0.5\"\/>\n        <!-- 10 more rows of the same repeating pattern -->\n        <rect x=\"10\"  y=\"22\"  width=\"10\" height=\"10\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"0.5\"\/>\n        <rect x=\"22\"  y=\"22\"  width=\"10\" height=\"10\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"0.5\"\/>\n        <rect x=\"34\"  y=\"22\"  width=\"10\" height=\"10\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"0.5\"\/>\n        <rect x=\"46\"  y=\"22\"  width=\"10\" height=\"10\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"0.5\"\/>\n        <rect x=\"58\"  y=\"22\"  width=\"10\" height=\"10\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"0.5\"\/>\n        <rect x=\"70\"  y=\"22\"  width=\"10\" height=\"10\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"0.5\"\/>\n        <rect x=\"82\"  y=\"22\"  width=\"10\" height=\"10\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"0.5\"\/>\n        <rect x=\"94\"  y=\"22\"  width=\"10\" height=\"10\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"0.5\"\/>\n        <rect x=\"106\" y=\"22\"  width=\"10\" height=\"10\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"0.5\"\/>\n        <rect x=\"118\" y=\"22\"  width=\"10\" height=\"10\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"0.5\"\/>\n        <rect x=\"130\" y=\"22\"  width=\"10\" height=\"10\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"0.5\"\/>\n        <rect x=\"142\" y=\"22\"  width=\"10\" height=\"10\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"0.5\"\/>\n        <!-- Room border -->\n        <rect x=\"10\" y=\"10\" width=\"143\" height=\"143\" fill=\"none\" stroke=\"#3a3530\" stroke-width=\"2\"\/>\n        <!-- Mesh sheet outline -->\n        <rect x=\"10\" y=\"10\" width=\"60\" height=\"60\" fill=\"none\" stroke=\"#c9983a\" stroke-width=\"2\" stroke-dasharray=\"6,3\"\/>\n        <text x=\"40\" y=\"78\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"8\" fill=\"#8a6820\">1 sheet<\/text>\n        <!-- Waste badge -->\n        <rect x=\"10\" y=\"168\" width=\"143\" height=\"22\" rx=\"3\" fill=\"#1a1612\"\/>\n        <text x=\"81\" y=\"183\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"11\" font-weight=\"700\" fill=\"#c9983a\">Add 20% waste<\/text>\n      <\/svg>\n    <\/div>\n    <div>\n      <div class=\"formula-box\" style=\"border-left-color:#3a3530;\">\n        <div class=\"formula-label\">Waste factor<\/div>\n        <div class=\"formula-text\">Simple mosaic (solid colour) \u2192 15%<br>Patterned mosaic \u2192 20%<br>Intricate or custom mosaic \u2192 25%<\/div>\n      <\/div>\n      <p style=\"font-size:0.95rem; color:var(--muted); margin-bottom:14px;\">Mosaic tiles come on mesh-backed sheets \u2014 typically 12\u00d712 inch sheets. Calculate based on sheet area, not individual tile count. Partial sheets at edges are often too small to reuse, generating significant waste. Pattern matching between sheets adds further waste.<\/p>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Shower wall \u2014 45 sq ft, 12\u00d712 in mosaic sheets<\/div>\n        45 \u00d7 1.20 = 54 sq ft<br>\n        Each sheet = 1 sq ft<br>\n        <span class=\"ex-answer\">\u2192 Buy 54 sheets<\/span>\n      <\/div>\n      <div class=\"formula-box\" style=\"border-left-color:#3a3530; margin-top:14px;\">\n        <div class=\"formula-label\">Ordering tip<\/div>\n        <div class=\"formula-text\">Always buy mosaic from one production run. Colour variation between runs is especially noticeable on small tiles where many pieces sit side by side.<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"wall-tile\">\n\n<h2>Wall Tile \u2014 A Different Calculation<\/h2>\n\n<p>Wall tile uses a different starting measurement than floor tile. Instead of floor area (length \u00d7 width), you need wall area (width \u00d7 height for each wall surface being tiled).<\/p>\n\n<div class=\"formula-box\">\n  <div class=\"formula-label\">Wall tile area formula<\/div>\n  <div class=\"formula-text\">Each wall: Width \u00d7 Height = sq ft<br>Subtract openings: window (~15 sq ft), mirror (~10 sq ft), outlet (~0.5 sq ft)<br>Add all wall areas together \u2192 apply waste factor<\/div>\n<\/div>\n\n<!-- SVG: Wall tile diagram showing wall elevations -->\n<div class=\"diagram-wrap\" style=\"padding:16px;\">\n  <svg width=\"100%\" viewBox=\"0 0 480 240\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"max-width:480px; display:block; margin:0 auto;\" role=\"img\">\n    <title>Bathroom wall tile diagram showing four walls with heights and openings labeled<\/title>\n    <defs>\n      <pattern id=\"wt\" width=\"20\" height=\"20\" patternUnits=\"userSpaceOnUse\">\n        <rect width=\"20\" height=\"20\" fill=\"#f0f8f5\" stroke=\"#c5d9d5\" stroke-width=\"0.8\"\/>\n      <\/pattern>\n    <\/defs>\n\n    <!-- Wall A (back) -->\n    <rect x=\"20\"  y=\"20\"  width=\"120\" height=\"100\" fill=\"url(#wt)\"\/>\n    <rect x=\"20\"  y=\"20\"  width=\"120\" height=\"100\" fill=\"none\" stroke=\"#2a7c72\" stroke-width=\"2\"\/>\n    <!-- Mirror cutout -->\n    <rect x=\"45\"  y=\"35\"  width=\"50\"  height=\"35\"  fill=\"white\" stroke=\"#d9d0c3\" stroke-width=\"1\"\/>\n    <text x=\"70\"  y=\"57\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"8\" fill=\"#6b6257\">mirror<\/text>\n    <text x=\"80\"  y=\"95\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"10\" font-weight=\"700\" fill=\"#2a7c72\">Wall A<\/text>\n    <text x=\"80\"  y=\"109\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">8\u00d78 \u2212 10 = 54 sq ft<\/text>\n    <text x=\"80\"  y=\"136\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">Back wall<\/text>\n\n    <!-- Wall B (side with window) -->\n    <rect x=\"160\" y=\"20\"  width=\"80\"  height=\"100\" fill=\"url(#wt)\"\/>\n    <rect x=\"160\" y=\"20\"  width=\"80\"  height=\"100\" fill=\"none\" stroke=\"#2a7c72\" stroke-width=\"2\"\/>\n    <!-- Window cutout -->\n    <rect x=\"172\" y=\"32\"  width=\"40\"  height=\"40\"  fill=\"#d4ecf7\" stroke=\"#d9d0c3\" stroke-width=\"1\"\/>\n    <text x=\"192\" y=\"56\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"8\" fill=\"#6b6257\">window<\/text>\n    <text x=\"200\" y=\"95\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"10\" font-weight=\"700\" fill=\"#2a7c72\">Wall B<\/text>\n    <text x=\"200\" y=\"109\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">6\u00d78 \u2212 15 = 33 sq ft<\/text>\n    <text x=\"200\" y=\"136\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">Side wall<\/text>\n\n    <!-- Wall C (shower) -->\n    <rect x=\"260\" y=\"20\"  width=\"80\"  height=\"100\" fill=\"url(#wt)\"\/>\n    <rect x=\"260\" y=\"20\"  width=\"80\"  height=\"100\" fill=\"none\" stroke=\"#2a7c72\" stroke-width=\"2\"\/>\n    <text x=\"300\" y=\"78\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"10\" font-weight=\"700\" fill=\"#2a7c72\">Wall C<\/text>\n    <text x=\"300\" y=\"95\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">6\u00d78 = 48 sq ft<\/text>\n    <text x=\"300\" y=\"136\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">Shower wall<\/text>\n\n    <!-- Wall D (door wall) -->\n    <rect x=\"360\" y=\"20\"  width=\"100\" height=\"100\" fill=\"url(#wt)\"\/>\n    <rect x=\"360\" y=\"20\"  width=\"100\" height=\"100\" fill=\"none\" stroke=\"#2a7c72\" stroke-width=\"2\"\/>\n    <!-- Door cutout -->\n    <rect x=\"370\" y=\"45\"  width=\"30\"  height=\"75\"  fill=\"white\" stroke=\"#d9d0c3\" stroke-width=\"1\"\/>\n    <text x=\"385\" y=\"85\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"7\" fill=\"#6b6257\">door<\/text>\n    <text x=\"420\" y=\"95\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"10\" font-weight=\"700\" fill=\"#2a7c72\">Wall D<\/text>\n    <text x=\"420\" y=\"109\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">8\u00d78 \u2212 20 = 44 sq ft<\/text>\n    <text x=\"420\" y=\"136\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">Door wall<\/text>\n\n    <!-- Total calculation -->\n    <rect x=\"20\" y=\"155\" width=\"440\" height=\"70\" rx=\"4\" fill=\"#1a1612\"\/>\n    <text x=\"240\" y=\"177\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"rgba(255,255,255,0.65)\">54 + 33 + 48 + 44 = 179 sq ft total wall area<\/text>\n    <text x=\"240\" y=\"197\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"rgba(255,255,255,0.65)\">179 \u00d7 1.10 (straight lay) = 196.9 sq ft<\/text>\n    <text x=\"240\" y=\"217\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"14\" font-weight=\"700\" fill=\"#c9983a\">\u2192 Buy tile for 197 sq ft of wall<\/text>\n  <\/svg>\n<\/div>\n\n<div class=\"callout\">\n  <div class=\"callout-title\">Floor tile and wall tile are always separate orders<\/div>\n  <p>Floor tile and wall tile are usually different products \u2014 different sizes, finishes, and slip ratings. Always calculate and order them separately, even if you&#8217;re using the same tile on floor and walls. Mixing the two calculations is a common source of ordering errors.<\/p>\n<\/div>\n\n<hr class=\"divider\" id=\"examples\">\n\n<h2>Worked Examples by Room<\/h2>\n\n<div class=\"examples-grid\">\n  <div class=\"ex-card\" data-room=\"Bathroom Floor\">\n    <h3>5 \u00d7 8 ft bathroom, 12\u00d712 tiles, straight lay<\/h3>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> Area: 5 \u00d7 8 = 40 sq ft<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> With 10% waste: 40 \u00d7 1.10 = 44 sq ft<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> Each tile = 1 sq ft<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> 44 \u00f7 1 = 44 tiles<\/div>\n    <div class=\"ex-result\">Buy 44 tiles<\/div>\n  <\/div>\n  <div class=\"ex-card\" data-room=\"Kitchen Floor\">\n    <h3>12 \u00d7 10 ft kitchen, 18\u00d718 tiles, straight lay<\/h3>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> Area: 12 \u00d7 10 = 120 sq ft<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> With 12% waste (many obstacles): 120 \u00d7 1.12 = 134.4<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> Each 18\u00d718 tile = 2.25 sq ft<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> 134.4 \u00f7 2.25 = 59.7 tiles<\/div>\n    <div class=\"ex-result\">Buy 60 tiles<\/div>\n  <\/div>\n  <div class=\"ex-card\" data-room=\"Living Room Floor\">\n    <h3>16 \u00d7 14 ft living room, 24\u00d724 tiles, diagonal<\/h3>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> Area: 16 \u00d7 14 = 224 sq ft<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> With 15% waste (diagonal): 224 \u00d7 1.15 = 257.6<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> Each 24\u00d724 tile = 4 sq ft<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> 257.6 \u00f7 4 = 64.4 tiles<\/div>\n    <div class=\"ex-result\">Buy 65 tiles<\/div>\n  <\/div>\n  <div class=\"ex-card\" data-room=\"Shower Walls\">\n    <h3>3-wall shower, 3\u00d73 ft each wall, 8 ft tall, mosaic<\/h3>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> 3 walls \u00d7 (3 \u00d7 8) = 72 sq ft<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> With 20% waste (mosaic): 72 \u00d7 1.20 = 86.4<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> Sheets = 1 sq ft each<\/div>\n    <div class=\"ex-step\"><span class=\"ex-arrow\">\u2192<\/span> 86.4 \u00f7 1 = 86.4 sheets<\/div>\n    <div class=\"ex-result\">Buy 87 sheets<\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"reference\">\n\n<h2>Quick Reference Table<\/h2>\n\n<table>\n  <thead>\n    <tr>\n      <th>Tile Size<\/th>\n      <th>Sq Ft Per Tile<\/th>\n      <th>Straight Lay Waste<\/th>\n      <th>Diagonal Waste<\/th>\n      <th>Tiles per 100 sq ft (straight)<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td>6 \u00d7 6 in<\/td><td>0.25 sq ft<\/td><td>10%<\/td><td>15%<\/td><td>440 tiles<\/td><\/tr>\n    <tr><td>12 \u00d7 12 in<\/td><td>1.00 sq ft<\/td><td>10%<\/td><td>15%<\/td><td>110 tiles<\/td><\/tr>\n    <tr><td>12 \u00d7 24 in<\/td><td>2.00 sq ft<\/td><td>10%<\/td><td>15%<\/td><td>55 tiles<\/td><\/tr>\n    <tr><td>16 \u00d7 16 in<\/td><td>1.78 sq ft<\/td><td>10%<\/td><td>15%<\/td><td>62 tiles<\/td><\/tr>\n    <tr><td>18 \u00d7 18 in<\/td><td>2.25 sq ft<\/td><td>10%<\/td><td>15%<\/td><td>49 tiles<\/td><\/tr>\n    <tr><td>24 \u00d7 24 in<\/td><td>4.00 sq ft<\/td><td>10%<\/td><td>15%<\/td><td>28 tiles<\/td><\/tr>\n    <tr><td>Mosaic sheet (12\u00d712)<\/td><td>1.00 sq ft<\/td><td>15\u201320%<\/td><td>N\/A<\/td><td>115\u2013120 sheets<\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<hr class=\"divider\" id=\"mistakes\">\n\n<h2>Mistakes to Avoid<\/h2>\n\n<div class=\"tips-grid\">\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udcd0<\/div>\n    <strong>Using 10% for diagonal patterns<\/strong>\n    <p>10% is only for straight lay. Diagonal patterns always need 15% minimum. Using 10% on a diagonal job will leave you short \u2014 every time, on every job, without exception.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83e\uddf1<\/div>\n    <strong>Mixing floor and wall tile calculations<\/strong>\n    <p>Floor tile uses floor area. Wall tile uses wall area. They&#8217;re different numbers, usually different products, and always separate orders. Never combine them into one calculation.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udd22<\/div>\n    <strong>Rounding tile count down<\/strong>\n    <p>If you need 59.7 tiles, buy 60. You cannot buy 0.7 of a tile. Always round up to the nearest whole tile \u2014 then up again to the nearest whole box if sold in boxes.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83c\udfa8<\/div>\n    <strong>Not checking batch numbers<\/strong>\n    <p>Every box of tile must have the same batch or lot number. Colour variation between production runs is subtle in the store and obvious on the floor. Check every box before accepting delivery.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udce6<\/div>\n    <strong>Not keeping spare tiles<\/strong>\n    <p>Buy at least half a box extra and store it. Tiles get chipped, cracked, or stained over time. Replacing a single tile six months later is only possible if you have matching material from the same batch.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83e\ude9f<\/div>\n    <strong>Forgetting to subtract openings on wall tile<\/strong>\n    <p>Wall tile calculations must subtract windows, mirrors, medicine cabinets, and doors. Forgetting to subtract a window on a bathroom wall can add 15\u201320 sq ft of tile you don&#8217;t need.<\/p>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"faq\">\n\n<h2>Frequently Asked Questions<\/h2>\n\n<div class=\"faq\">\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">How much tile do I need for a 12 \u00d7 12 room?<\/div>\n    <p class=\"faq-a\">A 12 \u00d7 12 room is 144 sq ft. With 10% waste (straight lay): 144 \u00d7 1.10 = 158.4 sq ft. For 12\u00d712 tiles (1 sq ft each), buy 159 tiles. For 18\u00d718 tiles (2.25 sq ft each): 158.4 \u00f7 2.25 = 70.4 \u2192 buy 71 tiles.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">How do I calculate how many tiles I need per square foot?<\/div>\n    <p class=\"faq-a\">Divide 1 by the tile&#8217;s square footage. For a 12\u00d712 tile (1 sq ft): 1 \u00f7 1 = 1 tile per sq ft. For an 18\u00d718 tile (2.25 sq ft): 1 \u00f7 2.25 = 0.44 tiles per sq ft. Multiply by your buffered room area to get the total tile count.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">How much extra tile should I buy for a diagonal pattern?<\/div>\n    <p class=\"faq-a\">Add 15% minimum for any diagonal layout. The rotated angle creates large triangular offcuts at every wall and corner that cannot be reused. For rooms with many corners or obstacles, consider 17\u201318%. Never use 10% for a diagonal installation \u2014 you will run short.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">How do I calculate wall tile square footage?<\/div>\n    <p class=\"faq-a\">Measure each wall&#8217;s width \u00d7 height in feet to get that wall&#8217;s area. Add all walls together. Subtract openings \u2014 roughly 20 sq ft for a door, 15 sq ft for a standard window, 10 sq ft for a mirror. Multiply the result by your waste factor (10% for straight lay, 20% for mosaic). That&#8217;s your wall tile order quantity.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">What is a grout joint and does it affect my tile calculation?<\/div>\n    <p class=\"faq-a\">A grout joint is the gap between tiles, typically 1\/16 inch to 1\/2 inch wide depending on tile type and design preference. Grout joints slightly reduce the number of tiles needed (the joints take up space). In practice, this difference is small enough that the waste factor more than covers it \u2014 you don&#8217;t need to adjust your tile count calculation for grout joint width.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">Should I order floor tile and wall tile separately?<\/div>\n    <p class=\"faq-a\">Always. Floor tile and wall tile are typically different products with different sizes, finishes, and even slip ratings. Even if you&#8217;re using the same tile on floor and walls, the areas are calculated differently (floor area vs wall area) and should be ordered separately to avoid confusion at the point of sale.<\/p>\n  <\/div>\n<\/div>\n\n<div class=\"cta-box\">\n  <p>Have your room dimensions? Calculate your tile square footage instantly.<\/p>\n  <a href=\"https:\/\/squarefootcalc.com\/\" class=\"cta-btn\">Calculate Square Footage Free \u2192<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Tile is sold by the piece or box, installed with grout joints, and wasted in different amounts depending on the pattern. Getting the quantity wrong means a second order from a different dye lot \u2014 and a colour mismatch you can&#8217;t fix without retiling. Here&#8217;s how to get it right the first time. In this&#8230;<\/p>\n","protected":false},"author":1,"featured_media":203,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-201","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"taxonomy_info":{"category":[{"value":1,"label":"Blog"}]},"featured_image_src_large":["https:\/\/squarefootcalc.com\/blog\/wp-content\/uploads\/2026\/07\/How-to-Calculate-Square-Footage-for-Tile-1024x683.webp",1024,683,true],"author_info":{"display_name":"Luke","author_link":"https:\/\/squarefootcalc.com\/blog\/author\/aziz315\/"},"comment_info":0,"category_info":[{"term_id":1,"name":"Blog","slug":"blog","term_group":0,"term_taxonomy_id":1,"taxonomy":"category","description":"","parent":0,"count":30,"filter":"raw","cat_ID":1,"category_count":30,"category_description":"","cat_name":"Blog","category_nicename":"blog","category_parent":0}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/posts\/201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/comments?post=201"}],"version-history":[{"count":1,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/posts\/201\/revisions"}],"predecessor-version":[{"id":202,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/posts\/201\/revisions\/202"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/media\/203"}],"wp:attachment":[{"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/media?parent=201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/categories?post=201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/tags?post=201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}