/* Content and accessibility additions. The supplied Vixan theme remains in style.css. */
[hidden] { display: none !important; }
img { height: auto; }
.id-skip-link { position: fixed; top: -100px; left: 16px; z-index: 100000; padding: 12px 20px; background: #ffff00; color: #101010; }
.id-skip-link:focus { top: 12px; }
:focus-visible { outline: 3px solid currentColor; outline-offset: 5px; }
.id-content { margin-top: 85px; margin-bottom: 85px; }
.id-content h2, .id-article h2 { font-size: clamp(27px, 3vw, 42px); line-height: 1.2; margin-bottom: 24px; }
.id-content h3, .id-article h3 { font-size: clamp(21px, 2vw, 26px); line-height: 1.3; }
.id-content p, .id-article p { font-size: 18px; line-height: 1.75; }
.id-content p:last-child { margin-bottom: 0; }
.id-eyebrow { text-transform: uppercase; letter-spacing: .09em; font-size: 14px !important; font-weight: 500; }
.id-intro { max-width: 900px; margin-bottom: 35px; }
.id-lead { font-size: clamp(19px, 2vw, 24px) !important; line-height: 1.65; max-width: 1000px; margin-top: 28px; }
.id-title { font-size: clamp(36px, 5.2vw, 76px); line-height: 1.13; max-width: 1150px; }
.id-page-heading { overflow-wrap: break-word; }
.id-breadcrumb { margin-bottom: 25px; font-size: 14px; }
.id-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px 14px; padding: 0; list-style: none; }
.id-breadcrumb li + li::before { content: '/'; margin-right: 14px; opacity: .55; }
.id-breadcrumb a { text-decoration: underline; text-underline-offset: 3px; }
.id-scope { padding: 28px; border: 1px solid #bdbdbd; height: 100%; }
.id-scope p { margin-bottom: 0; }
.id-scope h3 a { text-decoration: none; }
.id-scope > a { display: inline-block; margin-top: 18px; }
.id-process { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; padding: 0; list-style: none; }
.id-process li { padding-top: 22px; border-top: 3px solid #101010; }
.dark .id-process li { border-color: #ffff00; }
.id-note { margin-top: 32px; padding: 30px; background: #f3f3f3; border-left: 4px solid #7d7900; color: #292929; }
.id-note h2, .id-note h3 { color: #101010; }
.dark .id-note { background: #242424; color: #e5e5e5; border-color: #ffff00; }
.dark .id-note h2, .dark .id-note h3 { color: #fff; }
.id-faq details { border-bottom: 1px solid #aaa; padding: 21px 0; }
.id-faq summary { cursor: pointer; font-size: 20px; line-height: 1.45; font-family: var(--heading-font-family); font-weight: 600; padding-right: 14px; }
.id-faq details p { margin-top: 18px; margin-bottom: 0; }
.id-links { padding-left: 20px; }
.id-links li { margin-bottom: 14px; line-height: 1.6; }
.id-links a, .id-article p a, .id-article li a, .id-help a, .id-content p a { text-decoration: underline; text-underline-offset: 4px; }
.id-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; margin-top: 26px; }
.id-actions .cs_btn { gap: 15px; }
.id-actions a:not(.cs_btn) { text-decoration: underline; text-underline-offset: 4px; }
.id-cta { padding-top: 40px; padding-bottom: 40px; border-top: 1px solid #bbb; display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; }
.id-cta .id-actions { align-content: center; }
.id-meta { font-size: 14px !important; line-height: 1.7; letter-spacing: .01em; margin: 24px 0; }
.id-blog-card { margin-bottom: 50px; }
.id-blog-card .cs_blog_title { font-size: 27px; line-height: 1.25; }
.id-blog-card .cs_blog_subtitle { font-size: 17px; }
.id-blog-card img { width: 100%; aspect-ratio: 1.3; object-fit: cover; }
.id-blog-card .id-read { display: inline-block; border-bottom: 1px solid currentColor; margin-top: 10px; }
.cs_blog.cs_style_1:hover .cs_blog_title { color: var(--heading-color); text-decoration: underline; text-underline-offset: 5px; }
.dark .cs_blog.cs_style_1:hover .cs_blog_title { color: #ffff00; }
.id-article { max-width: 960px; padding-top: 25px; padding-bottom: 30px; overflow-wrap: break-word; }
.id-article section, .id-article aside { margin-top: 45px; scroll-margin-top: 110px; }
.id-article li { font-size: 18px; line-height: 1.7; margin-bottom: 10px; }
.id-article-image { display: block; width: 100%; max-height: 540px; object-fit: contain; margin: 32px auto; }
.id-project-image { width: 100%; height: auto; margin: 32px 0; }
.id-toc { background: #f4f4f4; padding: 28px 30px; margin-top: 32px; }
.dark .id-toc { background: #242424; }
.id-toc strong { display: block; margin-bottom: 15px; font-family: var(--heading-font-family); }
.id-toc ol { margin-bottom: 0; }
.id-project-facts { display: grid; grid-template-columns: 130px 1fr; gap: 14px; }
.id-project-facts dd { margin: 0; }
.id-table-wrap { overflow-x: auto; }
.id-table-wrap table { width: 100%; border-collapse: collapse; font-size: 18px; }
.id-table-wrap th, .id-table-wrap td { padding: 18px; border: 1px solid #aaa; text-align: left; vertical-align: top; }
.id-table-wrap th { background: #f4f4f4; color: #101010; }
.dark .id-table-wrap th { background: #242424; color: #fff; }
.id-form-row { margin: 25px 0 18px; }
.id-form-row label { display: block; margin-bottom: 10px; }
.id-form-row select { min-height: 48px; width: 100%; background: transparent; color: var(--body-color); border: 0; border-bottom: 2px solid var(--body-color); padding: 8px 0; }
.dark .id-form-row option { background: #101010; color: #fff; }
#enquiry-form { max-width: 920px; }
#enquiry-form .cs_field_group { padding-top: 18px; }
#enquiry-form .cs_input_label, #enquiry-form .cs_input_field:placeholder-shown ~ .cs_input_label { top: 0; font-size: 15px; }
#enquiry-form .cs_input_field:focus ~ .cs_input_label { color: var(--body-color); }
#enquiry-form .cs_input_field:focus { border-image: none; border-color: var(--heading-color); }
#enquiry-form .id-message-field { margin-top: 18px; }
#enquiry-form .cs_input_field { scroll-margin-top: 110px; }
#enquiry-form button:disabled { opacity: .6; cursor: wait; }
.id-form-note { font-size: 14px; line-height: 1.6; margin: 10px 0 0; opacity: .8; }
.id-budget-select:disabled { opacity: .6; cursor: not-allowed; }
.cs_partner_logo { min-width: 220px; padding: 12px 38px; }
.cs_partner_logo > img { display: block; width: 220px; height: 100px !important; max-width: 220px; max-height: 100px !important; object-fit: contain; object-position: center; }
.id-marquee-reverse .cs_moving_section { animation-direction: reverse; }
.id-help { font-size: 15px; line-height: 1.6; margin-top: 14px; }
.id-text-button { background: none; border: 0; color: inherit; padding: 8px 0; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
#enquiry-result h2 { font-size: 25px; }
#enquiry-result { scroll-margin-top: 110px; }
.cs_footer_contact_list a { overflow-wrap: anywhere; }
.cs_footer_info > img { max-width: 260px; width: 100%; height: auto; }
.cs_footer_nav { flex-wrap: wrap; }
.cs_footer_social { flex-wrap: wrap; }
.id-brief-link { display: flex; align-items: center; text-decoration: none; }
.id-brief-link .cs_newsletter_input { display: block; }
.id-side-title { color: #fff; font-family: var(--heading-font-family); font-size: 30px; }
.cs_nav .cs_nav_list > li:focus-within > ul { top: 100%; opacity: 1; visibility: visible; }
.cs_nav_list .cs_munu_dropdown_toggle { cursor: pointer; }
.cs_preloader { animation: id-loader-fallback .1s 5s forwards; }
@keyframes id-loader-fallback { to { opacity: 0; visibility: hidden; pointer-events: none; } }
.no-js .cs_preloader, .no-js .cs_cursor_1, .no-js .cs_cursor_2, .no-js .cs_toggle { display: none !important; }
.no-js .swiper-wrapper { transform: none !important; }
.no-js .cs_hero_wrap .swiper-slide:not(:first-child) { display: none; }
.id-gallery-dialog { position: fixed; inset: 0; border: 0; background: #101010; color: #fff; padding: 65px 20px 25px; width: 96vw; height: 94vh; max-width: 1500px; max-height: 96vh; }
.id-gallery-dialog::backdrop { background: rgba(0,0,0,.88); }
.id-gallery-inner { display: grid; grid-template-rows: minmax(0,1fr) auto auto; height: 100%; gap: 15px; text-align: center; }
.id-gallery-dialog img { max-width: 100%; max-height: 100%; height: 100%; width: 100%; object-fit: contain; }
.id-gallery-close { position: absolute; top: 10px; right: 18px; }
.id-gallery-dialog button { min-width: 44px; min-height: 44px; background: #ffff00; color: #101010; border: 0; padding: 9px 15px; cursor: pointer; }
.id-gallery-controls { display: flex; justify-content: center; gap: 20px; }
.id-gallery-dialog figcaption { font-size: 16px; line-height: 1.4; margin: 0; }
.id-gallery-dialog figure { margin: 0; }
@media (max-width: 1199px) {
 .cs_nav .cs_nav_list { width: min(100vw, 100% + 30px); }
 .no-js .cs_nav .cs_nav_list { display: block !important; position: static; width: auto; max-height: none; }
 .no-js .cs_nav .cs_nav_list ul { display: block !important; }
 .no-js .cs_site_header { position: relative; }
 .no-js .cs_main_header_in { height: auto; min-height: 80px; align-items: flex-start; }
 .cs_munu_dropdown_toggle { width: 44px; height: 44px; top: 0; }
 .cs_munu_toggle { min-height: 40px; }
}
@media (max-width: 991px) {
 .id-process { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .id-cta { grid-template-columns: 1fr; gap: 8px; }
 .id-content { margin-top: 60px; margin-bottom: 60px; }
 .cs_service_details_text .id-actions { margin-bottom: 20px; }
}
@media (max-width: 575px) {
 .id-process { grid-template-columns: 1fr; gap: 15px; }
 .id-note, .id-scope, .id-toc { padding: 22px; }
 .id-content h2, .id-article h2 { font-size: 28px; }
 .id-article p, .id-content p { font-size: 17px; }
 .id-actions { align-items: flex-start; gap: 18px; }
 .id-blog-card { margin-bottom: 28px; }
 .id-project-facts { grid-template-columns: 1fr; gap: 8px; }
 .id-project-facts dd { margin-bottom: 15px; }
 .id-table-wrap th, .id-table-wrap td { padding: 12px; font-size: 16px; }
 .cs_footer_contact_list { overflow-wrap: anywhere; }
 .cs_contact_title { overflow-wrap: break-word; }
 .cs_partner_logo { min-width: 180px; padding: 10px 22px; }
 .cs_partner_logo > img { width: 180px; height: 78px !important; max-width: 180px; max-height: 78px !important; }
}
@media (hover: none), (pointer: coarse) { .cs_cursor_1, .cs_cursor_2 { display: none !important; } }
@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
 .cs_cursor_1, .cs_cursor_2, .cs_preloader { display: none !important; }
}
