This is an automated email from the ASF dual-hosted git repository. fokko pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/iceberg.git
commit 9bd5deccddf63537fb1e34788e7c16c3f1fda6da Author: Brian Olsen <[email protected]> AuthorDate: Fri Jan 5 13:30:43 2024 -0600 Established structured folders to customize MkDocs Material to an Iceberg look and feel Co-authored-by: Muna Bedan <[email protected]> --- site/dev/common.sh | 2 +- site/docs/assets/images/Iceberg-logo.svg | 28 + site/docs/assets/images/footer-bg.webp | Bin 0 -> 10472 bytes .../assets/images/iceberg-vector-image-asset.png | Bin 0 -> 2652369 bytes site/docs/assets/javascript/extra.js | 1 + site/docs/assets/stylesheets/bootstrap-buttons.css | 68 + site/docs/assets/stylesheets/bootstrap-grid.css | 5069 ++++++++++++++++++++ site/docs/assets/stylesheets/extra.css | 470 ++ site/docs/assets/stylesheets/home.css | 45 + site/docs/index.md | 92 +- site/mkdocs.yml | 20 +- site/overrides/home.html | 321 ++ site/overrides/partials/cto.html | 21 + site/overrides/partials/footer.html | 22 + site/overrides/partials/header.html | 99 + 15 files changed, 6165 insertions(+), 93 deletions(-) diff --git a/site/dev/common.sh b/site/dev/common.sh index 59d6fcdc27..42974a1e28 100755 --- a/site/dev/common.sh +++ b/site/dev/common.sh @@ -205,7 +205,7 @@ clean () { rm -rf docs/docs/latest &> /dev/null git worktree remove docs/docs &> /dev/null git worktree remove docs/javadoc &> /dev/null - + git restore docs/docs # Remove any additional temporary artifacts (e.g., 'site/' directory) diff --git a/site/docs/assets/images/Iceberg-logo.svg b/site/docs/assets/images/Iceberg-logo.svg new file mode 100644 index 0000000000..50296a4f1c --- /dev/null +++ b/site/docs/assets/images/Iceberg-logo.svg @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="800px" height="218px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g><path style="opacity:0.973" fill="#b8e1f3" d="M 764.5,63.5 C 750.833,63.5 737.167,63.5 723.5,63.5C 723.5,61.5 723.5,59.5 723.5,57.5C 728.607,57.8345 732.94,57.5012 736.5,56.5C 734.073,54.4424 731.407,52.6091 728.5,51C 706.167,50.3333 683.833,50.3333 661.5,51C 657.764,52.4098 654.098,53.9098 650.5,55.5C 647.053,57.0541 645.053,59.7208 644.5,63.5C 659.833,63.5 675.167,63.5 690.5,63.5C 690.173,73.6806 690.506,83.6806 691.5,93.5C 691.5,97.8333 691.5,102.167 691.5,106.5C 691.167,106.5 690. [...] +<g><path style="opacity:1" fill="#f5fafd" d="M 736.5,56.5 C 707.662,56.8313 678.995,56.498 650.5,55.5C 654.098,53.9098 657.764,52.4098 661.5,51C 683.833,50.3333 706.167,50.3333 728.5,51C 731.407,52.6091 734.073,54.4424 736.5,56.5 Z"/></g> +<g><path style="opacity:1" fill="#eaf7fd" d="M 650.5,55.5 C 678.995,56.498 707.662,56.8313 736.5,56.5C 732.94,57.5012 728.607,57.8345 723.5,57.5C 723.5,59.5 723.5,61.5 723.5,63.5C 712.5,63.5 701.5,63.5 690.5,63.5C 675.167,63.5 659.833,63.5 644.5,63.5C 645.053,59.7208 647.053,57.0541 650.5,55.5 Z"/></g> +<g><path style="opacity:1" fill="#4b94cb" d="M 617.5,63.5 C 626.349,63.1736 635.016,63.507 643.5,64.5C 643.5,65.1667 643.167,65.5 642.5,65.5C 634.167,64.8333 625.833,64.1667 617.5,63.5 Z"/></g> +<g><path style="opacity:0.943" fill="#277abe" d="M 93.5,64.5 C 109.262,62.1412 122.429,66.8079 133,78.5C 136.303,83.7664 138.47,89.4331 139.5,95.5C 133.491,95.6662 127.491,95.4995 121.5,95C 117.224,83.3565 108.89,78.6899 96.5,81C 86.9435,83.5919 81.1102,89.7586 79,99.5C 75.8119,112.574 78.6452,124.074 87.5,134C 94.6349,138.68 102.302,139.68 110.5,137C 115.697,134.637 119.363,130.803 121.5,125.5C 127.463,124.504 133.463,124.171 139.5,124.5C 136.714,141.119 127.048,150.952 110.5,154C 78.83 [...] +<g><path style="opacity:0.933" fill="#277abe" d="M 538.5,64.5 C 554.494,62.3299 567.994,66.9965 579,78.5C 581.937,82.3736 583.771,86.7069 584.5,91.5C 578.491,91.6662 572.491,91.4995 566.5,91C 562.094,83.7438 555.594,80.2438 547,80.5C 532.301,81.1976 523.968,88.8643 522,103.5C 519.598,129.436 531.098,140.602 556.5,137C 564.296,133.714 568.296,127.881 568.5,119.5C 560.833,119.5 553.167,119.5 545.5,119.5C 545.5,114.167 545.5,108.833 545.5,103.5C 559.167,103.5 572.833,103.5 586.5,103.5C 588. [...] +<g><path style="opacity:0.985" fill="#277abe" d="M 617.5,63.5 C 625.833,64.1667 634.167,64.8333 642.5,65.5C 640.013,70.4734 637.513,75.4734 635,80.5C 636.926,89.255 640.26,97.5884 645,105.5C 650.7,114.257 656.867,122.591 663.5,130.5C 663.569,135.854 663.902,141.187 664.5,146.5C 664.351,147.552 664.517,148.552 665,149.5C 673.707,158.704 682.207,168.037 690.5,177.5C 691.077,178.773 691.743,178.773 692.5,177.5C 699.178,166.139 705.845,154.806 712.5,143.5C 717.46,139.712 722.293,135.712 727, [...] +<g><path style="opacity:1" fill="#68c1ea" d="M 723.5,64.5 C 723.5,73.8333 723.5,83.1667 723.5,92.5C 713.663,97.3434 703.663,102.01 693.5,106.5C 692.833,106.5 692.5,106.833 692.5,107.5C 692.167,107.5 691.833,107.5 691.5,107.5C 691.5,107.167 691.5,106.833 691.5,106.5C 691.5,102.167 691.5,97.8333 691.5,93.5C 691.5,83.8333 691.5,74.1667 691.5,64.5C 702.167,64.5 712.833,64.5 723.5,64.5 Z"/></g> +<g><path style="opacity:1" fill="#4e8bc9" d="M 723.5,63.5 C 737.167,63.5 750.833,63.5 764.5,63.5C 765.167,63.5 765.5,63.8333 765.5,64.5C 757.472,64.169 749.472,64.5023 741.5,65.5C 743.5,70.5 745.5,75.5 747.5,80.5C 747.137,81.1835 746.804,81.8501 746.5,82.5C 738.712,85.5608 731.045,88.8941 723.5,92.5C 723.5,83.1667 723.5,73.8333 723.5,64.5C 723.5,64.1667 723.5,63.8333 723.5,63.5 Z"/></g> +<g><path style="opacity:0.982" fill="#277abe" d="M 22.5,66.5 C 28.1667,66.5 33.8333,66.5 39.5,66.5C 39.5,95.1667 39.5,123.833 39.5,152.5C 33.8333,152.5 28.1667,152.5 22.5,152.5C 22.5,123.833 22.5,95.1667 22.5,66.5 Z"/></g> +<g><path style="opacity:0.949" fill="#277abe" d="M 158.5,66.5 C 179.5,66.5 200.5,66.5 221.5,66.5C 221.5,71.8333 221.5,77.1667 221.5,82.5C 206.5,82.5 191.5,82.5 176.5,82.5C 176.5,88.5 176.5,94.5 176.5,100.5C 190.833,100.5 205.167,100.5 219.5,100.5C 219.5,105.833 219.5,111.167 219.5,116.5C 205.167,116.5 190.833,116.5 176.5,116.5C 176.5,123.5 176.5,130.5 176.5,137.5C 191.833,137.5 207.167,137.5 222.5,137.5C 222.5,142.5 222.5,147.5 222.5,152.5C 201.167,152.5 179.833,152.5 158.5,152.5C 158.5, [...] +<g><path style="opacity:0.963" fill="#277abe" d="M 243.5,66.5 C 258.837,66.3334 274.17,66.5001 289.5,67C 308.073,71.3134 314.24,82.4801 308,100.5C 305.463,103.372 302.63,105.872 299.5,108C 311.481,112.791 315.981,121.624 313,134.5C 309.463,144.697 302.296,150.53 291.5,152C 275.503,152.5 259.503,152.667 243.5,152.5C 243.5,123.833 243.5,95.1667 243.5,66.5 Z M 260.5,81.5 C 268.507,81.3336 276.507,81.5003 284.5,82C 292.503,84.1968 294.836,89.0301 291.5,96.5C 289.869,98.2974 287.869,99.4641 2 [...] +<g><path style="opacity:0.955" fill="#277abe" d="M 333.5,66.5 C 354.5,66.5 375.5,66.5 396.5,66.5C 396.5,71.8333 396.5,77.1667 396.5,82.5C 381.5,82.5 366.5,82.5 351.5,82.5C 351.5,88.5 351.5,94.5 351.5,100.5C 365.833,100.5 380.167,100.5 394.5,100.5C 394.5,105.833 394.5,111.167 394.5,116.5C 380.167,116.5 365.833,116.5 351.5,116.5C 351.5,123.5 351.5,130.5 351.5,137.5C 366.5,137.5 381.5,137.5 396.5,137.5C 396.5,142.5 396.5,147.5 396.5,152.5C 375.5,152.5 354.5,152.5 333.5,152.5C 333.5,123.833 [...] +<g><path style="opacity:0.967" fill="#277abe" d="M 418.5,66.5 C 434.882,66.0767 451.215,66.5767 467.5,68C 485.266,75.2681 491.099,88.1014 485,106.5C 481.5,112.667 476.667,117.5 470.5,121C 477.5,131.333 484.5,141.667 491.5,152C 484.5,152.667 477.5,152.667 470.5,152C 464.251,142.837 458.251,133.503 452.5,124C 446.843,123.501 441.176,123.334 435.5,123.5C 435.5,133.167 435.5,142.833 435.5,152.5C 429.833,152.5 424.167,152.5 418.5,152.5C 418.5,123.833 418.5,95.1667 418.5,66.5 Z M 435.5,81.5 C [...] +<g><path style="opacity:1" fill="#a2d8f1" d="M 690.5,63.5 C 701.5,63.5 712.5,63.5 723.5,63.5C 723.5,63.8333 723.5,64.1667 723.5,64.5C 712.833,64.5 702.167,64.5 691.5,64.5C 691.5,74.1667 691.5,83.8333 691.5,93.5C 690.506,83.6806 690.173,73.6806 690.5,63.5 Z"/></g> +<g><path style="opacity:1" fill="#90d4f0" d="M 643.5,64.5 C 653.506,64.3335 663.506,64.5002 673.5,65C 660.683,70.5762 648.016,76.4095 635.5,82.5C 653.699,90.7651 672.032,98.7651 690.5,106.5C 690.141,108.371 689.141,109.871 687.5,111C 679.021,116.985 671.021,123.485 663.5,130.5C 656.867,122.591 650.7,114.257 645,105.5C 640.26,97.5884 636.926,89.255 635,80.5C 637.513,75.4734 640.013,70.4734 642.5,65.5C 643.167,65.5 643.5,65.1667 643.5,64.5 Z"/></g> +<g><path style="opacity:1" fill="#266fa8" d="M 746.5,82.5 C 740.167,89.8333 733.833,97.1667 727.5,104.5C 716.812,105.28 706.145,106.28 695.5,107.5C 694.584,107.457 693.917,107.124 693.5,106.5C 703.663,102.01 713.663,97.3434 723.5,92.5C 731.045,88.8941 738.712,85.5608 746.5,82.5 Z"/></g> +<g><path style="opacity:1" fill="#4d8ac8" d="M 727.5,104.5 C 727.666,113.506 727.5,122.506 727,131.5C 722.293,135.712 717.46,139.712 712.5,143.5C 712.167,142.833 711.833,142.167 711.5,141.5C 704.628,130.419 698.295,119.086 692.5,107.5C 692.5,106.833 692.833,106.5 693.5,106.5C 693.917,107.124 694.584,107.457 695.5,107.5C 706.145,106.28 716.812,105.28 727.5,104.5 Z"/></g> +<g><path style="opacity:1" fill="#abdcf1" d="M 690.5,106.5 C 690.833,106.5 691.167,106.5 691.5,106.5C 691.5,106.833 691.5,107.167 691.5,107.5C 691.5,115.5 691.5,123.5 691.5,131.5C 691.167,131.5 690.833,131.5 690.5,131.5C 681.502,131.119 672.502,130.786 663.5,130.5C 671.021,123.485 679.021,116.985 687.5,111C 689.141,109.871 690.141,108.371 690.5,106.5 Z"/></g> +<g><path style="opacity:1" fill="#54a5d7" d="M 691.5,107.5 C 691.833,107.5 692.167,107.5 692.5,107.5C 698.295,119.086 704.628,130.419 711.5,141.5C 704.456,138.721 697.789,135.388 691.5,131.5C 691.5,123.5 691.5,115.5 691.5,107.5 Z"/></g> +<g><path style="opacity:1" fill="#b6e0f2" d="M 663.5,130.5 C 672.502,130.786 681.502,131.119 690.5,131.5C 690.5,138.833 690.5,146.167 690.5,153.5C 683.125,152.66 675.791,151.493 668.5,150C 666.973,148.968 665.64,147.801 664.5,146.5C 663.902,141.187 663.569,135.854 663.5,130.5 Z"/></g> +<g><path style="opacity:1" fill="#58afde" d="M 690.5,131.5 C 690.833,131.5 691.167,131.5 691.5,131.5C 697.789,135.388 704.456,138.721 711.5,141.5C 711.833,142.167 712.167,142.833 712.5,143.5C 705.734,146.382 699.067,149.549 692.5,153C 691.544,156.394 691.211,159.894 691.5,163.5C 690.521,160.375 690.187,157.042 690.5,153.5C 690.5,146.167 690.5,138.833 690.5,131.5 Z"/></g> +<g><path style="opacity:1" fill="#266fa8" d="M 712.5,143.5 C 705.845,154.806 699.178,166.139 692.5,177.5C 691.743,178.773 691.077,178.773 690.5,177.5C 691.486,173.03 691.819,168.363 691.5,163.5C 691.211,159.894 691.544,156.394 692.5,153C 699.067,149.549 705.734,146.382 712.5,143.5 Z"/></g> +<g><path style="opacity:1" fill="#8fd3f0" d="M 664.5,146.5 C 665.64,147.801 666.973,148.968 668.5,150C 675.791,151.493 683.125,152.66 690.5,153.5C 690.187,157.042 690.521,160.375 691.5,163.5C 691.819,168.363 691.486,173.03 690.5,177.5C 682.207,168.037 673.707,158.704 665,149.5C 664.517,148.552 664.351,147.552 664.5,146.5 Z"/></g> +</svg> diff --git a/site/docs/assets/images/footer-bg.webp b/site/docs/assets/images/footer-bg.webp new file mode 100644 index 0000000000..c0ee1203b3 Binary files /dev/null and b/site/docs/assets/images/footer-bg.webp differ diff --git a/site/docs/assets/images/iceberg-vector-image-asset.png b/site/docs/assets/images/iceberg-vector-image-asset.png new file mode 100644 index 0000000000..893ac9e7a0 Binary files /dev/null and b/site/docs/assets/images/iceberg-vector-image-asset.png differ diff --git a/site/docs/assets/javascript/extra.js b/site/docs/assets/javascript/extra.js new file mode 100644 index 0000000000..a4ef9f0518 --- /dev/null +++ b/site/docs/assets/javascript/extra.js @@ -0,0 +1 @@ +// intentionally left blank diff --git a/site/docs/assets/stylesheets/bootstrap-buttons.css b/site/docs/assets/stylesheets/bootstrap-buttons.css new file mode 100644 index 0000000000..b3cec0c139 --- /dev/null +++ b/site/docs/assets/stylesheets/bootstrap-buttons.css @@ -0,0 +1,68 @@ +.btn { + font-size: 14px; + padding: 6px 12px; + margin-bottom: 0; + + display: inline-block; + text-decoration: none; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; +} +.btn:focus, +.btn:active:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus { + color: #333; + text-decoration: none; +} +.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} + +.btn-lg, .btn-group-lg .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +/* default +---------------------------- */ +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} +.btn-default:focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} + diff --git a/site/docs/assets/stylesheets/bootstrap-grid.css b/site/docs/assets/stylesheets/bootstrap-grid.css new file mode 100644 index 0000000000..3c4f081adf --- /dev/null +++ b/site/docs/assets/stylesheets/bootstrap-grid.css @@ -0,0 +1,5069 @@ +/*! + * Bootstrap Grid v5.3.0-alpha3 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + + .container-sm, + .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + + .container-md, + .container-sm, + .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + + .container-xl, + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 1140px; + } +} + +@media (min-width: 1400px) { + + .container-xxl, + .container-xl, + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 1320px; + } +} + +:root { + --bs-breakpoint-xs: 0; + --bs-breakpoint-sm: 576px; + --bs-breakpoint-md: 768px; + --bs-breakpoint-lg: 992px; + --bs-breakpoint-xl: 1200px; + --bs-breakpoint-xxl: 1400px; +} + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} + +.row>* { + box-sizing: border-box; + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.col { + flex: 1 0 0%; +} + +.row-cols-auto>* { + flex: 0 0 auto; + width: auto; +} + +.row-cols-1>* { + flex: 0 0 auto; + width: 100%; +} + +.row-cols-2>* { + flex: 0 0 auto; + width: 50%; +} + +.row-cols-3>* { + flex: 0 0 auto; + width: 33.3333333333%; +} + +.row-cols-4>* { + flex: 0 0 auto; + width: 25%; +} + +.row-cols-5>* { + flex: 0 0 auto; + width: 20%; +} + +.row-cols-6>* { + flex: 0 0 auto; + width: 16.6666666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-left: 8.33333333%; +} + +.offset-2 { + margin-left: 16.66666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.33333333%; +} + +.offset-5 { + margin-left: 41.66666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.33333333%; +} + +.offset-8 { + margin-left: 66.66666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.33333333%; +} + +.offset-11 { + margin-left: 91.66666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + + .row-cols-sm-auto>* { + flex: 0 0 auto; + width: auto; + } + + .row-cols-sm-1>* { + flex: 0 0 auto; + width: 100%; + } + + .row-cols-sm-2>* { + flex: 0 0 auto; + width: 50%; + } + + .row-cols-sm-3>* { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-sm-4>* { + flex: 0 0 auto; + width: 25%; + } + + .row-cols-sm-5>* { + flex: 0 0 auto; + width: 20%; + } + + .row-cols-sm-6>* { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-sm-0 { + margin-left: 0; + } + + .offset-sm-1 { + margin-left: 8.33333333%; + } + + .offset-sm-2 { + margin-left: 16.66666667%; + } + + .offset-sm-3 { + margin-left: 25%; + } + + .offset-sm-4 { + margin-left: 33.33333333%; + } + + .offset-sm-5 { + margin-left: 41.66666667%; + } + + .offset-sm-6 { + margin-left: 50%; + } + + .offset-sm-7 { + margin-left: 58.33333333%; + } + + .offset-sm-8 { + margin-left: 66.66666667%; + } + + .offset-sm-9 { + margin-left: 75%; + } + + .offset-sm-10 { + margin-left: 83.33333333%; + } + + .offset-sm-11 { + margin-left: 91.66666667%; + } + + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + + .row-cols-md-auto>* { + flex: 0 0 auto; + width: auto; + } + + .row-cols-md-1>* { + flex: 0 0 auto; + width: 100%; + } + + .row-cols-md-2>* { + flex: 0 0 auto; + width: 50%; + } + + .row-cols-md-3>* { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-md-4>* { + flex: 0 0 auto; + width: 25%; + } + + .row-cols-md-5>* { + flex: 0 0 auto; + width: 20%; + } + + .row-cols-md-6>* { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-md-0 { + margin-left: 0; + } + + .offset-md-1 { + margin-left: 8.33333333%; + } + + .offset-md-2 { + margin-left: 16.66666667%; + } + + .offset-md-3 { + margin-left: 25%; + } + + .offset-md-4 { + margin-left: 33.33333333%; + } + + .offset-md-5 { + margin-left: 41.66666667%; + } + + .offset-md-6 { + margin-left: 50%; + } + + .offset-md-7 { + margin-left: 58.33333333%; + } + + .offset-md-8 { + margin-left: 66.66666667%; + } + + .offset-md-9 { + margin-left: 75%; + } + + .offset-md-10 { + margin-left: 83.33333333%; + } + + .offset-md-11 { + margin-left: 91.66666667%; + } + + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + + .row-cols-lg-auto>* { + flex: 0 0 auto; + width: auto; + } + + .row-cols-lg-1>* { + flex: 0 0 auto; + width: 100%; + } + + .row-cols-lg-2>* { + flex: 0 0 auto; + width: 50%; + } + + .row-cols-lg-3>* { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-lg-4>* { + flex: 0 0 auto; + width: 25%; + } + + .row-cols-lg-5>* { + flex: 0 0 auto; + width: 20%; + } + + .row-cols-lg-6>* { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-lg-0 { + margin-left: 0; + } + + .offset-lg-1 { + margin-left: 8.33333333%; + } + + .offset-lg-2 { + margin-left: 16.66666667%; + } + + .offset-lg-3 { + margin-left: 25%; + } + + .offset-lg-4 { + margin-left: 33.33333333%; + } + + .offset-lg-5 { + margin-left: 41.66666667%; + } + + .offset-lg-6 { + margin-left: 50%; + } + + .offset-lg-7 { + margin-left: 58.33333333%; + } + + .offset-lg-8 { + margin-left: 66.66666667%; + } + + .offset-lg-9 { + margin-left: 75%; + } + + .offset-lg-10 { + margin-left: 83.33333333%; + } + + .offset-lg-11 { + margin-left: 91.66666667%; + } + + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + + .row-cols-xl-auto>* { + flex: 0 0 auto; + width: auto; + } + + .row-cols-xl-1>* { + flex: 0 0 auto; + width: 100%; + } + + .row-cols-xl-2>* { + flex: 0 0 auto; + width: 50%; + } + + .row-cols-xl-3>* { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-xl-4>* { + flex: 0 0 auto; + width: 25%; + } + + .row-cols-xl-5>* { + flex: 0 0 auto; + width: 20%; + } + + .row-cols-xl-6>* { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-xl-0 { + margin-left: 0; + } + + .offset-xl-1 { + margin-left: 8.33333333%; + } + + .offset-xl-2 { + margin-left: 16.66666667%; + } + + .offset-xl-3 { + margin-left: 25%; + } + + .offset-xl-4 { + margin-left: 33.33333333%; + } + + .offset-xl-5 { + margin-left: 41.66666667%; + } + + .offset-xl-6 { + margin-left: 50%; + } + + .offset-xl-7 { + margin-left: 58.33333333%; + } + + .offset-xl-8 { + margin-left: 66.66666667%; + } + + .offset-xl-9 { + margin-left: 75%; + } + + .offset-xl-10 { + margin-left: 83.33333333%; + } + + .offset-xl-11 { + margin-left: 91.66666667%; + } + + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + + .row-cols-xxl-auto>* { + flex: 0 0 auto; + width: auto; + } + + .row-cols-xxl-1>* { + flex: 0 0 auto; + width: 100%; + } + + .row-cols-xxl-2>* { + flex: 0 0 auto; + width: 50%; + } + + .row-cols-xxl-3>* { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-xxl-4>* { + flex: 0 0 auto; + width: 25%; + } + + .row-cols-xxl-5>* { + flex: 0 0 auto; + width: 20%; + } + + .row-cols-xxl-6>* { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-xxl-0 { + margin-left: 0; + } + + .offset-xxl-1 { + margin-left: 8.33333333%; + } + + .offset-xxl-2 { + margin-left: 16.66666667%; + } + + .offset-xxl-3 { + margin-left: 25%; + } + + .offset-xxl-4 { + margin-left: 33.33333333%; + } + + .offset-xxl-5 { + margin-left: 41.66666667%; + } + + .offset-xxl-6 { + margin-left: 50%; + } + + .offset-xxl-7 { + margin-left: 58.33333333%; + } + + .offset-xxl-8 { + margin-left: 66.66666667%; + } + + .offset-xxl-9 { + margin-left: 75%; + } + + .offset-xxl-10 { + margin-left: 83.33333333%; + } + + .offset-xxl-11 { + margin-left: 91.66666667%; + } + + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !important; +} + +.d-inline-grid { + display: inline-grid !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.d-none { + display: none !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-grow-0 { + flex-grow: 0 !important; +} + +.flex-grow-1 { + flex-grow: 1 !important; +} + +.flex-shrink-0 { + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + flex-shrink: 1 !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.justify-content-evenly { + justify-content: space-evenly !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-right: 0 !important; +} + +.me-1 { + margin-right: 0.25rem !important; +} + +.me-2 { + margin-right: 0.5rem !important; +} + +.me-3 { + margin-right: 1rem !important; +} + +.me-4 { + margin-right: 1.5rem !important; +} + +.me-5 { + margin-right: 3rem !important; +} + +.me-auto { + margin-right: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-left: 0 !important; +} + +.ms-1 { + margin-left: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.5rem !important; +} + +.ms-3 { + margin-left: 1rem !important; +} + +.ms-4 { + margin-left: 1.5rem !important; +} + +.ms-5 { + margin-left: 3rem !important; +} + +.ms-auto { + margin-left: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-right: 0 !important; +} + +.pe-1 { + padding-right: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.5rem !important; +} + +.pe-3 { + padding-right: 1rem !important; +} + +.pe-4 { + padding-right: 1.5rem !important; +} + +.pe-5 { + padding-right: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-left: 0 !important; +} + +.ps-1 { + padding-left: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +@media (min-width: 576px) { + .d-sm-inline { + display: inline !important; + } + + .d-sm-inline-block { + display: inline-block !important; + } + + .d-sm-block { + display: block !important; + } + + .d-sm-grid { + display: grid !important; + } + + .d-sm-inline-grid { + display: inline-grid !important; + } + + .d-sm-table { + display: table !important; + } + + .d-sm-table-row { + display: table-row !important; + } + + .d-sm-table-cell { + display: table-cell !important; + } + + .d-sm-flex { + display: flex !important; + } + + .d-sm-inline-flex { + display: inline-flex !important; + } + + .d-sm-none { + display: none !important; + } + + .flex-sm-fill { + flex: 1 1 auto !important; + } + + .flex-sm-row { + flex-direction: row !important; + } + + .flex-sm-column { + flex-direction: column !important; + } + + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-sm-wrap { + flex-wrap: wrap !important; + } + + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-sm-start { + justify-content: flex-start !important; + } + + .justify-content-sm-end { + justify-content: flex-end !important; + } + + .justify-content-sm-center { + justify-content: center !important; + } + + .justify-content-sm-between { + justify-content: space-between !important; + } + + .justify-content-sm-around { + justify-content: space-around !important; + } + + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + + .align-items-sm-start { + align-items: flex-start !important; + } + + .align-items-sm-end { + align-items: flex-end !important; + } + + .align-items-sm-center { + align-items: center !important; + } + + .align-items-sm-baseline { + align-items: baseline !important; + } + + .align-items-sm-stretch { + align-items: stretch !important; + } + + .align-content-sm-start { + align-content: flex-start !important; + } + + .align-content-sm-end { + align-content: flex-end !important; + } + + .align-content-sm-center { + align-content: center !important; + } + + .align-content-sm-between { + align-content: space-between !important; + } + + .align-content-sm-around { + align-content: space-around !important; + } + + .align-content-sm-stretch { + align-content: stretch !important; + } + + .align-self-sm-auto { + align-self: auto !important; + } + + .align-self-sm-start { + align-self: flex-start !important; + } + + .align-self-sm-end { + align-self: flex-end !important; + } + + .align-self-sm-center { + align-self: center !important; + } + + .align-self-sm-baseline { + align-self: baseline !important; + } + + .align-self-sm-stretch { + align-self: stretch !important; + } + + .order-sm-first { + order: -1 !important; + } + + .order-sm-0 { + order: 0 !important; + } + + .order-sm-1 { + order: 1 !important; + } + + .order-sm-2 { + order: 2 !important; + } + + .order-sm-3 { + order: 3 !important; + } + + .order-sm-4 { + order: 4 !important; + } + + .order-sm-5 { + order: 5 !important; + } + + .order-sm-last { + order: 6 !important; + } + + .m-sm-0 { + margin: 0 !important; + } + + .m-sm-1 { + margin: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.5rem !important; + } + + .m-sm-3 { + margin: 1rem !important; + } + + .m-sm-4 { + margin: 1.5rem !important; + } + + .m-sm-5 { + margin: 3rem !important; + } + + .m-sm-auto { + margin: auto !important; + } + + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-sm-0 { + margin-top: 0 !important; + } + + .mt-sm-1 { + margin-top: 0.25rem !important; + } + + .mt-sm-2 { + margin-top: 0.5rem !important; + } + + .mt-sm-3 { + margin-top: 1rem !important; + } + + .mt-sm-4 { + margin-top: 1.5rem !important; + } + + .mt-sm-5 { + margin-top: 3rem !important; + } + + .mt-sm-auto { + margin-top: auto !important; + } + + .me-sm-0 { + margin-right: 0 !important; + } + + .me-sm-1 { + margin-right: 0.25rem !important; + } + + .me-sm-2 { + margin-right: 0.5rem !important; + } + + .me-sm-3 { + margin-right: 1rem !important; + } + + .me-sm-4 { + margin-right: 1.5rem !important; + } + + .me-sm-5 { + margin-right: 3rem !important; + } + + .me-sm-auto { + margin-right: auto !important; + } + + .mb-sm-0 { + margin-bottom: 0 !important; + } + + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + + .mb-sm-3 { + margin-bottom: 1rem !important; + } + + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + + .mb-sm-5 { + margin-bottom: 3rem !important; + } + + .mb-sm-auto { + margin-bottom: auto !important; + } + + .ms-sm-0 { + margin-left: 0 !important; + } + + .ms-sm-1 { + margin-left: 0.25rem !important; + } + + .ms-sm-2 { + margin-left: 0.5rem !important; + } + + .ms-sm-3 { + margin-left: 1rem !important; + } + + .ms-sm-4 { + margin-left: 1.5rem !important; + } + + .ms-sm-5 { + margin-left: 3rem !important; + } + + .ms-sm-auto { + margin-left: auto !important; + } + + .p-sm-0 { + padding: 0 !important; + } + + .p-sm-1 { + padding: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.5rem !important; + } + + .p-sm-3 { + padding: 1rem !important; + } + + .p-sm-4 { + padding: 1.5rem !important; + } + + .p-sm-5 { + padding: 3rem !important; + } + + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-sm-0 { + padding-top: 0 !important; + } + + .pt-sm-1 { + padding-top: 0.25rem !important; + } + + .pt-sm-2 { + padding-top: 0.5rem !important; + } + + .pt-sm-3 { + padding-top: 1rem !important; + } + + .pt-sm-4 { + padding-top: 1.5rem !important; + } + + .pt-sm-5 { + padding-top: 3rem !important; + } + + .pe-sm-0 { + padding-right: 0 !important; + } + + .pe-sm-1 { + padding-right: 0.25rem !important; + } + + .pe-sm-2 { + padding-right: 0.5rem !important; + } + + .pe-sm-3 { + padding-right: 1rem !important; + } + + .pe-sm-4 { + padding-right: 1.5rem !important; + } + + .pe-sm-5 { + padding-right: 3rem !important; + } + + .pb-sm-0 { + padding-bottom: 0 !important; + } + + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + + .pb-sm-3 { + padding-bottom: 1rem !important; + } + + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + + .pb-sm-5 { + padding-bottom: 3rem !important; + } + + .ps-sm-0 { + padding-left: 0 !important; + } + + .ps-sm-1 { + padding-left: 0.25rem !important; + } + + .ps-sm-2 { + padding-left: 0.5rem !important; + } + + .ps-sm-3 { + padding-left: 1rem !important; + } + + .ps-sm-4 { + padding-left: 1.5rem !important; + } + + .ps-sm-5 { + padding-left: 3rem !important; + } +} + +@media (min-width: 768px) { + .d-md-inline { + display: inline !important; + } + + .d-md-inline-block { + display: inline-block !important; + } + + .d-md-block { + display: block !important; + } + + .d-md-grid { + display: grid !important; + } + + .d-md-inline-grid { + display: inline-grid !important; + } + + .d-md-table { + display: table !important; + } + + .d-md-table-row { + display: table-row !important; + } + + .d-md-table-cell { + display: table-cell !important; + } + + .d-md-flex { + display: flex !important; + } + + .d-md-inline-flex { + display: inline-flex !important; + } + + .d-md-none { + display: none !important; + } + + .flex-md-fill { + flex: 1 1 auto !important; + } + + .flex-md-row { + flex-direction: row !important; + } + + .flex-md-column { + flex-direction: column !important; + } + + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-md-grow-0 { + flex-grow: 0 !important; + } + + .flex-md-grow-1 { + flex-grow: 1 !important; + } + + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-md-wrap { + flex-wrap: wrap !important; + } + + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-md-start { + justify-content: flex-start !important; + } + + .justify-content-md-end { + justify-content: flex-end !important; + } + + .justify-content-md-center { + justify-content: center !important; + } + + .justify-content-md-between { + justify-content: space-between !important; + } + + .justify-content-md-around { + justify-content: space-around !important; + } + + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + + .align-items-md-start { + align-items: flex-start !important; + } + + .align-items-md-end { + align-items: flex-end !important; + } + + .align-items-md-center { + align-items: center !important; + } + + .align-items-md-baseline { + align-items: baseline !important; + } + + .align-items-md-stretch { + align-items: stretch !important; + } + + .align-content-md-start { + align-content: flex-start !important; + } + + .align-content-md-end { + align-content: flex-end !important; + } + + .align-content-md-center { + align-content: center !important; + } + + .align-content-md-between { + align-content: space-between !important; + } + + .align-content-md-around { + align-content: space-around !important; + } + + .align-content-md-stretch { + align-content: stretch !important; + } + + .align-self-md-auto { + align-self: auto !important; + } + + .align-self-md-start { + align-self: flex-start !important; + } + + .align-self-md-end { + align-self: flex-end !important; + } + + .align-self-md-center { + align-self: center !important; + } + + .align-self-md-baseline { + align-self: baseline !important; + } + + .align-self-md-stretch { + align-self: stretch !important; + } + + .order-md-first { + order: -1 !important; + } + + .order-md-0 { + order: 0 !important; + } + + .order-md-1 { + order: 1 !important; + } + + .order-md-2 { + order: 2 !important; + } + + .order-md-3 { + order: 3 !important; + } + + .order-md-4 { + order: 4 !important; + } + + .order-md-5 { + order: 5 !important; + } + + .order-md-last { + order: 6 !important; + } + + .m-md-0 { + margin: 0 !important; + } + + .m-md-1 { + margin: 0.25rem !important; + } + + .m-md-2 { + margin: 0.5rem !important; + } + + .m-md-3 { + margin: 1rem !important; + } + + .m-md-4 { + margin: 1.5rem !important; + } + + .m-md-5 { + margin: 3rem !important; + } + + .m-md-auto { + margin: auto !important; + } + + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-md-0 { + margin-top: 0 !important; + } + + .mt-md-1 { + margin-top: 0.25rem !important; + } + + .mt-md-2 { + margin-top: 0.5rem !important; + } + + .mt-md-3 { + margin-top: 1rem !important; + } + + .mt-md-4 { + margin-top: 1.5rem !important; + } + + .mt-md-5 { + margin-top: 3rem !important; + } + + .mt-md-auto { + margin-top: auto !important; + } + + .me-md-0 { + margin-right: 0 !important; + } + + .me-md-1 { + margin-right: 0.25rem !important; + } + + .me-md-2 { + margin-right: 0.5rem !important; + } + + .me-md-3 { + margin-right: 1rem !important; + } + + .me-md-4 { + margin-right: 1.5rem !important; + } + + .me-md-5 { + margin-right: 3rem !important; + } + + .me-md-auto { + margin-right: auto !important; + } + + .mb-md-0 { + margin-bottom: 0 !important; + } + + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + + .mb-md-3 { + margin-bottom: 1rem !important; + } + + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + + .mb-md-5 { + margin-bottom: 3rem !important; + } + + .mb-md-auto { + margin-bottom: auto !important; + } + + .ms-md-0 { + margin-left: 0 !important; + } + + .ms-md-1 { + margin-left: 0.25rem !important; + } + + .ms-md-2 { + margin-left: 0.5rem !important; + } + + .ms-md-3 { + margin-left: 1rem !important; + } + + .ms-md-4 { + margin-left: 1.5rem !important; + } + + .ms-md-5 { + margin-left: 3rem !important; + } + + .ms-md-auto { + margin-left: auto !important; + } + + .p-md-0 { + padding: 0 !important; + } + + .p-md-1 { + padding: 0.25rem !important; + } + + .p-md-2 { + padding: 0.5rem !important; + } + + .p-md-3 { + padding: 1rem !important; + } + + .p-md-4 { + padding: 1.5rem !important; + } + + .p-md-5 { + padding: 3rem !important; + } + + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-md-0 { + padding-top: 0 !important; + } + + .pt-md-1 { + padding-top: 0.25rem !important; + } + + .pt-md-2 { + padding-top: 0.5rem !important; + } + + .pt-md-3 { + padding-top: 1rem !important; + } + + .pt-md-4 { + padding-top: 1.5rem !important; + } + + .pt-md-5 { + padding-top: 3rem !important; + } + + .pe-md-0 { + padding-right: 0 !important; + } + + .pe-md-1 { + padding-right: 0.25rem !important; + } + + .pe-md-2 { + padding-right: 0.5rem !important; + } + + .pe-md-3 { + padding-right: 1rem !important; + } + + .pe-md-4 { + padding-right: 1.5rem !important; + } + + .pe-md-5 { + padding-right: 3rem !important; + } + + .pb-md-0 { + padding-bottom: 0 !important; + } + + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + + .pb-md-3 { + padding-bottom: 1rem !important; + } + + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + + .pb-md-5 { + padding-bottom: 3rem !important; + } + + .ps-md-0 { + padding-left: 0 !important; + } + + .ps-md-1 { + padding-left: 0.25rem !important; + } + + .ps-md-2 { + padding-left: 0.5rem !important; + } + + .ps-md-3 { + padding-left: 1rem !important; + } + + .ps-md-4 { + padding-left: 1.5rem !important; + } + + .ps-md-5 { + padding-left: 3rem !important; + } +} + +@media (min-width: 992px) { + .d-lg-inline { + display: inline !important; + } + + .d-lg-inline-block { + display: inline-block !important; + } + + .d-lg-block { + display: block !important; + } + + .d-lg-grid { + display: grid !important; + } + + .d-lg-inline-grid { + display: inline-grid !important; + } + + .d-lg-table { + display: table !important; + } + + .d-lg-table-row { + display: table-row !important; + } + + .d-lg-table-cell { + display: table-cell !important; + } + + .d-lg-flex { + display: flex !important; + } + + .d-lg-inline-flex { + display: inline-flex !important; + } + + .d-lg-none { + display: none !important; + } + + .flex-lg-fill { + flex: 1 1 auto !important; + } + + .flex-lg-row { + flex-direction: row !important; + } + + .flex-lg-column { + flex-direction: column !important; + } + + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-lg-wrap { + flex-wrap: wrap !important; + } + + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-lg-start { + justify-content: flex-start !important; + } + + .justify-content-lg-end { + justify-content: flex-end !important; + } + + .justify-content-lg-center { + justify-content: center !important; + } + + .justify-content-lg-between { + justify-content: space-between !important; + } + + .justify-content-lg-around { + justify-content: space-around !important; + } + + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + + .align-items-lg-start { + align-items: flex-start !important; + } + + .align-items-lg-end { + align-items: flex-end !important; + } + + .align-items-lg-center { + align-items: center !important; + } + + .align-items-lg-baseline { + align-items: baseline !important; + } + + .align-items-lg-stretch { + align-items: stretch !important; + } + + .align-content-lg-start { + align-content: flex-start !important; + } + + .align-content-lg-end { + align-content: flex-end !important; + } + + .align-content-lg-center { + align-content: center !important; + } + + .align-content-lg-between { + align-content: space-between !important; + } + + .align-content-lg-around { + align-content: space-around !important; + } + + .align-content-lg-stretch { + align-content: stretch !important; + } + + .align-self-lg-auto { + align-self: auto !important; + } + + .align-self-lg-start { + align-self: flex-start !important; + } + + .align-self-lg-end { + align-self: flex-end !important; + } + + .align-self-lg-center { + align-self: center !important; + } + + .align-self-lg-baseline { + align-self: baseline !important; + } + + .align-self-lg-stretch { + align-self: stretch !important; + } + + .order-lg-first { + order: -1 !important; + } + + .order-lg-0 { + order: 0 !important; + } + + .order-lg-1 { + order: 1 !important; + } + + .order-lg-2 { + order: 2 !important; + } + + .order-lg-3 { + order: 3 !important; + } + + .order-lg-4 { + order: 4 !important; + } + + .order-lg-5 { + order: 5 !important; + } + + .order-lg-last { + order: 6 !important; + } + + .m-lg-0 { + margin: 0 !important; + } + + .m-lg-1 { + margin: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.5rem !important; + } + + .m-lg-3 { + margin: 1rem !important; + } + + .m-lg-4 { + margin: 1.5rem !important; + } + + .m-lg-5 { + margin: 3rem !important; + } + + .m-lg-auto { + margin: auto !important; + } + + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-lg-0 { + margin-top: 0 !important; + } + + .mt-lg-1 { + margin-top: 0.25rem !important; + } + + .mt-lg-2 { + margin-top: 0.5rem !important; + } + + .mt-lg-3 { + margin-top: 1rem !important; + } + + .mt-lg-4 { + margin-top: 1.5rem !important; + } + + .mt-lg-5 { + margin-top: 3rem !important; + } + + .mt-lg-auto { + margin-top: auto !important; + } + + .me-lg-0 { + margin-right: 0 !important; + } + + .me-lg-1 { + margin-right: 0.25rem !important; + } + + .me-lg-2 { + margin-right: 0.5rem !important; + } + + .me-lg-3 { + margin-right: 1rem !important; + } + + .me-lg-4 { + margin-right: 1.5rem !important; + } + + .me-lg-5 { + margin-right: 3rem !important; + } + + .me-lg-auto { + margin-right: auto !important; + } + + .mb-lg-0 { + margin-bottom: 0 !important; + } + + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + + .mb-lg-3 { + margin-bottom: 1rem !important; + } + + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + + .mb-lg-5 { + margin-bottom: 3rem !important; + } + + .mb-lg-auto { + margin-bottom: auto !important; + } + + .ms-lg-0 { + margin-left: 0 !important; + } + + .ms-lg-1 { + margin-left: 0.25rem !important; + } + + .ms-lg-2 { + margin-left: 0.5rem !important; + } + + .ms-lg-3 { + margin-left: 1rem !important; + } + + .ms-lg-4 { + margin-left: 1.5rem !important; + } + + .ms-lg-5 { + margin-left: 3rem !important; + } + + .ms-lg-auto { + margin-left: auto !important; + } + + .p-lg-0 { + padding: 0 !important; + } + + .p-lg-1 { + padding: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.5rem !important; + } + + .p-lg-3 { + padding: 1rem !important; + } + + .p-lg-4 { + padding: 1.5rem !important; + } + + .p-lg-5 { + padding: 3rem !important; + } + + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-lg-0 { + padding-top: 0 !important; + } + + .pt-lg-1 { + padding-top: 0.25rem !important; + } + + .pt-lg-2 { + padding-top: 0.5rem !important; + } + + .pt-lg-3 { + padding-top: 1rem !important; + } + + .pt-lg-4 { + padding-top: 1.5rem !important; + } + + .pt-lg-5 { + padding-top: 3rem !important; + } + + .pe-lg-0 { + padding-right: 0 !important; + } + + .pe-lg-1 { + padding-right: 0.25rem !important; + } + + .pe-lg-2 { + padding-right: 0.5rem !important; + } + + .pe-lg-3 { + padding-right: 1rem !important; + } + + .pe-lg-4 { + padding-right: 1.5rem !important; + } + + .pe-lg-5 { + padding-right: 3rem !important; + } + + .pb-lg-0 { + padding-bottom: 0 !important; + } + + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + + .pb-lg-3 { + padding-bottom: 1rem !important; + } + + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + + .pb-lg-5 { + padding-bottom: 3rem !important; + } + + .ps-lg-0 { + padding-left: 0 !important; + } + + .ps-lg-1 { + padding-left: 0.25rem !important; + } + + .ps-lg-2 { + padding-left: 0.5rem !important; + } + + .ps-lg-3 { + padding-left: 1rem !important; + } + + .ps-lg-4 { + padding-left: 1.5rem !important; + } + + .ps-lg-5 { + padding-left: 3rem !important; + } +} + +@media (min-width: 1200px) { + .d-xl-inline { + display: inline !important; + } + + .d-xl-inline-block { + display: inline-block !important; + } + + .d-xl-block { + display: block !important; + } + + .d-xl-grid { + display: grid !important; + } + + .d-xl-inline-grid { + display: inline-grid !important; + } + + .d-xl-table { + display: table !important; + } + + .d-xl-table-row { + display: table-row !important; + } + + .d-xl-table-cell { + display: table-cell !important; + } + + .d-xl-flex { + display: flex !important; + } + + .d-xl-inline-flex { + display: inline-flex !important; + } + + .d-xl-none { + display: none !important; + } + + .flex-xl-fill { + flex: 1 1 auto !important; + } + + .flex-xl-row { + flex-direction: row !important; + } + + .flex-xl-column { + flex-direction: column !important; + } + + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-xl-wrap { + flex-wrap: wrap !important; + } + + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-xl-start { + justify-content: flex-start !important; + } + + .justify-content-xl-end { + justify-content: flex-end !important; + } + + .justify-content-xl-center { + justify-content: center !important; + } + + .justify-content-xl-between { + justify-content: space-between !important; + } + + .justify-content-xl-around { + justify-content: space-around !important; + } + + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + + .align-items-xl-start { + align-items: flex-start !important; + } + + .align-items-xl-end { + align-items: flex-end !important; + } + + .align-items-xl-center { + align-items: center !important; + } + + .align-items-xl-baseline { + align-items: baseline !important; + } + + .align-items-xl-stretch { + align-items: stretch !important; + } + + .align-content-xl-start { + align-content: flex-start !important; + } + + .align-content-xl-end { + align-content: flex-end !important; + } + + .align-content-xl-center { + align-content: center !important; + } + + .align-content-xl-between { + align-content: space-between !important; + } + + .align-content-xl-around { + align-content: space-around !important; + } + + .align-content-xl-stretch { + align-content: stretch !important; + } + + .align-self-xl-auto { + align-self: auto !important; + } + + .align-self-xl-start { + align-self: flex-start !important; + } + + .align-self-xl-end { + align-self: flex-end !important; + } + + .align-self-xl-center { + align-self: center !important; + } + + .align-self-xl-baseline { + align-self: baseline !important; + } + + .align-self-xl-stretch { + align-self: stretch !important; + } + + .order-xl-first { + order: -1 !important; + } + + .order-xl-0 { + order: 0 !important; + } + + .order-xl-1 { + order: 1 !important; + } + + .order-xl-2 { + order: 2 !important; + } + + .order-xl-3 { + order: 3 !important; + } + + .order-xl-4 { + order: 4 !important; + } + + .order-xl-5 { + order: 5 !important; + } + + .order-xl-last { + order: 6 !important; + } + + .m-xl-0 { + margin: 0 !important; + } + + .m-xl-1 { + margin: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.5rem !important; + } + + .m-xl-3 { + margin: 1rem !important; + } + + .m-xl-4 { + margin: 1.5rem !important; + } + + .m-xl-5 { + margin: 3rem !important; + } + + .m-xl-auto { + margin: auto !important; + } + + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-xl-0 { + margin-top: 0 !important; + } + + .mt-xl-1 { + margin-top: 0.25rem !important; + } + + .mt-xl-2 { + margin-top: 0.5rem !important; + } + + .mt-xl-3 { + margin-top: 1rem !important; + } + + .mt-xl-4 { + margin-top: 1.5rem !important; + } + + .mt-xl-5 { + margin-top: 3rem !important; + } + + .mt-xl-auto { + margin-top: auto !important; + } + + .me-xl-0 { + margin-right: 0 !important; + } + + .me-xl-1 { + margin-right: 0.25rem !important; + } + + .me-xl-2 { + margin-right: 0.5rem !important; + } + + .me-xl-3 { + margin-right: 1rem !important; + } + + .me-xl-4 { + margin-right: 1.5rem !important; + } + + .me-xl-5 { + margin-right: 3rem !important; + } + + .me-xl-auto { + margin-right: auto !important; + } + + .mb-xl-0 { + margin-bottom: 0 !important; + } + + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + + .mb-xl-3 { + margin-bottom: 1rem !important; + } + + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + + .mb-xl-5 { + margin-bottom: 3rem !important; + } + + .mb-xl-auto { + margin-bottom: auto !important; + } + + .ms-xl-0 { + margin-left: 0 !important; + } + + .ms-xl-1 { + margin-left: 0.25rem !important; + } + + .ms-xl-2 { + margin-left: 0.5rem !important; + } + + .ms-xl-3 { + margin-left: 1rem !important; + } + + .ms-xl-4 { + margin-left: 1.5rem !important; + } + + .ms-xl-5 { + margin-left: 3rem !important; + } + + .ms-xl-auto { + margin-left: auto !important; + } + + .p-xl-0 { + padding: 0 !important; + } + + .p-xl-1 { + padding: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.5rem !important; + } + + .p-xl-3 { + padding: 1rem !important; + } + + .p-xl-4 { + padding: 1.5rem !important; + } + + .p-xl-5 { + padding: 3rem !important; + } + + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-xl-0 { + padding-top: 0 !important; + } + + .pt-xl-1 { + padding-top: 0.25rem !important; + } + + .pt-xl-2 { + padding-top: 0.5rem !important; + } + + .pt-xl-3 { + padding-top: 1rem !important; + } + + .pt-xl-4 { + padding-top: 1.5rem !important; + } + + .pt-xl-5 { + padding-top: 3rem !important; + } + + .pe-xl-0 { + padding-right: 0 !important; + } + + .pe-xl-1 { + padding-right: 0.25rem !important; + } + + .pe-xl-2 { + padding-right: 0.5rem !important; + } + + .pe-xl-3 { + padding-right: 1rem !important; + } + + .pe-xl-4 { + padding-right: 1.5rem !important; + } + + .pe-xl-5 { + padding-right: 3rem !important; + } + + .pb-xl-0 { + padding-bottom: 0 !important; + } + + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + + .pb-xl-3 { + padding-bottom: 1rem !important; + } + + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + + .pb-xl-5 { + padding-bottom: 3rem !important; + } + + .ps-xl-0 { + padding-left: 0 !important; + } + + .ps-xl-1 { + padding-left: 0.25rem !important; + } + + .ps-xl-2 { + padding-left: 0.5rem !important; + } + + .ps-xl-3 { + padding-left: 1rem !important; + } + + .ps-xl-4 { + padding-left: 1.5rem !important; + } + + .ps-xl-5 { + padding-left: 3rem !important; + } +} + +@media (min-width: 1400px) { + .d-xxl-inline { + display: inline !important; + } + + .d-xxl-inline-block { + display: inline-block !important; + } + + .d-xxl-block { + display: block !important; + } + + .d-xxl-grid { + display: grid !important; + } + + .d-xxl-inline-grid { + display: inline-grid !important; + } + + .d-xxl-table { + display: table !important; + } + + .d-xxl-table-row { + display: table-row !important; + } + + .d-xxl-table-cell { + display: table-cell !important; + } + + .d-xxl-flex { + display: flex !important; + } + + .d-xxl-inline-flex { + display: inline-flex !important; + } + + .d-xxl-none { + display: none !important; + } + + .flex-xxl-fill { + flex: 1 1 auto !important; + } + + .flex-xxl-row { + flex-direction: row !important; + } + + .flex-xxl-column { + flex-direction: column !important; + } + + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-xxl-start { + justify-content: flex-start !important; + } + + .justify-content-xxl-end { + justify-content: flex-end !important; + } + + .justify-content-xxl-center { + justify-content: center !important; + } + + .justify-content-xxl-between { + justify-content: space-between !important; + } + + .justify-content-xxl-around { + justify-content: space-around !important; + } + + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + + .align-items-xxl-start { + align-items: flex-start !important; + } + + .align-items-xxl-end { + align-items: flex-end !important; + } + + .align-items-xxl-center { + align-items: center !important; + } + + .align-items-xxl-baseline { + align-items: baseline !important; + } + + .align-items-xxl-stretch { + align-items: stretch !important; + } + + .align-content-xxl-start { + align-content: flex-start !important; + } + + .align-content-xxl-end { + align-content: flex-end !important; + } + + .align-content-xxl-center { + align-content: center !important; + } + + .align-content-xxl-between { + align-content: space-between !important; + } + + .align-content-xxl-around { + align-content: space-around !important; + } + + .align-content-xxl-stretch { + align-content: stretch !important; + } + + .align-self-xxl-auto { + align-self: auto !important; + } + + .align-self-xxl-start { + align-self: flex-start !important; + } + + .align-self-xxl-end { + align-self: flex-end !important; + } + + .align-self-xxl-center { + align-self: center !important; + } + + .align-self-xxl-baseline { + align-self: baseline !important; + } + + .align-self-xxl-stretch { + align-self: stretch !important; + } + + .order-xxl-first { + order: -1 !important; + } + + .order-xxl-0 { + order: 0 !important; + } + + .order-xxl-1 { + order: 1 !important; + } + + .order-xxl-2 { + order: 2 !important; + } + + .order-xxl-3 { + order: 3 !important; + } + + .order-xxl-4 { + order: 4 !important; + } + + .order-xxl-5 { + order: 5 !important; + } + + .order-xxl-last { + order: 6 !important; + } + + .m-xxl-0 { + margin: 0 !important; + } + + .m-xxl-1 { + margin: 0.25rem !important; + } + + .m-xxl-2 { + margin: 0.5rem !important; + } + + .m-xxl-3 { + margin: 1rem !important; + } + + .m-xxl-4 { + margin: 1.5rem !important; + } + + .m-xxl-5 { + margin: 3rem !important; + } + + .m-xxl-auto { + margin: auto !important; + } + + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-xxl-0 { + margin-top: 0 !important; + } + + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + + .mt-xxl-3 { + margin-top: 1rem !important; + } + + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + + .mt-xxl-5 { + margin-top: 3rem !important; + } + + .mt-xxl-auto { + margin-top: auto !important; + } + + .me-xxl-0 { + margin-right: 0 !important; + } + + .me-xxl-1 { + margin-right: 0.25rem !important; + } + + .me-xxl-2 { + margin-right: 0.5rem !important; + } + + .me-xxl-3 { + margin-right: 1rem !important; + } + + .me-xxl-4 { + margin-right: 1.5rem !important; + } + + .me-xxl-5 { + margin-right: 3rem !important; + } + + .me-xxl-auto { + margin-right: auto !important; + } + + .mb-xxl-0 { + margin-bottom: 0 !important; + } + + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + + .mb-xxl-auto { + margin-bottom: auto !important; + } + + .ms-xxl-0 { + margin-left: 0 !important; + } + + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + + .ms-xxl-3 { + margin-left: 1rem !important; + } + + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + + .ms-xxl-5 { + margin-left: 3rem !important; + } + + .ms-xxl-auto { + margin-left: auto !important; + } + + .p-xxl-0 { + padding: 0 !important; + } + + .p-xxl-1 { + padding: 0.25rem !important; + } + + .p-xxl-2 { + padding: 0.5rem !important; + } + + .p-xxl-3 { + padding: 1rem !important; + } + + .p-xxl-4 { + padding: 1.5rem !important; + } + + .p-xxl-5 { + padding: 3rem !important; + } + + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-xxl-0 { + padding-top: 0 !important; + } + + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + + .pt-xxl-3 { + padding-top: 1rem !important; + } + + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + + .pt-xxl-5 { + padding-top: 3rem !important; + } + + .pe-xxl-0 { + padding-right: 0 !important; + } + + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + + .pe-xxl-3 { + padding-right: 1rem !important; + } + + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + + .pe-xxl-5 { + padding-right: 3rem !important; + } + + .pb-xxl-0 { + padding-bottom: 0 !important; + } + + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + + .ps-xxl-0 { + padding-left: 0 !important; + } + + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + + .ps-xxl-3 { + padding-left: 1rem !important; + } + + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + + .ps-xxl-5 { + padding-left: 3rem !important; + } +} + +@media print { + .d-print-inline { + display: inline !important; + } + + .d-print-inline-block { + display: inline-block !important; + } + + .d-print-block { + display: block !important; + } + + .d-print-grid { + display: grid !important; + } + + .d-print-inline-grid { + display: inline-grid !important; + } + + .d-print-table { + display: table !important; + } + + .d-print-table-row { + display: table-row !important; + } + + .d-print-table-cell { + display: table-cell !important; + } + + .d-print-flex { + display: flex !important; + } + + .d-print-inline-flex { + display: inline-flex !important; + } + + .d-print-none { + display: none !important; + } +} \ No newline at end of file diff --git a/site/docs/assets/stylesheets/extra.css b/site/docs/assets/stylesheets/extra.css new file mode 100644 index 0000000000..3e147c2f1b --- /dev/null +++ b/site/docs/assets/stylesheets/extra.css @@ -0,0 +1,470 @@ +/*header*/ +.md-header { + background-color: white; + box-shadow: 0 0 0.2rem #0000, 0 0.2rem 0.4rem #0000; + color: black; + display: block; + left: 0; + position: sticky; + right: 0; + top: 0; + z-index: 4; +} + +/*nav*/ +.md-tabs__list { + contain: content; + display: flex; + list-style: none; + margin: 0; + overflow: auto; + padding: 0; + scrollbar-width: none; + white-space: nowrap; + text-align: center; +} + +.md-tabs { + background-color: white; + color: black; + display: block; + line-height: 1.3; + overflow: auto; + width: 100%; + z-index: 3; +} + +/*hero*/ +.mdx-container { + text-align: center; + color: #f8f8f8; + background: url("../images/intro-bg.webp") no-repeat center center; + background-size: cover; + height: 32rem; +} + +.intro-message { + position: relative; + padding-top: 15%; + font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +.intro-message h1 { + font-weight: 400; + margin: 0; + text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.6); + font-size: 8em; +} + +.intro-divider { + width: 400px; + border-top: 1px solid #f8f8f8; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); +} + +.intro-message h3 { + font-size: 24px; + text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.6); +} + +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; +} + +.list-inline li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} + +.topnav-page-selection img { + height: 1.3rem; + margin-right: 0.3rem; +} + +.section-heading-spacer { + float: left; + width: 200px; + border: 0; + border-top: 1px solid #777777; + margin-bottom: 20px; + margin-top: 20px; +} + + +.content-section-a, .content-section-b{ +margin-top: 50px; +margin-bottom: 50px; +} + +.section-heading { + + /* font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; */ + /* font-weight: 400; */ + font-size: 30px; + margin-top: 20px; + margin-bottom: 10px; + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; + float: left; + +} + +#services .container { + font-size: 15px; + margin-top: 3rem; + margin-bottom: 3rem; +} + +#termynal-time-travel, +#termynal { + left: 0 !important; +} + +#about { + text-align: center; +} + +#about h2 { + font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 400; + + font-size: 30px; + + margin-top: 20px; + margin-bottom: 10px; + + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +#about .button-box { + padding-top: 1rem; +} + + +:root { + --md-primary-fg-color: #0969da; + --md-primary-fg-color--light: #0969da; + --md-primary-fg-color--dark: #0969da; + --md-accent-fg-color: #0969da; + --md-accent-fg-color--transparent: #0969da; + + --color-default-white: #fff; + --color-primary-main: #0969da; + --color-primary-light: #0969da; + --color-default-primary: #131417; + --color-default-outline: #D1D2D9; + --bg-dark: #171721; +} + +[data-md-color-primary="iceberg"] { + --md-primary-fg-color: --md-accent-fg-color: #0969da; + --md-accent-fg-color--transparent: #0969da; + --md-accent-bg-color: #fff; + --md-accent-bg-color--light: #ffffffb3; + --md-primary-fg-color--light: #0969da; + --md-primary-fg-color--dark: #0969da; + --md-primary-bg-color: #fff; + --md-primary-bg-color--light: #ffffffb3; +} + +[data-md-color-accent="iceberg"] { + --md-accent-fg-color: #0969da; + --md-accent-fg-color--transparent: #0969da; + --md-accent-bg-color: #fff; + --md-accent-bg-color--light: #ffffffb3; +} + +[data-md-color-scheme="iceberg"] { + --md-accent-fg-color: #0969da; + --md-typeset-a-color: #0969da; + --md-typeset-color: #4A4D57; +} + + +/*Search form*/ +header .md-search__form { + border-radius: 6px !important; + background-color: var(--color-default-white); + +} + +[dir=ltr] .md-search__icon[for=__search] { + color: var(--md-typeset-color); +} + +header .md-search__input { + border-radius: 6px; +} + + +header .md-search__input::placeholder { + color: var( --md-typeset-color); +} + +/* Hide the "home" primary menu title */ +.md-nav--primary>.md-nav__title { + display: none; +} + +.md-nav__list { + color: var(--color-default-primary); +} + +.md-search__input { + border-color: var(--md-typeset-color); + border-style: solid; + border-width: 1px; +} + +.md-typeset { + font-size: 17px; + line-height: 30px; + font-weight: 400; + font-family: "Source Sans Pro", sans-serif; +} + +.md-typeset h1 { + color: var(--color-default-primary); + font-size: 32px; + font-weight: 400; + margin-bottom: 18px; +} + +.md-typeset h2 { + color: var(--color-default-primary); + font-size: 28px; + font-weight: 300; + margin-bottom: 12px; + margin-top: 20px; + +} + +.md-typeset h3 { + color: var(--color-default-primary); + font-size: 24px; + font-weight: 200; + margin-bottom: 12px; + margin-top: 20px; +} + +.md-typeset h4 { + color: var(--color-default-primary); + font-size: 20px; + font-weight: 100; + margin-bottom: 12px; +} + +.header__links { + display: flex; + align-items: center; + margin-left: 24px; + +} + +@media (max-width: 767px) { + .intro-divider { + width: 100%; + } +} + +@media (max-width: 1219px) { + .header__links { + display: none; + } +} + +.header__link { + font-weight: 400; + font-size: 17px; + line-height: 24px; + color: var(--md-typeset-a-color); + display: flex; + align-items: center; + margin-left: 16px; +} + +.header__link:hover { + color: var(--color-default-outline); +} + +.header__link:first-child { + margin-left: 16px; +} + +.header__link-icon { + margin-left: 8px; +} + + +@media (max-width: 1219px) { + .md-sidebar--primary { + background-color: var(--color-default-white); + } + + .md-nav--primary .md-nav__title~.md-nav__list { + background-color: var(--color-default-white); + } + + .md-nav--primary :is(.md-nav__title, .md-nav__item) { + color: var(--color-default-primary); + font-size: 17px; + line-height: 33px; + } + + .md-nav--primary .md-nav__item--active>.md-nav__link, + .md-nav--primary .md-nav__item--active>.md-nav__link:is(:focus, :hover), + .md-nav__link:is(:focus, :hover) { + color: var(--color-default-primary); + } + + .md-nav--primary, + .md-nav--primary .md-nav { + background-color: var(--color-default-white); + } +} + +@media (max-width: 959px) { + + .md-nav__link--passed, + .md-nav__item .md-nav__link--active { + color: var(--color-default-primary); + } +} + +.mobile-nav-wrapper { + display: none; + position: fixed; + top: 0; + height: 88px; + left: 0; + right: 0; + background-color: var(--color-default-white); + z-index: 5; + align-items: center; + justify-content: space-between; + padding: 12px 32px 12px 12px; +} + +[data-md-toggle=drawer]:checked~.md-container .mobile-nav-wrapper { + display: flex; +} + + +#termynal-expressive-sql, +#termynal-data-compaction { + left: 0; +} + +.md-tabs__list { + align-items: center; + justify-content: center; +} + + +p { + + -webkit-text-size-adjust: 100%; + color: var(--color-fg-default); + font-family: sans-serif, -apple-system, BlinkMacSystemFont, segoe ui, Helvetica, Arial, apple color emoji, segoe ui emoji; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; + +} + + + + +/*------------------------------------*\ + #CTO +\*------------------------------------*/ +.cto { + background-image:linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url("../images/footer-bg.webp"); + background-size: cover; + margin: 0; + border: 0; + font: inherit; + vertical-align:auto; + color: var(--color-default-white); + text-align: center; + padding: 20px 0; +} + +.cto span { + text-size-adjust: none; + box-sizing: inherit; + font-size: 14.5px; + margin-right: 30px; + font-stretch: 100%; + color: var(--color-default-white); +} + + +.cto .btn span{ + font-size: 16px; + color: var(--color-default-primary); +} + +.md-footer { + background-image:linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("../images/footer-bg.webp"); + background-size: cover; + margin: 0; + border: 0; + font: inherit; + vertical-align:auto; + color: var(--color-default-white); + text-align: center; + padding: 0 0; +} + +.md-copyright { + color: var(--md-footer-fg-color--lighter); + font-size: .64rem; + margin: auto; + padding: .4rem 0; + width: 100%; +} + +.fa-2x { + width: 2em; + height: 2em; + padding: 3px; + text-align: center; +} + +.fa-fw { + width: 1em; + height: 1em; + text-align: center; +} + +.fa { + display: inline-block; + font: normal normal normal 14px FontAwesome; + font-size: 16px; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.network-name { + text-transform: uppercase; + font-size: 14px; + font-weight: 400; + letter-spacing: 2px; +} + +.md-header__button.md-logo img, .md-header__button.md-logo svg { + fill: currentcolor; + display: block; + height: 2.5rem; + width: auto; +} diff --git a/site/docs/assets/stylesheets/home.css b/site/docs/assets/stylesheets/home.css new file mode 100644 index 0000000000..98166fdfc0 --- /dev/null +++ b/site/docs/assets/stylesheets/home.css @@ -0,0 +1,45 @@ +.container { + width: 100%; + max-width: 1140px; + margin-right: auto; + margin-left: auto; + padding-right: 15px; + padding-left: 15px; + margin-top: 3rem; +} + +.row { + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.col-6 { + flex: 0 0 50%; + max-width: 50%; + padding-right: 15px; + padding-left: 15px; + box-sizing: border-box; +} + +.center-vertically { + align-items: center; /* Center vertically */ + justify-content: center; /* Center horizontally */ + flex-direction: column; /* To stack content vertically */ + text-align: center; /* Center text horizontally */ +} + +/* Media query for smaller screens */ +@media (max-width: 767px) { + .col-6 { + flex: 0 0 100%; /* On smaller screens, make columns take up full width */ + max-width: 100%; + padding-right: 15px; + padding-left: 15px; + } + + div#termynal-expressive-sql { + left: 0; + } +} diff --git a/site/docs/index.md b/site/docs/index.md index 287452fd7d..f1e43fa40c 100644 --- a/site/docs/index.md +++ b/site/docs/index.md @@ -1,5 +1,6 @@ --- -title: "Intro to Apache Iceberg" +title: "Apache Iceberg" +template: home.html --- <!-- - Licensed to the Apache Software Foundation (ASF) under one or more @@ -17,92 +18,3 @@ title: "Intro to Apache Iceberg" - See the License for the specific language governing permissions and - limitations under the License. --> -<link href="https://cdn.jsdelivr.net/gh/apache/iceberg-docs@main/iceberg-theme/static/css/termynal.css" rel="stylesheet"> -<style> -section#intro { - display: block; - max-width: 100%; - margin: 0; - padding: 0; -} - -.intro-header { - background: url(assets/images/intro-bg.webp) no-repeat center center; - background-size: cover; -} -</style> - - -<section id="intro"> - <div class="intro-header"> - </div> -</section> - -## Apache Iceberg - -### The open table format for analytic datasets. - -* [Community](community.md) -* [GitHub](https://github.com/apache/iceberg) -* [Slack](https://github.com/apache/iceberg) - -## What is Iceberg? - -Iceberg is a high-performance format for huge analytic tables. Iceberg brings the reliability and simplicity of SQL tables to big data, while making it possible for engines like Spark, Trino, Flink, Presto, Hive and Impala to safely work with the same tables, at the same time. - -[Learn More]('https://iceberg.apache.org/getting-started') - -## Expressive SQL - -Iceberg supports flexible SQL commands to merge new data, update existing rows, and perform targeted deletes. Iceberg can eagerly rewrite data files for read performance, or it can use delete deltas for faster updates. -[Learn More]('https://iceberg.apache.org/docs/latest/spark-writes/') - -<div class="termynal-container"> -<div id="termynal-expressive-sql" data-termynal="" data-ty-startdelay="2000" data-ty-typedelay="20" data-ty-linedelay="500" style="width: 445px; min-height: 333.344px;"><span data-ty="input" data-ty-prompt="sql>">MERGE INTO prod.nyc.taxis pt</span><span data-ty="input" data-ty-prompt="">USING (SELECT * FROM staging.nyc.taxis) st</span><span data-ty="input" data-ty-prompt="">ON pt.id = st.id</span><span data-ty="input" data-ty-prompt="">WHEN NOT MATCHED THEN INSERT *;</span><span data- [...] -</div> -</div> - -## Full Schema Evolution - -Schema evolution just works. Adding a column won't bring back "zombie"🧟 data. Columns can be renamed and reordered. Best of all, schema changes never require rewriting your table. - -[Learn More]('https://iceberg.apache.org/docs/latest/evolution/') - -<div class="termynal-container"> -<div id="termynal" data-termynal="" data-ty-startdelay="4000" data-ty-typedelay="20" data-ty-linedelay="500" style="width: 445px; min-height: 474.516px;"><span data-ty="input" data-ty-prompt="sql>">ALTER TABLE taxis</span><span data-ty="input" data-ty-prompt="">ALTER COLUMN trip_distance</span><span data-ty="input" data-ty-prompt="" data-ty-delay="2500">TYPE double;</span><span data-ty="">Done!</span><span data-ty="input" data-ty-prompt="sql>">ALTER TABLE taxis</span><span data-ty= [...] -</div> -</div> - -## Hidden Partitioning - -Iceberg handles the tedious and error-prone task of producing partition values for rows in a table and skips unnecessary partitions and files automatically. No extra filters are needed for fast queries, and table layout can be updated as data or queries change. - -[Learn More]('https://iceberg.apache.org/docs/latest/partitioning/#icebergs-hidden-partitioning') - -<div class="termynal-container"> -<div> - <script src="https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js"></script> - <lottie-player src="https://iceberg.apache.org/lottie/hidden-partitioning-animation.json" background="transparent" speed="0.5" style="width: 600px; height: 400px;" loop="" autoplay=""> -</div> -</div> - -## Time Travel and Rollback - -Time-travel enables reproducible queries that use exactly the same table snapshot, or lets users easily examine changes. Version rollback allows users to quickly correct problems by resetting tables to a good state. -[Learn More]('https://iceberg.apache.org/docs/latest/spark-queries/#time-travel') - -<div class="termynal-container"> -<div id="termynal-time-travel" data-termynal="" data-ty-startdelay="6000" data-ty-typedelay="20" data-ty-linedelay="500" style="width: 445px; min-height: 390.516px;"><span data-ty="input" data-ty-prompt="sql>">SELECT count(*) FROM nyc.taxis</span><span data-ty="">2,853,020</span><span data-ty="input" data-ty-prompt="sql>">SELECT count(*) FROM nyc.taxis FOR VERSION AS OF 2188465307835585443</span><span data-ty="">2,798,371</span><span data-ty="input" data-ty-prompt="sql>">SELECT [...] -</div> -</div> - -## Data Compaction - -Data compaction is supported out-of-the-box and you can choose from different rewrite strategies such as bin-packing or sorting to optimize file layout and size. - -<div class="termynal-container"> -<div id="termynal-data-compaction" data-termynal="" data-ty-startdelay="8000" data-ty-typedelay="20" data-ty-linedelay="500" style="width: 445px; min-height: 192.172px;"><span data-ty="input" data-ty-prompt="sql>">CALL system.rewrite_data_files("nyc.taxis");</span> -</div> -</div> - - <script src="https://cdn.jsdelivr.net/gh/apache/iceberg-docs@main/iceberg-theme/static/js/termynal.js" data-termynal-container="#termynal|#termynal-data-compaction|#termynal-expressive-sql|#termynal-time-travel"></script> diff --git a/site/mkdocs.yml b/site/mkdocs.yml index 7b0be5d726..ee8e52704d 100644 --- a/site/mkdocs.yml +++ b/site/mkdocs.yml @@ -22,10 +22,17 @@ copyright: | site_name: Apache Iceberg theme: + custom_dir: overrides + static_templates: + - home.html name: material language: en - logo: assets/images/iceberg-logo-icon.png + logo: assets/images/Iceberg-logo.svg favicon: assets/images/favicon-96x96.png + font: + text: Nunito Sans + palette: + scheme: iceberg features: - navigation.tabs - navigation.tabs.sticky @@ -86,6 +93,15 @@ extra: link: 'https://join.slack.com/t/apache-iceberg/shared_invite/zt-287g3akar-K9Oe_En5j1UL7Y_Ikpai3A' title: slack +extra_css: + - assets/stylesheets/extra.css + - assets/stylesheets/bootstrap-grid.css + - assets/stylesheets/bootstrap-buttons.css + - assets/stylesheets/home.css + +extra_javascript: + - assets/javascript/extra.js + watch: - nav.yml - + - overrides diff --git a/site/overrides/home.html b/site/overrides/home.html new file mode 100644 index 0000000000..5ab9907f70 --- /dev/null +++ b/site/overrides/home.html @@ -0,0 +1,321 @@ +{% extends "main.html" %} + +{% block tabs %} + {{ super() }} + + <link + href="https://cdn.jsdelivr.net/gh/ines/termynal@9b301892db6f8d403abfce7adf65888dffed72ea/termynal.css" + rel="stylesheet" + /> + + <!-- disable side bars for home page --> + <style> + /* Hide main content for now */ + .md-content { + display: none; + } + + /* Hide table of contents */ + @media screen and (min-width: 60em) { + .md-sidebar--secondary { + display: none; + } + } + + /* Hide navigation */ + @media screen and (min-width: 76.25em) { + .md-sidebar--primary { + display: none; + } + } + </style> + <section class="mdx-container"> + <div class="container"> + <div class="d-flex flex-row"> + <div class="col-lg-12"> + <div class="intro-message"> + <h1>Apache Iceberg</h1> + <h3>The open table format for analytic datasets.</h3> + <hr class="intro-divider" /> + <ul class="list-inline intro-social-buttons"> + {% for social in config.extra.social %} + <li> + <a class="btn btn-default btn-lg" href="{{ social.link }}" target="_blank"> + <span class="fa fa-fw"> + {% include ".icons/" ~ social.icon ~ ".svg" %} + </span> + <span class="network-name">{{ social.title }}</span> + </a> + </li> + {% endfor %} + </ul> + </div> + </div> + </div> + </div> + </section> + + <section id="about"> + <div class="container"> + <div class="d-flex flex-row"> + <div class="col-lg-2"></div> + <div class="col-lg-8"> + <br /><br /> + <h2>What is Iceberg?</h2> + <br /> + + <p> + Iceberg is a high-performance format for huge analytic tables. Iceberg + brings the reliability and simplicity of SQL tables to big data, while + making it possible for engines like Spark, Trino, Flink, Presto, Hive + and Impala to safely work with the same tables, at the same time. + </p> + <div class="button-box"> + <ul class="list-inline intro-social-buttons"> + <li> + <a href="./spark-quickstart" class="btn btn-default btn-lg"> + <span class="network-name">Learn More</span> + </a> + </li> + <ul></ul> + </ul> + </div> + <br /> + </div> + </div> + </div> + </section> + + <section id="services "> + <div class="content-section-a"> + <div class="container"> + <div class="d-flex flex-column flex-lg-row justify-content-around"> + <div class="col-lg-5 col-sm-6 d-flex flex-column"> + <hr class="section-heading-spacer" /> + <div class="clearfix"></div> + <h2 class="section-heading">Expressive SQL</h2> + <p> + Iceberg supports flexible SQL commands to merge new data, update + existing rows, and perform targeted deletes. Iceberg can eagerly + rewrite data files for read performance, or it can use delete deltas + for faster updates. + </p> + + <ul class="list-inline intro-social-buttons"> + <li> + <a href="./docs/latest/spark-writes/" class="btn btn-default btn-lg"> + <span class="network-name">Learn More</span> + </a> + </li> + </ul> + </div> + <div class="col-lg-5 col-lg col-sm-6"> + <div id="termynal-expressive-sql" + data-termynal="" + data-ty-startdelay="2000" + data-ty-typedelay="20" + data-ty-linedelay="500" + style="width: 445px; min-height: 338.5px"> + + <span data-ty="input" data-ty-prompt="sql>">MERGE INTO prod.nyc.taxis pt + </span> + <span data-ty="input" data-ty-prompt="">USING (SELECT * FROM staging.nyc.taxis) st + </span> + <span data-ty="input" data-ty-prompt="">ON pt.id = st.id + </span> + <span data-ty="input" data-ty-prompt="">WHEN NOT MATCHED THEN INSERT *; + </span> + <span data-ty="">Done!</span> + <span data-ty="input" data-ty-prompt="sql>"></span> + + </div> + </div> + </div> + </div> + </div> + <div class="content-section-b"> + <div class="container"> + <div class="d-flex flex-column flex-lg-row-reverse justify-content-around"> + <div class="col-lg-5 col-lg-offset-1 col-sm-push-6 d-flex flex-column"> + <hr class="section-heading-spacer" /> + <div class="clearfix"></div> + <h2 class="section-heading">Full Schema Evolution</h2> + <p> + Schema evolution just works. Adding a column won't bring back + "zombie" data. Columns can be renamed and reordered. Best of all, + schema changes never require rewriting your table. + </p> + + <ul class="list-inline intro-social-buttons"> + <li> + <a href="./docs/latest/evolution/" class="btn btn-default btn-lg"> + <span class="network-name">Learn More</span> + </a> + </li> + </ul> + </div> + <div class="col-lg-5 col-sm-pull-6 col-sm-6"> + <div id="termynal" + data-termynal="" + data-ty-startdelay="4000" + data-ty-typedelay="20" + data-ty-linedelay="500" + style="width: 445px; min-height: 484.5px"> + + <span data-ty="input" data-ty-prompt="sql>">ALTER TABLE taxis + </span> + <span data-ty="input" data-ty-prompt="">ALTER COLUMN trip_distance + </span> + <span data-ty="input" data-ty-prompt="" data-ty-delay="2500">TYPE double; + </span> + <span data-ty="">Done!</span> + + <span data-ty="input" data-ty-prompt="sql>">ALTER TABLE taxis + </span> + <span data-ty="input" data-ty-prompt="">ALTER COLUMN trip_distance + </span> + <span data-ty="input" data-ty-prompt="">AFTER fare; + </span> + <span data-ty="">Done!</span> + + <span data-ty="input" data-ty-prompt="sql>">ALTER TABLE taxis + </span> + <span data-ty="input" data-ty-prompt="">RENAME COLUMN trip_distance + </span> + <span data-ty="input" data-ty-prompt="">TO distance; + </span> + <span data-ty="">Done!</span> + + </div> + </div> + </div> + </div> + </div> + <div class="content-section-a"> + <div class="container"> + <div class="d-flex flex-column flex-lg-row justify-content-around"> + <div class="col-lg-5 col-sm-12 d-flex flex-column"> + <hr class="section-heading-spacer" /> + <div class="clearfix"></div> + <h2 class="section-heading">Hidden Partitioning</h2> + <p> + Iceberg handles the tedious and error-prone task of producing + partition values for rows in a table and skips unnecessary + partitions and files automatically. No extra filters are needed for + fast queries, and table layout can be updated as data or queries + change. + </p> + + <ul class="list-inline intro-social-buttons"> + <li> + <a href="./docs/latest/partitioning/#icebergs-hidden-partitioning" class="btn btn-default btn-lg"> + <span class="network-name">Learn More</span> + </a> + </li> + </ul> + </div> + <div class="col-lg-5 col-lg col-sm-12"> + <script src="https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js"></script> + <lottie-player src="https://iceberg.apache.org/lottie/hidden-partitioning-animation.json" + background="transparent" + speed="0.5" + style="width: 430px; height: 400px" + loop="" + autoplay=""> + </lottie-player> + </div> + </div> + </div> + </div> + <div class="content-section-b"> + <div class="container"> + <div class="d-flex flex-column flex-lg-row-reverse justify-content-around"> + <div class="col-lg-5 col-lg-offset-1 col-sm-push-6 d-flex flex-column"> + <hr class="section-heading-spacer" /> + <div class="clearfix"></div> + <h2 class="section-heading">Time Travel and Rollback</h2> + <p> + Time-travel enables reproducible queries that use exactly the same + table snapshot, or lets users easily examine changes. Version + rollback allows users to quickly correct problems by resetting + tables to a good state. + </p> + + <ul class="list-inline intro-social-buttons"> + <li> + <a href="./docs/latest/spark-queries/#time-travel" class="btn btn-default btn-lg"> + <span class="network-name">Learn More</span> + </a> + </li> + </ul> + </div> + <div class="col-lg-5 col-sm-pull-6"> + <div class="termynal-container"> + <div id="termynal-time-travel" + data-termynal="" + data-ty-startdelay="6000" + data-ty-typedelay="20" + data-ty-linedelay="500" + style="width: 445px; min-height: 391.9px"> + + <span data-ty="input" data-ty-prompt="sql>">SELECT count(*) FROM nyc.taxis + </span> + <span data-ty="">2,853,020</span> + + <span data-ty="input" data-ty-prompt="sql>">SELECT count(*) FROM nyc.taxis FOR VERSION AS OF 2188465307835585443 + </span> + <span data-ty="">2,798,371</span> + <span data-ty="input" data-ty-prompt="sql>">SELECT count(*) FROM nyc.taxis FOR TIMESTAMP AS OF TIMESTAMP '2022-01-01 00:00:00.000000 Z' + </span> + <span data-ty="">2,798,371</span> + + </div> + </div> + </div> + </div> + </div> + </div> + <div class="content-section-a"> + <div class="container"> + <div class="d-flex flex-column flex-lg-row justify-content-around"> + <div class="col-lg-5 d-flex flex-column"> + <hr class="section-heading-spacer" /> + <div class="clearfix"></div> + <h2 class="section-heading">Data Compaction</h2> + <p> + Data compaction is supported out-of-the-box and you can choose from + different rewrite strategies such as bin-packing or sorting to + optimize file layout and size. + </p> + </div> + <div class="col-lg-5 col-lg"> + <div id="termynal-data-compaction" + data-termynal="" + data-ty-startdelay="8000" + data-ty-typedelay="20" + data-ty-linedelay="500" + style="width: 445px; min-height: 192.7px"> + + <span data-ty="input" data-ty-prompt="sql>">CALL system.rewrite_data_files("nyc.taxis"); + </span> + + </div> + </div> + </div> + </div> + </div> + </section> + + <script + src="https://cdn.jsdelivr.net/gh/ines/termynal@9b301892db6f8d403abfce7adf65888dffed72ea/termynal.js" + data-termynal-container="#termynal|#termynal-data-compaction|#termynal-expressive-sql|#termynal-time-travel"> + </script> +{% endblock %} + +{% block content %} + {{ super() }} +{% endblock %} + +{% block footer%} + {% include "partials/cto.html" %} +{% endblock %} diff --git a/site/overrides/partials/cto.html b/site/overrides/partials/cto.html new file mode 100644 index 0000000000..a64e2533e5 --- /dev/null +++ b/site/overrides/partials/cto.html @@ -0,0 +1,21 @@ +<div class="cto"> + <div class="container"> + <span> Apache Iceberg, Iceberg, Apache, the Apache feather logo, and the Apache Iceberg project logo + are</br>either registered trademarks or trademarks of The Apache Software Foundation. Copyright © + 2023</br>The Apache Software Foundation, Licensed under the <a + href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.</br></br> + </span> + <ul class="list-inline intro-social-buttons"> + {% for social in config.extra.social %} + <li> + <a class="btn btn-default btn-lg" href="{{ social.link }}" target="_blank"> + <span class="fa fa-fw"> + {% include ".icons/" ~ social.icon ~ ".svg" %} + </span> + <span class="network-name"> {{ social.title }}</span> + </a> + </li> + {% endfor %} + </ul> + </div> +</div> diff --git a/site/overrides/partials/footer.html b/site/overrides/partials/footer.html new file mode 100644 index 0000000000..9567e202f4 --- /dev/null +++ b/site/overrides/partials/footer.html @@ -0,0 +1,22 @@ +<footer class="md-footer"> + + <div class="md-footer-meta md-typeset"> + <div class="md-footer-meta__inner md-grid"> + <div class="md-copyright"> + + <div class="md-copyright__highlight"> + Apache Iceberg, Iceberg, Apache, the Apache feather logo, and the Apache Iceberg project logo are<br>either registered trademarks or trademarks of The Apache Software Foundation. Copyright © 2023<br>The Apache Software Foundation, Licensed under the <a href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br><br> + + </div> + + + Made with + <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> + Material for MkDocs + </a> + + </div> + + </div> + </div> + </footer> \ No newline at end of file diff --git a/site/overrides/partials/header.html b/site/overrides/partials/header.html new file mode 100644 index 0000000000..6d943e0c08 --- /dev/null +++ b/site/overrides/partials/header.html @@ -0,0 +1,99 @@ +<!-- + Copyright (c) 2016-2023 Martin Donath <[email protected]> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. +--> + +<!-- Determine classes --> +{% set class = "md-header" %} {% if "navigation.tabs.sticky" in features %} {% +set class = class ~ " md-header--shadow md-header--lifted" %} {% elif +"navigation.tabs" not in features %} {% set class = class ~ " md-header--shadow" +%} {% endif %} + +<!-- Header --> +<header class="{{ class }}" data-md-component="header"> + <nav class="md-header__inner md-grid" aria-label="{{ lang.t('header') }}"> + <!-- Link to home --> + <a + href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}" + title="{{ config.site_name | e }}" + class="md-header__button md-logo" + aria-label="{{ config.site_name }}" + data-md-component="logo" + > + {% include "partials/logo.html" %} + </a> + + <!-- Button to open drawer --> + <label class="md-header__button md-icon" for="__drawer"> + {% set icon = config.theme.icon.menu or "material/menu" %} {% include + ".icons/" ~ icon ~ ".svg" %} + </label> + + <!-- Header title --> + <div class="md-header__title" data-md-component="header-title"> + <div class="md-header__ellipsis"> + <div class="md-header__topic"> + <span class="md-ellipsis"> </span> + </div> + <div class="md-header__topic" data-md-component="header-topic"> + <span class="md-ellipsis"> + {% if page.meta and page.meta.title %} {{ page.meta.title }} {% else + %} {{ page.title }} {% endif %} + </span> + </div> + </div> + </div> + + <!-- Button to open search modal --> + {% if "material/search" in config.plugins %} + <label class="md-header__button md-icon" for="__search"> + {% set icon = config.theme.icon.search or "material/magnify" %} {% include + ".icons/" ~ icon ~ ".svg" %} + </label> + + <!-- Search interface --> + {% include "partials/search.html" %} {% endif %} + + {% if config.extra.social %} + {% include "partials/social.html" %} + {% endif %} + + <!-- Color palette toggle --> + {% if config.theme.palette %} {% if not config.theme.palette is mapping %} + {% include "partials/palette.html" %} {% endif %} {% endif %} + + <!-- User preference: color palette --> + {% if not config.theme.palette is mapping %} {% include + "partials/javascripts/palette.html" %} {% endif %} + + <!-- Site language selector --> + {% if config.extra.alternate %} {% include "partials/alternate.html" %} {% + endif %} + + <!-- Repository information --> + {% if config.repo_url %} + <div class="md-header__source">{% include "partials/source.html" %}</div> + {% endif %} + </nav> + + <!-- Navigation tabs (sticky) --> + {% if "navigation.tabs.sticky" in features %} {% if "navigation.tabs" in + features %} {% include "partials/tabs.html" %} {% endif %} {% endif %} +</header>
