/* ==========================================================
   GRUPO ARQUISOCIAL - CSS GLOBAL
   Archivo: assets/css/arquisocial.css

   Contiene solo:
   - Fuentes y variables corporativas
   - Base general de WordPress / Divi
   - Tipografia compartida
   - Header y menu
   - Footer
   ========================================================== */

/* ==========================================================
   0. FUENTES CORPORATIVAS
   Los archivos deben estar en assets/fonts/
   ========================================================== */

@font-face {
  font-family: "Antikor";
  src: url("../fonts/AntikorText-Bold-MOD.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Figtree";
  src: url("../fonts/FIGTREE-VARIABLEFONT_WGHT.TTF") format("truetype");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Figtree";
  src: url("../fonts/FIGTREE-ITALIC-VARIABLEFONT_WGHT.TTF") format("truetype");
  font-weight: 300 900;
  font-style: italic;
  font-display: swap;
}


/* ==========================================================
   1. VARIABLES DE MARCA
   ========================================================== */

:root {
  --as-white: #FBFBFB;
  --as-paper: #F6F3E8;
  --as-black: #2A2A2A;
  --as-green: #899F75;
  --as-green-dark: #6F865D;
  --as-cream: #FFF9DC;
  --as-yellow: #F5D892;
  --as-red: #AA4B4B;
  --as-line: rgba(137, 159, 117, 0.24);

  --as-font-title: "Antikor", Georgia, serif;
  --as-font-body: "Figtree", Arial, sans-serif;
}


/* ==========================================================
   2. BASE GENERAL Y LIMPIEZA DIVI
   ========================================================== */

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  background: var(--as-cream) !important;
}

body {
  color: var(--as-black);
  font-family: var(--as-font-body);
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: -0.005em;
  text-rendering: geometricPrecision;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
video,
svg {
  max-width: 100%;
  height: auto;
}

html,
body,
#page-container,
#et-main-area,
#main-content {
  background: var(--as-cream) !important;
}

.et_pb_section,
.et_pb_row,
.et_pb_module {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.et_pb_row {
  width: 100% !important;
  max-width: none !important;
}

.et_fixed_nav #page-container,
body.et_fixed_nav #page-container,
body.et_non_fixed_nav #page-container {
  padding-top: 0 !important;
}

section[id] {
  scroll-margin-top: 110px;
}


/* ==========================================================
   3. TIPOGRAFIA GLOBAL
   ========================================================== */

body,
p,
li,
a,
span,
small,
strong,
em,
input,
textarea,
select,
button,
label,
.et_pb_text,
.et_pb_text_inner,
.et_pb_button,
.et_pb_blurb_description,
.et_pb_module,
#top-menu a,
.et_mobile_menu a,
#footer-widgets,
#footer-info,
.as-legal-bottom {
  font-family: var(--as-font-body) !important;
}

p,
li,
.et_pb_text,
.et_pb_text_inner {
  font-weight: 400 !important;
}

h1,
h2,
h3,
.et_pb_text h1,
.et_pb_text h2,
.et_pb_text h3,
.et_pb_module h1,
.et_pb_module h2,
.et_pb_module h3 {
  font-family: var(--as-font-title) !important;
  font-weight: 700;
  letter-spacing: -0.045em;
}

h4,
h5,
h6,
.et_pb_text h4,
.et_pb_text h5,
.et_pb_text h6,
.et_pb_module h4,
.et_pb_module h5,
.et_pb_module h6 {
  font-family: var(--as-font-body) !important;
  font-weight: 700;
}

.as-label {
  display: inline-block;
  margin-bottom: 22px;
  color: var(--as-red);
  font-family: var(--as-font-body) !important;
  font-size: 13px;
  line-height: 1;
  font-weight: 700 !important;
  letter-spacing: 0.105em !important;
  text-transform: uppercase;
}

.as-button,
.as-button-secondary,
.et_pb_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 15px 24px;
  border-radius: 999px;
  font-family: var(--as-font-body) !important;
  font-size: 15px !important;
  line-height: 1;
  font-weight: 650 !important;
  text-decoration: none !important;
  transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.as-button {
  background: var(--as-green);
  color: var(--as-cream) !important;
}

.as-button:hover {
  transform: translateY(-3px);
  background: var(--as-red);
}

.as-button-secondary {
  border: 1px solid rgba(137, 159, 117, 0.42);
  background: var(--as-cream);
  color: var(--as-black) !important;
}

.as-button-secondary:hover {
  transform: translateY(-3px);
  border-color: var(--as-green);
  background: var(--as-yellow);
  color: var(--as-black) !important;
}


/* ==========================================================
   4. HEADER DIVI / MENU PRINCIPAL
   ========================================================== */

#main-header .container::before,
.logo_container a::before {
  display: none !important;
  content: none !important;
}

body.et_transparent_nav #main-header,
body.et_fixed_nav #main-header,
#main-header,
#main-header.et-fixed-header {
  position: fixed !important;
  top: 0;
  left: 0;
  z-index: 99999 !important;
  width: 100%;
  height: 82px !important;
  overflow: visible !important;
  background: var(--as-green) !important;
  border: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  transition: height 0.25s ease, background 0.25s ease;
}

body.admin-bar #main-header {
  top: 32px;
}

#main-header .container {
  width: min(86%, 1360px) !important;
  max-width: none !important;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.logo_container {
  position: relative !important;
  height: auto !important;
  display: flex;
  align-items: center;
}

#main-header .logo_container a {
  position: relative !important;
  display: inline-flex !important;
  align-items: center;
  min-height: 44px;
}

#logo {
  display: block !important;
  width: auto !important;
  max-height: 42px !important;
  height: auto !important;
  opacity: 1 !important;
  filter: brightness(0) saturate(100%) invert(94%) sepia(13%) saturate(560%) hue-rotate(343deg) brightness(108%) contrast(104%) !important;
  transition: opacity 0.22s ease, transform 0.32s ease, max-height 0.32s ease;
}

/* Logo animado insertado por JS */
#main-header.as-logo-swap-ready #logo {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  max-width: 1px !important;
  max-height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
}

.as-header-logo-stack {
  position: relative;
  display: inline-block;
  width: 38px;
  height: 44px;
  transition: width 0.45s ease, transform 0.35s ease;
}

.as-header-logo-stack img {
  position: absolute;
  left: 0;
  top: 50%;
  display: block;
  max-width: none;
  height: auto;
  transform: translateY(-50%);
  filter: brightness(0) saturate(100%) invert(94%) sepia(13%) saturate(560%) hue-rotate(343deg) brightness(108%) contrast(104%) !important;
  transition: opacity 0.35s ease, transform 0.45s ease;
}

.as-header-logo-mark {
  width: 34px;
  opacity: 1;
  transform: translateY(-50%) scale(1);
}

.as-header-logo-full {
  width: clamp(190px, 14vw, 250px);
  opacity: 0;
  transform: translateY(-50%) translateX(-8px) scale(0.96);
}

#main-header.as-header-butterfly .as-header-logo-stack {
  width: 38px;
}

#main-header.as-header-butterfly .as-header-logo-mark {
  opacity: 1;
  transform: translateY(-50%) scale(1);
}

#main-header.as-header-butterfly .as-header-logo-full {
  opacity: 0;
  transform: translateY(-50%) translateX(-8px) scale(0.96);
}

#main-header.as-header-full-logo .as-header-logo-stack {
  width: clamp(190px, 14vw, 250px);
}

#main-header.as-header-full-logo .as-header-logo-mark {
  opacity: 0;
  transform: translateY(-50%) scale(0.82);
}

#main-header.as-header-full-logo .as-header-logo-full {
  opacity: 1;
  transform: translateY(-50%) translateX(0) scale(1);
}

#et-top-navigation {
  padding-left: 0 !important;
  padding-top: 0 !important;
  display: flex;
  align-items: center;
}

#et_top_search {
  display: none !important;
}

#top-menu {
  display: flex;
  align-items: center;
  gap: 24px;
}

#top-menu > li {
  padding-right: 0 !important;
}

#top-menu > li > a {
  position: relative;
  padding: 12px 0 !important;
  background: transparent !important;
  color: var(--as-cream) !important;
  font-family: var(--as-font-body) !important;
  font-size: 12px;
  line-height: 1;
  font-weight: 750 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase;
  opacity: 0.95 !important;
  text-shadow: none !important;
  transition: opacity 0.2s ease, color 0.2s ease;
}

#top-menu > li > a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 4px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  opacity: 0.72;
  transition: transform 0.25s ease;
}

#top-menu > li > a:hover {
  color: var(--as-yellow) !important;
  opacity: 1 !important;
}

#top-menu > li > a:hover::after {
  transform: scaleX(1);
}

/* Barra de progreso del menu: sutil con degradado */
#main-header::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: rgba(255, 249, 220, 0.22);
  z-index: 3;
  pointer-events: none;
}

#as-nav-progress {
  position: absolute !important;
  left: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 2px !important;
  transform: scaleX(0);
  transform-origin: left center;
  background: linear-gradient(
    90deg,
    rgba(255, 249, 220, 0.92) 0%,
    rgba(245, 216, 146, 0.95) 58%,
    rgba(170, 75, 75, 0.78) 100%
  ) !important;
  z-index: 4 !important;
  pointer-events: none;
  transition: transform 0.08s linear;
  box-shadow: none !important;
}

#as-nav-progress::before,
#as-nav-progress::after {
  display: none !important;
  content: none !important;
}

.mobile_menu_bar::before {
  color: var(--as-cream) !important;
}




/* ==========================================================
   RESPONSIVE GLOBAL - HEADER Y BASE DIVI
   ========================================================== */

@media (max-width: 980px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
  }

  body.et_fixed_nav #page-container,
  body.et_non_fixed_nav #page-container,
  #page-container,
  #et-main-area,
  #main-content {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  #main-header,
  #main-header.et-fixed-header {
    height: 72px !important;
    background: var(--as-green) !important;
    box-shadow: none !important;
  }

  body.admin-bar #main-header {
    top: 46px;
  }

  #main-header .container {
    width: calc(100% - 36px) !important;
    height: 72px !important;
    max-width: none !important;
  }

  #top-menu,
  #top-menu-nav {
    display: none !important;
  }

  #et-top-navigation {
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
  }

  #et_mobile_nav_menu {
    display: block !important;
    float: none !important;
  }

  .mobile_menu_bar {
    display: block !important;
    padding: 0 !important;
  }

  .mobile_menu_bar::before {
    color: var(--as-cream) !important;
    font-size: 32px !important;
  }

  .et_mobile_menu {
    position: fixed !important;
    left: 0 !important;
    right: auto !important;
    top: 72px !important;
    width: 100vw !important;
    height: calc(100svh - 72px) !important;
    margin: 0 !important;
    padding: 28px 24px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--as-green) !important;
    box-shadow: none !important;
    overflow-y: auto !important;
  }

  body.admin-bar .et_mobile_menu {
    top: 118px !important;
    height: calc(100svh - 118px) !important;
  }

  .et_mobile_menu li {
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid var(--as-cream) !important;
  }

  .et_mobile_menu li a {
    padding: 22px 0 !important;
    color: var(--as-cream) !important;
    background: transparent !important;
    border: 0 !important;
    font-family: var(--as-font-body) !important;
    font-size: 15px !important;
    line-height: 1 !important;
    font-weight: 650 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
  }

  .et_mobile_menu li a:hover {
    color: var(--as-yellow) !important;
    background: transparent !important;
    opacity: 1 !important;
  }

  .as-header-logo-stack {
    height: 38px !important;
  }

  .as-header-logo-mark {
    width: 30px !important;
  }

  .as-header-logo-full {
    width: 158px !important;
  }

  #main-header.as-header-butterfly .as-header-logo-stack {
    width: 34px !important;
  }

  #main-header.as-header-full-logo .as-header-logo-stack {
    width: 158px !important;
  }


}

@media (max-width: 420px) {
  .as-header-logo-full {
    width: 138px !important;
  }

  #main-header.as-header-full-logo .as-header-logo-stack {
    width: 138px !important;
  }
}

/* ==========================================================
   10. FOOTER DIVI PERSONALIZADO / GRUPO ARQUISOCIAL
   Compacto + trazo de marca de borde a borde
   ========================================================== */

/* Oculta el pie nativo antiguo y la franja legal beige */
#footer-bottom,
#et-footer-nav,
.as-legal-bottom,
.as-legal-bottom-inner {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

/* Limpieza del contenedor de Divi */
#main-footer {
  position: relative !important;
  overflow: hidden !important;
  background: var(--as-green) !important;
  color: var(--as-cream) !important;
  border: 0 !important;
  box-shadow: none !important;
}

#main-footer::before,
#main-footer::after,
#footer-widgets .footer-widget::before,
#footer-widgets .footer-widget li::before {
  display: none !important;
  content: none !important;
}

#main-footer .container,
#footer-widgets {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

#footer-widgets .footer-widget {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

#footer-widgets .footer-widget:nth-child(n+2) {
  display: none !important;
}

/* Fondo verde a sangre */
.as-divi-footer-custom {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow: hidden !important;
  background: var(--as-green) !important;
  color: var(--as-cream) !important;
  isolation: isolate;
}

/* Línea superior muy discreta */
.as-divi-footer-custom::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 5;
  height: 1px;
  background: rgba(255, 249, 220, 0.24);
  pointer-events: none;
}

/*
   Trazo de fondo:
   - el pseudo-elemento es más ancho que la pantalla;
   - el SVG también continúa fuera del encuadre;
   - así no aparece un corte seco dentro del footer.
*/
.as-divi-footer-custom::before {
  content: "";
  position: absolute;
  z-index: 1;
  right: clamp(-150px, -7vw, -80px);
  bottom: clamp(-210px, -11vw, -120px);
  width: clamp(520px, 38vw, 700px);
  aspect-ratio: 1;
  pointer-events: none;
  background:
    url("/wp-content/themes/divi-arquisocial-child/assets/img/grupo-arquisocial-mariposa.svg")
    center / contain no-repeat;
  filter:
    brightness(0)
    saturate(100%)
    invert(94%)
    sepia(13%)
    saturate(560%)
    hue-rotate(343deg)
    brightness(108%)
    contrast(104%);
  opacity: 0.08;
  transform: none;
  border: 0;
  box-shadow: none;
}

/* Contenido más contenido: el fondo va a sangre, el texto no */
.as-divi-footer-inner {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 96px), 1180px);
  margin: 0 auto;
  padding: clamp(42px, 4.2vw, 64px) 0 clamp(28px, 3vw, 42px) !important;
  display: grid;
  grid-template-columns: minmax(260px, 0.88fr) minmax(420px, 1.12fr);
  gap: clamp(52px, 6.5vw, 100px);
  align-items: center;
}

.as-divi-footer-brand {
  max-width: 410px;
}

.as-divi-footer-brand img {
  display: block;
  width: min(270px, 70vw);
  height: auto;
  margin-bottom: 24px;
  filter: brightness(0) saturate(100%) invert(94%) sepia(13%) saturate(560%) hue-rotate(343deg) brightness(108%) contrast(104%);
}

.as-divi-footer-brand p {
  max-width: 390px;
  margin: 0;
  color: var(--as-cream) !important;
  font-family: var(--as-font-body) !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  font-weight: 520 !important;
}

.as-divi-footer-social {
  display: flex;
  align-items: center;
  gap: 19px;
  margin-top: 24px;
}

.as-divi-footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--as-cream) !important;
  opacity: 0.92;
  box-shadow: none !important;
  text-decoration: none !important;
  transition: color 0.22s ease, opacity 0.22s ease, transform 0.22s ease;
}

.as-divi-footer-social a:hover {
  transform: translateY(-2px);
  color: var(--as-yellow) !important;
  opacity: 1;
}

.as-divi-footer-social svg {
  display: block;
  width: 20px !important;
  height: 20px !important;
  fill: currentColor !important;
}

.as-divi-footer-mail {
  display: inline-block;
  margin-top: 26px;

  color: var(--as-yellow) !important;

  font-family: var(--as-font-title, "Antikor", Georgia, serif) !important;
  font-size: 18px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;

  text-transform: lowercase !important;
  text-decoration: none !important;
}

.as-divi-footer-mail:hover {
  color: var(--as-cream) !important;
}

.as-divi-footer-offices {
  display: grid;
  grid-template-columns: repeat(2, minmax(210px, 1fr));
  gap: clamp(42px, 5.6vw, 82px);
  align-items: start;
}

.as-divi-footer-offices article {
  position: relative;
  padding-top: 6px;
}

.as-divi-footer-offices article::before {
  content: "";
  display: block;
  width: 38px;
  height: 2px;
  margin-bottom: 16px;
  background: var(--as-yellow);
}

.as-divi-footer-offices span {
  display: block;
  margin-bottom: 14px;
  color: var(--as-cream);
  font-family: var(--as-font-body) !important;
  font-size: clamp(23px, 1.9vw, 32px);
  line-height: 1;
  font-weight: 850;
  letter-spacing: -0.035em;
  text-transform: uppercase;
}

.as-divi-footer-offices p {
  max-width: 295px;
  margin: 0 0 20px;
  color: var(--as-cream) !important;
  font-family: var(--as-font-body) !important;
  font-size: 14px !important;
  line-height: 1.42 !important;
  font-weight: 580 !important;
}

.as-divi-footer-offices a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--as-yellow) !important;
  font-family: var(--as-font-body) !important;
  font-size: 13px;
  line-height: 1;
  font-weight: 850;
  text-decoration: none !important;
}

.as-divi-footer-offices a::before {
  content: "\260E";
  color: var(--as-cream);
  font-size: 12px;
}

.as-divi-footer-offices a:hover {
  color: var(--as-cream) !important;
}

.as-divi-footer-bottom {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 96px), 1180px);
  margin: 0 auto;
  padding: 14px 0 18px !important;
  border-top: 1px solid rgba(255, 249, 220, 0.28);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
}

.as-divi-footer-bottom p {
  margin: 0;
  color: var(--as-cream) !important;
  font-family: var(--as-font-body) !important;
  font-size: 10.5px !important;
  line-height: 1;
  font-weight: 850 !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.as-divi-footer-bottom nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  flex-wrap: wrap;
}

.as-divi-footer-bottom a {
  color: var(--as-cream) !important;
  font-family: var(--as-font-body) !important;
  font-size: 10.5px;
  line-height: 1;
  font-weight: 850;
  letter-spacing: 0.075em;
  text-transform: uppercase;
  text-decoration: none !important;
  opacity: 0.84;
}

.as-divi-footer-bottom a:hover {
  color: var(--as-yellow) !important;
  opacity: 1;
}

@media (max-width: 980px) {
  .as-divi-footer-inner,
  .as-divi-footer-bottom {
    width: calc(100% - 48px);
  }

  .as-divi-footer-inner {
    grid-template-columns: 1fr;
    gap: 42px;
    padding: 52px 0 34px !important;
  }

  .as-divi-footer-brand {
    max-width: 620px;
  }

  .as-divi-footer-brand p {
    max-width: 530px;
  }

  .as-divi-footer-offices {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
  }

  .as-divi-footer-bottom {
    display: grid;
    justify-content: start;
    gap: 15px;
  }

  .as-divi-footer-bottom nav {
    justify-content: start;
    gap: 13px;
  }
}

@media (max-width: 720px) {
  .as-divi-footer-inner,
  .as-divi-footer-bottom {
    width: calc(100% - 40px);
  }

  .as-divi-footer-inner {
    padding: 46px 0 32px !important;
  }

  .as-divi-footer-brand img {
    width: min(238px, 76vw);
  }

  .as-divi-footer-offices {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .as-divi-footer-bottom nav {
    display: grid;
    gap: 11px;
  }
}
/* ==========================================================
   PATCH FOOTER - CENTRADO, COMPACTO Y SIN CORTES
   Pegar al final de assets/css/arquisocial.css
   ========================================================== */

/* Reseteo fuerte del footer nativo de Divi */
body #page-container #main-footer {
  position: relative !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: var(--as-green) !important;
  border: 0 !important;
  box-shadow: none !important;
}

body #page-container #main-footer .container,
body #page-container #main-footer #footer-widgets {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

body #page-container #main-footer #footer-widgets .footer-widget,
body #page-container #main-footer #footer-widgets .footer-widget .fwidget,
body #page-container #main-footer #footer-widgets .widget_custom_html,
body #page-container #main-footer #footer-widgets .textwidget,
body #page-container #main-footer #footer-widgets .custom-html-widget {
  display: block !important;
  float: none !important;
  clear: both !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body #page-container #main-footer #footer-widgets .footer-widget:nth-child(n+2),
body #page-container #main-footer #footer-bottom,
body #page-container #main-footer #et-footer-nav,
body #page-container .as-legal-bottom,
body #page-container .as-legal-bottom-inner {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* El footer ya esta dentro de un contenedor a sangre. No hay que desplazarlo con 100vw. */
body #page-container #main-footer .as-divi-footer-custom {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  overflow: hidden !important;
  background: var(--as-green) !important;
  color: var(--as-cream) !important;
  isolation: isolate !important;
}

/* Trazo grande de fondo: sale por abajo y por la derecha, pero no empuja el contenido. */
body #page-container #main-footer .as-divi-footer-custom::before {
  content: "" !important;
  position: absolute !important;
  z-index: 1 !important;
  left: auto !important;
  top: auto !important;
  right: clamp(-150px, -7vw, -80px) !important;
  bottom: clamp(-210px, -11vw, -120px) !important;
  width: clamp(520px, 38vw, 700px) !important;
  height: auto !important;
  aspect-ratio: 1 !important;
  pointer-events: none !important;
  background:
    url("/wp-content/themes/divi-arquisocial-child/assets/img/grupo-arquisocial-mariposa.svg")
    center / contain no-repeat !important;
  background-color: transparent !important;
  filter:
    brightness(0)
    saturate(100%)
    invert(94%)
    sepia(13%)
    saturate(560%)
    hue-rotate(343deg)
    brightness(108%)
    contrast(104%) !important;
  opacity: 0.08 !important;
  transform: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body #page-container #main-footer .as-divi-footer-custom::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  z-index: 5 !important;
  height: 1px !important;
  background: rgba(255, 249, 220, 0.24) !important;
  pointer-events: none !important;
}

/* Contenido alineado como el header: no se corta y no queda excesivamente ancho. */
body #page-container #main-footer .as-divi-footer-inner,
body #page-container #main-footer .as-divi-footer-bottom {
  position: relative !important;
  z-index: 2 !important;
  width: min(86vw, 1280px) !important;
  max-width: 1280px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body #page-container #main-footer .as-divi-footer-inner {
  padding: clamp(46px, 4vw, 62px) 0 clamp(30px, 3vw, 40px) !important;
  display: grid !important;
  grid-template-columns: minmax(260px, 340px) minmax(560px, 1fr) !important;
  gap: clamp(64px, 7vw, 120px) !important;
  align-items: start !important;
}

body #page-container #main-footer .as-divi-footer-brand {
  max-width: 340px !important;
  min-width: 0 !important;
}

body #page-container #main-footer .as-divi-footer-brand img {
  width: min(255px, 100%) !important;
  max-width: 255px !important;
  margin-bottom: 22px !important;
}

body #page-container #main-footer .as-divi-footer-brand p {
  max-width: 330px !important;
  font-size: 14px !important;
  line-height: 1.48 !important;
}

body #page-container #main-footer .as-divi-footer-social {
  margin-top: 22px !important;
}

body #page-container #main-footer .as-divi-footer-mail {
  margin-top: 24px !important;
}

body #page-container #main-footer .as-divi-footer-offices {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(230px, 1fr)) !important;
  gap: clamp(44px, 5vw, 78px) !important;
  align-items: start !important;
}

body #page-container #main-footer .as-divi-footer-offices span {
  font-size: clamp(24px, 1.8vw, 32px) !important;
}

body #page-container #main-footer .as-divi-footer-bottom {
  padding: 13px 0 18px !important;
  border-top: 1px solid rgba(255, 249, 220, 0.28) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 26px !important;
}

body #page-container #main-footer .as-divi-footer-bottom nav {
  display: flex !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
}

@media (max-width: 1180px) {
  body #page-container #main-footer .as-divi-footer-inner,
  body #page-container #main-footer .as-divi-footer-bottom {
    width: calc(100vw - 64px) !important;
  }

  body #page-container #main-footer .as-divi-footer-inner {
    grid-template-columns: minmax(240px, 320px) minmax(0, 1fr) !important;
    gap: 48px !important;
  }
}

@media (max-width: 980px) {
  body #page-container #main-footer .as-divi-footer-inner,
  body #page-container #main-footer .as-divi-footer-bottom {
    width: calc(100vw - 48px) !important;
  }

  body #page-container #main-footer .as-divi-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 42px !important;
    padding: 50px 0 34px !important;
  }

  body #page-container #main-footer .as-divi-footer-brand {
    max-width: 560px !important;
  }

  body #page-container #main-footer .as-divi-footer-brand p {
    max-width: 520px !important;
  }

  body #page-container #main-footer .as-divi-footer-offices {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 32px !important;
  }

  body #page-container #main-footer .as-divi-footer-bottom {
    display: grid !important;
    justify-content: start !important;
    gap: 15px !important;
  }

  body #page-container #main-footer .as-divi-footer-bottom nav {
    justify-content: start !important;
    gap: 13px !important;
  }

  body #page-container #main-footer .as-divi-footer-custom::before {
    right: -190px !important;
    bottom: -205px !important;
    width: 590px !important;
    height: auto !important;
    aspect-ratio: 1 !important;
    opacity: 0.07 !important;
    border: 0 !important;
    box-shadow: none !important;
  }
}

@media (max-width: 720px) {
  body #page-container #main-footer .as-divi-footer-inner,
  body #page-container #main-footer .as-divi-footer-bottom {
    width: calc(100vw - 40px) !important;
  }

  body #page-container #main-footer .as-divi-footer-inner {
    padding: 46px 0 32px !important;
  }

  body #page-container #main-footer .as-divi-footer-offices {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  body #page-container #main-footer .as-divi-footer-bottom nav {
    display: grid !important;
    gap: 11px !important;
  }

  body #page-container #main-footer .as-divi-footer-custom::before {
    right: -210px !important;
    bottom: -180px !important;
    width: 500px !important;
    height: auto !important;
    aspect-ratio: 1 !important;
    opacity: 0.06 !important;
    border: 0 !important;
  }
}
/* ==========================================================
   PATCH FOOTER - MAS CONTENIDO Y ALINEADO ARRIBA
   ========================================================== */

/* Contenido menos ancho */
body #page-container #main-footer .as-divi-footer-inner,
body #page-container #main-footer .as-divi-footer-bottom {
  width: min(72vw, 1080px) !important;
}

/* Alinea Zaragoza/Madrid con el logo de Grupo Arquisocial */
body #page-container #main-footer .as-divi-footer-inner {
  align-items: start !important;
  grid-template-columns: minmax(260px, 0.72fr) minmax(430px, 1fr) !important;
  gap: clamp(56px, 6vw, 92px) !important;
  padding-top: clamp(56px, 5.2vw, 76px) !important;
}

/* Evita que las oficinas se vayan tan a la derecha */
body #page-container #main-footer .as-divi-footer-offices {
  gap: clamp(42px, 4.8vw, 68px) !important;
}

/* Ajuste fino: que la rayita amarilla de oficinas arranque a la altura visual del logo */
body #page-container #main-footer .as-divi-footer-offices article {
  padding-top: 0 !important;
}

/* Compacta un poco la zona inferior para que no se abra tanto */
body #page-container #main-footer .as-divi-footer-bottom {
  padding-top: 13px !important;
  padding-bottom: 16px !important;
}

@media (max-width: 1180px) {
  body #page-container #main-footer .as-divi-footer-inner,
  body #page-container #main-footer .as-divi-footer-bottom {
    width: min(84vw, 1040px) !important;
  }
}

@media (max-width: 980px) {
  body #page-container #main-footer .as-divi-footer-inner,
  body #page-container #main-footer .as-divi-footer-bottom {
    width: calc(100% - 48px) !important;
  }

  body #page-container #main-footer .as-divi-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 42px !important;
  }
}
/* ==========================================================
   FOOTER FINAL - COMPACTO + OFICINAS ALINEADAS CON LOGO
   Pegar al FINAL del CSS
   ========================================================== */

body #page-container #main-footer {
  background: var(--as-green) !important;
  overflow: hidden !important;
}

/* El footer ocupa pantalla, pero el contenido va más recogido */
body #page-container #main-footer .as-divi-footer-custom {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--as-green) !important;
  overflow: hidden !important;
}

/* Menos ancho y menos alto */
body #page-container #main-footer .as-divi-footer-inner {
  width: min(68vw, 1040px) !important;
  margin: 0 auto !important;
  padding: 44px 0 24px !important;

  display: grid !important;
  grid-template-columns: minmax(260px, 0.82fr) minmax(430px, 1.18fr) !important;
  gap: clamp(54px, 5vw, 82px) !important;

  align-items: start !important;
}

/* Fuerza que oficinas arranquen exactamente arriba, no centradas */
body #page-container #main-footer .as-divi-footer-brand,
body #page-container #main-footer .as-divi-footer-offices {
  align-self: start !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Logo algo más contenido */
body #page-container #main-footer .as-divi-footer-brand img {
  width: min(235px, 58vw) !important;
  margin: 0 0 20px !important;
}

/* Compacta texto y separaciones del bloque izquierdo */
body #page-container #main-footer .as-divi-footer-brand p {
  max-width: 360px !important;
  font-size: 14px !important;
  line-height: 1.46 !important;
}

body #page-container #main-footer .as-divi-footer-social {
  margin-top: 20px !important;
  gap: 17px !important;
}

body #page-container #main-footer .as-divi-footer-mail {
  margin-top: 22px !important;
}

/* Oficinas alineadas con el logo */
body #page-container #main-footer .as-divi-footer-offices {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(190px, 1fr)) !important;
  gap: clamp(42px, 4.4vw, 64px) !important;
}

body #page-container #main-footer .as-divi-footer-offices article {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body #page-container #main-footer .as-divi-footer-offices article::before {
  margin-bottom: 14px !important;
}

body #page-container #main-footer .as-divi-footer-offices span {
  font-size: clamp(24px, 1.65vw, 30px) !important;
  margin-bottom: 13px !important;
}

body #page-container #main-footer .as-divi-footer-offices p {
  font-size: 13.5px !important;
  line-height: 1.38 !important;
  margin-bottom: 18px !important;
}

/* Legal más cerca del contenido */
body #page-container #main-footer .as-divi-footer-bottom {
  width: min(68vw, 1040px) !important;
  margin: 0 auto !important;
  padding: 12px 0 13px !important;
}


/* Tablet */
@media (max-width: 1180px) {
  body #page-container #main-footer .as-divi-footer-inner,
  body #page-container #main-footer .as-divi-footer-bottom {
    width: min(82vw, 1040px) !important;
  }
}

/* Móvil */
@media (max-width: 980px) {
  body #page-container #main-footer .as-divi-footer-inner,
  body #page-container #main-footer .as-divi-footer-bottom {
    width: calc(100% - 48px) !important;
  }

  body #page-container #main-footer .as-divi-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
    padding: 42px 0 24px !important;
  }

  body #page-container #main-footer .as-divi-footer-offices {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 720px) {
  body #page-container #main-footer .as-divi-footer-offices {
    grid-template-columns: 1fr !important;
  }
}


/* ==========================================================
   FOOTER MOVIL - ICONOS CORPORATIVOS
   ========================================================== */
@media (max-width: 980px) {
  body #page-container #main-footer .as-divi-footer-social a,
  body #page-container #main-footer .as-divi-footer-social a:visited,
  body #page-container #main-footer .as-divi-footer-social svg,
  body #page-container #main-footer .as-divi-footer-social svg * {
    color: var(--as-cream) !important;
    fill: currentColor !important;
    stroke: currentColor !important;
  }

  body #page-container #main-footer .as-divi-footer-social a:hover {
    color: var(--as-yellow) !important;
  }
}

/* ==========================================================
   GUIA DE PAGINA GLOBAL
   Componente compartido por todas las paginas interiores.
   Debe conservar siempre la misma altura, anchura y posicion.
   ========================================================== */

.as-page-contextbar,
.asgqsv5-contextbar,
.asmayv1-contextbar {
  position: fixed !important;
  left: 0 !important;
  top: 82px !important;
  z-index: 9990 !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: none !important;
  min-height: 46px !important;
  margin: 0 !important;
  padding: 0 7vw !important;
  display: grid !important;
  grid-template-columns: minmax(150px, 1fr) auto !important;
  align-items: center !important;
  gap: 24px !important;
  overflow: hidden !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(137, 159, 117, 0.20) !important;
  background: rgba(251, 251, 251, 0.94) !important;
  box-shadow: 0 10px 34px rgba(42, 42, 42, 0.035) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  pointer-events: auto !important;
  transition: opacity 0.25s ease, transform 0.25s ease !important;
}

body.admin-bar .as-page-contextbar,
body.admin-bar .asgqsv5-contextbar,
body.admin-bar .asmayv1-contextbar {
  top: 114px !important;
}

.as-page-shell.is-footer-visible .as-page-contextbar,
.asgqsv5-page.is-footer-visible .asgqsv5-contextbar,
.asmayv1-page.is-footer-visible .asmayv1-contextbar {
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(-10px) !important;
  pointer-events: none !important;
}

.as-page-contextbar-page,
.as-page-contextbar-current,
.asgqsv5-contextbar-page,
.asgqsv5-contextbar-current,
.asmayv1-contextbar-page,
.asmayv1-contextbar-current {
  position: relative !important;
  z-index: 2 !important;
  font-family: var(--as-font-body, "Figtree", Arial, sans-serif) !important;
  font-size: 10.5px !important;
  line-height: 1 !important;
  font-weight: 850 !important;
  letter-spacing: 0.11em !important;
  text-transform: uppercase !important;
}

.as-page-contextbar-page,
.asgqsv5-contextbar-page,
.asmayv1-contextbar-page {
  color: rgba(42, 42, 42, 0.56) !important;
}

.as-page-contextbar-current,
.asgqsv5-contextbar-current,
.asmayv1-contextbar-current {
  display: inline-flex !important;
  align-items: center !important;
  justify-self: end !important;
  gap: 8px !important;
  color: var(--as-green-dark, #6F865D) !important;
}

.as-page-contextbar-current strong,
.asgqsv5-contextbar-current strong,
.asmayv1-contextbar-current strong {
  color: var(--as-red, #AA4B4B) !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: 900 !important;
}

.as-page-contextbar-current i,
.asgqsv5-contextbar-current i,
.asmayv1-contextbar-current i {
  color: rgba(42, 42, 42, 0.30) !important;
  font-style: normal !important;
}

.as-page-contextbar-progress,
.asgqsv5-contextbar-progress,
.asmayv1-contextbar-progress {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 2px !important;
  overflow: hidden !important;
  background: rgba(137, 159, 117, 0.11) !important;
}

.as-page-contextbar-progress i,
.asgqsv5-contextbar-progress i,
.asmayv1-contextbar-progress i {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  background: linear-gradient(
    90deg,
    var(--as-green, #899F75) 0%,
    var(--as-yellow, #F5D892) 72%,
    var(--as-red, #AA4B4B) 100%
  ) !important;
  transform: scaleX(0);
  transform-origin: left center !important;
  will-change: transform;
}

@media (max-width: 980px) {
  .as-page-contextbar,
  .asgqsv5-contextbar,
  .asmayv1-contextbar {
    top: 72px !important;
    min-height: 44px !important;
    padding: 0 24px !important;
    grid-template-columns: 1fr !important;
  }

  body.admin-bar .as-page-contextbar,
  body.admin-bar .asgqsv5-contextbar,
  body.admin-bar .asmayv1-contextbar {
    top: 118px !important;
  }

  .as-page-contextbar-page,
  .asgqsv5-contextbar-page,
  .asmayv1-contextbar-page {
    display: none !important;
  }

  .as-page-contextbar-current,
  .asgqsv5-contextbar-current,
  .asmayv1-contextbar-current {
    justify-self: start !important;
  }
}

@media (max-width: 560px) {
  .as-page-contextbar,
  .asgqsv5-contextbar,
  .asmayv1-contextbar {
    padding: 0 20px !important;
  }
}
/* ==========================================================
   SISTEMA TIPOGRAFICO GLOBAL
   Antikor: H1 y mensajes emocionales
   Figtree: titulares secundarios y contenido funcional
   ========================================================== */


/* ----------------------------------------------------------
   H1: TIPOGRAFIA PRINCIPAL DE MARCA
   ---------------------------------------------------------- */

body #page-container h1,
body #page-container .et_pb_module h1,
body #page-container .et_pb_text h1 {
  font-family: var(--as-font-title, "Antikor", Georgia, serif) !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 0.98 !important;
  letter-spacing: -0.045em !important;
  text-wrap: balance;
}


/* ----------------------------------------------------------
   H2 Y H3: FIGTREE, MAS LIGERA Y LEGIBLE
   ---------------------------------------------------------- */

body #page-container h2,
body #page-container h3,
body #page-container .et_pb_module h2,
body #page-container .et_pb_module h3,
body #page-container .et_pb_text h2,
body #page-container .et_pb_text h3 {
  font-family: var(--as-font-body, "Figtree", Arial, sans-serif) !important;
  font-style: normal !important;
  font-weight: 720 !important;
  line-height: 1.04 !important;
  letter-spacing: -0.045em !important;
  text-wrap: balance;
}


/* ----------------------------------------------------------
   H4, H5 Y H6: TITULARES FUNCIONALES
   ---------------------------------------------------------- */

body #page-container h4,
body #page-container h5,
body #page-container h6,
body #page-container .et_pb_module h4,
body #page-container .et_pb_module h5,
body #page-container .et_pb_module h6 {
  font-family: var(--as-font-body, "Figtree", Arial, sans-serif) !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.025em !important;
}


/* ----------------------------------------------------------
   FRASES EDITORIALES Y PALABRAS QUE GANAN FUERZA
   Mantienen Antikor como recurso expresivo
   ---------------------------------------------------------- */

body #page-container [class*="-wordline"],
body #page-container [data-asgqsv7-wordline],
body #page-container [data-asmayv1-wordline],
body #page-container [data-asdisv1-wordline],
body #page-container [data-asinfv1-wordline],
body #page-container .as-type-display {
  font-family: var(--as-font-title, "Antikor", Georgia, serif) !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: -0.045em !important;
}


/* ----------------------------------------------------------
   AJUSTES GENERALES DE TITULARES
   ---------------------------------------------------------- */

body #page-container h1,
body #page-container h2,
body #page-container h3,
body #page-container h4,
body #page-container h5,
body #page-container h6 {
  max-width: 100%;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}


/* ----------------------------------------------------------
   MOVIL
   ---------------------------------------------------------- */

@media (max-width: 980px) {
  body #page-container h1 {
    line-height: 1 !important;
    letter-spacing: -0.038em !important;
  }

  body #page-container h2,
  body #page-container h3 {
    line-height: 1.06 !important;
    letter-spacing: -0.036em !important;
  }
}
/* ==========================================================
   GRUPO ARQUISOCIAL — CORRECCIÓN GLOBAL DEL MENÚ
   - Elimina la raya superior del elemento activo.
   - Recoloca la flecha de los elementos con submenú.
   - Marca la página actual con colores corporativos.
   - Mantiene el menú móvil cerrado hasta pulsar el icono.
   - Permite desplegar/recoger submenús en móvil.
   ========================================================== */

:root {
  --as-menu-active: #AA4B4B;
  --as-menu-active-text: #FBFBFB;
  --as-menu-soft: #FFF9DC;
  --as-menu-green: #899F75;
  --as-menu-green-dark: #5F7054;
}


/* ----------------------------------------------------------
   1. ESCRITORIO
   ---------------------------------------------------------- */

@media (min-width: 981px) {

  /* Elimina rayas y decoraciones antiguas sobre los enlaces. */
  body #page-container .et_pb_menu .et-menu > li > a {
    position: relative;
    border-top: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
  }

  body #page-container .et_pb_menu .et-menu > li > a::before {
    display: none !important;
    content: none !important;
  }

  /*
   * Flecha del desplegable.
   * Divi la genera con ::after; se centra respecto al texto.
   */
  body #page-container .et_pb_menu .et-menu > li.menu-item-has-children > a:first-child {
    padding-right: 22px !important;
  }

  body #page-container .et_pb_menu .et-menu > li.menu-item-has-children > a:first-child::after {
    top: 50% !important;
    right: 2px !important;
    margin-top: 0 !important;
    transform: translateY(-50%) !important;
    color: var(--as-menu-soft) !important;
    font-size: 13px !important;
    line-height: 1 !important;
  }

  /*
   * Página o sección activa en el primer nivel.
   * El fondo crema evita el amarillo fuerte y el texto rojo
   * identifica claramente la sección actual.
   */
  body #page-container .et_pb_menu .et-menu > li.current-menu-item > a,
  body #page-container .et_pb_menu .et-menu > li.current_page_item > a,
  body #page-container .et_pb_menu .et-menu > li.current-menu-parent > a,
  body #page-container .et_pb_menu .et-menu > li.current-menu-ancestor > a,
  body #page-container .et_pb_menu .et-menu > li.current_page_parent > a,
  body #page-container .et_pb_menu .et-menu > li.current_page_ancestor > a {
    padding-left: 10px !important;
    padding-right: 28px !important;
    border-radius: 999px !important;
    background: var(--as-menu-soft) !important;
    color: var(--as-menu-active) !important;
  }

  body #page-container .et_pb_menu .et-menu > li.current-menu-item:not(.menu-item-has-children) > a,
  body #page-container .et_pb_menu .et-menu > li.current_page_item:not(.menu-item-has-children) > a {
    padding-right: 10px !important;
  }

  body #page-container .et_pb_menu .et-menu > li.current-menu-parent > a:first-child::after,
  body #page-container .et_pb_menu .et-menu > li.current-menu-ancestor > a:first-child::after,
  body #page-container .et_pb_menu .et-menu > li.current_page_parent > a:first-child::after,
  body #page-container .et_pb_menu .et-menu > li.current_page_ancestor > a:first-child::after {
    color: var(--as-menu-active) !important;
  }

  /* Submenú: estado normal y hover sobrios. */
  body #page-container .et_pb_menu .et-menu .sub-menu {
    border-top: 0 !important;
    background: rgba(79, 96, 70, 0.96) !important;
  }

  body #page-container .et_pb_menu .et-menu .sub-menu li > a {
    width: 100% !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--as-menu-active-text) !important;
  }

  body #page-container .et_pb_menu .et-menu .sub-menu li > a:hover,
  body #page-container .et_pb_menu .et-menu .sub-menu li:hover > a {
    background: rgba(255, 249, 220, 0.12) !important;
    color: var(--as-menu-soft) !important;
    opacity: 1 !important;
  }

  /*
   * Página exacta activa dentro del submenú.
   * Rojo corporativo, sin amarillo.
   */
  body #page-container .et_pb_menu .et-menu .sub-menu li.current-menu-item > a,
  body #page-container .et_pb_menu .et-menu .sub-menu li.current_page_item > a {
    background: var(--as-menu-active) !important;
    color: var(--as-menu-active-text) !important;
    opacity: 1 !important;
  }
}


/* ----------------------------------------------------------
   2. MÓVIL Y TABLET
   ---------------------------------------------------------- */

@media (max-width: 980px) {

  /*
   * Corrige reglas antiguas que dejaban el menú siempre abierto.
   * Solo se muestra cuando Divi añade la clase .opened.
   */
  body #page-container .et_pb_menu .mobile_nav.closed .et_mobile_menu,
  body #page-container .et_pb_menu .mobile_nav:not(.opened) .et_mobile_menu {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body #page-container .et_pb_menu .mobile_nav.opened .et_mobile_menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body #page-container .et_pb_menu .et_mobile_menu {
    margin: 0 !important;
    padding: 14px !important;
    border-top: 0 !important;
    background: var(--as-menu-green) !important;
    box-shadow: 0 18px 42px rgba(42, 42, 42, 0.18) !important;
  }

  body #page-container .et_pb_menu .et_mobile_menu li {
    position: relative;
    border: 0 !important;
  }

  body #page-container .et_pb_menu .et_mobile_menu li > a {
    margin: 0 !important;
    padding: 12px 42px 12px 10px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255, 249, 220, 0.42) !important;
    background: transparent !important;
    color: var(--as-menu-active-text) !important;
    opacity: 1 !important;
  }

  /* Página actual en móvil. */
  body #page-container .et_pb_menu .et_mobile_menu li.current-menu-item > a,
  body #page-container .et_pb_menu .et_mobile_menu li.current_page_item > a {
    border-radius: 8px !important;
    border-bottom-color: transparent !important;
    background: var(--as-menu-active) !important;
    color: var(--as-menu-active-text) !important;
  }

  /*
   * La sección padre se distingue sin competir con la página exacta.
   */
  body #page-container .et_pb_menu .et_mobile_menu li.current-menu-parent > a,
  body #page-container .et_pb_menu .et_mobile_menu li.current-menu-ancestor > a,
  body #page-container .et_pb_menu .et_mobile_menu li.current_page_parent > a,
  body #page-container .et_pb_menu .et_mobile_menu li.current_page_ancestor > a {
    color: var(--as-menu-soft) !important;
  }

  /*
   * Los submenús quedan recogidos.
   * JavaScript añade .as-mobile-submenu-open al pulsar el botón.
   */
  body #page-container .et_pb_menu .et_mobile_menu .menu-item-has-children > .sub-menu {
    display: none !important;
    padding: 4px 0 4px 12px !important;
    background: transparent !important;
  }

  body #page-container .et_pb_menu .et_mobile_menu .menu-item-has-children.as-mobile-submenu-open > .sub-menu {
    display: block !important;
  }

  body #page-container .et_pb_menu .et_mobile_menu .sub-menu li > a {
    padding-left: 18px !important;
    font-size: 0.94em !important;
  }

  /* Botón independiente para desplegar Servicios. */
  body #page-container .et_pb_menu .as-mobile-submenu-toggle {
    position: absolute;
    z-index: 3;
    top: 3px;
    right: 2px;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--as-menu-soft);
    font: inherit;
    cursor: pointer;
  }

  body #page-container .et_pb_menu .as-mobile-submenu-toggle::before {
    content: "⌄";
    display: block;
    font-family: Arial, sans-serif;
    font-size: 22px;
    line-height: 34px;
    transition: transform 180ms ease;
  }

  body #page-container .et_pb_menu .menu-item-has-children.as-mobile-submenu-open > .as-mobile-submenu-toggle::before {
    transform: rotate(180deg);
  }

  body #page-container .et_pb_menu .as-mobile-submenu-toggle:focus-visible {
    outline: 2px solid var(--as-menu-soft);
    outline-offset: -3px;
  }

  /* Icono hamburguesa. */
  body #page-container .et_pb_menu .mobile_menu_bar {
    cursor: pointer;
  }

  body #page-container .et_pb_menu .mobile_menu_bar::before {
    color: var(--as-menu-active-text) !important;
  }
}

/* ==========================================================
   SELECCION DE TEXTO - COLORES CORPORATIVOS
   ========================================================== */

::selection {
  background: var(--as-green);
  color: var(--as-cream);
}

::-moz-selection {
  background: var(--as-green);
  color: var(--as-cream);
}
/* ==========================================================
   SISTEMA TIPOGRAFICO SEGUN LONGITUD DEL TITULAR
   Hasta 25 caracteres: Antikor
   Mas de 25 caracteres: Figtree
   ========================================================== */

body #page-container #main-content h1.as-heading-short,
body #page-container #main-content h2.as-heading-short,
body #page-container #main-content h3.as-heading-short {
  font-family: var(--as-font-title, "Antikor", Georgia, serif) !important;
  font-weight: 700 !important;
}

body #page-container #main-content h1.as-heading-long,
body #page-container #main-content h2.as-heading-long,
body #page-container #main-content h3.as-heading-long {
  font-family: var(--as-font-body, "Figtree", Arial, sans-serif) !important;
  font-weight: 720 !important;
}
/* ==========================================================
   GRUPO ARQUISOCIAL
   CONTACT FORM 7 — SISTEMA ÚNICO FINAL

   Formularios:
   - Contacto
   - Quejas y sugerencias
   - Canal ético
   ========================================================== */


/* ==========================================================
   1. BASE
   ========================================================== */

.wpcf7,
.wpcf7 *,
.wpcf7 *::before,
.wpcf7 *::after {
  box-sizing: border-box !important;
}

.wpcf7 {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;

  color: var(--as-black, #2A2A2A) !important;
  font-family: var(--as-font-body, "Figtree", Arial, sans-serif) !important;
}

.wpcf7 form {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  margin: 0 !important;
  padding: 0 !important;
}


/* ==========================================================
   2. SEPARACIÓN ENTRE CAMPOS
   ========================================================== */

.wpcf7 form p,
.wpcf7 .as-cf7-form > p {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  margin: 0 0 12px !important;
  padding: 0 !important;
}

.wpcf7 form p:last-child,
.wpcf7 .as-cf7-form > p:last-child {
  margin-bottom: 0 !important;
}


/* ==========================================================
   3. LABELS
   ========================================================== */

.wpcf7 label {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  color: var(--as-black, #2A2A2A) !important;

  font-family: var(--as-font-body, "Figtree", Arial, sans-serif) !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  line-height: 1.25 !important;
}

.wpcf7 .wpcf7-form-control-wrap {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  margin: 5px 0 0 !important;
  padding: 0 !important;
}


/* ==========================================================
   4. INPUTS / SELECTS / TEXTAREA
   ========================================================== */

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  margin: 0 !important;
  padding: 9px 12px !important;

  border: 1px solid rgba(42, 42, 42, 0.22) !important;
  border-radius: 0 !important;

  outline: none !important;

  background: #FBFBFB !important;
  color: #2A2A2A !important;

  font-family: var(--as-font-body, "Figtree", Arial, sans-serif) !important;
  font-size: 13px !important;
  font-weight: 450 !important;
  line-height: 1.35 !important;

  box-shadow: none !important;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 select {
  height: 42px !important;
  min-height: 42px !important;
}

.wpcf7 textarea {
  height: 105px !important;
  min-height: 105px !important;
  max-height: 200px !important;

  resize: vertical !important;
}

.wpcf7 select {
  cursor: pointer !important;
}


/* ==========================================================
   5. PLACEHOLDER
   ========================================================== */

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
  color: rgba(42, 42, 42, 0.48) !important;
  opacity: 1 !important;
}


/* ==========================================================
   6. FOCUS
   ========================================================== */

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 input[type="number"]:focus,
.wpcf7 input[type="date"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  border-color: var(--as-green, #899F75) !important;
  background: #FFFFFF !important;

  box-shadow:
    0 0 0 3px rgba(137, 159, 117, 0.10) !important;
}


/* ==========================================================
   7. QUITAR SALTOS AUTOMÁTICOS DE CF7
   ========================================================== */

.wpcf7 form p > br,
.wpcf7 .as-cf7-form > p > br {
  display: none !important;
}


/* ==========================================================
   8. TEXTO LEGAL
   ========================================================== */

.wpcf7 .txt-personal-info {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  margin: 14px 0 10px !important;
  padding: 0 !important;

  color: #2A2A2A !important;

  font-family: var(--as-font-body, "Figtree", Arial, sans-serif) !important;
  font-size: 10.5px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;

  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.wpcf7 .txt-personal-info a {
  display: inline !important;

  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;

  color: var(--as-red, #AA4B4B) !important;

  white-space: nowrap !important;

  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}


/* ==========================================================
   9. CHECKBOX / RGPD
   ========================================================== */

.wpcf7 .as-cf7-acceptance,
.wpcf7 .wpcf7-acceptance {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 10px 0 12px !important;
  padding: 0 !important;
}

.wpcf7 .wpcf7-list-item {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;
}

.wpcf7 .wpcf7-list-item label {
  display: flex !important;
  align-items: flex-start !important;

  width: 100% !important;
  max-width: 100% !important;

  gap: 8px !important;

  margin: 0 !important;
  padding: 0 !important;

  font-size: 10.5px !important;
  font-weight: 450 !important;
  line-height: 1.35 !important;
}

.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
  flex: 0 0 15px !important;

  width: 15px !important;
  height: 15px !important;
  min-width: 15px !important;

  margin: 1px 0 0 !important;
  padding: 0 !important;

  accent-color: var(--as-green, #899F75) !important;
}


/* ==========================================================
   10. ARCHIVOS
   ========================================================== */

.wpcf7 input[type="file"] {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 5px 0 0 !important;

  font-family: var(--as-font-body, "Figtree", Arial, sans-serif) !important;
  font-size: 11px !important;
}


/* ==========================================================
   11. RECAPTCHA
   SIEMPRE DENTRO DEL RECUADRO
   ========================================================== */

.wpcf7 .txt-recaptcha-google {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  margin: 9px 0 0 !important;
  padding: 0 !important;

  color: rgba(42, 42, 42, 0.62) !important;

  font-family: var(--as-font-body, "Figtree", Arial, sans-serif) !important;
  font-size: 9.5px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;

  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

.wpcf7 .txt-recaptcha-google a {
  display: inline !important;

  width: auto !important;
  max-width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  color: var(--as-red, #AA4B4B) !important;

  white-space: normal !important;

  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

.wpcf7 .txt-recaptcha-google br {
  display: none !important;
}


/* ==========================================================
   12. BOTÓN
   ========================================================== */

.wpcf7 .as-cf7-submit {
  display: block !important;

  width: 100% !important;

  margin: 10px 0 0 !important;
  padding: 0 !important;
}

.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: auto !important;
  min-width: 150px !important;
  min-height: 42px !important;

  margin: 0 !important;
  padding: 10px 22px !important;

  border: 1px solid var(--as-green, #899F75) !important;
  border-radius: 0 !important;

  background: var(--as-green, #899F75) !important;
  color: #FBFBFB !important;

  font-family: var(--as-font-body, "Figtree", Arial, sans-serif) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.06em !important;

  text-transform: uppercase !important;

  cursor: pointer !important;

  box-shadow: none !important;
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 button[type="submit"]:hover {
  border-color: var(--as-black, #2A2A2A) !important;
  background: var(--as-black, #2A2A2A) !important;
  color: #FBFBFB !important;
}


/* ==========================================================
   13. SPINNER
   ========================================================== */

.wpcf7 .wpcf7-spinner {
  margin: 0 0 0 10px !important;
}


/* ==========================================================
   14. MENSAJES DE ERROR
   ========================================================== */

.wpcf7 .wpcf7-not-valid {
  border-color: var(--as-red, #AA4B4B) !important;
}

.wpcf7 .wpcf7-not-valid-tip {
  display: block !important;

  width: 100% !important;

  margin: 4px 0 0 !important;

  color: var(--as-red, #AA4B4B) !important;

  font-size: 10.5px !important;
  line-height: 1.3 !important;
}


/* ==========================================================
   15. MENSAJE FINAL
   ========================================================== */

.wpcf7 form .wpcf7-response-output {
  width: 100% !important;
  max-width: 100% !important;

  margin: 14px 0 0 !important;
  padding: 10px 12px !important;

  border: 1px solid var(--as-green, #899F75) !important;

  background: rgba(137, 159, 117, 0.08) !important;
  color: #2A2A2A !important;

  font-size: 11px !important;
  line-height: 1.4 !important;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
  border-color: var(--as-red, #AA4B4B) !important;
  background: rgba(170, 75, 75, 0.06) !important;
}


/* ==========================================================
   16. QUEJAS + CANAL ÉTICO
   MISMO RECUADRO
   ========================================================== */

.aslegal-page .wpcf7 {
  width: 100% !important;
  max-width: 720px !important;

  margin: 24px auto 0 !important;
  padding: 26px 30px !important;

  border: 1px solid rgba(137, 159, 117, 0.32) !important;
  border-radius: 0 28px 0 0 !important;

  background: var(--as-cream, #FFF9DC) !important;

  overflow: hidden !important;
}

.aslegal-page .wpcf7 form,
.aslegal-page .wpcf7 .as-cf7-form {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}


/* ==========================================================
   17. QUEJAS
   ========================================================== */

.asquejas-form-box {
  width: 100% !important;
  max-width: 760px !important;

  margin: 0 auto !important;
  padding: 0 !important;
}

.asquejas-form-box .wpcf7,
.asquejas-form-box .wpcf7 form {
  min-width: 0 !important;
}


/* ==========================================================
   18. CANAL ÉTICO
   ========================================================== */

.aslegal-consultas,
.as-cf7-canal-etico {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.as-cf7-canal-etico {
  display: block !important;
}


/* ==========================================================
   19. CONTACTO
   El fondo/recuadro lo controla la propia página
   ========================================================== */

.ascontactv1-form-shell {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.ascontactv1-form-shell .wpcf7 {
  width: 100% !important;
  max-width: 760px !important;

  margin: 0 auto !important;
  padding: 0 !important;
}

.ascontactv1-form-shell .wpcf7 form,
.ascontactv1-form-shell .as-cf7-contacto {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.as-cf7-contacto {
  display: block !important;
}


/* ==========================================================
   20. PROTECCIÓN TOTAL CONTRA DESBORDAMIENTOS
   ========================================================== */

.wpcf7 p,
.wpcf7 div,
.wpcf7 span,
.wpcf7 label {
  max-width: 100% !important;
}

.wpcf7 .txt-personal-info,
.wpcf7 .txt-recaptcha-google,
.wpcf7 .wpcf7-list-item,
.wpcf7 .wpcf7-list-item label {
  overflow: visible !important;
}


/* ==========================================================
   21. MÓVIL
   ========================================================== */

@media (max-width: 767px) {

  .aslegal-page .wpcf7 {
    width: 100% !important;
    max-width: 100% !important;

    margin-top: 20px !important;
    padding: 20px 18px !important;

    border-radius: 0 22px 0 0 !important;
  }

  .wpcf7 form p,
  .wpcf7 .as-cf7-form > p {
    margin-bottom: 11px !important;
  }

  .wpcf7 input[type="text"],
  .wpcf7 input[type="email"],
  .wpcf7 input[type="tel"],
  .wpcf7 input[type="url"],
  .wpcf7 input[type="number"],
  .wpcf7 input[type="date"],
  .wpcf7 select {
    height: 41px !important;
    min-height: 41px !important;
  }

  .wpcf7 textarea {
    height: 100px !important;
    min-height: 100px !important;
  }

  .wpcf7 .txt-personal-info {
    font-size: 10px !important;
  }

  .wpcf7 .txt-recaptcha-google {
    font-size: 9px !important;
    line-height: 1.45 !important;
  }

  .wpcf7 input[type="submit"],
  .wpcf7 button[type="submit"] {
    width: 100% !important;
  }

}