/* James Woolford Design — hard reset / architecture v47 */
:root{--jw47-ink:#090b11;--jw47-dark:#070911;--jw47-panel:#111524;--jw47-blue:#2458ff;--jw47-paper:#f4f1ea;--jw47-pale:#e9edfa;--jw47-line:rgba(15,18,28,.14);--jw47-white-line:rgba(255,255,255,.14)}

/* Remove the old competing menu entirely. */
.site-header__services-menu,.site-header__services-menu.jw45-mega-menu,.jw47-old-mega{display:none!important}
.site-header.jw47-header{overflow:visible!important;z-index:9999!important}
.site-header.jw47-header .site-header__bar{position:relative!important;overflow:visible!important}
.jw47-mega{position:absolute;z-index:10000;top:calc(100% + 10px);left:50%;width:min(1220px,calc(100vw - 56px));transform:translate(-50%,12px);opacity:0;visibility:hidden;pointer-events:none;border:1px solid rgba(255,255,255,.14);border-radius:24px;background:rgba(7,9,15,.985);box-shadow:0 42px 110px rgba(0,0,0,.42);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);overflow:hidden;transition:opacity .22s ease,transform .28s ease,visibility .22s}
.jw47-mega::before{content:"";position:absolute;left:0;right:0;top:-16px;height:18px}
.jw47-mega-open .jw47-mega{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.jw47-mega__top{display:grid;grid-template-columns:1fr auto;align-items:center;gap:28px;padding:24px 28px;border-bottom:1px solid var(--jw47-white-line);background:linear-gradient(100deg,rgba(36,88,255,.08),transparent 58%)}
.jw47-mega__top>div>span{display:block;margin-bottom:7px;color:#8ea6ff;font-size:9px;font-weight:800;letter-spacing:.18em}.jw47-mega__top>div>strong{color:#fff;font-size:clamp(23px,2vw,34px);letter-spacing:-.045em}
.jw47-mega__top>a{display:flex;align-items:center;gap:13px;min-width:290px;padding:13px 16px;border:1px solid rgba(130,153,255,.35);background:rgba(36,88,255,.12);color:#fff}.jw47-mega__top>a>span{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(130,153,255,.35)}.jw47-mega__top small{display:block;color:#8ea6ff;font-size:8px;letter-spacing:.15em}.jw47-mega__top b{font-size:13px}.jw47-mega svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.jw47-mega__top>a>svg{margin-left:auto}
.jw47-mega__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.jw47-mega__card{position:relative;min-height:188px;padding:22px;border-right:1px solid var(--jw47-white-line);border-bottom:1px solid var(--jw47-white-line);background:rgba(255,255,255,.018);transition:background .25s,transform .25s,box-shadow .25s}.jw47-mega__card:nth-child(4n){border-right:0}.jw47-mega__card:nth-child(n+5){border-bottom:0}.jw47-mega__card:hover{z-index:2;transform:translateY(-3px);background:linear-gradient(145deg,rgba(36,88,255,.28),rgba(36,88,255,.05));box-shadow:inset 0 0 0 1px rgba(107,134,255,.42)}
.jw47-mega__icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:22px;border:1px solid rgba(112,139,255,.38);background:rgba(36,88,255,.12);color:#91a8ff}.jw47-mega__card small{display:block;margin-bottom:6px;color:#6f8fff;font-size:8px;font-weight:800;letter-spacing:.14em}.jw47-mega__card strong{display:block;color:#fff;font-size:17px}.jw47-mega__card p{margin:7px 0 0;color:rgba(255,255,255,.48);font-size:10px;line-height:1.5}.jw47-mega__card>i{position:absolute;right:18px;bottom:17px;color:#82a0ff}
.jw47-mega__card--cta{background:linear-gradient(145deg,#2458ff,#172e87)}.jw47-mega__card--cta small,.jw47-mega__card--cta p{color:rgba(255,255,255,.75)}.jw47-mega__card--cta strong{font-size:22px;line-height:1.05}

/* Services hub: all seven cards remain the same size. */
.services-page.jw47-services .services-grid.jw47-services__grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}
.services-page.jw47-services .services-grid .service-hub-card,.services-page.jw47-services .services-grid .service-hub-card:nth-child(7){grid-column:auto!important;grid-row:auto!important;display:flex!important;flex-direction:column!important;min-height:330px!important;padding:30px!important;gap:0!important}
.services-page.jw47-services .services-grid .service-hub-card .service-hub-card__top{grid-column:auto!important}.services-page.jw47-services .services-grid .service-hub-card h2{grid-column:auto!important;grid-row:auto!important;margin-top:auto!important}.services-page.jw47-services .services-grid .service-hub-card p{grid-column:auto!important;grid-row:auto!important;margin:12px 0 25px!important}.services-page.jw47-services .services-grid .service-hub-card .service-hub-card__link{grid-column:auto!important;grid-row:auto!important;margin-top:auto!important}
.services-page.jw47-services .jw45-app-hub-card__icon{display:none!important}

/* Contact: remove white-on-white and create a deliberate dark form chapter. */
.contact-page.jw47-contact{background:var(--jw47-paper)!important;color:var(--jw47-ink)!important}
.contact-page.jw47-contact .project-form-section,.contact-page.jw47-contact .project-form-section.jw44-contact-form-section{padding:clamp(90px,8vw,140px) 0!important;background:linear-gradient(140deg,#070911 0%,#0d1328 58%,#142454 100%)!important;color:#fff!important}
.contact-page.jw47-contact .project-form-layout{width:min(1440px,calc(100% - 48px))!important;margin:0 auto!important;display:grid!important;grid-template-columns:minmax(280px,.55fr) minmax(0,1.2fr)!important;gap:clamp(46px,7vw,110px)!important;align-items:start!important}
.contact-page.jw47-contact .project-form-intro,.contact-page.jw47-contact .jw44-contact-form-intro{position:sticky!important;top:130px!important}.contact-page.jw47-contact .project-form-intro h2,.contact-page.jw47-contact .jw44-contact-form-intro h2{margin:0!important;max-width:9ch!important;color:#fff!important;font-size:clamp(54px,5.3vw,88px)!important;line-height:.88!important;letter-spacing:-.075em!important}.contact-page.jw47-contact .project-form-intro p,.contact-page.jw47-contact .jw44-contact-form-intro p{color:rgba(255,255,255,.62)!important;font-size:16px!important;line-height:1.7!important}
.contact-page.jw47-contact .project-form,.contact-page.jw47-contact .jw44-project-form{padding:clamp(26px,3.2vw,48px)!important;border:1px solid rgba(255,255,255,.16)!important;background:rgba(255,255,255,.055)!important;box-shadow:0 30px 80px rgba(0,0,0,.22)!important;backdrop-filter:blur(18px)!important}
.contact-page.jw47-contact label>span,.contact-page.jw47-contact legend,.contact-page.jw47-contact .jw44-project-form label>span,.contact-page.jw47-contact .jw44-form-group legend{color:#dce3ff!important}
.contact-page.jw47-contact input[type=text],.contact-page.jw47-contact input[type=email],.contact-page.jw47-contact input[type=tel],.contact-page.jw47-contact textarea{background:rgba(2,4,10,.62)!important;border:1px solid rgba(255,255,255,.18)!important;color:#fff!important}.contact-page.jw47-contact input::placeholder,.contact-page.jw47-contact textarea::placeholder{color:rgba(255,255,255,.36)!important}
.contact-page.jw47-contact .jw44-choice,.contact-page.jw47-contact .project-form__choices button{background:rgba(255,255,255,.035)!important;border:1px solid rgba(255,255,255,.15)!important;color:rgba(255,255,255,.72)!important}.contact-page.jw47-contact .jw44-choice:hover,.contact-page.jw47-contact .jw44-choice.is-selected,.contact-page.jw47-contact .project-form__choices button:hover,.contact-page.jw47-contact .project-form__choices button.is-selected{background:rgba(36,88,255,.28)!important;border-color:#6e8cff!important;color:#fff!important}

/* Areas directory: fully card based and distinct. */
.areas-page.jw47-areas{background:var(--jw47-paper)!important;color:var(--jw47-ink)!important}.areas-page.jw47-areas .site-ambient{background-image:none!important;animation:none!important}
.areas-page.jw47-areas .areas-directory{padding:clamp(88px,8vw,136px) 0!important;background:linear-gradient(145deg,#080a11,#111a35)!important;color:#fff!important}.areas-page.jw47-areas .areas-matrix-section{padding:clamp(88px,8vw,136px) 0!important;background:linear-gradient(135deg,#2458ff,#17368e)!important;color:#fff!important}
.jw47-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.62fr);gap:clamp(38px,7vw,104px);align-items:end;margin-bottom:54px;padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.15)}.jw47-section-head>span{grid-column:1/-1;color:#8ea7ff;font-size:10px;font-weight:800;letter-spacing:.18em}.jw47-section-head h2{margin:0;max-width:13ch;color:#fff;font-size:clamp(48px,5vw,80px);line-height:.9;letter-spacing:-.07em}.jw47-section-head p{margin:0;color:rgba(255,255,255,.62);font-size:16px;line-height:1.7}.jw47-section-head--light>span{color:#dce4ff}
.jw47-area-services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.jw47-area-services>a{position:relative;min-height:330px;padding:30px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.035);transition:transform .3s,background .3s,box-shadow .3s}.jw47-area-services>a:hover{transform:translateY(-5px);background:rgba(36,88,255,.14);box-shadow:0 26px 60px rgba(0,0,0,.24)}.jw47-area-services>a>span{width:54px;height:54px;display:grid;place-items:center;margin-bottom:50px;border:1px solid rgba(112,139,255,.4);background:rgba(36,88,255,.12);color:#91a8ff}.jw47-area-services svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.6}.jw47-area-services small{color:#6f8fff;font-size:10px}.jw47-area-services h3{margin:11px 0;color:#fff;font-size:28px}.jw47-area-services p{color:rgba(255,255,255,.57);line-height:1.65}.jw47-area-services i{position:absolute;right:22px;bottom:22px;color:#8ca5ff}
.jw47-location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.jw47-location-grid article{padding:30px;border:1px solid rgba(255,255,255,.22);background:rgba(5,13,46,.25);backdrop-filter:blur(14px)}.jw47-location-grid article>span{color:#d9e2ff;font-size:10px;letter-spacing:.15em}.jw47-location-grid h3{margin:14px 0 24px;color:#fff;font-size:35px;letter-spacing:-.05em}.jw47-location-grid article>div{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.jw47-location-grid a{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid rgba(255,255,255,.18);color:#fff;font-size:13px}.jw47-location-grid b{color:#dce4ff}

/* Location pages: distinct chapters, no repeated animated wallpaper, no hidden text. */
.location-page.jw47-location,.local-service-page.jw47-local-service{background:var(--jw47-paper)!important;color:var(--jw47-ink)!important}.location-page.jw47-location .site-ambient,.local-service-page.jw47-local-service .site-ambient{background-image:none!important;animation:none!important}.location-page.jw47-location .site-reveal,.local-service-page.jw47-local-service .site-reveal{opacity:1!important;transform:none!important;visibility:visible!important}
.location-page.jw47-location .location-hero{padding:clamp(140px,12vw,190px) 0 clamp(84px,8vw,120px)!important;background:linear-gradient(135deg,#f4f1ea 0%,#edf1ff 60%,#dfe6ff 100%)!important;border-bottom:1px solid var(--jw47-line)!important}.location-page.jw47-location .location-context{padding:clamp(86px,8vw,132px) 0!important;background:#f4f1ea!important}.location-page.jw47-location .location-context__grid{align-items:start!important}.location-page.jw47-location .location-context__copy{padding:30px;border:1px solid var(--jw47-line);background:rgba(255,255,255,.78);box-shadow:0 18px 44px rgba(31,43,84,.07)}
.location-page.jw47-location .location-benefits{padding:clamp(86px,8vw,132px) 0!important;background:linear-gradient(145deg,#080a11,#111a35)!important;color:#fff!important}.location-page.jw47-location .location-benefits__grid{gap:14px!important}.location-page.jw47-location .location-benefits article{min-height:300px;padding:32px!important;border:1px solid rgba(255,255,255,.15)!important;background:rgba(255,255,255,.035)!important}.location-page.jw47-location .location-benefits h3{color:#fff!important}.location-page.jw47-location .location-benefits p{color:rgba(255,255,255,.6)!important}
.location-page.jw47-location .location-coverage{padding:clamp(86px,8vw,132px) 0!important;background:linear-gradient(135deg,#2458ff,#17368e)!important;color:#fff!important}.location-page.jw47-location .location-coverage h2,.location-page.jw47-location .location-coverage p,.location-page.jw47-location .location-coverage span{color:#fff!important}.location-page.jw47-location .location-coverage__areas span{border-color:rgba(255,255,255,.25)!important;background:rgba(255,255,255,.08)!important}
.location-page.jw47-location .location-pricing{padding:clamp(86px,8vw,132px) 0!important;background:#eceff8!important;color:var(--jw47-ink)!important}.location-page.jw47-location .location-pricing h2,.location-page.jw47-location .location-pricing strong,.location-page.jw47-location .location-pricing span{color:var(--jw47-ink)!important}.location-page.jw47-location .location-pricing__figures>div{background:#fff!important;border:1px solid var(--jw47-line)!important}
.location-page.jw47-location .location-faq{padding:clamp(86px,8vw,132px) 0!important;background:#f4f1ea!important}.location-page.jw47-location .location-faq article{padding:24px 0!important;border-color:var(--jw47-line)!important}.location-page.jw47-location .location-faq h3,.location-page.jw47-location .location-faq p{color:var(--jw47-ink)!important}.location-page.jw47-location .location-nearby{padding:48px 0!important;background:#080a11!important;color:#fff!important}.location-page.jw47-location .location-nearby a{color:#fff!important}
.local-service-page.jw47-local-service .local-service-hero{background:linear-gradient(135deg,#f4f1ea,#dfe6ff)!important}.local-service-page.jw47-local-service .local-service-context{background:#f4f1ea!important}.local-service-page.jw47-local-service .local-service-capabilities{background:linear-gradient(145deg,#080a11,#111a35)!important;color:#fff!important}.local-service-page.jw47-local-service .local-service-capabilities h2,.local-service-page.jw47-local-service .local-service-capabilities h3{color:#fff!important}.local-service-page.jw47-local-service .local-service-capabilities p{color:rgba(255,255,255,.6)!important}.local-service-page.jw47-local-service .local-service-coverage{background:linear-gradient(135deg,#2458ff,#17368e)!important;color:#fff!important}.local-service-page.jw47-local-service .local-service-links{background:#eceff8!important}.local-service-page.jw47-local-service .location-faq{background:#f4f1ea!important}

@media(max-width:1100px){.jw47-mega{width:min(980px,calc(100vw - 34px))}.jw47-mega__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.jw47-mega__card:nth-child(4n){border-right:1px solid var(--jw47-white-line)}.jw47-mega__card:nth-child(3n){border-right:0}.jw47-mega__card:nth-child(n+5){border-bottom:1px solid var(--jw47-white-line)}.jw47-mega__card:nth-child(n+7){border-bottom:0}.services-page.jw47-services .services-grid.jw47-services__grid,.jw47-area-services{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-page.jw47-contact .project-form-layout{grid-template-columns:1fr!important}.contact-page.jw47-contact .project-form-intro,.contact-page.jw47-contact .jw44-contact-form-intro{position:static!important}}
@media(max-width:760px){.jw47-mega{display:none!important}.services-page.jw47-services .services-grid.jw47-services__grid{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important}.services-page.jw47-services .services-grid .service-hub-card{flex:0 0 84vw!important;scroll-snap-align:start!important;min-height:400px!important}.contact-page.jw47-contact .project-form-section{padding:72px 18px!important}.contact-page.jw47-contact .project-form-layout{width:100%!important}.contact-page.jw47-contact .project-form,.contact-page.jw47-contact .jw44-project-form{padding:24px 18px!important}.jw47-section-head{grid-template-columns:1fr!important}.jw47-section-head>span{grid-column:1!important}.jw47-section-head h2{font-size:44px!important}.jw47-area-services{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important}.jw47-area-services>a{flex:0 0 84vw!important;scroll-snap-align:start!important}.jw47-location-grid{grid-template-columns:1fr}.jw47-location-grid article>div{grid-template-columns:1fr}.location-page.jw47-location .location-hero{padding:118px 20px 68px!important}.location-page.jw47-location .location-benefits__grid{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important}.location-page.jw47-location .location-benefits article{flex:0 0 84vw!important;scroll-snap-align:start!important}}
