/* Shared components for every page: header, footer, WhatsApp button, consent banner, FAQ, contact page. */
:root{--m-navy:#071b28;--m-deep:#0b2937;--m-gold:#d9ad78;--m-gold-d:#9a6b35;--m-ink:#142f3d;--m-muted:#556d76;--m-paper:#f6f7f5;--m-line:#d6e1e0;font-family:Cairo,system-ui,sans-serif;color:var(--m-ink);background:var(--m-paper)}
*{box-sizing:border-box}body{margin:0;font-family:Cairo,system-ui,sans-serif}a{color:inherit;text-decoration:none}img{max-width:100%}
:focus-visible{outline:3px solid var(--m-gold);outline-offset:2px}
.skip-link{position:absolute;right:12px;top:-60px;z-index:200;background:var(--m-gold);color:var(--m-navy);padding:10px 16px;font-weight:800}.skip-link:focus{top:12px}
.sh-wrap{width:min(1240px,calc(100% - 64px));margin:auto}

/* Header */
.sh{background:var(--m-navy);color:#fff;border-bottom:1px solid #ffffff1f;position:relative;z-index:50}
.sh-nav{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.sh-brand{display:inline-flex;align-items:center;gap:12px;flex:none}
.sh-brand img{display:block;height:76px;width:auto;background:#fff;padding:4px 8px;border-radius:2px}
.sh-sub{font-size:13px;line-height:1.5;font-weight:800;color:var(--m-gold)}
.sh-links{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:700}
.sh-links a{position:relative;padding:6px 0}
.sh-links a:hover,.sh-links a[aria-current=page]{color:var(--m-gold)}
.sh-links a[aria-current=page]:not(.sh-cta):after{content:"";position:absolute;right:0;left:0;bottom:-2px;height:2px;background:var(--m-gold)}
.sh-cta{border:1px solid #8ea7af;padding:10px 19px!important}
.sh-cta:hover{background:var(--m-gold);color:var(--m-navy)!important;border-color:var(--m-gold)}
.sh-menu{display:none;background:none;border:0;width:44px;height:44px;padding:10px;cursor:pointer}
.sh-menu span{display:block;height:2px;background:#fff;margin:5px 0;transition:transform .2s,opacity .2s}
.sh-menu[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.sh-menu[aria-expanded=true] span:nth-child(2){opacity:0}
.sh-menu[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Footer (overrides legacy element rules) */
footer.sf{background:#061720;color:#acc0c4;padding:60px 0 0;font-size:14px;display:block}
footer.sf .sf-grid{display:grid;grid-template-columns:1.4fr 1fr 1.2fr 1fr;gap:40px}
footer.sf h2{color:#fff;font-size:16px;margin:0 0 16px}
footer.sf ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
footer.sf ul a{line-height:1.7}
footer.sf a:hover{color:var(--m-gold)}
footer.sf .sf-about img{background:#fff;padding:4px 6px;height:70px;width:auto}
footer.sf .sf-about p{line-height:1.9;margin:14px 0}
footer.sf address{font-style:normal;display:grid;gap:6px}
footer.sf address span,footer.sf .sf-bottom span{display:inline;margin:0}
footer.sf .sf-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #ffffff1a;margin-top:44px;padding:22px 0;font-size:13px}
.sf-cookie{background:none;border:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;padding:0}

/* WhatsApp */
.wa-float{position:fixed;left:24px;bottom:24px;z-index:100;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#25d366;box-shadow:0 9px 27px #071f2b42;border:2px solid #fff;transition:transform .18s}
.wa-float:hover{transform:translateY(-3px)}.wa-float img{width:31px;height:31px;display:block}

/* Consent banner */
.cc{position:fixed;z-index:150;right:24px;bottom:24px;max-width:430px;background:#fff;color:var(--m-ink);border:1px solid var(--m-line);box-shadow:0 18px 45px #071b2833;padding:20px 22px}
.cc p{margin:0 0 14px;font-size:14px;line-height:1.9}.cc p a{color:var(--m-gold-d);font-weight:700;text-decoration:underline}
.cc-actions{display:flex;gap:10px;flex-wrap:wrap}
.cc-btn{font:inherit;font-weight:800;font-size:14px;padding:9px 18px;cursor:pointer;border:1px solid var(--m-navy)}
.cc-accept{background:var(--m-navy);color:#fff}.cc-reject{background:#fff;color:var(--m-navy)}

/* FAQ block on service pages */
.faq-block{background:#eaf0ef;padding:80px 0;color:var(--m-ink)}
.faq-eyebrow{color:var(--m-gold-d);font-size:13px;font-weight:800}
.faq-block h2{font-size:clamp(28px,3.2vw,42px);line-height:1.45;margin:8px 0 26px}
.faq-list{display:grid;gap:12px;max-width:900px}
.faq-list details,.ar-faq details{background:#fff;border:1px solid var(--m-line)}
.faq-list summary,.ar-faq summary{cursor:pointer;padding:18px 22px;font-weight:800;font-size:17px;line-height:1.7;list-style:none;position:relative;padding-left:50px}
.faq-list summary::-webkit-details-marker,.ar-faq summary::-webkit-details-marker{display:none}
.faq-list summary:after,.ar-faq summary:after{content:"+";position:absolute;left:20px;top:14px;font-size:24px;color:var(--m-gold-d)}
.faq-list details[open] summary:after,.ar-faq details[open] summary:after{content:"−"}
.faq-list details p,.ar-faq details p{margin:0;padding:0 22px 20px;color:var(--m-muted);line-height:2;font-size:16px}

/* Contact page */
.ct-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:50px;align-items:start}
.ct-form{display:grid;gap:18px;margin-top:10px}
.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ct-form label{display:grid;gap:7px;font-size:14px;font-weight:700;color:var(--m-ink)}
.ct-form input,.ct-form select,.ct-form textarea{font:inherit;font-size:16px;padding:12px 14px;border:1px solid #bfcfd0;background:#fff;color:var(--m-ink);border-radius:0;width:100%}
.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus{border-color:var(--m-gold-d);outline:2px solid #d9ad7855}
.ct-form [aria-invalid=true]{border-color:#b3261e}
.ct-form .ct-check{display:flex;gap:10px;align-items:flex-start;font-weight:500;line-height:1.8}
.ct-check input{width:18px;height:18px;margin-top:5px;flex:none}.ct-check a{color:var(--m-gold-d);text-decoration:underline}
.ct-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ct-submit{border:0;cursor:pointer;justify-self:start}.ct-submit[disabled]{opacity:.6;cursor:wait}
.ct-note{margin:0;font-weight:700;min-height:1em}.ct-note.ok{color:#1d6b3a}.ct-note.err{color:#b3261e}
.ct-recaptcha{font-size:12px;color:var(--m-muted);margin:0}.ct-recaptcha a{text-decoration:underline}
.ct-alert{padding:14px 18px;margin:10px 0;font-weight:700}.ct-ok{background:#e3f3e8;color:#1d6b3a}.ct-err{background:#fbe9e7;color:#b3261e}
.ct-info{display:grid;gap:18px;position:sticky;top:20px}
.ct-card{background:var(--m-deep);color:#fff;padding:28px}
.ct-card h2{font-size:22px!important;margin:0 0 16px!important}
.ct-card dl{margin:0;display:grid;gap:4px}.ct-card dt{color:var(--m-gold);font-size:13px;font-weight:800;margin-top:10px}.ct-card dd{margin:0;line-height:1.8;color:#d7e3e5}
.ct-card a:hover{color:var(--m-gold)}.ct-gbp{display:inline-block;margin-top:16px;color:var(--m-gold);font-weight:800}
.ct-map{position:relative;aspect-ratio:4/3;background:#dfe8e7 url('/assets/tech/field-operations.webp') center/cover;display:grid;place-items:center;border:1px solid var(--m-line)}
.ct-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ct-map-btn{font:inherit;font-weight:800;background:var(--m-navy);color:#fff;border:0;padding:12px 20px;cursor:pointer}
.nf-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}

@media(max-width:960px){
  .sh-wrap{width:calc(100% - 32px)}
  .sh-nav{min-height:78px}.sh-brand img{height:60px}
  .sh-menu{display:block}
  .sh-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--m-navy);flex-direction:column;align-items:stretch;padding:18px 24px 26px;gap:6px;border-top:1px solid #ffffff1f}
  .sh-links.open{display:flex}.sh-links a{padding:10px 0}.sh-links a[aria-current=page]:after{display:none}
  .sh-cta{text-align:center;margin-top:8px}
  footer.sf .sf-grid{grid-template-columns:1fr 1fr}
  .ct-grid{grid-template-columns:1fr}.ct-info{position:static}
}
@media(max-width:650px){
  footer.sf .sf-grid{grid-template-columns:1fr;gap:30px}
  footer.sf .sf-bottom{flex-direction:column;align-items:flex-start}
  .ct-row{grid-template-columns:1fr}
  .wa-float{left:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:54px;height:54px}
  .cc{right:12px;left:12px;bottom:12px;max-width:none}
  .faq-block{padding:60px 0}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Dynamic article cards inside legacy grids */
.service .read{margin-top:auto;color:#996c38;font-size:14px;font-weight:800}
.grid a.service{color:inherit}.grid a.service:hover{border-color:#ad8658}
.dark a.service:hover{border-color:var(--m-gold)}

/* Home: link band to the construction sub-site */
.subsite{background:var(--m-deep);color:#fff;padding:0}
.subsite-grid{display:grid;grid-template-columns:380px 1fr;gap:56px;align-items:center}
.subsite img{width:100%;height:100%;max-height:380px;object-fit:cover;display:block}
.subsite h2{font-size:clamp(28px,3.4vw,44px);line-height:1.45;margin:10px 0}
.subsite p{color:#c8d7db;font-size:17px;line-height:2;margin:0 0 26px;max-width:620px}
.subsite .subsite-grid>div{padding:50px 0}
@media(max-width:800px){.subsite-grid{grid-template-columns:1fr;gap:0}.subsite img{max-height:240px;width:calc(100% + 32px);margin:0 -16px}}
