﻿:root{--font-body:Roboto,Arial,Helvetica,sans-serif;--canvas:#FFFFFF;--surface:#F4F8FA;--heading:#123B52;--text:#24343D;--muted:#526773;--accent:#007C91;--accent-hover:#006577;--accent-soft:#EAF5F7;--border:#D8E3E8;--control-border:#637C89;--warning-bg:#FFF7EB;--warning-text:#8A4B08;--error:#B42318;--error-bg:#FFF1F0;--success:#17624B;--success-bg:#EDF8F2;--disabled-bg:#E4EBEF;--container:70rem;--reading:47.5rem;--gutter:1.25rem;--section-space:3rem;--body-size:1.0625rem;--body-leading:1.65;--h1:2rem;--h2:1.625rem;--h3:1.3125rem;--header-height:4rem;--anchor-offset:calc(var(--header-height) + 1.5rem);--radius-card:.75rem;--radius-control:.375rem}
*,*::before,*::after{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--text);font-family:var(--font-body);font-size:var(--body-size);line-height:var(--body-leading)}.container{width:min(calc(100% - 2 * var(--gutter)),var(--container));margin-inline:auto}.prose{max-width:var(--reading);margin-inline:auto}.container .prose{width:100%}h1,h2,h3{color:var(--heading);font-weight:700;text-wrap:balance;overflow-wrap:break-word}h1{font-size:var(--h1);line-height:1.15;letter-spacing:-.02em;margin:0 0 1.25rem}h2{font-size:var(--h2);line-height:1.25;letter-spacing:-.01em;margin:0 0 1.25rem}h3{font-size:var(--h3);line-height:1.3;margin:2rem 0 .75rem}p{margin:0 0 1.125rem}a{color:var(--accent);text-underline-offset:.18em;overflow-wrap:anywhere}a:hover{color:var(--accent-hover)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--heading);outline-offset:3px}[id]{scroll-margin-top:var(--anchor-offset)}input,select,textarea,button{font:inherit}img{display:block;max-width:100%;height:auto}[hidden]{display:none!important}ul,ol{padding-left:1.5rem;margin:0 0 1.125rem}li+li{margin-top:.5rem}button,summary{cursor:pointer}button:disabled{cursor:not-allowed}.button{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.75rem 1.25rem;border:1px solid var(--accent);border-radius:var(--radius-control);background:var(--accent);color:var(--canvas);font-size:1rem;font-weight:700;line-height:1.4;text-decoration:none;transition:background-color .15s;max-width:100%;white-space:normal}.button:hover{background:var(--accent-hover);color:var(--canvas);border-color:var(--accent-hover)}.button:focus-visible{box-shadow:0 0 0 2px var(--canvas)}.button.secondary{background:var(--canvas);color:var(--heading);border-color:var(--control-border)}.button.secondary:hover{background:var(--accent-soft)}.button:disabled{background:var(--disabled-bg);border-color:var(--control-border);color:var(--muted)}.text-button{border:0;background:transparent;color:var(--accent);padding:.75rem 0;text-decoration:underline;text-underline-offset:.18em;min-height:3rem;text-align:left;font-size:1rem}.skip-link{position:fixed;left:1rem;top:.5rem;z-index:60;background:var(--canvas);padding:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:none}.site-header{position:sticky;top:0;z-index:40;min-height:4rem;background:var(--canvas);border-bottom:1px solid var(--border)}.header-inner{min-height:4rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;position:relative;padding-block:.5rem}.wordmark{font-size:1.25rem;line-height:1.2;font-weight:700;color:var(--heading);text-decoration:none;white-space:normal}.desktop-nav{display:none}.mobile-only{display:block}.button.mobile-only{display:inline-flex}.desktop-only{display:none}.compact-contents{position:absolute;right:0;top:100%;width:min(100%,30rem);max-height:min(65vh,560px);overflow-y:auto;padding:1.25rem;background:var(--canvas);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:0 8px 24px rgba(18,59,82,.08)}.compact-contents a{display:block;padding:.5rem 0;font-size:.9375rem;line-height:1.4}.hero{padding:2.5rem 0}.intro-line{color:var(--muted);font-size:.875rem;line-height:1.6;margin-bottom:1.25rem}.hero-lead{font-size:1.1875rem;line-height:1.6}.benefit-highlights{display:grid;grid-template-columns:1fr;gap:.5rem 1.5rem;margin-block:1.75rem}.benefit-highlights li{padding-left:.25rem}.benefit-highlights li+li{margin-top:0}.benefit-highlights li::marker{color:var(--accent)}.hero-links{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;font-size:1rem}.contents-section{padding-block:0 3rem}.contents-grid{display:grid;grid-template-columns:1fr;gap:.75rem 1.5rem;font-size:.9375rem;line-height:1.4}.contents-grid a{padding-block:.25rem}.contents-section summary{font-weight:700;color:var(--heading);min-height:3rem}.contents-section details[open] nav{margin-top:1rem}.guide-section{padding-block:var(--section-space);border-top:1px solid var(--border)}.guide-section.alternate{background:var(--surface)}.callout{background:var(--accent-soft);border-left:4px solid var(--accent);padding:1.25rem 1.5rem;border-radius:.5rem;margin-block:1.75rem}.callout p:last-child{margin-bottom:0}.callout.caution{background:var(--warning-bg);border-color:var(--warning-text);color:var(--warning-text)}.source-note,.helper,figcaption{font-size:.875rem;line-height:1.6;color:var(--muted)}.source-note{margin-top:1.75rem}.sources li{margin-bottom:.75rem}.back-link{margin-top:1.75rem;font-size:.9375rem}.pool-photo{margin:1.75rem 0}.pool-photo img{border-radius:var(--radius-card);width:100%;object-fit:contain}.pool-photo figcaption{margin-top:.625rem}.photo-placeholder{position:relative;aspect-ratio:8/5;width:100%;border:2px dashed var(--control-border);border-radius:var(--radius-card);background:var(--surface);overflow:hidden;display:grid;place-items:center;isolation:isolate}.placeholder-lines{position:absolute;inset:1.25rem;overflow:hidden;line-height:3.1;letter-spacing:.7em;overflow-wrap:anywhere;word-break:break-all;color:var(--border);font-size:1.25rem;z-index:-1}.placeholder-centre{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1rem;background:var(--surface);max-width:90%;gap:.5rem;color:var(--heading)}.placeholder-centre strong{font-size:1.3125rem}.placeholder-centre span{font-size:.875rem;line-height:1.6;color:var(--muted)}.budget-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-block:1.75rem 1.25rem}.budget-card{background:var(--canvas);border:1px solid var(--border);border-radius:var(--radius-card);padding:1.25rem}.budget-card h3{margin:0 0 1.25rem;font-size:1.1875rem}.budget-card p:last-child{margin:0}.budget-amount{font-size:1.875rem;font-weight:700;line-height:1.2;color:var(--heading);overflow-wrap:break-word}.price-note{margin-bottom:1.125rem}table{border-collapse:collapse;width:100%;font-size:1rem;line-height:1.55;margin:1.75rem 0}caption{text-align:left;font-weight:700;color:var(--heading);margin-bottom:.75rem}thead{background:var(--heading);color:var(--canvas)}th,td{padding:.75rem;border:1px solid var(--border);vertical-align:top;text-align:left;overflow-wrap:anywhere}th{font-weight:700}tbody tr:nth-child(odd){background:var(--canvas)}tbody tr:nth-child(even){background:var(--surface)}.checklist th[scope=row]{width:36%}.comparison thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.comparison,.comparison tbody{display:block}.comparison tbody tr{display:grid;grid-template-columns:1fr;margin-bottom:1rem;border:1px solid var(--border);border-radius:.375rem;overflow:hidden}.comparison tbody th,.comparison tbody td{display:block;border:none;border-bottom:1px solid var(--border)}.comparison tbody th{background:var(--heading);color:var(--canvas)}.comparison tbody td:last-child{border-bottom:0}.comparison td::before{content:attr(data-label);display:block;font-weight:700;color:var(--heading);margin-bottom:.5rem}#pool-tiling-faqs details{border-bottom:1px solid var(--border);padding-block:1.25rem}#pool-tiling-faqs summary{color:var(--heading);list-style-position:outside;margin-left:1.25rem}#pool-tiling-faqs summary h3{display:inline;margin:0;font-size:1.125rem;line-height:1.5}#pool-tiling-faqs details p{margin:1rem 0 0}.form-panel{padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--canvas);margin-top:1.75rem}.form-panel>h3{margin-top:0}.form-status{font-size:1rem}.form-panel fieldset{border:0;margin:1.5rem 0 0;padding:0;min-width:0}.form-panel legend{font-size:var(--h3);font-weight:700;color:var(--heading);margin-bottom:1.25rem;line-height:1.3}.step-indicator{padding-left:1.5rem;font-size:.875rem;color:var(--muted)}.step-indicator [aria-current]{font-weight:700;color:var(--heading)}.field{margin-bottom:1.5rem}.field label{display:block;font-size:1rem;line-height:1.5;font-weight:500;margin-bottom:.5rem}.required{font-weight:400;color:var(--muted);font-size:.875rem}.field input:not([type=checkbox]),.field select,.field textarea{display:block;width:100%;min-height:3rem;padding:.75rem .875rem;border:1px solid var(--control-border);border-radius:var(--radius-control);font-size:1.0625rem;line-height:1.5;color:var(--text);background:var(--canvas)}.field textarea{min-height:180px;resize:vertical}#correction_reason{min-height:220px}.field input::placeholder{color:var(--muted)}.field .helper{margin:.5rem 0 0}.checkbox-field label{display:flex;align-items:flex-start;gap:.75rem}.checkbox-field input{accent-color:var(--accent);width:1.25rem;height:1.25rem;flex-shrink:0;margin:.25rem 0}.form-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem}.field-error{color:var(--error);font-size:.875rem;line-height:1.6;margin:.5rem 0 0}[aria-invalid=true]{border-color:var(--error)!important}.error-summary{border:2px solid var(--error);background:var(--error-bg);padding:1.25rem;border-radius:.5rem}.error-summary h3{margin:0 0 .75rem;font-size:1.125rem}.error-summary a{color:var(--error)}.honeypot{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.char-count{text-align:right}#questionnaire-summary{font-size:.875rem;line-height:1.6;background:var(--surface);padding:1.25rem;overflow-wrap:anywhere}#questionnaire-summary dt{font-weight:700}#questionnaire-summary dd{margin:0 0 .75rem}#reader-privacy details{padding:1.25rem 0;border-block:1px solid var(--border);margin:1.75rem 0}#reader-privacy summary{font-weight:700;color:var(--heading)}footer{padding-block:2rem;border-top:1px solid var(--border)}footer p{margin-top:.75rem}footer nav{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;font-size:.9375rem}.utility{padding-block:3rem}.review-banner{padding:1rem;text-align:center;color:var(--warning-text);background:var(--warning-bg);font-size:.875rem}
@media(min-width:48rem){:root{--gutter:2rem;--section-space:4rem;--body-size:1.125rem;--body-leading:1.7;--h1:2.5rem;--h2:1.875rem;--h3:1.375rem;--header-height:4.5rem}p,ul,ol{margin-bottom:1.25rem}.site-header{min-height:4.5rem}.header-inner{min-height:4.5rem}.wordmark{font-size:1.375rem}.desktop-nav{display:flex;gap:1.5rem;flex-wrap:wrap;max-width:100%;align-items:center;font-size:.9375rem;line-height:1.4;font-weight:500}.mobile-only,.button.mobile-only{display:none}.desktop-only{display:block}.contents-grid{grid-template-columns:1fr 1fr}.desktop-only.contents-grid{display:grid}.hero{padding-block:4rem}.hero-lead{font-size:1.25rem}.benefit-highlights{grid-template-columns:1fr 1fr}.contents-section{padding-bottom:4rem}.budget-grid{grid-template-columns:1fr 1fr;gap:1.5rem}.budget-card{padding:1.75rem}.budget-amount{font-size:2.125rem}th,td{padding:1rem}.comparison{display:table}.comparison thead{display:table-header-group;position:static;width:auto;height:auto;clip-path:none;white-space:normal}.comparison tbody{display:table-row-group}.comparison tbody tr{display:table-row;border:none}.comparison tbody th,.comparison tbody td{display:table-cell;border:1px solid var(--border)}.comparison tbody th{background:transparent;color:var(--text)}.comparison td::before{display:none}.form-panel{padding:1.75rem}.step-indicator{display:flex;gap:2rem;flex-wrap:wrap}.step-indicator li+li{margin-top:0}.location-row{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem}}
@media(min-width:64rem){:root{--gutter:2.5rem;--h1:3rem;--h2:2rem;--h3:1.4375rem}.budget-amount{font-size:2.25rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
