/* ═══════════════════════════════════════════════════════════════════════════════════════════════════════
   Outdoorlink Efficiency Calculators: the shared stylesheet (calc.css)
   One look for the Basic, Static and Digital calculators. The Basic calculator is the reference.
   Every calculator page links this file before its own <style>; the page's own block holds only rules for
   elements that exist on that page alone, and never redefines a token below.
   Style guide: docs/design/STYLE-GUIDE.md (tokens, components, page skeleton, wording, numbers, phones).

   Breakpoints (CSS variables cannot be used inside @media, so they are written out; use only these):
     1180px  wide desktop: the top-bar name may wrap (1001-1180)
     1000px  the top-bar name and divider go
      768px  phone / tablet: one column, Inputs / Results tabs  (769px and up: desktop two-pane)
      680px  top-bar buttons become icons
      580px  form grids and tiles go to one / two columns  (581px and up: the wide pre-results form)
      480px  phone: smaller side padding
      420px  small phone: 64px top bar
      380px  smallest phones: smallest logo
      360px, 340px  320px-wide phones: last fit fixes
   ═══════════════════════════════════════════════════════════════════════════════════════════════════════ */

/* ── 1. TOKENS ── */
:root{
  /* Brand */
  --brand:#0750A4;                 /* Outdoorlink blue: links, focus, primary actions, section titles */
  --navy:#13294b;                  /* ink navy */
  --navy-mid:#1e3050;
  --face:#0750A4;                  /* the calculator's billboard face (Generate button). Set per calculator by body[data-calc], below */
  --head:#0b2a4f;                  /* page title */
  --link:#0750A4;
  --orange:#F75625;                /* hover accent, the orange tile rule */
  --steel:#2b3542;
  --steel-2:#465264;
  --lamp:#ffd58a;                  /* lit lamp amber (Generate hover glow) */
  --brand-light:rgba(7,80,164,0.07);
  --brand-border:rgba(7,80,164,0.2);
  /* Surfaces */
  --bg:#f7f8f9;
  --surface:#ffffff;
  --surface-warm:#f3f5f8;
  --surface-inset:#eef1f5;
  /* Rules */
  --divider:#c8cfe0;
  --rule:#dde2e9;
  --border:#c8cfe0;                /* control borders */
  --border-light:#dde2e9;          /* hairlines between things */
  --border-hover:#9aa6b8;
  --border-focus:var(--brand);
  --focus-ring:0 0 0 3px rgba(7,80,164,0.12);
  /* Text */
  --text:#1e2d3a;
  --text-secondary:#44505f;
  --text-muted:#56606d;
  --text-faint:#5f6976;            /* >= 4.5:1 on white and on --surface-inset */
  /* Semantic (they match the chart lines) */
  --teal:#0d9488;
  --teal-dark:#0f766e;             /* teal for text on white (5.5:1) */
  --teal-light:#f0fdfa;
  --teal-border:#99f6e4;
  --amber:#d97706;
  --amber-text:#a85a04;
  --amber-light:#fffbeb;
  --amber-border:#fde68a;
  --red:#dc2626;
  --red-light:#fef2f2;
  --green:#059669;
  --green-light:#ecfdf5;
  --green-border:#bbf7d0;
  /* Type: one family */
  --sans:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:var(--sans);
  /* Type scale (rem; 1rem = 16px). Nothing on screen is smaller than --fs-2xs. */
  --fs-2xs:.7rem;                  /* 11.2px tracked capitals: group and section titles, tile and chip labels, unit tags, badges */
  --fs-xs:.75rem;                  /* 12px hints, notes, captions, chart subtitles, local-currency lines */
  --fs-sm:.78rem;                  /* 12.5px explanatory paragraphs in results */
  --fs-label:.8rem;                /* 12.8px field labels */
  --fs-md:.82rem;                  /* 13px card titles */
  --fs-control:.84rem;             /* 13.4px inputs and selects */
  --fs-body:.9rem;                 /* 14.4px standalone notes */
  --fs-lg:1.05rem;                 /* headline local-currency line */
  --fs-fig-sm:1.1rem;              /* small figures (Sold / Unsold) */
  --fs-xl:1.4rem;                  /* page title */
  --fs-fig:1.5rem;                 /* tile figures */
  --fs-fig-lg:2rem;                /* lead tile figures */
  --fs-hero:2.15rem;               /* the headline figure */
  --track-caps:.12em;              /* tracked capitals: group titles, top bar, Generate */
  --track-caps-sm:.04em;           /* tracked capitals in tiles */
  /* Spacing scale */
  --sp-1:.25rem;
  --sp-2:.4rem;
  --sp-3:.5rem;
  --sp-4:.75rem;
  --sp-5:1rem;
  --sp-6:1.25rem;
  --sp-7:1.6rem;                   /* between input groups */
  --sp-8:2rem;
  /* Layout */
  --bar-h:72px;                    /* top bar; 64px at 420px and under */
  --input-w:336px;                 /* inputs column beside the results (desktop) */
  --results-max:880px;             /* results column content width */
  /* Shape: flat and square-shouldered in the inputs; the results column rounds them (section 9) */
  --r:3px;
  --r-lg:4px;
  --r-pill:999px;
  --shadow:none;
  --shadow-md:none;
  --shadow-lg:none;
  --ease-out:cubic-bezier(.23,1,.32,1);
  /* The colour logo (600x81), used for the lit top-bar logo */
  --logo:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAABRCAYAAAAO9tg9AAAAAXNSR0IArs4c6QAAAHhlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAAEsAAAAAQAAASwAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAligAwAEAAAAAQAAAFEAAAAAuigF/gAAAAlwSFlzAAAuIwAALiMBeKU/dgAAQABJREFUeAHtXQeAVMX5n5lXdvcaXVSKYu/RmGIXS+x0wYI1GjUaG4qgJnoaK0gJxn+CXaQoREVQiUYFNcZeooIGUVEREOSAa7vv7Xsz/9+8vT327nbvdnbf7h3wRo/dfW/qNzPf/Ob7vvmGkmKH/o+EjQptH6qHTqbEPUgQ8SEXxnPO+rqPyKLzY8WuTlBeZgroA6YdqRnm9YS4buZYzd8w5tr2rc5z577V/M1m+fvAqYbZp/TvlLHtCRHclzZQTROuM92ee9Z0X/ILMgkoUGQK3D1x4jiNsf04Jwq8IXMldY3p8bg9c8y11z6WOVb6N5WVlaykvHwK1fWdhZvdHNU0yhyHLxlzzdXXpM9163561/hJJxsh7XLX4b70L2H4T4j16yzr93ePHbtxa6GuXtSGDnyoPKSZlYTqvyOUlhPB8MFO0Ih7tdbVfNQ6dur15OWLtxriF5X2ORTGNLo9YfrxhIvsUzOdsJAzNfsEHTzmNn0YJVVHY8zuSIQ/vAYEAmZ13uvgLQ+qF1AgMwWEOFTTjUNIPJ45jsIbzTCIHecfKiRpjLrXXnvRb1b8cLjBtP1c7jQ+b+0L07D0ObGurcXZmt8xRnbUNP144dq+kIFRjcTdeFUPXTd8yXAzyaSIAEvQMJ1xg9DCo4hrEYKtT2OgNEK08O9DZVxYpPJyQipTXjbGCr4UmwKCciI3MEqbGCoFPQqIrNiNyqk8x6OBXwCLykXAr8xyak+QKKBAvhSAbMMlbiofzyNHDXlRmsecEMJFyLo+1BPKexMxj1pv0Um5n/3bsCD4g8Y3I7KzYtU1MuiR3hBY/d4DV82luALkd6EdpNr55rDdditWnYJyAgoEFAgoEFAgoEBAgYAChaBA0QCWoHRnQrROGc1YJMiiWgTmPnsUoqFBngEFAgoEFAgoEFAgoEBAgWJRoGgAi5AstZGCZxmxWCQKygkoEFAgoEBAgYACAQUCCqhRoIgAK8uKUbal2e9k2fAgWkCBgAIBBQIKBBQIKLClUKDjAawthbJBOwIKBBQIKBBQIKBAQIGtlgIBwNpquz5oeECBgAIBBQIKBBQIKFAoCgQAq1CUDfINKBBQIKBAQIGAAgEFtloKBABrq+36oOEBBQIKBBQIKBBQIKBAoSgQAKxCUTbIdwuigID31CAEFAgokEKBYE6kECP4GlAgHQUClwjpqBI8CyiQQgFK6Br8LMVdWilPk1+pjqfdSbDcJAkSfG4FFIBfw58w7le3nBJ4SqlcV7oXc0pQ0TADaXalerHQiK2gq3JsIq1L37/IjhK54+yMfo6k54k5FrkFJgsA1hbYqUGTfKTAr9+N8093+50uaIjoEks1DY5wd6aczsJTzKUWr5tGDn4FFNhCKGAIMZZxt4yaLecEt5wdOSNPUkoRrThzAliJa5oWz3bBx33rhOIm4y2kO3xvRthgC1yXfmak6V8bF95Q4tyma9pJjpPd3Y++V3AzyTAAWJtJRwXVbCcKVFZyXHe6ONOVp6GBD9Xj8masIsFmuJ16KCi2HShwzTXXLM1U7Lhx46qx3ygaeBk+fLgYP2nSu7iLcD3PEtFRx6HAfosztWFrf37FFVesBQ3kX9owfsKknwCg074LHm6iQACwNtEi+BZQQJkCQjMMqCeCEFAgoEADBRhjBq6IL1rAQs+nTp16xWeWxbpt6JXVbFzXdTXdJ1JaNBBYNGIUqSBBcLNwENqkQACw2iRRECGgQECBgAIBBToyBS6++GIoroIQUKBjUSAAWB2rP4LaBBQoFgUoGT6bka/XM7KNxUi0fJO8P1IjSHRflyx6DTv8yi17lz98tpaRBmtCnHywCsKYLZwGxRpxQTkBBbYyCgQAayvrcKXmSiuFHAJ1c0uXQ1FtJaGk/0KNkOU6MWHVGu7ESP3qTaLtLl2kJsPFAuuQDy6CteYWrOyTQIIQk8TrQoQ7IULC5YYd6yb6lndhpKyclOh4hiDinPDu9Ty0YgMbvtc6mzxWRWKGRWjUIqFyi8wZkckczUvesf+pZKT/DibpURoiTgx/pNRweRfQoBsT5RWkhEQIAZnkuHfNKO9NqumO/dbFxYNVJMrqQT6LkCqLLLgcNNiCx0pjJ0p6EUZ67CXQ78XU+jXWYGv+Atsy7eCDDzZt2zZjum4YloXBWcIwThMBqtGQ47i1muaQjRvlvLQrKysDq/MONGi2XoA1YGoJiXYxCFnvT3d06QKTwDqLLDo/lleG/RfqRF9b6lu9ZGVKYHA674JafNsEmIbPjqDpZqvlCHncelOS7NoF7byhGeTYqZ1ajw96rV9fTz7wWbR/4FSD9NLDJF4eJgbppJOV2zMzsr3gfFsq6rqQ8ooSLBkyuMRxNsAmdq3oU/q9s+3j3xNz2jrixqOkeqcoWXTUFsCosEAet1MEDiZKjXi8D2HaAYxFDgA22JtQ3odwAfcSHEetqUFEUlAlcZhLNMpixInXhIS+GucjlwlS+rFrx993B89aQkhsA/ny23qyuHIzAFs4UT7gfgCn8hIS1rcznfh+wuE/Z8TYl2huP8Gd7ozKJYuaCbMS0EEOeWAsjVFLcB2I1FhDIuxrjOz/Etr9A3vItE9J/YM/EbZ9HVlwEkCXT0GO3S5dUBefeFJi3tdkXbvk3BGREGgVMlmsC4+GutKYVQv924dZ51OAiFOmTAnV19eH/cwapw6d0aNH16XLU4Kbww8/vBRlbpLspouo8CwWKxE333x5DWzGMjJVACRWWlqK8UpKUb++OBq5tx6K7FUq+E6ipKwHklYILjRUCqxL1LqavraM0G9p166fuw5ZMmnS7cuAw+q//vrr+vvvv39zVJvSu+++uwxt27QRVqBxrlGT9AL9K0KhkLZRZrRxIwmHwyIWCnljIGxZst+qa9E/ZQC80dWWuPvusTjQsWmRlP2H3xX484J/AEvukIuxy5FMwAexvcFKTqOdtd2JaKRFkia5fQKL0M6R18BtF+SWQSKV2eX7PYhWepZv9ZJoIm5H7YNnjyNvjYgm62Za9jDSObJPq+VwsWe2x56T+XrxBTvT7FTxy8Zn6b5QDUWXzI5/4APjlmPPqikhVucyPRLflzFxCNWdX2PY74GiexKXRyiTkolmvBKkocITYsU1U/uREPa50Mx/884rXneGTFtCnGgtmX8xJBebWZAgvXRluVFCdhBcO1pzyYmCOAfCfU0XAroDVBGCc/SJT9k28A2PDsl2SvZNwqBXmDDag1C2L3yBDdGpG8eh/GWERl5xdt3jBXe3aR8QPVyDed84rpI5tPunHBPrSRkpeXhbQ+t8BKP8FADqX6GPt6VM8kDZZtn/8hN/8gdvJqQRJITFMAQ6dMXfHpSwkwDASYiZ34gS83UAoeftgQ+9CQnfRvLSOXKcyIxyDkav8D7U1E5rdU5mnTtYuxOrtk98YULrIBALwsA+2NCVlOvM3YdRHfNW/Byn7HYF4OypGbSccPoSih2cddEFiFhj20eUV3Q+xrLz278mq2boJolZ1vf4fV/yWeonJEfbRl1+uREuIRDppr7K6TsDH6ZG3Lll0qSJyKAqTSa0csqU8jKb9BaGOAFj8mTHFQcwLroAaGFgMeyBZD0wi7EjkEGOYnmST/5xvKPErbNp6VItzF7efe+fLbjjjjs+Kysrq8aJQP82AV7Jhftn4sSJYVfQK3RDK3e89haurGTOcizssNdeM/H7ExoKXeYS1jcMtKpVAMuCymH4q2AU1DZNO1pTc2u5Zo4Ihdm+WmdRC+B/G+grQZYXdL1iO8HsMegpD1vlD7AGP9LZ4OF+urAi4LL/SRZUqM9Q78jRbp/dHYfP/IzMO1M6gMyJqTGNjsCO/gTiyh27D0EuXMSFRCw/gIXFbA9K2Rgi/KoXJiYl1aSi+l7UrXEhRHWHov1DWm2/txArCnIwJKmmD01M/1boCsDDXPp5XjvjE1/AOF/fS9ixvQFKjxEl8aPBZHYHJ4NkDsPCk8o0fLqtMUlIcCjrTRjrDXb1G41rUbDDj4luPi+GPvFSXFhfk2fOXddKazrGqxOnhEJGlz6C/vAroukDqcOP9gAShhKVgMoDEM1ARNqaN0wpD3zICMk0oBMje4JWe+rMuUgjxkcALXPFsMdejLv8GzL3/A1psyvmw/6VOinZtVfIsn5GKowBAA7HoeF9UWeMB7RD/rnJ9rRVMTl25J+Ml5JGkH4A7P0A3M8xtdLPWCmZ5wyZ+bwTiy0jC36b8Wh7W6VpTN9H+DX3ZXsJw6Zh2V/xJc0CW8nI0F22DwmxD+bL8eARx2CM7I45kDJ3ZB4SbHOfmFFbFMj83qT0cJxOHKN54DhzvGzfMIAUtO4DxE8LsCxN29YkdAx4sVQa+xDAhx3ilJrGQ8isCcCaNGlSZ6Fp+2JonsF1MQi8Z3ugJuJSF0OMe3/ZVABAqxTevSClJgc4jv0Hs7T07ZjrPnXPPfe8UltbuxzSFX/QaTaVyTHOGssKdwmFriRM76FBh1+MIMeCYbsfoaxPQMNt4OqjF/qdY9ofASl2qcPZy+gOOE2jFgCrDk4wiGrsN9RlbGNd3T+R7tVkPV0SOzYcCv/BBUBD8DzuJt+pfYKZm3r3fph+J4iQeTZ3nPeQQcEBFuo8RNP1k3U3Pt0d+vicuGN/CfVX9mLwZCsFsYkLDYf88yOgB/C/HyJZzCrUifuRFRoGBoFBEyV6xFsmkk2FkNoWfrY/mbH8TAyu1Cfpv8PSJf2LNp5K6UQs1svU1/+CU20YEOTxkEp0oxJQSRyl3KdyEUVVkgsvPBRjAT0YC8vBIODppjBmkkHTn7U3xr/OWwXcRtNyfj1w1vYmE78SGjuLuvwE9Ds8z4MYkLj4F0CnRpBGTThrhJSQ/5rw8KkhyqeRIU/809LZ8naz0xows7uuk/00Ss8Ugg4Gk+zm9WtjnX2iRONYwcyiZF+Ak30ZZ6eakdJZZMi0p2wn+nUukk9I01xvTvox9z1JpYgRo7TJvPcoMPChct0099UcfSRhYijGCtTnGCsSTLaYOzJ5ZpWWTxRtMxs4EnXicZvE4/4sugncLNIAz0RVNM6hSRYcHcygrmqzfm1FkAMFjDgGx5xNMpswYUKfuBCnMpdfyjS2C3Eha07yobYybfZe1hO+wDw2hvIiWJGOwubgCKKHXi7rpD14++TJb9x41VUA3R03SJUcaGA56GsplStG8MaCwby1qHNJyVj0EfseBXett+Zy7u5rMnIO6uVpMq6++urYrXfcQayYJTeTBobIEfh8NVlPKG/72/H4RtdxdXR5mdyiqIch07Yxw9ucQHQ6CRuce7AX+DnsOXLLS7l0ihmm9RaMjaXCvD/MzDPIgGl9kU1CbqqcX5Bgs6IAJKa6bR0S0s0/ocsfBP87Ex3fLQFKJfNtwr9ya5qccRKYYGFG3vuAWd0BwHWv2a3kBDJgavfcMi1Qqv6PhI3BM/YP6XQ06vkA5uIwVLrUo4cnwStQuZLOkkYAG8DwB+LLRNgoTQjZ8WPJ8bO7FqrUtPlCJRoa+Pjupk4u1QR9BCLUCzaNidwwfNpyWjwEDTjGHDYUsI3ZHYqaSkrMv5ta+SBy/OPbtYjeER6c9Mi2YRY+Q3ONB2Bkdim6cVtf505HaONmUoc7J07cBUKQP4KH3Y0BtIsEj36BCgm2GrysQ+gnjoeKcSpOsVwly8S7YK3MMEakOnXUqFHRSfgDlaCtJGLt2nC9fCb/wGPlAqMDeK0WhH+C+XOUtNeT2UFCWILN7aHCcd8FT9yAfpVSUpVQycDIdjGJfhmYyQNYdKSuWPOYTCuGeyolZBXX20GCqYGxC6ZPDhnmjebAmfsSaZ8VhC2XAgDSIRI6G34MH4Qq40JwiS4FBxJyAZVAhWlHU+7ebxoVF5FBs/p0CCIDyJjdQidTqv0NDPoq1Kl7wemRruEe0MLejWmnEE273yx1LowMmC03PYUPw2eXhTv/cKRg2kTs2G8BR+vbLjSQUjL5x+ih+PtbqES7OjTksd3AdhV5bAFJNujhPqFw6GqoISeBTnsl6FRIAFrAtmymWRuGIRdocuedE3fRCbtLY9pFADyGlDwVIkiglZD68a74OtYAmBs/fvLPAAY6zrgsRMP9yLMBiGqa24xW2MZSFgVofQ32cfvuuv+hyU33TuCBO4ATLoJWRRrFYZplGwBejGG7/xxGwHcCxd0Eht7Dm6B+SAyyrUPzeAnGHgHSuohq9K+hPqGjIGFIHmJtHjv4vblSACpBc9jMvQGk/4SRfQ9Er7sVdxGV0hqobTHmsX+5NcTEjeEB0/p55PRU9e1AWKkSDFu/g93M32CBeVBSmtQONWkosoFGBPYLgt7ODfcmc8BMHDIoICMf8lg3nI48FZusv8Pu7yQPCHvqwPajguwHjJFOGCujBTHHG4N2/2WH2PgNfXy7EAvdAAvp0dgxlGStxm9HUm6JRVOLcqjqeuoRdoums2HwsgAZhYe5CtpcaDy9cqCGHEoMNrmkpNP+AcjKneQ4+ADcJd7AotA55NTtJ3OipvlrT87E+dtgAp59e3YAC/ZW4X6lR4Bx/BXM/FTIMRtsMXKvoG8pPTsTLH5MO5yw8H0Qz58CB4plvuUfZNS+FACw1x3nYFyo/BcA6QvBJUxPYtoetfIWbxj8UnYx1/U/k5Nm7ADTx8Jzx+ZtlZI8JkZTzbgVExkbHT/trJoXpvg7QSMcqWUXwE3GBGNA3/0LArIGPtDT5PqFsL2bjBrCdkXaUha/K9JSR0rYwSOxmx0IU6h7w33LDwdPgvF4O4RYFScnTq8IufRqVOgS7BSg9AD/DkLxKQCMA59WhubwSyEDOVOCq2KO2aQ0S9fokQBZE82yMnnKOgg5UADqP52x8H9hNrkRUOpwmQVsKPsDyC4PaWVfwRY4S4AFxhAyux3DXe1eqCJ+3aEYWSphEhKGXQAAJxsOXBAcNw1Hj4OwWVNAgqs+FUdAk30vAPQxxZVaZaCc3G0CRGDxHGmGxE2YZHBjkKOxfoYiWnsckeDKMG6CJO8qLJQAm4VRLbRWhzbfSRpJSQ6FVMmITDSG7gyQ5aPdx3GwAdXL/oCTPLdACt+p3QB3q4SQNLBBA+2XgDP36nH38HaQZAmy4x4iHIZdnqZfjs0JugF/QWgXCkC64VCTH69p9EoszJ5EqT0qIlWGusaONDTtljumTOnRHnXY7MuEm7xdd+21BjZzH4MHHXnfffeVCUIPxt+/169fCTdaCZv01iVYOPIctuNHwN5lMnaKeybAVQcmjbeTp9vhYO04s4ydQiB568C1DarWGgWgFpQ7f40ROfb271hjTy6esAEk9DxOxBUQnBRn1YKaB5KzP4JsF3hSiI4uiQDAYFQ7EvNxojnk8b1b6+6s3508o4tZql8CpgZXJgJe6TsgwExtjARZTNtLo2JKeIcynEotoMo0tVz5HXbOkVUb94Pk4k/4FQ4kV80JVOzf1IDkahRkHZ2kyq49gzSAZ0wbptvO73BRdmC7rNwZgo4YgdsNmL4Q68A+a9dWHwbTlR2x+17YtWvXRhFxqwDL6LrLAZzRiZAe7Nqh1BCtEUMaJTO6DeX6OPgEOqKoDK21egXvlChguHU/h+umCTgRtk/HAlfJZoBBwsoRanP4/IJDzkJjLJyeDHFIrTw1Kebv5iKJ8CTL+pE40Xw7gZF1kno5feL2gZBBRkI8PxbkTvE+n1NuxUskN35M3wsHre8xh+/iD9DMpvaU6HDzNwrSq34dU8qXTSO2jDgNdlZl8FG1i18nBfOhjKwP6gEBq37l2rq6n+WTl99psXmCmbfMVf6T+ud3SfnnR+PuG1gJyqkpfgvpFa4Uo++ujkYbAWtGgBUe/MiO8O1yF1SN+3bMBa4V4kg/TBrtC+PXu81hO+7ZSszgVQekgDQgZzx0F9YHnyVXmSZrpudtEUfuQr0/mUHhglTTc7gjYfqVkELAhkaWmW9I0+Ym2Sbf51sO0ntSHDYwREPXwRapjSuUMpWHE8xW/W/gD6kSNMf1Pn5IrpJtTOm+gtJA+yVx2G0ErhIytdK351K6SWlP7K4HBgbtvlE174yylVxJhJH4k34Mk38YpwnkkXc9ZAYS6EFduY0p6OUweG8fG8FmLYmWlODsnsCOhFoAo03+mkUt+E8oJlIYQ7PiGk4YGkb5Z2AZa3XNGCAEX0Zse3m4a1e4bZAdmOkU4cBny3EC5jpQ/+gOB668uy2aNTbdT2kDomkHwLn6zWDq6f3yZCZfuhy3vGft2X6v7DT4HncYwqvxWP/GXkMjqRaDqgb3xxnLsaP/HEP/U0iDcLec/inRjC9gMP4dxksV5oWc3Ojr9iRO06EWdmIHE53dBGARyl/Ng3bBxwraXo02r5BtR5ulHcF7YAnv4PMD0OdT0Okr7G7XYqcCZ4ySFvIvjyBVeTiSHrat4UR6W1cM5pA9dieGeRv6sFv+akG0BVwcOpJayoyVaO9S0OMTsJb3PRoI+r78Ddp8CRqsRr0bbkDIkwaeXRobGDbMy8GTIookUIwOti/k5dUEZhJNUKNaPt6C7v2jlq4AsduhFujwPPtcgQ6bQBWO9FBaxzRtna6z1fhbhatjVsNUYj1WbXhjl+DLcyCtkHv6qNLjOPIdFC7v2iEEEd2rq6VTuZcAVp53XfG8y8Vz3BXzAUw/RbtzHsiStqp9KXeyma0/qJCnMG+4/vKfmCAfm6Yexmr2HzyzaU0Nvkqc2HBfTlPSV+KuhJpBYCrn58/Imubsyy8OMZzn1iuL3CRDY/rQUNx60+pfeR9ZlHLTOKdYaHEdSroJBM/5WMgw4DCKixwYd6qFbn6M+7/SlAwhJCF98G+3vJgmckbff4v2pW+/V7I3lnEjM91BuSxBvsEk8e7LTNOIhkewRuBu01ttpd2V4wyFn57z8ldpgFLytgmmrxXcxZVK7lLYHS6h1F2Gu+dXcZ3VwJ0AnChbIbCqCldovUEU3L9G9sbY3xnzsadw3QZg7tEic1MK+WbgzJ6Y5ZWoU8IhZM5lSXqwKADKj5BofA83LZ8Ily/WifgKl1WucYzSWhLnwuRx3aEW2q33BnvBtTjkZ9ip7A4Gtb1wHTkeUIMc6OFJVJgJf1U3mt32eRdn/j7JuinwPI7+Gws1Y57SdEkDamNMrCHcXoUx9gnosFgT4ksArlWuzqphCoHzPwYucqIwno/3cojYk3F4a2dsH9BuO+E4uCBbEiEHGsg0kmVr7LKQY70B5Cqv2WgMcFK4gRiYk2nnvowm+qEBkABmW3a28RqrgC+yfxGklJR5mw2oA7g8otmuASDgR/C9jxMLZdOqoKZyLYTPMQpAmUubm+Ynf+G4XxQA+7/w445fDTRJiYan2+Ep5mb+5ck2eeTWtI1YcNbEHXcVrsj5RhPkB2xLNgD4435nF3bpelfcR9gHzpV2MnRtG8flPVGlSKIKudVDStRMk3Xitj0Eef03pYnt8hWXb9c/8sgjV65fX4ozLCu8OsBb+g6c6bfiRpufA3S17Iw2apoAo9Lxp/g2AXuaJsBKBO/5dov1CvcQLsVUxzKgQRy8KWAc/g/jomrx4sUS6XI4NZuPZ9tA4/qijCVqax1aVv4R3nVquZMcvhOOnrPrMahgFOmHGH5Txfz4Bn9X3pXW2eUlB508Vq9dU9ptt4V1KUydmu5kLW4/gkvaWoxMl7MeINgzYDBl3sjPrjBfYkWMkvfhav/8dPWSBTic/hE7brjKyO9oPk5b/p/m2LMylZMoi/0GkqTxSmCHYUi59mTcE/BaqwRxbKqXsW+bxLGsXbCQ3YAxbeZOd2/+CUhnVoNGXwBjvYS7Lv5V73b6nMwf0ObFzRWQdtqOsz+Y1gmo27FQy0n7lc5+Me4m7W3rByQ9JnUvgDSpf+6SZNBDSuWY/j117fehF3ge/OQ16+kzv8OLFneFYNFvGiDNDmt1PweLPwVr1/EYDzti4wXA02LaNE2X7pe0j9TMHYkbG0v633cRWXRZbbpozZ7RiBY+mVN2eu52oJIGgC3M+EG48U9hffIcfDS/av2891ek8ihUKmN4H2+eJectDJfUrN6Hu87J4D8nAqjumgDfOdBA8lRmdML1fn/CSecPcUm0vE/VC0aF9hatb2XuCwJ7WP1opfmYzLzVT2/OyHEipbwbwPs2YKxUYw78RLmzQQj2ZqvJi/ASgOdZ8IR3uADsaBZCuNQUi8IsuB/YAwtws7e5/ezXr9/yb1euPNd1say3CJhOlF6iacYljpMnH8YeHr6pajG/lmPDswjnk1/WCf+wrLxs9cUXX9wic1yGDEAl+sRd9xBsEHEiUf8V505fAAc9V7Dn4p5WpD/x8ssvv/Pee+9twQJaNL+wD8T5558PKV0i3Dlp0o6Gro+BNGh4turVZFr5KcGVobP1dtx5nLr0Ma5JUXqjiZQX1eFx2r28/JvUdPJ7xNDGw61GqFMnqwlNIjq7U7rbmDNnjge8cE/mLGFbC7fbptv3Mt0BBxywYcmSry7VdKzU8kFjgGuDcJzehUVuL/8ncWMp+X3BSFDKwFNNGH0c15lATp4xgjw/0pOaxOac04KgyXxLcFrL5bhpsx3C+jkjJJKGZCl9CA2Z/pMfgrXY0yO/RQnyL2MwB83a1dusZ4yR4QVjX9c9c5babkgacVNNGrXvkjN4hNMhDA7QhzyHA1RPm2H6Vs2sM3/KUMu0j6vnjJAXsb4q/8LD4UzUof0hcTgdEs2jIOUoqmG13mnXY6DGujZntSDogZVgGWQmT2nCnt+zc/yD5Y8mmdfItO1v8XDeoBpwu9fw/LXQsBn3Az0fD/B6BqRZhyRAluKCho0BJEinhrp0fhtca0qL8po9gINZGIfTO/AYNiKKZcm8vDFBca2FOxcL2DOlpeLtqhmnV3vFzPP+bfufR4+KAZlLsPV+ZOj0h4SLO97gpgObt6OxMmFMKNYrIVk/JBTRbrT6L7yGLEqAvI0zPd7UVKqbUrvQ4Okb/Jj7jVl6ahP5iy3HvHkPUpL3ISr5n0Gw2DOypryUV/+48/YWqewPXnhWY7L2+HLdddetRrnyr0UAsKB3T5wINS5a4VPACTGpFs4oZb17woQf5SXB+QRcXo3pyT7EDZTTAGRfxIXMS6FiaiItaZ6/vK4Fz5bKP8R9oqRTpwMB9obh70zApJ681Uvtm+eW+C0BFtqyb69+/SAFJFDFdYxw5/hJ/XXCKjHvj0yAK7V5Bi/rAFh0KcDo3QYls0Zdd7WkXdZhzJgxCRFasxTNn48dO1au2Y0SMO90IW5Zl8maAKyScu1IR2gnehd/Nsu0zZ+qwKfNDH2MgGvMwRAPC5vxk7BYzGgrZ+zgslVCtpWV/++xnfQ/00w54gwSxB2qAYuZMv0iXDsBKpqj4SpGtbhEfNlllH6JK1ofxgnSOdbcM75qsu3IIVcPhA+f/V3Ecb6A2nI5oP1poEennAGPSh2w2dEovww2Yl1yApwSWFD6NiRWfzcd8nzN/LN+Wq5Sfpq41lMjv4Tt0LehOIfNkrgUBD8ZmAc8RIHxSTBCAUo4uShyymNPRZ8794c0RSUeQWVM4/HfYu5CithiM58xWeMLOSYYWwKfQw8w13oq+uxvv893TESfPmsFqaycEfnvbhK4rsS4GIH2Jy7Wbiw4iy+SDpo2wuj87TS07IMsUkj8kN+KnlqIx+IEABt5hXL+HBfiXbtv16/IvSdZSX1gm+Le1Pza8TskCYA6/pEmy6aoM8aUjDX4n8EQeAu3D94Vrd7wEsBSo9QmJVqrXxvSvDlu3LiviGGsBlgbBdDWU/2UIpw6aXqEOPEOA7A8cKWzSqj1jkxIJRV4DKiWAFdkCQQr4yK6/oS8Y7BVYhbo5SaAdfDECK5Dugiqo3LlBUTuhDwf8QWqZfNsG3dezV9k+O0xdRrGAayL4NV4PllwVmIHmyF68LjIFICnabhkuBhMEqfD1CaSV9MEuFqMuwLvqTDMf6ydMyIb1VN2jZwzwsW2563w4FmrYLVYBX39JeDlnZXnSHalNcYKl4uDOTePggVA47Osv3iLJ1kkqHuXpRkvx56Bvxa/wpwRNjjVSyXDZq3FrrJeMDoCYAlIRqHf5E0Qmr4HJ+4wVGtKpqqZMWdXeJwekROtE+DqU+a6d3Yz9Lkrnv6t0u41U52855AyyDERGvzEGkbcGuz/LwQDxBVdCjRIqAq3xR73XAC2j/DXquSi1fqovvTmC/kS0qrHTaI9U/vMaYuLyr9V67uFxZfgCuPlCyyZt4y56qoX822elO5NmTLl71bcjcBwaSw2VmFVdSFs3ORmZOd86+JHen/AFf3Mjbt39Ovb+ylIlJJ7Bj+qp5RHIwrXt912f+zGoAZR5cUAV5zXwxDtQ6WSc4wMi6n/oo7VYAhqOUjJiKb/MmTSw9QSBrELTQGoSg5H3/ya5CK9SoCrb5jr3BHbpnaGr+AqpeGxuWcsN1wyGUbR94M5YnOvOP5S8mrzKyQ3EAKeA6YHG0DFdZfilhpC3oUk8BZInF4kAIhtlpdDhPqnzvgIoPh2JH0BjFkxBwlEYEzD2Fmtum3Q3OHg+jh8oNiEJIBw7duiG5bOWTHHU/co1rHt6Nbc03ElBruHcDEDqjvFSiJ/AE2odgaHP9hrh7ZL8ymGPLcDtRTGyJ/LSsVfap85/bMAXPlE2yyy8QzaCZPr5aTaDRv+lUWSrKJAQlNta/TvnLuvSumNapDcDGvr9qrp/I7vE7j6yHbit9XXbpzTnuBK0qaRM8L2azgYeoU6Q9ewsXfmGMKc7zex0+UX4uwVnIKSDE1t5fGkWCwCo/8zwNTVR2C6ygTP8qeAVAO5zlkYiurSK2+xoBtgdD0xapr/IPe3NArNv4Kbcqibd+aPOnEn41TPHGiRFcQVm/LI5lsoGt8JPgSOU7aD9ICFWC54/LbY3LMXZVNWPnHsp85cjLuub4PUUbq7UMsKoAl+zvYLWdbBaRPCJg97qFPB9tO+zvgQYwKLWBWlzj32ht5PNzk5nDFR7i+iz57xPdHFeNTzFRigq2UkgSPFaU3dPkktYY6x5fhg7GPi2LfEqradVTUjkOTnSMmckyXAD38dO7TZUPEpDu7Wi73xqqt+xEm2v8Jgvk4COZUg3RHgvFdXlTR+x71z/Pj+cElRmbtaUM598gEOo/x55z59/gH65mhv4l/LEgDrmKe7AbDAnkKxv73dsvshdL7j6uedsdK/amXOqWY+jJYNPhF2A+8oM3WcYoKU7hhiu+2O1DO3cOt6E66P7wDnkTmejMIZauE8CcPlaZDUFEUMXP/02au4a4/H6cQPlcdftl1rit/A7mgbtfkIhkrhwsQR/2dt7LMg26LyjRedO/Jd6gJgUGnkqcDU5YaHsRBcpQxOV4cQ13+J0z67q9FA5gT4y50Z5Sw0M2k8ni5/P59J2zTYrd4Jqdz34KOqWeOMPhlS8Gu9vM0IWSGgNrGePWt+sWijSowtOb7EPFDdOTiB+mjl1VdvKERbNeG8DkP3jxNqSIUSMB0BbMoUUvgaVYIrwwjdnAu4knT12ivYu5bj3LpD797zGgzNfa1jLpl53CBUVvsLMDsYkqoALMnQSS3sMCbaz561JJfCc01jzTl7GYwyJ6L8GjWmjvZRradJnUBNmCvx/U5niv6EGj2UF1K5Gyf8C6iZJhd7J27PP28xmNgkrOWw9VIAFdnQTjrhdMlJ4HZqGUvPTdx5zdCcx4q9eHbqhBN63J0HUJhNCzfFkSd8BTkap3u7bHrY8E0jJyI/OFZVEBR6Y0IsBmi7t1Cq4hb1bHgQM0JvgP6PqkvWcekvoQeGjG13zJS3P8+ZI0T8ATtkPCtXUn/yDHJRoQDupSEud1fW85KFKulU4sKPVB3cqL0k3ROoBDnN8L90TFv0kARX4Of9VQ3aJZfEnYrgwuxNx7FuvX7UqPkdBVxJQiZ6gbKjATzgHEJh3klxuHBetU1zXtF7BAXaUb4AqiF1sTy6A51xTHvUOSizGQXgCRcA5TeYHWpgQkaHx1C4DHgQaqovmuValJ82sedhQ7JQWS3URu0iZf16gjceiLHdRsyU1+AymLm1jLr31j6zya9SSoyCfv3x8XPqcFLvPjCEtUoSHKkiY9oOcPbV5H6+3vByDoZ/pJrtlRwTzCGu+6B32rGgLU6TuWfr5jyMOn+pBDShNYDbCqhDpduLAgUsQDjZ+5Htxh8slqS3QC3ZrLP1Tg4S8lHl6EtwQ0LhAkxZ34YtlpQmKBTirf2KOySF7DNEHT8Jrhh0vRKSvf6J048KGATtk64uwP7egIuRyrGjR7+AfalKBhlq5d9jRi6SN2mLQ9R2irLjeEzjTE5Y/05sqbTrpXPq4Ar8QdQ9KimcfcCOUYhfbT9gKk79BKE9KdBl8V7l0OdAFaQiOUWN5e6Mu8ssV3+i3eo/74IajToPYfzF1MZf6zXmurY31NhQD6oALBi2c/ft+jq6sPXcC/c2vrHPB/BE/pISuJDVoZqJff1BqTVbWxftA9a5qxLIlIb23PnK0sns1LyK+T029/zlOJn3ZHLfmnXZkn9R99Cs4ytFlLwRV69w+iiZd0FRzDiUqrdVRUZfcP5f9EdBQUBIJ1/Dt1VUaVlsh36Q4ArFVmK+HIkNmhIEAQ2hFvTG9kIAs8rRV1/9MvIqKF2Rv3JgpavLu0KAsJsSM/MWOL6k3uavKZfoYwIrSqVYfonSrhlHJTDw+q0LlwR2WD72RS5Z1cbj/aA976009mRB3qk18Rwpkt1fprbV65FFkOLiLr+EIDhTPJXnODFyAFSmChlKJgMv5VzMhlfwOpWyfI0LZ5mQkjwJVS88iXp1yjp7XDZxYGpkzYSjY6apeYuXfSD4fAIbudS8iv89/g8sFmoOQSHFwhZjPxy+MX2vr+wL4azCPr8oh5B8r/8WlCE2k1KmtLTQTYrFYuuBNKoVp2Ghq+XlDw/oHggaDyeieFCZO7iSdxjRfzmOkODqVS/zDvgPs6mzI3bMOD2gIEWALhmSuJfa3Z+U9GclxIvYBSuQFu1keqludwyfHwoV3+Ki6i7ue5SGzipBcg0uLPhraxfVdJOqSq/7grykNv6a5NDiBxMM6jKFjRjoAbvZ9cSwX2mRWZEfWLXiP9ihf4cJln3JElxQbPBSwIUjALBU5nRiTNjwAfRC9gUXJqZtlv4Pvss+VgLdoAF8evctC8dwJZPPAaYckNi/F332f5kduvpcZJBdOgrgriao/bmmFXwDUFVlxDAlsNlSmIfpquzzM3lSMRKJuOMmTjySGvTm3MGVvJ1RvGTb/Jax1171us/V9DU7TD8ADaZyvljuiHC/NRGvKdUE50eV4mcZGZfHLoIEBPoUhexxoZhDnJ2zLCKIViAK4PrSXZUWUq8eYBrcXRGrsj8pULXUstUgxcUdLErjL1MJsEkDtOqH+ZUpRsvnkNwwzv8XWx7/vuXLIj955dwq8IX3ldSEHrgg25U7UUisEgG+oTA3FUCmnPvCWR3TukH90s4Bp1lhB/K6KsAC3brYG3U4HvU/QEL4HwgLFAaV/3XY6nPEEMUZMhc2gjhtW9jQt2/IgarakfuOjhSgKeM4aXEk6nQzLn7pr6oWlOd+YEGN8230ubgTv+WG665+syO1L11dGHQLv4TvgnTv0j+TvIw7tZbQ1YyLce9H+gybPcVq0exJqz+tGP8coteNqmoJ3Abcu9WMg5cFpwDDLelqCymqJA12qficLDq/IMecVRtNXWMJbrivUcH3GctYdCRURKJHxvfpXkDSA2/qn5IPCusDLF3RaZ4JyJLVHA7Dmh3/d7JFqFF6Aw/02yvhK3mKiJKvyJy3O8SYEK72AaSsQIgqfBWKUUNsk4am+T2Sl7gx+ll+mQSp86VAYiRwN8RYLN+82kpfVbWvCzCDG5g6ToDESc7zMhjo3AAmflQu4AonIx3wx/ncdm+9YfTotzpO6zLXBBcisf6qO2aoB1cSq5OSqDNm2ctB1KqMu1vsxAGUauHB+n+Zq5vmTbQXLgCV/mcUmBm4N+QgPdPkFjwqIgUw2baVs04tYBdD4c2/g4SYtXYVht4qJYlFhrqX9VgLKQ5VvIYHY5lrRXWTkqH63mOs54vVbOo8HBJmxOrmZSAdzwoKkKmyzwLv4AR8o2NIabCYwM7GsVTwleSL1PEZYEmeKNwYLiv/prU+C94VhwLgd45TWlpwgHXzzfJybkjLOlCQAAvDEYeayK+kLZoK25eSK8o00I3fbtfX/37MmFHy4vXNIkC/QHZROrEErgHi1JIFJ9lKLfzRXQn7kvs9IARm0iTI39BSwlnfo7Zd9VWTd239gHEtyL8uhwWu3ZyqtdWkrec9L82lrRh/P+aSriBpFlxhg3lUK0krMlRE1NXBPTzXM7zO+Nil2Lh0kADwuz7BTxQ2PNJpDzUSBt5d1jMI1NXs8mTbmfSJ1zGCTmk1rERwXaECDVB1+HTDiW4/A3g1TrnqovBqKT9rvcXmBUbh1td3KOBTfFqrbqgTNQQ2cOM2//DGG29UEuwUv31NS2TYKKovcpDhIxs1SkGFERPRe6GIHg/Gs9KzvZGutyS4EmINjlj/xRLWOLIgl1uvufKuAJVXXsiaki74lR8F4L+dUqkSU84GtyTVKycqXALZAF+YpgjrWJGl2EExdCTfL54YX7H+iA7+mWj3+i4NNFAbF9K+Q73UwqTQRLUE3WobUFkVGJf4WyNQhZBY/ZrCq6X8rfcWmltHmqftRGIpjVINUvqF/yJGSBt798SJv1BN357xpQRLzTkgaosTXCYZLs0tFAP8sFiWNZG69Fxwk2tgiHc7OOtogKxzrHh8PHn2t98r5piMDo/Pya/ZfSZ2mNnFDWIVggLyJAixVHf5sibCVb34rhD1b8hTqrQw+f0ogWohOYoVR7KEZLzjSGMFPFEpSW48hssdF/dYybC2h/RZoAxYoXXwpQ+8OuT5jxurMHGvay7SKOV2t1lVQeJQzPifb5sFBxECCjSjAMVFXtAP5gKy5L3oML79FaPaxPGTJ+/XLOcO+5OhwcuUNs1YFbHT6kqsh3Nz1PnC+atjGz9fZInIw7Zbc69lk4es5RteJc+d+0NOVPJsNhgMZFXWJSk6Zx1GpZBTu7eERILWK429hjaj7xL2Oh2DBljYpd2UyvhLX3GNrMAJNALVkkrAWOZsO5UUhYzLCYzVE37KFIrhLtO0hMNi6U/Lk1CqHDGX9h18W4UCCxrVqYhVQNVbpjQmMH6ALAOeVNCeCTJvLwrI+1MwwKsgU30AAMtVB1nSSJ5r4I8H4wDJpLsnT969vdqiUi6arb2lZL+ErSI2qN1DrDT3Ey+LcMv13CEbyLzf/UieH7k+nxNQFaS6E0ivbCwNhrxWhVDZxIVETmVVyCbLlnG2IDEzFtKf1KQdkhyAV4z3a0mY9nkSsqxt5XyQVtb5hmrSuxZOoarVQCfoQcSu+ZbtW3oqdla6BFuqDASNasRuPAEIkyxI1T3JVnbVkrQXZCdSubBDqP2pbfSFBQIkWAqgG55v4KNjXXYNDmIFFNjcKID5TInrED4R9zHen7jiRmGOo7lS5QGv7Tqkw4dhrky6885JO3V0KjDc7f2R0k5LMg2qlxJq7dkRGue4oR3BjHFZsIoUHG3gZIXv9ddI2Pc8m2WIMQYDYAXG3Sx9R/rJKPtOuT5yMeW4uy4XFbVyYVkkoGJPbz740SfwoYS+/VFabGcdQA+MiX3hqLNDqMhgWXeA2viUAItURbt1awRYxBWQZiswX3lvI2U7Rj5Z1iGkWELj++PQjkIDEJXymGAG+j4IAQW2WAowattrqWPcgQ3pLE1TtzJqAFkmJGBH62EyEaFXR6YWE5q7DI2VHCr7esJRJ6R1R2SfoHAxXUEPJlrDCaSsikE75ZXdjH6VVfRsI0nM44rESahs0+QQj3GhfsIqh3KKkQTuYb+USFcpSDdplOwRjj/aRyldgSLDoKA/DmwoTJ42KiLHJQ7VZR2k6RKlO5Va0faXYg2fXQbGcJCSmwapOqBiBXn4o8ZrfrC7xbhQCZBha1pXysMdwABWHt7QDlfa8Mn+FmStJaJrVFodxA0osLlRoLy8nI0Zc8WKuBA3waXL84ahLnRuAFlwKaYfxxmbcPvtt3dYl0ssLvTl2ALDzYHCGgE8Bk3VCdg1t69xLeyvUPeTldQzXjulrYPmL8AChwQFC04PsG/1U58ddRZyOAzlDhziKYw9ADLBTNg86Ue1e7MGPlsO/wK/QRt8qwqW2k/VJEAoWjNK41Q/0bdK5JhR2HZxj6K+kxK4INjFCm1xqg8r2LgvIbjSUC0wBuOtgWpp/I8dHv74jji+cZAST5I2a9JR6txv4e4jCAEFtlwK4J5Ej9lfP2rUMteKXg/N+L9zBVmu60RgTjDALCkdd8cdd3Qku9zGDmSkeuk6aDaXJQxTG5+3/kXIXbOxWyhuH956xMK+LeXO3lhdYPTmZl8QdovY734T6xyDg1IfA/Q0AD9qXriVi5e7Y3/sfZSLLkCCuBb/Ep2xUmnsefXg8EVJTicXTYWdS/uFEr36CKiCdlMDFK3XFzclfwjAhgGtADq9DQ8/revI6RWt517Yt4I6Z6Ev1SSsUHFSzX0/tWZASksAUtYrSfJg3QGcckJ4wLR+qXkV+7tw9CFCM7sqASypEhbsw1SQWex6B+UFFCg2BQC2Fsfs2GiXi49zB1luCSTeQ41wyZ13TZ3aqdhtaKs8RmBwDhT4HwCVtuI2fe85A6QXt+ci57jx3xFNB1EVbJJwtQjOXb1DHj2/Fd9Z8iCXQp4eZbz425HK2YVTEw6fUwqIpWzQ37TjOtAv7NgF5R8q30coATXTDg2vqTi03VozvNJ0XXoRylcDFG1U2HFqvsDirAY6pf0hC+1VXyMGtJF9wV6XDZu5Nw7MDIL6PfsypDSZO1HuOu+kJoqujK6CGmCJGvCWkk29J9eMs1LzKub3suEPyw3WudjwATEpBGzjYXTxhkKKIGpAgc2eApWVlXy3fv3e41bsWrD0Zbqem7rQdd0yTWen0dq6W5FnwbVIKoT3GIHjiFfB6NSMYbxFjh1Tsrb0eJUC/YpbMnT6Lykxh+NcgsJWH6VD8cs4e7m1emgiBGNjquajCYscjqD2jnzkFkwfbDqxPgB+26ntjltraXu/q+Q4DfJPtUMWss4SzLJSQdxr2su4uyS264lE045Wkp5mQ+75q3BhMn1bGXQKHuKMXl4+5LHii8qhqo877lW4kgUnixXYiLxHkYjP7TWly5qQBk6Jccp3ofKmD8AGd8H+NjTw8d2b5FekH7Zj/BbAf08liSZogGt1fqyPO02keEWqclBMQIF2pcCIESPcaDT6Bm7BHo0TgqtyNXx3HF4BKdg5JZ06/QmG7x3iwI8krAew3DL2HpjCt55X9azJjUVO0DIYmY8pG/J07i4bsi4vJSJsv1xObsQlt8oMnYj46ihhb6bk1uJrbczzfAwJlwJ2kypCxjpxx8EpqsIE3Mx9EKEmTip60rLCFFLkXAGSXsHl4epXHUmAr+lHhePxM4tcZVI6fPa2jk7GyvHvf18AdDIyXxlEQ21PNfMAi+p/KDY9SuLWAMqMYZBeKUwY1BLgAgzoRfLWiBa+v5y4sQCbJ8VNDqRYVOsLvnB9QSXJaQgcGfzYr5jQLwUN1NTWuMkCrhffJJGIvyYLaeoYPAoo0BEpAKmTbQjxIs7ajUX91ksXDqpB3m8IkNXZ0PQLJCapLKQmSaFyiZbMOnMdbml4Sn3XDFssTT/YEfX3QJJQONVY0wbRiOVUwrD3JEgP1Bi6dyxUzCfzTl/VNMtmvxaMrINUZYMKvvJyoBqjBj2tWW7+/ISUAOrBkRLV+pNhx8jFmrv8GxxRf17eRakWADJd3GXI2B3hITOPVEubR+wTXwhh3Z9Emf5LIm0RCxBi8doFWHWXq214UBE3bkKKOjoyaFrRQGfJwGm/4Ez/C7YXXZTApqcejNdC6DQjHQmd5dr72PS9AylhuteZnyFDgL3Twx/XX5c5kr9vIkOn9xZU/z94weurJMGT1YBEnTLxKJkzQkG36m/9g9wCCrQ3BUaNGhWtr6l5wuHupTA0rvUckypWSoIs23G66YY+OlL6/Z0XTW1fG11Z/SRUBL6KPwHAgp2k4vrtOprQjFPDbvwGRXrkFD00ePqVXGcXY3eLnaKKJAft4q7tUu1xtLGNhLhrkdJVyoAThrYwzD3eHDZzj5wa10qisOMchvoc4ueJtVaKK+KrSs4d7WEspoqnCWUVIbEQREpP7zOHTNun8JWuZOHw+ptwinEwxp/iyq9Qu/kXrQPAUt/wyPkgaKnQ9LvDgx47VqHEnKKGhj++O9f1v6EP+qD/1PKQN8kId6Fds/R/aRMuHmFTwh5X30+ABtwNCRq+FsD73LR5+/jQs7sS5O+QnO0PsKSWs3cPq/OZFSOvqyUMYgcU2PIoICVZserquY7g12Hu27mALLkgAGSVmOHQRTvV1N2EPJMYp10I1lh4/HvrEzCmf0EipVgRMDTXjQihjQoPmX4jJFkFW3gig2ZcDUnHzWBk6qoZ2S7XfcNZuvTdrBrIcGxaFWzKBZ/qXZnLx8iVLqtysol03sIw0PkNqA50y6D3FhYc56e3MfYWqo89EAILOyi9J0SHjxiDH9m/YKTpv1APD921EobUVwBcFVhNizN0lD8K1elGpZN0svGSHpz1Ipo5FZuR4wpFD+OUh35GXe0xIdgBKFBxrMvNDnS8Lr9fHrLJVMeYrT+LDcVXypI8zw6M4/ALHR8ePOO8TPnn+1xKruKO+SCnBlx1uOB7inNT2l8x8jBZcFbgniHfzgjSbxEUACCKxTZufIy77i04fOcdm1dumARZ8XiZaehXllR0lmrHdguNAEteVwOF2xQwSzsXYIF05fBEfB30J5N8N7Q9c0aX0OCZ93BdA7hyce+g4k5RAiWBlUcTU8jiSrQvi8DFZ8oMU2bL43AhoJ0WHjT97CxKySpKeOP3fyTM6K+8Q84q9w4QacEVFuFsEsZQDlIs1B/nFrC0HcBYeHpoyPRT/G5R2fDZPSJdV08RRL8KIF0d3OdQIVsPf045n50T6CQO/H2SfrhS4qHw0JkX4vj/pnmeQ12aJzEHzxzMjMhMgKsDAejUgYW3iXNft2r4y83zbvJ7wYif4LV/qrIkWWYCAsD9TA+okCeEh874ExkwP7e7U5tUaNOPyKmzDoG34lmwiTweIBDmEYrgSkqvAB6tGDQHQQgoEFCgkQIAWfWlkdAULviEXIzevYwAshzOy2G0M2bcxIlXN2Ze5C9NGK9jmG8I130e9k05VAOgx3UqwAx/GyfG7PDg6cfkkEmLJOFBM44N11O50FyCxU3NJUMyN8nQRfwVq6r3S8lHbX3i0toPYGOTw4LvMdoIdt13hobMPKGtclp9f+BUAzvwPwliXpETE0/N3ChRXAFSExf+uxX/aSHG3rO5jT00jXN5JG1PiJYfhCT1trIh03w5eCGlQI7jzuZEw/F7pxwFFZ4YsgTY5AiHT6GuU6UsxfJq6AJk0V44eTEuPGS3qX6orcODZ+0YGjJjApyrPoBN2B4AV3JiKdJDbnYApIUYTxa15irFy1bAyn0a6P6FuhQL6cFkBeddIVW+NqJvnAmJ00GKlW0RvfyMmd0B2G4AfpsFMSO81sdD6jRAtvDHhwXkL+SF835sUYjfD4xy1U7yuwYFzW/48OFbdPsKSrwiZx4Oh7Pqq8suu6yWW9ZtuLfwYUMHm8khYO7jchVRgZsVbr5rwoTf55BF3kmaACwwdRuM404AJVw42/RVdiWBdq4jfTUdjvQzwIimRobPPJhAvZJd+oZYJ04JhYc+eQQY+oO40mYGTgUdCQNeeDDPqm+aFiXbIXgdxFd/JouOijV9mflXfANZAhXGt2q+eBryk2oaQbeDHe8DoMEFuahNw8On9Qv3qfgb7AC5WxwAABdZSURBVGmuRf2xsOfQ9tTm1a7JM4PUzFr/TjlVRyFSiqWzP0Nqg4t+sbtXDmiecBn8J/UUNHSFQ415ocEzfp8T0ILeXi7GsOG5H2Lqx5HzYVhIIQHxk4Rtk8guCX+ORfj/1A8AJIkHkCXcLoJpI3HF0jyMxVsBtOCcVy1IcAZa3EioOx91uRiSIVxuLX095UAPbN6g7n7KsqpezaoW885cw934XQCKKExRE+kVgGTY+HFinAAzhtmRYbP+Ghk27deqPCkyfHbf0LAZf4jHxDwAtjFg3n0xL3MAmKiUpAF33o6T+ONokwIRVeKmUDcWbnuwpUTP9yv8Eim0aVNpmLs5pYNRNG6sUqdNLmmStcUal1tdcVN9Mo9CfXrtgrNH1fxV6IHWK+cv68Nqsm//2LFjN9ZvFKMxnv6ha1pO5UmQhap2Qvrbxk2YcJ4qTfKN35Jj9a/Uw112+RPUfTcB1OSYf0O2zKjHDrwaY/E9MONXAbreYZb1Td3OPdeTe0/C5rQhQHwfEVVdhKnvjKlyEGxqjgJVDsD9YhWoA+yOZH450RfMDNJ7NzbB+j56vVSDJovM4pNigb4PzPD3xM1Oq9gyT3nwj27AYrQAthZTY91r3yL3t14HadfBCTsVhkXnA9ztisUhT7sr0A4XyWKBeh58CJIDeXwrJYA+sC9/zZo78m8pT72v5qDpp1HNwOEHBbIB0EJ08gZW0R9wUKBpWakFyDvoOK8NlXQZvXHmKeu9V7DfCznWlbglYAKkFqmxFb/LNjMXKrJqSMWWI/GrqM+rjLBPo3anNWRBythL5jx8dicjHu/HNCbv0juOCnYQ7K06JYCVjJTj+Evmn/rpAUj3MzApXIuDkdEywKzHHBudM+I7AhcoIRH9JyS4B+Q5H6HRMmupsCERI29DvfcG485HRKPfRSOkmlR1TczHrlWhSDRSARvTvjjgtj8A7xGo3q/gnbwb+qQMdMwNWMk2SrUYET8I4fzGfuacz+WjrAIussa4mEG00BDi5DoXG4Yi0+spbNvw6wOMz9cFFe9DPf1NjMQ2kM47xsiPUUFAg5KowIX2ei/QYF/U8TAM1oMB3LfD2ICKOBfJXUNL5YaPsnqXOwOduWe9ktp+zP1DoYa+PO3Yl+iDUhx0Yb2BzlKTtfJdtlnUo79fwHrrpJv7RFgvx54++8FWMmnx6u4JUw7C4c6rXCngbxEwqhkpB1Q6EaWnG9stUsgHOIANdiAWA0Z/AgCedTovLWgKihwHo+guckHNJoA3YCiLtSj01Wzip8bBpgul8P0Y0/bOtjwvPQY+yl0guMC9m01tdDXTxPR2PxpzzVV3p5aV6TskMmeFzPApNk5INA+S66ITjqOK9IDd0484hbywed2a54/ekvfCHYS27Jh9+72xGAMXXYDU4DWJ9ms6tGWOPf7aa6/9QJYzftq0Ur7mp3EYD93Au+UjLIesN5aSw1CWzCSngD5DkRxSBvoaOh4ZN6V/MlMd/QAj+wfGXHllk7mZfK/62VKyBKPT2ICZ94Z052iAi8NyY+oNixF2/WBgJdhBHw9mdTh145YbMn4Kr6haQ4dMr8FUgMiB6oJu7CSI1gOMrivXtDB4QQmIYUC+19Ce5Kdi87ydovuezfXxiuBKFoT+dZ/UGLsQA0rxxGKynlKCQLtgYRlKuXtMZG35+2TIzH/DZOi/GCw/0AirI7YF1mJ0A8/cg2juQXh3COLLU1nlAFdyVCQzy/ET6TkNI89TYBsmJ0bTAPcIIu7N0hYAq2nELH+hIfAHBlUM82ZHxlQSiNF4fXxtzU2IkwBYUItZ/e+73+zc+VD4dBqaO7BFm2EbJFzeBYUALGi7AvSdA6nB+nB43QoyePqPYD4boKNxELMUEtKuNG73Qj/jT4uASNCnuqEEsMyX/mkoIOc3YXuATru0fCu5I9g3d+7Cu+/IM0PXuoNmXIeeexqLa7l8px68NlDCbbnwlYMe2yKv4zE3YfvGN4TryEZi/gSmj1AnHbjWdyZc6wRpVQheecOQ5IbAB2TF1ItuTCEHHuCaQ26Kh8JLGx9n82XOiKgY8sSN2Kz9wpsb0geacmioO3ekrhw8iR2HVf1wgC0we7c6LPQNZOMPNfDLz0k9LeGCdMIY6krAcSGxi4AXgS/hYGNeNECl5XxzrMmOGXqjRRNcsoMwjEEtnicfCBe7IZX+R0sFjaCdA7CcpJn72Hza9gZkrwSwwMf7GOHIoBa8pKGeABAQmKp5sxfg9WCEe1BN2xlzMNni7D9dnBzNElzJTGVcLNrdWWv0bqV0yOh1OMZsJUbLVwDIuo5xJ932N38r1WC4lhVaGpIVwMLC8DNkNsjFMpkuACwp0wP+p3owTRucLr/mz6C6M1XoLecNGh02NO0k0KGx/bLdUe7MQP4ewPpp5UodfhYGmLrew0n6wwKwcvMAV7Lu0oUDOnwb0H9gavnN2+X1g21JcCX/8g4tAZbMcv6ZP/HBs69hrjsPDK0ndm05FtRAR87lTAajkr9ZDzR0N3yTP+VeBYxf7nRgQ0NgZg8PoptCYz9sepTtNykl4PwnTuKjyLxzcrql3nG6v63R9f8hhi5VlNmW3Cwe2sBdKJ5FGA5vfuMxdcEt8Ls4seR2nEndR4joGnyt6TidhhNqvgCrlGrItU0AMKQjJ4WkyJMspMTP9yuXs16kn/nJvDHHMOhjJIKuTw2LLqu1Bz9xXYg7uwDg75c73WWmaDD0Qlgcy/ANkgfWHcCiH8Yf2DlYpLTaAhwE0IKoEfG8uMl+Tkes1Irm+x3qJS7SzD90ljRR37R6CWeZ8TrbOXYn1c07UMdEu3IqHmkbxwIYsDcgpLNeSQstMfGwOHo0ASpvlFxu4oc5leolwmaHcOuBuKh/gsy5WJmh2DpbatpiNNXoY+hDjOVUPqFSrYZ+9XgSb+BJuEPUU92gofKq0gQ/kqJY8CMfx4OUpgvnn3YsNIE8OyK9KI5j/mfktzmMSdmGVue+Cu0ScbmOCeQ4YWxA1RNnTAGyczBt79BExkiZX+SgXZQyQbQBPDeHkEtXoBgYXsNmr2VgEDt57W/5Ku0TDnfErsMz90Fu9MCSnyU9fGq/x/3dTWA8EgphFyZYHCe18Zm27Tk/BE0y0T+ZpyvFfyn1ST7P9bPZ6rYpm/iGJR8K5o4CQ46BoW16kdM3SagGYklIxeHtWDI4XO/hfSZE7pL1N8TLk7CyvpTY2C5f53wXfachUy93pX+kKom6UFd5t1srJW0auaE9ss1uvAIea3vgyfaY3ztC49IXrKWncJ2unjrKE4/n2f6mhTf8knmm+5Ovc12sGrJO+5GurKbPII6WD1qGuV9841L7UoyPFbnbH6Vm21guuJgce2AikGQAyJZiMkVQjhyLQOSN8VITt/7dU/e1HiXz29TyUr43Z47wCWWHwvdCqvaotN/JPyTLkjlJUTnanqCLREGSDv7NRVmEDmDB3Zcs6SB4/sX18pFygHTT3hh7VjjuXQl+1FBF5YySCZrRQPa/NNqXdCDeyUh/aeABTHcxVL1XkRdHVCVrkf4zWbfmn+ljt/20eT6pv9tO3TwGgz2czMED+/Jbur/mibL6nSGvdPk3f5ZV/mkiNc8n29/J9SxNlq0+ypC/pCcEOx5ZW03f8FLG9TZIGfLLJo+0cTLl1/y5T+332u3JGDbVRu69E6w4ZTxsep3ft+btaPZb1gfS7az7oa3KZEZOUBXaVfGnsfv/I3oe8tTMUdsqJP17rymyOelf5/pUIlD4zxBxfkvcDD2Rg2qwScmW3f0lKpxn/F3YGtou8UUjxkjSo0nxGX7ku7hkyLbDPK7kTtUO7ziWcwmY9xp/QFZq45K0Tv1MfZ/ld0/y534IMB+ViL6gYc6IWjtmXw9w/pxnV1jQwnzM3LPxc9+zTHo5eeH81XnljFOHNonJDc/fEu4rCkzzvCqbktg7xcy/czXnImvOki9T3gRfAwoEFNiCKdA6agJDszasnwpd65+hXoFWpfXo7U4nT3IljRedO2wauxenIrHw5RkgxeIauwm72+98V6XlUjWvjSL/duVSdjHTLDrKcUtC/4I04QJg8JWJBbWYFWijLGnfJ8TH2IDcBAFgcVZ6ABRbxGAELR0CQyrU0YMEV8L9CLZ0F5Inv1jmS3XnXVBjRev+CBo8sFmALCm5EmIFjotf6PzUG06OKwshLvaFtEEmAQUCCvhLgbYRk7SJ4bEJcF0jJVk2bIj8rYFfucl6wWoaYPAmO0bGETBiv7K2n3rmS1i8X4MCou0KMr37+vjH0ODM9F+q4xe1fMwHbkMs3XzJJfbZkFp83mFAhZRIcLGS2+5lAPNfAV61PY/8Isvc87+1KP8dyp2boEdxsJ1y9SUA5M6/bdc91w5FFvsKLF68sMqqrx8L9S5cWID0HXXj59GAL4VZ6dnOdzWL4CYGBo9BCCgQUGBroUB2CwPAim3Cs6pD/gBj4HX+qMt8JLGUJlBShZMrVwAMTvb/6ok5sP+IPwd7sT+BmeOewuzI5mMLk4boa2HYeDn6YFmHBbq+NhqZAWTBju4NCInOkAbC3thrD/on2+WBK7LaIdbFTt1X7xLT23EUE+XgPOHI7+yY9XuM9795Y7EjbXpk34BGUGXOtpg4lzy7bLF0mpokn2+fEmQR60bYumNOYuPj90GNvCqK4eCBK/c17jhnON9Xv5mvqUJe1QkSBxQIKNAuFMgeKcAGJP5D9aM4/jkQYv93iY7DENLeqT2DLB/1wGm09+CzdWD8u7qH/JRcNWmaVJd+ufRe7JpHo90AWUWU5ElmTchqqFrOduZ//R+sXmlOnzWp7Zb1A/7L4s+c/onlREegr+Hwkm1sF2mWJp12i8Uu4UNdPbLAu0ePS4deRQ9C2jPFq2KjOBW/gx3fmnahR/Nmy3Hq+R5zxti6dh55auTXvkqumpc39/wNtqGNI3E6AmrkpfCThRjt0R0pFZNSZsrgc8qZbFXbw+Lzz/ooAFcp9Am+BhTYiiiQPcCSRMFC5zz71dt2lTUIJ94mg5lG242xS2ZOUT7qYce0gc7Ty94qOCPDPYaWadwHT0+XAGRtxP2ABR4qWCy8Rd3Fou6eapnhlxMLVhHBXYFbqJC9kODZjq6dgCPiJ8M2C85bQYeC9wFqKBdNWY6IPwVXA4OcZ5a+UxCpjAIxvKgA/fFvax7D5uJELOjPJ+rZDthb9kNCYvOGG48NsA1zsi/2j9nQQ6qRa774J3w/noiTuI8CX8HJQqHnZZqKeZI7CfDEZzhkd7pVZV1PXjl3HZiUPEkRhIACAQW2QgqoASyPQDDSXHT+aslAqMMHwtj0laItdHJ3Ko1GpfRIOC/D+9hAj5G9MAKnk4pkPAqGLhc1144OhiTpQw8AFUJlJRcJSOhg+zaDavEBHoAshKplcxv0uFLHmbfsLasmLi8gGwkXF295488D3D5LLzzg4EmtvgKIucSK15xjzT2vsFIZ1f6Q0r2nv/rYqlp/Oup4ISQ5Szyw49nrqWamGD9JH0K+gfuRq6z1sYFOqORNqdZVzCm/6NI58lMjv4E061K4PhkGFfp/PJBVDKAl535Cmr9GCPs2K1p7or1u6bNZ3LOYX5uD1AEFAgp0eArkvt3F7jk2fPZCsnbt22bXTgOxtP0eEqVDwdgSDgpzdgSYhmaSiUlmyW2cwOGvY4f4N3vd+hdIjx5Rsmik//YdaarQ5JGU5A2f/QYsVk82XftytPti+D7EVSJwSphXu0HFhoURwOFDnFy8xzZCc8mcM+V9CJt2wrjHxQOZfqgpE3mkF4nB5W2inAIcfEKf4hRe+nKbEDvdD4Dpl0idfeDUOaQLed6sKD0BbmHOBiDtj+tg4A1ZDhMMi1z6QtJDAgcvrVgGY/LHbCc+jayMrkorIeVwjiuNjmSalC5KV+vsniE7eBGEDRO+ZBvkpofUxg+cOo300heEaOQMoHNctaTvjbGJ/DBSc6FFuuK9uQi2If3HEBeHP5xpNuOPE8NYhblYXGDVtH5CSs3s/pXPEbLDIqNLZAiqeiGuyMDNCJJ35Ds3UwqTpgkUNJCfwv0B4PJJ4dgP2842y8iCkfAMn1sAOCzcfEtXJW/uJxhAuteZnsmb/+D1GwoMhSGaKbPguUcBSU8MKMlEsgqYfUxe97O594E3jlpcqcZ1JueXf+6osqKpjCRpivs9ZGf4EnIHWLL4hESl1u6/cDaJfz0/1LP8CEhcTgebOBYMCNdxyIVKLnTybxM+aLPmkol7fw3pCcf9Zfa/wH2ehOTiDWL3sciiM9v3RE6i7avtE1+41SzZ8CR89F4AAdswMPNeqHzKAt9Gu5PtlBOM21gF+Dug3zTLFM+QVb03pDt5BHyFq2Wc7zy6tknMtiI4WCdwJ1eaAFMzXJ8C9xSy//wOcK2GMYE74UpyzxxAF9XaiPH3FDG/f84Ikz1xh9WxcL99LPpgP4wheOjG4uoF9IM3BlP7Qy6UcpGQf3juxqWD9+9x1cfbOBc4345HXyXxunVkwRUSOKQm9HKU/2BC4roZ8jVmZbKgxnc5f5GX1zJNfaGW9PiArLSGz76XWBunm3rZMbiiaQS89h1GmdHNm1PeXJS0zxI0p85FD7g68m7NN7kQT8Xd6Itt0SdnGuSaENIsJN0AsDkd4PvpUOdOh+OuzdPQw0cDcG6/iSd54w9R03Zr09LlGEnOU/lGOHWgATZA4h+UhZ+LVVWvJIvOQ3/lpw4Eqsal9AWab01b1PDLu54w7dxPG73hoavTOtT1O8WbYlrLcqt/x70NocjaTxw2lOtgD7zZ9wEus8e0oYlrujAKopYlSvTQty7upcqWRfk6eNAP4AjVfuUpVxb/Ai6KJj32MkJxvj0uATkI194cjQJ+gfVrB9Ra3m2WYOzNAVcjE5cgQ66ZBEwcagdG3sOauBCeg9+OGdqPeG43gDr/6uxLTpWM9N/BDJeXbuea7lG4dOQEnGr8BRoDsAXdlWyfN1oamLn8LQOu4UC8ddgPfo5F8HXu6C8665Z/RGKdY2mlJYlUhAyfXQbXlqBn42WNyTfqn1yjRK+rIzAYbpH44NkR0o109aWcFpmXQLVSjRNxX6FfIYHxJaAfhu+lk40xIxQOb0d0d3csgnuB/juD2H2AnjrjHgYU3BCYJhfKDZjg32GWL3UZ/dSpji4lofg6eN4CWGn9Ym4vFznmK/rgupnu+Jmbk/JkdRKfsno/YYrvtCYduG4at41fB041yPbEMInZl+mRg3Hq8Ahghf0xJ3eA9BB3ZAITSvCQOjYl2PTGK8aqnIvysnJCv8X4/C+2zK9zar1t17DlZF3Uzoo+bVSx4K8beFI47vbkzP01NmlHooUHosk7AQ91xUYQ0uBm8zNJA8lqpfSPUMlwf8BGW15E/B/c4PFmvN79gnQKx8GPJMNqmNh5tqag8y1N3eTcr8XcX5Rm7qeJnnxUWVkZ1isquuFydH/ancx4K/6MGxW0hESjo0aNasPLf4JIU6ZMqag2jHKjGjx0Mw5xw6BOdfU6jCmppZGBVo4b1zPiXSqfeFDMf+MVFbQHY+svvjjHGyeaVRa8piCBkgOn6sTsopPexDSdWB9KDYAsjoWOHIlFD+CD9AUt8T9YnSBfg3m9g0uh38T1JcuFxr6xw3wl+XpNnIQOiGOhkVKOzWEgJdqNRY0YJZ3wzw4QRvSDymdXuEraH9waF6/K1UxbivZ+SlzyrXD4d1bthlUk0i9OymqdjgkgCzJGCp0pBRCVSFYjK1ZopLw7I3YNJb36NaBbvPnhG07K+3JSgysre5RKkOdumfQHjD/wfp3shPlIMB9jddsxzeiFe7d6QebSD2NxH4xN3NUoA6vFRPsUQvJvNUf8gHvnVthMX4UXNvl6vUM+uAiIIz9JjVdM8f+hpP9CiMSXgwaleqgz7wnpXi8oI3qDH/WFNmI/QXE5uBeoBUD5Oe6Hg4qY/gDfej/YzF1JnFiUfN3FIYuXgAZ+bQqKT4igxIACAQWKQ4H/B45zE97HpWqOAAAAAElFTkSuQmCC");
}
/* Each calculator's billboard face: the page body carries data-calc="basic", "static" or "digital" */
body[data-calc="static"]{--face:#13294b}
body[data-calc="digital"]{--face:#060a12}

/* ── 2. BASE ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5}
::selection{background:rgba(7,80,164,.16);color:inherit}
input,select{caret-color:var(--brand)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:0.5rem;top:-3rem;z-index:1000;background:var(--brand);color:#fff;padding:0.5rem 0.9rem;border-radius:0 0 3px 3px;font-size:0.8rem;font-weight:600;text-decoration:none;transition:top 0.15s}
.skip-link:focus{top:0}
.hidden{display:none!important}
[hidden]{display:none!important}  /* the hidden attribute wins over a component's display (.field is flex) */

/* ── 3. TOP BAR (colour logo, thin divider, small uppercase calculator name; buttons on the right) ── */
header{
  background:var(--bg);height:var(--bar-h);display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  padding:0 1.75rem;position:sticky;top:0;z-index:50;border-bottom:1px solid var(--rule);
}
.hdr-left{display:flex;align-items:center;gap:0.85rem;min-width:0}
/* Unlit: the one-colour logo. When the first estimate arrives the colour logo (.hdr-logo-fade) fades in: the lights come on. */
.hdr-logo{display:block;height:28px;width:auto;filter:brightness(0);opacity:0.86}
.hdr-logo-stack{position:relative;display:inline-flex;align-items:center}
/* Lit: the colour logo, painted as the fade image's background (its own pixels are moved out of view), so the reveal's
   opacity animation still drives it and the PDF still gets the white .hdr-logo. */
.hdr-logo-fade{position:absolute;top:0;left:0;opacity:0;filter:none;object-fit:none;object-position:-9999px 0;
  background:var(--logo) left center/contain no-repeat}
/* Once fully lit, drop the unlit layer so its edge pixels don't darken the colour logo's anti-aliasing. */
.hdr-logo-stack:has(.hdr-logo-fade[style*="opacity: 1"]) .hdr-logo:not(.hdr-logo-fade){visibility:hidden}
.hdr-div{width:1px;height:18px;background:var(--divider);flex:none}
.hdr-title{font-size:0.72rem;font-weight:700;letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--link);opacity:0.82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hdr-back{
  font-size:0.65rem;font-weight:600;letter-spacing:0.06em;
  color:var(--text-muted);text-decoration:none;
  display:flex;align-items:center;gap:0.4rem;transition:color 0.2s;
}
.hdr-back:hover{color:var(--orange)}
.hdr-home{display:flex;align-items:center;text-decoration:none;border-radius:2px}
/* Export PDF and Refresh appear once there are results */
.hdr-right{display:flex;align-items:center;gap:0.5rem;opacity:0;pointer-events:none;transition:opacity 0.3s}
body.results-visible .hdr-right{opacity:1;pointer-events:auto}
@media(prefers-reduced-motion:reduce){.hdr-right{transition:none}}
/* Top-bar buttons and the language switcher (i18n.js injects it with dark-header styles; these win on specificity) */
.hdr-btn,header .odl-lang__btn{
  font-family:var(--sans);font-size:0.62rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--link);background:transparent;
  border:1px solid var(--divider);border-radius:3px;
  height:32px;padding:0 0.75rem;cursor:pointer;display:flex;align-items:center;gap:0.45rem;
  transition:background-color 0.2s,color 0.2s,border-color 0.2s;
}
.hdr-btn:hover,header .odl-lang__btn:hover{background:var(--brand-light);color:var(--brand);border-color:var(--brand)}
.hdr-btn svg{width:13px;height:13px;flex:none}
header .odl-lang__btn{padding:0 0.6rem}
header .odl-lang__menu{border-color:var(--rule);border-radius:4px;box-shadow:0 10px 24px -6px rgba(19,41,75,.18)}
header .odl-lang__opt{font-family:var(--sans);border-radius:2px}
header .odl-lang__opt:hover{background:var(--surface-inset)}
/* The button words never wrap; from 680px down the buttons are icon-only (the label is clipped, not removed, so it stays the accessible name) */
.hdr-btn{white-space:nowrap}

/* ── 4. WORKSPACE: inputs column | results column (results hidden until the first Generate) ── */
.workspace{
  display:flex;align-items:flex-start;position:relative;
  min-height:calc(100vh - var(--bar-h));
}
.input-col{
  width:100%;flex-shrink:0;
  background:var(--surface);
  border-right:1px solid var(--rule);padding:2rem 1.75rem;
  scrollbar-width:thin;scrollbar-color:var(--divider) transparent;
}
/* No width transition: the switch to the docked layout happens in one step (calc-reveal.js pushes the old screen out as the
   new one arrives), so the form never re-wraps on screen and the charts are drawn once, at their final size. */
.input-col-inner{max-width:460px;margin:0 auto}
.results-col{
  flex:1;min-width:0;display:none;
  background:var(--bg);padding:2rem 2rem 3rem;
}
body.results-visible .input-col-inner{max-width:none;margin:0}
body.results-visible .results-col{display:block} /* its arrival is calc-reveal.js's */
/* Beside the results the inputs column is narrow: every form grid is one column */
body.results-visible .fgrid{grid-template-columns:1fr}
body.results-visible .time-row{flex-wrap:wrap}
body.results-visible .rate-row,body.results-visible .unit-row{flex-wrap:wrap}
body.results-visible .watts-row{flex-direction:column}

@media(max-width:768px){
  .workspace{flex-direction:column;min-height:auto}
  .input-col{width:100%!important;border-right:none;border-bottom:1px solid var(--rule);position:static;top:auto}
  .input-col-inner{max-width:none!important;margin:0!important}
}

/* Phones: Inputs / Results tab bar under the top bar */
.m-tabs{display:none}
.m-tab svg{width:15px;height:15px}
@media(max-width:768px){
  body.results-visible .m-tabs{
    display:flex;position:sticky;top:var(--bar-h);z-index:40;
    background:var(--surface);border-bottom:1px solid var(--rule);
  }
  .m-tab{
    flex:1;padding:0.8rem 0.5rem;background:none;border:none;
    border-bottom:2px solid transparent;font-family:var(--sans);
    font-size:var(--fs-2xs);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;
    display:flex;align-items:center;justify-content:center;gap:0.45rem;
  }
  .m-tab.active{color:var(--brand);border-bottom-color:var(--brand)}
  body.results-visible.mv-results .input-col{display:none}
  body.results-visible.mv-inputs .results-col{display:none}
}
@media(max-width:480px){
  header{padding:0 1rem}
  .hdr-title,.hdr-div{display:none}
  /* Export PDF and Refresh become icon-only. The label is clipped away visually (the .sr-only recipe), not display:none, so the translated
     words stay each button's accessible name. */
  .hdr-btn{position:relative;min-width:40px;min-height:40px;justify-content:center;padding:0}
  .hdr-btn svg{width:16px;height:16px}
  .hdr-btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  header .odl-lang__btn{min-height:40px}
  header .odl-lang{margin-right:0.5rem}
  .hdr-right{gap:0.35rem}
  /* a long translated word ("Energieüberschuss unverkauft") must not set the width of the whole results column */
  .hero-part{min-width:0}
  .hero-part-lbl{overflow-wrap:anywhere}
}
@media(max-width:420px){
  header{height:64px}
  .hdr-logo{height:20px}
  body.results-visible .m-tabs{top:64px}
  .workspace{min-height:calc(100vh - 64px)}
}
@media(max-width:380px){
  header{padding:0 .75rem}
  .hdr-logo{height:16px}
}
/* At 320px the bar's 0.5rem gap would push the language button over the end of the logo */
@media(max-width:340px){
  header{gap:0}
}
@media(max-width:360px){
  .exec-summary .hero-breakdown{gap:0.4rem}
  .exec-summary .hero-part{padding:0.5rem 0.4rem}
}
@media(max-width:1000px){.hdr-title,.hdr-div{display:none}}
@media(max-width:680px){
  .hdr-btn{position:relative;min-width:40px;min-height:40px;justify-content:center;padding:0;gap:0}
  .hdr-btn svg{width:16px;height:16px}
  .hdr-btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  header .odl-lang__btn{min-height:40px}
}
/* Just above that, a long translated name wraps onto a second line instead of being cut off with "…" */
@media(min-width:1001px) and (max-width:1180px){.hdr-title{white-space:normal;line-height:1.3;hyphens:auto}}

/* ── 5. INPUTS: page title, input groups, field grid, labels, controls, units, hints ── */
.input-section-title{
  font-size:var(--fs-xl);font-weight:700;color:var(--head);
  margin-bottom:0.45rem;letter-spacing:-0.02em;line-height:1.15;text-wrap:balance;
}
h1.input-section-title{margin-top:0}
.input-section-sub{font-size:var(--fs-xs);color:var(--text-muted);font-weight:500;margin-bottom:var(--sp-7);line-height:1.55}
.input-group{
  margin-bottom:var(--sp-7);
}
.input-group-hdr{
  font-family:var(--sans);font-size:var(--fs-2xs);font-weight:700;
  letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--link);
  margin-bottom:0.8rem;padding-bottom:0.5rem;border-bottom:1px solid var(--rule);
}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.25rem}
.fgrid.cols-3{grid-template-columns:1fr 1fr 1fr} /* three short fields on one row (counts, hours) */
.field{display:flex;flex-direction:column;gap:0.4rem}
.field.full{grid-column:1/-1}
/* Hint and error message share one cell, so a field is always label / control / foot (3 grid items). */
.field-foot{display:flex;flex-direction:column;gap:0.35rem}
/* Two fields on one row whose labels can wrap to different line counts: each field adopts the grid's rows
   (label / control / hint) so the controls line up. Without subgrid support they simply stay independent columns. */
@supports (grid-template-rows:subgrid){
  .fgrid.align-controls>.field{display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:0.4rem}
  .fgrid.align-controls>.field-2row{grid-row:span 2}
  .fgrid.align-controls>.field>*{align-self:start}
  .fgrid.align-controls>.field>.lbl{align-self:end} /* a short label hugs its control instead of floating above a gap */
}

.lbl{
  font-family:var(--sans);font-size:var(--fs-label);font-weight:600;
  letter-spacing:0;color:var(--text);line-height:1.35;
  display:flex;align-items:center;gap:0.4rem;
}
.lbl-badge{
  font-family:var(--sans);font-size:0.52rem;font-weight:600;
  padding:0.1rem 0.35rem;border-radius:2px;letter-spacing:0.04em;
  white-space:nowrap;
}
.lbl-badge.placeholder{background:var(--amber-light);color:var(--amber);border:1px solid var(--amber-border)}
.lbl-badge.estimated{background:var(--brand-light);color:var(--brand);border:1px solid var(--brand-border)}
.lbl-badge.verified{background:var(--green-light);color:var(--green);border:1px solid var(--green-border)}

input[type=number],input[type=text],select{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  color:var(--text);font-family:var(--sans);font-size:var(--fs-control);font-weight:500;
  padding:0.55rem 0.65rem;width:100%;outline:none;
  transition:border-color 0.2s,box-shadow 0.2s;
  -webkit-appearance:none;appearance:none;
}
input[type=number]:hover,input[type=text]:hover,select:hover{border-color:var(--border-hover)}
input[type=number]:focus,input[type=text]:focus,select:focus{
  border-color:var(--brand);box-shadow:var(--focus-ring);background:var(--surface);
}
/* Hide native number spinners so digits never clip */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
input[type=number]{-moz-appearance:textfield}
select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2356606d'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 0.75rem center;padding-right:2rem;cursor:pointer;
}

/* Clock time: hour : minute [AM/PM] */
.time-row{display:flex;align-items:center;gap:0.4rem;flex-wrap:wrap}
.time-row input{width:58px;text-align:center;padding:0.55rem 0.45rem;flex-shrink:0}
.time-sep{font-family:var(--sans);font-weight:600;color:var(--text-muted);font-size:1rem}
.ampm-sel{width:auto!important;min-width:68px;padding:0.55rem 1.9rem 0.55rem 0.7rem;cursor:pointer;flex-shrink:0}
/* A control with its unit: [prefix] control [suffix] [badge]. .unit-row / .unit-pfx / .unit-sfx are the names to use;
   .rate-row / .rate-pfx / .rate-sfx are the same component under Basic's older names. */
.rate-row,.unit-row{display:flex;align-items:center;gap:0.45rem}
.rate-pfx,.unit-pfx{font-family:var(--sans);font-size:var(--fs-control);font-weight:600;color:var(--text-muted);flex-shrink:0}
.rate-row input,.unit-row input,.unit-row select{flex:1;min-width:64px}
.rate-sfx,.unit-sfx{font-family:var(--sans);font-size:var(--fs-2xs);font-weight:600;color:var(--text-muted);white-space:nowrap;flex-shrink:0}
.rate-badge{
  background:var(--amber-light);color:var(--amber-text);border:1px solid var(--amber-border);
  font-family:var(--sans);font-size:var(--fs-2xs);font-weight:600;letter-spacing:0.02em;
  padding:0.18rem 0.45rem;border-radius:2px;white-space:normal;flex-shrink:0;
  max-width:46%;text-align:center;line-height:1.25;
}
/* A select with an optional custom number beside it */
.watts-row{display:flex;gap:0.4rem}
.watts-row select{flex:1}
.watts-row input{width:100px;flex-shrink:0}
/* Range slider */
input[type=range]{
  -webkit-appearance:none;flex:1;height:4px;
  background:linear-gradient(90deg,var(--brand) var(--pct,80%),var(--rule) var(--pct,80%));
  border-radius:2px;outline:none;cursor:pointer;border:none;padding:0;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;width:16px;height:16px;border-radius:50%;
  background:var(--brand);border:2px solid #fff;
  box-shadow:0 1px 3px rgba(19,41,75,0.3);cursor:pointer;
}
/* A slider with its value at the right: <div class="range-row"><input type="range"><span class="range-val">80%</span></div> */
.range-row{display:flex;align-items:center;gap:0.6rem}
.range-val{font-family:var(--sans);font-size:var(--fs-md);font-weight:600;color:var(--brand);min-width:36px;text-align:right;font-variant-numeric:tabular-nums}
/* Helper text under a control: one short factual line */
.hint{font-family:var(--sans);font-size:var(--fs-xs);color:var(--text-muted);font-weight:500;margin-top:0.1rem;line-height:1.45}
/* A figure worked out from the control above it ("≈ $52,908 USD" under a local-currency amount): one step stronger than a hint */
.hint.derived-line{color:var(--text-secondary)}
.hint[hidden]{display:none}

/* Segmented choice (two to four short options, one active) */
.toggle-group{display:flex;border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.toggle-btn{flex:1;padding:0.55rem 0.75rem;background:var(--surface);border:none;cursor:pointer;
  font-family:var(--sans);font-size:var(--fs-control);font-weight:500;color:var(--text-secondary);transition:background-color 0.2s,color 0.2s}
.toggle-btn:not(:last-child){border-right:1px solid var(--border)}
.toggle-btn:hover{background:var(--brand-light);color:var(--brand)}
.toggle-btn.active{background:var(--face);color:#fff}

/* Collapsible input group (long forms only): the group title is a button with a drawn chevron and an optional count on the right.
   <div class="input-group collapsible"><button type="button" class="input-group-hdr" aria-expanded="true" aria-controls="g1">Title
   <span class="input-group-count">3 of 4 set</span></button><div class="input-group-body open" id="g1">...</div></div> */
.input-group.collapsible{margin-bottom:var(--sp-3)}
.input-group.collapsible>.input-group-hdr{
  display:flex;align-items:center;gap:.6rem;width:100%;background:none;border:none;border-bottom:1px solid var(--rule);
  text-align:left;cursor:pointer;min-height:40px;margin-bottom:0;padding:.55rem 0 .5rem;
}
.input-group.collapsible>.input-group-hdr::after{content:"";flex:none;width:12px;height:12px;background:currentColor;transition:transform 0.25s;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.input-group.collapsible>.input-group-hdr[aria-expanded="true"]::after{transform:rotate(180deg)}
.input-group.collapsible>.input-group-hdr:hover{color:var(--orange)}
.input-group-count{margin-left:auto;white-space:nowrap;flex:none;font-size:var(--fs-2xs);font-weight:500;letter-spacing:0;text-transform:none;color:var(--text-muted);font-variant-numeric:tabular-nums}
.input-group-count.needs{color:var(--red);font-weight:600}
.input-group-body{overflow:hidden;max-height:0;opacity:0;transition:max-height 0.4s ease,opacity 0.3s ease}
.input-group-body.open{max-height:4000px;opacity:1;overflow:visible;padding:var(--sp-5) 0 var(--sp-5)}
@media (prefers-reduced-motion: reduce){.input-group-body,.input-group.collapsible>.input-group-hdr::after{transition:none}}

/* Form-level error banner above Generate (shown by the page script) */
.error-banner{background:var(--red-light);border:1px solid #fecaca;border-radius:8px;padding:0.75rem 1rem;margin-bottom:0.75rem;color:var(--red);font-size:var(--fs-md);font-weight:500}

/* ── 6. GENERATE BUTTON: a small board. Face colour, tracked capitals and an arrow; on hover an amber lamp strip glows along its bottom edge ── */
.calc-btn{
  position:relative;overflow:hidden;isolation:isolate;
  width:100%;margin-top:var(--sp-7);padding:0.95rem 1rem;
  display:flex;align-items:center;justify-content:center;gap:0.6rem;
  background:var(--face);color:#fff;border:none;border-radius:var(--r);
  font-family:var(--sans);font-size:0.7rem;font-weight:700;
  letter-spacing:var(--track-caps);text-transform:uppercase;cursor:pointer;
  transition:gap 0.3s var(--ease-out),background-color 0.2s;
}
.calc-btn::after{content:'\2192';font-size:1rem;letter-spacing:0;line-height:1;transition:transform 0.3s var(--ease-out)}
.calc-btn::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;z-index:-1;pointer-events:none;
  background:var(--lamp);box-shadow:0 -6px 18px 3px rgba(255,213,138,0.55);
  opacity:0;transition:opacity 0.45s;
}
.calc-btn:hover{gap:0.9rem}
.calc-btn:hover::before,.calc-btn:focus-visible::before{opacity:1}
.calc-btn:active{background-color:#064a96}
@media (prefers-reduced-motion: reduce){
  .calc-btn,.calc-btn::before,.calc-btn::after{transition:none}
}

/* ── 7. KEYBOARD FOCUS AND FIELD ERRORS ── */
:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
input:focus-visible,select:focus-visible{outline:2px solid var(--brand);outline-offset:2px;box-shadow:0 0 0 3px rgba(7,80,164,0.15)}
.calc-btn:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.field-error input,.field-error select{border-color:var(--red)!important;background:var(--red-light)}
.field-error-msg{display:none;color:var(--red);font-size:var(--fs-xs);font-weight:600;margin-top:0.2rem}
.field-error .field-error-msg{display:block}

/* ── 8. GENERATE TRANSITION: calc-reveal.js + calc-reveal.css (the push from the inputs to the report; nothing here) ── */

/* ── 9. RESULTS PALETTE: the results column has its own warmer tokens and rounded cards ── */
.results-col{
  --bg:#f8f7f5;--surface:#ffffff;--surface-warm:#faf9f7;--surface-inset:#f3f1ee;
  --border:#e0dbd4;--border-light:#ebe7e1;
  --text:#1a2332;--text-secondary:#475569;--text-muted:#5f6b7a;--text-faint:#6a7280;
  --navy:#162336;--brand-light:rgba(7,80,164,0.08);--brand-border:rgba(7,80,164,0.18);
  --r:10px;--r-lg:14px;
  --shadow:0 1px 3px rgba(0,0,0,0.04),0 1px 2px rgba(0,0,0,0.06);
  --shadow-md:0 4px 6px -1px rgba(0,0,0,0.05),0 2px 4px -2px rgba(0,0,0,0.05);
  --shadow-lg:0 10px 15px -3px rgba(0,0,0,0.05),0 4px 6px -4px rgba(0,0,0,0.05);
  color:var(--text);
}

/* Figures line up digit for digit (Montserrat has tabular figures) */
.exec-big,.exec-local,.exec-range,.hero-part-val,.tile-val,.tile-local,.assumption-val{font-variant-numeric:tabular-nums}

/* ── 10. RESULTS HEADLINE CARD: eyebrow + place chip, the big USD figure, local currency, range, Sold / Unsold split, explanation, caveat ── */
.loc-chip{
  display:inline-flex;align-items:center;gap:0.35rem;
  background:var(--brand-light);color:var(--brand);
  font-family:var(--mono);font-size:var(--fs-2xs);font-weight:500;
  padding:0.3rem 0.7rem;border-radius:20px;margin-bottom:1.25rem;
}
.exec-summary{
  background:var(--surface);border:1px solid var(--border-light);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-md);
  position:relative;overflow:hidden;
}
.exec-summary::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--teal),var(--brand));border-radius:4px 0 0 4px;
}
.exec-eyebrow{
  font-family:var(--mono);font-size:var(--fs-2xs);font-weight:500;
  letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);
  margin-bottom:0.5rem;display:flex;align-items:center;gap:0.4rem;
}
/* Small muted pill naming a figure's currency or period (kept out of its label's text so i18n still matches the label) */
.unit-tag{
  flex:none;font-family:var(--mono);font-size:var(--fs-2xs);font-weight:600;letter-spacing:0.08em;
  color:var(--text-muted);background:var(--surface-inset);border:1px solid var(--border);
  border-radius:var(--r-pill);padding:0.1rem 0.45rem;line-height:1.3;
}
.exec-big{
  font-weight:800;letter-spacing:-0.03em;
  color:var(--text);line-height:1;
}
.exec-local{color:var(--text-secondary);font-weight:600;letter-spacing:-0.01em}
.exec-range{
  font-family:var(--mono);font-size:0.78rem;font-weight:500;
  color:var(--text-secondary);
}
.exec-range span{color:var(--teal-dark);font-weight:600}
.exec-sub{color:var(--text-muted);font-weight:400}
.hero-breakdown{
  display:flex;justify-content:center;
  border-top:1px solid var(--border-light);
}
.hero-part{
  flex:1;min-width:0;text-align:center;border-radius:var(--r);
  background:var(--surface-inset);border:1px solid var(--border-light);
}
.hero-part-lbl{
  font-family:var(--mono);font-size:var(--fs-2xs);font-weight:500;
  letter-spacing:var(--track-caps-sm);text-transform:uppercase;color:var(--text-muted);margin-bottom:0.2rem;
}
.hero-part-val{font-size:var(--fs-fig-sm);font-weight:700;letter-spacing:-0.02em;color:var(--text)}
.hero-part.sold{border-left:3px solid var(--brand)}
.hero-part.unsold{border-left:3px solid var(--amber)}
.hero-part-note{font-family:var(--sans);font-size:var(--fs-xs);font-weight:400;color:var(--text-faint);margin-top:0.25rem;line-height:1.3;text-transform:none;letter-spacing:0}
.hero-part-plus{font-family:var(--mono);font-size:1rem;color:var(--text-muted);flex-shrink:0}
.hero-explain{
  font-family:var(--sans);font-size:var(--fs-sm);font-weight:400;
  color:var(--text-muted);
  border-top:1px dashed var(--border-light);
}
.hero-explain b{color:var(--text-secondary);font-weight:600}

/* ── 11. RESULTS SECTION TITLE, TILES, CO2 FACT ── */
.section-hdr{
  font-family:var(--mono);font-size:0.72rem;font-weight:700;
  letter-spacing:0.05em;text-transform:uppercase;color:var(--brand);
  margin:.9rem 0 .45rem;padding-bottom:0.35rem;
  border-bottom:1px solid var(--border-light);
}
.section-hdr .unit-tag{margin-left:0.5rem;vertical-align:middle}
.tiles{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:0.5rem;margin-bottom:0.5rem;align-items:start;
}
/* Every tile is the size container its figure is measured against */
.tile{
  background:var(--surface);border:1px solid var(--border-light);
  border-radius:var(--r);padding:0.65rem 0.85rem;min-height:66px;
  position:relative;overflow:hidden;box-shadow:var(--shadow);
  container-type:inline-size;
}
.tile[title]{cursor:help}
/* The coloured left rule names the figure's family: bl brand, tl teal (energy), gn green (CO2), or orange (cost), am amber, rd red */
.tile::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:var(--r) 0 0 var(--r)}
.tile.bl::before{background:var(--brand)}
.tile.tl::before{background:var(--teal)}
.tile.rd::before{background:var(--red)}
.tile.or::before{background:var(--orange)}
.tile.gn::before{background:var(--green)}
.tile.am::before{background:var(--amber)}
.tile-lbl{
  font-family:var(--mono);font-size:var(--fs-2xs);font-weight:500;
  letter-spacing:var(--track-caps-sm);text-transform:uppercase;color:var(--text-muted);
  margin-bottom:0.25rem;line-height:1.3;
}
/* A figure never breaks across lines: it stays on one line and its size follows its tile (19% of the tile's width),
   so "$999,999" fits the narrowest tile. fitTileVal (page script) shrinks a longer one. */
.tile-val{
  font-size:min(1.5rem,19cqi);font-weight:800;letter-spacing:-0.02em;color:var(--text);line-height:1.05;
  white-space:nowrap;
}
.tile-val.big{font-size:var(--fs-fig-lg);font-weight:800;letter-spacing:-0.03em}
.tile-hint{font-family:var(--mono);font-size:var(--fs-xs);color:var(--text-faint);margin-top:0.25rem;font-weight:400}
/* Local-currency equivalent under a tile's USD figure (non-USD countries only) */
.tile-local{font-size:.75rem;color:var(--text-muted);margin-top:0.15rem;line-height:1.3;overflow-wrap:anywhere}
/* A short caption under a figure ("about $X a month") */
.tile-caption{font-size:.75rem;color:var(--text-muted);margin-top:0.2rem;line-height:1.3}
.tile-stack{display:flex;flex-direction:column;gap:0.5rem;min-width:0}
/* A rotating everyday equivalent of the CO2 figure, under its tile. The box is a fixed height that holds two lines, so it does not jump as the facts rotate. */
.co2-equiv{
  display:flex;align-items:center;gap:0.45rem;
  background:#f4fbf7;border:1px solid #d6efe0;border-radius:var(--r);
  padding:0 0.6rem;height:33px;
  transition:opacity 0.3s ease;overflow:hidden;
}
.co2-equiv-icon{font-size:1.05rem;line-height:1;flex-shrink:0}
.co2-equiv-fact{font-size:0.66rem;font-weight:700;color:var(--text);line-height:1.2;min-width:0;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}

/* ── 12. RESULTS CARDS: charts, key assumptions, method, notes ── */
.chart-card{
  background:var(--surface);border:1px solid var(--border-light);
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);margin-bottom:0.75rem;
}
.chart-card-hdr{padding:.65rem 1rem .45rem;border-bottom:1px solid var(--border-light)}
.chart-card-title{font-size:var(--fs-md);font-weight:600;color:var(--text);margin-bottom:0.15rem}
.chart-card-sub{font-family:var(--mono);font-size:var(--fs-xs);color:var(--text-muted);line-height:1.4}
.chart-box{width:100%;height:clamp(240px,32vw,320px);position:relative}

/* Expandable section ("How this is calculated"): the whole row is the control, with a drawn chevron */
.expand-hdr{
  display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;user-select:none;
  padding:.75rem .9rem;margin-top:.25rem;border:1px solid var(--border-light);border-radius:var(--r);background:var(--surface);
}
.expand-hdr:hover{border-color:var(--brand-border);background:var(--brand-light)}
.expand-hdr h3{font-size:var(--fs-md);font-weight:700;color:var(--text-secondary);margin:0}
.expand-toggle{
  font-size:0;color:var(--text-muted);transition:transform 0.25s;
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border-radius:4px;background:var(--surface-inset);
}
.expand-toggle::before{content:"";width:12px;height:12px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.expand-hdr:hover .expand-toggle{color:var(--brand)}
.expand-toggle.open{transform:rotate(180deg)}
.expand-body{overflow:hidden;max-height:0;opacity:0;transition:max-height 0.4s ease,opacity 0.3s ease}
.expand-body.open{max-height:9999px;opacity:1;padding-top:0.5rem}
@media (prefers-reduced-motion: reduce){.expand-toggle,.expand-body{transition:none}}

/* Method card: a titled paragraph explaining one step of the calculation */
.method-card{
  background:var(--surface);border:1px solid var(--border-light);
  border-radius:var(--r);padding:0.85rem 1rem;margin-bottom:0.5rem;
  box-shadow:var(--shadow);
}
.method-card h4{font-size:var(--fs-label);font-weight:600;color:var(--text);margin-bottom:0.4rem}
.method-card p{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.6;font-weight:400}
.method-card code{
  font-family:var(--mono);font-size:.72rem;background:var(--surface-inset);
  padding:0.1rem 0.3rem;border-radius:3px;color:var(--text);
}

/* Key assumptions (the summary of inputs): label left, value right, hairlines between */
.assumptions-card{
  background:var(--surface-warm);border:1px solid var(--border-light);
  border-radius:var(--r);padding:0.85rem 1rem;margin-bottom:0.75rem;
}
.assumptions-card h4{
  font-family:var(--mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:0.06em;
  text-transform:uppercase;color:var(--text-muted);margin-bottom:0.5rem;
}
.assumption-row{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:.32rem 0;font-size:var(--fs-sm);
}
.assumption-row:not(:last-child){border-bottom:1px solid var(--border-light)}
.assumption-label{color:var(--text-secondary);font-weight:400}
.assumption-val{font-family:var(--mono);color:var(--text);font-weight:500;font-size:.76rem}

/* Disclaimer / note card (upright: Montserrat is loaded upright only) */
.disclaimer-card{
  background:var(--surface-warm);border:1px solid var(--border-light);
  border-radius:var(--r);padding:0.75rem 1rem;
  font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6;font-style:normal;
}

/* Long words in running text (German compounds, French) wrap inside their card with a hyphen; figures and labels never break.
   <html lang> follows the page language (i18n.js), which tells the browser whose hyphenation to use. */
.hero-part-lbl,.tile-lbl{overflow-wrap:anywhere;hyphens:auto}
.exec-sub,.hero-explain,.hero-part-note,.tile-hint,.tile-caption,.chart-card-sub,.disclaimer-card,.method-card p,.assumption-val{overflow-wrap:anywhere;hyphens:auto}
/* Comfortable line length for the longer notes (about 70 characters a line) */
.exec-sub,.hero-explain,.method-card p{max-width:70ch}

/* ── 13. FOOTER ── */
footer{
  padding:16px 16px 22px;text-align:center;
  border-top:1px solid var(--rule);background:var(--bg);
}
footer .meth{font-size:0.7rem;font-weight:700;letter-spacing:0.02em;color:var(--link);text-decoration:none;border-radius:2px}
footer .meth:hover{text-decoration:underline;text-underline-offset:3px}
footer .copy{margin-top:8px;font-size:.64rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted)}
footer .disc{margin:5px auto 0;font-size:.7rem;font-weight:500;letter-spacing:0.03em;color:var(--text-muted);max-width:44rem;line-height:1.5}

/* ── 14. LONG RESULTS PAGES: sticky jump links, results sections, sub-titles, two charts side by side ── */
/* Jump links under the top bar, one per results section; the page script marks the one in view .active.
   <nav class="jump-nav" aria-label="Sections"><a class="jump-link" href="#sec-energy">Energy</a>...</nav>
   Sticky on desktop; on phones it scrolls with the page (the Inputs / Results tabs hold the top). */
.jump-nav{
  display:flex;gap:.15rem;overflow-x:auto;scrollbar-width:none;
  background:var(--bg);border-bottom:1px solid var(--border-light);margin:0 0 1rem;padding:.35rem 0 0;
}
.jump-nav::-webkit-scrollbar{display:none}
.jump-link{
  flex:none;font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);text-decoration:none;white-space:nowrap;
  padding:.5rem .8rem .55rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color 0.2s,border-color 0.2s;
}
.jump-link:hover{color:var(--brand)}
.jump-link.active{color:var(--brand);border-bottom-color:var(--brand)}
@media(min-width:769px){.jump-nav{position:sticky;top:72px;z-index:20}}
/* Phones and touch screens: each link is a 40px tap target */
@media(max-width:768px),(pointer:coarse){.jump-link{min-height:40px;display:inline-flex;align-items:center}}
/* A results section: the jump links' targets, spaced apart; each opens with a .section-hdr */
.results-sec{scroll-margin-top:120px}
.results-sec+.results-sec{margin-top:1.25rem}
@media(max-width:768px){.results-sec{scroll-margin-top:118px}}
/* A small sub-title inside a results section (sentence case, not tracked capitals) */
.sub-hdr{font-size:var(--fs-md);font-weight:700;color:var(--text);margin:.9rem 0 .45rem}
/* One line under a section title saying what the section shows */
.section-desc{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.55;margin:0 0 .6rem;max-width:70ch}
/* Two charts side by side on a wide results column, stacked on a narrow one */
.chart-pair{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;margin-bottom:.75rem}
.chart-pair>.chart-card{margin-bottom:0}
@container results (min-width:700px){.chart-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* ── 15. RESPONSIVE: form and tiles ── */
@media(max-width:580px){
  .fgrid{grid-template-columns:1fr}
  .fgrid.cols-3{grid-template-columns:1fr}
  .field.full{grid-column:1}
  .tiles{grid-template-columns:1fr 1fr}
}
/* Desktop: the inputs stay beside the results while you scroll them (the panel runs the full window height) */
@media(min-width:769px){
  body.results-visible .input-col{position:sticky;top:72px;height:calc(100vh - 72px);height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain}
  .results-inner{margin:0 auto}
}
/* Before the first estimate the form is two columns, with room for the select boxes to show their whole choice */
@media(min-width:581px){
  body:not(.results-visible) .input-col-inner{max-width:560px}
}
/* Phones: the results column takes the screen's width, so a long translated word wraps inside its card instead of widening the page */
@media(max-width:768px){.results-col{width:100%;min-width:0}}

/* ── 16. RESULTS LAYOUT: a narrow inputs column, a wide results column, and a compact headline card.
      Sizes and layout only (no colour but the scope note's token). ── */
/* A note that stands on its own under the charts, at body size */
.scope-note{font-size:.9rem;line-height:1.55;font-style:normal;color:var(--text-secondary);margin-bottom:1rem}

/* Desktop: the inputs column is narrow, and the results take the room */
body.results-visible .input-col{width:336px}
.results-inner{max-width:880px;container-type:inline-size;container-name:results}
@media(min-width:769px){
  body.results-visible .input-col{padding:1.5rem 1.25rem}
  .results-col{padding-top:.875rem}
}
/* In the narrow column a long choice ends in an ellipsis instead of being cut mid-letter; its first word, the answer, always shows */
.input-col select{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
/* Touch screens: every text box and select in the inputs column is a 44px target (36px for a mouse) */
@media (pointer:coarse){.input-col input:not([type=range]),.input-col select{min-height:44px}}

/* The headline card, compact: the place chip shares the eyebrow's row, the Sold / Unsold parts side by side and one height,
   the explanation set close, and the caveat line last */
.exec-summary{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;padding:1rem 1.35rem .9rem;margin-bottom:.9rem}
.exec-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem .75rem;margin-bottom:.35rem}
.exec-head .exec-eyebrow,.exec-head .loc-chip{margin-bottom:0}
.exec-big{font-size:2.15rem;margin-bottom:.2rem}
.exec-local{font-size:1.05rem;margin:0 0 .3rem}
.exec-range{margin-bottom:0}
.hero-breakdown{align-items:stretch;gap:.6rem;margin-top:.75rem;padding-top:.7rem}
.hero-part{padding:.45rem .6rem}
.hero-part-plus{align-self:center}
.hero-explain{margin-top:.55rem;padding-top:.5rem;line-height:1.5}
.exec-sub{margin-top:.4rem;font-size:.75rem;line-height:1.5}
/* A wide results column: the figure and the Sold / Unsold parts share a row; the explanation and the caveat span it.
   A container query, so it follows the column's width, not the window's. */
@container results (min-width:600px){
  .exec-summary{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);column-gap:1.5rem}
  .exec-head,.hero-explain,.exec-sub{grid-column:1/-1}
  .hero-breakdown{align-self:center;margin-top:0;padding-top:0;border-top:0}
  .hero-explain,.exec-sub{max-width:100ch}
}

/* Phones: the same order in one column, with a little less around it */
@media(max-width:768px){.results-col{padding:1.25rem 1.25rem 2.5rem}}
@media(max-width:580px){.exec-big{font-size:1.85rem}.exec-summary{padding:1rem 1.1rem .95rem}}
@media(max-width:480px){.results-col{padding:1rem 1rem 2.5rem}}
