/* Shared enquiry, navigation and accessibility fixes — 20 October 2026. */
[hidden] { display: none !important; }
html { scroll-padding-top: 5.25rem; }
body { overflow-wrap: break-word; }
main { min-width: 0; }
:root { --stone: #686256; --gold-ink: #80601d; }
:focus-visible { outline: 3px solid #247b95; outline-offset: 4px; }
section[id], main[id] { scroll-margin-top: 0; }
.reveal { opacity: 1; transform: none; }
.skip-link {
  position: fixed; top: 0.6rem; left: 1rem; z-index: 10000;
  padding: 0.8rem 1rem; background: #fff; color: #14233a;
  transform: translateY(-200%); font-weight: 600;
}
.skip-link:focus { transform: translateY(0); }
#siteHeader {
  position: sticky; top: 0; width: 100%; z-index: 1000;
  background: #f7f4ef; padding: 0; border-bottom: 1px solid #e3ddd1;
}
#siteHeader .logo-text { color: #14233a; }
#siteHeader .logo-subtext { color: #686256; }
#siteHeader nav a:not(.nav-cta) { color: #1c2330; }
#siteHeader .nav-cta { color: #14233a; border-color: #14233a; background: transparent; }
#siteHeader .nav-cta:hover { color: #fff; background: #14233a; }
#siteHeader nav .nav-switch { color: #456335 !important; }
#siteHeader .menu-toggle span { background: #14233a; }
#siteHeader nav { gap: 1.3rem; }
#siteHeader .header-container { gap: 1.3rem; }
#siteHeader nav a { min-height: 44px; display: inline-flex; align-items: center; }
#siteHeader .menu-toggle { width: 48px; height: 48px; align-items: center; justify-content: center; padding: 8px; }
.hero { display: block; min-height: 620px; height: auto; padding: 5rem 0; }
.hero-stats { width: 100%; }
#intro { padding: 4rem 0; }
#intro .section-head { margin-bottom: 1.7rem; }
.enquiry-hint { color: #545b67; margin-top: 1rem; font-size: 0.95rem; }
.hero .enquiry-hint { color: #e2e6ed; }
.enquiry-dock {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 800;
  background: #d9b96f; color: #14233a; border: 2px solid #14233a;
  padding: 0.85rem 1.25rem; border-radius: 4px; text-decoration: none;
  font: 600 1rem/1.4 'Inter', sans-serif; box-shadow: 0 3px 15px #0003;
}
.enquiry-dock:hover { background: #efd298; }
.gateway-compact { position: static; height: auto; min-height: 0; }
.gateway-compact .gateway { min-height: 0; height: auto; display: grid; grid-template-columns: 1fr 1fr; }
.gateway-compact .panel { min-height: 270px; height: auto; padding: 2.5rem 2rem; }
.gateway-compact .panel-content { max-width: 470px; }
.gateway-compact .panel h2 { font-size: 2rem; margin-bottom: 0.8rem; }
.gateway-compact .panel p { margin-bottom: 1rem; }
.gateway-compact .panel-icon { display: none; }
.gateway-compact .panel-proof { color: #d6d6d6; margin-bottom: 1rem; }
.gateway-compact .panel-eyebrow { color: #ddd1ad; }
.gateway-compact .enter { color: #fff; }
#contact { padding: 4.5rem 0; }
#contact h2, #contact h3 { color: #fff; }
#contact .lead, #contact .section-head p, #contact .contact-meta { color: #dfe4ec; }
#contact a { overflow-wrap: anywhere; }
#contact a:not(.btn) { color: #ecd198; }
#contact .contact-detail .k { color: #c6ccd5; }
.contact-wrapper { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 3rem; }
.contact-info, .contact-form { min-width: 0; }
.contact-info p { margin-bottom: 1rem; }
.contact-form { padding: 2rem; background: #1d2b40; border: 1px solid #758091; }
.contact-form fieldset { border: 0; min-width: 0; }
.form-intro { margin-bottom: 1rem; color: #e2e6ed; }
.form-status { padding: 0.85rem 1rem; margin-bottom: 1.2rem; border-left: 3px solid #d9b96f; background: #14233a; color: #f4e5c5; line-height: 1.5; }
.form-status[data-state="error"] { border-color: #ffb4b4; color: #ffe2e2; }
.form-status[data-state="success"] { border-color: #99dfb9; color: #c3f4d9; }
.form-group label { color: #eef0f5; font-family: 'Inter', sans-serif; font-size: 0.9rem; letter-spacing: 0; text-transform: none; font-weight: 500; }
.form-group input, .form-group textarea, .form-group select {
  color: #14233a; background: #fff; border: 2px solid #cad1dc;
  font-size: 16px; border-radius: 3px; min-height: 48px;
}
.form-group input::placeholder, .form-group textarea::placeholder { color: #626b78; opacity: 1; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus {
  background: #fff; outline: 3px solid #d9b96f; outline-offset: 2px; border-color: #14233a;
}
.form-group input:disabled, .form-group textarea:disabled, .form-group select:disabled { color: #404c5e; opacity: 1; background: #e3e8f0; }
.optional-fields { margin: 0 0 1.3rem; border: 1px solid #758091; border-radius: 3px; padding: 0 1rem; }
.optional-fields summary { padding: 0.8rem 0; cursor: pointer; color: #f4e5c5; min-height: 48px; }
.optional-fields[open] summary { margin-bottom: 0.5rem; }
.form-privacy, .form-fallback { color: #e2e6ed; font-size: 0.88rem; line-height: 1.65; margin: 1rem 0 0; }
.form-privacy a, .form-fallback a { text-decoration: underline; text-underline-offset: 3px; }
.form-fallback { border-top: 1px solid #758091; padding-top: 1rem; }
.form-fallback a, .copy-button { display: inline-block; padding: 0.6rem 0; min-height: 44px; }
.copy-button { border: 0; background: transparent; color: #ecd198; font: inherit; text-decoration: underline; cursor: pointer; margin-left: 1rem; }
.copy-text { width: 100%; min-height: 200px; margin-top: 1rem; color: #14233a; background: #fff; padding: 0.8rem; font-size: 16px; }
.contact-form button[type="submit"] { min-height: 50px; cursor: pointer; border: 0; }
.contact-form button:disabled { background: #ccd0d6; color: #303b4b; cursor: not-allowed; opacity: 1; box-shadow: none; transform: none; }
.hp-field { display: none; }
.new-enquiry { margin-top: 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.portfolio-card h3 { font-size: 1.15rem; line-height: 1.35; }
.portfolio-card .project-preview-link { display: block; height: 100%; }
.portfolio-card .project-preview-link:focus-visible { outline-offset: -4px; }
.portfolio-card .view-tag { opacity: 1; transform: none; }
.why-item h3 { color: #fff; font-size: 1.2rem; margin-bottom: 0.8rem; }
.viewer-open { overflow: hidden; }
.project-viewer {
  margin: auto; width: min(1000px, 94vw); max-height: 92dvh;
  background: #14233a; color: #fff; border: 1px solid #758091; border-radius: 6px;
  padding: 1.5rem; overflow-y: auto;
}
.project-viewer::backdrop { background: #070d17dd; }
.viewer-top { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-bottom: 1rem; }
.project-viewer h2 { color: #fff; font-size: 1.35rem; }
.viewer-close { color: #14233a; background: #ecd198; border: 0; padding: 0.8rem 1rem; font: inherit; min-height: 44px; cursor: pointer; }
.project-viewer img { display: block; width: 100%; height: auto; object-fit: contain; max-height: 65dvh; background: #fff; }
.project-viewer p { margin-top: 1rem; color: #e2e6ed; }
.project-viewer a { display: inline-block; padding: 0.7rem 0; color: #ecd198; }
.ad-placement { max-width: 1140px; margin: 4rem auto; padding: 1.5rem; min-height: 330px; background: #eee9df; border-top: 1px solid #cbc4b8; border-bottom: 1px solid #cbc4b8; }
.ad-placement p { color: #545b67; font-size: 0.8rem; text-align: center; margin-bottom: 1rem; }
.prose { max-width: 780px; padding-top: 3rem; padding-bottom: 4rem; }
.prose h1 { font-size: clamp(2rem, 5vw, 3rem); margin-bottom: 1.2rem; }
.prose h2 { font-size: 1.6rem; margin: 2rem 0 0.8rem; }
.prose p, .prose ul { margin-bottom: 1rem; }
.prose ul { padding-left: 1.5rem; }
.prose a { color: #285d78; }
.prose .btn-primary { color: #14233a; }
.process-step .step-num { color: #80601d; }
#why-us .eyebrow { color: #d9b96f; }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
.footer-bottom { gap: 1rem; flex-wrap: wrap; }
footer { padding-bottom: 6rem; }
.tools-strip .tools-label, .ratings-strip .ratings-label, .service-num { color: #686256; }
.quote-attrib .attrib-name { color: #545b67; }
.hero .hero-eyebrow { color: #d9b96f; }
.hero-stats .stat-label { color: #d0d6df; }

@media (max-width: 1000px) {
  #siteHeader .header-container { flex-wrap: wrap; padding: 0.6rem 1.2rem; }
  #siteHeader .menu-toggle { display: flex; }
  #siteHeader #navMenu {
    position: static; width: 100%; height: auto; max-width: none; max-height: 70dvh; overflow-y: auto;
    flex-basis: 100%; display: flex; flex-direction: column; gap: 0.25rem; align-items: stretch;
    padding: 0.5rem 0 1rem; background: #f7f4ef; box-shadow: none; transition: none;
  }
  #siteHeader #navMenu a { padding: 0.5rem 0.7rem; }
  #siteHeader #navMenu .nav-cta { justify-content: center; }
  .contact-wrapper { grid-template-columns: 1fr; gap: 2rem; }
}
@media (min-width: 1001px) { #siteHeader .menu-toggle { display: none; } }
@media (max-width: 600px) {
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .container { padding-left: 1.2rem; padding-right: 1.2rem; }
  .hero { min-height: 0; padding: 3.2rem 0; }
  #intro { padding-top: 2.5rem; padding-bottom: 2.5rem; }
  .gateway-compact .gateway { grid-template-columns: 1fr; }
  .gateway-compact .panel { min-height: 0; padding: 2rem 1.2rem; }
  .contact-form { padding: 1.2rem; }
  #contact { padding: 2.2rem 0; }
  .contact-wrapper { gap: 1.2rem; }
  .contact-info h2 { font-size: 1.9rem; }
  .contact-info .lead { margin-bottom: 1rem; }
  .contact-info .contact-meta { margin-top: 0.8rem; padding-top: 0.8rem; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .cta-buttons { flex-direction: column; align-items: stretch; }
  .cta-buttons .btn { justify-content: center; }
  .enquiry-dock { bottom: 0; right: 0; left: 0; border-radius: 0; border-width: 2px 0 0; text-align: center; padding-bottom: calc(0.9rem + env(safe-area-inset-bottom)); }
  .copy-button { margin-left: 0; display: block; }
  .project-viewer { padding: 1rem; }
  .ad-placement { margin: 3rem 1.2rem; padding: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
