/* Usability corrections layered onto the original v34 visual theme. */
:root{--surface:rgba(8,17,31,.94);--surface-2:rgba(13,27,47,.94);--radius:18px;color-scheme:dark}
html{scroll-padding-top:100px}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}:root:not(.js) .reveal-up{opacity:1;transform:none}
button:disabled{cursor:default}.nav-toggle:focus-visible{outline-offset:3px}
.field-page .field-button{display:inline-flex;gap:14px;align-items:center;justify-content:center;padding:13px 20px;min-height:48px;background:linear-gradient(135deg,#1baaff,#0864ff);border:1px solid #53c4ff65;border-radius:12px;color:#fff;font-size:13px;font-weight:700;text-decoration:none}
.field-page .field-button:hover{background:#1176ff}.field-page p{line-height:1.8}.field-page .field-eyebrow{margin-bottom:20px}.field-page h1,.field-page h2,.field-page h3{margin-bottom:.6em}.field-page .field-actions>a{min-height:44px;display:inline-flex;align-items:center}.field-lightbox{color:var(--text)}
.project-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.project-shortcuts a{display:flex;align-items:center;gap:18px;padding:23px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.project-shortcuts a>i{font-size:25px;color:var(--cyan)}.project-shortcuts a>span{flex:1}.project-shortcuts strong{display:block;font-size:15px;line-height:1.5}.project-shortcuts small{display:block;color:var(--muted);font-size:12px;margin-top:6px}.project-shortcuts b{color:var(--cyan)}.project-shortcuts a:hover{border-color:var(--cyan)}
[data-reference-grid]>[hidden]{display:none!important}.reference-wrap[data-reference-controls]{grid-template-columns:46px minmax(0,1fr) 46px}.reference-wrap[data-reference-controls]>button{display:grid;place-items:center}.reference-wrap[data-reference-controls]>button:disabled{opacity:.32;box-shadow:none;transform:none}.reference-status{text-align:center;margin-top:15px;color:var(--muted);font-size:12px;min-height:20px}
.validation-summary-valid,.field-validation-valid{display:none}.validation-summary-errors{padding:16px 20px;border:1px solid #cf6e79;background:#341b2b;border-radius:12px;margin:15px 0;color:#ffbcc5}.input-validation-error{border-color:#ef8798!important}.field-validation-error{color:#ffb7c3}.form-card label{cursor:pointer}.form-card button[type=submit]{min-height:48px}
.gallery-thumb:focus-visible{outline-offset:2px}.empty-state{padding:35px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.empty-state .detail-actions{margin-top:20px}.skills-panel li{margin:12px 0;color:var(--muted);line-height:1.75}.service-wide-card h3{font-size:26px;margin:14px 0}.seo-faq-card summary{cursor:pointer;line-height:1.6}.seo-faq-card[open] summary{margin-bottom:14px}
@media(max-width:1024px){.main-nav.is-open{max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain}.reference-grid[data-reference-grid]{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:640px){.project-shortcuts{grid-template-columns:1fr}.project-shortcuts a{padding:20px;gap:14px}.project-shortcuts strong{font-size:14px}.reference-wrap[data-reference-controls]{grid-template-columns:34px minmax(0,1fr) 34px;gap:8px}.reference-wrap[data-reference-controls]>button{width:34px;height:44px}.reference-grid[data-reference-grid]{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.reference-grid[data-reference-grid] .reference-logo{height:80px;padding:8px}.reference-grid[data-reference-grid] .reference-logo img{width:100%;height:58px;object-fit:contain}.service-wide-card h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal-up{opacity:1!important;transform:none!important}.floating-card{transform:none!important}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

@media(min-width:1025px){.mock-hero__scene--realistic{width:100%;max-width:100%;min-width:0;min-height:0;aspect-ratio:16/10}}

/* Direct access to solutions, using the site's existing blue/navy palette. */
.nav-solutions{position:relative}
.nav-solutions>summary{display:flex;align-items:center;gap:8px;padding:12px 15px;border-radius:13px;color:#dcecff;font-size:.94rem;font-weight:700;cursor:pointer;list-style:none}
.nav-solutions>summary::-webkit-details-marker{display:none}
.nav-solutions>summary>i{font-size:9px;transition:transform .2s}
.nav-solutions[open]>summary,.nav-solutions>summary:hover,.nav-solutions>summary.is-active{color:#fff;background:rgba(19,112,255,.13)}
.nav-solutions[open]>summary>i{transform:rotate(180deg)}
.nav-solutions__panel{position:absolute;top:calc(100% + 14px);left:0;width:320px;padding:10px;background:#081423;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 55px #0009}
.main-nav .nav-solutions__panel>a{display:flex;align-items:center;gap:14px;padding:14px 12px;font-size:14px;line-height:1.45;white-space:normal}
.nav-solutions__panel>a>i{color:var(--cyan);width:22px;text-align:center;font-size:17px;flex-shrink:0}
.nav-solutions__panel small{display:block;font-size:11px;font-weight:400;line-height:1.6;color:var(--muted);margin-top:3px}
.main-nav .nav-solutions__panel>a:after{display:none}
.main-nav .nav-solutions__panel>.nav-solutions__all{border-top:1px solid var(--line);margin-top:5px;border-radius:0 0 9px 9px;justify-content:space-between;color:#80d8ff;font-size:12px}
.main-nav .nav-search{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:12px;padding:12px}
.nav-search>span{display:none}
.hero-solutions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 22px}
.hero-solutions a{display:inline-flex;gap:12px;align-items:center;min-height:40px;padding:8px 12px;background:#0c264780;border:1px solid #298ee644;border-radius:9px;color:#c7e7ff;font-size:12px;font-weight:600}
.hero-solutions a span{color:var(--cyan)}
.hero-solutions a:hover{border-color:var(--cyan);background:#11375b}
.catalog-results{min-width:0}
.catalog-mobile-filter{display:none}
.search-suggestions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0 32px;font-size:12px}
.search-suggestions>span{color:var(--muted);margin-right:4px}
.search-suggestions>a{padding:10px 14px;min-height:40px;border:1px solid var(--line);border-radius:20px;background:var(--panel)}
.search-suggestions>a:hover{border-color:var(--cyan);color:var(--cyan)}
.field-gallery-hint{font-size:12px;color:var(--muted);margin:-8px 0 24px}
.field-lightbox [data-photo-image]{touch-action:pan-y}
.field-lightbox button:disabled{opacity:.3;pointer-events:none}
:root:not(.js) .beach-filters,:root:not(.js) .field-gallery-hint{display:none}
.form-card [aria-busy=true],.form-card button:disabled{opacity:.75;cursor:wait}
.form-card button[type=submit],.catalog-mobile-filter button,.search-card button{background:linear-gradient(135deg,#1baaff,#0864ff);border:1px solid #53c4ff65;color:#fff;box-shadow:0 8px 24px #0864ff20}
.form-card button[type=submit]:hover:not(:disabled),.catalog-mobile-filter button:hover,.search-card button:hover{background:#1176ff}
.catalog-mobile-filter button,.search-card button{width:auto!important;max-width:none!important;flex:0 0 auto!important}
.quote-context{padding:18px 20px;margin:18px 0 24px;background:#0b2543;border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:12px;line-height:1.7}
.quote-context small{display:block;color:var(--muted)}
.quote-context a{color:#80d8ff;text-decoration:underline;text-underline-offset:3px}
[data-form-result],.validation-summary-errors{scroll-margin-top:110px}
@media(min-width:1025px) and (max-width:1280px){
    .main-nav{gap:1px}.main-nav>a,.nav-solutions>summary{padding:12px 9px;font-size:12px}.main-nav .nav-cta{margin-left:3px;padding:12px}
    .brand{min-width:0;gap:8px}.brand__text{font-size:.98rem}.brand__text small{font-size:.45rem}
}
@media(max-width:1024px){
    .nav-solutions{width:100%}.nav-solutions>summary{justify-content:space-between;width:100%;padding:14px 16px;border:1px solid rgba(95,178,255,.12);background:rgba(255,255,255,.025)}
    .nav-solutions__panel{position:static;width:100%;margin-top:7px;box-shadow:none;padding:5px;background:#071222}
    .main-nav .nav-solutions__panel>a{padding:12px}.main-nav .nav-search{justify-content:flex-start}.nav-search>span{display:inline}
    .catalog-sidebar{display:none}.content-with-sidebar:has(.catalog-results){grid-template-columns:1fr}
    .catalog-mobile-filter{display:block;padding:18px;margin:0 0 24px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
    .catalog-mobile-filter label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:10px}
    .catalog-mobile-filter>div{display:flex;gap:8px}.catalog-mobile-filter select{flex:1;min-width:0;width:100%;padding:12px 32px 12px 10px;border:1px solid #395571;border-radius:10px;background:#071524;color:var(--text);font:inherit;font-size:14px}
    .catalog-mobile-filter button{flex-shrink:0;min-height:46px;padding:10px 14px;font-size:13px}
}
@media(max-width:640px){
    .hero-solutions{gap:6px;margin:16px 0 20px}.hero-solutions a{padding:8px 10px;gap:7px;font-size:11px;min-height:40px}
    .search-suggestions{gap:8px}.search-suggestions>span{width:100%}.search-suggestions>a{font-size:11px;padding:9px 11px}
    .field-gallery-hint{line-height:1.6}.catalog-mobile-filter{padding:14px}
}

/* Keep contact and discovery links readable without repeating icon buttons. */
.footer-grid--organised{align-items:start;gap:28px;padding-block:38px}
.footer-grid--organised>div{min-width:0}
.footer-grid--organised .footer-list{font-size:13px;line-height:1.55;gap:6px}
.footer-grid--organised .footer-list a{display:inline-block;padding-block:5px;overflow-wrap:anywhere}
.footer-grid--organised .footer-list li>i{flex:0 0 15px;margin-top:8px;color:#73cfff;text-align:center}
.footer-grid--organised .footer-list li>span{padding-block:5px}
.footer-grid--organised .footer-about p{font-size:13px;line-height:1.8;max-width:340px}
@media(min-width:1181px){.footer-grid--organised{grid-template-columns:1.3fr 1.15fr .8fr 1.1fr .8fr!important}}
@media(min-width:641px) and (max-width:1180px){.footer-grid--organised{grid-template-columns:repeat(2,minmax(0,1fr))!important}.footer-grid--organised .footer-about{grid-column:1/-1}.footer-grid--organised .footer-about p{max-width:560px}}
@media(max-width:640px){.footer-grid--organised{padding-block:30px;gap:24px!important}.footer-grid--organised .footer-list{gap:3px}.footer-grid--organised .footer-list a{min-height:36px;padding-block:7px}.footer-grid--organised .footer-list li>i{margin-top:10px}}
