/* A & L Tasker 3.0 — architectural editorial system. */
:root { --rev-ink:#172a32; --rev-teal:#155e63; --rev-gold:#b8914f; --rev-sky:#e6f6ff; --rev-rule:#d5dddf; }
body { background:#fff; }
.alt-revamp { background:#fff; color:var(--rev-ink); }
.alt-revamp .rev-shell.e-con { width:100%; max-width:1280px; margin-inline:auto; }
.alt-revamp .rev-section { position:relative; }
.alt-revamp .rev-section:after { pointer-events:none; }
.alt-revamp .rev-open-item { box-shadow:none; border-radius:0; }
.alt-revamp .section-divider-gradient { display:none; }
.alt-revamp .rev-picture { overflow:hidden; }
.alt-revamp .rev-picture img { display:block; transition:transform 1s cubic-bezier(.2,.65,.25,1); }
.alt-revamp .rev-picture:hover img { transform:scale(1.035); }
.alt-revamp .elementor-heading-title { text-wrap:pretty; }
.alt-revamp .elementor-widget-text-editor p { line-height:1.75; }
.alt-revamp .rev-action .elementor-button { transition:background .25s,border-color .25s,transform .25s; }
.alt-revamp .rev-action .elementor-button:hover { transform:translateY(-2px); }
/* Shared header: single clean navigation line, with a restrained sticky state. */
.rev-header-shell { position:sticky; top:0; z-index:100; transition:box-shadow .25s; }
.admin-bar .rev-header-shell { top:var(--wp-admin--adminbar--height,32px); }
.elementor-editor-active .rev-header-shell { position:relative; top:0; }
.alt-revamp.alt-site-header { border-bottom:1px solid #d9c8a7; background:#fff; }
.alt-revamp.alt-site-header.is-scrolled { box-shadow:0 6px 24px #172a3210; }
.alt-revamp .alt-header-row { min-height:88px; }
.alt-revamp .alt-menu a { border-radius:0; position:relative; padding:10px 16px; }
.alt-revamp .alt-menu .current-menu-item>a,.alt-revamp .alt-menu .current-menu-ancestor>a,.alt-revamp .alt-menu a:hover { background:transparent; }
.alt-revamp .alt-menu a:after { content:''; height:1px; position:absolute; left:16px; right:16px; bottom:3px; background:var(--rev-gold); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.alt-revamp .alt-menu a:hover:after,.alt-revamp .alt-menu .current-menu-item>a:after { transform:scaleX(1); }
.alt-revamp .alt-menu .menu-item-has-children>a:after { content:'⌄'; position:static; height:auto; background:none; transform:none; }
.alt-revamp .alt-site-footer .alt-menu a:after { left:0; right:0; }
.alt-revamp .alt-button,.alt-revamp .alt-button .elementor-button { border-radius:2px; }
/* Full-width image-led hero. Actual text/buttons remain Elementor widgets. */
.alt-revamp .rev-hero { position:relative; isolation:isolate; overflow:hidden; background:var(--rev-ink); }
.alt-revamp .rev-hero-photo.elementor-element { position:absolute; inset:0; z-index:0; width:100%; height:100%; max-width:none; }
.alt-revamp .rev-hero-photo .elementor-widget-container,.alt-revamp .rev-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center; }
.alt-revamp .rev-hero:before { content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,#172a32 0%,#172a32 40%,rgba(23,42,50,.96) 47%,rgba(23,42,50,.08) 70%,transparent 100%); pointer-events:none; }
.alt-revamp .rev-hero:after { content:''; position:absolute; bottom:-1px; left:0; width:100%; height:65px; background:#fff; clip-path:polygon(0 0,100% 100%,0 100%); z-index:3; }
.alt-revamp .rev-hero-inner { position:relative; z-index:2; }
.alt-revamp .rev-hero-text { width:56%; max-width:740px; color:#fff; }
.alt-revamp .rev-hero-title:after { content:''; display:block; width:76px; height:3px; background:var(--rev-gold); margin-top:28px; }
.alt-revamp .rev-hero-copy p { color:#e8eef0; font-size:18px; line-height:1.75; }
.alt-revamp .rev-hero-copy p :is(span,strong) { color:inherit; }
.alt-revamp .rev-hero-record p { font-size:12px; color:#d4dde0; letter-spacing:.02em; }
.alt-revamp .rev-hero-actions .elementor-button { min-height:50px; }
/* An open company section with offset outline geometry. */
.alt-revamp .rev-about { background:#fff; }
.alt-revamp .rev-framed-photo { position:relative; align-self:start; }
.alt-revamp .rev-frame-photo { position:relative; z-index:1; }
.alt-revamp .rev-frame-photo:before { content:''; position:absolute; inset:-20px 26px 28px -20px; border:1px solid var(--rev-gold); z-index:2; pointer-events:none; }
.alt-revamp .rev-frame-photo img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.alt-revamp .rev-photo-caption { border-left:2px solid var(--rev-gold); padding-left:20px; }
.alt-revamp .rev-photo-caption p { color:#59656b; font-size:13px; }
.alt-revamp .rev-company-facts > .elementor-element { min-width:0; }
.alt-revamp .rev-company-facts .rev-open-item { background:transparent; }
.alt-revamp .rev-company-facts .divide-y > * { background:transparent; border-color:#d5dddf; }
.alt-revamp .rev-company-facts .elementor-widget-text-editor p { font-size:16px; }
/* Service rows: generous photography, numbers, rules and open text. */
.alt-revamp .rev-services { background:#fff; border-top:1px solid #edf0f1; }
.alt-revamp .rev-service-row { border-top:1px solid var(--rev-rule); padding-block:36px; align-items:start; position:relative; }
.alt-revamp .rev-service-row:last-child { border-bottom:1px solid var(--rev-rule); }
.alt-revamp .rev-service-number { transition:transform .4s,color .4s; line-height:1; }
.alt-revamp .rev-service-row:hover .rev-service-number { transform:translateX(5px); }
.alt-revamp .rev-service-row:hover { border-top-color:var(--rev-gold); }
.alt-revamp .rev-service-photo img { width:100%; height:250px; object-fit:cover; }
.alt-revamp .rev-service-copy .elementor-widget-text-editor p { font-size:15px; line-height:1.7; }
.alt-revamp .rev-service-copy .elementor-heading-title { color:var(--rev-ink); }
.alt-revamp .rev-service-copy .elementor-button { text-align:left; }
.alt-revamp .rev-service-copy .text-white { color:var(--rev-ink); }
.alt-revamp .rev-section-heading { padding-bottom:12px; }
/* Facts in a photographic band, rather than a second card grid. */
.alt-revamp .rev-metrics { background:#172a32; color:white; }
.alt-revamp .rev-metrics .elementor-heading-title { color:inherit; }
.alt-revamp .rev-fact-column { background:transparent; border:0; border-left:1px solid #c7a66a66; padding-left:24px; }
.alt-revamp .rev-metrics .rounded-full,.alt-revamp .rev-metrics .bg-white\/10 { border-radius:0; background:transparent; }
/* Connected horizontal process, becoming a vertical rail on mobile. */
.alt-revamp .rev-process { background:#e6f6ff; position:relative; }
.alt-revamp .rev-process:before { content:''; position:absolute; inset:0; pointer-events:none; opacity:.25; background-image:linear-gradient(90deg,transparent 99.8%,#bed6de 99.8%); background-size:20% 100%; }
.alt-revamp .rev-process-line { position:relative; }
.alt-revamp .rev-process-step { position:relative; padding-top:28px; border-top:1px solid var(--rev-gold); }
.alt-revamp .rev-process-step:before { content:''; position:absolute; width:7px; height:7px; border-radius:50%; background:var(--rev-gold); top:-4px; left:0; }
.alt-revamp .rev-process-step .elementor-widget-text-editor p { font-size:15px; line-height:1.75; }
.alt-revamp .rev-process-step .bg-surface-container-low { background:transparent; }
/* Standards and location: quiet editorial rows and a large map image. */
.alt-revamp .rev-rule-item { border-top:1px solid var(--rev-rule); padding-top:18px; }
.alt-revamp .rev-rule-item .elementor-widget-text-editor p { font-size:14px; }
.alt-revamp .rev-standards .rev-open-item { background:transparent; }
/* Full-width angled CTA band. */
.alt-revamp .rev-cta { position:relative; background:#155e63; color:white; margin-top:45px; }
.alt-revamp .rev-cta:before { content:''; position:absolute; height:45px; inset:-44px 0 auto; background:#155e63; clip-path:polygon(0 100%,100% 0,100% 100%); }
.alt-revamp .rev-cta .elementor-widget-text-editor p { color:#dcebee; }
.alt-revamp .rev-cta-button .elementor-button { min-height:56px; }
/* All inner pages share the border geometry, type rhythm and open surfaces. */
.alt-revamp .rev-inner-section { position:relative; }
.alt-revamp .rev-inner-section > .e-con { max-width:1280px; margin-inline:auto; }
.alt-revamp .rev-page-masthead { position:relative; overflow:hidden; isolation:isolate; border-bottom:1px solid #d6c19d; }
.alt-revamp .rev-page-masthead:before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#e6f6ff 0%,#e6f6ff 48%,rgba(230,246,255,.96) 59%,rgba(230,246,255,.15) 85%,transparent 100%); z-index:0; pointer-events:none; }
.alt-revamp .rev-page-masthead > .e-con { position:relative; z-index:1; }
.alt-revamp .rev-page-masthead .elementor-widget-heading { max-width:830px; }
.alt-revamp .rev-page-masthead .max-w-3xl,.alt-revamp .rev-page-masthead .max-w-4xl { max-width:830px; }
.alt-revamp.rev-page-privacy-policy .rev-page-masthead:before,.alt-revamp.rev-page-cookie-policy .rev-page-masthead:before { background:linear-gradient(125deg,#fff 70%,#e6f6ff 70.1%,#e6f6ff 88%,#d8ebf3 88.1%); }
.alt-revamp .rev-index-row { border-top:1px solid var(--rev-rule); background:transparent; }
.alt-revamp .rev-policy-article { border-top:1px solid var(--rev-rule); background:transparent; }
.alt-revamp .rev-policy-article .elementor-widget-text-editor p { line-height:1.85; }
.alt-revamp .rev-contact-form { border-top:3px solid var(--rev-teal); }
.alt-revamp .rev-contact-form input,.alt-revamp .rev-contact-form select,.alt-revamp .rev-contact-form textarea { border-radius:2px; box-shadow:none; }
.alt-revamp .rev-footer { border-top:1px solid #c7a66a; }
.alt-revamp .alt-footer-office { border-left:1px solid #c7a66a; }
/* Progressive motion: always readable if JavaScript is absent or motion is reduced. */
.rev-motion-ready .rev-reveal { transition:opacity .8s cubic-bezier(.2,.65,.25,1),transform .8s cubic-bezier(.2,.65,.25,1); }
.rev-motion-ready .rev-reveal:not(.is-inview) { opacity:0; transform:translateY(26px); }
.rev-motion-ready .rev-reveal.is-inview { opacity:1; transform:none; }
@media (max-width:1100px) {
 .alt-revamp .rev-hero-text { width:65%; }
 .alt-revamp .rev-hero:before { background:linear-gradient(90deg,#172a32 0%,#172a32 48%,rgba(23,42,50,.9) 58%,rgba(23,42,50,.1) 100%); }
 .alt-revamp .rev-service-row .rev-service-photo { grid-column:2; }
 .alt-revamp .rev-service-photo img { height:230px; }
}
@media (max-width:767px) {
 .rev-header-shell { position:sticky; top:0; }
 .alt-revamp .alt-header-row { min-height:78px; }
 .alt-revamp .rev-hero-photo.elementor-element { position:relative; height:310px; order:2; width:100%; }
 .alt-revamp .rev-hero-inner { order:1; }
 .alt-revamp .rev-hero:before { display:none; }
 .alt-revamp .rev-hero:after { height:30px; }
 .alt-revamp .rev-hero-text { width:100%; max-width:none; }
 .alt-revamp .rev-hero-copy p { font-size:16px; line-height:1.8; }
 .alt-revamp .rev-hero-title:after { margin-top:20px; width:60px; }
 .alt-revamp .rev-hero-actions .rev-action,.alt-revamp .rev-hero-actions .elementor-button { width:100%; }
 .alt-revamp .rev-frame-photo:before { inset:-12px 20px 20px -10px; }
 .alt-revamp .rev-frame-photo img { max-height:460px; }
 .alt-revamp .rev-service-row { padding-block:28px; }
 .alt-revamp .rev-service-row .rev-service-photo { grid-column:auto; }
 .alt-revamp .rev-service-photo { order:2; }
 .alt-revamp .rev-service-copy { order:3; }
 .alt-revamp .rev-service-number { order:1; }
 .alt-revamp .rev-service-photo img { height:220px; }
 .alt-revamp .rev-process-step { padding-top:20px; }
 .alt-revamp .rev-fact-column { padding-left:14px; }
 .alt-revamp .rev-page-masthead:before { background:linear-gradient(90deg,rgba(230,246,255,.97),rgba(230,246,255,.9)); }
 .alt-revamp .rev-cta-grid { gap:28px; }
 .alt-revamp .rev-cta .elementor-button { width:100%; }
 .alt-revamp .rev-policy-article { min-width:0; }
 .alt-revamp .rev-policy-article :is(h2,h3) { overflow-wrap:break-word; }
 .alt-revamp .rev-page-masthead .elementor-heading-title { font-size:clamp(32px,8.8vw,40px); }
}
@media (prefers-reduced-motion:reduce) {
 .rev-motion-ready .rev-reveal,.rev-motion-ready .rev-reveal:not(.is-inview) { opacity:1; transform:none; transition:none; }
 .alt-revamp .rev-picture img,.alt-revamp .rev-service-number { transition:none; transform:none; }
}
@media print {
 .rev-motion-ready .rev-reveal { opacity:1!important; transform:none!important; }
 .rev-header-shell { position:static; }
 .alt-revamp .rev-page-masthead:before { display:none; }
}
/* Keep the offset frame visible and the photographic facts band readable. */
.alt-revamp .rev-frame-photo { overflow:visible; }
.alt-revamp .rev-metrics:before { content:''; position:absolute; inset:0; background:rgba(23,42,50,.84); pointer-events:none; }
.alt-revamp .rev-metrics > .e-con { position:relative; z-index:1; }
.alt-revamp .rev-metrics.elementor-element.e-con::before { background:#172a32; opacity:.86; }
.alt-revamp .rev-index-row { align-items:start; }
.alt-revamp .rev-index-photo img { width:100%; height:280px; object-fit:cover; }
.alt-revamp .rev-index-copy .bg-surface-container-low { background:transparent; padding-left:18px; border-left:2px solid var(--rev-gold); }
.alt-revamp .rev-index-copy .elementor-widget-heading h3 { font-size:28px; line-height:1.2; }
@media (min-width:768px) and (max-width:1100px) { .alt-revamp .rev-index-photo { grid-column:2; } }
@media (max-width:767px) {
 .alt-revamp .rev-index-photo { order:2; }
 .alt-revamp .rev-index-copy { order:3; }
 .alt-revamp .rev-index-photo img { height:220px; }
 .alt-revamp .rev-index-copy .elementor-widget-heading h3 { font-size:25px; }
}

.alt-revamp .rev-service-number .elementor-heading-title { white-space:nowrap; }

/* 3.0.1: balanced, native two-column home hero. */
.alt-revamp .rev-hero.rev-hero-balanced { background:#fff; border-bottom:1px solid #ded7ca; overflow:visible; }
.alt-revamp .rev-hero.rev-hero-balanced::before,
.alt-revamp .rev-hero.rev-hero-balanced::after { display:none; }
.alt-revamp .rev-hero-balanced .rev-hero-text { width:100%; max-width:none; color:#172a32; }
.alt-revamp .rev-hero-balanced .rev-hero-title .elementor-heading-title { text-wrap:balance; }
.alt-revamp .rev-hero-balanced .rev-hero-title::after { width:64px; height:2px; margin-top:24px; }
.alt-revamp .rev-hero-balanced .rev-hero-copy p { color:#4d5e65; font-size:16px; line-height:1.75; }
.alt-revamp .rev-hero-balanced .rev-hero-record p { color:#59656b; line-height:1.6; font-size:12px; }
.alt-revamp .rev-hero-balanced .rev-hero-actions { flex-wrap:wrap; }
.alt-revamp .rev-hero-balanced .rev-hero-photo.elementor-element { position:relative; inset:auto; width:100%; height:520px; max-width:none; z-index:0; order:initial; overflow:visible; }
.alt-revamp .rev-hero-balanced .rev-hero-photo::before { content:''; position:absolute; inset:-12px -12px 12px 12px; border:1px solid #b8914f; z-index:-1; pointer-events:none; }
.alt-revamp .rev-hero-balanced .rev-hero-photo img { display:block; width:100%; height:520px; object-fit:cover; object-position:66% center; }
@media (min-width:768px) and (max-width:1100px) {
 .alt-revamp .rev-hero-balanced .rev-hero-photo.elementor-element,
 .alt-revamp .rev-hero-balanced .rev-hero-photo img { height:540px; }
 .alt-revamp .rev-hero-balanced .rev-hero-actions { flex-direction:column; align-items:stretch; }
 .alt-revamp .rev-hero-balanced .rev-hero-actions .elementor-button { width:100%; }
}
@media (max-width:767px) {
 .alt-revamp .rev-hero-balanced .rev-hero-inner { order:initial; }
 .alt-revamp .rev-hero-balanced .rev-hero-title::after { margin-top:20px; }
 .alt-revamp .rev-hero-balanced .rev-hero-copy p { font-size:15px; line-height:1.75; }
 .alt-revamp .rev-hero-balanced .rev-hero-photo.elementor-element,
 .alt-revamp .rev-hero-balanced .rev-hero-photo img { height:260px; }
 .alt-revamp .rev-hero-balanced .rev-hero-photo::before { inset:-8px -8px 8px 8px; }
}

/* Interactive maps: full container width and a usable height on every screen. */
.alt-revamp .rev-map-frame { width:100%; min-width:0; height:auto; padding:0; overflow:hidden; }
.alt-revamp .alt-map-widget { width:100%; min-width:0; margin:0; }
.alt-location-map { position:relative; width:100%; height:clamp(320px,42vw,520px); overflow:hidden; background:#e6edf0; }
.alt-location-map iframe { display:block; width:100%; max-width:100%; height:100%; border:0; }
@media (max-width:767px) { .alt-location-map { height:340px; } }
