/*
	Theme Name: Koni
	Description: Theme Koni For FloodAssist
	Version: 1.4.2
	Author: Mark
*/

/*------------------------------------*\
    MAIN
\*------------------------------------*/

/* global box-sizing */
*,
*:after,
*:before {
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* html element 62.5% font-size for REM use */
html {
    font-size: 62.5%;
}

body {
    font: 500 16px/1.4 'Barlow', sans-serif;
    color: #3F4B58;
}

div.wpcf7 .ajax-loader,
.wpcf7 .file.active label,
.wpcf7 span.wpcf7-not-valid-tip,
.acf-map .gm-style-cc {
    display: none;
}

/* clear */
.clear:before,
.clear:after {
    content: ' ';
    display: table;
}

.clear:after {
    clear: both;
}

.clear {
    *zoom: 1;
}

img {
    max-width: 100%;
    vertical-align: bottom;
}

a {
    color: #FDBB2F;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease 0s;
}

a.normal {
    color: #3F4B58;
}

a.white {
    color: #fff;
}

a.blue {
    color: #FDBB2F;
}

.white {
    color: #fff;
    padding-top: 10px;
}

.blue {
    color: #FDBB2F;
}

a:hover,
a.normal:hover,
a.white:hover,
.header .nav .sub-menu a:hover,
.footer .columns .col a:hover,
.meta a:hover,
.notice a:hover,
h4 a:hover,
h5 a:hover,
.sidebar .widget.contact p a:hover,
.breadcrumbs a:hover,
.link.small.arrow-right {
    color: #FDBB2F;
}

a:focus {
    outline: 0;
}

a:hover,
a:active {
    outline: 0;
}

input:focus {
    outline: 0;
    border: 1px solid #04A4CC;
}

.has-svg svg {
    display: inline-block;
    vertical-align: middle;
    width: 6px;
    height: 11px;
    margin: -1px 0 0 7px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 700;
    line-height: 1.3;
    color: #104E8B;
    margin: 0 0 15px;
}

h1 {
    font-size: 58px;
    line-height: 1.2;
}

h2 {
    font-size: 38px;
    line-height: 1.2;
}

h4 {
    font-size: 24px;
}

h4.title {
    /* 	margin: 0 0 8px;
	font-size: 20px; /* added later was not on original layout */
    */
}

h5 {
    font-size: 20px;
}

h5.title-18 {
    font-size: 18px;
}

h4 a,
h5 a {
    color: #104E8B;
    font-size: 24px;
    /* added later was not on original layout */
    font-weight: 700;
    /* added later was not on original layout */
}

h5 a {
    font-size: 20px;
}

h6,
.title-6 {
    font-size: 16px;
}

.subtitle {
    font-size: 14px;
    font-weight: 700;
    color: #3F4B58;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 3px;
}

.title-wrap {
    margin: 15px 0 12px;
}

.title-wrap h4 {
    margin: 0;
}

.title-wrap~p {
    margin: 0 0 15px;
}

p {
    margin: 0 0 20px;
}

article ul {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
}

article ul:not(.uq-service-comparison__list) li {
    position: relative;
    padding-left: 0;
    margin: 0 0 3px;
}

article ul:not(.uq-service-comparison__list) li::before {
    content: '-';
    position: absolute;
    left: 0;
    top: 0;
}

article ul.list {
    font-size: 0;
}

article ul.list li {
    display: inline-block;
    vertical-align: top;
    width: 50%;
    font-size: 16px;
}

.overflow {
    overflow: hidden;
}

.left {
    float: left;
}

.right {
    float: right;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

.img-wrap {
    position: relative;
    display: block;
    border: 0;
    background: #000;
    overflow: hidden;
    cursor: pointer;
    border-radius: 5px;
}

.img-wrap img {
    width: 100%;
    border-radius: 5px;
    transition: all 0.5s ease 0s;
}

.img-wrap img {
    opacity: 1;
}

.img-wrap:hover img {
    opacity: 0.5;
    transform: scale(1.04);
}

.img-wrap.normal {
    background: none;
    margin: 0 auto 25px;
    min-height: 105px;
    cursor: auto;
    display: flex;
    align-content: center;
    justify-content: center;
    flex-wrap: wrap;
}

.img-wrap.normal img {
    width: auto;
    opacity: 1;
    transform: none;
}

hr {
    border: 0;
    outline: 0;
    border-top: 1px solid #e4e4e4;
    margin: 50px 0 45px;
}

.mejs-container,
.mejs-container video {
    border-radius: 5px;
    background: none;
}

.mejs-container .mejs-controls {
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
}

.preloader {
    background: none no-repeat scroll center bottom #fff;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99999;
    width: 100%;
    height: 100%;
    display: none;
}

.video-container {
    position: relative;
    padding-bottom: 53.2%;
    padding-top: 30px;
    height: 0;
    overflow: hidden;
    margin: 0;
}

.video-container iframe,
.video-container object,
.video-container embed,
.video-container video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
}


.btn {
    font-size: 16px;
    font-weight: 700;
    color: #ffffff;
    position: relative;
    display: inline-block;
    vertical-align: top;
    background: #FDBB2F;
    border-radius: 4px;
    padding: 13px 30px;
    outline: 0;
    border: 0;
    transition: all 0.3s ease 0s;
}

.btn:hover {
    opacity: 0.9;
    color: #ffffff;
}

.btn.white {
    background: #fff;
    color: #545454;
    border: 1px solid #ced6df;
}

.btn.outline {
    border: 1px solid #e5e5e5;
    color: #545454;
    background: none;
}

.btn.outline:hover {
    background: #FDBB2F;
    color: #ffffff;
}

.clickable-review:hover {
    cursor: pointer;
}

.has-link {
    overflow: hidden;
}

.has-link .btn {
    float: right;
}

.buttons {
    font-size: 0;
}

.buttons a {
    font-size: 24px;
    font-weight: 700;
    color: #ffffff;
    text-align: center;
    line-height: 1.2;
    display: inline-block;
    vertical-align: top;
    width: 50%;
}

.buttons a .img {
    height: 80px;
    margin: 0 auto 12px;
}

.buttons a img {
    width: auto;
    position: relative;
    top: 50%;
    transform: translate(0, -50%);
}

.link {
    font-size: 14px;
    font-weight: 600;
    color: #222222;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 5px 0 20px;
    border: 0;
    display: block;
}

.link.white {
    color: #fff;
}

.link.small {
    font-size: 16px;
    text-transform: none;
    letter-spacing: 0;
}

.num {
    display: block;
    font-size: 32px;
    font-weight: 700;
    color: #0F4E8B;
    text-align: center;
    width: 62px;
    height: 62px;
    margin: 0 auto 25px;
    padding: 7px 0 0;
    position: relative;
}

.num::before {
    position: absolute;
    left: 0;
    top: 0;
}

.addtoany_list {
    display: block;
    margin: 30px 0 0;
}

.addtoany_list.a2a_kit_size_32.a2a_kit a {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    color: #222222;
    letter-spacing: 1px;
    display: inline-block;
    vertical-align: top;
    margin: 0;
    padding: 0;
}

.addtoany_list.a2a_kit_size_32.a2a_kit a::before {
    margin: 4px 10px 0 0;
}

.social-wrap {
    font-size: 0;
    margin: 15px 0 0;
}

.social-wrap a {
    display: inline-block;
    vertical-align: middle;
    margin-right: 12px;
}

.scrollup {
    display: none;
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 99999;
}

.scrollup,
.slick-slider.normal .slick-arrow,
.lg-next,
.lg-prev,
.lg-close::after,
.icon-after.plus::after {
    width: 44px;
    height: 44px;
    cursor: pointer;
    border-radius: 50%;
    transform: scale(0.9);
    transition: all 0.3s ease 0s;
}

.scrollup,
.slick-slider.normal .slick-arrow,
.lg-next,
.lg-prev,
.lg-close {
    background: #fff;
}

.lg-close::after,
.icon-after.plus::after {
    width: 35px;
    height: 35px;
    transition: transform 0.3s ease 0s;
}

.scrollup:hover,
.slick-slider.normal .slick-arrow:hover,
.lg-next:hover,
.lg-prev:hover,
.lg-close:hover::after,
.icon-after.plus:hover::after {
    transform: scale(1);
}

.scrollup:hover,
.slick-slider.normal .slick-arrow:hover,
.slick-slider.normal.outside .slick-arrow,
.lg-next,
.lg-prev {
    background: #FDBB2F;
}

/*------------------------------------*\
    ICONS
\*------------------------------------*/

.icon::before,
.icon-after::after,
.slick-arrow::before,
.chosen-container-single .chosen-single div b,
.addtoany_list a.addtoany_share::before,
.wpcf7 div.wpcf7-response-output::before,
.lg-next::before,
.lg-prev::after,
.lg-close::after,
.mejs-overlay>.mejs-overlay-button,
.rating-wrap .rating,
.rating-wrap .rating div {
    content: '';
    display: inline-block;
    vertical-align: top;
    background: url('img/icons.png') no-repeat scroll 0 0 transparent;
    background-size: 500px;
}

.icon.num::before {
    width: 62px;
    height: 62px;
    background-position: -350px -300px;
}

.icon.sep::before {
    width: 15px;
    height: 103px;
    background-position: -450px -150px;
}

.icon.play::before {
    width: 40px;
    height: 40px;
    background-position: -350px -150px;
}

.icon.play.popup::before {
    position: absolute;
    bottom: 20px;
    right: 20px;
    z-index: 9;
}

.mejs-overlay>.mejs-overlay-button,
.mejs-overlay:hover>.mejs-overlay-button {
    width: 60px;
    height: 60px;
    background-position: -350px -200px;
}

.icon-after.plus {
    position: relative;
    padding: 0 40px 0 0;
    cursor: pointer;
}

.icon-after.plus::after {
    width: 35px;
    height: 35px;
    background-position: -200px -300px;
    position: absolute;
    right: 0;
    top: 0;
}

.icon-after.plus.active::after {
    background-position: -250px -300px;
}

.icon-after.plus.small::after {
    width: 21px;
    height: 21px;
    background-position: -250px -150px;
    position: relative;
    margin: 3px 0 0 8px;
}

.icon-after.plus.active.small::after {
    background-position: -250px -200px;
}

.icon.close::before,
.lg-close::after {
    width: 35px;
    height: 35px;
    background-position: -300px -300px;
}

.icon.video::before {
    width: 22px;
    height: 14px;
    background-position: -150px -150px;
    margin: 1px 7px 0 0;
}

.icon.thumb::before {
    width: 17px;
    height: 17px;
    background-position: -150px -200px;
    margin: 0 7px 0 0;
}

.icon.photo::before {
    width: 24px;
    height: 17px;
    background-position: -150px -250px;
    margin: 0 7px 0 0;
}

.icon-after.link::after {
    width: 11px;
    height: 11px;
    background-position: -150px -300px;
    margin: 4px 0 0 4px;
}

.icon-after.link.small::after,
.icon-after.arrow-right.read-more::after {
    margin: 7px 0 0 4px;
}

.icon-after.arrow-right::after,
.icon-after.arrow-right.small::after,
.icon-after.arrow-right.grey:hover::after {
    width: 12px;
    height: 12px;
    background-position: -50px -300px;
    margin: 7px 0 0 4px;
}

.icon-after.arrow-right.light::after {
    background-position: -50px -250px;
    margin: 6px 0 0 4px;
}

.icon-after.arrow-right.grey::after {
    background-position: -50px -350px;
}

.icon-after.arrow-right.grey.active::after {
    background-position: 0 -300px;
}

.wpcf7 form.invalid div.wpcf7-response-output::before,
.wpcf7 form.sent div.wpcf7-response-output::before {
    width: 22px;
    height: 22px;
    margin: 2px 10px 0 0;
}

.wpcf7 form.invalid div.wpcf7-response-output::before {
    background-position: -300px -200px;
}

.wpcf7 form.sent div.wpcf7-response-output::before {
    background-position: -300px -150px;
}

.icon.date::before {
    width: 24px;
    height: 19px;
    background-position: -200px -250px;
}

.icon.download::before {
    width: 10px;
    height: 21px;
    background-position: -250px -250px;
}

.icon.scrollup::before {
    width: 100%;
    height: 100%;
    background-position: -100px -150px;
}

.icon.scrollup:hover::before {
    background-position: -100px -200px;
}

.addtoany_list a.addtoany_share::before {
    width: 24px;
    height: 20px;
    background-position: -200px -50px;
}

.icon.facebook::before {
    width: 8px;
    height: 15px;
    background-position: 0 0;
}

.black .icon.facebook::before {
    background-position: 0 -100px;
}

.icon.facebook:hover::before,
.black .icon.facebook:hover::before {
    background-position: 0 -50px;
}

.icon.twitter::before {
    width: 18px;
    height: 14px;
    background-position: -50px 0;
}

.black .icon.twitter::before {
    background-position: -50px -100px;
}

.icon.twitter:hover::before,
.black .icon.twitter:hover::before {
    background-position: -50px -50px;
}

.icon.instagram::before {
    width: 17px;
    height: 17px;
    background-position: -250px 0;
}

.black .icon.instagram::before {
    background-position: -250px -100px;
}

.icon.instagram:hover::before,
.black .icon.instagram:hover::before {
    background-position: -250px -50px;
}

.icon.youtube::before {
    width: 19px;
    height: 13px;
    background-position: -150px 0;
}

.black .icon.youtube::before {
    background-position: -150px -100px;
}

.icon.youtube:hover::before,
.black .icon.youtube:hover::before {
    background-position: -150px -50px;
}

.icon.opio::before {
    width: 16px;
    height: 16px;
    background-position: -350px 0;
}

.black .icon.opio::before {
    background-position: -350px -100px;
}

.icon.opio:hover::before,
.black .icon.opio:hover::before {
    background-position: -350px -50px;
}

.icon.pinterest::before {
    width: 15px;
    height: 18px;
    background-position: -300px 0;
}

.black .icon.pinterest::before {
    background-position: -300px -100px;
}

.icon.pinterest:hover::before,
.black .icon.pinterest:hover::before {
    background-position: -300px -50px;
}

.icon.linkedin::before {
    width: 18px;
    height: 16px;
    background-position: -100px 0;
}

.black .icon.linkedin::before {
    background-position: -100px -100px;
}

.icon.linkedin:hover::before,
.black .icon.linkedin:hover::before {
    background-position: -100px -50px;
}

.icon.arrow-down::before,
.chosen-container-single .chosen-single div b {
    width: 12px;
    height: 7px;
    background-position: 0 -350px;
}

.select-dropdown .chosen-container-single .chosen-single div b {
    background-position: 0 -250px;
}

.slick-arrow::before,
.lg-next::before,
.lg-prev::after {
    width: 100%;
    height: 100%;
}

.slick-prev::before,
.lg-prev::after {
    background-position: 0 -150px;
}

.slick-prev:hover::before,
.outside .slick-prev::before,
.lg-prev::after {
    background-position: 0 -200px;
}

.slick-next::before,
.lg-next::before {
    background-position: -50px -150px;
}

.slick-next:hover::before,
.outside .slick-next::before,
.lg-next::before {
    background-position: -50px -200px;
}

/*------------------------------------*\
    STRUCTURE
\*------------------------------------*/

.wrapper {
    /* Previous container: max-width: 1140px; */
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    position: relative;
}

.wrapper.narrow {
    /* Previous container: max-width: 1140px; */
    max-width: 1200px;
}

.wrapper.narrow-2 {
    max-width: 750px;
}

.wrapper.narrow-3 {
    max-width: 560px;
}

.header {
    font-size: 0;
    display: block;
    position: relative;
    width: 100%;
    z-index: 999;
    border-bottom: 1px solid #e5e5e5;
    background: #fff;
}

.header.stuck {
    position: fixed;
    top: 0;
    left: 0;
    animation: fadeInDown ease-in-out 0.6s both;
}

.header .top {
    background: #104E8B;
    padding: 9px 0;
}

.header .top p {
    font-size: 14px;
    color: #fff;
    margin: 0;
}

.header .logo,
.header .nav {
    display: inline-block;
    vertical-align: top;
}

.header .bottom .wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo img {
    max-height: 50px;
}


.header .nav ul,
.page-menu ul {
    font-size: 0;
    margin: 0;
    padding: 0;
}

.header .nav li,
.page-menu li {
    display: inline-block;
    vertical-align: top;
    position: relative;
    margin: 0 20px !important;
}

.header .nav a,
.page-menu a {
    font-size: 16px;
    color: #3F4B58;
    display: block;
    position: relative;
}

.header .nav>ul>li>a::after,
.page-menu a::after {
    content: '';
    display: block;
    width: 100%;
    height: 2px;
    margin: 0;
    background: #fff;
    transition: all 0.3s ease 0s;
    position: absolute;
    left: 0;
    bottom: 0;
}

.header .nav>ul>li:hover>a::after,
.page-menu li:hover a::after,
.page-menu .current-menu-item a::after {
    background: #FDBB2F;
}

.header .nav .sub-menu {
    display: none;
    position: absolute;
    left: 0;
    top: 100%;
    width: 320px;
    padding: 25px 30px 10px;
    background: #104E8B;
}

.header .nav li:hover .sub-menu {
    display: block;
}

.header .nav .sub-menu li {
    display: block;
    margin: 0 0 12px;
}

.header .nav .sub-menu a {
    color: #fff;
}

.header .bottom {
    padding: 18px 0;
}

.header .bottom .wrapper,
.header .nav,
.header .nav>ul,
.header .nav>ul>li,
.header .nav>ul>li>a {
    height: 100%;
}

.header-wrap {
    position: relative;
    height: 350px;
}

.header-wrap .wrapper {
    height: 100%;
}


.header-wrap .caption p {
    color: #333333;
    margin: 0;
}

.header-wrap .caption p {
    margin: 10px 0 0;
}

.header-wrap .bgr {
    background: none no-repeat scroll center center transparent;
    background-size: cover;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
}

.header-wrap .video-container {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: auto;
}

.header-wrap.slider {
    height: 680px;
    padding: 0;
    overflow: hidden;
}

.header-wrap.slider .caption,
.header-wrap.slider .caption p {
    font-size: 20px;
}

.header-wrap.slider .caption p {
    margin: 0 0 10px;
}

.header-wrap.slider .caption h1 {
    margin: 0 0 20px;
}

.header-wrap.slider .caption img {
    width: auto;
}

.main-container.no-padding {
    padding: 0;
}

.main-container.has-gallery {
    padding-top: 0;
}

.main-container.has-breadcrumbs,
.main-container.has-breadcrumbs.section {
    /*     padding-top: 15px; */
}

.main-container.has-breadcrumbs.has-sidebar .breadcrumbs {
    margin-left: 26%;
}

.main-container.has-breadcrumbs.has-sidebar .sidebar {
    margin-top: -127px;
}

main {
    float: right;
    width: 74%;
}

main>.content {
    max-width: 760px;
}

main.fullwidth {
    width: 100%;
    float: none;
}

.has-right-sidebar main {
    float: left;
    width: 59%;
}

.has-wide-sidebar main {
    width: 59%;
}

.sidebar {
    float: left;
    width: 23%;
}

.has-right-sidebar .sidebar {
    width: 38%;
    float: right;
}

.has-wide-sidebar .sidebar {
    width: 38%;
}

.has-wide-sidebar .sidebar.short {
    width: 32%;
}

.has-full-sidebar .sidebar.short {
    float: none;
    width: 100%;
}

.sidebar .widget.contact p {
    margin: 0;
}

.sidebar .widget.contact p.margin {
    margin: 0 0 15px;
}

.sidebar .widget.contact p a {
    color: #104e8b;
}

.sidebar .widget.contact a.link {
    margin: 25px 0 0;
}

.sidebar .widget.contact h4.title {
    margin: 30px 0 10px;
}

.sidebar .widget.review {
    padding: 20px 30px;
    margin: 25px 0 0;
    border: 1px solid #e5e5e5;
    border-radius: 4px;
}

.sidebar .widget.review h4 {
    font-size: 22px;
}

.sidebar .widget.contact p {
    margin: 0;
}

.sidebar .widget.contact p.margin {
    margin: 0 0 15px;
}

.sidebar .widget.contact a.link {
    margin: 25px 0;
}

.sidebar .menu,
.sidebar .menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sidebar .menu {
    border-top: 1px solid #e5e5e5;
    border-left: 1px solid #e5e5e5;
    border-right: 1px solid #e5e5e5;
    border-radius: 4px;
}

.sidebar .menu a {
    display: block;
    font-size: 14px;
    color: #222222;
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
    padding: 12px 20px;
    position: relative;
}

.sidebar .menu a:hover,
.sidebar .menu a.active,
.sidebar .menu .current-menu-item a {
    background: #fafafa;
    color: #FDBB2F;
}

.sidebar .menu .icon-after::after {
    position: absolute;
    right: 16px;
    top: 9px;
}

.sidebar .menu .icon-after.active::after {
    top: 12px;
    right: 20px;
}

.sidebar .menu .sub-menu {
    display: none;
    max-height: 750px;
    overflow-y: auto;
}

.sidebar .menu .sub-menu.active {
    display: block;
}

.sidebar .menu .sub-menu a {
    padding-left: 35px;
}

.sidebar .menu .sub-menu a:hover,
.sidebar .menu .sub-menu a.active {
    background: #fafafa;
}

.sidebar .menu .sub-menu a::before {
    content: '';
    display: inline-block;
    vertical-align: top;
    width: 8px;
    height: 2px;
    background: #222222;
    position: absolute;
    top: 21px;
    left: 19px;
}

.sidebar .menu .sub-menu a:hover::before,
.sidebar .menu .sub-menu .current-menu-item a::before {
    background: #FDBB2F;
}

.footer {
    background: #104E8B;
    padding: 70px 0 10px;
}

.footer ul {
    padding: 0;
    margin: 0;
    list-style: none;
}

.footer ul a {
    display: block;
    margin: 0 0 5px;
}

.footer .columns .col {
    font-size: 14px;
    color: #fff;
}

.footer .columns .col a {
    color: #fff;
}

.footer .columns .col p {
    margin: 0;
}

.footer .columns .col p.margin {
    margin: 0 0 15px;
}

.footer .columns .col p.title-6 {
    margin: 0 0 10px;
}

.footer .sep {
    margin: 0 3px;
}

.footer .columns .copyright {
    font-size: 13px;
}

.footer .columns .payment p {
    margin: 0 0 10px;
}

.flex2 {
    display: -webkit-flex;
    display: flex;
    flex-direction: row;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between;
}

.flex2.left-align {
    justify-content: initial;
}

.width-49 {
    width: 49%;
}

.max-620 {
    max-width: 620px;
    margin: 0 auto;
}

.as-table {
    font-size: 18px;
    font-weight: 600;
    color: ##104e8b;
}

.as-table>div {
    background: #fafafa;
    border-radius: 4px;
    margin: 0 0 10px;
    padding: 8px 15px;
    text-align: center;
}

.as-table.first {
    color: #fff;
    margin-top: 40px;
}

.as-table.first>div {
    background: #FDBB2F;
}

.columns {
    font-size: 0;
}

.columns.margin {
    margin-top: 40px;
}

.columns.columns-3.bottom-m {
    margin-bottom: 0;
}

.columns .col {
    display: inline-block;
    vertical-align: top;
    font-size: 16px;
    width: 100%;
    margin: 0 0 20px;
    position: relative;
}

.columns .col.as-box {
    border: 1px solid #e5e5e5;
    padding: 25px 30px;
    border-radius: 4px;
}

.columns .col.as-box h5 a {
    font-size: 18px;
}

.columns .col.as-box p {
    margin: 0 0 10px;
}

.columns .col.as-box .img-wrap {
    margin: 0 0 15px;
}

.columns .col p:last-child,
.columns .col ul:last-child {
    margin: 0;
}

.columns .col .meta {
    margin: 15px 0 5px;
}

.columns.flex-normal {
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
}

.columns.flex-normal.centered {
    align-items: center;
}

.columns.flex-normal.even {
    flex-direction: row-reverse;
}

.columns.flex .col .img-wrap {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.columns.flex .col .caption {
    border: 1px solid #e5e5e5;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    padding: 15px 20px;
    overflow: hidden;
    position: relative;
    background: #fff;
    transition: all 0.3s ease-in-out;
}

.columns.flex .col .caption .title {
    margin: 0;
}

.columns.flex .col .read-more {
    font-size: 14px;
    display: block;
    height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all 0.3s ease-in-out;
}

.columns.flex .col:hover .read-more {
    margin: 8px 0 0;
    opacity: 1;
    height: 20px;
}

.columns.flex .col:hover .caption {
    margin-top: -28px;
}

.columns .col.border {
    border: 1px solid #e5e5e5;
    border-radius: 5px;
    padding: 30px 30px 10px;
    text-align: left;
}

.columns .col.border p {
    font-size: 14px;
    line-height: 21px;
}

.columns .col.border p.date {
    font-size: 12px;
    margin: 0 0 10px;
}

.columns .col.border .mejs-video {
    margin: 0 0 20px;
}

.jscroll-added {
    width: 100%;
}

.columns.columns-2,
.columns.columns-3,
.columns.columns-4,
.columns.columns-5 {
    margin-left: -1%;
    margin-right: -1%;
}

.columns.columns-3 {
    margin-left: -1.5%;
    margin-right: -1.5%;
    margin-bottom: -3%;
}

.columns.columns-3 .col {
    width: 30.33%;
    margin: 0 1.5% 3%;
}

.columns .col.bordered {
    border: 1px solid #e5e5e5;
    border-radius: 5px;
    padding-bottom: 25px;
}

.columns .col.bordered .img-wrap,
.columns .col.bordered .img-wrap img {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.columns .col.bordered .caption {
    padding: 15px 20px;
}

.columns .col.bordered .read-more {
    position: absolute;
    left: 20px;
    bottom: 15px;
}

.columns.columns-3.row {
    margin: 0;
}

.columns.columns-3.row .col {
    font-size: 0;
    width: 33.33%;
    margin: 0;
}

.columns.columns-4 .col {
    width: 23%;
    margin: 0 1% 2%;
}

.columns.columns-4.custom .col.col-1 {
    width: 33%;
}

.columns.columns-4.custom .col.col-2 {
    width: 24%;
    margin-left: 6%;
}

.columns.columns-4.custom .col.col-3 {
    width: 18%;
}

.columns.columns-4.custom .col.col-4 {
    width: 12%;
}

.columns.columns-5 .col {
    width: 18%;
    margin: 0 1% 10px;
}

.columns.columns-2 {
    margin-left: -1.5%;
    margin-right: -1.5%;
}

.columns.columns-2 .col {
    width: 47%;
    margin: 0 1.5% 3%;
}

.columns.columns-2.custom .col.col-1 {
    width: 77%;
    padding: 40px 0 0;
}

.columns.columns-2.custom .col.col-2 {
    width: 17%;
}

.columns.columns-2.custom-2 .col {
    margin-bottom: 0;
    vertical-align: middle;
}

.columns.columns-2.custom-2 .col.col-1 {
    width: 48%;
}

.columns.columns-2.custom-2 .col.col-2 {
    width: 46%;
}

.columns.columns-2.custom-3 {
    margin-left: -3%;
    margin-right: -3%;
}

.columns.columns-2.custom-3 .col {
    margin: 0 3% 4%;
}

.columns.columns-2.custom-3:last-child .col {
    margin-bottom: 0;
}

.columns.columns-2.custom-3 .col.col-1 {
    width: 38%;
}

.columns.columns-2.custom-3 .col.col-2 {
    width: 50%;
}

.columns.columns-2.custom-4 {
    margin: 0 -3% 100px;
}

.columns.columns-2.custom-4:last-child {
    margin-bottom: 0;
}

.columns.columns-2.custom-4 .col {
    margin: 0 3%;
}

.columns.columns-2.custom-4 .col.col-1 {
    width: 46%;
}

.columns.columns-2.custom-4 .col.col-2 {
    width: 42%;
}

.columns.columns-2.hours {
    margin-left: -1%;
    margin-right: -1%;
}

.columns.columns-2.hours .col {
    margin: 0 1%;
}

.columns.columns-2.hours .col.col-1 {
    width: 30%;
}

.columns.columns-2.hours .col.col-2 {
    width: 66%;
}

.columns.columns-2.grey .col {
    background: #fafafa;
    padding: 40px 40px 15px;
    border-radius: 5px;
}

.csscolumns .columns.columns-5.list {
    -webkit-column-count: 5;
    -moz-column-count: 5;
    column-count: 5;
    margin-left: 0;
    margin-right: 0;
}

.csscolumns .columns.columns-5.list .col {
    width: 100%;
}

.columns.logos a {
    display: block;
    text-align: center;
}

.columns.logos img {
    max-width: 100%;
    max-height: 100%;
    margin: 0 0 10px;
}

/*------------------------------------*\
    PAGES
\*------------------------------------*/

.section {
    padding: 80px 0;
    position: relative;
}

.section.last {
    padding-bottom: 0;
}

.section.first {
    padding-top: 0;
}

.section.half {
    padding-top: 40px;
}

.section.gallery-wrap {
    padding: 0;
    margin: 0;
}

.section.short {
    padding: 0 0 20px;
}

.section.short:last-child,
.section.no-padding {
    padding: 0;
}

.section.no-padding-bottom {
    padding-bottom: 0;
}

.section.as-sep {
    border-bottom: 1px solid #e7e7e7;
    padding: 0px 0px 25px 0;
}

.section.as-sep-normal {
    border-bottom: 1px solid #e7e7e7;
}

.section.grey {
    background: #fafafa;
}

.section.pink {
    background: #FDBB2F;
}

.section.pink.light {
    background: #FDBB2F;
}

.section.pink,
.section.pink h1,
.section.pink h2,
.section.pink h3,
.section.pink h4,
.section.pink h5 {
    color: #fff;
}

.section.pink.row h1,
.section.pink.row h2,
.section.pink.row h3,
.section.pink.row h4,
.section.pink.row h5 {
    margin: 0;
}

.section.border {
    border-bottom: 1px solid #e5e5e5;
    padding: 80px 0 60px;
}


.section.history h2.title::after {
    content: '';
    display: block;
    width: 124px;
    height: 2px;
    background: #FDBB2F;
    margin: 20px auto 0;
}

.section.history .content {
    box-shadow: 0px 0px 4px 0px rgba(159, 159, 159, 0.75);
    border-radius: 4px;
    padding: 60px;
    text-align: center;
    position: relative;
    z-index: 9;
    background: #fff;
}


.section.history .sep {
    display: block;
    position: relative;
    z-index: 99;
    text-align: center;
    margin-bottom: -6px;
}

.service {
    margin: 35px 0;
}

.service h4 {
    margin: 12px 0;
}

.mb-40 {
    margin-bottom: 40px;
}

.meta {
    max-width: 560px;
    margin: 0 auto;
}

.meta h3 {
    margin: 0 0 15px;
}

.meta p,
.meta a {
    font-weight: 700;
    font-size: 12px;
    color: #104E8B;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.meta a {
    margin: 0;
}

.meta .sep {
    margin: 0 5px;
}

.notice {
    border-top: 1px solid #e5e5e5;
    padding: 40px 0 0;
    margin: 40px 0 0;
}

.notice p {
    font-size: 24px;
    font-weight: 700;
    color: #15202b;
}

.notice a {
    color: #104e8b;
    border-bottom: 2px solid #FDBB2F;
    font-weight: 700;
}

.infinite-scroll,
.jscroll-inner {
    width: 100%;
}

.page-menu {
    border-top: 1px solid #e5e5e5;
    border-bottom: 1px solid #e5e5e5;
}

.page-menu ul {
    height: 70px;
    padding: 25px 0 0;
}

.page-menu li,
.page-menu a {
    height: 100%;
}

.acf-map {
    width: 100%;
    height: 240px;
}

.acf-map.medium {
    height: 350px;
}

.acf-map.large {
    height: 410px;
    margin: 30px 0 0;
}

.acf-map .gm-style .gm-style-iw-c,
.acf-map .gm-style .gm-style-iw-d {
    max-height: 330px !important;
}

.acf-map .btn {
    display: block;
    font-family: var(--uq-site-font-body);
    border-radius: 0;
    text-align: left;
    padding: 10px 25px;
    margin: 0;
}

.acf-map .content,
.acf-map .content a {
    font-family: var(--uq-site-font-body);
}

.acf-map .content {
    padding: 20px 25px 10px;
    line-height: 1.6;
}

.acf-map .content p {
    font-size: 14px;
    font-weight: 500;
    margin: 0 0 10px;
}

.acf-map .content p.title {
    font-size: 16px;
    font-weight: 700;
    color: #222222;
    margin: 0 0 5px;
}

.gm-style .gm-style-iw-c,
.gm-style .gm-style-iw-d {
    border-radius: 5px;
    padding: 0;
    box-shadow: none;
    max-width: 330px !important;
    overflow: hidden !important;
}

.breadcrumbs {
    margin: 20px 0px;
}

.has-breadcrumbs.first .breadcrumbs {
    margin: 0;
}

.breadcrumbs,
.breadcrumbs a {
    font-size: 12px;
    font-weight: 500;
    color: #104e8b;
    margin-right: 0;
}

.breadcrumbs .sep {
    margin: 0 7px;
}

.gallery-nav .breadcrumbs,
.gallery-nav .buttons {
    display: inline-block;
    vertical-align: top;
    margin: 0;
}

.gallery-nav .buttons {
    float: right;
}

.disclaimer {
    font-size: 14px;
    margin: 50px 0 0;
}

.accordion.simple {
    border-bottom: 1px solid #e5e5e5;
    text-align: left;
    margin: 0;
}

.accordion.simple h3.title {
    font-size: 18px;
    border-top: 1px solid #e5e5e5;
    padding: 25px 75px 20px;
    margin: 0;
    position: relative;
}

.accordion.simple h3.title span {
    font-size: 28px;
    position: absolute;
    left: 20px;
    top: 15px;
}

.accordion.simple .content {
    font-size: 16px;
    display: none;
    padding: 0 75px 5px;
}

.accordion.simple .content p,
.accordion.simple .content p:last-child {
    margin: 0 0 20px;
}

.accordion.simple .icon-after.plus::after {
    right: 20px;
    top: 18px;
}

.accordion.simple.top-m {
    margin-top: 50px;
}

.accordion.simple.mt-30 {
    margin-top: 30px;
}

.content-section .no-content {
    width: 100%;
    height: 500px;
    background: none no-repeat scroll center center transparent;
    background-size: cover;
}

.content-section .overflow {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap
}

.content-section .overflow.left-content {
    flex-direction: row-reverse;
}

.content-section .right-content .left,
.content-section .left-content .right {
    width: 60%;
    background: none no-repeat scroll center center transparent;
    background-size: cover;
}

.content-section .right-content .right,
.content-section .left-content .left {
    width: 40%;
}

.content-section .content {
    padding: 15% 15% 12%;
}

.img-side-left,
.img-side-right {
    position: absolute;
    top: 0;
    max-width: 250px;
}

.img-side-left {
    left: 0;
}

.img-side-right {
    right: 0;
}

.rating-wrap {
    margin: 0 0 5px;
}

.rating-wrap .rating,
.rating-wrap .rating div {
    display: inline-block;
    vertical-align: top;
    width: 100px;
    height: 19px;
    background-position: -250px -350px;
}

.blog_post h1 {
    font-size: 4rem;
}

.blog_post h2 {
    font-size: 3rem;
}

.blog_post h3 {
    font-size: 2rem;
}

.rating-wrap .rating div {
    background-position: -150px -350px;
}

.rating-wrap.large {
    border-top: 1px solid #c0c1c3;
    padding: 12px 0 2px;
}

.rating-wrap span {
    display: inline-block;
    vertical-align: top;
}

.has-badges.columns.columns-3,
.has-badges.columns.columns-3 .col {
    margin-bottom: 0;
}

.has-badges .content,
.has-badges .img-wrap {
    display: inline-block;
    vertical-align: top;
}

.has-badges .img-wrap {
    width: 26%;
    min-height: auto;
    margin-right: 4%;
    margin-bottom: 0;
    text-align: center;
}

.has-badges .content {
    width: 69%;
}

.has-badges .content h5 {
    margin: 0 0 3px;
}

.mt-25 {
    margin-top: 25px;
}

.mt-40 {
    margin-top: 40px;
}

.pt-0 {
    padding-top: 0;
}

.pb-40 {
    padding-bottom: 40px;
}

/*------------------------------------*\
    FORMS
\*------------------------------------*/

.search-input,
.wpcf7-text,
select.wpcf7-select,
div.wpcf7-select a,
.wpcf7-textarea,
.wpcf7 .file span,
.wpcf7 .file label,
.wpcf7-date {
    display: block;
    color: #222222;
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    border: 1px solid #e5e5e5;
    outline: 0;
    background: #fff;
    width: 100%;
    padding: 12px 20px;
    height: 50px;
    transition: all 0.3s ease 0s;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    border-radius: 0;
    -webkit-appearance: none;
    border-radius: 4px;
}

select.wpcf7-select {
    padding: 12px 15px;
}

.wpcf7-text:focus,
.wpcf7-textarea:focus {
    outline: 0;
    border: 1px solid #222;
}

.wpcf7 .file input {
    width: 100%;
    border: 0;
    outline: 0;
    padding: 0 20px 0 0;
    height: auto;
}

.wpcf7 .file input:valid {
    background: #fff;
}

.wpcf7 .file label {
    color: #104E8B;
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 9;
    background: #fff;
    top: 0;
    left: 0;
    margin: 0;
}

.wpcf7 .file::before {
    position: absolute;
    z-index: 99;
    right: 20px;
    top: 16px;
}

.wpcf7-text.wpcf7-not-valid,
.wpcf7-text.error,
select.wpcf7-select.wpcf7-not-valid,
div.wpcf7-select.wpcf7-not-valid a {
    border-color: #df0000;
}

.wpcf7-select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    color: #555555;
}

.wpcf7-select.active {
    color: #222;
}

.wpcf7-textarea {
    resize: vertical;
    height: auto;
}

.wpcf7-radio span.wpcf7-list-item {
    font-size: 16px;
    margin: 0 20px 0 0;
}

.wpcf7-submit {
    border: 0;
    outline: 0;
    margin: 0 auto;
}

.wpcf7-submit:focus,
.wpcf7-submit:active {
    border: 0;
    outline: 0;
}

.wpcf7 .note {
    display: block;
    font-size: 12px;
    color: #404040;
    margin: 10px 0 15px;
}

.wpcf7 .row {
    font-size: 0;
    margin: 0 -1%;
}

.wpcf7-form {
    margin: 30px 0 35px;
}

.has-form .wpcf7-form {
    margin-top: 0;
}

.wpcf7 p {
    font-size: 13px;
    margin: 0 0 2%;
    position: relative;
}

.wpcf7 p.title {
    font-size: 16px;
}

.wpcf7 p.margin {
    margin-top: 15px;
}

.wpcf7 p.submit-wrap {
    overflow: hidden;
}

.wpcf7 p.submit-wrap span {
    float: right;
    font-size: 14px;
    padding: 14px 0 0;
}

.wpcf7 p.submit-wrap span.normal {
    color: #404040;
    display: block;
    float: none;
}

.wpcf7 .row p {
    display: inline-block;
    vertical-align: top;
    width: 48%;
    margin: 0 1% 2%;
}

.wpcf7 .row.fullwidth,
.wpcf7 .row.row-4 {
    margin: 0 -0.5%
}

.wpcf7 .row.fullwidth p,
.wpcf7 .row.row-4 p {
    margin: 0 0.5% 1%;
}

.wpcf7 .row.fullwidth p {
    width: 49%;
}

.wpcf7 .row.row-3 p {
    width: 31.33%;
}

.wpcf7 .row.row-4 p {
    width: 24%;
}

.wpcf7 .icon.date::before {
    position: absolute;
    right: 20px;
    top: 16px;
    z-index: 9;
}

.wpcf7 span.wpcf7-not-valid-tip {
    font-size: 12px;
}

.wpcf7 div.wpcf7-response-output {
    font-size: 16px;
    color: #df0000;
    border: 1px solid #df0000;
    padding: 10px 18px;
    margin: 30px 0 0;
    border-radius: 4px;
}

.wpcf7 form.invalid .wpcf7-response-output {
    border-color: #df0000;
}

.wpcf7 form.sent .wpcf7-response-output {
    border-color: #00a651;
    background: #00a651;
    color: #fff;
}

.select-dropdown {
    font-size: 0;
}

.select-dropdown label,
.select-dropdown .sbHolder {
    display: inline-block;
    vertical-align: top;
}

.select-dropdown label {
    font-size: 14px;
    color: #DF0000;
    margin: 0 5px 0 0;
}

.select-dropdown .wpcf7-select,
.select-dropdown .wpcf7-select span {
    font-size: 14px;
    font-weight: 500;
    color: #fff;
    background: none;
    border: 0;
    position: static;
    padding: 0;
    height: auto;
}

.select-dropdown select.wpcf7-select {
    background: url('img/icon-arrow.png') no-repeat scroll 100% 9px transparent;
    margin-left: -5px;
    padding-right: 10px;
}

.select-dropdown div.wpcf7-select a {
    background: none;
    border: 0;
    padding: 0 18px 0 0;
    height: auto;
    line-height: 1.4;
}

.select-dropdown .chosen-single div {
    top: 7px;
    right: 0;
    display: block;
}

.select-dropdown .chosen-container .chosen-drop {
    top: 30px;
    z-index: 9999999;
    position: absolute;
    width: 100%;
    max-width: 170px;
    text-align: left;
    padding: 0;
    margin: 0;
    background: #104E8B;
    border-color: #104E8B;
}

.select-dropdown .chosen-results {
    padding: 20px 0 15px;
}

.select-dropdown .chosen-results li {
    display: inline-block;
    vertical-align: top;
    background: none;
    font-size: 16px;
    font-weight: 500;
    width: 100%;
    margin: 0;
    padding: 5px 30px;
    color: #fff;
}

.select-dropdown .chosen-results li:hover {
    color: #FDBB2F;
    background: none;
}

.form-wrap {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    z-index: 9999;
    overflow-y: auto;
    transition: all 0.3s ease 0s;
    opacity: 0;
    visibility: hidden;
}

.show-form .form-wrap {
    opacity: 1;
    visibility: visible;
}

.show-form .close {
    position: absolute;
    right: 30px;
    top: 30px;
}

::-webkit-input-placeholder {
    opacity: 1;
    color: #104E8B;
}

:-moz-placeholder {
    /* Firefox 18- */
    opacity: 1;
    color: #104E8B;
}

::-moz-placeholder {
    /* Firefox 19+ */
    opacity: 1;
    color: #104E8B;
}

:-ms-input-placeholder {
    opacity: 1;
    color: #104E8B;
}

:placeholder-shown {
    /* Standard one last! */
    opacity: 1;
    color: #104E8B;
}

/*------------------------------------*\
	TYPOGRAPHY
\*------------------------------------*/


/*------------------------------------*\
    RESPONSIVE
\*------------------------------------*/

@media only screen and (max-width: 1280px) {}

/* Previous container breakpoint: 1140px; */
@media only screen and (max-width: 1240px) {
    .wrapper {
        padding: 0 20px;
    }


    .header .nav li {
        margin: 0 10px;
    }


}

@media only screen and (max-width: 1055px) {

    .img-side-left,
    .img-side-right {
        display: none;
    }

    .has-badges .img-wrap {
        display: block;
        width: auto;
        text-align: left;
        margin: 0 0 10px;
    }

    .has-badges .content {
        width: 100%;
    }
}

@media only screen and (max-width: 960px) {


    .header .nav {
        width: 80%;
    }

    .header .nav li {
        margin: 0 15px;
    }
}

@media only screen and (max-width: 800px) {

    .footer .columns .col-4 p.title-6,
    .section.history .sep,
    br {
        display: none;
    }

    .carousel-normal .slick-track {
        display: block;
    }

    .sidebar,
    .has-wide-sidebar .sidebar,
    .has-wide-sidebar .sidebar.short,
    .has-right-sidebar .sidebar,
    main,
    .has-wide-sidebar main,
    .has-right-sidebar main,
    .columns.columns-2,
    .columns.columns-2 .col,
    .columns.columns-2.custom,
    .columns.columns-2.custom .col.col-1,
    .columns.columns-2.custom .col.col-2,
    .columns.columns-2.custom-2 .col.col-1,
    .columns.columns-2.custom-2 .col.col-2,
    .columns.columns-2.custom-3,
    .columns.columns-2.custom-3 .col.col-1,
    .columns.columns-2.custom-3 .col.col-2,
    .columns.columns-2.custom-4,
    .columns.columns-2.custom-4 .col.col-1,
    .columns.columns-2.custom-4 .col.col-2,
    .columns.columns-3,
    .columns.columns-3 .col,
    .columns.columns-3.row,
    .columns.columns-3.row .col,
    .columns.columns-4.custom,
    .columns.columns-4.custom .col.col-1,
    .columns.columns-4.custom .col.col-2,
    .columns.columns-4.custom .col.col-3,
    .columns.columns-4.custom .col.col-4,
    .content-section .overflow,
    .content-section .right-content .left,
    .content-section .left-content .right,
    .content-section .right-content .right,
    .content-section .left-content .left {
        display: block;
        width: 100%;
        float: none;
        margin: 0;
    }

    article ul.list li {
        width: 100%;
    }

    .columns.columns-2 .col,
    .columns.columns-2.custom-2 .col.col-1,
    .columns.columns-2.custom-2 .col.col-2,
    .columns.columns-2.custom-3 .col.col-1,
    .columns.columns-2.custom-3 .col.col-2,
    .columns.columns-2.custom-4 .col.col-1,
    .columns.columns-2.custom-4 .col.col-2,
    .columns.columns-3 .col,
    .sidebar,
    .has-wide-sidebar .sidebar,
    .has-wide-sidebar .sidebar.short,
    .has-right-sidebar .sidebar,
    main,
    .has-wide-sidebar main,
    .has-right-sidebar main {
        margin: 0 0 40px;
    }

    .columns.columns-2.custom .col.col-1,
    .columns.columns-2.custom .col.col-2,
    .columns.columns-4.custom .col.col-1,
    .columns.columns-4.custom .col.col-2,
    .columns.columns-4.custom .col.col-3,
    .columns.columns-4.custom .col.col-4,
    .has-badges .content {
        margin: 0 0 20px;
    }

    .columns.columns-3.row .col-2 {
        padding: 10px 0 0;
    }

    .columns.columns-3.row .col-3 {
        position: absolute;
        top: 2px;
        right: 20px;
    }

    .columns.columns-5 .col {
        width: 31.33%;
    }

    .csscolumns .columns.columns-5.list {
        -webkit-column-count: 3;
        -moz-column-count: 3;
        column-count: 3;
    }

    .columns.columns-2.custom .col.col-1 {
        padding: 0;
    }

    .content-section .no-content,
    .content-section .right-content .left,
    .content-section .left-content .right {
        height: 250px !important;
    }


    .section.history .wrapper>img {
        margin: 0 auto 40px;
    }

    .main-container.has-breadcrumbs.has-sidebar .breadcrumbs {
        margin-left: 0;
    }

    .main-container.has-breadcrumbs.has-sidebar .sidebar {
        margin-top: 0;
    }

    .content-section .content {
        padding: 20px 20px 5px;
    }

    .page-title,
    .header-wrap.slider .caption h1 {
        font-size: 42px;
    }

    .header .bottom {
        height: auto;
        padding: 0;
    }

    .header .bottom .wrapper {
        padding: 0;
    }

    .header .bottom .logo {
        position: absolute;
        left: 20px;
        top: 10px;
        padding: 0;
        z-index: 999999;
        width: auto;
    }

    .logo img {
        max-height: 36px;
        /* old setting max-height: 40px; */
    }



    /* 	.header-wrap,
	.header-wrap.slider,
	.gallery-wrap .gallery-side {
		height: 300px;
	} */

    .has-link .btn {
        float: none;
        text-align: center;
        display: block;
        margin: 20px 0;
    }

    .section.history .content {
        right: auto !important;
    }

    .section.history .wrapper>img,
    .section.history .image-right>img,
    .section.history .image-left>img,
    .section.history .image-center>img {
        position: relative;
        top: auto;
        right: auto;
        left: auto;
        bottom: auto;
        transform: none;
        max-width: 100%;
    }

    .page-menu ul {
        height: auto;
        padding: 25px 0 15px;
    }

    .page-menu li {
        margin: 0 10px 10px;
    }

    .has-badges .img-wrap {
        display: inline-block;
        width: 14%;
        min-height: auto;
        margin-right: 4%;
        margin-bottom: 20px;
        text-align: center;
    }

    .has-badges .content {
        width: 81%;
    }
}

@media only screen and (max-width: 768px) {}

@media only screen and (max-width: 640px) {

    .wpcf7 .row,
    .wpcf7 .row p,
    .wpcf7 .row.row-3 p,
    .gallery-nav .buttons,
    .gallery-nav .breadcrumbs {
        display: block;
        width: 100%;
        float: none;
        margin: 0 0 10px;
    }

    h1 {
        font-size: 42px;
    }

    .gallery-wrap .gallery-nav .buttons a {
        margin: 0 20px 0 0;
    }

    .header-wrap .video-container {
        height: 100%;
    }

    .header-wrap .video-container video {
        height: 100%;
        width: auto;
    }
}

@media only screen and (max-width: 480px) {}

@media only screen and (max-width: 320px) {}

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (min--moz-device-pixel-ratio: 1.5),
only screen and (min-resolution: 240dpi) {
    .icon::before {
        background-image: url('img/icons2x.png');
    }
}

/*------------------------------------*\
    MISC
\*------------------------------------*/

::selection {
    background: #FDBB2F;
    color: #FFF;
    text-shadow: none;
}

::-webkit-selection {
    background: #FDBB2F;
    color: #FFF;
    text-shadow: none;
}

::-moz-selection {
    background: #FDBB2F;
    color: #FFF;
    text-shadow: none;
}

/*------------------------------------*\
    WORDPRESS CORE
\*------------------------------------*/

.alignnone {
    margin: 5px 10px 10px 0;
}

.aligncenter,
div.aligncenter {
    display: block;
    margin: 5px auto 5px auto;
}

.alignright {
    float: right;
    margin: 5px 0 10px 10px;
}

.alignleft {
    float: left;
    margin: 5px 10px 10px 0;
}

a img.alignright {
    float: right;
    margin: 5px 0 10px 10px;
}

a img.alignnone {
    margin: 5px 10px 10px 0;
}

a img.alignleft {
    float: left;
    margin: 5px 10px 10px 0;
}

a img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.wp-caption {
    background: #FFF;
    border: 1px solid #F0F0F0;
    max-width: 96%;
    padding: 5px 3px 10px;
    text-align: center;
}

.wp-caption.alignnone {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignleft {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignright {
    margin: 5px 0 20px 20px;
}

.wp-caption img {
    border: 0 none;
    height: auto;
    margin: 0;
    max-width: 98.5%;
    padding: 0;
    width: auto;
}

.wp-caption .wp-caption-text,
.gallery-caption {
    font-size: 11px;
    line-height: 17px;
    margin: 0;
    padding: 0 4px 5px;
}

.sticky {}

.bypostauthor {}

/*------------------------------------*\
    PRINT
\*------------------------------------*/

@media print {
    * {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    a,
    a:visited {
        text-decoration: underline;
    }

    a[href]:after {
        content: " (" attr(href) ")";
    }

    abbr[title]:after {
        content: " (" attr(title) ")";
    }

    .ir a:after,
    a[href^="javascript:"]:after,
    a[href^="#"]:after {
        content: "";
    }

    pre,
    blockquote {
        border: 1px solid #999;
        page-break-inside: avoid;
    }

    thead {
        display: table-header-group;
    }

    tr,
    img {
        page-break-inside: avoid;
    }

    img {
        max-width: 100% !important;
    }

    @page {
        margin: 0.5cm;
    }

    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }
}


/* Gravity Form info */

input[type=radio] {

    -webkit-appearance: none;
    -ms-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    border: solid 1px #3D3D3D;
    border-radius: 50%;
    box-shadow: 0 0 0px 2.5px white inset;
    margin-right: 5px;
    -webkit-transition: background-color 300ms;
    transition: background-color 300ms;
    outline: none;
}


.quote_form .gform_wrapper .field_description_below .gfield_description {
    padding-top: 5px;
    line-height: 20px;
}

.quote_form .gform_wrapper .gsection .gfield_label,
.quote_form .gform_wrapper h2.gsection_title,
.quote_form .gform_wrapper h3.gform_title {
    font-weight: 500;
    font-size: 22px;
}

.quote_form .gform_wrapper label.gfield_label,
.quote_form .gform_wrapper legend.gfield_label {
    font-weight: 500;
    margin-bottom: 5px;
}

.quote_form .gform_wrapper form {
    max-width: 850px !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield {
    width: 100% !important;
    float: left;
    clear: none;
    margin: 10px 0px !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.half_sec {
    width: 50% !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.rug_heading {
    width: 100% !important;
    float: left;
    clear: none;
    margin-top: 35px !important;
    border-bottom: none;
    margin-bottom: 0px !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.rug_heading.rug_heading_big {
    margin-top: 35px !important;
}

.quote_form ::placeholder,
.quote_form :-ms-input-placeholder,
.quote_form ::-webkit-input-placeholder {
    color: red !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.rug_count {
    width: 100% !important;
    float: left;
    clear: none;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.mailchimp_field {
    margin: 2px 0px !important;
}

.quote_form .gform_wrapper li input,
.quote_form .gform_wrapper li select {
    margin-top: 0px;
    color: #666666;
    font-size: 16px !important;
    margin-bottom: 10px;
    padding: 10px 12px !important;
    background-color: #fff !important;
    width: 100% !important;
    max-width: 100% !important;
    border: 1px solid;
}

.quote_form .gform_wrapper textarea {
    margin-top: 0px;
    color: #666666;
    font-size: 16px !important;
    margin-bottom: 5px;
    padding: 10px 12px !important;
    background-color: #fff !important;
    width: 100% !important;
    max-height: 118px !important;
    min-width: 100% !important;
}

.quote_form .radio_field ul.gfield_radio li {
    float: left;
    padding: 0px 10px !important;
}

.quote_form .radio_field ul.gfield_radio li input[type="radio"]:checked {
    background-color: #b03063 !important;
}

.quote_form .radio_field ul.gfield_radio li input[type="radio"] {
    width: 26px !important;
    height: 26px !important;
    margin: 5px;
}

.quote_form .gform_wrapper ul.gfield_checkbox li input[type=checkbox] {
    width: 27px !important;
    height: 27px !important;
}

.quote_form .radio_field ul.gfield_radio li label {
    font-size: 16px;
    font-weight: 500 !important;
}

.quote_form .gfield_checkbox label {
    font-size: 16px !important;
    font-weight: 400 !important;
    color: #666666;
}

.quote_form .gfield_checkbox input {
    min-width: 18px !important;
    height: 18px;
    cursor: pointer;
    margin: 0px 6px 0 0 !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.mailchimp_info {
    font-size: 14px !important;
    margin: 10px 0px 8px 0px !important;
}

.quote_form .gform_footer .gform_button {
    font-size: 20px !important;
    font-weight: 600;
    width: auto !important;
    -webkit-transition: background-color .3s;
    -moz-transition: background-color .3s;
    -ms-transition: background-color .3s;
    -os-transition: background-color .3s;
    transition: background-color .3s;
    margin: 20px 0px 10px 0px !important;
    float: left;
    background-color: #b03063 !important;
    color: #fff !important;
    border: 2px solid #b03063 !important;
    padding: .5rem 1rem;
    border-radius: 3px;
}

.quote_form .gform_footer .gform_button:hover {
    color: #b03063 !important;
    background: transparent !important;
}

.quote_form .gform_confirmation_message {
    color: #98b800 !important;
}

span.gf-icon:after {
    white-space: pre-line;
    width: 500px;
    background: #434D55;
    color: #fff;
    text-shadow: none !important;
}

.gftip-question-circle:before {
    content: "\f05a" !important;
}

.quote_form .gform_wrapper ul.gform_fields li.formtable_col1 {
    width: 11% !important;
}

.quote_form .gform_wrapper ul.gform_fields li.formtable_col2 {
    width: 30% !important;
}

.quote_form .gform_wrapper ul.gform_fields li.formtable_col3 {
    width: 17% !important;
}

.quote_form .gform_wrapper ul.gform_fields li.formtable_col4 {
    width: 17% !important;
}

.quote_form .gform_wrapper ul.gform_fields li.formtable_col5 {
    width: 25% !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec {
    min-height: auto !important;
    padding: 0px !important;
    margin: 0px !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec .ginput_container {
    margin: 0px !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec label {
    display: none !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec textarea,
.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec input {
    margin: 0;
    border-top: 0px;
    border-right: 0px;
    pointer-events: none;
    font-size: 14px !important;
    min-height: 45px;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec textarea,
.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec textarea,
.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_border textarea,
.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_head textarea {
    max-height: 45px !important;
    float: left;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_border textarea,
.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_border input {
    border-right: 1px solid #ddd !important;
    pointer-events: none;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_head textarea,
.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_head input {
    background-color: #b03063 !important;
    color: #fff !important;
    border: 1px solid #bbb !important;
    border-top: 0px !important;
    border-right: 0px !important;
    pointer-events: none;
    font-size: 16px !important;
    max-height: 45px;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec {
    width: 75% !important;
    min-height: auto !important;
    padding: 0px !important;
    margin: 0px !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_total_calc {
    width: 25% !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec .ginput_container {
    margin: 0px !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec label {
    display: none !important;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec textarea,
.quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec input {
    background-color: #b03063 !important;
    color: #fff !important;
    border: 1px solid #bbb !important;
    border-top: 0px !important;
    border-right: 0px !important;
    margin: 0px !important;
    margin: 0px;
    pointer-events: none;
}

.quote_form .ginput_container_checkbox {
    margin-top: 10px !important;
}

.quote_form .gfield_checkbox {
    margin: 0px 0px !important;
}

.quote_form .gform_wrapper .gform_footer {
    padding: 0px 0 0px !important;
    margin: 0px 0 0 !important;
}

.text-btm {
    float: left;
    width: 100%;
    margin-top: 18px;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.totaltable_firstrow {
    display: block !important;
}

.price_summary th {
    background-color: #b03063 !important;
    color: #fff !important;
    border: 1px solid #bbb !important;
    pointer-events: none;
    font-size: 16px !important;
    font-weight: 500;
}

.price_summary td {
    background-color: #fff !important;
    border: 1px solid #bbb !important;
    pointer-events: none;
    font-size: 15px !important;
}

.total_th::after {
    content: "+ tax";
    padding-left: 10px;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_total_calc .ginput_container:after {
    content: "+ tax";
    position: absolute;
    right: 45px !important;
    color: #fff;
    z-index: 99999999999;
    top: 10px;
}

.quote_form .gform_wrapper ul.gform_fields li.discount_applied.gfield.quat_sec.quat_total_calc .ginput_container:after {
    display: none;
}

.quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_total_calc .ginput_container.ginput_container_number {
    position: relative;
    background-color: #b03063 !important;
}

.partial_entry_warning {
    display: none !important;
}

.page-title-section .page-subtitle {
    margin-top: 15px;
}

span.ly_gs_email_title {
    margin-right: 5px;
}

.ly_g_map_desc .ly_gs_clean_schedule {
    margin-bottom: 5px !important;
}

.grecaptcha-badge {
    z-index: 9;
}

.quote_form .gform_wrapper ul.gform_fields li.hidden_label {
    margin: 0 !important;
}

.gform_wrapper.gf_browser_chrome input.button.gform_button_select_files {
    padding: 15px 15px !important;
    border: 1px solid #a0a0a0;
    font-size: 18px !important;
}

.quote_form .gfield.gsection {
    border-bottom: none !important;
}

.quote_form .gsection.blue {
    color: #b03063 !important;
}

.quote_form .gform_wrapper ul.gform_fields .custom-form-pickup {
    padding-top: 15px !important;
}

.quote_form .gform_wrapper .gfield_error div.ginput_container,
.quote_form .gform_wrapper .gfield_error label.gfield_label {
    margin-top: -1px !important;
}

.quote_form .gform_wrapper div.validation_error {
    border-top: 2px solid #f00;
    border-bottom: 2px solid #f00;
    color: #f00;
}

.quote_form .gform_ajax_spinner {
    display: block;
    top: 35px;
    position: relative;
}

span.gf-icon {
    vertical-align: bottom !important;
}

.gform_validation_error ul.gform_fields li.gfield.half_sec {
    min-height: 105px;
    padding-right: 16px !important;
}

.formfield_hide {
    visibility: hidden;
    pointer-events: none;
    width: 0;
    height: 0;
    position: absolute;
    top: -9999px;
    left: -9999px;
    z-index: -1;
}

/******* Thank you page table********/
table.price_summary {
    width: 100%;
    margin-bottom: 15px;
}

table td,
table th {
    padding: 15px;
    line-height: 1.5;
    vertical-align: top;
    border: 1px solid #ccc;
}


@media (max-width: 768px) {
    .quote_form .radio_field ul.gfield_radio li {
        width: 100% !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_border textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_head textarea {
        max-height: 45px !important;
        pointer-events: all !important;
        float: left;
    }

    .quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec {
        width: 60% !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_total_calc {
        width: 40% !important;
    }
}

@media (max-width: 767px) {
    .quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec {
        width: 55% !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_total_calc {
        width: 45% !important;
    }

    .quote_form .gfield_checkbox input {
        margin: 3px 6px 0 0 !important;
        vertical-align: top !important;
    }

    .quote_form .gform_wrapper .gform_footer {
        padding: 10px 0 0px !important;
    }

    span.gf-icon:after {
        width: 250px;
        left: -47px;
        bottom: 45px;
    }

    .hint--light.hint--right:before {
        transform: rotate(90deg);
        left: 69%;
        bottom: 146%;
    }

    .richmond-page-slider .slider-2 .slider-tick-content p,
    .oakvile-page-slider .slider-2 .slider-tick-content p,
    .eco-friendly-page-slider .slider-1 .slider-tick-content p,
    .coupon-page-slider .slider-1 .slider-tick-content p,
    .mississauga-page-slider .slider-2 .slider-tick-content p {
        width: 95% !important;
        margin-left: 10px !important;
    }

}

/* container layout */


@media (max-width: 480px) {

    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_head textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_head input,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec input,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_border textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_head textarea {
        max-height: 50px !important;
        min-height: 50px !important;
        font-size: 13px !important;
        padding: 8px !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_total_calc .ginput_container:after {
        top: 14px;
    }

    .quote_form .gform_wrapper ul.gform_fields li.formtable_col1 {
        width: 14% !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.formtable_col2 {
        width: 25% !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.formtable_col3 {
        width: 18% !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.formtable_col4 {
        width: 19% !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.formtable_col5 {
        width: 24% !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec {
        width: 50% !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_total_calc {
        width: 50% !important;
    }
}

@media (max-width: 380px) {

    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_head textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_head input,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec input,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_border textarea,
    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_head textarea {
        max-height: 50px !important;
        min-height: 50px !important;
        font-size: 12px !important;
        padding: 5px !important;
        line-height: 3;
    }

    .quote_form .gform_wrapper ul.gform_fields li.gfield.threequat_sec {
        width: 45% !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_total_calc {
        width: 55% !important;
    }

    .quote_form .gform_wrapper ul.gform_fields li.gfield.quat_sec.quat_total_calc .ginput_container:after {
        top: 15px;
        font-size: 13px;
    }

}

/* .single-gallery .grey{
	text-align: center;
	padding: 40px 0px !important;
} */







.custom-th {
    border: 0px solid #dddddd;
    text-align: left;
    padding: 22px;
    border-radius: 4px;
    color: #FFFFFF;
}

.custom-table {
    width: 100%;
    border-radius: 4px;
}

.orange {
    background: #FDBB2F;
}

.dark-grey {
    background: #3F4B58;
}


img {
    border-radius: 4px;
}

.grecaptcha-badge {
    display: none !important;
}

footer .logos img {
    max-height: 100px;
}


@media (max-width: 1200px) {
    .header .btn {
        display: block;
        font-size: 14px;
        width: auto;
        padding: 13px 14px;
    }
}
/* =========================================================
   ACF Blog / Service CTA
   Layout: cta_service_blog
   Prefix: uq-article-end
========================================================= */

@font-face {
    font-family: "UQ CTA Inter";
    src: url("fonts/flexible-content/Inter-VariableFont_opsz,wght.ttf") format("truetype");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}

@font-face {
    font-family: "UQ CTA Roobert";
    src: url("fonts/flexible-content/Roobert-Medium.woff2") format("woff2");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

.uq-article-end,
.uq-article-end *,
.uq-article-end *::before,
.uq-article-end *::after {
    box-sizing: border-box;
}

.uq-article-end {
    --uae-accent: #edfc47;
    --uae-text: #000000;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: var(--uae-space-top, 32px) 0 var(--uae-space-bottom, 32px);
    overflow: hidden;
    background: #ffffff;
    color: var(--uae-text);
    font-family: "UQ CTA Inter", Arial, sans-serif;
}

.uq-article-end__container {
    width: min(calc(100% - 64px), 1200px);
    max-width: none;
    margin: 0 auto;
    padding: 0;
}

.uq-article-end__card {
    position: relative;
    display: flex;
    width: 100%;
    min-height: 200px;
    align-items: center;
    justify-content: space-between;
    gap: 48px;
    padding: 44px 48px;
    overflow: hidden;
    border-radius: 10px;
    background: var(--uae-accent);
    color: var(--uae-text);
    isolation: isolate;
}

.uq-article-end--pattern .uq-article-end__card::before {
    position: absolute;
    z-index: -1;
    top: -136px;
    right: 168px;
    width: 288px;
    height: 288px;
    border: 1px solid currentColor;
    border-radius: 50%;
    box-shadow: 0 0 0 44px currentColor, 0 0 0 88px currentColor;
    content: "";
    opacity: 0.045;
    pointer-events: none;
}

.uq-article-end--pattern .uq-article-end__card::after {
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    width: 160px;
    height: 100%;
    background-image: radial-gradient(currentColor 1px, transparent 1px);
    background-position: center;
    background-size: 14px 14px;
    content: "";
    opacity: 0.18;
    pointer-events: none;
    -webkit-mask-image: linear-gradient(to left, #000000, transparent);
    mask-image: linear-gradient(to left, #000000, transparent);
}

.uq-article-end__content {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.uq-article-end__title {
    max-width: 500px;
    margin: 0;
    overflow-wrap: anywhere;
    color: inherit;
    font-family: "UQ CTA Roobert", "UQ CTA Inter", Arial, sans-serif;
    font-size: clamp(23px, 2.2vw, 30px);
    font-weight: 500;
    letter-spacing: -0.025em;
    line-height: 1.1;
}

.uq-article-end__description {
    max-width: 500px;
    margin: 16px 0 0;
    overflow-wrap: anywhere;
    color: inherit;
    font-size: 15px;
    line-height: 1.5;
    opacity: 0.7;
}

.uq-article-end__description > :first-child {
    margin-top: 0;
}

.uq-article-end__description > :last-child {
    margin-bottom: 0;
}

.uq-article-end__description p {
    color: inherit;
    font: inherit;
    line-height: inherit;
}

.uq-article-end__button {
    position: relative;
    z-index: 1;
    display: inline-flex;
    min-width: 200px;
    min-height: 56px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 28px;
    border: 1px solid #000000;
    border-radius: 999px;
    background: #000000;
    color: #ffffff;
    font-family: "UQ CTA Inter", Arial, sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.uq-article-end__button svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
    transition: transform 180ms ease;
}

.uq-article-end__button:hover {
    background: #ffffff;
    color: #000000;
    transform: translateY(-2px);
}

.uq-article-end__button:hover svg {
    transform: translateX(3px);
}

.uq-article-end :focus-visible {
    outline: 2px solid #246bfd;
    outline-offset: 3px;
}

@media (max-width: 767px) {
    .uq-article-end__container {
        width: calc(100% - 32px);
        padding: 0;
    }

    .uq-article-end__card {
        min-height: 0;
        align-items: center;
        flex-direction: column;
        gap: 28px;
        padding: 40px 24px;
        text-align: center;
    }

    .uq-article-end--pattern .uq-article-end__card::before {
        top: auto;
        right: -112px;
        bottom: -160px;
    }

    .uq-article-end--pattern .uq-article-end__card::after {
        width: 128px;
    }

    .uq-article-end__content,
    .uq-article-end__title,
    .uq-article-end__description {
        width: 100%;
        max-width: 500px;
        margin-right: auto;
        margin-left: auto;
    }

    .uq-article-end__description {
        margin-top: 16px;
    }

    .uq-article-end__button {
        min-width: 208px;
    }
}

@media (max-width: 420px) {
    .uq-article-end__button {
        width: 100%;
        min-width: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-article-end *,
    .uq-article-end *::before,
    .uq-article-end *::after {
        transition-duration: 0.01ms !important;
    }
}

/* =========================================================
   ACF Footer CTA
   Layout: footer_cta
   Prefix: uq-footer-cta
========================================================= */
.uq-footer-cta,
.uq-footer-cta *,
.uq-footer-cta *::before,
.uq-footer-cta *::after {
    box-sizing: border-box;
}

/* ==========================================
   ACF How It Works Slider
   Layout: how_it_works_slider
   Prefix: uq-how-it-works
========================================== */
.uq-how-it-works,
.uq-how-it-works *,
.uq-how-it-works *::before,
.uq-how-it-works *::after {
    box-sizing: border-box;
}

.uq-how-it-works {
    --uq-hiw-primary: var(--uq-theme-primary, #104E8B);
    --uq-hiw-accent: var(--uq-theme-accent, #FDBB2F);
    --uq-hiw-text: #17202b;
    --uq-hiw-muted: #5f6873;
    --uq-hiw-card: #f4f8fc;
    --uq-hiw-border: rgba(16, 78, 139, 0.12);
    --uq-hiw-gap: 16px;
    width: 100%;
    padding: var(--uq-hiw-space-top, 64px) 5vw var(--uq-hiw-space-bottom, 80px);
    overflow: hidden;
    background: #ffffff;
    color: var(--uq-hiw-text);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-how-it-works__container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.uq-how-it-works__header {
    max-width: 760px;
    margin: 0 auto 36px;
    text-align: center;
}

.uq-how-it-works__eyebrow {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 7px;
    margin: 0 0 12px;
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--uq-hiw-accent);
    color: #000000;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.uq-how-it-works__eyebrow-icon {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    object-fit: contain;
    filter: brightness(0) saturate(100%);
}

.uq-how-it-works__title {
    max-width: 680px;
    margin: 0 auto 18px;
    color: var(--uq-hiw-primary) !important;
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.04em;
    text-wrap: balance;
}

.uq-how-it-works__description {
    max-width: 680px;
    margin: 0 auto;
    color: var(--uq-hiw-muted);
    font-size: 18px;
    line-height: 1.5;
}

.uq-how-it-works__description > :first-child,
.uq-how-it-works__card-description > :first-child {
    margin-top: 0;
}

.uq-how-it-works__description > :last-child,
.uq-how-it-works__card-description > :last-child {
    margin-bottom: 0;
}

.uq-how-it-works__header > .uq-how-it-works__actions {
    display: flex;
    width: 100%;
    max-width: 100%;
    margin: 26px auto 0;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.uq-how-it-works__arrow:focus-visible,
.uq-how-it-works__dot:focus-visible {
    outline: 3px solid var(--uq-hiw-accent);
    outline-offset: 3px;
}

.uq-how-it-works__carousel {
    position: relative;
    padding: 0 24px;
}

.uq-how-it-works__viewport {
    margin-right: -16px;
    margin-left: -16px;
    padding-right: 16px;
    padding-left: 16px;
    overflow: hidden;
    touch-action: pan-y;
}

.uq-how-it-works__track {
    display: flex;
    align-items: stretch;
    gap: var(--uq-hiw-gap);
    padding: 12px 0 18px;
    transform: translate3d(0, 0, 0);
    transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
}

.uq-how-it-works__card {
    display: flex;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 24px 28px;
    flex: 0 0 calc((100% - (var(--uq-hiw-gap) * 2)) / 3);
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    border: 1px solid var(--uq-hiw-card-border, var(--uq-hiw-border));
    border-radius: 12px;
    background: var(--uq-hiw-card-bg, var(--uq-hiw-card));
    color: var(--uq-hiw-text);
    text-align: center;
    text-decoration: none;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.uq-how-it-works__card:hover {
    border-color: var(--uq-hiw-card-border, var(--uq-hiw-border));
    box-shadow: 0 6px 16px rgba(23, 32, 43, 0.08);
    color: var(--uq-hiw-text);
    transform: translateY(-2px);
}

.uq-how-it-works__card:focus-visible {
    outline: 3px solid var(--uq-hiw-primary);
    outline-offset: 3px;
}

.uq-how-it-works__card-icon {
    display: inline-flex;
    width: 52px;
    height: 52px;
    margin-bottom: 18px;
    flex: 0 0 52px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 10px;
    background: var(--uq-hiw-icon-bg, var(--uq-hiw-primary));
    color: var(--uq-hiw-icon-color, #ffffff);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-size: 15px;
    font-weight: 700;
}

.uq-how-it-works__card-icon--image > span {
    display: block;
    width: 28px;
    height: 28px;
    background: var(--uq-hiw-icon-color, #ffffff);
    -webkit-mask: var(--uq-hiw-icon-image) center / contain no-repeat;
    mask: var(--uq-hiw-icon-image) center / contain no-repeat;
}

.uq-how-it-works__card-title {
    margin: 0 0 6px;
    color: #000000;
}

.uq-how-it-works__card-description {
    max-width: 320px;
    margin: 0;
    color: var(--uq-module-card-description-color);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
}

.uq-how-it-works__arrow {
    position: absolute;
    z-index: 2;
    top: 50%;
    display: inline-flex;
    width: 44px;
    height: 44px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: var(--uq-hiw-primary);
    color: #ffffff;
    cursor: pointer;
    transform: translateY(-50%);
    transition: opacity 180ms ease, transform 180ms ease;
}

.uq-how-it-works__arrow:hover {
    transform: translateY(-50%) scale(1.05);
}

.uq-how-it-works__arrow:disabled {
    opacity: 0.3;
    cursor: default;
}

.uq-how-it-works__arrow svg {
    display: block;
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.uq-how-it-works__arrow--previous {
    left: 2px;
}

.uq-how-it-works__arrow--next {
    right: 2px;
}

.uq-how-it-works__dots {
    display: flex;
    min-height: 10px;
    margin-top: 24px;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.uq-how-it-works__dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #cbd6e1;
    cursor: pointer;
    transition: width 180ms ease, background-color 180ms ease;
}

.uq-how-it-works__dot[aria-current='true'] {
    width: 22px;
    background: var(--uq-hiw-primary);
}

.uq-how-it-works__status {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    clip: rect(0 0 0 0);
    overflow: hidden;
}

.uq-how-it-works--static .uq-how-it-works__arrow,
.uq-how-it-works--static .uq-how-it-works__dots {
    display: none;
}

@media screen and (max-width: 991px) {
    .uq-how-it-works__card {
        flex-basis: calc((100% - var(--uq-hiw-gap)) / 2);
    }
}

@media screen and (max-width: 767px) {
    .uq-how-it-works {
        padding-right: 24px;
        padding-left: 24px;
    }

    .uq-how-it-works__header {
        margin-bottom: 30px;
    }

    .uq-how-it-works__description {
        font-size: 16px;
    }

    .uq-how-it-works__carousel {
        padding: 0;
    }

    .uq-how-it-works__card {
        min-height: 0;
        padding: 22px 24px;
        flex-basis: 100%;
    }

    .uq-how-it-works__arrow--previous {
        left: -14px;
    }

    .uq-how-it-works__arrow--next {
        right: -14px;
    }
}

@media screen and (max-width: 479px) {
    .uq-how-it-works {
        padding-right: 18px;
        padding-left: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-how-it-works__track,
    .uq-how-it-works__card,
    .uq-how-it-works__button,
    .uq-how-it-works__arrow,
    .uq-how-it-works__dot {
        transition: none !important;
    }
}

/* ==========================================
   ACF Service Comparison
   Layout: service_comparison
   Prefix: uq-service-comparison
========================================== */
.uq-service-comparison,
.uq-service-comparison *,
.uq-service-comparison *::before,
.uq-service-comparison *::after {
    box-sizing: border-box;
}

.uq-service-comparison {
    --uq-cmp-primary: var(--uq-theme-primary, #104E8B);
    --uq-cmp-primary-dark: #0b3d6f;
    --uq-cmp-accent: var(--uq-theme-accent, #FDBB2F);
    --uq-cmp-surface: #f4f8fc;
    --uq-cmp-line: rgba(16, 78, 139, 0.14);
    --uq-cmp-text: #17202b;
    --uq-cmp-muted: #5f6873;
    width: 100%;
    padding: var(--uq-cmp-space-top, 64px) 5vw var(--uq-cmp-space-bottom, 80px);
    overflow: hidden;
    background: #ffffff;
    color: var(--uq-cmp-text);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-service-comparison__container {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
}

.uq-service-comparison__header {
    max-width: 760px;
    margin: 0 auto 40px;
    text-align: center;
}

.uq-service-comparison__eyebrow {
    display: inline-flex;
    width: fit-content;
    margin: 0 0 12px;
    padding: 4px 12px;
    align-items: center;
    gap: 7px;
    border-radius: 999px;
    background: var(--uq-cmp-accent);
    color: #000000;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
}

.uq-service-comparison__eyebrow-icon,
.uq-service-comparison__title-icon {
    display: block;
    flex: 0 0 auto;
    background: currentColor;
    -webkit-mask: var(--uq-cmp-icon) center / contain no-repeat;
    mask: var(--uq-cmp-icon) center / contain no-repeat;
}

.uq-service-comparison__eyebrow-icon {
    width: 16px;
    height: 16px;
}

.uq-service-comparison__title {
    max-width: 720px;
    margin: 0 auto 18px;
    color: var(--uq-cmp-primary) !important;
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.04em;
    text-wrap: balance;
}

.uq-service-comparison__description {
    max-width: 690px;
    margin: 0 auto;
    color: var(--uq-cmp-muted);
    font-size: 18px;
    line-height: 1.55;
}

.uq-service-comparison__description > :first-child {
    margin-top: 0;
}

.uq-service-comparison__description > :last-child {
    margin-bottom: 0;
}

.uq-service-comparison__title-icon {
    width: 52px;
    height: 52px;
}

.uq-service-comparison__service-heading {
    min-width: 0;
}

.uq-service-comparison__service-eyebrow {
    display: inline-flex;
    width: fit-content;
    margin: 0 0 16px;
    padding: 6px 12px;
    align-items: center;
    border-radius: 999px;
    background: #ffffff;
    color: var(--uq-cmp-text);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.uq-service-comparison__table-head--left .uq-service-comparison__service-eyebrow,
.uq-service-comparison__column--left .uq-service-comparison__service-eyebrow {
    background: var(--uq-cmp-accent);
    color: #000000;
}

.uq-service-comparison__table-head h3,
.uq-service-comparison__column-head h3 {
    margin: 0 0 7px;
    color: inherit;
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.025em;
}

.uq-service-comparison__table-head p,
.uq-service-comparison__column-head p {
    max-width: 380px;
    margin: 0;
    color: inherit;
    font-size: 14px;
    line-height: 1.5;
    opacity: 0.78;
}

/* Center-icon design: uq-company-standards-v2.html */
.uq-service-comparison__table {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--uq-cmp-line);
    border-radius: 14px;
    box-shadow: 0 18px 45px rgba(16, 78, 139, 0.1);
}

.uq-service-comparison__table-head {
    display: flex;
    min-height: 144px;
    padding: 24px 32px;
    align-items: center;
    gap: 20px;
}

.uq-service-comparison__table-head--left {
    background: var(--uq-cmp-primary);
    color: #ffffff;
}

.uq-service-comparison__table-head--left .uq-service-comparison__title-icon {
    color: var(--uq-cmp-accent);
}

.uq-service-comparison__table-head--right {
    background: var(--uq-cmp-surface);
    color: var(--uq-cmp-text);
}

.uq-service-comparison__table-head--right .uq-service-comparison__title-icon {
    color: var(--uq-cmp-primary);
}

.uq-service-comparison__rows {
    grid-column: 1 / -1;
}

.uq-service-comparison__row {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-height: 112px;
    border-top: 1px solid var(--uq-cmp-line);
}

.uq-service-comparison__cell {
    display: grid;
    grid-template-columns: 25px minmax(0, 1fr);
    padding: 20px 32px;
    align-content: center;
    gap: 16px;
}

.uq-service-comparison__cell--left {
    background: var(--uq-cmp-primary);
    color: #ffffff;
}

.uq-service-comparison__cell--right {
    padding-left: 88px;
    background: #ffffff;
    color: var(--uq-cmp-text);
}

.uq-service-comparison__status {
    display: inline-grid;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    place-items: center;
    background: var(--uq-cmp-accent);
    color: #000000;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
}

.uq-service-comparison__cell--right .uq-service-comparison__status,
.uq-service-comparison__column--right .uq-service-comparison__status {
    background: #d8e0e8;
    color: #52606d;
}

.uq-service-comparison__cell strong,
.uq-service-comparison__cell div > span,
.uq-service-comparison__list strong,
.uq-service-comparison__list-item > div > span {
    display: block;
}

.uq-service-comparison__cell strong,
.uq-service-comparison__list strong {
    margin-bottom: 4px;
    color: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
}

.uq-service-comparison__cell div > span,
.uq-service-comparison__list-item > div > span {
    color: inherit;
    font-size: 13px;
    line-height: 1.45;
    opacity: 0.72;
}

.uq-service-comparison__center-icon {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    display: grid;
    width: 60px;
    height: 60px;
    border: 1px solid var(--uq-cmp-line);
    border-radius: 50%;
    place-items: center;
    background: #ffffff;
    box-shadow: 0 7px 20px rgba(16, 78, 139, 0.15);
    transform: translate(-50%, -50%);
}

.uq-service-comparison__center-icon::before {
    width: 25px;
    height: 25px;
    background: var(--uq-cmp-primary);
    -webkit-mask: var(--uq-cmp-icon) center / contain no-repeat;
    mask: var(--uq-cmp-icon) center / contain no-repeat;
    content: '';
}

/* Two-column design: uq-company-standards.html */
.uq-service-comparison__columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.uq-service-comparison__column {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--uq-cmp-line);
    border-radius: 12px;
    background: #ffffff;
}

.uq-service-comparison__column-head {
    display: flex;
    min-height: 180px;
    padding: 28px;
    align-items: center;
    gap: 18px;
}

.uq-service-comparison__column--left .uq-service-comparison__column-head {
    background: var(--uq-cmp-primary);
    color: #ffffff;
}

.uq-service-comparison__column--left .uq-service-comparison__title-icon {
    color: var(--uq-cmp-accent);
}

.uq-service-comparison__column--right .uq-service-comparison__column-head {
    background: var(--uq-cmp-surface);
    color: var(--uq-cmp-text);
}

.uq-service-comparison__column--right .uq-service-comparison__title-icon {
    color: var(--uq-cmp-primary);
}

.uq-service-comparison__list {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 6px;
    list-style: none !important;
}

.uq-service-comparison__list-item {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    min-height: 92px;
    margin: 0;
    padding: 17px 18px;
    align-items: start;
    gap: 13px;
    background: var(--uq-cmp-surface);
}

.uq-service-comparison__list-item::before,
.uq-service-comparison__list-item::after {
    display: none !important;
    content: none !important;
}

.uq-service-comparison__status--negative::after {
    display: block;
    width: 8px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    content: '';
}

.uq-service-comparison__list .uq-service-comparison__status {
    margin-top: 2px;
}

/* Design 3: Quo-inspired minimal content/image intro + clean paired comparison cards. */
.uq-service-comparison--design-3 .uq-service-comparison__container {
    max-width: 1200px;
}

.uq-service-comparison__design3-top {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 4fr);
    width: 100%;
    align-items: center;
    gap: var(--uq-module-split-gap, 80px);
}

.uq-service-comparison__design3-content {
    width: 100%;
    min-width: 0;
}

.uq-service-comparison.uq-service-comparison--design-3 .uq-service-comparison__eyebrow {
    margin-bottom: 14px;
}

.uq-service-comparison.uq-service-comparison--design-3 .uq-service-comparison__title {
    max-width: 560px;
    margin: 0 0 18px;
    color: var(--uq-cmp-primary) !important;
    font-weight: 400;
    line-height: .98;
    letter-spacing: -.045em;
    text-align: left;
    text-wrap: balance;
}

.uq-service-comparison.uq-service-comparison--design-3 .uq-service-comparison__description {
    width: 100%;
    max-width: 560px;
    margin: 0;
    color: var(--uq-cmp-muted);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: -.01em;
    text-align: left;
}

.uq-service-comparison__design3-actions {
    display: flex;
    margin-top: 24px;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
}

.uq-service-comparison__design3-visual {
    position: relative;
    display: flex;
    width: 100%;
    min-width: 0;
    aspect-ratio: var(--uq-module-media-ratio, 4 / 3);
    margin: 0;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: var(--uq-module-media-radius, 10px);
    background: #f4f5f7;
}

.uq-service-comparison__design3-visual--placeholder {
    border: 1px solid var(--uq-theme-border, #e5e5e5);
    background: #eef2f7;
}

.uq-service-comparison__design3-image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    max-width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
    object-position: center;
}

/* Design 3 bottom: two independent bordered lists (no comparison semantics). */
.uq-service-comparison__design3-tables {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    margin-top: 56px;
    gap: 24px;
}

.uq-service-comparison__design3-table {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--uq-theme-border, #e5e5e5);
    border-radius: 10px;
    background: #ffffff;
}

.uq-service-comparison__design3-table-head {
    padding: 24px 24px 18px;
}

.uq-service-comparison.uq-service-comparison--design-3 .uq-service-comparison__design3-table-title {
    margin: 0;
    padding: 0;
    color: #000000;
    text-align: left;
    text-transform: none;
}

.uq-service-comparison__design3-table-title::before,
.uq-service-comparison__design3-table-title::after {
    display: none;
    content: none;
}

.uq-service-comparison__design3-table-description {
    margin: 8px 0 0;
    color: var(--uq-module-card-description-color);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    overflow-wrap: break-word;
}

/* Rectangular accordion cards inside the table container. */
.uq-service-comparison__design3-rows {
    display: flex;
    margin: 0;
    padding: 0 12px 12px;
    flex-direction: column;
    gap: 8px;
    list-style: none;
}

.uq-service-comparison__design3-row {
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--uq-theme-border, #e5e5e5);
    border-radius: 8px;
    background: #ffffff;
    list-style: none;
}

.uq-service-comparison__design3-row::before,
.uq-service-comparison__design3-row::after {
    display: none;
    content: none;
}

.uq-service-comparison.uq-service-comparison--design-3 .uq-service-comparison__design3-row-heading {
    margin: 0;
    padding: 0;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-transform: none;
}

.uq-service-comparison__design3-row-heading::before,
.uq-service-comparison__design3-row-heading::after {
    display: none;
    content: none;
}

.uq-service-comparison__design3-row-toggle,
.uq-service-comparison__design3-row-static {
    display: flex;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 14px 16px;
    align-items: flex-start;
    gap: 12px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-family: inherit;
    text-align: left;
}

.uq-service-comparison__design3-row-toggle {
    cursor: pointer;
    transition: background-color .18s ease;
    -webkit-appearance: none;
    appearance: none;
}

.uq-service-comparison__design3-row-toggle:hover {
    background: #f6f8fa;
}

.uq-service-comparison__design3-row-toggle:focus-visible {
    outline: 2px solid var(--uq-cmp-primary);
    outline-offset: -2px;
}

.uq-service-comparison__design3-row-icon {
    display: block;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    margin-top: 1px;
    object-fit: contain;
}

.uq-service-comparison__design3-row-copy {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 4px;
}

.uq-service-comparison__design3-row-title {
    display: block;
    color: #000000;
    font-family: var(--uq-site-font-body, Arial, sans-serif);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -.02em;
    overflow-wrap: break-word;
}

.uq-service-comparison__design3-row-preview {
    display: block;
    color: var(--uq-cmp-muted);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    overflow-wrap: break-word;
}

/*
 * Hold the collapsed preview to two lines on narrow columns, where a word cap alone still
 * wraps to three. Only rows that actually hide content are clamped, so a row without a
 * chevron never shows an ellipsis for text that cannot be revealed.
 */
.uq-service-comparison__design3-row--expandable .uq-service-comparison__design3-row-preview {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    max-height: 3.2em;
    overflow: hidden;
    transition: max-height .28s ease, opacity .18s ease;
}

/*
 * Collapse the preview over the same time the panel opens. Removing it outright would drop
 * the card's height in a single frame and make the whole list jump before it grows.
 */
.uq-service-comparison__design3-row.is-open .uq-service-comparison__design3-row-preview {
    max-height: 0;
    opacity: 0;
}

.uq-service-comparison__design3-row-chevron {
    display: flex;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    margin-top: 3px;
    align-items: center;
    justify-content: center;
    color: var(--uq-cmp-muted);
    transition: transform .2s ease;
}

.uq-service-comparison__design3-row-chevron svg {
    display: block;
    width: 12px;
    height: 8px;
}

.uq-service-comparison__design3-row.is-open .uq-service-comparison__design3-row-chevron {
    transform: rotate(180deg);
}

.uq-service-comparison__design3-row-panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height .28s ease;
}

.uq-service-comparison__design3-row-panel-inner {
    padding: 0 16px 14px;
}

.uq-service-comparison__design3-row--has-icon .uq-service-comparison__design3-row-panel-inner {
    padding-left: 52px;
}

.uq-service-comparison__design3-row-panel-inner p {
    margin: 0;
    color: var(--uq-cmp-muted);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    overflow-wrap: break-word;
}

@media (prefers-reduced-motion: reduce) {
    .uq-service-comparison__design3-row-panel,
    .uq-service-comparison__design3-row-preview,
    .uq-service-comparison__design3-row-chevron,
    .uq-service-comparison__design3-row-toggle {
        transition: none;
    }
}

@media screen and (max-width: 991px) {
    .uq-service-comparison__design3-top {
        grid-template-columns: minmax(0, 1fr);
        gap: 40px;
    }

    .uq-service-comparison__design3-content,
    .uq-service-comparison__design3-visual {
        max-width: var(--uq-module-media-width, 640px);
    }

    .uq-service-comparison__design3-visual {
        justify-self: center;
    }

    .uq-service-comparison__design3-tables {
        margin-top: 44px;
        gap: 20px;
    }
}

@media screen and (max-width: 767px) {
    .uq-service-comparison {
        padding-right: 24px;
        padding-left: 24px;
    }

    .uq-service-comparison__header {
        margin-bottom: 32px;
    }

    .uq-service-comparison__description {
        font-size: 16px;
    }

    .uq-service-comparison__columns {
        grid-template-columns: 1fr;
    }

    .uq-service-comparison__column-head,
    .uq-service-comparison__table-head {
        min-height: 0;
        padding: 22px;
    }

    .uq-service-comparison__table {
        display: block;
    }

    .uq-service-comparison__table-head--right {
        display: none;
    }

    .uq-service-comparison__row {
        grid-template-columns: 1fr;
    }

    .uq-service-comparison__cell {
        padding: 18px 22px;
    }

    .uq-service-comparison__cell--right {
        border-top: 1px solid var(--uq-cmp-line);
    }

    .uq-service-comparison__center-icon {
        display: none;
    }

    .uq-service-comparison__design3-tables {
        grid-template-columns: minmax(0, 1fr);
        margin-top: 40px;
        gap: 16px;
    }

    .uq-service-comparison__design3-table-head {
        padding: 20px 20px 16px;
    }

    .uq-service-comparison__design3-rows {
        padding: 0 10px 10px;
    }
}

@media screen and (max-width: 479px) {
    .uq-service-comparison {
        padding-right: 18px;
        padding-left: 18px;
    }

    .uq-service-comparison__title-icon {
        width: 42px;
        height: 42px;
    }

    .uq-service-comparison__table-head h3,
    .uq-service-comparison__column-head h3 {
        font-size: 21px;
    }

    .uq-service-comparison__design3-top {
        gap: 32px;
    }

    .uq-service-comparison__design3-table-head {
        padding: 18px 18px 14px;
    }

    .uq-service-comparison__design3-rows {
        padding: 0 8px 8px;
    }

    .uq-service-comparison__design3-row-toggle,
    .uq-service-comparison__design3-row-static {
        padding: 13px 14px;
    }

    .uq-service-comparison__design3-row-panel-inner {
        padding: 0 14px 13px;
    }

    .uq-service-comparison__design3-row--has-icon .uq-service-comparison__design3-row-panel-inner {
        padding-left: 50px;
    }
}

/* Service Hero Gallery — static three-image layout */
main.uq-service-flex-page {
    display: block;
    float: none;
    width: 100%;
    max-width: none;
    margin: 0;
}

.uq-service-gallery-hero,
.uq-service-gallery-hero * {
    box-sizing: border-box;
}

.uq-service-gallery-hero {
    width: 100%;
    padding: var(--uq-shg-space-top, 64px) 5vw var(--uq-shg-space-bottom, 80px);
    overflow: hidden;
    background: #fff;
    color: #000;
    font-family: var(--font-main, Inter, Arial, sans-serif);
}

.uq-service-gallery-hero__inner {
    display: grid;
    grid-template-columns: minmax(270px, .72fr) minmax(0, 1.28fr);
    align-items: center;
    gap: clamp(48px, 5vw, 84px);
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.uq-service-gallery-hero__content {
    width: 100%;
    max-width: 496px;
}

.uq-service-gallery-hero--gallery-left .uq-service-gallery-hero__gallery { order: -1; }

.uq-service-gallery-hero__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 16px;
    padding: 5px 12px;
    border-radius: 999px;
    background: var(--uq-shg-tag-bg, #e5f53d);
    color: #000;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.35;
}

.uq-service-gallery-hero__tag-icon {
    display: block;
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.uq-service-gallery-hero__title {
    max-width: 496px;
    margin: 0 0 20px;
    color: #000;
    font-family: "Roobert", Inter, Arial, sans-serif;
    font-size: clamp(48px, 4.6vw, 56px);
    font-weight: 500;
    line-height: 1.06;
    letter-spacing: -.04em;
}

.uq-service-gallery-hero__description {
    max-width: 464px;
    color: #000000b3;
    font-size: 17px;
    line-height: 1.5;
}

.uq-service-gallery-hero__description > :first-child { margin-top: 0; }
.uq-service-gallery-hero__description > :last-child { margin-bottom: 0; }

.uq-service-gallery-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 30px;
}

.uq-service-gallery-hero__button {
    display: inline-flex;
    min-height: 42px;
    padding: 10px 24px;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2;
    text-decoration: none;
    transition: opacity .3s ease, transform .3s ease;
}

.uq-service-gallery-hero__button:hover {
    opacity: .88;
    transform: translateY(-1px);
    text-decoration: none;
}

.uq-service-gallery-hero__button--primary,
.uq-service-gallery-hero__button--primary:hover {
    border-color: var(--uq-shg-primary-border);
    background: var(--uq-shg-primary-bg);
    color: var(--uq-shg-primary-text);
}

.uq-service-gallery-hero__button--secondary,
.uq-service-gallery-hero__button--secondary:hover {
    border-color: var(--uq-shg-secondary-border);
    background: var(--uq-shg-secondary-bg);
    color: var(--uq-shg-secondary-text);
}

.uq-service-gallery-hero__gallery {
    width: 100%;
    min-width: 0;
}

.uq-service-gallery-hero__image {
    width: 100%;
    margin: 0;
    overflow: hidden;
    border-radius: 10px;
    background: #f7f5f2;
}

.uq-service-gallery-hero__image--main { aspect-ratio: 16 / 8.6; }

.uq-service-gallery-hero__thumbnails {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.uq-service-gallery-hero__thumbnails--single { grid-template-columns: minmax(0, 1fr); }
.uq-service-gallery-hero__image--thumbnail { aspect-ratio: 16 / 9; }

.uq-service-gallery-hero__image img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
    object-position: center;
}

@media (max-width: 860px) {
    .uq-service-gallery-hero__inner {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .uq-service-gallery-hero__content { max-width: 672px; }
    .uq-service-gallery-hero--gallery-left .uq-service-gallery-hero__gallery { order: 0; }
    .uq-service-gallery-hero__gallery { max-width: 736px; margin: 0 auto; }
}

@media (max-width: 767px) {
    .uq-service-gallery-hero { padding-inline: 24px; }
    .uq-service-gallery-hero__title { font-size: clamp(38px, 10vw, 52px); }
    .uq-service-gallery-hero__thumbnails { gap: 12px; margin-top: 12px; }
}

@media (max-width: 479px) {
    .uq-service-gallery-hero { padding-inline: 18px; }
    .uq-service-gallery-hero__inner { gap: 32px; }
    .uq-service-gallery-hero__title { font-size: clamp(34px, 10vw, 44px); }
    .uq-service-gallery-hero__actions { flex-direction: column; }
    .uq-service-gallery-hero__button { width: 100%; }
}

.uq-footer-cta {
    --uq-fcta-title-color: #000000;
    --uq-fcta-title-size: 72px;
    --uq-fcta-dark-card-bg: #000000;
    --uq-fcta-dark-card-text: #ffffff;
    --uq-fcta-light-card-bg: #f7f6f5;
    --uq-fcta-light-card-text: #000000;
    --uq-fcta-accent: #e5f53d;
    --uq-fcta-accent-text: #000000;
    --uq-fcta-border: #e5e5e5;
    --uq-fcta-container: 1200px;
    --uq-fcta-radius: 10px;
    --uq-fcta-space-top: 64px;
    --uq-fcta-space-bottom: 64px;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 32px;
    overflow: hidden;
    border-top: 1px solid var(--uq-fcta-border);
    background: #ffffff;
    color: var(--uq-fcta-title-color);
    font-family: var(--uq-site-font-body);
}

.uq-footer-cta__container {
    width: 100%;
    max-width: var(--uq-fcta-container);
    margin: 0 auto;
}

.uq-footer-cta__layout {
    display: flex;
    gap: clamp(48px, 6vw, 90px);
    align-items: flex-start;
    width: 100%;
    padding: var(--uq-fcta-space-top) 0 var(--uq-fcta-space-bottom);
    border-bottom: 1px solid var(--uq-fcta-border);
}

.uq-footer-cta__heading-wrap,
.uq-footer-cta__actions {
    flex: 1 1 0;
    min-width: 0;
}

.uq-footer-cta__title {
    max-width: 576px;
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--uq-fcta-title-color);
    font-size: var(--uq-fcta-title-size);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.02em;
    text-wrap: balance;
}

.uq-footer-cta__actions {
    display: flex;
    gap: 24px;
    justify-content: flex-end;
    align-items: stretch;
}

.uq-footer-cta__card {
    display: flex;
    flex: 0 1 240px;
    flex-direction: column;
    gap: 26px;
    width: 100%;
    max-width: 240px;
    min-height: 136px;
    padding: 24px;
    border-radius: var(--uq-fcta-radius);
    color: inherit;
    text-decoration: none;
    transition: transform 300ms cubic-bezier(.19, 1, .22, 1);
}

.uq-footer-cta__card--dark {
    background: var(--uq-fcta-dark-card-bg);
    color: var(--uq-fcta-dark-card-text);
}

.uq-footer-cta__card--light {
    background: var(--uq-fcta-light-card-bg);
    color: var(--uq-fcta-light-card-text);
}

.uq-footer-cta__card:hover {
    transform: translateY(-3px);
}

.uq-footer-cta__card--dark:hover {
    color: var(--uq-fcta-dark-card-text);
}

.uq-footer-cta__card--light:hover {
    color: var(--uq-fcta-light-card-text);
}

.uq-footer-cta__card:focus-visible {
    outline: 2px solid var(--uq-fcta-accent);
    outline-offset: 3px;
}

.uq-footer-cta__icon {
    display: flex;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-left: auto;
    border-radius: 50%;
    background: var(--uq-fcta-accent);
    color: var(--uq-fcta-accent-text);
}

.uq-footer-cta__icon svg {
    display: block;
    width: 14px;
    height: 13px;
    transition: transform 400ms cubic-bezier(.19, 1, .22, 1);
}

.uq-footer-cta__card:hover .uq-footer-cta__icon svg {
    transform: translate(2px, -2px);
}

.uq-footer-cta__card-title {
    margin-top: auto;
    color: inherit;
}

@media screen and (max-width: 991px) {
    .uq-footer-cta {
        padding-right: 5vw;
        padding-left: 5vw;
    }

    .uq-footer-cta__layout {
        flex-direction: column;
        gap: 40px;
        padding-top: min(var(--uq-fcta-space-top), 48px);
        padding-bottom: min(var(--uq-fcta-space-bottom), 48px);
    }

    .uq-footer-cta__heading-wrap,
    .uq-footer-cta__actions {
        width: 100%;
    }

    .uq-footer-cta__title {
        max-width: 672px;
        font-size: min(var(--uq-fcta-title-size), 64px);
    }

    .uq-footer-cta__actions {
        justify-content: flex-start;
    }

    .uq-footer-cta__card {
        flex: 1 1 0;
        max-width: none;
    }
}

@media screen and (max-width: 767px) {
    .uq-footer-cta {
        padding-right: 24px;
        padding-left: 24px;
    }

    .uq-footer-cta__layout {
        gap: 32px;
        padding-top: min(var(--uq-fcta-space-top), 40px);
        padding-bottom: min(var(--uq-fcta-space-bottom), 40px);
    }

    .uq-footer-cta__title {
        font-size: min(var(--uq-fcta-title-size), 56px);
        line-height: 1.02;
    }
}

@media screen and (max-width: 479px) {
    .uq-footer-cta {
        padding-right: 18px;
        padding-left: 18px;
    }

    .uq-footer-cta__layout {
        padding-top: min(var(--uq-fcta-space-top), 32px);
        padding-bottom: min(var(--uq-fcta-space-bottom), 32px);
    }

    .uq-footer-cta__title {
        font-size: min(var(--uq-fcta-title-size), 48px);
    }

    .uq-footer-cta__actions {
        flex-direction: column;
        gap: 12px;
    }

    .uq-footer-cta__card {
        flex: none;
        flex-direction: row-reverse;
        gap: 10px;
        align-items: center;
        justify-content: space-between;
        max-width: none;
        min-height: 76px;
        padding: 16px;
    }

    .uq-footer-cta__icon {
        flex-basis: 32px;
        width: 32px;
        height: 32px;
        margin-left: 0;
    }

    .uq-footer-cta__card-title {
        margin-top: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-footer-cta *,
    .uq-footer-cta *::before,
    .uq-footer-cta *::after {
        transition-duration: 0.01ms !important;
    }
}

/* =========================================================
   ACF CTA Bar
   Layout: cta_bar
   Prefix: uq-cta-bar
========================================================= */
.uq-cta-bar,
.uq-cta-bar *,
.uq-cta-bar *::before,
.uq-cta-bar *::after {
    box-sizing: border-box;
}

.uq-cta-bar {
    --uq-ctab-question: #000000;
    --uq-ctab-subtitle: #808080;
    --uq-ctab-primary-bg: #edfc47;
    --uq-ctab-primary-text: #000000;
    --uq-ctab-secondary-bg: #ffffff;
    --uq-ctab-secondary-text: #000000;
    --uq-ctab-border: #e5e5e5;
    --uq-ctab-space-top: 0px;
    --uq-ctab-space-bottom: 0px;
    --uq-ctab-container: 1200px;
    width: 100%;
    max-width: none;
    margin: var(--uq-ctab-space-top) 0 var(--uq-ctab-space-bottom);
    padding: 16px 32px;
    border-top: 1px solid var(--uq-ctab-border);
    border-bottom: 1px solid var(--uq-ctab-border);
    background: #ffffff;
    font-family: var(--uq-site-font-body);
}

.uq-cta-bar__container {
    width: 100%;
    max-width: var(--uq-ctab-container);
    margin: 0 auto;
}

.uq-cta-bar__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 24px;
    align-items: center;
}

.uq-cta-bar__text {
    display: flex;
    gap: 6px;
    align-items: center;
    min-width: 0;
}

.uq-cta-bar__question,
.uq-cta-bar__subtitle {
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
    white-space: nowrap;
}

.uq-cta-bar__question {
    color: var(--uq-ctab-question);
    font-weight: 600;
}

.uq-cta-bar__subtitle {
    color: var(--uq-ctab-subtitle);
    font-weight: 400;
}

.uq-cta-bar__actions {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: flex-end;
}

.uq-cta-bar__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 5px 12px;
    border: 1px solid transparent;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    transition: transform 250ms ease, opacity 250ms ease;
}

.uq-cta-bar__button:hover {
    transform: translateY(-1px);
    opacity: 0.88;
}

.uq-cta-bar__button:focus-visible {
    outline: 2px solid var(--uq-ctab-primary-bg);
    outline-offset: 2px;
}

.uq-cta-bar__button--secondary {
    border-color: var(--uq-ctab-border);
    background: var(--uq-ctab-secondary-bg);
    color: var(--uq-ctab-secondary-text);
}

.uq-cta-bar__button--secondary:hover {
    color: var(--uq-ctab-secondary-text);
}

.uq-cta-bar__button--primary {
    background: var(--uq-ctab-primary-bg);
    color: var(--uq-ctab-primary-text);
}

.uq-cta-bar__button--primary:hover {
    color: var(--uq-ctab-primary-text);
}

@media screen and (max-width: 767px) {
    .uq-cta-bar {
        margin-top: min(var(--uq-ctab-space-top), 32px);
        margin-bottom: min(var(--uq-ctab-space-bottom), 32px);
        padding-right: 24px;
        padding-left: 24px;
    }

    .uq-cta-bar__layout {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 16px;
    }

    .uq-cta-bar__subtitle {
        display: none;
    }
}

@media screen and (max-width: 600px) {
    .uq-cta-bar__text {
        display: none;
    }

    .uq-cta-bar__layout {
        grid-template-columns: 1fr;
    }

    /*
     * One button per row. The old rule kept both buttons on a single line with
     * flex: 1 1 0 and a 160px cap, which is what squeezed them together on a
     * phone. A single-column grid gives the two rows the client asked for, and
     * every button gets the same full width and the same height.
     */
    .uq-cta-bar__actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        gap: 10px;
        align-items: stretch;
        justify-items: stretch;
    }

    .uq-cta-bar__button {
        width: 100%;
        max-width: none;
        /* Long editor-entered labels wrap instead of pushing the page wider. */
        white-space: normal;
    }
}

@media screen and (max-width: 360px) {
    .uq-cta-bar {
        padding-right: 16px;
        padding-left: 16px;
    }

    .uq-cta-bar__actions {
        gap: 8px;
    }

    .uq-cta-bar__button {
        padding-right: 8px;
        padding-left: 8px;
        font-size: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-cta-bar *,
    .uq-cta-bar *::before,
    .uq-cta-bar *::after {
        transition-duration: 0.01ms !important;
    }
}

/* =========================================================
   Global Design Typography
   Inter: body and controls
   Roobert: headings
========================================================= */
@font-face {
    font-family: "UQ Site Inter";
    src: url("fonts/flexible-content/Inter-VariableFont_opsz,wght.ttf") format("truetype");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}

@font-face {
    font-family: "UQ Site Roobert";
    src: url("fonts/flexible-content/Roobert-Medium.woff2") format("woff2");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: "UQ Site Roobert";
    src: url("fonts/flexible-content/Roobert-SemiBold.woff2") format("woff2");
    font-style: normal;
    font-weight: 600 900;
    font-display: swap;
}

:root {
    --uq-site-font-body: "UQ Site Inter", Arial, sans-serif;
    --uq-site-font-heading: "UQ Site Roobert", "UQ Site Inter", Arial, sans-serif;
    --font-main: var(--uq-site-font-body);
    --font-heading: var(--uq-site-font-heading);
}

body,
p,
a,
li,
label,
input,
textarea,
select,
button,
table,
th,
td,
blockquote {
    font-family: var(--uq-site-font-body) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.heading {
    font-family: var(--uq-site-font-heading) !important;
}

.uq-footer-cta__card-title {
    font-family: var(--uq-site-font-heading) !important;
}

/* Shared heading_style classes. They are only added for an explicit choice;
   Default keeps every module's original heading CSS untouched. */
.uq-heading-display.uq-heading-display,
.uq-heading-h1.uq-heading-h1,
.uq-heading-h2.uq-heading-h2,
.uq-heading-h3.uq-heading-h3,
.uq-heading-h4.uq-heading-h4,
.uq-heading-h5.uq-heading-h5,
.uq-heading-h6.uq-heading-h6 {
    overflow-wrap: anywhere;
}

.uq-heading-display.uq-heading-display {
    font-size: 88px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.02em;
}

.uq-heading-h1.uq-heading-h1 {
    font-size: 56px;
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.uq-heading-h2.uq-heading-h2 {
    font-size: 48px;
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.uq-heading-h3.uq-heading-h3 {
    font-size: 40px;
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.uq-heading-h4.uq-heading-h4 {
    font-size: 32px;
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.uq-heading-h5.uq-heading-h5 {
    font-size: 24px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.uq-heading-h6.uq-heading-h6 {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

@media screen and (max-width: 991px) {
    .uq-heading-display.uq-heading-display {
        font-size: 72px;
    }

    .uq-heading-h1.uq-heading-h1 {
        font-size: 48px;
    }

    .uq-heading-h2.uq-heading-h2 {
        font-size: 40px;
    }

    .uq-heading-h3.uq-heading-h3 {
        font-size: 32px;
    }

    .uq-heading-h4.uq-heading-h4 {
        font-size: 24px;
    }

    .uq-heading-h5.uq-heading-h5 {
        font-size: 20px;
    }

    .uq-heading-h6.uq-heading-h6 {
        font-size: 18px;
    }
}

@media screen and (max-width: 767px) {
    .uq-heading-display.uq-heading-display {
        font-size: 64px;
    }

    .uq-heading-h1.uq-heading-h1 {
        font-size: 40px;
    }

    .uq-heading-h2.uq-heading-h2 {
        font-size: 32px;
    }

    .uq-heading-h3.uq-heading-h3 {
        font-size: 24px;
    }

    .uq-heading-h4.uq-heading-h4 {
        font-size: 20px;
    }

    .uq-heading-h5.uq-heading-h5 {
        font-size: 18px;
    }

    .uq-heading-h6.uq-heading-h6 {
        font-size: 16px;
    }
}

@media screen and (max-width: 479px) {
    .uq-heading-display.uq-heading-display {
        font-size: 48px;
    }

    .uq-heading-h1.uq-heading-h1 {
        font-size: 32px;
    }

    .uq-heading-h2.uq-heading-h2 {
        font-size: 24px;
    }

    .uq-heading-h3.uq-heading-h3 {
        font-size: 20px;
    }

    .uq-heading-h4.uq-heading-h4 {
        font-size: 18px;
    }

    .uq-heading-h5.uq-heading-h5,
    .uq-heading-h6.uq-heading-h6 {
        font-size: 16px;
    }
}

@media screen and (max-width: 360px) {
    .uq-heading-display.uq-heading-display {
        font-size: 44px;
    }
}

/* ==========================================
   ACF Location Keyword Header
   Layout: location_keyword_header
   Prefix: uq-quo-showcase
========================================== */
:root {
    --uq-theme-primary: #104E8B;
    --uq-theme-accent: #FDBB2F;
    --uq-theme-text: #3F4B58;
    --uq-theme-border: #e5e5e5;
    --uq-module-media-ratio: 4 / 3;
    --uq-module-media-width: 640px;
    --uq-module-split-gap: 80px;
    /* One responsive scale for every module's H2 section title. Desktop and
       tablet land on the same steps as .uq-heading-h2 (48px / 40px); the two
       mobile steps stay one step above that class so the current mobile
       proportions are preserved — the shared class would drop them to 32/24. */
    /* Card titles: one scale for every module, taken from Service Cards
       (.uq-multi-services__card-title) — 18px / 500 / 1.35, constant at every
       width, which is why the shared rule below carries no media queries. */
    --uq-module-card-title-size: 18px;
    --uq-module-card-title-weight: 500;
    --uq-module-card-title-line-height: 1.35;
    --uq-module-card-title-letter-spacing: -0.015em;
    /* Card description colour, taken from Service Cards
       (.uq-multi-services__card-description, which hard-coded #000000b3).
       Only the card description of each module points here — every module's own
       --uq-*-muted variable is left alone, because section descriptions and
       other copy share those. */
    --uq-module-card-description-color: rgba(0, 0, 0, 0.7);
    --uq-module-title-size: clamp(40px, 3.4vw, 48px);
    --uq-module-title-size-lg: 40px;
    --uq-module-title-size-md: 36px;
    --uq-module-title-size-sm: 32px;
    --uq-module-description-size: 16px;
    --uq-module-description-size-mobile: 15px;
    --uq-module-description-line-height: 1.4;
    --uq-module-description-weight: 400;
    --uq-module-description-centered-width: 800px;
}

.uq-quo-showcase,
.uq-quo-showcase *,
.uq-quo-showcase *::before,
.uq-quo-showcase *::after {
    box-sizing: border-box;
}

.uq-quo-showcase {
    --uq-quo-showcase-heading: #000000;
    --uq-quo-showcase-text: var(--uq-theme-text, #3F4B58);
    --uq-quo-showcase-muted: rgba(63, 75, 88, 0.72);
    --uq-quo-showcase-border: var(--uq-theme-border, #e5e5e5);
    --uq-quo-showcase-white: #ffffff;
    --uq-quo-showcase-accent: var(--uq-theme-accent, #FDBB2F);
    --uq-quo-showcase-primary: var(--uq-theme-primary, #104E8B);
    --uq-quo-showcase-container: 1200px;
    --uq-quo-showcase-radius: 10px;
    --uq-quo-showcase-visual-radius: 12px;
    /* Own ratio, so the shared --uq-module-media-ratio token stays untouched.
       The old 4/3 rendered 900px tall at 1200px wide — a whole viewport of hero. */
    --uq-quo-showcase-visual-ratio: 2 / 1;
    --uq-quo-showcase-image-radius: var(--uq-quo-showcase-visual-radius);
    --uq-quo-showcase-duration: 7000ms;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: var(--uq-lkh-space-top, 64px) 0 var(--uq-lkh-space-bottom, 80px);
    overflow: hidden;
    background: var(--uq-quo-showcase-white);
    color: var(--uq-quo-showcase-text);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-quo-showcase__container {
    width: min(calc(100% - 64px), var(--uq-quo-showcase-container));
    max-width: none;
    margin: 0 auto;
}

.uq-quo-showcase__header {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    place-items: end start;
    gap: 96px;
    margin-bottom: 32px;
}

.uq-quo-showcase__heading-wrap,
.uq-quo-showcase__text-wrap {
    width: 100%;
    min-width: 0;
}

.uq-quo-showcase__tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    margin-bottom: 12px;
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--uq-quo-showcase-accent);
    color: var(--uq-quo-showcase-heading);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
}

.uq-quo-showcase__tag-icon {
    display: inline-flex;
    flex: 0 0 16px;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
}

.uq-quo-showcase__tag-icon svg,
.uq-quo-showcase__tag-icon img {
    display: block;
    width: 100%;
    height: 100%;
}

/* An uploaded badge icon is rarely exactly square; contain keeps it whole and
   undistorted inside the same 16px box the inline SVG uses. */
.uq-quo-showcase__tag-icon img {
    object-fit: contain;
}

.uq-quo-showcase__title {
    max-width: 624px;
    margin: 0;
    color: var(--uq-quo-showcase-heading);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.02em;
    text-wrap: balance;
}

.uq-quo-showcase__description {
    max-width: 528px;
    margin: 0;
    color: var(--uq-quo-showcase-text);
    font-size: clamp(16px, 1.3vw, 18px);
    font-weight: 400;
    line-height: 1.4;
}

.uq-quo-showcase__description > :first-child {
    margin-top: 0;
}

.uq-quo-showcase__description > :last-child {
    margin-bottom: 0;
}

.uq-quo-showcase__description p {
    color: inherit;
    font: inherit;
    line-height: inherit;
}

.uq-quo-showcase__visual {
    display: grid;
    width: 100%;
    aspect-ratio: var(--uq-quo-showcase-visual-ratio, 2 / 1);
    overflow: hidden;
    border-radius: var(--uq-quo-showcase-visual-radius);
    background: #f3f1ee;
}

.uq-quo-showcase__slide {
    display: flex;
    grid-area: 1 / 1;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: clamp(24px, 3vw, 40px);
    overflow: hidden;
    background: var(--uq-quo-slide-background, #f3f1ee);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.8s ease, visibility 0s linear 0.8s;
    pointer-events: none;
}

.uq-quo-showcase__slide.is-active {
    z-index: 1;
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
}

.uq-quo-showcase__slide img {
    display: block;
    flex: 1 1 auto;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    border-radius: var(--uq-quo-showcase-image-radius);
    object-fit: cover;
    object-position: center;
}

.uq-quo-showcase__tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-top: 24px;
}

.uq-quo-showcase__tab {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    min-height: 208px;
    padding: 32px;
    overflow: hidden;
    border: 1px solid var(--uq-quo-showcase-border);
    border-radius: var(--uq-quo-showcase-radius);
    background: var(--uq-quo-showcase-white);
    color: var(--uq-quo-showcase-muted);
    font: inherit;
    text-align: left;
    cursor: pointer;
    opacity: 0.72;
    transition: opacity 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.uq-quo-showcase__tab:hover,
.uq-quo-showcase__tab.is-active {
    opacity: 1;
}

.uq-quo-showcase__tab:hover {
    border-color: var(--uq-quo-showcase-primary);
}

.uq-quo-showcase__tab:focus-visible {
    outline: 2px solid var(--uq-quo-showcase-primary);
    outline-offset: 3px;
}

.uq-quo-showcase__tab-title {
    color: var(--uq-quo-showcase-heading);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    transition: color 0.3s ease;
}

.uq-quo-showcase__tab.is-active .uq-quo-showcase__tab-title {
    color: var(--uq-quo-showcase-primary);
}

.uq-quo-showcase__progress {
    position: relative;
    display: block;
    width: 100%;
    height: 2px;
    margin: 6px 0 16px;
    overflow: hidden;
    background: var(--uq-quo-showcase-border);
}

.uq-quo-showcase__progress-fill {
    position: absolute;
    inset: 0;
    display: block;
    background: var(--uq-quo-showcase-primary);
    transform: scaleX(0);
    transform-origin: left center;
}

.uq-quo-showcase__tab.is-active.is-running .uq-quo-showcase__progress-fill {
    animation: uq-quo-showcase-progress var(--uq-quo-showcase-duration) linear forwards;
}

.uq-quo-showcase__tab-description {
    color: var(--uq-quo-showcase-text);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
}

@keyframes uq-quo-showcase-progress {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

@media screen and (max-width: 991px) {
    .uq-quo-showcase {
        --uq-quo-showcase-visual-ratio: 3 / 2;
    }

    .uq-quo-showcase {
        padding-top: min(var(--uq-lkh-space-top, 64px), 64px);
        padding-bottom: min(var(--uq-lkh-space-bottom, 64px), 64px);
    }

    .uq-quo-showcase__container {
        width: calc(100% - 10vw);
    }

    .uq-quo-showcase__header {
        grid-template-columns: 1fr;
        place-items: start stretch;
        gap: 24px;
    }

    .uq-quo-showcase__title {
        max-width: 736px;
    }

    .uq-quo-showcase__description {
        max-width: 672px;
    }

    .uq-quo-showcase__slide {
        padding: clamp(20px, 3vw, 28px);
    }

    .uq-quo-showcase__tabs {
        display: flex;
        margin-right: -5vw;
        margin-left: -5vw;
        padding-right: 5vw;
        padding-bottom: 10px;
        padding-left: 5vw;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: thin;
    }

    .uq-quo-showcase__tab {
        flex: 0 0 min(384px, 80vw);
        min-height: 200px;
        scroll-snap-align: start;
    }
}

@media screen and (max-width: 767px) {
    .uq-quo-showcase {
        padding-top: min(var(--uq-lkh-space-top, 56px), 56px);
        padding-bottom: min(var(--uq-lkh-space-bottom, 56px), 56px);
    }

    .uq-quo-showcase__container {
        width: calc(100% - 48px);
    }

    .uq-quo-showcase__tag {
        margin-bottom: 16px;
        font-size: 14px;
    }

    .uq-quo-showcase {
        --uq-quo-showcase-visual-ratio: 4 / 3;
    }

    .uq-quo-showcase__title {
        line-height: 1.03;
    }

    .uq-quo-showcase__visual {
        aspect-ratio: var(--uq-quo-showcase-visual-ratio, 4 / 3);
    }

    .uq-quo-showcase__slide {
        padding: 12px;
    }

    .uq-quo-showcase__tabs {
        gap: 16px;
        margin-right: -24px;
        margin-left: -24px;
        padding-right: 24px;
        padding-left: 24px;
    }

    .uq-quo-showcase__tab {
        flex-basis: min(340px, 82vw);
        min-height: 192px;
        padding: 24px;
    }
}

@media screen and (max-width: 479px) {
    .uq-quo-showcase {
        padding-top: min(var(--uq-lkh-space-top, 48px), 48px);
        padding-bottom: min(var(--uq-lkh-space-bottom, 48px), 48px);
    }

    .uq-quo-showcase__container {
        width: calc(100% - 36px);
    }

    .uq-quo-showcase__header {
        gap: 20px;
        margin-bottom: 24px;
    }

    .uq-quo-showcase__description,
    .uq-quo-showcase__tab-description {
        font-size: 15px;
    }

    .uq-quo-showcase__tabs {
        margin-right: -18px;
        margin-left: -18px;
        padding-right: 18px;
        padding-left: 18px;
    }

    .uq-quo-showcase__tab {
        flex-basis: min(296px, 84vw);
        padding: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-quo-showcase__slide {
        transition: none;
    }

    .uq-quo-showcase__progress-fill {
        animation: none !important;
    }
}

/* ==========================================
   ACF Location Page Header
   Layout: hero_centered
   Prefix: uq-home-hero
========================================== */
.uq-home-hero,
.uq-home-hero *,
.uq-home-hero *::before,
.uq-home-hero *::after {
    box-sizing: border-box;
}

.uq-home-hero {
    --uq-home-hero-heading: #000000;
    --uq-home-hero-text: var(--uq-theme-text, #3F4B58);
    --uq-home-hero-muted: rgba(63, 75, 88, 0.78);
    --uq-home-hero-border: var(--uq-theme-border, #e5e5e5);
    --uq-home-hero-white: #ffffff;
    --uq-home-hero-warm-gray: #f3f1ee;
    --uq-home-hero-container: 1200px;
    --uq-home-hero-wide: 1752px;
    /* Hero image area, measured from quo.com's hero assets rather than guessed:
       the frame ratio is the asset's own ratio, and the padding is the inset of
       the artwork inside it (Home 3504x1600, Tablet 1600x790, Mobile 1008x712).
       pad-y is written against the frame WIDTH — percentage padding always
       resolves against width — so 3.01% x 2.19 = 6.6% of the frame height,
       which is what Quo uses. */
    --uq-home-hero-media-ratio: 2.19;
    --uq-home-hero-media-pad-x: 8.2%;
    --uq-home-hero-media-pad-y: 3.01%;
    --uq-home-hero-radius: 10px;
    --uq-lph-primary-bg: var(--uq-theme-accent, #FDBB2F);
    --uq-lph-primary-text: #000000;
    --uq-lph-primary-border: var(--uq-theme-accent, #FDBB2F);
    --uq-lph-primary-radius: 6px;
    --uq-lph-secondary-bg: #ffffff;
    --uq-lph-secondary-text: #000000;
    --uq-lph-secondary-border: var(--uq-theme-border, #e5e5e5);
    --uq-lph-secondary-radius: 6px;
    --uq-lph-image-bg: var(--uq-home-hero-warm-gray);
    --uq-lph-space-top: 64px;
    --uq-lph-space-bottom: 0px;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: var(--uq-lph-space-top) 0 var(--uq-lph-space-bottom);
    overflow: hidden;
    background: var(--uq-home-hero-white);
    color: var(--uq-home-hero-text);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-home-hero__padding {
    width: 100%;
}

.uq-home-hero__container {
    width: min(calc(100% - 64px), var(--uq-home-hero-container));
    max-width: none;
    margin: 0 auto;
    text-align: center;
}

.uq-home-hero__rating {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 0 37px;
    color: var(--uq-home-hero-muted);
    font-size: 16px;
    line-height: 1.5;
}

.uq-home-hero__rating-score {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--uq-home-hero-heading);
    font-weight: 600;
    white-space: nowrap;
}

.uq-home-hero__rating-icon {
    display: inline-flex;
    flex: 0 0 20px;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: var(--uq-home-hero-heading);
}

.uq-home-hero__rating-icon svg,
.uq-home-hero__rating-icon img {
    display: block;
    width: 100%;
    height: 100%;
}

/* An uploaded rating icon is rarely exactly square; contain keeps it whole
   inside the same box the inline SVG uses. */
.uq-home-hero__rating-icon img {
    object-fit: contain;
}

.uq-home-hero__rating-text {
    color: var(--uq-home-hero-heading);
}

.uq-home-hero__rating-divider {
    display: inline-block;
    width: 1px;
    height: 20px;
    background: var(--uq-home-hero-border);
}

.uq-home-hero__reviews {
    margin: 0;
    color: var(--uq-home-hero-muted);
    font: inherit;
    white-space: nowrap;
}

.uq-home-hero__content {
    width: 100%;
    margin: 0 auto;
}

.uq-home-hero__title {
    max-width: 928px;
    margin: 0 auto 28px;
    color: var(--uq-home-hero-heading);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-size: clamp(64px, 6.95vw, 88px);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.02em;
    text-align: center;
    text-wrap: balance;
}

.uq-home-hero__description {
    width: 100%;
    max-width: 688px;
    margin: 0 auto 32px;
    color: var(--uq-home-hero-text);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.42;
    letter-spacing: -0.01em;
}

.uq-home-hero__description > :first-child {
    margin-top: 0;
}

.uq-home-hero__description > :last-child {
    margin-bottom: 0;
}

.uq-home-hero__description p {
    color: inherit;
    font: inherit;
    line-height: inherit;
}

.uq-home-hero__actions {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
    margin: 0;
}

.uq-home-hero__button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px 24px;
    border: 1px solid transparent;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.uq-home-hero__button:hover {
    transform: translateY(-1px);
    opacity: 0.88;
}

.uq-home-hero__button:focus-visible {
    outline: 2px solid var(--uq-theme-primary, #104E8B);
    outline-offset: 3px;
}

.uq-home-hero__button--primary {
    border-color: var(--uq-lph-primary-border);
    border-radius: var(--uq-lph-primary-radius);
    background: var(--uq-lph-primary-bg);
    color: var(--uq-lph-primary-text);
}

.uq-home-hero__button--primary:hover {
    color: var(--uq-lph-primary-text);
}

.uq-home-hero__button--secondary {
    border-color: var(--uq-lph-secondary-border);
    border-radius: var(--uq-lph-secondary-radius);
    background: var(--uq-lph-secondary-bg);
    color: var(--uq-lph-secondary-text);
}

.uq-home-hero__button--secondary:hover {
    color: var(--uq-lph-secondary-text);
}

.uq-home-hero__button-icon {
    display: inline-flex;
    flex: 0 0 14px;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    color: currentColor;
}

.uq-home-hero__button-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.uq-home-hero .uq-home-hero__media {
    display: flex;
    aspect-ratio: var(--uq-home-hero-media-ratio);
    align-items: center;
    justify-content: center;
    margin: 48px auto 0;
    padding: 0 !important;
    overflow: hidden;
    border-radius: var(--uq-home-hero-radius);
    background: var(--uq-lph-image-bg);
}

.uq-home-hero__media--container {
    width: min(calc(100% - 64px), var(--uq-home-hero-container));
}

.uq-home-hero__media--full {
    width: min(calc(100% - 32px), var(--uq-home-hero-wide));
}

.uq-home-hero .uq-home-hero__image-wrap {
    display: flex;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    min-width: 0;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    /* The frame's inset. 100% - 2 x 8.2% leaves the photo at 83.6% of the frame
       width, which is exactly the share Quo's artwork occupies. */
    padding: var(--uq-home-hero-media-pad-y) var(--uq-home-hero-media-pad-x);
}

.uq-home-hero .uq-home-hero__image {
    display: block;
    flex: 1 1 auto;
    align-self: stretch;
    /* Was auto/intrinsic, so a 768px-wide upload rendered at 768px and filled
       only 55% of the frame. Filling the inset box is what makes the photo read
       at Quo's scale. */
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    inline-size: 100% !important;
    block-size: 100% !important;
    max-inline-size: 100% !important;
    max-block-size: 100% !important;
    object-fit: cover;
    object-position: center;
    aspect-ratio: auto;
    border-radius: 10px !important;
}

@media screen and (max-width: 991px) {
    .uq-home-hero {
        padding-top: min(var(--uq-lph-space-top), 56px);
        padding-bottom: min(var(--uq-lph-space-bottom), 56px);
    }

    .uq-home-hero__container {
        width: calc(100% - 10vw);
    }

    .uq-home-hero__rating {
        margin-bottom: 36px;
    }

    .uq-home-hero__content {
        max-width: 768px;
    }

    .uq-home-hero__title {
        font-size: clamp(52px, 8vw, 72px);
    }

    .uq-home-hero__description {
        max-width: 640px;
    }

    .uq-home-hero__media {
        margin-top: 40px;
    }

    /* Tablet asset: 1600x790, artwork inset ~4.9% sideways and 8% from the top. */
    .uq-home-hero {
        --uq-home-hero-media-ratio: 2.025;
        --uq-home-hero-media-pad-x: 4.9%;
        --uq-home-hero-media-pad-y: 3.95%;
    }
}

@media screen and (max-width: 767px) {
    .uq-home-hero {
        padding-top: min(var(--uq-lph-space-top), 48px);
        padding-bottom: min(var(--uq-lph-space-bottom), 48px);
    }

    .uq-home-hero__container {
        width: calc(100% - 48px);
    }

    .uq-home-hero__rating {
        gap: 7px;
        margin-bottom: 32px;
        font-size: 14px;
    }

    .uq-home-hero__rating-icon,
    .uq-home-hero__rating-divider {
        width: 18px;
        height: 18px;
    }

    .uq-home-hero__rating-icon {
        flex-basis: 18px;
    }

    .uq-home-hero__title {
        margin-bottom: 22px;
        font-size: clamp(44px, 11vw, 64px);
        line-height: 1;
        letter-spacing: -0.04em;
    }

    .uq-home-hero__description {
        max-width: 544px;
        margin-bottom: 28px;
        font-size: 17px;
        line-height: 1.45;
    }

    .uq-home-hero__actions {
        gap: 12px;
    }

    .uq-home-hero__button {
        min-height: 42px;
        padding: 10px 24px;
        font-size: 15px;
    }

    .uq-home-hero__media--container,
    .uq-home-hero__media--full {
        width: 100%;
    }

    /* Mobile asset: 1008x712, artwork inset ~5.5% sideways and 6.6% from the top. */
    .uq-home-hero {
        --uq-home-hero-media-ratio: 1.416;
        --uq-home-hero-media-pad-x: 5.5%;
        --uq-home-hero-media-pad-y: 4.66%;
    }
}

@media screen and (max-width: 479px) {
    .uq-home-hero {
        padding-top: min(var(--uq-lph-space-top), 40px);
        padding-bottom: min(var(--uq-lph-space-bottom), 40px);
    }

    .uq-home-hero__container {
        width: calc(100% - 36px);
    }

    .uq-home-hero__rating {
        margin-bottom: 28px;
        font-size: 13px;
    }

    .uq-home-hero__title {
        max-width: 100%;
        font-size: 40px;
        line-height: 1.05;
    }

    .uq-home-hero__description {
        font-size: 14px;
        line-height: 1.5;
    }

    .uq-home-hero__actions {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }

    .uq-home-hero__button {
        width: 100%;
    }

}

@media screen and (max-width: 360px) {
    .uq-home-hero__title {
        font-size: 38px;
    }

    .uq-home-hero__rating {
        font-size: 12px;
    }

}

@media (prefers-reduced-motion: reduce) {
    .uq-home-hero *,
    .uq-home-hero *::before,
    .uq-home-hero *::after {
        transition-duration: 0.01ms !important;
    }
}

/* Hero Platforms Rich Text */
.uq-home-hero__platforms-rich {
    margin: 32px 0 0;
    color: var(--uq-home-hero-text);
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
}

.uq-home-hero__description + .uq-home-hero__platforms-rich,
.uq-home-hero__title + .uq-home-hero__platforms-rich {
    margin-top: 0;
}

.uq-home-hero__platforms-rich > :first-child {
    margin-top: 0;
}

.uq-home-hero__platforms-rich > :last-child {
    margin-bottom: 0;
}

.uq-home-hero__platforms-rich p {
    display: inline;
    color: inherit;
    font: inherit;
    line-height: inherit;
    white-space: normal;
}

.uq-home-hero__platforms-rich br {
    display: none;
}

.uq-home-hero__platforms-rich a {
    position: relative;
    display: inline-block;
    color: var(--uq-home-hero-heading);
    font-weight: 600;
    text-decoration: none;
}

.uq-home-hero__platforms-rich a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.3s ease;
}

.uq-home-hero__platforms-rich a:hover {
    color: var(--uq-theme-primary, #104E8B);
}

.uq-home-hero__platforms-rich a:hover::after,
.uq-home-hero__platforms-rich a:focus-visible::after {
    transform: scaleX(1);
}

.uq-home-hero__platforms-rich a:focus-visible {
    outline: 2px solid var(--uq-theme-primary, #104E8B);
    outline-offset: 3px;
}

@media screen and (max-width: 479px) {
    .uq-home-hero__platforms-rich {
        margin-top: 28px;
        font-size: 13px;
    }

    .uq-home-hero__description + .uq-home-hero__platforms-rich,
    .uq-home-hero__title + .uq-home-hero__platforms-rich {
        margin-top: 0;
    }
}

/* ==========================================
   ACF Brands Logos
   Layout: brands_logos
   Prefix: uq-logo-marquee
========================================== */
.uq-logo-marquee,
.uq-logo-marquee *,
.uq-logo-marquee *::before,
.uq-logo-marquee *::after {
    box-sizing: border-box;
}

.uq-logo-marquee {
    --uq-logo-marquee-bg: #ffffff;
    --uq-logo-marquee-text: var(--uq-theme-text, #3F4B58);
    --uq-logo-marquee-border: var(--uq-theme-border, #e5e5e5);
    --uq-logo-marquee-logo-height: 32px;
    --uq-logo-marquee-gap: 48px;
    --uq-logo-marquee-duration: 30s;
    --uq-bl-space-top: 56px;
    --uq-bl-space-bottom: 32px;
    width: 100%;
    max-width: none;
    margin: 0;
    overflow: hidden;
    background: var(--uq-logo-marquee-bg);
    color: var(--uq-logo-marquee-text);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-logo-marquee__container {
    margin: 0 auto;
}

.uq-logo-marquee--boxed .uq-logo-marquee__container {
    width: min(calc(100% - 64px), 1120px);
}

.uq-logo-marquee--container .uq-logo-marquee__container {
    width: min(calc(100% - 64px), 1200px);
}

.uq-logo-marquee--full .uq-logo-marquee__container {
    width: 100%;
}

.uq-logo-marquee__layout {
    width: 100%;
    padding: var(--uq-bl-space-top) 0 var(--uq-bl-space-bottom);
    border-bottom: 0;
    text-align: center;
}

.uq-logo-marquee--has-border .uq-logo-marquee__layout {
    border-bottom: 1px solid var(--uq-logo-marquee-border);
}

.uq-logo-marquee--full .uq-logo-marquee__layout {
    padding-right: 32px;
    padding-left: 32px;
}

.uq-logo-marquee__title {
    margin: 0 0 24px;
    color: var(--uq-logo-marquee-text);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
}

.uq-logo-marquee__viewport {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.uq-logo-marquee__track {
    display: flex;
    width: max-content;
    will-change: transform;
    animation: uq-logo-marquee-scroll var(--uq-logo-marquee-duration) linear infinite;
}

.uq-logo-marquee__group {
    display: flex;
    flex: none;
    align-items: center;
    gap: var(--uq-logo-marquee-gap);
    padding-right: var(--uq-logo-marquee-gap);
}

.uq-logo-marquee__item,
.uq-logo-marquee__link {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
}

.uq-logo-marquee__link {
    border-radius: 4px;
}

.uq-logo-marquee__link:focus-visible {
    outline: 2px solid var(--uq-theme-primary, #104E8B);
    outline-offset: 4px;
}

.uq-logo-marquee__logo {
    display: block;
    width: auto;
    max-width: none;
    height: var(--uq-logo-marquee-logo-height);
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.68;
    transition: opacity 0.25s ease;
}

.uq-logo-marquee__link:hover .uq-logo-marquee__logo {
    opacity: 1;
}

.uq-logo-marquee__fade {
    position: absolute;
    z-index: 2;
    top: 0;
    bottom: 0;
    width: 18%;
    pointer-events: none;
}

.uq-logo-marquee__fade--left {
    left: 0;
    background: linear-gradient(90deg, var(--uq-logo-marquee-bg) 0%, transparent 100%);
}

.uq-logo-marquee__fade--right {
    right: 0;
    background: linear-gradient(270deg, var(--uq-logo-marquee-bg) 0%, transparent 100%);
}

.uq-logo-marquee:hover .uq-logo-marquee__track {
    animation-play-state: paused;
}

@keyframes uq-logo-marquee-scroll {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

@media screen and (max-width: 991px) {
    .uq-logo-marquee {
        --uq-logo-marquee-gap: 40px;
        --uq-logo-marquee-duration: 24s;
    }

    .uq-logo-marquee__layout {
        padding-top: min(var(--uq-bl-space-top), 48px);
        padding-bottom: min(var(--uq-bl-space-bottom), 48px);
    }

    .uq-logo-marquee--boxed .uq-logo-marquee__container,
    .uq-logo-marquee--container .uq-logo-marquee__container {
        width: calc(100% - 10vw);
    }

    .uq-logo-marquee--full .uq-logo-marquee__layout {
        padding-right: 5vw;
        padding-left: 5vw;
    }
}

@media screen and (max-width: 767px) {
    .uq-logo-marquee {
        --uq-logo-marquee-logo-height: 28px;
        --uq-logo-marquee-gap: 32px;
        --uq-logo-marquee-duration: 20s;
    }

    .uq-logo-marquee__layout {
        padding-top: min(var(--uq-bl-space-top), 40px);
        padding-bottom: min(var(--uq-bl-space-bottom), 40px);
    }

    .uq-logo-marquee--boxed .uq-logo-marquee__container,
    .uq-logo-marquee--container .uq-logo-marquee__container {
        width: calc(100% - 48px);
    }

    .uq-logo-marquee--full .uq-logo-marquee__layout {
        padding-right: 24px;
        padding-left: 24px;
    }

    .uq-logo-marquee__title {
        margin-bottom: 20px;
        font-size: 14px;
    }

    .uq-logo-marquee__fade {
        display: none;
    }
}

@media screen and (max-width: 479px) {
    .uq-logo-marquee {
        --uq-logo-marquee-logo-height: 26px;
        --uq-logo-marquee-gap: 28px;
    }

    .uq-logo-marquee__layout {
        padding-top: min(var(--uq-bl-space-top), 36px);
        padding-bottom: min(var(--uq-bl-space-bottom), 36px);
    }

    .uq-logo-marquee--boxed .uq-logo-marquee__container,
    .uq-logo-marquee--container .uq-logo-marquee__container {
        width: calc(100% - 36px);
    }

    .uq-logo-marquee--full .uq-logo-marquee__layout {
        padding-right: 18px;
        padding-left: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-logo-marquee__track {
        animation-play-state: paused;
    }
}

/* ==========================================
   ACF Hero Gallery
   Layout: hero_gallery
   Prefix: uq-roof-hero-a
========================================== */
.uq-roof-hero-a,
.uq-roof-hero-a *,
.uq-roof-hero-a *::before,
.uq-roof-hero-a *::after {
    box-sizing: border-box;
}

.uq-roof-hero-a {
    --uq-hg-bg: #ffffff;
    --uq-hg-heading: #000000;
    --uq-hg-text: var(--uq-theme-text, #3F4B58);
    --uq-hg-border: var(--uq-theme-border, #e5e5e5);
    --uq-hg-accent: var(--uq-theme-accent, #FDBB2F);
    --uq-hg-gallery-bg: #f4f6f8;
    --uq-hg-primary-bg: var(--uq-hg-accent);
    --uq-hg-primary-text: #111111;
    --uq-hg-primary-border: var(--uq-hg-accent);
    --uq-hg-secondary-bg: #ffffff;
    --uq-hg-secondary-text: var(--uq-theme-primary, #104E8B);
    --uq-hg-secondary-border: var(--uq-hg-border);
    --uq-hg-space-top: 64px;
    --uq-hg-space-bottom: 64px;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: var(--uq-hg-space-top) 0 var(--uq-hg-space-bottom);
    overflow: hidden;
    background: var(--uq-hg-bg);
    color: var(--uq-hg-text);
    font-family: var(--uq-site-font-body, Inter, Arial, sans-serif);
}

.uq-roof-hero-a__inner {
    width: 100%;
    margin: 0 auto;
}

.uq-roof-hero-a--boxed .uq-roof-hero-a__inner {
    width: min(calc(100% - 64px), 1120px);
}

.uq-roof-hero-a--container .uq-roof-hero-a__inner {
    width: min(calc(100% - 64px), 1200px);
}

.uq-roof-hero-a--full .uq-roof-hero-a__inner {
    width: 100%;
}

.uq-roof-hero-a__content-wrap {
    width: min(calc(100% - 64px), 1200px);
    margin: 0 auto;
    text-align: center;
}

.uq-roof-hero-a--boxed .uq-roof-hero-a__content-wrap,
.uq-roof-hero-a--container .uq-roof-hero-a__content-wrap {
    width: 100%;
}

.uq-roof-hero-a__rating {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 0 36px;
    color: var(--uq-hg-text);
    font-size: 16px;
    line-height: 1.5;
}

.uq-roof-hero-a__rating-score {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--uq-hg-heading);
    font-weight: 700;
    white-space: nowrap;
}

.uq-roof-hero-a__rating-icon {
    display: inline-flex;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    color: var(--uq-hg-heading);
}

.uq-roof-hero-a__rating-icon svg,
.uq-roof-hero-a__button-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.uq-roof-hero-a__rating-divider {
    width: 1px;
    height: 20px;
    background: var(--uq-hg-border);
}

.uq-roof-hero-a__reviews {
    margin: 0;
    color: var(--uq-hg-text);
    white-space: nowrap;
}

.uq-roof-hero-a__title {
    width: 100%;
    max-width: 1060px;
    margin: 0 auto 28px;
    color: var(--uq-hg-heading);
    font-family: var(--uq-site-font-heading, Roobert, Inter, Arial, sans-serif);
    font-size: clamp(48px, 6.2vw, 82px);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.035em;
    text-align: center;
    text-wrap: balance;
}

.uq-roof-hero-a__description {
    width: 100%;
    max-width: 880px;
    margin: 0 auto 32px;
    color: var(--uq-hg-text);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;
    text-align: center;
}

.uq-roof-hero-a__description > * {
    margin-top: 0;
}

.uq-roof-hero-a__description > *:last-child {
    margin-bottom: 0;
}

.uq-roof-hero-a__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
}

.uq-roof-hero-a__button {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 24px;
    border: 1px solid transparent;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    transition: transform 0.25s ease, filter 0.25s ease, box-shadow 0.25s ease;
}

.uq-roof-hero-a__button:hover {
    transform: translateY(-2px);
    filter: brightness(0.97);
}

.uq-roof-hero-a__button:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--uq-hg-accent) 65%, transparent);
    outline-offset: 3px;
}

.uq-roof-hero-a__button--primary {
    background: var(--uq-hg-primary-bg);
    border-color: var(--uq-hg-primary-border);
    color: var(--uq-hg-primary-text);
}

.uq-roof-hero-a__button--secondary {
    background: var(--uq-hg-secondary-bg);
    border-color: var(--uq-hg-secondary-border);
    color: var(--uq-hg-secondary-text);
}

.uq-roof-hero-a__button-icon {
    display: inline-flex;
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    color: currentColor;
}

.uq-roof-hero-a__media {
    width: 100%;
    margin: 48px auto 0;
    padding: 16px;
    overflow: hidden;
    border-radius: 10px;
    background: var(--uq-hg-gallery-bg);
}

.uq-roof-hero-a--full .uq-roof-hero-a__media {
    width: calc(100% - 32px);
}

.uq-roof-hero-a__slider {
    width: 100%;
    overflow: hidden;
    border-radius: 8px;
}

.uq-roof-hero-a__track {
    display: flex;
    width: max-content;
    will-change: transform;
    animation: uq-roof-hero-a-slide 32s linear infinite;
}

.uq-roof-hero-a__group {
    display: flex;
    flex: none;
    gap: 16px;
    padding-right: 16px;
}

.uq-roof-hero-a__media:hover .uq-roof-hero-a__track {
    animation-play-state: paused;
}

.uq-roof-hero-a__card {
    flex: 0 0 clamp(240px, 23vw, 336px);
    aspect-ratio: var(--uq-module-media-ratio, 4 / 3);
    margin: 0;
    overflow: hidden;
    border-radius: 8px;
    background: #ffffff;
}

.uq-roof-hero-a__media--masonry .uq-roof-hero-a__track {
    animation-duration: 34s;
}

.uq-roof-hero-a__media--masonry .uq-roof-hero-a__card {
    flex-basis: clamp(224px, 19vw, 288px);
    height: clamp(256px, 28vw, 400px);
    aspect-ratio: auto;
}

.uq-roof-hero-a__media--masonry .uq-roof-hero-a__card--large {
    flex-basis: clamp(320px, 34vw, 512px);
}

.uq-roof-hero-a__image {
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.uq-roof-hero-a__card:hover .uq-roof-hero-a__image {
    transform: scale(1.025);
}

@keyframes uq-roof-hero-a-slide {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

@media screen and (max-width: 991px) {
    .uq-roof-hero-a {
        padding-top: min(var(--uq-hg-space-top), 56px);
        padding-bottom: min(var(--uq-hg-space-bottom), 56px);
    }

    .uq-roof-hero-a--boxed .uq-roof-hero-a__inner,
    .uq-roof-hero-a--container .uq-roof-hero-a__inner,
    .uq-roof-hero-a__content-wrap {
        width: calc(100% - 10vw);
    }

    .uq-roof-hero-a--boxed .uq-roof-hero-a__content-wrap,
    .uq-roof-hero-a--container .uq-roof-hero-a__content-wrap {
        width: 100%;
    }

    .uq-roof-hero-a__title {
        font-size: clamp(44px, 7.5vw, 68px);
    }
}

@media screen and (max-width: 767px) {
    .uq-roof-hero-a {
        padding-top: min(var(--uq-hg-space-top), 44px);
        padding-bottom: min(var(--uq-hg-space-bottom), 44px);
    }

    .uq-roof-hero-a--boxed .uq-roof-hero-a__inner,
    .uq-roof-hero-a--container .uq-roof-hero-a__inner,
    .uq-roof-hero-a__content-wrap {
        width: calc(100% - 48px);
    }

    .uq-roof-hero-a--boxed .uq-roof-hero-a__content-wrap,
    .uq-roof-hero-a--container .uq-roof-hero-a__content-wrap {
        width: 100%;
    }

    .uq-roof-hero-a__rating {
        margin-bottom: 28px;
        font-size: 14px;
    }

    .uq-roof-hero-a__title {
        margin-bottom: 22px;
        font-size: clamp(38px, 10vw, 54px);
        line-height: 1.04;
    }

    .uq-roof-hero-a__description {
        margin-bottom: 28px;
        font-size: 16px;
    }

    .uq-roof-hero-a__media,
    .uq-roof-hero-a--full .uq-roof-hero-a__media {
        width: calc(100% - 32px);
        margin-top: 40px;
        padding: 12px;
    }

    .uq-roof-hero-a__group {
        gap: 12px;
        padding-right: 12px;
    }

    .uq-roof-hero-a__card {
        flex-basis: clamp(208px, 62vw, 288px);
    }

    .uq-roof-hero-a__media--masonry .uq-roof-hero-a__card {
        flex-basis: clamp(192px, 52vw, 256px);
        height: clamp(208px, 58vw, 320px);
    }

    .uq-roof-hero-a__media--masonry .uq-roof-hero-a__card--large {
        flex-basis: clamp(256px, 72vw, 352px);
    }
}

@media screen and (max-width: 479px) {
    .uq-roof-hero-a {
        padding-top: min(var(--uq-hg-space-top), 36px);
        padding-bottom: min(var(--uq-hg-space-bottom), 36px);
    }

    .uq-roof-hero-a--boxed .uq-roof-hero-a__inner,
    .uq-roof-hero-a--container .uq-roof-hero-a__inner,
    .uq-roof-hero-a__content-wrap {
        width: calc(100% - 36px);
    }

    .uq-roof-hero-a--boxed .uq-roof-hero-a__content-wrap,
    .uq-roof-hero-a--container .uq-roof-hero-a__content-wrap {
        width: 100%;
    }

    .uq-roof-hero-a__rating {
        margin-bottom: 24px;
        font-size: 13px;
    }

    .uq-roof-hero-a__title {
        font-size: 36px;
    }

    .uq-roof-hero-a__actions {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }

    .uq-roof-hero-a__button {
        width: 100%;
    }

    .uq-roof-hero-a__media,
    .uq-roof-hero-a--full .uq-roof-hero-a__media {
        width: calc(100% - 20px);
        padding: 10px;
    }

    .uq-roof-hero-a__card {
        flex-basis: 72vw;
    }

    .uq-roof-hero-a__media--masonry .uq-roof-hero-a__card {
        flex-basis: 64vw;
        height: 68vw;
    }

    .uq-roof-hero-a__media--masonry .uq-roof-hero-a__card--large {
        flex-basis: 78vw;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-roof-hero-a__track {
        animation: none;
    }

    .uq-roof-hero-a__button,
    .uq-roof-hero-a__image {
        transition: none;
    }
}
/* ==========================================
   ACF Service Categories
   Layout: service_categories
   Prefix: uq-multi-services
========================================== */
.uq-multi-services,
.uq-multi-services *,
.uq-multi-services *::before,
.uq-multi-services *::after {
    box-sizing: border-box;
}

.uq-multi-services {
    --uq-ms-bg: #ffffff;
    --uq-ms-text: #000000;
    --uq-ms-muted: rgba(0, 0, 0, 0.58);
    --uq-ms-border: rgba(0, 0, 0, 0.13);
    --uq-ms-accent: var(--uq-theme-primary, #104E8B);
    --uq-ms-card-radius: 10px;
    --uq-ms-space-top: 64px;
    --uq-ms-space-bottom: 96px;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: var(--uq-ms-space-top) 5vw var(--uq-ms-space-bottom);
    overflow: hidden;
    background: var(--uq-ms-bg);
    color: var(--uq-ms-text);
    font-family: var(--uq-site-font-body, Inter, Arial, sans-serif);
}

.uq-multi-services__container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.uq-multi-services__layout {
    display: grid;
    grid-template-columns: minmax(224px, 264px) minmax(0, 1fr);
    gap: clamp(35px, 3vw, 51px);
    align-items: start;
}

.uq-multi-services__sidebar,
.uq-multi-services__body {
    min-width: 0;
}

.uq-multi-services__title {
    max-width: 240px;
    margin: 0 0 32px;
    color: var(--uq-ms-text);
    font-family: var(--uq-site-font-heading, Roobert, Inter, Arial, sans-serif);
    font-weight: 400;
    line-height: 0.98;
    letter-spacing: -0.045em;
}

.uq-multi-services__intro {
    max-width: 264px;
    margin: -12px 0 28px;
    color: #000000b3;
    font-size: 15px;
    line-height: 1.45;
}

.uq-multi-services__tabs {
    display: flex;
    flex-direction: column;
    margin: 0 0 28px;
}

.uq-multi-services__tab {
    position: relative;
    width: 100%;
    min-height: 40px;
    padding: 9px 0 9px 16px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--uq-ms-muted);
    font: inherit;
    font-size: 16px;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
    appearance: none;
    transition: color 0.18s ease;
}

.uq-multi-services__tab::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 2px;
    background: transparent;
}

.uq-multi-services__tab:hover,
.uq-multi-services__tab[aria-selected="true"] {
    color: var(--uq-ms-text);
}

.uq-multi-services__tab[aria-selected="true"] {
    font-weight: 600;
}

.uq-multi-services__tab[aria-selected="true"]::before {
    background: var(--uq-ms-accent);
}

.uq-multi-services__tab:focus-visible,
.uq-multi-services__button:focus-visible,
.uq-multi-services__card-link:focus-visible {
    outline: 2px solid var(--uq-ms-accent);
    outline-offset: 3px;
}

.uq-multi-services__panel[hidden] {
    display: none;
}

.uq-multi-services__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.uq-multi-services__card {
    display: flex;
    min-width: 0;
    min-height: 170px;
    flex-direction: column;
    padding: 24px;
    border: 1px solid var(--uq-ms-border);
    border-radius: var(--uq-ms-card-radius);
    background: #ffffff;
}

.uq-multi-services__card-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.uq-multi-services__card-title {
    margin: 0;
    color: var(--uq-ms-text);
}

.uq-multi-services__card-description {
    max-width: 240px;
    margin: 0;
    color: var(--uq-module-card-description-color);
    font-size: 14px;
    line-height: 1.45;
}

.uq-multi-services__card-link {
    display: inline-grid;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    place-items: center;
    border-radius: 4px;
    background: #f7f5f2;
    color: var(--uq-ms-text);
    text-decoration: none;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.uq-multi-services__card-link:hover {
    background: var(--uq-ms-text);
    color: #ffffff;
    transform: translateX(2px);
}

.uq-multi-services__card-link svg {
    width: 11px;
    height: 11px;
}

.uq-multi-services__content-space {
    width: 100%;
    padding: clamp(24px, 3vw, 40px);
    border: 1px solid var(--uq-ms-border);
    border-radius: var(--uq-ms-card-radius);
    background: #fbfbfa;
}

.uq-multi-services__content-title {
    max-width: 608px;
    margin: 0 0 16px;
    color: var(--uq-ms-text);
    font-family: var(--uq-site-font-heading, Roobert, Inter, Arial, sans-serif);
    font-size: clamp(28px, 3vw, 40px);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.uq-multi-services__content-text {
    max-width: 624px;
    margin: 0;
    color: var(--uq-ms-muted);
    font-size: 16px;
    line-height: 1.55;
}

.uq-multi-services__content-text p {
    margin-top: 0;
}

.uq-multi-services__content-text p:last-child {
    margin-bottom: 0;
}

.uq-multi-services__button,
.uq-how-it-works__button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 11px 18px;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.uq-multi-services__button {
    border: 1px solid var(--uq-ms-accent);
    background: var(--uq-ms-accent);
    color: #ffffff;
}

.uq-how-it-works__button {
    min-width: 150px;
    border: 1px solid var(--uq-hiw-button-bg, var(--uq-theme-primary, #104E8B));
    background: var(--uq-hiw-button-bg, var(--uq-theme-primary, #104E8B));
    color: var(--uq-hiw-button-text, #ffffff);
}

.uq-multi-services__button:hover {
    border-color: #0d3f71;
    background: #0d3f71;
    color: #ffffff;
    transform: translateY(-1px);
}

.uq-how-it-works__button--primary:hover,
.uq-how-it-works__button--primary:focus {
    border-color: #0d3f71;
    background: #0d3f71;
    color: #ffffff;
    transform: translateY(-1px);
}

.uq-how-it-works__button--secondary:hover,
.uq-how-it-works__button--secondary:focus {
    border-color: var(--uq-hiw-button-bg, var(--uq-theme-accent, #FDBB2F));
    background: var(--uq-hiw-button-bg, var(--uq-theme-accent, #FDBB2F));
    color: var(--uq-hiw-button-text, #000000);
    opacity: 0.88;
    transform: translateY(-1px);
}

.uq-how-it-works__button--normal {
    min-width: 0;
    min-height: 0;
    padding: 4px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--uq-hiw-button-text, var(--uq-theme-primary, #104E8B));
}

.uq-how-it-works__button--normal:hover,
.uq-how-it-works__button--normal:focus {
    border: 0;
    background: transparent;
    color: var(--uq-hiw-button-text, var(--uq-theme-primary, #104E8B));
    opacity: 0.82;
    transform: none;
}

.uq-multi-services__button svg,
.uq-how-it-works__button svg {
    display: block;
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
}

.uq-how-it-works__button:focus-visible {
    outline: 2px solid var(--uq-hiw-button-bg, var(--uq-theme-primary, #104E8B));
    outline-offset: 3px;
}

.uq-how-it-works__button--normal:focus-visible {
    outline-color: var(--uq-theme-primary, #104E8B);
}

.uq-multi-services__body-button {
    display: none;
    margin-top: 24px;
}

.uq-multi-services__body-button--always {
    display: inline-flex;
}

@media screen and (min-width: 992px) {
    .uq-multi-services:not(.uq-multi-services--no-categories) .uq-multi-services__body {
        padding-top: 80px;
    }

    .uq-multi-services--no-categories .uq-multi-services__body {
        padding-top: 0;
    }
}

@media screen and (max-width: 991px) {
    .uq-multi-services {
        padding-top: min(var(--uq-ms-space-top), 56px);
        padding-bottom: min(var(--uq-ms-space-bottom), 72px);
    }

    .uq-multi-services__layout {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .uq-multi-services__title {
        max-width: 608px;
        margin-bottom: 20px;
    }

    .uq-multi-services__intro {
        max-width: 608px;
        margin: 0 0 24px;
    }

    .uq-multi-services__tabs {
        width: 100%;
        flex-direction: row;
        gap: 8px;
        margin-bottom: 24px;
        padding-bottom: 4px;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .uq-multi-services__tab {
        width: auto;
        min-width: max-content;
        padding: 10px 13px;
        border-bottom: 2px solid transparent;
    }

    .uq-multi-services__tab::before {
        display: none;
    }

    .uq-multi-services__tab[aria-selected="true"] {
        border-bottom-color: var(--uq-ms-accent);
    }

    .uq-multi-services__sidebar > .uq-multi-services__button {
        display: none;
    }

    .uq-multi-services__body-button {
        display: inline-flex;
    }

    .uq-multi-services__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 767px) {
    .uq-multi-services {
        padding: min(var(--uq-ms-space-top), 48px) 24px min(var(--uq-ms-space-bottom), 56px);
    }

    .uq-multi-services__grid {
        grid-template-columns: 1fr;
    }

    .uq-multi-services__card {
        min-height: 0;
    }

    .uq-multi-services__card-description {
        max-width: 512px;
    }
}

@media screen and (max-width: 479px) {
    .uq-multi-services {
        padding: min(var(--uq-ms-space-top), 40px) 18px min(var(--uq-ms-space-bottom), 48px);
    }

    .uq-multi-services__layout {
        gap: 24px;
    }

    .uq-multi-services__card,
    .uq-multi-services__content-space {
        padding: 20px;
    }

    .uq-multi-services__body-button,
    .uq-multi-services__button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-multi-services *,
    .uq-multi-services *::before,
    .uq-multi-services *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
}
/* ==========================================
   ACF Split Content
   Layout: split_content
   Prefix: uq-project-split
========================================== */
.uq-project-split,
.uq-project-split *,
.uq-project-split *::before,
.uq-project-split *::after {
    box-sizing: border-box;
}

.uq-project-split {
    --uq-project-split-container: 1200px;
    --uq-project-split-heading: #000000;
    --uq-project-split-text: var(--uq-theme-text, #3f4b58);
    --uq-project-split-accent: var(--uq-theme-accent, #fdbb2f);
    width: 100%;
    padding: var(--uq-project-split-space-top, 64px) 5vw var(--uq-project-split-space-bottom, 64px);
    overflow: hidden;
    background: #ffffff;
    color: var(--uq-project-split-text);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-project-split__container {
    width: 100%;
    max-width: var(--uq-project-split-container);
    margin: 0 auto;
}

.uq-project-split__layout {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 3fr);
    align-items: stretch;
    gap: var(--uq-module-split-gap, 80px);
    width: 100%;
}

.uq-project-split--image-right .uq-project-split__layout {
    grid-template-columns: minmax(0, 3fr) minmax(0, 4fr);
}

.uq-project-split__media {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    min-width: 0;
    min-height: 0;
    aspect-ratio: var(--uq-module-media-ratio, 4 / 3);
    align-self: center;
    margin: 0;
    overflow: hidden;
    border-radius: 10px;
    background: #f4f4f2;
}

.uq-project-split__image {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
    object-position: center;
}

.uq-project-split__content {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    max-width: none;
    min-width: 0;
}

.uq-project-split--image-right .uq-project-split__content {
    grid-column: 1;
}

.uq-project-split--image-right .uq-project-split__media {
    grid-column: 2;
}

.uq-project-split__eyebrow,
.uq-service-feature__eyebrow {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 7px;
    margin: 0 0 12px;
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--uq-theme-accent, #FDBB2F);
    color: #000000;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.uq-project-split__eyebrow-icon,
.uq-service-feature__eyebrow-icon {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    object-fit: contain;
    object-position: center;
    filter: brightness(0) saturate(100%);
}

.uq-project-split__title {
    max-width: 500px;
    margin: 0 0 24px;
    color: var(--uq-project-split-heading);
    font-family: var(--uq-site-font-heading, Arial, sans-serif) !important;
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.uq-project-split__description {
    max-width: 544px;
    margin: 0;
    color: var(--uq-project-split-text);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;
}

.uq-project-split__description :where(p, span, li, a, strong, em),
.uq-flex-feature__description :where(p, span, li, a, strong, em) {
    font-size: inherit !important;
    line-height: inherit !important;
}

.uq-project-split__description > :first-child {
    margin-top: 0;
}

.uq-project-split__description > :last-child {
    margin-bottom: 0;
}

.uq-project-split__actions,
.uq-service-feature__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 32px;
}

.uq-project-split__button-filled,
.uq-service-feature__button--filled {
    display: inline-flex;
    min-height: 42px;
    padding: 10px 24px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--uq-project-split-button-border, var(--uq-service-feature-button-border, #104E8B));
    border-radius: 6px;
    background: var(--uq-project-split-button-bg, var(--uq-service-feature-button-bg, #104E8B));
    color: var(--uq-project-split-button-text, var(--uq-service-feature-button-text, #ffffff));
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2;
    text-decoration: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.uq-project-split__button-filled:hover,
.uq-project-split__button-filled:focus,
.uq-service-feature__button--filled:hover,
.uq-service-feature__button--filled:focus {
    color: var(--uq-project-split-button-text, var(--uq-service-feature-button-text, #ffffff));
    opacity: 0.88;
    transform: translateY(-1px);
}

.uq-project-split__button-filled:focus-visible,
.uq-service-feature__button--filled:focus-visible {
    outline: 3px solid var(--uq-theme-accent, #FDBB2F);
    outline-offset: 3px;
}

/* Every button type in this module carries the standard right arrow, so the
   filled ones need the same label-to-arrow gap and hover nudge as the text link.
   Scoped to this module's class only — the Service Feature buttons that share
   the rule above are not part of this change. */
.uq-project-split__button-filled {
    gap: 8px;
}

.uq-project-split__button-filled:hover .uq-project-split__button-arrow,
.uq-project-split__button-filled:focus .uq-project-split__button-arrow {
    transform: translateX(4px);
}

.uq-project-split__button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--uq-project-split-link-color, var(--uq-project-split-heading));
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    transition: color 0.25s ease;
}

.uq-project-split__button-arrow {
    display: inline-flex;
    width: 16px;
    height: 16px;
    /* No shrinking: as a flex item next to a long label in a narrow column the
       arrow was being squeezed to half its width. */
    flex: 0 0 16px;
    transition: transform 0.25s ease;
}

.uq-project-split__button-arrow svg {
    display: block;
    width: 100%;
    height: 100%;
}

.uq-project-split__button:hover {
    color: var(--uq-project-split-accent, #fdbb2f);
}

.uq-project-split__button:hover .uq-project-split__button-arrow {
    transform: translateX(4px);
}

.uq-project-split__button:focus-visible {
    outline: 3px solid var(--uq-project-split-accent);
    outline-offset: 5px;
    border-radius: 2px;
}

.uq-service-feature__button--link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--uq-service-feature-link-color, #000000);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    transition: color 0.25s ease;
}

.uq-service-feature__button-arrow {
    display: inline-flex;
    width: 16px;
    height: 16px;
    transition: transform 0.25s ease;
}

.uq-service-feature__button-arrow svg {
    display: block;
    width: 100%;
    height: 100%;
}

.uq-service-feature__button--link:hover {
    color: var(--uq-theme-accent, #FDBB2F);
}

.uq-service-feature__button--link:hover .uq-service-feature__button-arrow {
    transform: translateX(4px);
}

.uq-service-feature__button--link:focus-visible {
    outline: 3px solid var(--uq-theme-accent, #FDBB2F);
    outline-offset: 5px;
    border-radius: 2px;
}

.uq-project-split--no-image .uq-project-split__layout {
    grid-template-columns: 1fr;
}

.uq-project-split--no-image .uq-project-split__content {
    grid-column: 1;
    max-width: 704px;
}

@media screen and (max-width: 991px) {
    .uq-project-split {
        padding-top: min(var(--uq-project-split-space-top, 64px), 72px);
        padding-bottom: min(var(--uq-project-split-space-bottom, 64px), 72px);
    }

    .uq-project-split__layout {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .uq-project-split__content,
    .uq-project-split--image-right .uq-project-split__content {
        grid-column: 1;
        grid-row: 1;
        max-width: 704px;
    }

    .uq-project-split__media,
    .uq-project-split--image-right .uq-project-split__media {
        grid-column: 1;
        grid-row: 2;
        width: min(100%, var(--uq-module-media-width, 640px));
        min-height: 0;
        aspect-ratio: var(--uq-module-media-ratio, 4 / 3);
        align-self: auto;
        margin: 0 auto;
    }

    .uq-project-split__title {
        max-width: 640px;
    }

    .uq-project-split__description {
        max-width: 640px;
    }
}

@media screen and (max-width: 767px) {
    .uq-project-split {
        padding: min(var(--uq-project-split-space-top, 48px), 48px) 24px min(var(--uq-project-split-space-bottom, 48px), 48px);
    }

    .uq-project-split__layout {
        gap: 32px;
    }

    .uq-project-split__title {
        margin-bottom: 18px;
        line-height: 1.06;
    }

    .uq-project-split__description {
        font-size: 16px;
    }

    .uq-project-split__actions,
    .uq-service-feature__actions {
        margin-top: 26px;
    }

    .uq-project-split__button {
        font-size: 16px;
    }

    .uq-project-split__media {
        aspect-ratio: var(--uq-module-media-ratio, 4 / 3);
    }
}

@media screen and (max-width: 479px) {
    .uq-project-split {
        padding: min(var(--uq-project-split-space-top, 40px), 40px) 18px min(var(--uq-project-split-space-bottom, 40px), 40px);
    }

    .uq-project-split__layout {
        gap: 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-project-split__button,
    .uq-project-split__button-arrow,
    .uq-project-split__button-filled,
    .uq-service-feature__button--filled,
    .uq-service-feature__button--link,
    .uq-service-feature__button-arrow {
        transition-duration: 0.01ms !important;
    }
}
/* Split Content Gallery */
.uq-project-split__media {
    position: relative;
    display: grid;
}

.uq-project-split__slide {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: inherit;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    text-decoration: none;
    transition: opacity 0.7s ease, visibility 0.7s ease;
}

.uq-project-split__slide.is-active {
    z-index: 2;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.uq-project-split__slide:focus-visible {
    outline: 4px solid var(--uq-project-split-accent);
    outline-offset: -6px;
}

.uq-project-split__popup {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 32px;
}

.uq-project-split__popup:target {
    display: flex;
}

.uq-project-split__popup-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.76);
    cursor: zoom-out;
}

.uq-project-split__popup-content {
    position: relative;
    z-index: 2;
    display: flex;
    width: min(100%, 1152px);
    max-height: 90vh;
    align-items: center;
    justify-content: center;
}

.uq-project-split__popup-image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 90vh;
    border-radius: 10px;
    object-fit: contain;
    background: #ffffff;
}

.uq-project-split__popup-close {
    position: absolute;
    top: -16px;
    right: -16px;
    z-index: 3;
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #ffffff;
    color: #000000;
    font-size: 30px;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
}

.uq-project-split__popup-close:focus-visible {
    outline: 3px solid var(--uq-project-split-accent);
    outline-offset: 4px;
}

@media screen and (max-width: 767px) {
    .uq-project-split__popup {
        padding: 16px;
    }

    .uq-project-split__popup-close {
        top: 8px;
        right: 8px;
        width: 40px;
        height: 40px;
        font-size: 26px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-project-split__slide {
        transition-duration: 0.01ms !important;
    }
}
/* Split Content CSS autoplay fallback */
@keyframes uq-project-split-fade-two-one {
    0%, 45% { opacity: 1; visibility: visible; pointer-events: auto; }
    55%, 95% { opacity: 0; visibility: hidden; pointer-events: none; }
    100% { opacity: 1; visibility: visible; pointer-events: auto; }
}

@keyframes uq-project-split-fade-two-two {
    0%, 45% { opacity: 0; visibility: hidden; pointer-events: none; }
    55%, 95% { opacity: 1; visibility: visible; pointer-events: auto; }
    100% { opacity: 0; visibility: hidden; pointer-events: none; }
}

@keyframes uq-project-split-fade-three-one {
    0%, 28% { opacity: 1; visibility: visible; pointer-events: auto; }
    34%, 94% { opacity: 0; visibility: hidden; pointer-events: none; }
    100% { opacity: 1; visibility: visible; pointer-events: auto; }
}

@keyframes uq-project-split-fade-three-two {
    0%, 28% { opacity: 0; visibility: hidden; pointer-events: none; }
    34%, 61% { opacity: 1; visibility: visible; pointer-events: auto; }
    67%, 100% { opacity: 0; visibility: hidden; pointer-events: none; }
}

@keyframes uq-project-split-fade-three-three {
    0%, 61% { opacity: 0; visibility: hidden; pointer-events: none; }
    67%, 94% { opacity: 1; visibility: visible; pointer-events: auto; }
    100% { opacity: 0; visibility: hidden; pointer-events: none; }
}

.uq-project-split__media--two:not(.is-js-ready) .uq-project-split__slide {
    animation: 10s ease-in-out infinite;
}

.uq-project-split__media--two:not(.is-js-ready) .uq-project-split__slide:nth-child(1) {
    animation-name: uq-project-split-fade-two-one;
}

.uq-project-split__media--two:not(.is-js-ready) .uq-project-split__slide:nth-child(2) {
    animation-name: uq-project-split-fade-two-two;
}

.uq-project-split__media--three:not(.is-js-ready) .uq-project-split__slide {
    animation: 15s ease-in-out infinite;
}

.uq-project-split__media--three:not(.is-js-ready) .uq-project-split__slide:nth-child(1) {
    animation-name: uq-project-split-fade-three-one;
}

.uq-project-split__media--three:not(.is-js-ready) .uq-project-split__slide:nth-child(2) {
    animation-name: uq-project-split-fade-three-two;
}

.uq-project-split__media--three:not(.is-js-ready) .uq-project-split__slide:nth-child(3) {
    animation-name: uq-project-split-fade-three-three;
}

@media (prefers-reduced-motion: reduce) {
    .uq-project-split__media:not(.is-js-ready) .uq-project-split__slide {
        animation: none !important;
    }
}

/* Balanced 50/50 Introduction layout with a full-height cover image. */
.uq-flex-feature {
    --uq-flex-feature-columns: minmax(0, 4fr) minmax(0, 3fr);
}

.uq-flex-feature--image-right {
    --uq-flex-feature-columns: minmax(0, 3fr) minmax(0, 4fr);
}

.uq-flex-feature--no-image {
    --uq-flex-feature-columns: minmax(0, 1fr);
}

.uq-flex-feature__layout {
    display: grid;
    grid-template-columns: var(--uq-flex-feature-columns);
    align-items: stretch;
}

.uq-flex-feature__visual {
    position: relative;
    display: flex;
    width: 100%;
    min-height: 0;
    aspect-ratio: var(--uq-module-media-ratio, 4 / 3);
    max-width: none;
    min-width: 0;
    align-self: center;
    justify-self: stretch;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.uq-flex-feature__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    max-width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
    object-position: center;
}

.uq-flex-feature__content {
    justify-content: center;
}

@media screen and (max-width: 991px) {
    .uq-flex-feature {
        --uq-flex-feature-columns: 1fr;
    }

    .uq-flex-feature__visual {
        max-width: var(--uq-module-media-width, 640px);
        min-height: 0;
        aspect-ratio: var(--uq-module-media-ratio, 4 / 3);
        align-self: auto;
    }
}

@media screen and (max-width: 767px) {
    .uq-flex-feature__description,
    .uq-project-split__description {
        font-size: 16px;
        line-height: 1.5;
    }
}

/* Shared theme color for primary ACF module headings. */
.uq-flex-feature__title,
.uq-footer-cta__title,
.uq-quo-showcase__title,
.uq-home-hero__title,
.uq-roof-hero-a__title,
.uq-multi-services__title,
.uq-multi-services__content-title,
.uq-project-split__title,
.uq-service-feature__title {
    color: var(--uq-theme-primary, #104E8B) !important;
}

/* ==========================================
   ACF Split Content + Feature Cards
   Layout: split_content_+_feature_cards
   Prefix: uq-service-feature
========================================== */
.uq-service-feature,
.uq-service-feature *,
.uq-service-feature *::before,
.uq-service-feature *::after {
    box-sizing: border-box;
}

.uq-service-feature {
    --uq-service-feature-bg: #ffffff;
    --uq-service-feature-text: #000000;
    --uq-service-feature-muted: #000000b3;
    --uq-service-feature-border: rgba(0, 0, 0, 0.12);
    --uq-service-feature-container: 1200px;
    --uq-service-feature-radius: 10px;
    width: 100%;
    padding: var(--uq-service-feature-space-top, 64px) 5vw var(--uq-service-feature-space-bottom, 80px);
    overflow: hidden;
    background: var(--uq-service-feature-bg);
    color: var(--uq-service-feature-text);
    font-family: var(--uq-site-font-body);
}

.uq-service-feature__container {
    width: 100%;
    max-width: var(--uq-service-feature-container);
    margin: 0 auto;
}

.uq-service-feature__main {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 4fr);
    align-items: center;
    gap: var(--uq-module-split-gap, 80px);
    width: 100%;
}

.uq-service-feature--image-left .uq-service-feature__main {
    grid-template-columns: minmax(0, 4fr) minmax(0, 3fr);
}

.uq-service-feature--image-left .uq-service-feature__visual {
    grid-column: 1;
    grid-row: 1;
}

.uq-service-feature--image-left .uq-service-feature__content {
    grid-column: 2;
    grid-row: 1;
}

.uq-service-feature--image-right .uq-service-feature__content {
    grid-column: 1;
    grid-row: 1;
}

.uq-service-feature--image-right .uq-service-feature__visual {
    grid-column: 2;
    grid-row: 1;
}

.uq-service-feature__content {
    width: 100%;
    min-width: 0;
}

.uq-service-feature__title {
    margin: 0 0 20px;
    color: var(--uq-service-feature-text);
    font-family: var(--uq-site-font-heading);
    font-weight: 400;
    line-height: 0.98;
    letter-spacing: -0.045em;
    text-wrap: balance;
}

.uq-service-feature__description {
    margin: 0;
    color: var(--uq-service-feature-muted);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: -0.01em;
}

.uq-service-feature__description > :first-child {
    margin-top: 0;
}

.uq-service-feature__description > :last-child {
    margin-bottom: 0;
}

.uq-service-feature__visual {
    position: relative;
    display: flex;
    width: 100%;
    aspect-ratio: var(--uq-module-media-ratio, 4 / 3);
    min-width: 0;
    margin: 0;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: var(--uq-service-feature-radius);
}

.uq-service-feature__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    max-width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
    object-position: center;
}

.uq-service-feature__cards {
    display: grid;
    grid-template-columns: repeat(var(--uq-service-feature-card-columns, 3), minmax(0, 1fr));
    gap: 14px;
    width: 100%;
    margin-top: 42px;
}

.uq-service-feature__cards-title {
    display: block;
    width: 100%;
    margin: 42px 0 24px;
    color: #000000 !important;
    font-family: var(--uq-site-font-heading);
    font-size: 26px;
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.02em;
    text-align: center;
    text-decoration: none;
    text-transform: none;
}

.uq-service-feature__cards-title::before,
.uq-service-feature__cards-title::after {
    display: none;
    content: none;
}

.uq-service-feature__cards--has-heading {
    margin-top: 0;
}

.uq-service-feature__card {
    display: flex;
    min-width: 0;
    min-height: 132px;
    margin: 0;
    padding: 24px;
    flex-direction: column;
    gap: 10px;
    border: 1px solid var(--uq-service-feature-border);
    border-radius: var(--uq-service-feature-radius);
    background: var(--uq-service-feature-bg);
    color: var(--uq-service-feature-text);
    text-decoration: none;
}

.uq-service-feature__card:hover,
.uq-service-feature__card:focus {
    color: var(--uq-service-feature-text);
}

.uq-service-feature__card:focus-visible {
    outline: 3px solid var(--uq-theme-primary, #104E8B);
    outline-offset: 3px;
}

.uq-service-feature__card-heading {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 10px;
}

.uq-service-feature__card-icon {
    display: block;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    object-fit: contain;
}

.uq-service-feature__card-icon--colored {
    background: var(--uq-service-feature-icon-color, currentColor);
    -webkit-mask: var(--uq-service-feature-icon-image) center / contain no-repeat;
    mask: var(--uq-service-feature-icon-image) center / contain no-repeat;
}

.uq-service-feature__card-title {
    margin: 0;
    color: var(--uq-service-feature-text);
}

.uq-service-feature__card-description {
    margin: 0;
    color: var(--uq-module-card-description-color);
    font-family: var(--uq-site-font-body);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
}

/* The field is a WYSIWYG Editor, so the copy arrives wrapped in its own <p>.
   Same reset as .uq-service-feature__description: trim the outer margins and
   let the global `p { margin-bottom: 20px }` space any further paragraphs. */
.uq-service-feature__card-description > :first-child {
    margin-top: 0;
}

.uq-service-feature__card-description > :last-child {
    margin-bottom: 0;
}

/* The card CTA reuses .uq-service-feature__button--link for the colour, hover
   and standard arrow; only its behaviour as a flex item differs. align-self
   keeps the link (and its hit area) the width of its label instead of stretching
   across the card, and margin-top: auto lines the links up along the bottom when
   cards carry different amounts of copy. */
.uq-service-feature__card-link {
    align-self: flex-start;
    margin-top: auto;
    font-size: 14px;
}

@media screen and (max-width: 991px) {
    .uq-service-feature {
        padding-top: min(var(--uq-service-feature-space-top, 64px), 64px);
        padding-bottom: min(var(--uq-service-feature-space-bottom, 72px), 72px);
    }

    .uq-service-feature__main {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .uq-service-feature--image-left .uq-service-feature__main {
        grid-template-columns: 1fr;
    }

    .uq-service-feature--image-left .uq-service-feature__content,
    .uq-service-feature--image-left .uq-service-feature__visual,
    .uq-service-feature--image-right .uq-service-feature__content,
    .uq-service-feature--image-right .uq-service-feature__visual {
        grid-column: auto;
        grid-row: auto;
    }

    .uq-service-feature__content {
        max-width: 672px;
    }

    .uq-service-feature__visual {
        max-width: var(--uq-module-media-width, 640px);
        margin: 0 auto;
    }

    .uq-service-feature__title {
        max-width: 608px;
    }

    .uq-service-feature__cards-title {
        font-size: 26px;
    }

    .uq-service-feature__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }
}

@media screen and (max-width: 767px) {
    .uq-service-feature {
        padding-right: 24px;
        padding-left: 24px;
    }

    .uq-service-feature__main {
        gap: 32px;
    }

    .uq-service-feature__title {
        margin-bottom: 16px;
        line-height: 1.02;
    }

    .uq-service-feature__description {
        font-size: 15px;
    }

    .uq-service-feature__cards {
        margin-top: 32px;
    }

    .uq-service-feature__cards-title {
        margin-top: 32px;
        margin-bottom: 20px;
        font-size: 24px;
    }
}

@media screen and (max-width: 600px) {
    .uq-service-feature__cards {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 479px) {
    .uq-service-feature {
        padding-top: min(var(--uq-service-feature-space-top, 56px), 56px);
        padding-right: 18px;
        padding-bottom: min(var(--uq-service-feature-space-bottom, 56px), 56px);
        padding-left: 18px;
    }

    .uq-service-feature__cards-title {
        font-size: 20px;
    }

    .uq-service-feature__card {
        min-height: 0;
        padding: 20px;
    }
}
/* Project Hero Gallery flexible module */
main.uq-project-flex-page {
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
}

main.uq-project-flex-page > .uq-project-gallery-hero {
    display: block !important;
    width: 100%;
    opacity: 1 !important;
    visibility: visible !important;
}

main.uq-project-flex-page + .section {
    clear: both;
}

.uq-project-gallery-hero {
    --uq-pgh-space-top: 64px;
    --uq-pgh-space-bottom: 80px;
    --uq-pgh-tag-bg: #e5f53d;
    padding: var(--uq-pgh-space-top) 5vw var(--uq-pgh-space-bottom);
    background: #fff;
    color: #000;
}

.uq-project-gallery-hero *,
.uq-project-gallery-hero *::before,
.uq-project-gallery-hero *::after {
    box-sizing: border-box;
}

.uq-project-gallery-hero__inner {
    display: grid;
    grid-template-columns: minmax(270px, .72fr) minmax(0, 1.28fr);
    align-items: center;
    gap: clamp(48px, 6vw, 84px);
    width: min(100%, 1200px);
    margin: 0 auto;
}

.uq-project-gallery-hero__content {
    width: 100%;
    max-width: 496px;
}

.uq-project-gallery-hero--gallery-left .uq-project-gallery-hero__inner {
    grid-template-columns: minmax(0, 1.28fr) minmax(270px, .72fr);
}

.uq-project-gallery-hero--gallery-left .uq-project-gallery-hero__gallery {
    grid-column: 1;
    grid-row: 1;
}

.uq-project-gallery-hero--gallery-left .uq-project-gallery-hero__content {
    grid-column: 2;
    grid-row: 1;
}

.uq-project-gallery-hero__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 22px;
    padding: 5px 12px;
    border-radius: 999px;
    background: var(--uq-pgh-tag-bg);
    color: #000;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.25;
}

.uq-project-gallery-hero__tag-icon {
    display: block;
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.uq-project-gallery-hero__title {
    max-width: 520px;
    margin: 0;
    color: #000;
    font-size: clamp(42px, 4.15vw, 56px);
    font-weight: 500;
    letter-spacing: -.045em;
    line-height: 1.06;
}

.uq-project-gallery-hero__description {
    max-width: 470px;
    margin-top: 24px;
    color: rgba(0, 0, 0, .68);
    font-size: 17px;
    font-weight: 400;
    line-height: 1.55;
}

.uq-project-gallery-hero__description > :first-child { margin-top: 0; }
.uq-project-gallery-hero__description > :last-child { margin-bottom: 0; }

.uq-project-gallery-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.uq-project-gallery-hero__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 24px;
    border: 1px solid;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.uq-project-gallery-hero__button:hover {
    transform: translateY(-1px);
    opacity: 0.88;
    text-decoration: none;
}

.uq-project-gallery-hero__button:focus-visible {
    outline: 2px solid var(--uq-theme-primary, #104E8B);
    outline-offset: 3px;
}

.uq-project-gallery-hero__button--primary {
    border-color: var(--uq-pgh-primary-border);
    background: var(--uq-pgh-primary-bg);
    color: var(--uq-pgh-primary-text);
}

.uq-project-gallery-hero__button--primary:hover,
.uq-project-gallery-hero__button--primary:focus {
    border-color: var(--uq-pgh-primary-border);
    background: var(--uq-pgh-primary-bg);
    color: var(--uq-pgh-primary-text);
}

.uq-project-gallery-hero__button--secondary {
    border-color: var(--uq-pgh-secondary-border);
    background: var(--uq-pgh-secondary-bg);
    color: var(--uq-pgh-secondary-text);
}

.uq-project-gallery-hero__button--secondary:hover,
.uq-project-gallery-hero__button--secondary:focus {
    border-color: var(--uq-pgh-secondary-border);
    background: var(--uq-pgh-secondary-bg);
    color: var(--uq-pgh-secondary-text);
}

.uq-project-gallery-hero__gallery {
    position: relative;
    min-width: 0;
    padding-top: 56px;
}

.uq-project-gallery-hero__controls {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    gap: 10px;
}

.uq-project-gallery-hero__controls[hidden] {
    display: none;
}

.uq-project-gallery-hero__control {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid #104E8B;
    border-radius: 50%;
    background: #104E8B;
    color: #fff;
    cursor: pointer;
}

.uq-project-gallery-hero__control svg,
.uq-project-gallery-lightbox__control svg {
    display: block;
    width: 12px;
    height: 12px;
}

.uq-project-gallery-hero__control:disabled {
    border-color: #e2e2e2;
    background: #fff;
    color: #c6c6c6;
    cursor: default;
}

.uq-project-gallery-hero__main {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 10px;
    background: #f3f2ef;
    cursor: zoom-in;
}

.uq-project-gallery-hero__main {
    aspect-ratio: 16 / 8.6;
}

.uq-project-gallery-hero__main img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.uq-project-gallery-hero.is-ready .uq-project-gallery-hero__main img {
    opacity: 1;
}

.uq-project-gallery-hero.is-changing .uq-project-gallery-hero__main img {
    opacity: .5;
}

.uq-project-gallery-hero__main img {
    transition: opacity .18s ease;
}

.uq-project-gallery-hero__main:focus-visible,
.uq-project-gallery-hero__control:focus-visible,
.uq-project-gallery-lightbox button:focus-visible {
    outline: 3px solid #1b62d1;
    outline-offset: 3px;
}

body.uq-project-gallery-lightbox-open {
    overflow: hidden;
}

.uq-project-gallery-lightbox[hidden] {
    display: none;
}

.uq-project-gallery-lightbox {
    position: fixed;
    z-index: 2147483647;
    inset: 0;
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) 56px;
    align-items: center;
    gap: 24px;
    padding: 72px 36px 36px;
    background: rgba(0, 0, 0, .92);
}

.uq-project-gallery-lightbox__figure {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: calc(100vh - 108px);
    margin: 0;
}

.uq-project-gallery-lightbox__image {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 10px;
}

.uq-project-gallery-lightbox__close,
.uq-project-gallery-lightbox__control {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 50%;
    background: #fff;
    color: #000;
    cursor: pointer;
}

.uq-project-gallery-lightbox__close {
    position: absolute;
    z-index: 2;
    top: clamp(88px, 14vh, 150px);
    right: 24px;
    font-size: 32px;
    font-weight: 300;
    line-height: 1;
}

.uq-project-gallery-lightbox__close::before {
    content: none;
}

.uq-project-gallery-lightbox__control:disabled {
    opacity: .25;
    cursor: default;
}

@media (max-width: 1050px) {
    .uq-project-gallery-hero__inner {
        gap: 42px;
    }

    .uq-project-gallery-hero__title {
        font-size: clamp(38px, 4.4vw, 48px);
    }
}

@media (max-width: 860px) {
    .uq-project-gallery-hero__inner,
    .uq-project-gallery-hero--gallery-left .uq-project-gallery-hero__inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 42px;
    }

    .uq-project-gallery-hero--gallery-left .uq-project-gallery-hero__content,
    .uq-project-gallery-hero--gallery-left .uq-project-gallery-hero__gallery {
        grid-column: auto;
        grid-row: auto;
    }

    .uq-project-gallery-hero--gallery-left .uq-project-gallery-hero__content {
        order: 1;
    }

    .uq-project-gallery-hero--gallery-left .uq-project-gallery-hero__gallery {
        order: 2;
    }

    .uq-project-gallery-hero__content {
        max-width: 620px;
    }
}

@media (max-width: 767px) {
    .uq-project-gallery-hero {
        padding: min(var(--uq-pgh-space-top), 48px) 20px min(var(--uq-pgh-space-bottom), 56px);
    }

    .uq-project-gallery-hero__title {
        font-size: 40px;
    }

    .uq-project-gallery-hero__gallery {
        padding-top: 50px;
    }

    .uq-project-gallery-hero__control {
        width: 40px;
        height: 40px;
    }

    .uq-project-gallery-lightbox {
        grid-template-columns: 44px minmax(0, 1fr) 44px;
        gap: 8px;
        padding: 68px 10px 20px;
    }

    .uq-project-gallery-lightbox__figure {
        height: calc(100vh - 88px);
    }

    .uq-project-gallery-lightbox__close,
    .uq-project-gallery-lightbox__control {
        width: 42px;
        height: 42px;
    }
}

@media (max-width: 479px) {
    .uq-project-gallery-hero__inner {
        gap: 32px;
    }

    .uq-project-gallery-hero__title {
        font-size: 34px;
    }

    .uq-project-gallery-hero__description {
        font-size: 16px;
    }

    .uq-project-gallery-hero__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .uq-project-gallery-hero__button {
        width: 100%;
    }

    .uq-project-gallery-lightbox {
        grid-template-columns: 38px minmax(0, 1fr) 38px;
        gap: 4px;
        padding-inline: 4px;
    }

    .uq-project-gallery-lightbox__control {
        width: 36px;
        height: 36px;
    }
}

/* =========================================================
   Interactive Features
========================================================= */
.uq-interactive-features,
.uq-interactive-features * {
    box-sizing: border-box;
}

.uq-interactive-features {
    --uq-if-section-bg: #ebfff4;
    --uq-if-text: #000000;
    --uq-if-muted: rgba(0, 0, 0, 0.7);
    --uq-if-line: rgba(0, 0, 0, 0.12);
    --uq-if-accent: #1eac5c;
    --uq-if-space-top: 64px;
    --uq-if-space-bottom: 128px;
    --uq-if-margin-top: 0px;
    --uq-if-margin-bottom: 0px;
    width: 100%;
    margin: var(--uq-if-margin-top) 0 var(--uq-if-margin-bottom);
    padding: var(--uq-if-space-top) 5vw var(--uq-if-space-bottom);
    overflow: hidden;
    background: var(--uq-if-section-bg);
    color: var(--uq-if-text);
    font-family: var(--uq-site-font-body, Inter, Arial, sans-serif);
}

.uq-interactive-features__container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.uq-interactive-features__layout {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 3fr);
    grid-template-areas:
        "visual title"
        "visual tabs";
    grid-template-rows: auto 1fr;
    column-gap: var(--uq-module-split-gap, 80px);
    align-items: stretch;
}

.uq-interactive-features__title {
    grid-area: title;
    width: 100%;
    max-width: 476px;
    margin: 0 0 32px auto;
    color: var(--uq-theme-primary, #104E8B) !important;
    font-family: var(--uq-site-font-heading, inherit);
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.uq-interactive-features__tabs {
    grid-area: tabs;
    width: 100%;
    max-width: 476px;
    margin-left: auto;
}

@media (min-width: 992px) {
    .uq-interactive-features--image-right .uq-interactive-features__layout {
        grid-template-columns: minmax(0, 3fr) minmax(0, 4fr);
        grid-template-areas:
            "title visual"
            "tabs visual";
    }

    .uq-interactive-features--image-right .uq-interactive-features__title {
        margin-right: auto;
        margin-left: 0;
    }

    .uq-interactive-features--image-right .uq-interactive-features__tabs {
        margin-right: auto;
        margin-left: 0;
    }
}

/* Holds the tab button plus its link. The progress rule below is absolute
   against this, so the divider sits under the whole item, link included. */
.uq-interactive-features__tab-item {
    position: relative;
    padding-bottom: 24px;
}

/* Child selector on purpose: without the wrapper in the markup these overrides
   must not apply, or the absolute divider would escape to <body>. Keeps this
   stylesheet safe to deploy on its own. */
.uq-interactive-features__tab-item > .uq-interactive-features__tab {
    position: static;
    padding-bottom: 0;
    overflow: visible;
}

.uq-interactive-features__tab {
    position: relative;
    display: block;
    width: 100%;
    padding: 24px 0;
    overflow: hidden;
    border: 0;
    background: transparent;
    color: var(--uq-if-text);
    font: inherit;
    text-align: left;
    cursor: pointer;
    appearance: none;
}

.uq-interactive-features__tab-heading {
    display: flex;
    gap: 8px;
    align-items: center;
    margin: 8px 0;
    font-family: var(--uq-site-font-heading, inherit);
    font-size: 24px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.uq-interactive-features__icon {
    display: inline-block;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    background-color: var(--uq-if-icon-color, var(--uq-if-accent));
    -webkit-mask: var(--uq-if-icon-image) center / contain no-repeat;
    mask: var(--uq-if-icon-image) center / contain no-repeat;
}

.uq-interactive-features__tab-description {
    display: block;
    max-height: 0;
    overflow: hidden;
    color: var(--uq-if-muted);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    opacity: 0;
    transition: max-height 380ms ease, opacity 240ms ease;
}

.uq-interactive-features__tab.is-active .uq-interactive-features__tab-description {
    max-height: 160px;
    opacity: 1;
}

.uq-interactive-features__tab-link {
    max-height: 0;
    margin-top: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition: max-height 380ms ease, margin-top 380ms ease, opacity 240ms ease, visibility 380ms;
}

/* The shared .uq-flex-feature__link makes this inline-flex, and an inline-level
   box keeps its line box even when it collapses to max-height 0 — so every
   inactive item that has a link sat one line-height (22px) taller than the items
   without one, and the rows stopped matching. Block-level flex leaves nothing
   behind; fit-content keeps it shrink-wrapped instead of spanning the column.
   Two classes because flexible-content.css loads after this file. */
.uq-interactive-features .uq-interactive-features__tab-link {
    display: flex;
    width: fit-content;
}

.uq-interactive-features__tab.is-active + .uq-interactive-features__tab-link {
    max-height: 48px;
    margin-top: 14px;
    opacity: 1;
    visibility: visible;
}

.uq-interactive-features__progress {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    height: 1px;
    overflow: hidden;
    background: var(--uq-if-line);
}

.uq-interactive-features__progress-fill {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--uq-if-icon-color, var(--uq-if-accent));
    transform: scaleX(0);
    transform-origin: left center;
}

.uq-interactive-features__tab:focus-visible {
    outline: 2px solid var(--uq-if-accent);
    outline-offset: 3px;
}

.uq-interactive-features__visual {
    grid-area: visual;
    position: relative;
    width: 100%;
    min-height: 0;
    aspect-ratio: var(--uq-module-media-ratio, 4 / 3);
    align-self: center;
    overflow: hidden;
    border-radius: 16px;
    background: transparent;
}

.uq-interactive-features__panel {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: clamp(24px, 3vw, 36px) clamp(32px, 4vw, 48px);
    overflow: hidden;
    border-radius: inherit;
    background: var(--uq-if-image-area-bg, #0d4c2c);
    opacity: 0;
    visibility: hidden;
    transition: opacity 350ms ease, visibility 350ms ease;
}

.uq-interactive-features__panel.is-active {
    opacity: 1;
    visibility: visible;
}

.uq-interactive-features__panel[hidden] {
    display: flex;
}

.uq-interactive-features__panel-link {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    border-radius: 10px;
    color: inherit;
    text-decoration: none;
}

.uq-interactive-features__panel-link:focus-visible {
    outline: 2px solid var(--uq-if-accent);
    outline-offset: 3px;
}

.uq-interactive-features__image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    border-radius: 10px;
    object-fit: cover;
    object-position: center;
}

@media (max-width: 991px) {
    .uq-interactive-features {
        padding-top: min(var(--uq-if-space-top), 64px);
        padding-bottom: min(var(--uq-if-space-bottom), 80px);
    }

    .uq-interactive-features__layout {
        grid-template-columns: 1fr;
        grid-template-areas:
            "title"
            "visual"
            "tabs";
        grid-template-rows: auto;
        row-gap: 32px;
    }

    .uq-interactive-features__title {
        max-width: 576px;
        margin: 0;
    }

    .uq-interactive-features__visual {
        max-width: var(--uq-module-media-width, 640px);
        min-height: 0;
        aspect-ratio: var(--uq-module-media-ratio, 4 / 3);
        margin: 0 auto;
    }

    .uq-interactive-features__tabs {
        max-width: none;
        margin-left: 0;
    }
}

@media (max-width: 767px) {
    .uq-interactive-features {
        padding-right: 24px;
        padding-left: 24px;
    }

    .uq-interactive-features__layout {
        row-gap: 24px;
    }

    .uq-interactive-features__title {
        line-height: 1.03;
    }

    .uq-interactive-features__tab-item {
        padding-bottom: 20px;
    }

    .uq-interactive-features__tab {
        padding: 20px 0;
    }

    .uq-interactive-features__tab-item > .uq-interactive-features__tab {
        padding-bottom: 0;
    }

    .uq-interactive-features__tab-heading {
        font-size: 20px;
    }

    .uq-interactive-features__panel {
        padding: clamp(15px, 3.75vw, 24px) clamp(20px, 5vw, 32px);
    }
}

@media (max-width: 479px) {
    .uq-interactive-features {
        padding-right: 18px;
        padding-left: 18px;
    }

    .uq-interactive-features__visual {
        border-radius: 10px;
    }

    .uq-interactive-features__tab-description {
        font-size: 15px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-interactive-features *,
    .uq-interactive-features *::before,
    .uq-interactive-features *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
}

/* Shared typography for primary copy directly associated with module headings. */
.uq-flex-page :is(
    .uq-article-end__description,
    .uq-how-it-works__description,
    .uq-service-comparison__description,
    .uq-quo-showcase__description,
    .uq-home-hero__description,
    .uq-roof-hero-a__description,
    .uq-multi-services__intro,
    .uq-filterable-cards__intro,
    .uq-project-split__description,
    .uq-flex-feature__description,
    .uq-service-feature__description,
    .uq-service-gallery-hero__description,
    .uq-project-gallery-hero__description,
    .uq-feature-showcase__description,
    .uq-reviews__description
) {
    font-size: var(--uq-module-description-size, 16px);
    font-weight: var(--uq-module-description-weight, 400);
    line-height: var(--uq-module-description-line-height, 1.4);
}

.uq-flex-page :is(
    .uq-article-end__description,
    .uq-how-it-works__description,
    .uq-service-comparison__description,
    .uq-quo-showcase__description,
    .uq-home-hero__description,
    .uq-roof-hero-a__description,
    .uq-project-split__description,
    .uq-flex-feature__description,
    .uq-service-feature__description,
    .uq-service-gallery-hero__description,
    .uq-project-gallery-hero__description,
    .uq-feature-showcase__description,
    .uq-reviews__description
) :where(p, span, li, a, strong, em) {
    font-size: inherit !important;
    line-height: inherit !important;
}

/* Give centered lead copy a longer, still-readable line without changing title widths. */
.uq-flex-page :is(
    .uq-how-it-works__description,
    .uq-service-comparison__description,
    .uq-home-hero__description,
    .uq-filterable-cards__intro
) {
    width: 100%;
    max-width: min(100%, var(--uq-module-description-centered-width, 800px));
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.uq-flex-page :is(
    .uq-how-it-works__header,
    .uq-service-comparison__header,
    .uq-filterable-cards__header
) {
    width: 100%;
    max-width: min(100%, calc(var(--uq-module-description-centered-width, 800px) + 40px));
}

.uq-flex-page .uq-filterable-cards__title {
    max-width: 760px;
}

@media screen and (max-width: 767px) {
    .uq-flex-page :is(
        .uq-article-end__description,
        .uq-how-it-works__description,
        .uq-service-comparison__description,
        .uq-quo-showcase__description,
        .uq-home-hero__description,
        .uq-roof-hero-a__description,
        .uq-multi-services__intro,
        .uq-filterable-cards__intro,
        .uq-project-split__description,
        .uq-flex-feature__description,
        .uq-service-feature__description,
        .uq-service-gallery-hero__description,
        .uq-project-gallery-hero__description,
        .uq-feature-showcase__description,
        .uq-reviews__description
    ) {
        font-size: var(--uq-module-description-size-mobile, 15px);
    }
}

/* ==========================================
   ACF Feature Showcase
   Layout: feature_showcase
   Prefix: uq-feature-showcase
========================================== */
.uq-feature-showcase,
.uq-feature-showcase *,
.uq-feature-showcase *::before,
.uq-feature-showcase *::after {
    box-sizing: border-box;
}

.uq-feature-showcase {
    --uq-fs-panel: var(--uq-theme-primary, #104E8B);
    --uq-fs-text: #000000;
    --uq-fs-muted: rgba(0, 0, 0, 0.7);
    --uq-fs-border: rgba(0, 0, 0, 0.12);
    --uq-fs-radius: 10px;
    --uq-fs-container: 1200px;
    width: 100%;
    padding: var(--uq-fs-space-top, 64px) 5vw var(--uq-fs-space-bottom, 80px);
    overflow: hidden;
    background: #ffffff;
    color: var(--uq-fs-text);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-feature-showcase__container {
    width: 100%;
    max-width: var(--uq-fs-container);
    margin: 0 auto;
}

.uq-feature-showcase__header {
    width: 100%;
    max-width: 672px;
    margin: 0 0 48px;
}

.uq-feature-showcase__eyebrow {
    display: inline-flex;
    width: fit-content;
    margin: 0 0 12px;
    padding: 4px 12px;
    align-items: center;
    gap: 7px;
    border-radius: 999px;
    background: var(--uq-theme-accent, #FDBB2F);
    color: #000000;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.uq-feature-showcase__eyebrow-icon {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    object-fit: contain;
    object-position: center;
    filter: brightness(0) saturate(100%);
}

.uq-feature-showcase.uq-feature-showcase .uq-feature-showcase__title {
    margin: 0 0 16px;
    color: var(--uq-theme-primary, #104E8B);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.02em;
    text-align: left;
    text-wrap: balance;
}

/* Same description scale as every other module, with or without the .uq-flex-page wrapper. */
.uq-feature-showcase__description {
    margin: 0;
    color: var(--uq-fs-muted);
    font-size: var(--uq-module-description-size, 16px);
    font-weight: var(--uq-module-description-weight, 400);
    line-height: var(--uq-module-description-line-height, 1.4);
    text-align: left;
}

.uq-feature-showcase__description > :first-child {
    margin-top: 0;
}

.uq-feature-showcase__description > :last-child {
    margin-bottom: 0;
}

/* Large colour panel holding the product screenshot. */
.uq-feature-showcase__visual {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1200 / 540;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border-radius: var(--uq-fs-radius);
    background: transparent;
}

.uq-feature-showcase__image {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
    object-position: left top;
}

.uq-feature-showcase__cards {
    display: grid;
    grid-template-columns: repeat(var(--uq-fs-columns, 3), minmax(0, 1fr));
    width: 100%;
    margin-top: 5rem;
    gap: 16px;
}

.uq-feature-showcase__card {
    display: flex;
    min-width: 0;
    min-height: 132px;
    margin: 0;
    padding: 24px;
    flex-direction: column;
    gap: 10px;
    border: 1px solid var(--uq-fs-border);
    border-radius: var(--uq-fs-radius);
    background: #ffffff;
}

.uq-feature-showcase__card-heading {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 10px;
}

.uq-feature-showcase__card {
    color: var(--uq-fs-text);
    text-decoration: none;
}

a.uq-feature-showcase__card:hover,
a.uq-feature-showcase__card:focus {
    color: var(--uq-fs-text);
}

a.uq-feature-showcase__card:focus-visible {
    outline: 3px solid var(--uq-theme-primary, #104E8B);
    outline-offset: 3px;
}

.uq-feature-showcase__card-icon {
    display: block;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    object-fit: contain;
}

/* Recolour a single-colour SVG icon with the per-card Icon Color field. */
.uq-feature-showcase__card-icon--colored {
    background: var(--uq-fs-icon-color, var(--uq-theme-primary, #104E8B));
    -webkit-mask: var(--uq-fs-icon-image) center / contain no-repeat;
    mask: var(--uq-fs-icon-image) center / contain no-repeat;
}

.uq-feature-showcase.uq-feature-showcase .uq-feature-showcase__card-title {
    margin: 0;
    padding: 0;
    color: var(--uq-fs-text);
    text-align: left;
    text-transform: none;
}

.uq-feature-showcase__card-title::before,
.uq-feature-showcase__card-title::after {
    display: none;
    content: none;
}

.uq-feature-showcase__card-description {
    margin: 0;
    color: var(--uq-module-card-description-color);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    overflow-wrap: break-word;
}

@media (prefers-reduced-motion: reduce) {
    .uq-feature-showcase__card {
        transition: none;
    }

    a.uq-feature-showcase__card:hover,
    a.uq-feature-showcase__card:focus {
        transform: none;
    }
}

@media screen and (max-width: 991px) {
    .uq-feature-showcase__header {
        margin-bottom: 36px;
    }

    .uq-feature-showcase__visual {
        aspect-ratio: 1200 / 620;
        padding: 0;
    }

    .uq-feature-showcase__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 767px) {
    .uq-feature-showcase {
        padding-right: 24px;
        padding-left: 24px;
    }

    .uq-feature-showcase__description {
        font-size: var(--uq-module-description-size-mobile, 15px);
    }

    .uq-feature-showcase__header {
        margin-bottom: 28px;
    }

    .uq-feature-showcase__visual {
        aspect-ratio: 4 / 3;
        padding: 0;
    }

    .uq-feature-showcase__cards {
        grid-template-columns: minmax(0, 1fr);
    }

    .uq-feature-showcase__card {
        padding: 20px;
    }
}

@media screen and (max-width: 479px) {
    .uq-feature-showcase {
        padding-right: 18px;
        padding-left: 18px;
    }

    .uq-feature-showcase__visual {
        padding: 0;
    }
}

/* ==========================================
   ACF The Process
   Layout: the_process
   Prefix: uq-process
========================================== */
.uq-process,
.uq-process *,
.uq-process *::before,
.uq-process *::after {
    box-sizing: border-box;
}

.uq-process {
    --uq-process-surface: #f7f6f5;
    --uq-process-text: #000000;
    --uq-process-muted: rgba(0, 0, 0, 0.7);
    --uq-process-card-radius: 16px;
    --uq-process-media-radius: 12px;
    --uq-process-container: 1200px;
    --uq-process-media-ratio: 16 / 9;
    width: 100%;
    margin-top: var(--uq-process-margin-top, 0);
    margin-bottom: var(--uq-process-margin-bottom, 0);
    padding: var(--uq-process-space-top, 64px) 5vw var(--uq-process-space-bottom, 80px);
    overflow: hidden;
    background: #ffffff;
    color: var(--uq-process-text);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-process__container {
    width: 100%;
    max-width: var(--uq-process-container);
    margin: 0 auto;
}

.uq-process__header {
    display: flex;
    width: 100%;
    margin-bottom: 28px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
}

.uq-process__heading {
    width: 100%;
    max-width: 760px;
}

.uq-process__eyebrow {
    display: inline-flex;
    width: fit-content;
    margin: 0 0 12px;
    padding: 4px 12px;
    align-items: center;
    gap: 7px;
    border-radius: 999px;
    background: var(--uq-theme-accent, #FDBB2F);
    color: #000000;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.uq-process__eyebrow-icon {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    object-fit: contain;
    object-position: center;
    filter: brightness(0) saturate(100%);
}

.uq-process.uq-process .uq-process__section-title {
    margin: 0;
    padding: 0;
    color: var(--uq-theme-primary, #104E8B);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    text-align: left;
    text-transform: none;
    text-wrap: balance;
}

/* The module keeps its original scale only for Default. Explicit Display/H1-H6
   choices use the shared uq-heading-* typography, like the other modules. */
.uq-process__section-title:not([class*="uq-heading-"]) {
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.uq-process__section-title::before,
.uq-process__section-title::after {
    display: none;
    content: none;
}

.uq-process__section-description {
    max-width: 680px;
    margin-top: 14px;
    color: var(--uq-process-muted);
    font-size: var(--uq-module-description-size, 16px);
    font-weight: 400;
    line-height: var(--uq-module-description-line-height, 1.5);
}

.uq-process__section-description > :first-child {
    margin-top: 0;
}

.uq-process__section-description > :last-child {
    margin-bottom: 0;
}

.uq-process__controls {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.uq-process__slider {
    position: relative;
    width: 100%;
}

.uq-process__viewport {
    width: 100%;
    overflow: hidden;
    border-radius: var(--uq-process-card-radius);
}

.uq-process__track {
    display: flex;
    width: 100%;
    align-items: stretch;
    transition: transform 420ms cubic-bezier(0.4, 0, 0.2, 1);
}

.uq-process__slide {
    display: grid;
    width: 100%;
    flex: 0 0 100%;
    max-width: 100%;
    padding: 16px;
    grid-template-columns: minmax(0, 36fr) minmax(0, 64fr);
    align-items: center;
    /* Slides share the tallest height; keep the slack at the end, not between rows. */
    align-content: start;
    gap: 36px;
    border-radius: var(--uq-process-card-radius);
    background: var(--uq-process-surface);
}

/* Mirror the track too, so the media keeps the wide column on both sides. */
.uq-process__slide--image-left {
    grid-template-columns: minmax(0, 64fr) minmax(0, 36fr);
}

.uq-process__slide--image-left .uq-process__content {
    order: 2;
}

.uq-process__slide--image-left .uq-process__media {
    order: 1;
}

.uq-process__content {
    min-width: 0;
}

/* Keep the copy at its original 24px inset while the media uses the same
   16px surround as the Filterable Cards warranty visuals. */
.uq-process__slide--image-right .uq-process__content {
    padding: 8px 0 8px 8px;
}

.uq-process__slide--image-left .uq-process__content {
    padding: 8px 8px 8px 0;
}

/* Layered accent badge for the step number. */
.uq-process__number {
    position: relative;
    display: inline-flex;
    width: 44px;
    height: 44px;
    margin: 0 0 22px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--uq-theme-accent, #FDBB2F);
    color: #000000;
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.01em;
}

.uq-process__number::before,
.uq-process__number::after {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: var(--uq-theme-accent, #FDBB2F);
    content: '';
}

.uq-process__number::before {
    z-index: -1;
    opacity: 0.4;
    transform: translate(5px, 5px);
}

.uq-process__number::after {
    z-index: -2;
    opacity: 0.18;
    transform: translate(10px, 10px);
}

.uq-process.uq-process .uq-process__title {
    margin: 0 0 14px;
    padding: 0;
    color: var(--uq-process-text);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-size: clamp(24px, 2.4vw, 32px);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.025em;
    text-align: left;
    text-transform: none;
    text-wrap: balance;
}

.uq-process__title::before,
.uq-process__title::after {
    display: none;
    content: none;
}

.uq-process__description {
    margin: 0;
    color: var(--uq-process-muted);
    font-size: var(--uq-module-description-size, 16px);
    font-weight: var(--uq-module-description-weight, 400);
    line-height: var(--uq-module-description-line-height, 1.4);
    text-align: left;
}

.uq-process__description p {
    margin: 0;
    overflow-wrap: break-word;
}

.uq-process__actions {
    display: flex;
    margin-top: 24px;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
}

/* Rectangular media: the ratio is fixed, so copy length never resizes it. */
.uq-process__media {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
    aspect-ratio: var(--uq-process-media-ratio, 16 / 9);
    margin: 0;
    overflow: hidden;
    border-radius: var(--uq-process-media-radius);
    background: #e9e8e5;
}

.uq-process__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.uq-process__arrow {
    display: inline-flex;
    width: 44px;
    height: 44px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: var(--uq-theme-primary, #104E8B);
    color: #ffffff;
    cursor: pointer;
    transition: opacity 180ms ease, background-color 180ms ease;
}

.uq-process__arrow svg {
    display: block;
    width: 14px;
    height: 14px;
}

.uq-process__arrow:hover {
    background: #0d3f71;
}

.uq-process__arrow:focus-visible {
    outline: 2px solid var(--uq-theme-primary, #104E8B);
    outline-offset: 3px;
}

.uq-process__arrow[disabled] {
    cursor: default;
    opacity: 0.35;
}

.uq-process__dots {
    display: flex;
    min-height: 10px;
    margin-top: 24px;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.uq-process__dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #cbd6e1;
    cursor: pointer;
    transition: width 180ms ease, background-color 180ms ease;
}

.uq-process__dot.is-active {
    width: 22px;
    background: var(--uq-theme-primary, #104E8B);
}

.uq-process__dot:focus-visible {
    outline: 2px solid var(--uq-theme-primary, #104E8B);
    outline-offset: 3px;
}

.uq-process__status {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

@media screen and (max-width: 991px) {
    /* Keep the media wider than the copy, but not so wide the panel grows tall here. */
    .uq-process__slide {
        padding: 16px;
        grid-template-columns: minmax(0, 42fr) minmax(0, 58fr);
        gap: 28px;
    }

    .uq-process__slide--image-left {
        grid-template-columns: minmax(0, 58fr) minmax(0, 42fr);
    }

    .uq-process__slide--image-right .uq-process__content {
        padding: 6px 0 6px 6px;
    }

    .uq-process__slide--image-left .uq-process__content {
        padding: 6px 6px 6px 0;
    }
}

@media screen and (max-width: 767px) {
    .uq-process {
        padding-right: 24px;
        padding-left: 24px;
    }

    .uq-process__header {
        margin-bottom: 22px;
        align-items: flex-end;
        gap: 18px;
    }

    .uq-process__controls {
        padding-bottom: 2px;
    }

    .uq-process__slide,
    .uq-process__slide--image-left {
        padding: 28px 16px 16px;
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    /* Content always reads first on mobile, whatever the desktop side is. */
    .uq-process__slide .uq-process__content,
    .uq-process__slide--image-left .uq-process__content {
        order: 1;
        padding: 0 8px;
    }

    .uq-process__slide .uq-process__media,
    .uq-process__slide--image-left .uq-process__media {
        order: 2;
    }

    .uq-process__dots {
        margin-top: 18px;
    }
}

@media screen and (max-width: 479px) {
    .uq-process {
        padding-right: 18px;
        padding-left: 18px;
    }

    .uq-process__slide,
    .uq-process__slide--image-left {
        padding: 22px 16px 16px;
    }

    .uq-process__slide .uq-process__content,
    .uq-process__slide--image-left .uq-process__content {
        padding-right: 2px;
        padding-left: 2px;
    }

    .uq-process__header {
        flex-wrap: wrap;
        align-items: center;
    }

    .uq-process__heading {
        flex: 0 0 100%;
    }

    .uq-process__controls {
        margin-left: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-process__track,
    .uq-process__arrow,
    .uq-process__dot {
        transition: none;
    }
}

/* ==========================================
   ACF Customer Reviews
   Layout: customer_reviews
   Prefix: uq-reviews
========================================== */
.uq-reviews,
.uq-reviews *,
.uq-reviews *::before,
.uq-reviews *::after {
    box-sizing: border-box;
}

.uq-reviews {
    /* Every colour below is overridden inline by its ACF field when one is set. */
    --uq-rv-section-bg: #ffffff;
    --uq-rv-title: var(--uq-theme-primary, #104E8B);
    --uq-rv-description: rgba(0, 0, 0, 0.7);
    --uq-rv-card-bg: #f4f8fc;
    --uq-rv-card-border: rgba(16, 78, 139, 0.12);
    --uq-rv-review-text: #17202b;
    --uq-rv-name: #000000;
    --uq-rv-meta: #5f6873;
    --uq-rv-accent: var(--uq-theme-primary, #104E8B);
    --uq-rv-star: var(--uq-theme-accent, #FDBB2F);
    --uq-rv-arrow-bg: var(--uq-theme-primary, #104E8B);
    --uq-rv-arrow-icon: #ffffff;
    --uq-rv-platform-bg: #ffffff;
    --uq-rv-platform-border: var(--uq-theme-border, #e5e5e5);
    --uq-rv-rating-card-bg: var(--uq-rv-platform-bg);
    --uq-rv-rating-card-border: var(--uq-rv-platform-border);
    --uq-rv-platform-title: #000000;
    --uq-rv-platform-text: rgba(0, 0, 0, 0.7);
    --uq-rv-radius: 12px;
    --uq-rv-gap: 16px;
    --uq-rv-visible: 3.4;
    width: 100%;
    margin-top: var(--uq-rv-margin-top, 0);
    margin-bottom: var(--uq-rv-margin-bottom, 0);
    padding: var(--uq-rv-space-top, 64px) 5vw var(--uq-rv-space-bottom, 80px);
    overflow: hidden;
    background: var(--uq-rv-section-bg);
    color: var(--uq-rv-review-text);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-reviews__container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.uq-reviews__header {
    display: flex;
    margin: 0 0 32px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.uq-reviews__heading {
    min-width: 0;
    max-width: 760px;
}

/* Same eyebrow component used by the other modules. */
.uq-reviews__eyebrow {
    display: inline-flex;
    width: fit-content;
    margin: 0 0 12px;
    padding: 4px 12px;
    align-items: center;
    gap: 7px;
    border-radius: 999px;
    background: var(--uq-theme-accent, #FDBB2F);
    color: #000000;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.uq-reviews__eyebrow-icon {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    object-fit: contain;
    object-position: center;
    filter: brightness(0) saturate(100%);
}

/*
 * Single class on purpose: the shared .uq-heading-* scale added by Heading Style is
 * (0,2,0) and must be able to win. Defaults mirror .uq-heading-h2.
 */
.uq-reviews__title {
    margin: 0;
    padding: 0;
    color: var(--uq-rv-title);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.02em;
    text-align: left;
    text-transform: none;
    text-wrap: balance;
}

.uq-reviews__title::before,
.uq-reviews__title::after {
    display: none;
    content: none;
}

.uq-reviews__description {
    margin: 12px 0 0;
    color: var(--uq-rv-description);
    font-size: var(--uq-module-description-size, 16px);
    font-weight: var(--uq-module-description-weight, 400);
    line-height: var(--uq-module-description-line-height, 1.4);
    text-align: left;
}

.uq-reviews__description p {
    margin: 0;
}

.uq-reviews__description p + p {
    margin-top: 10px;
}

/* Arrows sit top-right of the section, as in the reference. */
.uq-reviews__nav {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 10px;
}

.uq-reviews__arrow {
    display: inline-flex;
    width: 44px;
    height: 44px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: var(--uq-rv-arrow-bg);
    color: var(--uq-rv-arrow-icon);
    cursor: pointer;
    transition: opacity 180ms ease, filter 180ms ease;
}

.uq-reviews__arrow svg {
    display: block;
    width: 14px;
    height: 14px;
}

.uq-reviews__arrow:hover {
    filter: brightness(0.9);
}

.uq-reviews__arrow:focus-visible {
    outline: 2px solid var(--uq-rv-accent);
    outline-offset: 3px;
}

.uq-reviews__arrow[disabled] {
    cursor: default;
    opacity: 0.35;
}

.uq-reviews--static .uq-reviews__nav {
    display: none;
}

/* Carousel */
.uq-reviews__carousel {
    width: 100%;
}

.uq-reviews__viewport {
    width: 100%;
    overflow: hidden;
}

.uq-reviews__track {
    display: flex;
    width: 100%;
    align-items: stretch;
    gap: var(--uq-rv-gap);
    transition: transform 420ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* Fractional basis leaves the next card peeking, signalling there is more. */
.uq-reviews__card {
    display: flex;
    min-width: 0;
    margin: 0;
    padding: 26px 28px;
    flex: 0 0 calc((100% - (var(--uq-rv-gap) * (var(--uq-rv-visible) - 1))) / var(--uq-rv-visible));
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    border: 1px solid transparent;
    border-radius: var(--uq-rv-radius);
    background: var(--uq-rv-card-bg);
    color: var(--uq-rv-review-text);
    text-align: left;
}

.uq-reviews__quote {
    display: block;
    color: var(--uq-rv-accent);
}

.uq-reviews__quote svg {
    display: block;
    width: 26px;
    height: 20px;
    fill: currentColor;
}

.uq-reviews__stars {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.uq-reviews__star {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    fill: rgba(0, 0, 0, 0.16);
}

.uq-reviews__star.is-filled {
    fill: var(--uq-rv-star);
}

/* Clamp keeps one long review from stretching the whole row. */
.uq-reviews__text {
    display: -webkit-box;
    margin: 0;
    flex: 1 1 auto;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 9;
    line-clamp: 9;
    overflow: hidden;
    color: var(--uq-rv-review-text);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    overflow-wrap: break-word;
}

.uq-reviews__author {
    display: flex;
    width: 100%;
    margin-top: auto;
    padding-top: 4px;
    align-items: center;
    gap: 12px;
}

.uq-reviews__avatar {
    display: block;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    border-radius: 50%;
    object-fit: cover;
}

.uq-reviews__author-copy {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 2px;
}

.uq-reviews__author-name {
    display: block;
    color: var(--uq-rv-name);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    overflow-wrap: break-word;
}

.uq-reviews__author-meta {
    display: block;
    color: var(--uq-rv-meta);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.35;
    overflow-wrap: break-word;
}

.uq-reviews__card-logo {
    display: block;
    width: auto;
    max-width: 74px;
    height: 20px;
    flex: 0 0 auto;
    object-fit: contain;
    object-position: right center;
}

.uq-reviews__card-platform {
    flex: 0 0 auto;
    color: var(--uq-rv-meta);
    font-size: 13px;
    font-weight: 500;
}

/* ------------------------------------------
   Option 1: compact platform rating cards
------------------------------------------ */
.uq-reviews__ratings {
    --uq-rv-rating-score: var(--uq-rv-title);
    /* No cap by default; the count rules below lower it to the real item total. */
    --uq-rv-rating-cap: 99;
    display: grid;
    grid-template-columns: repeat(min(var(--uq-rv-platform-columns, 3), var(--uq-rv-rating-cap)), minmax(0, 1fr));
    width: 100%;
    margin-top: 24px;
    gap: var(--uq-rv-gap);
}

/*
 * platform_columns can be set higher than the number of platform rows actually
 * entered. Without this the surplus empty columns push the strip off-centre, so
 * the effective column count is capped at the real item total.
 */
.uq-reviews[data-uq-reviews-platform-count="1"] .uq-reviews__ratings {
    --uq-rv-rating-cap: 1;
}

.uq-reviews[data-uq-reviews-platform-count="2"] .uq-reviews__ratings {
    --uq-rv-rating-cap: 2;
}

.uq-reviews[data-uq-reviews-platform-count="3"] .uq-reviews__ratings {
    --uq-rv-rating-cap: 3;
}

.uq-reviews__rating {
    display: flex;
    min-width: 0;
    min-height: 106px;
    margin: 0;
    padding: 16px 18px;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    border: 1px solid var(--uq-rv-rating-card-border);
    border-radius: var(--uq-rv-radius);
    background: var(--uq-rv-rating-card-bg);
    color: var(--uq-rv-platform-text);
    text-align: left;
    text-decoration: none;
}

.uq-reviews__rating--linked {
    cursor: pointer;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.uq-reviews__rating--linked:hover {
    border-color: var(--uq-rv-accent);
    box-shadow: 0 8px 24px rgba(16, 78, 139, 0.08);
    color: var(--uq-rv-platform-text);
    transform: translateY(-2px);
}

.uq-reviews__rating--linked:focus,
.uq-reviews__rating--linked:visited {
    color: var(--uq-rv-platform-text);
}

.uq-reviews__rating--linked:focus-visible {
    outline: 2px solid var(--uq-rv-accent);
    outline-offset: 3px;
}

.uq-reviews__rating-score {
    flex: 0 0 auto;
    color: var(--uq-rv-rating-score);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-size: clamp(38px, 3.5vw, 48px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.035em;
    font-variant-numeric: tabular-nums;
}

.uq-reviews__rating-body {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
}

.uq-reviews__rating-platform {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 6px;
}

.uq-reviews__rating-logo {
    display: block;
    width: auto;
    max-width: min(96px, 100%);
    height: 20px;
    object-fit: contain;
    object-position: left center;
}

/*
 * When a logo image is present it already carries the brand, so the text name
 * would read as a duplicate ("Google Google"). Drop this rule to show both.
 */
.uq-reviews__rating-logo ~ .uq-reviews__rating-name {
    display: none;
}

.uq-reviews__rating-name {
    color: var(--uq-rv-platform-title);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.015em;
    overflow-wrap: break-word;
}

.uq-reviews__rating .uq-reviews__stars {
    gap: 3px;
}

.uq-reviews__rating .uq-reviews__star {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}

.uq-reviews__rating .uq-reviews__star:not(.is-filled) {
    fill: rgba(16, 78, 139, 0.14);
}

.uq-reviews__rating-count {
    color: var(--uq-rv-meta);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.005em;
}

/* Platform cards */
.uq-reviews__platforms {
    display: grid;
    grid-template-columns: repeat(var(--uq-rv-platform-columns, 3), minmax(0, 1fr));
    width: 100%;
    margin-top: 24px;
    gap: var(--uq-rv-gap);
}

.uq-reviews__platform {
    display: flex;
    min-width: 0;
    margin: 0;
    padding: 26px 28px;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    border: 1px solid var(--uq-rv-platform-border);
    border-radius: var(--uq-rv-radius);
    background: var(--uq-rv-platform-bg);
    color: var(--uq-rv-platform-text);
    text-align: left;
}

.uq-reviews__platform-head {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 12px;
}

.uq-reviews__platform-logo {
    display: block;
    width: auto;
    max-width: 40px;
    height: 28px;
    flex: 0 0 auto;
    object-fit: contain;
}

.uq-reviews.uq-reviews .uq-reviews__platform-name {
    margin: 0;
    padding: 0;
    color: var(--uq-rv-platform-title);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.01em;
    text-align: left;
    text-transform: none;
}

.uq-reviews__platform-name::before,
.uq-reviews__platform-name::after {
    display: none;
    content: none;
}

.uq-reviews__platform-rating {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.uq-reviews__platform-score {
    color: var(--uq-rv-platform-title);
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.02em;
}

.uq-reviews__platform-rating .uq-reviews__star {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}

.uq-reviews__platform-count {
    color: var(--uq-rv-platform-text);
    font-size: 14px;
    font-weight: 400;
}

.uq-reviews__platform-description {
    margin: 0;
    color: var(--uq-rv-platform-text);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    overflow-wrap: break-word;
}

.uq-reviews__highlights {
    display: flex;
    width: 100%;
    margin: 0;
    padding: 0;
    flex-direction: column;
    gap: 9px;
    list-style: none;
}

.uq-reviews__highlight {
    display: flex;
    width: 100%;
    margin: 0;
    padding: 0;
    align-items: flex-start;
    column-gap: 9px;
    color: var(--uq-rv-platform-text);
    font-size: 15px;
    line-height: 1.4;
    list-style: none;
}

/* Text column owns the wrapping, so line 2 aligns under line 1 — not under the icon. */
.uq-reviews__highlight-copy {
    display: block;
    min-width: 0;
    flex: 1 1 0;
    overflow-wrap: break-word;
}

.uq-reviews__highlight::before,
.uq-reviews__highlight::after {
    display: none;
    content: none;
}

.uq-reviews__highlight-icon {
    display: inline-flex;
    width: 18px;
    min-width: 18px;
    height: 18px;
    flex: 0 0 18px;
    /* Centre the 18px icon against the 21px first line. */
    margin-top: 1.5px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--uq-rv-star);
    color: #ffffff;
}

.uq-reviews__highlight-icon svg {
    display: block;
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.uq-reviews__platform-link {
    display: inline-flex;
    min-height: 44px;
    margin-top: auto;
    padding: 10px 20px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 1px solid var(--uq-rv-platform-border);
    border-radius: 8px;
    background: transparent;
    color: var(--uq-rv-platform-title);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    transition: border-color 180ms ease, color 180ms ease;
}

.uq-reviews__platform-link svg {
    display: block;
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
    fill: currentColor;
}

.uq-reviews__platform-link:hover {
    border-color: var(--uq-rv-accent);
    color: var(--uq-rv-accent);
}

.uq-reviews__platform-link:focus-visible {
    outline: 2px solid var(--uq-rv-accent);
    outline-offset: 3px;
}

/* Option 2: featured platform left, carousel right. */
/* stretch (not start) so the carousel column matches the featured card's height. */
.uq-reviews__split {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(0, 34fr) minmax(0, 66fr);
    align-items: stretch;
    gap: 24px;
}

.uq-reviews__split-aside,
.uq-reviews__split-main {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

/* Carry the stretched height through the carousel down to each card. */
.uq-reviews__split-main .uq-reviews__carousel {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.uq-reviews__split-main .uq-reviews__viewport {
    display: flex;
    flex: 1 1 auto;
}

.uq-reviews__split-main .uq-reviews__track {
    flex: 1 1 auto;
}

.uq-reviews--option-2 {
    --uq-rv-visible: 2.15;
}

.uq-reviews--option-2 .uq-reviews__platform--featured {
    height: 100%;
    background: var(--uq-rv-card-bg);
}

.uq-reviews__status {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

@media screen and (max-width: 1199px) {
    .uq-reviews {
        --uq-rv-visible: 2.4;
    }

    .uq-reviews--option-2 {
        --uq-rv-visible: 1.6;
    }
}

@media screen and (max-width: 991px) {
    .uq-reviews {
        --uq-rv-visible: 2.1;
    }

    .uq-reviews__split {
        grid-template-columns: minmax(0, 1fr);
    }

    .uq-reviews--option-2 {
        --uq-rv-visible: 2.1;
    }

    .uq-reviews__platforms,
    .uq-reviews__ratings {
        grid-template-columns: repeat(min(var(--uq-rv-platform-columns, 3), 2), minmax(0, 1fr));
    }

    .uq-reviews__ratings {
        grid-template-columns: repeat(min(var(--uq-rv-platform-columns, 3), var(--uq-rv-rating-cap), 2), minmax(0, 1fr));
    }
}

@media screen and (max-width: 767px) {
    .uq-reviews {
        --uq-rv-visible: 1.15;
        padding-right: 24px;
        padding-left: 24px;
    }

    .uq-reviews--option-2 {
        --uq-rv-visible: 1.15;
    }

    .uq-reviews__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .uq-reviews__platforms,
    .uq-reviews__ratings {
        grid-template-columns: minmax(0, 1fr);
    }

    .uq-reviews__ratings {
        margin-top: 20px;
        gap: 12px;
    }

    .uq-reviews__ratings .uq-reviews__rating {
        min-height: 96px;
        padding: 14px 16px;
        justify-content: flex-start;
    }

    .uq-reviews__rating-score {
        font-size: 38px;
    }

    .uq-reviews__card,
    .uq-reviews__platform {
        padding: 22px 20px;
    }
}

@media screen and (max-width: 479px) {
    .uq-reviews {
        --uq-rv-visible: 1.08;
        padding-right: 18px;
        padding-left: 18px;
    }

    .uq-reviews--option-2 {
        --uq-rv-visible: 1.08;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-reviews__track,
    .uq-reviews__arrow,
    .uq-reviews__platform-link,
    .uq-reviews__rating--linked {
        transition: none;
    }
}

/* ==========================================
   ACF Pricing / Compare Plans
   Layout: pricing
   Prefix: uq-pricing
========================================== */
.uq-pricing,
.uq-pricing *,
.uq-pricing *::before,
.uq-pricing *::after {
    box-sizing: border-box;
}

.uq-pricing {
    --uq-pricing-text: #000000;
    --uq-pricing-muted: var(--uq-theme-text, #3F4B58);
    --uq-pricing-border: var(--uq-theme-border, #e5e5e5);
    --uq-pricing-track: #f2f1ef;
    --uq-pricing-accent: var(--uq-theme-primary, #104E8B);
    --uq-pricing-container: 1200px;
    /* Mirrors the reference: 448px lead column, 728px plan track, 24px gutter. */
    --uq-pricing-columns: minmax(0, 448fr) minmax(0, 728fr);
    --uq-pricing-gap: 24px;
    --uq-pricing-flag-size: 14px;
    width: 100%;
    margin-top: var(--uq-pricing-margin-top, 0);
    margin-bottom: var(--uq-pricing-margin-bottom, 0);
    padding: var(--uq-pricing-space-top, 64px) 5vw var(--uq-pricing-space-bottom, 80px);
    overflow: hidden;
    background: var(--uq-pricing-bg, transparent);
    color: var(--uq-pricing-text);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-pricing__container {
    width: 100%;
    max-width: var(--uq-pricing-container);
    margin: 0 auto;
}

/* ---------- Header ---------- */
.uq-pricing__header {
    width: 100%;
    max-width: 760px;
}

.uq-pricing__eyebrow {
    display: inline-flex;
    width: fit-content;
    margin: 0 0 12px;
    padding: 4px 12px;
    align-items: center;
    gap: 7px;
    border-radius: 999px;
    background: var(--uq-theme-accent, #FDBB2F);
    color: #000000;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.uq-pricing__eyebrow-icon {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    object-fit: contain;
    object-position: center;
    filter: brightness(0) saturate(100%);
}

.uq-pricing.uq-pricing .uq-pricing__section-title {
    margin: 0;
    padding: 0;
    color: var(--uq-theme-primary, #104E8B);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    text-align: left;
    text-transform: none;
    text-wrap: balance;
}

/* Only Default keeps the module scale; Display/H1-H6 use shared uq-heading-*. */
.uq-pricing__section-title:not([class*="uq-heading-"]) {
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.uq-pricing__section-title::before,
.uq-pricing__section-title::after {
    display: none;
    content: none;
}

.uq-pricing__section-description {
    max-width: 680px;
    margin-top: 14px;
    color: var(--uq-pricing-muted);
    font-size: var(--uq-module-description-size, 16px);
    font-weight: 400;
    line-height: var(--uq-module-description-line-height, 1.5);
}

.uq-pricing__section-description > :first-child {
    margin-top: 0;
}

.uq-pricing__section-description > :last-child {
    margin-bottom: 0;
}

/* ---------- Compare row ---------- */
.uq-pricing__compare {
    display: grid;
    grid-template-columns: var(--uq-pricing-columns);
    align-items: start;
    gap: var(--uq-pricing-gap);
    width: 100%;
    padding-bottom: 32px;
    border-bottom: 1px solid var(--uq-pricing-border);
}

.uq-pricing__compare--divided {
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px solid var(--uq-pricing-border);
}

.uq-pricing--no-lead .uq-pricing__compare {
    grid-template-columns: minmax(0, 1fr);
}

/* Fewer or more plans rebalance the lead column so no plan column gets cramped. */
.uq-pricing--count-2 {
    --uq-pricing-columns: minmax(0, 552fr) minmax(0, 624fr);
}

.uq-pricing--count-4 {
    --uq-pricing-columns: minmax(0, 330fr) minmax(0, 846fr);
}

.uq-pricing__lead {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
}

.uq-pricing.uq-pricing .uq-pricing__compare-title {
    max-width: 100%;
    margin: 0;
    padding: 0;
    color: var(--uq-theme-primary, #104E8B);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    line-height: 1.1;
    letter-spacing: -0.03em;
    text-align: left;
    text-transform: none;
    text-wrap: balance;
    overflow-wrap: anywhere;
}

/* Matches the reference heading scale unless Display/H1-H6 was picked. */
.uq-pricing .uq-pricing__compare-title:not([class*="uq-heading-"]) {
    font-weight: 500;
}

.uq-pricing__compare-title::before,
.uq-pricing__compare-title::after {
    display: none;
    content: none;
}

.uq-pricing__lead .uq-pricing__eyebrow {
    margin-bottom: 14px;
}

.uq-pricing__compare-description {
    max-width: 420px;
    margin-top: 14px;
    color: var(--uq-pricing-muted);
    font-size: var(--uq-module-description-size, 16px);
    font-weight: 400;
    line-height: var(--uq-module-description-line-height, 1.5);
}

.uq-pricing__compare-description > :first-child {
    margin-top: 0;
}

.uq-pricing__compare-description > :last-child {
    margin-bottom: 0;
}

/* ---------- Billing toggle ---------- */
.uq-pricing__toggle {
    display: inline-flex;
    max-width: 100%;
    margin-top: 24px;
    padding: 4px;
    align-items: center;
    gap: 2px;
    border-radius: 999px;
    background: var(--uq-pricing-track);
}

.uq-pricing__lead > .uq-pricing__toggle:first-child,
.uq-pricing__flag + .uq-pricing__toggle,
.uq-pricing__eyebrow + .uq-pricing__toggle {
    margin-top: 0;
}

.uq-pricing.uq-pricing .uq-pricing__toggle-option {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 6px 16px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    box-shadow: none;
    color: var(--uq-pricing-text);
    font-family: inherit;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.01em;
    text-transform: none;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: background-color 0.18s ease, box-shadow 0.18s ease;
}

.uq-pricing.uq-pricing .uq-pricing__toggle-option.is-active {
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.uq-pricing.uq-pricing .uq-pricing__toggle-option:hover {
    background: rgba(255, 255, 255, 0.6);
}

.uq-pricing.uq-pricing .uq-pricing__toggle-option.is-active:hover {
    background: #ffffff;
}

.uq-pricing__toggle-option:focus-visible {
    outline: 2px solid var(--uq-pricing-accent);
    outline-offset: 2px;
}

.uq-pricing__toggle-badge {
    color: var(--uq-pricing-accent);
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap;
}

/* ---------- Plans ---------- */
.uq-pricing.uq-pricing .uq-pricing__plans {
    display: grid;
    grid-template-columns: repeat(var(--uq-pricing-count, 3), minmax(0, 1fr));
    align-items: stretch;
    gap: var(--uq-pricing-gap);
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.uq-pricing.uq-pricing--count-1 .uq-pricing__plans {
    grid-template-columns: minmax(0, 1fr);
}

.uq-pricing.uq-pricing--count-2 .uq-pricing__plans {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.uq-pricing.uq-pricing--count-3 .uq-pricing__plans {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.uq-pricing.uq-pricing--count-4 .uq-pricing__plans {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.uq-pricing.uq-pricing .uq-pricing__plan {
    display: flex;
    min-width: 0;
    height: 100%;
    margin: 0;
    padding: 0;
    flex-direction: column;
    align-items: center;
    text-align: center;
    list-style: none;
}

.uq-pricing.uq-pricing .uq-pricing__plan::before,
.uq-pricing.uq-pricing .uq-pricing__plan::after {
    display: none;
    content: none;
}

/* Reserved in every column so the plan names stay on one line together. */
.uq-pricing__flag {
    display: block;
    width: 100%;
    min-height: calc(var(--uq-pricing-flag-size) * 1.3);
    margin: 0 0 8px;
    color: var(--uq-pricing-accent);
    font-size: var(--uq-pricing-flag-size);
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.uq-pricing.uq-pricing .uq-pricing__plan-name {
    margin: 0;
    padding: 0;
    color: var(--uq-pricing-text);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-size: 20px;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: -0.02em;
    text-align: center;
    text-transform: none;
    overflow-wrap: anywhere;
}

.uq-pricing.uq-pricing .uq-pricing__plan-name::before,
.uq-pricing.uq-pricing .uq-pricing__plan-name::after {
    display: none;
    content: none;
}

.uq-pricing.uq-pricing .uq-pricing__price {
    margin: 6px 0 0;
    color: var(--uq-pricing-muted);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.uq-pricing__price-value--yearly {
    display: none;
}

.uq-pricing.is-yearly .uq-pricing__price-value--monthly {
    display: none;
}

.uq-pricing.is-yearly .uq-pricing__price-value--yearly {
    display: inline;
}

.uq-pricing__price-amount {
    font-weight: 500;
}

.uq-pricing.uq-pricing .uq-pricing__note {
    margin: 6px 0 0;
    color: var(--uq-pricing-muted);
    font-size: 13px;
    line-height: 1.45;
    opacity: 0.85;
    overflow-wrap: anywhere;
}

.uq-pricing__actions {
    width: 100%;
    margin-top: auto;
    padding-top: 20px;
}

.uq-pricing.uq-pricing .uq-pricing__button {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

/* Light plan button: theme button metrics, open outline like the reference. */
.uq-pricing.uq-pricing .uq-pricing__button--light {
    border: 1px solid var(--uq-pricing-border);
    background: #ffffff;
    color: var(--uq-pricing-text);
}

.uq-pricing.uq-pricing .uq-pricing__button--light:hover,
.uq-pricing.uq-pricing .uq-pricing__button--light:focus {
    border-color: var(--uq-pricing-accent);
    background: #ffffff;
    color: var(--uq-pricing-accent);
    transform: translateY(-1px);
}

.uq-pricing.uq-pricing .uq-pricing__button--light:focus-visible {
    outline: 2px solid var(--uq-pricing-accent);
    outline-offset: 3px;
}

/* ---------- Responsive ---------- */
@media screen and (max-width: 1199px) {
    .uq-pricing {
        --uq-pricing-columns: minmax(0, 380fr) minmax(0, 728fr);
    }

    .uq-pricing--count-2 {
        --uq-pricing-columns: minmax(0, 480fr) minmax(0, 624fr);
    }

    .uq-pricing--count-4 {
        --uq-pricing-columns: minmax(0, 300fr) minmax(0, 846fr);
    }
}

@media screen and (max-width: 991px) {
    .uq-pricing {
        --uq-pricing-columns: minmax(0, 1fr);
    }

    .uq-pricing__compare {
        gap: 36px;
    }

    .uq-pricing__lead {
        align-items: flex-start;
    }

    /* Stacked, so the alignment spacer above the plan names is dead space. */
    .uq-pricing__lead .uq-pricing__flag--empty {
        display: none;
    }

    .uq-pricing__compare-description {
        max-width: 640px;
    }

    .uq-pricing.uq-pricing--count-4 .uq-pricing__plans {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 36px;
    }
}

@media screen and (max-width: 767px) {
    .uq-pricing {
        padding: min(var(--uq-pricing-space-top, 32px), 40px) 24px min(var(--uq-pricing-space-bottom, 32px), 48px);
    }

    .uq-pricing__compare--divided {
        margin-top: 28px;
        padding-top: 28px;
    }

    .uq-pricing__compare {
        gap: 28px;
        padding-bottom: 24px;
    }

    .uq-pricing.uq-pricing .uq-pricing__plans,
    .uq-pricing.uq-pricing--count-1 .uq-pricing__plans,
    .uq-pricing.uq-pricing--count-2 .uq-pricing__plans,
    .uq-pricing.uq-pricing--count-3 .uq-pricing__plans,
    .uq-pricing.uq-pricing--count-4 .uq-pricing__plans {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .uq-pricing.uq-pricing .uq-pricing__plan {
        height: auto;
        padding: 24px 0;
        border-top: 1px solid var(--uq-pricing-border);
    }

    .uq-pricing.uq-pricing .uq-pricing__plan:first-child {
        padding-top: 0;
        border-top: 0;
    }

    .uq-pricing__plan .uq-pricing__flag--empty {
        display: none;
    }

    .uq-pricing__actions {
        margin-top: 0;
        padding-top: 20px;
    }

    .uq-pricing__toggle {
        margin-top: 18px;
    }

    .uq-pricing__section-description,
    .uq-pricing__compare-description {
        font-size: var(--uq-module-description-size-mobile, 15px);
    }
}

@media screen and (max-width: 479px) {
    .uq-pricing {
        padding-right: 18px;
        padding-left: 18px;
    }

    .uq-pricing.uq-pricing .uq-pricing__toggle-option {
        padding: 6px 12px;
        font-size: 14px;
    }

    .uq-pricing__toggle-badge {
        font-size: 13px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-pricing__toggle-option,
    .uq-pricing__button {
        transition: none;
    }

    .uq-pricing.uq-pricing .uq-pricing__button--light:hover,
    .uq-pricing.uq-pricing .uq-pricing__button--light:focus {
        transform: none;
    }
}

/* ==========================================
   ACF FAQ
   Layout: faq
   Prefix: uq-faq
   Ported from design/uq-faq.html + assets/css/components/uq-faq.css,
   retokenised onto the Roofer On Demand design system.
========================================== */
.uq-faq,
.uq-faq *,
.uq-faq *::before,
.uq-faq *::after {
    box-sizing: border-box;
}

.uq-faq {
    --uq-faq-text: #000000;
    --uq-faq-muted: var(--uq-theme-text, #3F4B58);
    --uq-faq-border: var(--uq-theme-border, #e5e5e5);
    --uq-faq-accent: var(--uq-theme-primary, #104E8B);
    --uq-faq-container: 1200px;
    --uq-faq-number-width: calc(var(--uq-faq-number-base, 62) * 1px);
    --uq-faq-indent: var(--uq-faq-number-width);
    width: 100%;
    margin-top: var(--uq-faq-margin-top, 0);
    margin-bottom: var(--uq-faq-margin-bottom, 0);
    padding: var(--uq-faq-space-top, 64px) 5vw var(--uq-faq-space-bottom, 80px);
    overflow: hidden;
    background: var(--uq-faq-bg, transparent);
    color: var(--uq-faq-text);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-faq__container {
    width: 100%;
    max-width: var(--uq-faq-container);
    margin: 0 auto;
}

/* ---------- Header ---------- */
.uq-faq__header {
    width: 100%;
    max-width: 832px;
    margin: 0 auto 72px;
    text-align: center;
}

.uq-faq__eyebrow {
    display: inline-flex;
    width: fit-content;
    margin: 0 0 16px;
    padding: 4px 12px;
    align-items: center;
    gap: 7px;
    border-radius: 999px;
    background: var(--uq-theme-accent, #FDBB2F);
    color: #000000;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.uq-faq__eyebrow-icon {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    object-fit: contain;
    object-position: center;
    filter: brightness(0) saturate(100%);
}

.uq-faq.uq-faq .uq-faq__title {
    margin: 0;
    padding: 0;
    color: var(--uq-theme-primary, #104E8B);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    text-align: center;
    text-transform: none;
    text-wrap: balance;
}

/* Only Default keeps the module scale; Display/H1-H6 use shared uq-heading-*. */
.uq-faq__title:not([class*="uq-heading-"]) {
    font-weight: 500;
    line-height: 1.06;
    letter-spacing: -0.035em;
}

.uq-faq__title::before,
.uq-faq__title::after {
    display: none;
    content: none;
}

.uq-faq__subtitle {
    margin-top: 18px;
    color: var(--uq-faq-muted);
    font-size: var(--uq-module-description-size, 16px);
    font-weight: 400;
    line-height: var(--uq-module-description-line-height, 1.5);
}

.uq-faq__subtitle > :first-child {
    margin-top: 0;
}

.uq-faq__subtitle > :last-child {
    margin-bottom: 0;
}

/* ---------- List ---------- */
.uq-faq__list {
    width: 100%;
}

.uq-faq.uq-faq .uq-faq__item {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--uq-faq-border);
    list-style: none;
}

.uq-faq.uq-faq .uq-faq__item::before,
.uq-faq.uq-faq .uq-faq__item::after {
    display: none;
    content: none;
}

.uq-faq.uq-faq .uq-faq__question-heading {
    margin: 0;
    padding: 0;
    color: inherit;
    font: inherit;
    letter-spacing: normal;
    text-align: left;
    text-transform: none;
}

.uq-faq.uq-faq .uq-faq__question-heading::before,
.uq-faq.uq-faq .uq-faq__question-heading::after {
    display: none;
    content: none;
}

.uq-faq.uq-faq .uq-faq__trigger {
    display: flex;
    width: 100%;
    min-height: 82px;
    /* Start, not center: a wrapped question must not drag the chevron to the
       middle of the block. min-height ~= one line + padding, so single-line
       rows look identical either way. */
    align-items: flex-start;
    justify-content: space-between;
    gap: 32px;
    margin: 0;
    padding: 24px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--uq-faq-text);
    font: inherit;
    text-align: left;
    text-transform: none;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: color 0.18s ease;
}

.uq-faq.uq-faq .uq-faq__trigger:hover {
    background: transparent;
    color: var(--uq-faq-accent);
}

.uq-faq__trigger:focus-visible {
    outline: 2px solid var(--uq-faq-accent);
    outline-offset: 4px;
}

.uq-faq__question-wrap {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: 0;
}

.uq-faq--numbered .uq-faq__question-wrap {
    grid-template-columns: var(--uq-faq-number-width) minmax(0, 1fr);
    /* Baseline, so "Q1." sits on the question's own baseline and a wrapped
       question keeps the number beside its first line. */
    align-items: baseline;
    gap: 0;
}

/* Plain bold "Q1." like the approved reference, not a pill. */
.uq-faq__number {
    display: block;
    width: var(--uq-faq-number-width);
    padding: 0;
    border: 0;
    background: none;
    color: var(--uq-theme-primary, #104E8B);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-size: 26px;
    font-weight: 700;
    line-height: 1.24;
    letter-spacing: -0.02em;
    white-space: nowrap;
}

.uq-faq__question {
    font-family: var(--uq-site-font-body, Arial, sans-serif);
    font-size: 23px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: -0.025em;
    overflow-wrap: anywhere;
}

.uq-faq__arrow {
    display: block;
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
    /* Optically centres the chevron on the first line of the question. */
    margin-top: 12px;
    margin-right: 3px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-3px) rotate(45deg);
    transition: transform 260ms ease;
}

.uq-faq__trigger[aria-expanded="true"] .uq-faq__arrow {
    transform: translateY(3px) rotate(225deg);
}

/* ---------- Answer ---------- */
.uq-faq__answer {
    display: grid;
    grid-template-rows: 0fr;
    visibility: hidden;
    transition: grid-template-rows 320ms ease, visibility 320ms;
}

/* Beats the normalize [hidden] rule on purpose: the row collapses by grid
   height, and the attribute only guards the no-CSS/no-JS case. */
.uq-faq__answer[hidden] {
    display: grid;
}

.uq-faq__answer.uq-faq__answer--open {
    grid-template-rows: 1fr;
    visibility: visible;
}

.uq-faq__answer-inner {
    min-height: 0;
    overflow: hidden;
}

.uq-faq--numbered .uq-faq__answer-inner {
    padding-left: var(--uq-faq-indent);
}

.uq-faq.uq-faq .uq-faq__answer-inner p,
.uq-faq.uq-faq .uq-faq__answer-inner li {
    max-width: 62em;
    color: var(--uq-faq-muted);
    font-size: 18px;
    line-height: 1.55;
}

.uq-faq.uq-faq .uq-faq__answer-inner p {
    margin: 0 0 20px;
}

.uq-faq.uq-faq .uq-faq__answer-inner > :first-child {
    margin-top: 0;
}

/* The theme draws bullets with `article ul li::before` at left:0, so the row
   needs a gutter or the dash lands on the first character. */
.uq-faq.uq-faq .uq-faq__answer-inner ul {
    margin: 0 0 20px;
    padding-left: 0;
}

.uq-faq.uq-faq .uq-faq__answer-inner ul li {
    margin: 0 0 6px;
    padding-left: 18px;
}

.uq-faq.uq-faq .uq-faq__answer-inner ol {
    margin: 0 0 20px;
    padding-left: 22px;
}

.uq-faq.uq-faq .uq-faq__answer-inner ol li {
    margin: 0 0 6px;
}

/* ---------- Responsive ---------- */
@media screen and (max-width: 991px) {
    .uq-faq__header {
        margin-bottom: 56px;
    }
}

@media screen and (max-width: 767px) {
    .uq-faq {
        --uq-faq-number-width: calc(var(--uq-faq-number-base, 62) * 0.84px);
        padding: min(var(--uq-faq-space-top, 40px), 48px) 24px min(var(--uq-faq-space-bottom, 40px), 56px);
    }

    .uq-faq__header {
        margin-bottom: 40px;
        text-align: left;
    }

    .uq-faq.uq-faq .uq-faq__title {
        text-align: left;
    }

    .uq-faq__subtitle {
        margin-top: 14px;
        font-size: var(--uq-module-description-size-mobile, 15px);
    }

    .uq-faq.uq-faq .uq-faq__trigger {
        min-height: 0;
        gap: 16px;
        padding: 20px 0;
    }

    .uq-faq__number {
        font-size: 21px;
    }

    .uq-faq__question {
        font-size: 19px;
    }

    .uq-faq__arrow {
        margin-top: 10px;
    }

    .uq-faq.uq-faq .uq-faq__answer-inner p,
    .uq-faq.uq-faq .uq-faq__answer-inner li {
        font-size: 16px;
    }
}

@media screen and (max-width: 479px) {
    .uq-faq {
        --uq-faq-number-width: calc(var(--uq-faq-number-base, 62) * 0.75px);
        padding-right: 18px;
        padding-left: 18px;
    }

    .uq-faq__question {
        font-size: 17px;
    }

    .uq-faq__arrow {
        margin-top: 8px;
    }

    .uq-faq__number {
        font-size: 19px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-faq__answer,
    .uq-faq__arrow,
    .uq-faq__trigger {
        transition: none;
    }
}

/* ==========================================
   ACF Manufacturers
   Layout: manufacturers
   Prefix: uq-manufacturers
========================================== */
.uq-manufacturers,
.uq-manufacturers *,
.uq-manufacturers *::before,
.uq-manufacturers *::after {
    box-sizing: border-box;
}

.uq-manufacturers {
    --uq-mf-section-bg: transparent;
    --uq-mf-title: var(--uq-theme-primary, #104E8B);
    --uq-mf-description: rgba(0, 0, 0, 0.7);
    --uq-mf-card-bg: #f4f8fc;
    /* Flat by default, like the reference. card_border_color still overrides it. */
    --uq-mf-card-border: transparent;
    --uq-mf-name: #000000;
    --uq-mf-name-muted: rgba(0, 0, 0, 0.55);
    --uq-mf-accent: var(--uq-theme-primary, #104E8B);
    --uq-mf-arrow-bg: var(--uq-theme-primary, #104E8B);
    --uq-mf-arrow-icon: #ffffff;
    --uq-mf-container: 1200px;
    --uq-mf-radius: 16px;
    --uq-mf-gap: 24px;
    --uq-mf-visible: 3;
    /* The tinted logo box matches a How It Works card, measured on the live
       page: 237px at 3-up, 213px at 2-up, 209px stacked. Retune here if the
       How It Works copy changes; nothing else needs touching. */
    --uq-mf-box-height: 237px;
    --uq-mf-label-gap: 14px;
    width: 100%;
    padding: var(--uq-mf-space-top, 64px) 5vw var(--uq-mf-space-bottom, 80px);
    overflow: hidden;
    background: var(--uq-mf-section-bg);
    color: var(--uq-mf-name);
    font-family: var(--uq-site-font-body, Arial, sans-serif);
}

.uq-manufacturers__container {
    width: 100%;
    max-width: var(--uq-mf-container);
    margin: 0 auto;
}

/*
 * Same flow as How It Works: the section header sits above a carousel that spans
 * the full container, rather than competing with it in a side-by-side split.
 * The 36px header-to-carousel rhythm is taken from .uq-how-it-works__header.
 */
.uq-manufacturers__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
    margin: 0 0 36px;
}

.uq-manufacturers__lead {
    display: flex;
    min-width: 0;
    max-width: 760px;
    flex-direction: column;
    align-items: flex-start;
}

/* Same eyebrow component used by the other modules. */
.uq-manufacturers__eyebrow {
    display: inline-flex;
    width: fit-content;
    margin: 0 0 14px;
    padding: 4px 12px;
    align-items: center;
    gap: 7px;
    border-radius: 999px;
    background: var(--uq-theme-accent, #FDBB2F);
    color: #000000;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.uq-manufacturers__eyebrow-icon {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    object-fit: contain;
    object-position: center;
    filter: brightness(0) saturate(100%);
}

.uq-manufacturers.uq-manufacturers .uq-manufacturers__section-title {
    max-width: 100%;
    margin: 0;
    padding: 0;
    color: var(--uq-mf-title);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    line-height: 1.1;
    letter-spacing: -0.03em;
    text-align: left;
    text-transform: none;
    text-wrap: balance;
    overflow-wrap: anywhere;
}

/* Only Default keeps the module scale; Display/H1-H6 use shared uq-heading-*. */
.uq-manufacturers .uq-manufacturers__section-title:not([class*="uq-heading-"]) {
    font-weight: 500;
}

.uq-manufacturers__section-title::before,
.uq-manufacturers__section-title::after {
    display: none;
    content: none;
}

.uq-manufacturers__description {
    max-width: 680px;
    margin: 14px 0 0;
    color: var(--uq-mf-description);
    font-size: var(--uq-module-description-size, 16px);
    font-weight: var(--uq-module-description-weight, 400);
    line-height: var(--uq-module-description-line-height, 1.5);
    text-align: left;
}

.uq-manufacturers__description > :first-child {
    margin-top: 0;
}

.uq-manufacturers__description > :last-child {
    margin-bottom: 0;
}

.uq-manufacturers__description p + p {
    margin-top: 10px;
}

/* ---------- Right column: carousel ---------- */
.uq-manufacturers__carousel {
    min-width: 0;
    width: 100%;
}

.uq-manufacturers__viewport {
    width: 100%;
    overflow: hidden;
    /* clip has no scroll box, so focusing an off-screen card cannot scroll the
       viewport out from under the track transform. hidden is the old fallback. */
    overflow: clip;
}

.uq-manufacturers__track {
    display: flex;
    width: 100%;
    margin: 0;
    padding: 0;
    align-items: stretch;
    gap: var(--uq-mf-gap);
    list-style: none;
    transition: transform 420ms cubic-bezier(0.4, 0, 0.2, 1);
}

.uq-manufacturers__track::before,
.uq-manufacturers__track::after {
    display: none;
    content: none;
}

.uq-manufacturers__item {
    display: flex;
    min-width: 0;
    margin: 0;
    padding: 0;
    flex: 0 0 calc((100% - (var(--uq-mf-gap) * (var(--uq-mf-visible) - 1))) / var(--uq-mf-visible));
    list-style: none;
}

.uq-manufacturers__item::before,
.uq-manufacturers__item::after {
    display: none;
    content: none;
}

/* The card is only a column now: the tinted box carries the logo and the name
   sits under it, outside the box. */
.uq-manufacturers__card {
    position: relative;
    display: flex;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: var(--uq-mf-label-gap);
    border: 0;
    background: none;
    text-align: center;
}

/* ---------- Logo box ---------- */
/* One fixed-height box for every card, so tall and wide logos stay optically
   the same size and the row lines up with the How It Works cards beside it. */
.uq-manufacturers__logo-frame {
    display: flex;
    width: 100%;
    height: var(--uq-mf-box-height);
    padding: 24px 28px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--uq-mf-card-border);
    border-radius: var(--uq-mf-radius);
    background: var(--uq-mf-card-bg);
    overflow: hidden;
    transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.uq-manufacturers__logo {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
    /* contain, never cover: logos stay whole and keep their own proportions. */
    object-fit: contain;
    object-position: center;
}

.uq-manufacturers__logo-fallback {
    display: -webkit-box;
    max-width: 100%;
    color: var(--uq-mf-accent);
    font-family: var(--uq-site-font-heading, Arial, sans-serif);
    font-size: 26px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.02em;
    opacity: 0.55;
    overflow: hidden;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* ---------- Name / link ---------- */
/* Quiet by default so the logo leads; hover/focus brings it forward. */
.uq-manufacturers__name {
    color: var(--uq-mf-name-muted);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
    overflow-wrap: anywhere;
    transition: color 200ms ease;
}

.uq-manufacturers__name--plain {
    display: block;
    flex: 0 0 auto;
}

.uq-manufacturers__link {
    /* Static on purpose: it makes the card the containing block for ::after. */
    position: static;
    display: inline-flex;
    max-width: 100%;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border-radius: 4px;
    color: var(--uq-mf-name);
    text-decoration: none;
    transition: color 180ms ease;
}

/* One stretched anchor makes the whole card clickable without nesting links.
   Positioned against the card, so it covers the logo box and the name below. */
.uq-manufacturers__link::after {
    position: absolute;
    inset: 0;
    content: "";
}

.uq-manufacturers__link .uq-manufacturers__name {
    position: relative;
}

/* The underline is the hover affordance; it wipes in from the left. */
.uq-manufacturers__link .uq-manufacturers__name::after {
    position: absolute;
    right: 0;
    bottom: -2px;
    left: 0;
    height: 1px;
    background: currentColor;
    content: "";
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 180ms ease;
}

.uq-manufacturers__link-icon {
    display: inline-flex;
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity 180ms ease, transform 180ms ease;
}

.uq-manufacturers__link-icon svg {
    display: block;
    width: 12px;
    height: 12px;
    fill: currentColor;
}

.uq-manufacturers__card--linked:hover .uq-manufacturers__logo-frame,
.uq-manufacturers__card--linked:focus-within .uq-manufacturers__logo-frame {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(16, 78, 139, 0.10);
}

.uq-manufacturers__card--linked:hover .uq-manufacturers__name,
.uq-manufacturers__link:focus-visible .uq-manufacturers__name {
    color: var(--uq-mf-accent);
}

.uq-manufacturers__card--linked:hover .uq-manufacturers__link,
.uq-manufacturers__link:focus-visible {
    color: var(--uq-mf-accent);
}

.uq-manufacturers__card--linked:hover .uq-manufacturers__name::after,
.uq-manufacturers__link:focus-visible .uq-manufacturers__name::after {
    transform: scaleX(1);
}

.uq-manufacturers__card--linked:hover .uq-manufacturers__link-icon,
.uq-manufacturers__link:focus-visible .uq-manufacturers__link-icon {
    opacity: 1;
    transform: none;
}

.uq-manufacturers__link:focus-visible {
    outline: 2px solid var(--uq-mf-accent);
    outline-offset: 3px;
}

/* Screen-reader-only, matching the theme's other visually hidden text. */
.uq-manufacturers__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap;
}

/* ---------- Arrows ---------- */
/* Sits at the right of the section header, as the brief specifies. */
.uq-manufacturers__nav {
    display: flex;
    flex: 0 0 auto;
    margin: 0;
    padding-bottom: 4px;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.uq-manufacturers__arrow {
    display: inline-flex;
    width: 44px;
    height: 44px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: var(--uq-mf-arrow-bg);
    color: var(--uq-mf-arrow-icon);
    cursor: pointer;
    transition: opacity 180ms ease, filter 180ms ease;
}

.uq-manufacturers__arrow svg {
    display: block;
    width: 14px;
    height: 14px;
}

.uq-manufacturers__arrow:hover {
    filter: brightness(0.9);
}

.uq-manufacturers__arrow:focus-visible {
    outline: 2px solid var(--uq-mf-accent);
    outline-offset: 3px;
}

.uq-manufacturers__arrow[disabled] {
    cursor: default;
    opacity: 0.35;
}

/* Nothing to page through — the client asked for no arrows at three or fewer. */
.uq-manufacturers--static .uq-manufacturers__nav {
    display: none;
}

/* Belt and braces, so three or fewer never flash arrows before the script runs. */
@media screen and (min-width: 992px) {
    .uq-manufacturers[data-uq-manufacturers-count="1"] .uq-manufacturers__nav,
    .uq-manufacturers[data-uq-manufacturers-count="2"] .uq-manufacturers__nav,
    .uq-manufacturers[data-uq-manufacturers-count="3"] .uq-manufacturers__nav {
        display: none;
    }
}

/* Short rows stay left-aligned instead of stretching across the track. */
.uq-manufacturers[data-uq-manufacturers-count="1"] .uq-manufacturers__item,
.uq-manufacturers[data-uq-manufacturers-count="2"] .uq-manufacturers__item {
    max-width: calc((100% - (var(--uq-mf-gap) * 2)) / 3);
}

.uq-manufacturers__status {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap;
}

/* ---------- Touch: no hover, so the affordance is always on ---------- */
@media (hover: none) {
    .uq-manufacturers__link-icon {
        opacity: 1;
        transform: none;
    }

    .uq-manufacturers__link .uq-manufacturers__name::after {
        transform: scaleX(1);
    }

    .uq-manufacturers__card--linked .uq-manufacturers__name {
        color: var(--uq-mf-accent);
    }
}

/* ---------- Responsive ---------- */
@media screen and (max-width: 991px) {
    .uq-manufacturers {
        --uq-mf-visible: 2;
        --uq-mf-gap: 20px;
        --uq-mf-box-height: 213px;
        --uq-mf-label-gap: 12px;
    }

    .uq-manufacturers__header {
        margin-bottom: 28px;
    }

    .uq-manufacturers__logo-frame {
        padding: 22px 24px;
    }

    .uq-manufacturers[data-uq-manufacturers-count="1"] .uq-manufacturers__item,
    .uq-manufacturers[data-uq-manufacturers-count="2"] .uq-manufacturers__item {
        max-width: none;
    }
}

@media screen and (max-width: 767px) {
    .uq-manufacturers {
        --uq-mf-visible: 1.15;
        --uq-mf-gap: 16px;
        --uq-mf-box-height: 209px;
        padding-right: 24px;
        padding-left: 24px;
    }

    /* Copy stacks above the arrows once there is no room for them side by side. */
    .uq-manufacturers__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
        margin-bottom: 24px;
    }

    .uq-manufacturers__nav {
        padding-bottom: 0;
        justify-content: flex-start;
    }

    .uq-manufacturers__logo-frame {
        padding: 20px 22px;
    }
}

@media screen and (max-width: 479px) {
    .uq-manufacturers {
        --uq-mf-visible: 1.08;
        padding-right: 18px;
        padding-left: 18px;
    }

    .uq-manufacturers__logo-frame {
        padding: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .uq-manufacturers__card--linked:hover .uq-manufacturers__logo-frame,
    .uq-manufacturers__card--linked:focus-within .uq-manufacturers__logo-frame {
        transform: none;
    }

    .uq-manufacturers__track,
    .uq-manufacturers__arrow,
    .uq-manufacturers__card,
    .uq-manufacturers__logo-frame,
    .uq-manufacturers__link,
    .uq-manufacturers__link-icon,
    .uq-manufacturers__link .uq-manufacturers__name::after {
        transition: none;
    }
}

/* ==========================================
   Shared standard arrow icon
   Component: .navbar_arrow-icon-svg
   Used by: Service Cards, Service Categories, How It Works,
            Service Comparison, The Process, Filterable Cards links
   ==========================================
   The arrow markup is repeated inline in each module, but until now the shared
   class carried no CSS at all — every module re-declared size and alignment on
   its own `svg` descendant. This is the single global home for the parts that
   must be identical everywhere. Modules keep owning size and colour.

   The artwork itself is not off-centre: its ink spans y 0.46071 -> 8.53909 in a
   0 0 10 9 viewBox, a centre of 4.49989 against the viewBox centre of 4.5.

   Why it read as too high: `align-items: center` centres the icon on the text's
   LINE BOX, which puts it on the cap-height centre. At 15px/UQ Site Inter the
   cap-height centre sits 1.375px above the x-height centre, and with this site's
   mostly-lowercase button labels the eye reads the lower x-height mass as the
   text's centre. Measured on the live site the arrow sat 0.04px from cap-centre
   and 1.42px above x-centre -- geometrically correct, optically high.

   The fix nudges the icon down by half that gap, in em so it tracks the label's
   font-size (12px, 14px, 15px, 18px labels all stay correct). */
.navbar_arrow-icon-svg {
    /* Never let the icon fall back to baseline alignment in a non-flex context,
       which is the other way this icon can end up sitting high. */
    display: block;
}

/* Only when the arrow accompanies a text label. In icon-only controls such as
   .uq-multi-services__card-link the svg is the sole child, so those keep their
   exact geometric centring inside the circle/square. */
.navbar_arrow-icon-svg:not(:only-child) {
    transform: translateY(0.045em);
}

/* ==========================================
   Shared inline links inside Flexible Content copy
   Used by: every Flexible Content module's description / lead / intro
   ==========================================
   The copy under a section title is a WYSIWYG field, so an editor can already
   place an <a> in it — it simply had no treatment and read as plain text.

   Scoped to main.uq-flex-page (template-flexible-content.php), which wraps every
   Flexible Content module, so this covers the modules that exist today and any
   added later without a selector list to maintain.

   The substring matchers carry no leading underscores on purpose: a container is
   as likely to be named __section-description or __card-description as plain
   __description, and "__description" matches none of those. Measured against the
   live pages these five words reach 23 copy containers and nothing else.

   Typography is inherited on purpose — colour, size, weight and line-height all
   come from the surrounding copy, and the underline alone marks the link. That
   is what keeps every description looking exactly as it did and stops the line
   box from shifting. `font: inherit` is doing real work here, not tidying up:
   the global `a { font-weight: 600 }` near the top of this file otherwise leaves
   every inline link heavier than the sentence around it, which is exactly how
   the FAQ subtitle link read before.

   Swap `color: inherit` for var(--uq-theme-primary) if the link should read blue
   instead. CTA buttons live outside these containers, so they are not affected. */
.uq-flex-page [class*="description"] a,
.uq-flex-page [class*="lead"] a,
.uq-flex-page [class*="intro"] a,
.uq-flex-page [class*="subtitle"] a,
.uq-flex-page [class*="answer"] a {
    color: inherit;
    font: inherit;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    transition: color 0.2s ease;
}

.uq-flex-page [class*="description"] a:hover,
.uq-flex-page [class*="lead"] a:hover,
.uq-flex-page [class*="intro"] a:hover,
.uq-flex-page [class*="subtitle"] a:hover,
.uq-flex-page [class*="answer"] a:hover {
    color: var(--uq-theme-primary, #104E8B);
}

.uq-flex-page [class*="description"] a:focus-visible,
.uq-flex-page [class*="lead"] a:focus-visible,
.uq-flex-page [class*="intro"] a:focus-visible,
.uq-flex-page [class*="subtitle"] a:focus-visible,
.uq-flex-page [class*="answer"] a:focus-visible {
    outline: 2px solid var(--uq-theme-primary, #104E8B);
    outline-offset: 2px;
    border-radius: 2px;
}


/* ==========================================
   Shared H2 section-title scale
   Used by: every Flexible Content module that renders a section title
   ==========================================
   Each module used to carry its own clamp() plus its own set of breakpoint
   overrides. Measured across the live pages that produced a 24px spread on
   desktop (40 -> 64px) and a 33px spread on tablet (30 -> 63px), and several
   modules rendered LARGER at 900px than on desktop because their <=991px
   override used 7vw with a 56-64px ceiling.

   The font-size now comes only from here, through --uq-module-title-* in :root.
   Every module keeps its own colour, margins, max-width, weight, letter-spacing
   and line-height, so spacing and proportions are unchanged.

   :not([class*="uq-heading-"]) matches the convention already used by FAQ,
   Pricing and Manufacturers: an explicit Heading Style choice in ACF still wins
   through the shared .uq-heading-* classes.

   Out of scope by design, so not listed here: the hero H1 modules, the
   editor-sized .uq-footer-cta__title, and the compact CTA headings
   .uq-contact-banner__title (24px) and .uq-article-end__title (30px). */
.uq-reviews__title:not([class*="uq-heading-"]),
.uq-faq__title:not([class*="uq-heading-"]),
.uq-feature-showcase__title:not([class*="uq-heading-"]),
.uq-filterable-cards__title:not([class*="uq-heading-"]),
.uq-how-it-works__title:not([class*="uq-heading-"]),
.uq-interactive-features__title:not([class*="uq-heading-"]),
.uq-flex-feature__title:not([class*="uq-heading-"]),
.uq-quo-showcase__title:not([class*="uq-heading-"]),
.uq-manufacturers__section-title:not([class*="uq-heading-"]),
.uq-pricing__section-title:not([class*="uq-heading-"]),
.uq-pricing__compare-title:not([class*="uq-heading-"]),
.uq-multi-services__title:not([class*="uq-heading-"]),
.uq-service-comparison__title:not([class*="uq-heading-"]),
.uq-service-feature__title:not([class*="uq-heading-"]),
.uq-project-split__title:not([class*="uq-heading-"]),
.uq-process__section-title:not([class*="uq-heading-"]) {
    font-size: var(--uq-module-title-size);
}

@media screen and (max-width: 991px) {
    .uq-reviews__title:not([class*="uq-heading-"]),
    .uq-faq__title:not([class*="uq-heading-"]),
    .uq-feature-showcase__title:not([class*="uq-heading-"]),
    .uq-filterable-cards__title:not([class*="uq-heading-"]),
    .uq-how-it-works__title:not([class*="uq-heading-"]),
    .uq-interactive-features__title:not([class*="uq-heading-"]),
    .uq-flex-feature__title:not([class*="uq-heading-"]),
    .uq-quo-showcase__title:not([class*="uq-heading-"]),
    .uq-manufacturers__section-title:not([class*="uq-heading-"]),
    .uq-pricing__section-title:not([class*="uq-heading-"]),
    .uq-pricing__compare-title:not([class*="uq-heading-"]),
    .uq-multi-services__title:not([class*="uq-heading-"]),
    .uq-service-comparison__title:not([class*="uq-heading-"]),
    .uq-service-feature__title:not([class*="uq-heading-"]),
    .uq-project-split__title:not([class*="uq-heading-"]),
    .uq-process__section-title:not([class*="uq-heading-"]) {
        font-size: var(--uq-module-title-size-lg);
    }
}

@media screen and (max-width: 767px) {
    .uq-reviews__title:not([class*="uq-heading-"]),
    .uq-faq__title:not([class*="uq-heading-"]),
    .uq-feature-showcase__title:not([class*="uq-heading-"]),
    .uq-filterable-cards__title:not([class*="uq-heading-"]),
    .uq-how-it-works__title:not([class*="uq-heading-"]),
    .uq-interactive-features__title:not([class*="uq-heading-"]),
    .uq-flex-feature__title:not([class*="uq-heading-"]),
    .uq-quo-showcase__title:not([class*="uq-heading-"]),
    .uq-manufacturers__section-title:not([class*="uq-heading-"]),
    .uq-pricing__section-title:not([class*="uq-heading-"]),
    .uq-pricing__compare-title:not([class*="uq-heading-"]),
    .uq-multi-services__title:not([class*="uq-heading-"]),
    .uq-service-comparison__title:not([class*="uq-heading-"]),
    .uq-service-feature__title:not([class*="uq-heading-"]),
    .uq-project-split__title:not([class*="uq-heading-"]),
    .uq-process__section-title:not([class*="uq-heading-"]) {
        font-size: var(--uq-module-title-size-md);
    }
}

@media screen and (max-width: 479px) {
    .uq-reviews__title:not([class*="uq-heading-"]),
    .uq-faq__title:not([class*="uq-heading-"]),
    .uq-feature-showcase__title:not([class*="uq-heading-"]),
    .uq-filterable-cards__title:not([class*="uq-heading-"]),
    .uq-how-it-works__title:not([class*="uq-heading-"]),
    .uq-interactive-features__title:not([class*="uq-heading-"]),
    .uq-flex-feature__title:not([class*="uq-heading-"]),
    .uq-quo-showcase__title:not([class*="uq-heading-"]),
    .uq-manufacturers__section-title:not([class*="uq-heading-"]),
    .uq-pricing__section-title:not([class*="uq-heading-"]),
    .uq-pricing__compare-title:not([class*="uq-heading-"]),
    .uq-multi-services__title:not([class*="uq-heading-"]),
    .uq-service-comparison__title:not([class*="uq-heading-"]),
    .uq-service-feature__title:not([class*="uq-heading-"]),
    .uq-project-split__title:not([class*="uq-heading-"]),
    .uq-process__section-title:not([class*="uq-heading-"]) {
        font-size: var(--uq-module-title-size-sm);
    }
}


/* ==========================================
   Shared card-title typography
   Used by: every Flexible Content module that renders a card title
   ==========================================
   Reference is the Service Cards title, .uq-multi-services__card-title. Before
   this, the seven card titles rendered at 16px, 16px, 18px, 20px, 24px, 24px and
   25.6px, with weights of 500 and 600, line-heights from 1.1 to 1.35 and four
   different letter-spacings.

   Service Comparison's design-3 column counts as a card here: it is a repeated
   container with its own border, 10px radius and white background, so its head
   is a card title rather than a table header.

   font-family is deliberately absent: `h1..h6, .heading` and a dedicated rule
   for .uq-footer-cta__card-title already force var(--uq-site-font-heading) with
   !important, so all seven were on the heading face already. The
   `font-family: var(--uq-site-font-body)` that three of these rules declared was
   dead code and has been removed rather than re-declared here.

   Only the four type properties are set. Each module keeps its own colour,
   margins and padding, so card layouts, dimensions and spacing are unchanged. */
.uq-multi-services__card-title,
.uq-feature-showcase__card-title,
.uq-filterable-cards__card-title,
.uq-how-it-works__card-title,
.uq-service-feature__card-title,
.uq-footer-cta__card-title,
.uq-service-comparison__design3-table-title {
    font-size: var(--uq-module-card-title-size);
    font-weight: var(--uq-module-card-title-weight);
    line-height: var(--uq-module-card-title-line-height);
    letter-spacing: var(--uq-module-card-title-letter-spacing);
}
