/* Page openings: Projects proportions, homepage title typography. */
.elementor .wes-page-hero { min-height:max(60svh,560px); padding:112px 0 62px; display:flex; flex-direction:column; justify-content:center; align-items:center; background-size:cover; background-position:center; }
.elementor .wes-page-hero .wes-page-hero-inner { width:min(1120px,calc(100% - 96px)); padding:0; margin-inline:auto; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:24px; text-align:left; z-index:1; }
.elementor .wes-page-hero h1.elementor-heading-title { margin:0; color:#fff; font-family:'Montserrat',sans-serif; font-size:clamp(40px,4.5vw,60px); font-weight:700; line-height:1.08; letter-spacing:-.035em; text-align:inherit; }
.elementor .wes-page-hero .elementor-widget { margin:0; }
.elementor .wes-page-hero .wes-page-hero-subtitle { max-width:740px; color:#fff; font-size:20px; line-height:1.55; }
.elementor .wes-page-hero p { margin:0; }
.elementor .wes-page-hero-left .wes-page-hero-inner { align-items:flex-start; text-align:left; }
@media (min-width:768px) and (max-width:1024px) {
 .elementor .wes-page-hero { min-height:max(50svh,540px); }
}
@media (max-width:767px) {
 .elementor .wes-page-hero { min-height:350px; padding:112px 0 40px; background-attachment:scroll; }
 .elementor .wes-page-hero .wes-page-hero-inner { width:calc(100% - 40px); gap:22px; }
 .elementor .wes-page-hero h1.elementor-heading-title { font-size:clamp(36px,9.8vw,46px); }
 .elementor .wes-page-hero .wes-page-hero-subtitle { font-size:17px; }
}

/* Shared photographic ending: content and footer remain opaque islands. */
.site-content, .site-footer { position:relative; z-index:1; }
.wes-ending { position:relative; isolation:isolate; overflow:hidden; background-image:var(--wes-ending-image,url('/wp-content/uploads/2022/05/bg-img-07.jpg')) !important; background-position:center; background-size:cover; background-attachment:fixed; }
.wes-ending::before { content:''; position:absolute; inset:0; background:rgba(24,29,33,.58); z-index:-1; }
:root { --wes-ending-cta-height:585px; }
.wes-ending-shared { min-height:calc(var(--wes-ending-cta-height) / 2); }
.home .wes-contact-band.wes-ending { padding:76px 0; min-height:585px; display:flex; justify-content:center; }
.home .wes-ending .wes-contact-panel { padding:0; border-radius:0; overflow:visible; background:none; }
.home .wes-ending .wes-contact-panel::before { display:none; }
.home .wes-ending .wes-contact-content { width:100%; max-width:800px; margin-inline:auto; gap:22px; align-items:center; text-align:center; }
.home .wes-ending .wes-contact-content h2 { font-size:clamp(30px,3.2vw,42px); }
.wes-ending-cta { min-height:var(--wes-ending-cta-height); padding:76px 0; display:flex; justify-content:center; }
.wes-ending-cta .wes-ending-wrap { width:min(800px,calc(100% - 96px)); padding:0; margin-inline:auto; align-items:center; text-align:center; gap:22px; }
.wes-ending.wes-ending-cta .wes-ending-kicker { color:#fff; opacity:.8; font-size:16px; line-height:1.857142857; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.wes-ending.wes-ending-cta .elementor-heading-title { color:#fff; font-family:'Poppins',sans-serif; font-size:clamp(30px,3.2vw,42px); font-weight:650; line-height:1.18; letter-spacing:-.025em; }
.wes-ending.wes-ending-cta .wes-ending-text { color:#fff; font-size:19px; line-height:1.75; }
.wes-ending-cta .elementor-widget { margin:0; }
.wes-ending-cta p { margin:0; }
.wes-ending-cta .elementor .elementor-button,
.elementor .wes-ending-cta .elementor-button { padding:17px 24px; font-size:16px; }

/* Project cover always fits completely below the fixed navigation and title. */
body.wes-project-page .site .site-content #primary.wes-project { padding-top:120px; }
.wes-project-intro h1 { margin:0 0 24px; font-size:clamp(32px,3.5vw,48px); }
.wes-project-cover { margin-top:0; margin-bottom:36px; background:#eef0eb; }
.wes-project-cover img { width:100%; height:auto; max-height:min(620px,calc(100svh - 225px)); object-fit:contain; }
.wes-project-facts { margin-top:0; margin-bottom:32px; }
.wes-project-facts.wes-project-wrap { margin-inline:auto; }
.wes-project-summary { margin-bottom:25px; }
.wes-project-summary p { margin-bottom:0; }
.wes-gallery-photos figure { margin:0; background:#eef0eb; }
.wes-gallery-photos a { display:block; }
.wes-gallery-photos img { display:block; width:100%; height:auto; }
.wes-gallery-layout-grid .wes-gallery-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.wes-gallery-layout-grid .wes-gallery-photos img { aspect-ratio:4/3; object-fit:contain; }
.wes-gallery-layout-masonry .wes-gallery-photos { columns:2; column-gap:24px; }
.wes-gallery-layout-masonry figure { break-inside:avoid; margin-bottom:24px; }
.wes-gallery-layout-masonry .wes-masonry-ready { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:4px; gap:12px 24px; columns:auto; align-items:start; }
.wes-gallery-layout-masonry .wes-masonry-ready figure { margin:0; }
.wes-gallery-layout-slider .wes-gallery-photos { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:thin; }
.wes-gallery-layout-slider figure { flex:0 0 100%; min-width:0; scroll-snap-align:start; }
.wes-gallery-layout-slider img { height:min(65svh,650px); object-fit:contain; }
.wes-slider-controls { display:flex; align-items:center; justify-content:center; gap:22px; margin-top:22px; }
.wes-slider-controls button { padding:12px 18px; background:#b81832; color:#fff; border-radius:5px; font-family:'Poppins',sans-serif; font-size:15px; font-weight:600; text-transform:none; letter-spacing:0; }
.wes-slider-controls button:disabled { opacity:.4; cursor:default; }
.wes-slider-controls [data-slide-status] { color:#616368; min-width:50px; text-align:center; font-size:17px; }
.wes-project-gallery a:focus-visible, .wes-project-gallery button:focus-visible, .wes-project-gallery [tabindex]:focus-visible { outline:3px solid #b81832; outline-offset:4px; }

/* Services: editable Elementor sections and stable deep links from both homepages. */
.wes-services-page .ws-wrap { width:min(1120px,calc(100% - 96px)); margin-inline:auto; padding:0; gap:22px; }
.wes-services-page .elementor-widget { margin:0; }
.wes-services-page .elementor-widget-text-editor { color:#616368; font-size:19px; line-height:1.75; }
.wes-services-page p { margin:0; }
.wes-services-page .elementor-heading-title { font-family:'Poppins',sans-serif; color:#242629; font-weight:650; font-size:clamp(30px,3.1vw,40px); line-height:1.2; letter-spacing:-.03em; }
.wes-services-page .ws-eyebrow { color:#b81832; font-size:15px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.wes-services-page .ws-hero { min-height:390px; padding:150px 0 70px; position:relative; isolation:isolate; }
.wes-services-page .ws-hero::before { content:''; position:absolute; inset:0; background:rgba(20,29,35,.6); z-index:-1; }
.wes-services-page .ws-hero h1 { font-size:clamp(46px,5vw,66px); color:#fff; }
.wes-services-page .ws-hero .elementor-widget-text-editor { color:#fff; }
.wes-services-page .ws-hero .ws-eyebrow { opacity:.85; }
.wes-services-page .ws-hero .ws-lead { font-size:21px; }
.wes-services-page .ws-intro { padding:70px 0; background:#f1f2ef; }
.wes-services-page .ws-intro .elementor-widget-text-editor { max-width:820px; }
.wes-services-page .ws-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:10px 0 0; }
.wes-services-page .ws-nav-link { padding:15px 18px; background:#fff; border:1px solid #dfe1db; border-radius:5px; text-decoration:none; transition:border-color .2s ease; }
.wes-services-page .ws-nav-link:hover { border-color:#b81832; }
.wes-services-page .ws-nav-link .elementor-widget-text-editor { color:#242629; font-size:17px; font-weight:600; }
.wes-services-page .ws-service { padding:90px 0; background:#fff; scroll-margin-top:105px; }
.wes-services-page .ws-service-gray { background:#f1f2ef; }
.wes-services-page .ws-service-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:70px; align-items:center; }
.wes-services-page .ws-service-copy { padding:0; gap:18px; }
.wes-services-page .ws-subtitle { color:#242629; font-size:22px; font-weight:600; line-height:1.5; }
.wes-services-page .ws-steps { font-size:17px; }
.wes-services-page .ws-steps ul { margin:0; padding-left:22px; }
.wes-services-page .ws-steps li { padding-left:5px; margin-bottom:7px; }
.wes-services-page .ws-steps li::marker { color:#b81832; }
.wes-services-page .ws-service-image img { width:100%; height:400px; object-fit:cover; border-radius:5px; }
.wes-services-page .ws-service-reverse .ws-service-image { order:-1; }
.wes-services-page .ws-contact { padding:70px 0; background:#f1f2ef; }
.wes-services-page .ws-contact .ws-wrap { align-items:flex-start; }
.wes-services-page .ws-contact.wes-ending-service { min-height:585px; padding:76px 0; display:flex; justify-content:center; background-image:url('/wp-content/uploads/2022/05/bg-img-07.jpg'); background-color:#242629; background-size:cover; background-position:center; background-attachment:fixed; background-repeat:no-repeat; }
.wes-services-page .wes-ending-service .ws-wrap { align-items:center; text-align:center; max-width:800px; }
.wes-services-page .wes-ending-service .elementor-heading-title,
.wes-services-page .wes-ending-service .elementor-widget-text-editor { color:#fff; }
.wes-services-page .wes-ending-service .ws-eyebrow { opacity:.8; }
.wes-services-page .elementor .elementor-element .elementor-button { font-family:'Poppins',sans-serif; font-size:16px; font-weight:700; line-height:1.4; letter-spacing:.04em; text-transform:uppercase; background:#b81832; color:#fff; border-radius:7px; padding:17px 24px; }
.wes-services-page .elementor .elementor-element .elementor-button:hover { background:#95132a; }
.wes-services-page a:focus-visible { outline:3px solid #b81832; outline-offset:5px; }
@media(max-width:1024px) {
 .wes-services-page .ws-service-grid { gap:36px; }
}
@media(max-width:767px) {
 .wes-ending, .wes-services-page .ws-hero { background-attachment:scroll !important; }
 .wes-ending { background-image:none !important; }
 .wes-ending::after { content:''; position:absolute; inset:-120px; background-image:var(--wes-ending-image,url('/wp-content/uploads/2022/05/bg-img-07.jpg')); background-position:center; background-size:cover; background-repeat:no-repeat; z-index:-2; transform:translate3d(0,var(--wes-ending-shift,0px),0); }
 :root { --wes-ending-cta-height:510px; }
 .wes-ending-cta { padding:66px 0; }
 .wes-ending-cta .wes-ending-wrap { width:calc(100% - 40px); }
 .wes-ending.wes-ending-cta .wes-ending-text { font-size:18px; }
 .home .wes-contact-band.wes-ending { min-height:510px; padding:66px 0; }
 .home .wes-ending .wes-contact-content { width:100%; }
 body.wes-project-page .site .site-content #primary.wes-project { padding-top:115px; }
 .wes-project-intro h1 { margin-bottom:20px; font-size:30px; }
 .wes-project-cover img { height:auto; max-height:min(520px,calc(100svh - 245px)); }
 .wes-gallery-layout-grid .wes-gallery-photos { grid-template-columns:1fr; gap:18px; }
 .wes-gallery-layout-masonry .wes-gallery-photos { columns:2; column-gap:12px; }
 .wes-gallery-layout-masonry figure { margin-bottom:12px; }
 .wes-gallery-layout-masonry .wes-masonry-ready { column-gap:12px; }
 .wes-slider-controls { gap:12px; }
 .wes-slider-controls button { padding:12px; font-size:14px; }
 .wes-services-page .ws-wrap { width:calc(100% - 40px); }
 .wes-services-page .elementor-widget-text-editor { font-size:18px; }
 .wes-services-page .ws-hero { padding:130px 0 55px; min-height:360px; }
 .wes-services-page .ws-hero .ws-lead { font-size:19px; }
 .wes-services-page .ws-intro, .wes-services-page .ws-service, .wes-services-page .ws-contact { padding:58px 0; }
 .wes-services-page .ws-contact.wes-ending-service { min-height:510px; padding:66px 0; }
 .wes-services-page .ws-nav { grid-template-columns:1fr; }
 .wes-services-page .ws-service-grid { grid-template-columns:1fr; gap:28px; }
 .wes-services-page .ws-service-image img { height:275px; }
 .wes-services-page .ws-service-reverse .ws-service-image { order:0; }
 .wes-services-page .ws-subtitle { font-size:20px; }
 .wes-services-page .ws-eyebrow { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
 .wes-ending, .wes-services-page .ws-hero { background-attachment:scroll !important; }
 .wes-services-page * { scroll-behavior:auto !important; transition:none !important; }
}
