/*
Theme Name: WES Project Child
Description: Personalizzazioni WES Project per Astra.
Author: WES Project
Template: astra
Version: 1.0.0
Text Domain: wesproject-child
*/

/* Shared header: transparent, solid, navigation and brand. */
#masthead {
  --wes-header-surface:#f7f7f5;
  --wes-header-ink:#101a38;
  --wes-header-accent:#b81832;
  position:fixed !important; top:0; left:0 !important; right:0 !important;
  width:100% !important; margin:0 !important; z-index:9999;
}
body:is(.wes-project-page,.wes-concept) #masthead { --wes-header-ink:#242629; }
.wes-concept #masthead { --wes-header-surface:#f5f4f0; }
#masthead .ast-primary-header-bar {
  width:100% !important; min-height:64px !important; padding:0 !important;
  background:transparent !important; box-shadow:none !important;
  transition:background-color .15s ease,box-shadow .15s ease;
}
#masthead .ast-primary-header-bar .menu-link {
  color:#fff !important; text-decoration:none;
  text-shadow:0 1px 3px rgba(0,0,0,.35); transition:color .2s ease;
}
body:is(.header-after-hero,.wes-project-page,.wes-concept,.ast-main-header-nav-open) #masthead .ast-primary-header-bar {
  background:var(--wes-header-surface) !important;
  box-shadow:0 2px 12px rgba(0,0,0,.08) !important;
}
body:is(.header-after-hero,.wes-project-page,.wes-concept,.ast-main-header-nav-open) #masthead .ast-primary-header-bar .menu-link {
  color:var(--wes-header-ink) !important; text-shadow:none;
}
#masthead .ast-primary-header-bar .menu-item:hover > .menu-link,
#masthead .ast-primary-header-bar .menu-link:focus-visible {
  color:var(--wes-header-accent) !important; text-decoration:none;
}
#masthead .menu-link:focus-visible { outline:2px solid var(--wes-header-accent); outline-offset:4px; }
#masthead .main-header-menu .sub-menu {
  background:var(--wes-header-surface) !important; border:0 !important;
  border-radius:5px; box-shadow:0 8px 22px rgba(0,0,0,.13) !important;
}
#masthead .main-header-menu .sub-menu .menu-link,
#masthead .ast-mobile-header-content .menu-link {
  color:var(--wes-header-ink) !important; background:transparent !important; text-shadow:none;
}
#masthead .main-header-menu .sub-menu .menu-item:hover > .menu-link,
#masthead .ast-mobile-header-content .menu-link:hover { color:var(--wes-header-accent) !important; }
#masthead .ast-mobile-header-content .current-menu-item > .menu-link { color:var(--wes-header-accent) !important; }
#masthead .main-header-menu .menu-item-has-children > .sub-menu { left:auto !important; right:-70px !important; }
#masthead .ast-mobile-header-content { background:var(--wes-header-surface); }
@media(max-width:921px) {
  #masthead .ast-mobile-header-content { max-height:calc(100dvh - 96px); overflow-y:auto; overscroll-behavior:contain; }
}
#masthead .ast-mobile-menu-trigger-minimal { color:#fff !important; }
#masthead .ast-mobile-menu-trigger-minimal svg { fill:currentColor; }
body:is(.header-after-hero,.wes-project-page,.wes-concept,.ast-main-header-nav-open) #masthead .ast-mobile-menu-trigger-minimal { color:var(--wes-header-ink) !important; }
#masthead .site-logo-img img,#masthead .custom-logo-link img,#masthead img.custom-logo { width:180px !important; max-width:none !important; height:auto !important; }
#masthead .wes-home-brand .wes-logo-light { display:block; }
#masthead .wes-home-brand .wes-logo-dark { display:none; }
body:is(.header-after-hero,.wes-project-page,.wes-concept,.ast-main-header-nav-open) #masthead .wes-home-brand .wes-logo-light { display:none; }
body:is(.header-after-hero,.wes-project-page,.wes-concept,.ast-main-header-nav-open) #masthead .wes-home-brand .wes-logo-dark { display:block; }

/* Ombra sfocata dietro al titolo in homepage */
.titolo-ombra {
  position: relative;
  z-index: 10 !important;
  isolation: isolate;
}

.titolo-ombra .elementor-heading-title {
  position: relative;
  z-index: 1;
  display: inline-block;
}

.titolo-ombra .elementor-heading-title::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -30px;
  right: -20px;
  bottom: -30px;
  left: -20px;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.1);
  filter: blur(30px);
  border-radius: 50%;
}

/* Link contatto */
.wes-contact-link:hover span {
  color: #e31b3f !important;
}

/* Rende cliccabile l'intero riquadro di ogni articolo */
.box-articoli .eael-grid-post {
  position: relative;
  cursor: pointer;
}

.box-articoli .eael-grid-post .eael-grid-post-link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 5;
}

/* Effetto discreto al passaggio del mouse */
.box-articoli article {
  transition: transform 0.2s ease;
}

.box-articoli article:hover {
  transform: translateY(-3px);
}

/*Bottone progetti homepage*/
.link-progetti .elementor-button-icon {
    transition: transform 0.2s ease;
}

.link-progetti .elementor-button:hover .elementor-button-icon {
    transform: translateX(4px);
}

.link-progetti .elementor-button {
    border-bottom: 2px solid #B81832;
    border-radius: 0;
}

/*Carosello loghi*/
.logo-clienti img {
    opacity: 0.6;
    transition: opacity 0.3s ease;
}

.logo-clienti img:hover {
    opacity: 1;
}

/* Scheda progetto */
/* Overlay blu più coprente */
.progetto-card a::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;

    background: rgba(21, 34, 56, 0.88);
    opacity: 0;

    transition: opacity 0.35s ease;
    pointer-events: none;
}

/* Nome del progetto centrato */
.progetto-card a::after {
    content: attr(data-project-title);
    position: absolute;
    inset: 0;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;
    box-sizing: border-box;
    text-align: center;

    color: #ffffff;
    font-family: inherit;
    font-size: clamp(15px, 1.15vw, 18px);
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.04em;
    text-transform: none;

    opacity: 0;
    transform: translateY(7px);

    transition:
        opacity 0.35s ease,
        transform 0.35s ease;

    pointer-events: none;
}

/* Comparsa in hover */
.progetto-card a:hover::before,
.progetto-card a:focus-visible::before {
    opacity: 1;
}

.progetto-card a:hover::after,
.progetto-card a:focus-visible::after {
    opacity: 1;
    transform: translateY(0);
}

/* WES homepage: shared layout and first-screen composition. */
.home { --wes-red: #b81832; --wes-ink: #242629; --wes-muted: #616368; --wes-paper: #f7f7f5; }
.home .wes-wrap { width: min(1120px, calc(100% - 96px)); margin-inline: auto; padding: 0; }
.home .wes-hero { min-height: min(800px, 88svh); padding: 140px 0 86px; display: flex; justify-content: center; background-attachment: scroll; }
.home .wes-hero::before { background-image: linear-gradient(90deg, rgba(15,23,30,.62), rgba(15,23,30,.20) 66%, rgba(15,23,30,.05)); background-color: transparent !important; opacity: 1; }
.home .wes-hero-content { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 24px; z-index: 1; }
.home .wes-motto .elementor-heading-title { color: #fff; font-size: clamp(58px, 5.6vw, 78px); line-height: 1.03; letter-spacing: -.035em; font-weight: 700; text-shadow: none; }
.home .wes-hero-description { max-width: 540px; color: #fff; font-size: 20px; line-height: 1.55; }
.home .wes-hero-description p { margin: 0; }
.home .wes-actions { display: flex; flex-direction: row; align-items: center; gap: 28px; width: auto; padding: 0; }
.home .wes-actions .elementor-widget { width: auto; }
.home .elementor-button { background: var(--wes-red); border-radius: 4px; padding: 16px 24px; font-size: 13px; font-weight: 700; letter-spacing: .07em; line-height: 1.3; transition: background-color .2s ease, color .2s ease; }
.home .elementor-button:hover { background: #95132a; }
.home .wes-button-text .elementor-button { color: var(--wes-ink); background: transparent; padding: 12px 0; border-radius: 0; border-bottom: 1px solid var(--wes-red); }
.home .wes-button-text .elementor-button:hover { color: var(--wes-red); background: transparent; }
.home .wes-on-dark .elementor-button, .home .wes-on-dark .elementor-button:hover { color: #fff; border-bottom-color: rgba(255,255,255,.6); }
.home .elementor a:focus-visible, .wes-project a:focus-visible { outline: 2px solid #b81832; outline-offset: 5px; }
@media (max-width: 767px) {
  .home .wes-wrap { width: calc(100% - 40px); }
  .home .wes-hero { min-height: clamp(510px,68svh,620px); padding: 112px 0 48px; background-position: 54% center; }
  .home .wes-hero-content { gap: 22px; }
  .home .wes-motto .elementor-heading-title { font-size: clamp(46px, 12.4vw, 62px); }
  .home .wes-hero-description { font-size: 17px; max-width: 310px; }
  .home .wes-actions { gap: 12px 22px; flex-wrap: wrap; }
  .home .elementor-button { padding: 15px 19px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .home *, .wes-project * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Lightweight editorial sections; all page copy remains editable in Elementor. */
.home .wes-section { padding: 106px 0; background: #fff; }
.home .wes-services { background: #f1f2ef; }
.home .wes-section-heading { max-width: 700px; padding: 0; gap: 15px; align-items: flex-start; }
.home .wes-eyebrow, .wes-project .wes-eyebrow { color: #b81832; font-size: 16px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin: 0; }
.home .wes-eyebrow p { margin: 0; }
.home .wes-section h2, .home .wes-contact-band h2, .home .wes-projects-heading h2 { color: var(--wes-ink); font-size: clamp(30px, 3.2vw, 42px); line-height: 1.18; letter-spacing: -.025em; font-weight: 650; margin: 0; }
.home .wes-section-lead { color: var(--wes-muted); max-width: 650px; font-size: 19px; line-height: 1.7; }
.home .wes-section-lead p { margin: 0; }
.home .wes-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; padding: 0; margin-top: 46px; }
.home .wes-service { background: #fff; padding: 30px; border: 1px solid #e5e6e1; border-radius: 7px; box-shadow: 0 5px 22px rgba(24,29,24,.035); display: flex; align-items: flex-start; gap: 18px; }
.home .wes-service-number { font-size: 14px; color: var(--wes-red); font-weight: 600; letter-spacing: .1em; }
.home .wes-service-number p { margin: 0; }
.home .wes-service h3 { color: var(--wes-ink); font-size: 23px; line-height: 1.3; letter-spacing: -.02em; font-weight: 650; }
.home .wes-service .elementor-widget-text-editor:not(.wes-service-number) { color: var(--wes-muted); font-size: 19px; line-height: 1.75; }
.home .wes-service .elementor-widget-text-editor p { margin: 0; }
.home a.wes-service { color: inherit; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.home a.wes-service:hover { transform: translateY(-5px); border-color: #b81832; box-shadow: 0 12px 30px rgba(24,29,24,.1); }
.home a.wes-service:focus-visible { outline: 3px solid #b81832; outline-offset: 5px; }
.home .wes-about { background: #fff; }
.home .wes-about-grid { display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: 80px; }
.home .wes-about-photo img { width: 100%; height: 390px; object-fit: cover; object-position: 53% center; }
.home .wes-about-copy { padding: 0; gap: 23px; align-items: flex-start; }
.home .wes-about-copy .elementor-widget-text-editor:not(.wes-eyebrow) { color: var(--wes-muted); font-size: 19px; line-height: 1.8; }
.home .wes-about-copy p { margin: 0; }
.home .wes-projects { background: #fff; }
.home .wes-projects-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 36px; }
.home .wes-projects-heading .wes-eyebrow { margin-bottom: 16px; }
.wes-inline-link { display: inline-block; color: #242629; border-bottom: 1px solid #b81832; padding-bottom: 7px; font-size: 16px; font-weight: 700; letter-spacing: .04em; }
.wes-inline-link:hover { color: #b81832; }
.wes-project-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px; }
.wes-project-card { min-width: 0; }
.wes-project-card a { display: block; color: inherit; }
.home .wes-project-card .wes-project-card-image { width: 100%; height: 270px; object-fit: cover; }
.wes-project-card-caption { position: relative; padding: 20px 22px 0 0; }
.home .wes-project-card h3 { font-size: 21px; line-height: 1.4; font-weight: 650; margin: 0 0 5px; color: var(--wes-ink); }
.wes-project-card p { color: #616368; font-size: 18px; line-height: 1.6; margin: 0; }
.home .wes-project-card { background: #f1f2ef; border-radius: 6px; overflow: hidden; }
.home .wes-project-card-caption { padding-inline: 22px; }
.home .wes-solid-link { padding: 16px 24px; font-size: 13px; text-transform: uppercase; letter-spacing: .07em; border-radius: 4px; white-space: nowrap; }
.home .wes-project-card { transition: transform .2s ease, box-shadow .2s ease; }
.home .wes-project-card:hover, .home .wes-project-card:focus-within { transform: translateY(-5px); box-shadow: 0 12px 30px rgba(24,29,24,.12); }
.home .wes-project-card a { height: 100%; padding-bottom: 24px; text-decoration: none; }
.home .wes-project-card a:focus-visible { outline: 3px solid #b81832; outline-offset: -3px; border-radius: 6px; }
.home .wes-partners { padding: 92px 0; background: #f1f2ef; }
.home .wes-partners-grid { display: grid; grid-template-columns: .85fr 1.4fr; align-items: center; gap: 70px; }
.home .wes-partner-heading { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; padding: 0; }
.home .wes-placeholder-note { color: #616368; font-size: 17px; line-height: 1.65; }
.home .wes-placeholder-note p { margin: 0; }
.home .wes-partner-panel { min-width: 0; padding: 38px 28px 24px; background: #fff; border-radius: 8px; gap: 24px; }
.home .logo-clienti { margin-top: 0; width: 100%; min-width: 0; }
.home .logo-clienti img { width: 150px; max-width: 100%; height: 110px; object-fit: contain; opacity: .75; }
.home .wes-carousel-toggle { display: block; margin: 0 0 0 auto; padding: 7px 0; color: #616368; background: transparent; border: 0; border-bottom: 1px solid #aaa; font-size: 14px; border-radius: 0; cursor: pointer; text-transform: none; letter-spacing: 0; }
.home .wes-carousel-toggle:focus-visible { outline: 2px solid #b81832; outline-offset: 5px; }
.home .wes-contact-band { padding: 86px 0 106px; background: #f1f2ef; }
.home .wes-contact-panel { position: relative; padding: 60px 64px; border-radius: 8px; overflow: hidden; background-size: cover; background-position: center 45%; }
.home .wes-contact-panel::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#242629 4%,rgba(36,38,41,.94) 42%,rgba(36,38,41,.25)); }
.home .wes-contact-content { width: 62%; padding: 0; position: relative; z-index: 1; gap: 23px; align-items: flex-start; }
.home .wes-contact-band .wes-eyebrow { color: #fff; opacity: .7; }
.home .wes-contact-band h2 { color: #fff; }
.home .wes-contact-band .elementor-widget-text-editor:not(.wes-eyebrow) { color: #fff; opacity: .9; font-size: 18px; }
.home .wes-contact-band p { margin: 0; }
.home #servizi-home, .home #progetti-home { scroll-margin-top: 0; }
@media (min-width:768px) and (max-width:1024px) {
  .home .wes-service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
  .home .wes-about-grid { gap: 38px; }
  .home .wes-project-card .wes-project-card-image { height: 220px; }
}
@media (max-width:767px) {
  .home .wes-section { padding: 64px 0; }
  .home .wes-eyebrow { font-size: 15px; }
  .home .wes-section-heading { gap: 14px; }
  .home .wes-section h2, .home .wes-contact-band h2, .home .wes-projects-heading h2 { font-size: 30px; }
  .home .wes-section-lead { font-size: 18px; }
  .home .wes-service-grid { grid-template-columns: 1fr; gap: 20px; margin-top: 32px; }
  .home .wes-service { gap: 15px; padding: 27px; }
  .home .wes-service h3 { font-size: 22px; }
  .home .wes-about-grid { grid-template-columns: 1fr; gap: 30px; }
  .home .wes-about-photo { order: 2; }
  .home .wes-about-photo img { height: 255px; }
  .home .wes-about-copy { gap: 19px; }
  .home .wes-projects-heading { align-items: flex-start; flex-direction: column; gap: 20px; margin-bottom: 28px; }
  .wes-project-grid { grid-template-columns: 1fr; gap: 30px; }
  .home .wes-project-card .wes-project-card-image { height: auto; aspect-ratio: 4/3; }
  .wes-project-card-caption { padding-top: 14px; }
  .home .wes-partners { padding: 64px 0; }
  .home .wes-partners-grid { grid-template-columns: 1fr; gap: 30px; }
  .home .wes-partner-heading { gap: 18px; }
  .home .wes-partner-panel { padding: 26px 20px 20px; }
  .home .wes-partners .logo-clienti img { width: 140px; max-width: 100%; height: 95px; }
  .home .wes-contact-band { padding: 54px 0 68px; }
  .home .wes-contact-panel { padding: 36px 27px; }
  .home .wes-contact-panel::before { background: rgba(36,38,41,.82); }
  .home .wes-contact-content { width: 100%; }
  .home .wes-contact-band .elementor-widget-text-editor:not(.wes-eyebrow) { font-size: 17px; }
}

/* Restore the original footer brand block without gallery margins. */
.site-footer .wes-footer-logo { margin: 0; }
.site-footer .wes-footer-logo img { width: 230px; max-width: 100%; height: auto; }

/* A single project template adapts to short entries and rich block galleries. */
.wes-project { padding: 150px 0 80px; width: 100%; color: #242629; }
body.wes-project-page .site-content > .ast-container { max-width: none; padding: 0; display: block; }
body.wes-project-page .site .site-content #primary.wes-project { margin: 0; width: 100%; padding: 150px 0 80px; }
.wes-project-wrap { width: min(1120px, calc(100% - 96px)); margin-inline: auto; }
.wes-project-intro > .wes-inline-link { margin-bottom: 42px; }
.wes-project-intro h1 { max-width: 950px; margin: 18px 0 22px; font-size: clamp(36px,4.5vw,62px); line-height: 1.12; letter-spacing: -.035em; }
.wes-project-summary { max-width: 800px; font-size: 22px; line-height: 1.65; color: #616368; }
.wes-project-facts { display: flex; flex-wrap: wrap; gap: 25px 60px; margin: 35px 0 42px; padding-top: 24px; border-top: 1px solid #deded9; }
.wes-project-facts > div { flex: 1 1 160px; }
.wes-project-facts dt { font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: #616368; margin-bottom: 8px; }
.wes-project-facts dd { margin: 0; font-size: 18px; line-height: 1.6; }
.wes-project-cover { margin-top: 35px; margin-bottom: 48px; }
.wes-project-cover img { display: block; width: 100%; height: auto; max-height: 680px; object-fit: cover; }
.wes-project-content { font-size: 19px; line-height: 1.85; }
.wes-project-content > :not(.wp-block-gallery):not(.alignwide):not(.alignfull) { max-width: 760px; margin-left: auto; margin-right: auto; }
.wes-project-content h2 { font-size: 30px; margin-top: 45px; }
.wes-project-content .wp-block-gallery { margin-block: 40px; gap: 20px; }
.wes-project-content img { height: auto; }
.wes-project-contact { display: flex; justify-content: space-between; align-items: center; gap: 30px; margin-top: 65px; border-top: 1px solid #deded9; padding-top: 35px; }
.wes-project-contact h2 { margin: 10px 0 0; font-size: 32px; }
.wes-solid-link { display: inline-block; background: #b81832; color: #fff; font-size: 13px; font-weight: 700; padding: 16px 24px; border-radius: 3px; }
.wes-solid-link:hover { color: #fff; background: #95132a; }
.wes-example-label { display: inline-block; margin: 3px 0 8px; color: #8e2434; font-size: 14px; font-weight: 600; letter-spacing: 0; text-transform: uppercase; }
.wes-project-demo { display: inline-block; margin: 18px 0 0; padding: 10px 14px; background: #f0e9e6; color: #75313c; font-size: 16px; line-height: 1.6; border-radius: 4px; }
.wes-project-gallery { margin-top: 52px; }
.wes-project-gallery > h2 { margin-bottom: 26px; font-size: 30px; }
.wes-gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.wes-gallery-grid.wes-gallery-single { grid-template-columns: 1fr; }
.wes-gallery-grid figure { margin: 0; background: #f1f2ef; }
.wes-gallery-grid a { display: flex; align-items: center; justify-content: center; height: 420px; }
.wes-gallery-grid img { display: block; width: 100%; height: 100%; object-fit: contain; }
.wes-gallery-single a { height: auto; }
.wes-gallery-single img { width: auto; max-width: 100%; height: auto; max-height: 650px; }
/* Shared CTA typography matches the Elementor studio button. */
.home .elementor .elementor-element .elementor-button, .home .wes-solid-link, .wes-project .wes-solid-link {
  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;
  white-space: normal; text-decoration: none;
}
.home .elementor-button:hover, .home .wes-solid-link:hover, .wes-project .wes-solid-link:hover { background: #95132a; color: #fff; }
.home .elementor-button:focus-visible, .home .wes-solid-link:focus-visible, .wes-project .wes-solid-link:focus-visible { outline: 3px solid #b81832; outline-offset: 5px; }
.home .wes-contact-band .elementor-widget-text-editor:not(.wes-eyebrow) { font-size: 19px; }
@media (max-width:767px) {
  .wes-project { padding: 120px 0 55px; }
  body.wes-project-page .site .site-content #primary.wes-project { padding: 120px 0 55px; }
  .wes-project-wrap { width: calc(100% - 40px); }
  .wes-project-intro > .wes-inline-link { margin-bottom: 28px; }
  .wes-project-summary { font-size: 20px; }
  .wes-project-content { font-size: 18px; }
  .home .wes-service .elementor-widget-text-editor:not(.wes-service-number),
  .home .wes-about-copy .elementor-widget-text-editor:not(.wes-eyebrow),
  .home .wes-contact-band .elementor-widget-text-editor:not(.wes-eyebrow) { font-size: 18px; }
  .wes-project-facts { gap: 20px; margin-top: 28px; }
  .wes-project-facts > div { flex-basis: 100%; }
  .wes-project-cover { margin-bottom: 30px; }
  .wes-project-contact { flex-direction: column; align-items: flex-start; margin-top: 40px; }
  .wes-gallery-grid { grid-template-columns: 1fr; gap: 18px; }
  .wes-gallery-grid a { height: auto; }
  .wes-gallery-grid img { width: 100%; height: auto; max-height: 550px; }
}
@media (prefers-reduced-motion: reduce) {
  .home a.wes-service:hover, .home .wes-project-card:hover, .home .wes-project-card:focus-within { transform: none; }
}

/* 17 October: one button system, using the colors already selected in Astra. */
body { --wes-button-bg:var(--ast-global-color-0,#e31b3f); --wes-button-hover:var(--ast-global-color-1,#b81832); }
.site .elementor .elementor-element .elementor-button,
.site .wes-solid-link,
.site .wp-block-button__link,
.site .ast-button,
.site input[type="submit"],
.site button[type="submit"],
.site .wes-slider-controls button {
  background-color:var(--wes-button-bg) !important;
  background-image:none !important;
  color:#fff !important;
  border:1px solid var(--wes-button-bg) !important;
  border-radius:7px !important;
  font-family:'Poppins',sans-serif !important;
  font-size:16px;
  font-weight:700 !important;
  line-height:1.4;
  letter-spacing:.04em;
  text-transform:uppercase !important;
  text-decoration:none !important;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.site .elementor .elementor-element .elementor-button:hover,
.site .elementor .elementor-element .elementor-button:focus-visible,
.site .wes-solid-link:hover, .site .wes-solid-link:focus-visible,
.site .wp-block-button__link:hover, .site .wp-block-button__link:focus-visible,
.site .ast-button:hover, .site .ast-button:focus-visible,
.site input[type="submit"]:hover, .site input[type="submit"]:focus-visible,
.site button[type="submit"]:hover, .site button[type="submit"]:focus-visible,
.site .wes-slider-controls button:not(:disabled):hover,
.site .wes-slider-controls button:focus-visible {
  background-color:var(--wes-button-hover) !important;
  border-color:var(--wes-button-hover) !important;
  color:#fff !important;
}
.site .elementor-button:focus-visible, .site .wes-solid-link:focus-visible,
.site .wp-block-button__link:focus-visible, .site .ast-button:focus-visible,
.site input[type="submit"]:focus-visible, .site button[type="submit"]:focus-visible {
  outline:3px solid var(--wes-button-hover); outline-offset:4px;
}
/* Align all three footer columns to the same content width as the page. */
.site-footer .site-primary-footer-inner-wrap.ast-builder-grid-row,
.site-footer .site-below-footer-inner-wrap.ast-builder-grid-row {
  width:min(1120px,calc(100% - 96px)); max-width:1120px; margin-inline:auto; padding-inline:0;
}
.site-footer .site-primary-footer-inner-wrap.ast-builder-grid-row { width:min(1440px,calc(100% - 96px)); max-width:1440px; column-gap:48px; }
.site-footer .site-footer-primary-section-1 { padding-inline:0; }
/* Partners belong to the project section, rather than a short independent band. */
.home .wes-project-partners { padding:60px 0 0; margin-top:60px; border-top:1px solid #dedfd9; background:transparent; }
.home .wes-project-partners .wes-partners-grid { width:100%; padding:0; }
.home .wes-project-partners h2 { font-size:30px; }
.home .wes-projects { background:#f1f2ef; }
.home .wes-projects .wes-project-card { background:#fff; }
.home .wes-project-partners .wes-partner-panel { background:#fff; padding:32px; }
@media(max-width:767px) {
  .site-footer .site-primary-footer-inner-wrap.ast-builder-grid-row,
  .site-footer .site-below-footer-inner-wrap.ast-builder-grid-row { width:calc(100% - 40px); }
  .site-footer .site-primary-footer-inner-wrap.ast-builder-grid-row { column-gap:0; }
  .home .wes-project-partners { padding-top:38px; margin-top:40px; }
  .home .wes-project-partners h2 { font-size:28px; }
  .home .wes-project-partners .wes-partner-panel { padding:25px 20px; }
  .site .wes-slider-controls button { font-size:13px; padding:12px 10px; letter-spacing:.02em; }
}

/* Homepage only: improve contrast within the photograph, keeping the header transparent. */
.home .wes-hero::before {
  background-image:linear-gradient(180deg,rgba(0,0,0,.46) 0,rgba(0,0,0,.22) 85px,transparent 210px),linear-gradient(90deg,rgba(15,23,30,.62),rgba(15,23,30,.20) 66%,rgba(15,23,30,.05));
}
/* Office photo, homepage 183 only; separate technical photograph for its CTA. */
body:is(.page-id-183,.wes-services-comparison) #hero-home.wes-office-hero {
  background-position: center 58%;
  background-color: #242a2e;
  background-repeat: no-repeat;
}
body:is(.page-id-183,.wes-services-comparison) #hero-home.wes-office-hero::before {
  background-image:
    linear-gradient(180deg,rgba(10,16,21,.23),transparent 25%,transparent 80%,rgba(10,16,21,.14)),
    linear-gradient(90deg,rgba(13,21,27,.54),rgba(13,21,27,.46) 38%,rgba(13,21,27,.20) 72%,rgba(13,21,27,.14));
}
body:is(.page-id-183,.wes-services-comparison) #hero-home.wes-office-hero .wes-motto {
  text-shadow: 0 2px 22px rgba(0,0,0,.18);
}
body:is(.page-id-183,.wes-services-comparison) .wes-ending {
  --wes-ending-image: url('/wp-content/uploads/2026/11/wes-progettazione-taccuino-cta-14.jpg');
  background-position: center 56%;
}
body:is(.page-id-183,.wes-services-comparison) .wes-ending::before {
  background: rgba(13,21,27,.68);
}
@media (min-width:1600px) {
  body:is(.page-id-183,.wes-services-comparison) #hero-home.wes-office-hero {
    min-height: min(1040px,94svh);
    background-position: center 85%;
  }
}
@media (max-width:767px) {
  body:is(.page-id-183,.wes-services-comparison) #hero-home.wes-office-hero {
    background-size:cover;
    background-position:62% center;
  }
  body:is(.page-id-183,.wes-services-comparison) #hero-home.wes-office-hero::before {
    background-image:linear-gradient(180deg,rgba(13,21,27,.48),rgba(13,21,27,.48) 65%,rgba(13,21,27,.30));
  }
  .site-footer .site-primary-footer-wrap { padding-top:42px; }
  .page-id-669 .elementor-element.elementor-element-0600a3e { margin-bottom:12px; }
}

/* Original WES photographs: internal openings, November 2026. */
.site .elementor .wes-page-hero.wes-photo-hero {
  background-color:#242a2e;
  background-repeat:no-repeat;
  background-attachment:scroll;
  background-position:var(--wes-photo-position,center 55%);
}
.site .elementor .wes-page-hero.wes-photo-hero::before {
  background-color:transparent;
  background-image:
    linear-gradient(180deg,rgba(10,16,21,.43),transparent 28%,transparent 80%,rgba(10,16,21,.14)),
    linear-gradient(90deg,rgba(13,21,27,.62),rgba(13,21,27,.55) 48%,rgba(13,21,27,.26) 80%,rgba(13,21,27,.16));
  opacity:1;
}
.wes-photo-hero .wes-page-hero-inner { text-shadow:0 1px 7px rgba(0,0,0,.22); }
.site .elementor .wes-photo-hero .wes-page-hero-subtitle { max-width:640px; }

.page-id-16 .wes-photo-hero { --wes-photo-position:center 55%; }
.page-id-669 .wes-photo-hero { --wes-photo-position:center 56%; }
.page-id-860 .wes-photo-hero { --wes-photo-position:center 56%; }
.page-id-667 .wes-photo-hero { --wes-photo-position:center 58%; }
.page-id-668 .wes-photo-hero { --wes-photo-position:center 55%; }
.page-id-679 .wes-photo-hero { --wes-photo-position:center 54%; }
@media(min-width:1600px) {
  .site .elementor .wes-page-hero.wes-photo-hero { min-height:min(920px,88svh); }

}
@media(max-width:767px) {
  .site .elementor .wes-page-hero.wes-photo-hero {
    min-height:350px;
    background-size:cover;
    background-position:var(--wes-photo-mobile-position,center);
  }
  .site .elementor .wes-page-hero.wes-photo-hero::before {
    background-image:linear-gradient(180deg,rgba(13,21,27,.48),rgba(13,21,27,.55) 65%,rgba(13,21,27,.32));
  }
  .page-id-16 .wes-photo-hero { --wes-photo-mobile-position:65% 44%; }
  .page-id-669 .wes-photo-hero { --wes-photo-mobile-position:44% center; }
  .page-id-860 .wes-photo-hero { --wes-photo-mobile-position:70% center; }
  .page-id-667 .wes-photo-hero { --wes-photo-mobile-position:66% center; }
  .page-id-668 .wes-photo-hero { --wes-photo-mobile-position:45% center; }
  .page-id-679 .wes-photo-hero { --wes-photo-mobile-position:32% center; }
}
/* Editable founder portraits; the existing introduction and method follow the same grid. */
.site .elementor .wes-about-photo-intro { padding:0; }
.wes-about-intro-title .elementor-heading-title { font-size:clamp(24px,2vw,30px); line-height:1.35; }
.site .elementor .wes-about-photo-band::before { background-color:#15202a; background-image:none; opacity:.56; }
.site .elementor .wes-team-section { padding:80px 0 96px; background:#f1f2ef; }
.site .elementor .wes-photo-wrap { width:min(1120px,calc(100% - 96px)); margin-inline:auto; padding:0; gap:0; }
.wes-team-section .elementor-widget { margin:0; }
.wes-team-section .wes-team-eyebrow { color:#b81832; font-size:14px; font-weight:700; letter-spacing:.12em; }
.wes-team-section .wes-team-eyebrow p { margin:0 0 18px; }
.wes-team-section .wes-team-title .elementor-heading-title { font-size:clamp(30px,3.1vw,44px); color:#242629; font-weight:700; line-height:1.18; }
.site .elementor .wes-team-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px; padding:0; margin-top:40px; }
.site .elementor .wes-person { padding:0; gap:0; align-items:flex-start; }
.wes-person-photo { width:100%; }
.wes-person-photo img { display:block; width:100%; aspect-ratio:1; height:auto; object-fit:cover; border:1px solid #b81832; box-sizing:border-box; }
.wes-person-name { margin-top:25px !important; }
.wes-person-name .elementor-heading-title { font-size:26px; color:#242629; line-height:1.25; font-weight:600; }
.wes-person-role { margin-top:7px !important; font-size:17px; color:#606267; }
.wes-person-role p { margin:0; }
@media(max-width:767px) {

  .site .elementor .wes-team-section { padding:56px 0 64px; }
  .site .elementor .wes-photo-wrap { width:calc(100% - 40px); }
  .site .elementor .wes-team-grid { grid-template-columns:1fr; gap:40px; margin-top:30px; }
  .wes-person-name { margin-top:20px !important; }
}

/* Service comparisons: shared photographs, six independent cards or three areas. */
.home.wes-services-comparison .wes-service-photo { padding:0; gap:0; overflow:hidden; }
.home.wes-services-comparison .wes-service-card-photo { width:100%; margin:0; }
.home.wes-services-comparison .wes-service-card-photo img { display:block; width:100%; height:146px; object-fit:cover; }
.home.wes-services-comparison .wes-service-photo-copy { width:100%; padding:24px; gap:12px; align-items:flex-start; }
.home.wes-services-comparison .wes-service-photo h3 { font-size:22px; line-height:1.3; }
.home.wes-services-comparison .wes-service-photo .elementor-widget-text-editor:not(.wes-service-number) { font-size:18px; line-height:1.6; }
.home.wes-services-comparison .wes-service-photo .elementor-widget { margin:0; }
.home.wes-services-comparison .wes-service-areas { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:0; margin-top:46px; }
.home.wes-services-comparison .wes-area-card { min-width:0; padding:0; gap:0; background:#fff; border:1px solid #e0e2dd; border-radius:7px; overflow:hidden; }
.home.wes-services-comparison .wes-area-photo { width:100%; margin:0; }
.home.wes-services-comparison .wes-area-photo img { display:block; width:100%; height:230px; object-fit:cover; }
.home.wes-services-comparison .wes-area-content { padding:28px; gap:14px; align-items:flex-start; }
.home.wes-services-comparison .wes-area-content .elementor-widget { margin:0; }
.home.wes-services-comparison .wes-area-title { min-height:32px; }
.home.wes-services-comparison .wes-area-title h3 { font-size:26px; font-weight:650; line-height:1.23; letter-spacing:-.025em; color:#242629; }
.home.wes-services-comparison .wes-area-description { min-height:58px; color:#616368; font-size:18px; line-height:1.6; }
.home.wes-services-comparison .wes-area-description p { margin:0; }
.home.wes-services-comparison .wes-area-links { width:100%; padding:0; gap:0; }
.home.wes-services-comparison a.wes-area-service { width:100%; padding:17px 0; border-top:1px solid #dedfd9; color:#242629; text-decoration:none; transition:color .2s ease; }
.home.wes-services-comparison .wes-area-service h4 { font-size:18px; font-weight:600; line-height:1.45; color:inherit; }
.home.wes-services-comparison .wes-area-service:hover { color:#b81832; }
.home.wes-services-comparison .wes-area-service:focus-visible { outline:3px solid #b81832; outline-offset:4px; }
@media(min-width:768px) and (max-width:1024px) {
  .home.wes-services-comparison .wes-area-photo img { height:190px; }
  .home.wes-services-comparison .wes-area-content { padding:22px; }
  .home.wes-services-comparison .wes-area-title h3 { font-size:24px; }
  .home.wes-services-comparison .wes-area-title { min-height:64px; }
  .home.wes-services-comparison .wes-area-description { min-height:86px; }
}
@media(max-width:767px) {
  .home.wes-services-comparison .wes-service-card-photo img { height:160px; }
  .home.wes-services-comparison .wes-service-areas { grid-template-columns:1fr; gap:24px; margin-top:32px; }
  .home.wes-services-comparison .wes-area-photo img { height:210px; }
  .home.wes-services-comparison .wes-area-content { padding:25px; }
  .home.wes-services-comparison .wes-area-title,.home.wes-services-comparison .wes-area-description { min-height:0; }
}

/* Home — Evoluzione. Scoped proposal; approved hero, CTA and footer are shared. */
.wes-home-evoluzione .ev-section { padding:104px 0; }
.wes-home-evoluzione .ev-section .wes-wrap { gap:0; }
.wes-home-evoluzione .ev-section .elementor-widget { margin:0; }
.wes-home-evoluzione .ev-section p { margin:0; }
.wes-home-evoluzione .ev-section .elementor-widget-text-editor { font-size:19px; line-height:1.75; color:#606267; }
.wes-home-evoluzione .ev-section .wes-eyebrow { font-size:14px; color:#b81832; letter-spacing:.1em; }
.wes-home-evoluzione .ev-section h2 { font-size:clamp(32px,3.25vw,46px); line-height:1.16; letter-spacing:-.035em; color:#242629; font-weight:700; }
.wes-home-evoluzione .ev-services { background:#f1f2ef; }
.wes-home-evoluzione .ev-section-head { display:grid; grid-template-columns:1.2fr 1fr; gap:74px; padding:0; align-items:end; margin-bottom:44px; }
.wes-home-evoluzione .ev-title { padding:0; gap:18px; }
.wes-home-evoluzione .ev-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; padding:0; }
.wes-home-evoluzione .ev-service { padding:32px 29px 27px; gap:22px; background:#fff; border:1px solid #e1e2df; border-radius:7px; color:#242629; text-decoration:none; box-shadow:0 4px 16px #24262903; transition:border-color .25s,box-shadow .25s,transform .25s; }
.wes-home-evoluzione .ev-service:hover { border-color:#b81832; transform:translateY(-4px); box-shadow:0 12px 24px #2426290b; }
.wes-home-evoluzione .ev-service:focus-visible { outline:3px solid #b81832; outline-offset:5px; }
.wes-home-evoluzione .ev-service h3 { font-size:clamp(24px,2.3vw,30px); line-height:1.22; font-weight:650; letter-spacing:-.025em; color:#242629; }
.wes-home-evoluzione .ev-service .ev-number { font-size:13px; font-weight:700; letter-spacing:.08em; color:#b81832; padding-bottom:14px; }
.wes-home-evoluzione .ev-service .elementor-widget-text-editor:not(.ev-number):not(.ev-service-detail) { font-size:18px; line-height:1.7; }
.wes-home-evoluzione .ev-service .ev-service-detail { margin-top:auto; padding-top:23px; border-top:1px solid #e6e7e3; font-size:14px; font-weight:600; line-height:1.5; color:#424447; }
.wes-home-evoluzione .ev-service-bottom { display:flex; flex-direction:row; justify-content:space-between; align-items:center; gap:25px; padding:35px 0 0; }
.wes-home-evoluzione .ev-service-bottom .elementor-widget-text-editor { font-size:17px; }
.wes-home-evoluzione .ev-service-bottom .elementor-widget-button { flex-shrink:0; width:auto; }
.wes-home-evoluzione .ev-studio { background:#fff; }
.wes-home-evoluzione .wes-wrap.ev-studio-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:76px; }
.wes-home-evoluzione .ev-studio-visual { padding:0; gap:18px; }
.wes-home-evoluzione .ev-studio-photo img { width:100%; height:420px; object-fit:cover; object-position:50% center; border-radius:4px; }
.wes-home-evoluzione .ev-section .ev-caption { font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:#66696b; }
.wes-home-evoluzione .ev-studio-copy { padding:0; gap:24px; align-items:flex-start; }
.wes-home-evoluzione .ev-studio-copy .ev-studio-secondary { font-size:18px; }
.wes-home-evoluzione .ev-studio-copy .elementor-widget-button { margin-top:8px; }
.wes-home-evoluzione .ev-project-content { padding:0; }
.wes-home-evoluzione .ev-projects .wes-projects-heading { margin-bottom:42px; }
.wes-home-evoluzione .ev-projects .wes-project-grid { grid-template-columns:1.25fr 1fr 1fr; gap:24px; align-items:start; }
.wes-home-evoluzione .ev-projects .wes-project-card .wes-project-card-image { height:285px; }
.wes-home-evoluzione .ev-projects .wes-project-card:first-child .wes-project-card-image { height:365px; }
.wes-home-evoluzione .ev-projects .wes-project-card-caption { padding:25px 23px 0; }
.wes-home-evoluzione .ev-projects .wes-project-card h3 { font-size:22px; }
.wes-home-evoluzione .ev-projects .wes-project-card p { font-size:17px; }
.wes-home-evoluzione #servizi-home { scroll-margin-top:80px; }
.wes-home-evoluzione .ev-reveal { transition:opacity .65s ease,translate .65s ease; }
.wes-home-evoluzione .ev-pending { opacity:0; translate:0 18px; }
.wes-home-evoluzione .ev-pending:focus-within { opacity:1; translate:none; }
@media(min-width:768px) and (max-width:1024px) {
 .wes-home-evoluzione .ev-section-head { gap:32px; }
 .wes-home-evoluzione .ev-service-grid { gap:16px; }
 .wes-home-evoluzione .ev-service { padding:26px 21px; }
 .wes-home-evoluzione .wes-wrap.ev-studio-grid { gap:36px; }
 .wes-home-evoluzione .ev-projects .wes-project-card .wes-project-card-image { height:225px; }
 .wes-home-evoluzione .ev-projects .wes-project-card:first-child .wes-project-card-image { height:290px; }
}
@media(max-width:767px) {
 .wes-home-evoluzione .ev-section { padding:64px 0; }
 .wes-home-evoluzione .ev-section-head { grid-template-columns:1fr; gap:24px; margin-bottom:30px; }
 .wes-home-evoluzione .ev-section h2 { font-size:32px; }
 .wes-home-evoluzione .ev-section .elementor-widget-text-editor { font-size:18px; }
 .wes-home-evoluzione .ev-service-grid { grid-template-columns:1fr; gap:18px; }
 .wes-home-evoluzione .ev-service { padding:27px; gap:18px; }
 .wes-home-evoluzione .ev-service h3 { font-size:28px; }
 .wes-home-evoluzione .ev-service .ev-number { padding-bottom:0; font-size:14px; }
 .wes-home-evoluzione .ev-service h3 br { display:none; }
 .wes-home-evoluzione .ev-service .ev-service-detail { padding-top:18px; font-size:15px; }
 .wes-home-evoluzione .ev-section .ev-caption { font-size:13px; }
 .wes-home-evoluzione .ev-section .wes-eyebrow { font-size:14px; }
 .wes-home-evoluzione .ev-service-bottom { flex-direction:column; align-items:flex-start; padding-top:28px; gap:20px; }
 .wes-home-evoluzione .wes-wrap.ev-studio-grid { grid-template-columns:1fr; gap:32px; }
 .wes-home-evoluzione .ev-studio-photo img { height:auto; aspect-ratio:4/3; }
 .wes-home-evoluzione .ev-studio-copy { gap:22px; }
 .wes-home-evoluzione .ev-projects .wes-project-grid { grid-template-columns:1fr; gap:26px; }
 .wes-home-evoluzione .ev-projects .wes-project-card .wes-project-card-image,
 .wes-home-evoluzione .ev-projects .wes-project-card:first-child .wes-project-card-image { height:auto; aspect-ratio:4/3; }
}
@media(prefers-reduced-motion:reduce) {
 .wes-home-evoluzione .ev-reveal { opacity:1; translate:none; transition:none; }
 .wes-home-evoluzione .ev-service:hover { transform:none; }
}
