/*
Theme Name: DC Home
Template: generatepress
Version: 1.1.0
*/

/* ==================================================
   DC HOME
   HEADER Y FOOTER LUMINOSOS
================================================== */

@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css');

:root {
  /* Colores cálidos y luminosos */
  --dchome-dark: #3f3b36;
  --dchome-dark-2: #4d4842;
  --dchome-navy: #4d4943;
  --dchome-blue: #716a62;

  --dchome-red: #c98557;
  --dchome-red-dark: #a9653e;
  --dchome-red-light: #dfa982;
  --dchome-red-soft: rgba(201, 133, 87, .13);

  --dchome-cream: #f7f0e8;
  --dchome-cream-dark: #ecdfd2;
  --dchome-ivory: #fffdf9;

  --dchome-silver: #eee4d9;
  --dchome-silver-light: #faf6f1;

  --dchome-white: #ffffff;
  --dchome-text: #4d4943;
  --dchome-muted: #756f67;

  --dchome-border: rgba(105, 84, 66, .14);
  --dchome-border-red: rgba(201, 133, 87, .25);

  --dchome-shadow:
    0 18px 45px rgba(78, 59, 43, .12);

  --dchome-shadow-soft:
    0 12px 32px rgba(78, 59, 43, .08);

  --dchome-max: 1240px;

  --dchome-header-desktop: 96px;
  --dchome-header-mobile: 84px;
  --dchome-sticky-bar-height: 0px;
}

/* ==================================================
   AJUSTES GENERALES
================================================== */

html {
  scroll-padding-top: var(--dchome-header-desktop);
}

body {
  padding-top: var(--dchome-header-desktop) !important;
  overflow-x: hidden !important;
}

.dchome-header,
.dchome-header *,
.dchome-footer,
.dchome-footer * {
  box-sizing: border-box;
}

.dchome-header a,
.dchome-footer a {
  text-decoration: none !important;
}

.dchome-container,
.dchome-footer__container {
  width: 100%;
  max-width: var(--dchome-max);
  margin: 0 auto;
  padding: 0 22px;
}

/* ==================================================
   HEADER PC
================================================== */

.dchome-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 99990;
  font-family: Arial, Helvetica, sans-serif;
}

.dchome-header__wrap {
  width: 100%;

  background:
    radial-gradient(
      circle at 8% 0%,
      rgba(218, 177, 142, .15),
      transparent 30%
    ),
    linear-gradient(
      180deg,
      rgba(255, 253, 249, .98) 0%,
      rgba(248, 242, 235, .98) 100%
    );

  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);

  border-bottom:
    1px solid rgba(105, 84, 66, .12);

  box-shadow:
    0 8px 28px rgba(78, 59, 43, .09);
}

.dchome-header__inner {
  position: relative;
  min-height: var(--dchome-header-desktop);

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

  gap: 22px;
}

/* ==================================================
   LOGO HEADER
================================================== */

.dchome-logo {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;

  flex: 0 0 auto;

  width: 235px;
  max-width: 235px;
  min-width: 235px;

  padding: 5px 0;

  line-height: 0;
}

.dchome-logo__img {
  display: block;

  width: 235px;
  max-width: 100%;
  height: auto;

  object-fit: contain;

  filter: none;

  transition:
    transform .25s ease;
}

.dchome-logo:hover .dchome-logo__img {
  transform: translateY(-1px);
}

.dchome-logo__mark,
.dchome-logo__text {
  display: none !important;
}

/* ==================================================
   NAV PC
================================================== */

.dchome-menu-toggle,
.dchome-sub-toggle {
  display: none;
}

.dchome-nav {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 1;

  gap: 4px;
}

.dchome-nav__item {
  position: relative;
}

.dchome-nav__services-row {
  display: flex;
  align-items: center;
}

.dchome-nav__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 44px;

  padding: 0 13px;

  color: var(--dchome-navy);

  background: transparent;

  border-radius: 999px;

  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;

  white-space: nowrap;

  transition:
    color .25s ease,
    background .25s ease,
    box-shadow .25s ease,
    transform .25s ease;
}

.dchome-nav__link:hover,
.dchome-nav__link:focus {
  color: var(--dchome-red-dark);

  background:
    var(--dchome-red-soft);

  box-shadow:
    inset 0 0 0 1px rgba(201, 133, 87, .18);
}

.dchome-nav__link--services::after {
  content: "▾";

  margin-left: 7px;

  color: var(--dchome-red-dark);

  font-size: 11px;

  opacity: .88;
}

.dchome-nav__arrow {
  display: none;
}

/* ==================================================
   MEGA MENÚ PC
================================================== */

.dchome-mega {
  position: absolute;

  top: calc(100% + 8px);
  left: 50%;

  width: min(980px, calc(100vw - 36px));

  display: grid;
  grid-template-columns: 1.05fr 1fr 1fr 1fr;

  gap: 18px;

  padding: 20px;

  background:
    rgba(255, 253, 249, .985);

  border:
    1px solid var(--dchome-border-red);

  border-radius: 22px;

  box-shadow:
    0 24px 60px rgba(78, 59, 43, .15);

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transform:
    translateX(-50%)
    translateY(12px);

  transition:
    opacity .22s ease,
    visibility .22s ease,
    transform .22s ease;
}

.dchome-mega--simple {
  width: min(620px, calc(100vw - 36px));

  grid-template-columns:
    1.05fr 1fr;
}

.dchome-mega--zones {
  width: min(620px, calc(100vw - 36px));

  grid-template-columns:
    1.05fr 1fr;
}

.dchome-nav__item:hover .dchome-mega,
.dchome-nav__item:focus-within .dchome-mega,
.dchome-mega:hover {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;

  transform:
    translateX(-50%)
    translateY(0);
}

@media (min-width: 1121px) {
  .dchome-nav__item::after {
    content: "";

    position: absolute;

    top: 100%;
    right: -20px;
    left: -20px;

    height: 18px;

    background: transparent;

    pointer-events: auto;
  }
}

/* Tarjeta destacada */

.dchome-mega__featured {
  min-height: 100%;

  display: flex;
  align-items: flex-end;

  padding: 22px;

  overflow: hidden;

  color: #ffffff;

  background:
    linear-gradient(
      135deg,
      rgba(73, 64, 55, .82),
      rgba(169, 101, 62, .60)
    ),
    url('/wp-content/uploads/2026/06/dc-home-casa-expandible-hero.webp')
    center / cover no-repeat;

  border-radius: 16px;
}

.dchome-mega__featured-content span {
  display: inline-flex;

  margin-bottom: 10px;

  padding: 7px 11px;

  color: #ffffff;

  background:
    rgba(255, 255, 255, .17);

  border:
    1px solid rgba(255, 255, 255, .14);

  border-radius: 999px;

  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.dchome-mega__featured-content strong {
  display: block;

  color: #ffffff;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 21px;
  font-weight: 500;
  line-height: 1.25;
}

/* Columnas */

.dchome-mega__col {
  display: flex;
  flex-direction: column;

  min-width: 0;

  gap: 7px;
}

.dchome-mega__col h3 {
  margin: 0 0 6px;

  padding-bottom: 10px;

  color: var(--dchome-navy);

  border-bottom:
    1px solid rgba(105, 84, 66, .13);

  font-size: 15px;
  font-weight: 850;
  line-height: 1.25;
}

.dchome-mega__col h3 a {
  color: var(--dchome-navy);
}

.dchome-mega__col > a {
  position: relative;

  display: flex;
  align-items: center;

  gap: 9px;

  padding: 11px 12px;

  color: #625b54;

  border-radius: 9px;

  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;

  transition:
    color .2s ease,
    background .2s ease,
    transform .2s ease;
}

.dchome-mega__col > a::before {
  content: "";

  width: 6px;
  height: 6px;
  min-width: 6px;

  flex: 0 0 auto;

  background:
    var(--dchome-red);

  border-radius: 999px;

  opacity: .9;
}

.dchome-mega__col > a:hover,
.dchome-mega__col > a:focus {
  color: #ffffff;

  background:
    var(--dchome-red);

  transform:
    translateX(3px);
}

/* ==================================================
   ACCIONES Y BOTÓN DEL HEADER
================================================== */

.dchome-actions {
  display: flex;
  align-items: center;

  gap: 12px;
}

.dchome-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  gap: 9px;

  min-height: 48px;

  padding: 0 20px;

  color: #ffffff !important;

  background:
    var(--dchome-red);

  border:
    1px solid var(--dchome-red);

  border-radius: 5px;

  box-shadow:
    0 12px 28px rgba(169, 101, 62, .20);

  font-size: 13px;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;

  white-space: nowrap;

  transition:
    transform .25s ease,
    background .25s ease,
    border-color .25s ease,
    box-shadow .25s ease;
}

.dchome-btn:hover,
.dchome-btn:focus {
  color: #ffffff !important;

  background:
    var(--dchome-red-dark);

  border-color:
    var(--dchome-red-dark);

  box-shadow:
    0 16px 32px rgba(169, 101, 62, .25);

  transform:
    translateY(-2px);
}

/* Hamburguesa */

.dchome-menu-btn {
  display: none;

  width: 48px;
  height: 48px;
  min-width: 48px;

  align-items: center;
  justify-content: center;
  flex-direction: column;

  gap: 5px;

  background:
    var(--dchome-red);

  border:
    1px solid var(--dchome-red);

  border-radius: 12px;

  cursor: pointer;

  box-shadow:
    0 10px 24px rgba(169, 101, 62, .20);
}

.dchome-menu-btn span {
  display: block;

  width: 22px;
  height: 2px;

  background: #ffffff;

  border-radius: 999px;

  transition:
    transform .25s ease,
    opacity .25s ease;
}

/* ==================================================
   POLYLANG
================================================== */

.dchome-lang {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;

  min-height: 42px;

  padding: 6px 9px;

  background:
    rgba(255, 255, 255, .83);

  border:
    1px solid rgba(105, 84, 66, .13);

  border-radius: 999px;

  box-shadow:
    0 8px 20px rgba(78, 59, 43, .07);
}

.dchome-lang ul {
  display: flex !important;
  align-items: center;
  justify-content: center;

  gap: 7px;

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

  list-style: none !important;
}

.dchome-lang li {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;

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

  list-style: none !important;
}

.dchome-lang a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;

  width: 30px;
  height: 30px;

  background:
    #faf5ef;

  border:
    1px solid rgba(105, 84, 66, .10);

  border-radius: 999px;

  transition:
    transform .2s ease,
    border-color .2s ease,
    box-shadow .2s ease,
    background .2s ease;
}

.dchome-lang a:hover,
.dchome-lang a:focus {
  border-color:
    rgba(201, 133, 87, .38);

  box-shadow:
    0 8px 17px rgba(169, 101, 62, .15);

  transform:
    translateY(-2px);
}

.dchome-lang img {
  display: block !important;

  width: 20px !important;
  height: auto !important;

  margin: 0 !important;

  border-radius: 2px;
}

.dchome-lang .current-lang a {
  background:
    rgba(201, 133, 87, .14);

  border-color:
    rgba(201, 133, 87, .30);
}

/* ==================================================
   HEADER TABLET Y MÓVIL
================================================== */

@media (max-width: 1120px) {
  html {
    scroll-padding-top:
      var(--dchome-header-mobile) !important;
  }

  body {
    padding-top:
      var(--dchome-header-mobile) !important;

    padding-bottom: 0 !important;
  }

  .dchome-header {
    position: fixed !important;

    top: var(--dchome-sticky-bar-height) !important;
    right: 0 !important;
    left: 0 !important;
  }

  .dchome-header__wrap,
  .dchome-header__inner {
    overflow: visible !important;
  }

  .dchome-header__wrap {
    margin: 0 !important;
    padding: 0 !important;

    background:
      linear-gradient(
        180deg,
        #fffdf9 0%,
        #f8f2eb 100%
      ) !important;

    border-top: 0 !important;

    border-bottom:
      1px solid rgba(105, 84, 66, .12) !important;

    box-shadow:
      0 10px 28px rgba(78, 59, 43, .11) !important;
  }

  .dchome-header__inner {
    position: relative !important;

    min-height:
      var(--dchome-header-mobile) !important;

    height:
      var(--dchome-header-mobile) !important;

    margin: 0 !important;

    padding-top: 0 !important;
    padding-bottom: 0 !important;

    gap: 12px !important;
  }

  .dchome-container {
    padding-right: 14px !important;
    padding-left: 14px !important;
  }

  .dchome-logo {
    width: 205px !important;
    max-width: 205px !important;
    min-width: 205px !important;

    padding: 0 !important;
  }

  .dchome-logo__img {
    width: 205px !important;
  }

  .dchome-btn--desktop {
    display: none !important;
  }

  .dchome-menu-btn {
    display: flex !important;

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

    gap: 6px !important;

    background:
      var(--dchome-red) !important;

    border:
      1px solid var(--dchome-red) !important;

    border-radius: 12px !important;

    box-shadow:
      0 10px 24px rgba(169, 101, 62, .20) !important;
  }

  .dchome-menu-btn span {
    width: 25px !important;
    height: 2px !important;

    background:
      #ffffff !important;
  }

  .dchome-menu-toggle:checked
  ~ .dchome-actions
  .dchome-menu-btn
  span:nth-child(1) {
    transform:
      translateY(8px)
      rotate(45deg) !important;
  }

  .dchome-menu-toggle:checked
  ~ .dchome-actions
  .dchome-menu-btn
  span:nth-child(2) {
    opacity: 0 !important;
  }

  .dchome-menu-toggle:checked
  ~ .dchome-actions
  .dchome-menu-btn
  span:nth-child(3) {
    transform:
      translateY(-8px)
      rotate(-45deg) !important;
  }

  /* Menú móvil */

  .dchome-nav {
    position: absolute !important;

    top: 100% !important;
    right: 0 !important;
    left: 0 !important;

    z-index: 99991 !important;

    width: 100% !important;

    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;

    gap: 10px !important;

    max-height:
      calc(
        100vh -
        var(--dchome-header-mobile)
      ) !important;

    margin: 0 !important;

    padding:
      14px 14px 22px !important;

    overflow-x: hidden !important;
    overflow-y: auto !important;

    color:
      var(--dchome-text) !important;

    background:
      #fffdf9 !important;

    border-top:
      1px solid rgba(105, 84, 66, .08) !important;

    border-bottom:
      1px solid rgba(201, 133, 87, .24) !important;

    border-radius:
      0 0 20px 20px !important;

    box-shadow:
      0 22px 55px rgba(78, 59, 43, .18) !important;

    -webkit-overflow-scrolling: touch !important;

    overscroll-behavior: contain !important;
    scroll-behavior: auto !important;
  }

  .dchome-menu-toggle:checked
  ~ .dchome-nav {
    display: flex !important;
  }

  .dchome-nav__item {
    position: relative !important;

    display: block !important;

    order: initial !important;

    width: 100% !important;
  }

  .dchome-nav__services-row {
    position: relative !important;

    z-index: 2 !important;

    width: 100% !important;

    display: grid !important;

    grid-template-columns:
      1fr 56px !important;

    align-items: stretch !important;

    gap: 10px !important;
  }

  .dchome-nav__link {
    width: 100% !important;
    min-height: 56px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    padding: 0 18px !important;

    color:
      var(--dchome-navy) !important;

    background:
      #faf5ef !important;

    border:
      1px solid rgba(105, 84, 66, .11) !important;

    border-radius:
      11px !important;

    font-size: 16px !important;
    font-weight: 850 !important;
    line-height: 1.2 !important;
  }

  .dchome-nav__link:hover,
  .dchome-nav__link:focus {
    color:
      var(--dchome-red-dark) !important;

    background:
      rgba(201, 133, 87, .13) !important;

    border-color:
      rgba(201, 133, 87, .22) !important;
  }

  .dchome-nav__link--services::after {
    display: none !important;
  }

  .dchome-nav__arrow {
    width: 56px !important;
    min-width: 56px !important;

    height: 56px !important;
    min-height: 56px !important;

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

    color:
      #ffffff !important;

    background:
      var(--dchome-red) !important;

    border-radius:
      11px !important;

    box-shadow:
      0 8px 20px rgba(169, 101, 62, .17);

    cursor: pointer !important;

    font-size: 16px !important;
    font-weight: 900 !important;

    transition:
      transform .2s ease !important;
  }

  .dchome-sub-toggle:checked
  ~ .dchome-nav__services-row
  .dchome-nav__arrow {
    transform:
      rotate(180deg) !important;
  }

  /* Submenús móviles */

  .dchome-mega,
  .dchome-mega--simple,
  .dchome-mega--zones {
    position: static !important;

    inset: auto !important;

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

    display: none !important;

    grid-template-columns:
      1fr !important;

    gap: 12px !important;

    margin:
      10px 0 0 !important;

    padding:
      14px !important;

    background:
      #fffdf9 !important;

    border:
      1px solid rgba(201, 133, 87, .19) !important;

    border-radius:
      14px !important;

    box-shadow:
      none !important;

    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;

    transform:
      none !important;
  }

  .dchome-sub-toggle:checked
  ~ .dchome-mega {
    display: grid !important;
  }

  .dchome-mega__featured {
    display: none !important;
  }

  .dchome-mega__col {
    width: 100% !important;

    display: grid !important;

    gap: 8px !important;
  }

  .dchome-mega__col h3 {
    margin:
      0 0 6px !important;

    padding:
      0 0 10px !important;

    color:
      var(--dchome-navy) !important;

    border-bottom:
      1px solid rgba(105, 84, 66, .12) !important;

    font-size: 16px !important;
    font-weight: 850 !important;
    line-height: 1.2 !important;
  }

  .dchome-mega__col h3 a {
    color:
      var(--dchome-navy) !important;
  }

  .dchome-mega__col > a {
    width: 100% !important;
    min-height: 50px !important;

    display: flex !important;
    align-items: center !important;

    gap: 10px !important;

    padding:
      12px 13px !important;

    color:
      #615b54 !important;

    background:
      #faf5ef !important;

    border:
      1px solid rgba(105, 84, 66, .09) !important;

    border-radius:
      9px !important;

    font-size: 14px !important;
    font-weight: 750 !important;
    line-height: 1.3 !important;

    transform:
      none !important;
  }

  .dchome-mega__col > a::before {
    content: "" !important;

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

    flex: 0 0 auto !important;

    background:
      var(--dchome-red) !important;

    border-radius:
      999px !important;

    opacity: .9 !important;
  }

  .dchome-mega__col > a:hover,
  .dchome-mega__col > a:focus {
    color:
      #ffffff !important;

    background:
      var(--dchome-red) !important;

    border-color:
      var(--dchome-red) !important;
  }

  /* Idiomas */

  .dchome-lang {
    min-height: 44px;

    padding: 5px 8px;
  }

  .dchome-lang a {
    width: 32px;
    height: 32px;
  }

  .dchome-lang img {
    width: 21px !important;
  }
}

/* ==================================================
   MÓVIL PEQUEÑO
================================================== */

@media (max-width: 640px) {
  :root {
    --dchome-header-mobile: 82px;
  }

  .dchome-container {
    padding-right: 12px !important;
    padding-left: 12px !important;
  }

  .dchome-header__inner {
    min-height:
      var(--dchome-header-mobile) !important;

    height:
      var(--dchome-header-mobile) !important;
  }

  .dchome-logo {
    width: 198px !important;
    max-width: 198px !important;
    min-width: 198px !important;
  }

  .dchome-logo__img {
    width: 198px !important;
  }

  .dchome-menu-btn {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
  }
}

@media (max-width: 390px) {
  .dchome-logo {
    width: 178px !important;
    max-width: 178px !important;
    min-width: 178px !important;
  }

  .dchome-logo__img {
    width: 178px !important;
  }

  .dchome-menu-btn {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
  }

  .dchome-nav__link {
    min-height: 54px !important;

    font-size: 15px !important;
  }

  .dchome-nav__arrow {
    width: 54px !important;
    min-width: 54px !important;

    height: 54px !important;
    min-height: 54px !important;
  }

  .dchome-nav__services-row {
    grid-template-columns:
      1fr 54px !important;
  }

  .dchome-lang {
    padding: 4px 6px;
  }

  .dchome-lang ul {
    gap: 5px;
  }

  .dchome-lang a {
    width: 29px;
    height: 29px;
  }

  .dchome-lang img {
    width: 19px !important;
  }
}

/* ==================================================
   FOOTER GENERAL
================================================== */

.dchome-footer,
.dchome-footer * {
  box-sizing: border-box;
}

.dchome-footer a {
  text-decoration: none !important;
}

.dchome-footer {
  position: relative;

  z-index: 1;

  overflow: hidden;

  color: var(--dchome-text);

  background:
    radial-gradient(
      circle at 12% 0%,
      rgba(218, 177, 142, .17),
      transparent 33%
    ),
    linear-gradient(
      180deg,
      #fffdf9 0%,
      #f5ede5 100%
    );

  border-top:
    1px solid rgba(105, 84, 66, .10);

  font-family:
    Arial,
    Helvetica,
    sans-serif;
}

.dchome-footer::before {
  content: "";

  position: absolute;

  inset: 0;

  background:
    linear-gradient(
      90deg,
      rgba(105, 84, 66, .022) 1px,
      transparent 1px
    ),
    linear-gradient(
      180deg,
      rgba(105, 84, 66, .022) 1px,
      transparent 1px
    );

  background-size:
    58px 58px;

  opacity: .42;

  pointer-events: none;
}

.dchome-footer__desktop {
  position: relative;

  z-index: 2;

  display: block;
}

.dchome-footer__mobile {
  display: none;
}

/* ==================================================
   FOOTER PC
================================================== */

.dchome-footer__top,
.dchome-footer__bottom {
  position: relative;

  z-index: 2;
}

.dchome-footer__container {
  width: 100%;
  max-width: var(--dchome-max);

  margin: 0 auto;

  padding: 0 22px;
}

.dchome-footer__top {
  padding:
    78px 0 46px;
}

.dchome-footer__grid {
  display: grid;

  grid-template-columns:
    1.35fr .78fr .72fr .85fr 1.05fr;

  align-items: start;

  gap: 32px;
}

/* Marca */

.dchome-footer__brand {
  max-width: 360px;
}

.dchome-footer__logo {
  width: 280px;
  max-width: 100%;

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

  margin-bottom: 22px;

  line-height: 0;
}

.dchome-footer__logo-img {
  display: block;

  width: 280px;
  max-width: 100%;
  height: auto;

  object-fit: contain;
}

.dchome-footer__logo-mark,
.dchome-footer__logo-text {
  display: none !important;
}

.dchome-footer__brand p {
  margin: 0;

  color:
    var(--dchome-muted);

  font-size: 15px;
  line-height: 1.75;
}

/* Insignias */

.dchome-footer__badges {
  display: flex;
  flex-wrap: wrap;

  gap: 9px;

  margin-top: 22px;
}

.dchome-footer__badges span {
  display: inline-flex;
  align-items: center;

  min-height: 32px;

  padding: 0 12px;

  color:
    var(--dchome-red-dark);

  background:
    rgba(201, 133, 87, .13);

  border:
    1px solid rgba(201, 133, 87, .20);

  border-radius: 999px;

  font-size: 12px;
  font-weight: 800;
}

/* Títulos */

.dchome-footer__col h3,
.dchome-footer__contact h3 {
  position: relative;

  margin:
    0 0 20px;

  padding-bottom: 13px;

  color:
    var(--dchome-red-dark);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 19px;
  font-weight: 500;
  line-height: 1.2;
}

.dchome-footer__col h3::after,
.dchome-footer__contact h3::after {
  content: "";

  position: absolute;

  bottom: 0;
  left: 0;

  width: 42px;
  height: 2px;

  background:
    var(--dchome-red);

  border-radius: 999px;
}

/* Enlaces */

.dchome-footer__links {
  display: grid;

  gap: 11px;
}

.dchome-footer__links a {
  position: relative;

  display: inline-flex;
  align-items: center;

  gap: 8px;

  color:
    var(--dchome-muted);

  font-size: 15px;
  font-weight: 650;
  line-height: 1.4;

  transition:
    color .22s ease,
    transform .22s ease;
}

.dchome-footer__links a::before {
  content: "";

  width: 6px;
  height: 6px;

  flex: 0 0 auto;

  background:
    var(--dchome-red);

  border-radius: 999px;

  opacity: .85;
}

.dchome-footer__links a:hover,
.dchome-footer__links a:focus {
  color:
    var(--dchome-red-dark);

  transform:
    translateX(4px);
}

/* Contacto */

.dchome-footer__contact-list {
  display: grid;

  gap: 12px;
}

.dchome-footer__contact-item {
  display: flex;
  align-items: flex-start;

  gap: 12px;

  padding: 14px;

  background:
    rgba(255, 255, 255, .75);

  border:
    1px solid rgba(105, 84, 66, .11);

  border-radius: 11px;

  box-shadow:
    0 10px 27px rgba(78, 59, 43, .06);

  transition:
    transform .22s ease,
    border-color .22s ease,
    background .22s ease,
    box-shadow .22s ease;
}

.dchome-footer__contact-item:hover {
  background:
    #ffffff;

  border-color:
    rgba(201, 133, 87, .28);

  box-shadow:
    0 14px 30px rgba(78, 59, 43, .09);

  transform:
    translateY(-2px);
}

.dchome-footer__contact-icon {
  width: 38px;
  height: 38px;

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

  flex: 0 0 auto;

  color: #ffffff;

  background:
    var(--dchome-red);

  border-radius: 9px;

  font-size: 15px;
}

.dchome-footer__contact-item strong {
  display: block;

  margin-bottom: 4px;

  color:
    var(--dchome-navy);

  font-size: 14px;
}

.dchome-footer__contact-item small {
  display: block;

  color:
    var(--dchome-muted);

  font-size: 13px;
  line-height: 1.4;
}

/* Botón footer */

.dchome-footer__btn {
  width: 100%;
  min-height: 50px;

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

  gap: 9px;

  margin-top: 16px;

  color:
    #ffffff !important;

  background:
    var(--dchome-red);

  border:
    1px solid var(--dchome-red);

  border-radius: 5px;

  box-shadow:
    0 12px 28px rgba(169, 101, 62, .20);

  font-size: 13px;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;

  transition:
    transform .25s ease,
    background .25s ease,
    border-color .25s ease,
    box-shadow .25s ease;
}

.dchome-footer__btn:hover,
.dchome-footer__btn:focus {
  color:
    #ffffff !important;

  background:
    var(--dchome-red-dark);

  border-color:
    var(--dchome-red-dark);

  box-shadow:
    0 16px 32px rgba(169, 101, 62, .25);

  transform:
    translateY(-2px);
}

/* Parte inferior */

.dchome-footer__bottom {
  background:
    rgba(255, 253, 249, .94);

  border-top:
    1px solid rgba(105, 84, 66, .10);
}

.dchome-footer__bottom-inner {
  min-height: 76px;

  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;

  gap: 22px;
}

.dchome-footer__bottom p {
  margin: 0;

  color:
    var(--dchome-muted);

  font-size: 14px;
  line-height: 1.5;
}

.dchome-footer__legal {
  display: flex;
  align-items: center;
  flex-wrap: wrap;

  gap: 0;
}

.dchome-footer__legal a {
  position: relative;

  padding: 0 12px;

  color:
    var(--dchome-muted);

  font-size: 14px;
  font-weight: 700;

  transition:
    color .2s ease;
}

.dchome-footer__legal a:not(:last-child)::after {
  content: "";

  position: absolute;

  top: 50%;
  right: 0;

  width: 1px;
  height: 14px;

  background:
    rgba(105, 84, 66, .20);

  transform:
    translateY(-50%);
}

.dchome-footer__legal a:hover,
.dchome-footer__legal a:focus {
  color:
    var(--dchome-red-dark);
}

/* ==================================================
   FOOTER PORTUGUÉS
================================================== */

.dchome-footer-pt
.dchome-footer__grid {
  grid-template-columns:
    1.35fr .78fr .72fr .85fr 1.05fr;
}

/* ==================================================
   FOOTER TABLET
================================================== */

@media (max-width: 1120px) and (min-width: 768px) {
  .dchome-footer__grid,
  .dchome-footer-pt
  .dchome-footer__grid {
    grid-template-columns:
      1.2fr 1fr 1fr;
  }

  .dchome-footer__brand,
  .dchome-footer__contact,
  .dchome-footer-pt
  .dchome-footer__brand,
  .dchome-footer-pt
  .dchome-footer__contact {
    grid-column:
      span 3;

    max-width: none;
  }

  .dchome-footer__contact-list {
    grid-template-columns:
      repeat(3, 1fr);
  }

  .dchome-footer__btn {
    max-width: 320px;
  }
}

/* ==================================================
   FOOTER MÓVIL
================================================== */

@media (max-width: 767px) {
  .dchome-footer__desktop {
    display: none !important;
  }

  .dchome-footer__mobile {
    position: relative;

    z-index: 2;

    display: block !important;

    width: 100%;
    max-width: 760px;

    margin: 0 auto;

    padding:
      26px 14px 34px;

    text-align: center;
  }

  .dchome-footer-mobile__legal {
    max-width: 315px;

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

    gap: 5px;

    margin:
      0 auto 14px;

    line-height: 1.35;
  }

  .dchome-footer-mobile__legal a,
  .dchome-footer-mobile__legal span {
    color:
      var(--dchome-muted);

    font-size: 12px;
    font-weight: 700;
  }

  .dchome-footer-mobile__legal a:hover,
  .dchome-footer-mobile__legal a:focus {
    color:
      var(--dchome-red-dark);
  }

  .dchome-footer-mobile__logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    line-height: 0;
  }

  .dchome-footer-mobile__logo img {
    display: block;

    width: 165px;
    max-width: 100%;
    height: auto;

    object-fit: contain;
  }

  .dchome-footer-mobile__trust {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;

    gap: 6px;
  }

  .dchome-footer-mobile__trust span {
    min-height: 23px;

    display: inline-flex;
    align-items: center;

    padding:
      0 8px;

    color:
      var(--dchome-red-dark);

    background:
      rgba(201, 133, 87, .13);

    border:
      1px solid rgba(201, 133, 87, .14);

    border-radius:
      999px;

    font-size: 10.5px;
    font-weight: 800;

    white-space: nowrap;
  }

  .dchome-footer-mobile__trust span::before {
    content: "";

    width: 5px;
    height: 5px;

    margin-right: 6px;

    background:
      var(--dchome-red);

    border-radius:
      999px;
  }

  .dchome-footer-mobile__copy {
    max-width: 300px;

    margin: 0 auto;

    color:
      var(--dchome-muted);

    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.45;
  }

  .dchome-footer-pt
  .dchome-footer__grid {
    grid-template-columns:
      1fr;
  }
}

/* ==================================================
   MY STICKY ELEMENTS
   VISIBILIDAD GENERAL
================================================== */

#mystickyelements-wrap,
#mystickyelements-wrap *,
.mystickyelements-fixed,
.mystickyelements-fixed *,
.mystickyelements-social-icon,
.mystickyelements-contact-form {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

#mystickyelements-wrap,
.mystickyelements-fixed {
  z-index: 2147483647 !important;

  overflow: visible !important;

  display: block !important;
}

.dchome-header {
  z-index: 99990 !important;
}

.dchome-nav {
  z-index: 99991 !important;
}

.dchome-footer {
  position: relative !important;

  z-index: 1 !important;
}

/* ==================================================
   MY STICKY ELEMENTS
   BARRA SUPERIOR FIJA EN MÓVIL
================================================== */

@media (max-width: 767px) {
  :root {
    --dchome-sticky-bar-height: 40px;
    --dchome-header-mobile: 82px;

    --dchome-mobile-total-top:
      calc(
        var(--dchome-sticky-bar-height) +
        var(--dchome-header-mobile)
      );
  }

  html {
    scroll-padding-top:
      var(--dchome-mobile-total-top) !important;
  }

  body {
    padding-top:
      var(--dchome-mobile-total-top) !important;
  }

  /* Contenedor exterior */

  html body #mystickyelements-wrap {
    position: fixed !important;

    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;

    z-index: 2147483647 !important;

    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;

    height:
      var(--dchome-sticky-bar-height) !important;

    min-height:
      var(--dchome-sticky-bar-height) !important;

    max-height:
      var(--dchome-sticky-bar-height) !important;

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

    display: block !important;

    overflow: hidden !important;

    background:
      #fffdf9 !important;

    border-bottom:
      1px solid rgba(105, 84, 66, .10) !important;

    box-shadow:
      0 3px 12px rgba(78, 59, 43, .12) !important;

    opacity: 1 !important;
    visibility: visible !important;

    transform: none !important;
    translate: none !important;
  }

  /* Contenedor interno */

  html body
  #mystickyelements-wrap
  .mystickyelements-fixed,
  html body
  .mystickyelements-fixed.mystickyelements-position-mobile-top,
  html body
  .mystickyelements-fixed.mystickyelements-position-mobile-bottom {
    position: static !important;

    inset: auto !important;

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

    height:
      var(--dchome-sticky-bar-height) !important;

    min-height:
      var(--dchome-sticky-bar-height) !important;

    max-height:
      var(--dchome-sticky-bar-height) !important;

    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;

    gap: 0 !important;

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

    overflow: hidden !important;

    transform: none !important;
  }

  /* Listas internas */

  html body
  #mystickyelements-wrap ul,
  html body
  #mystickyelements-wrap
  .mystickyelements-lists {
    position: static !important;

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

    height:
      var(--dchome-sticky-bar-height) !important;

    min-height:
      var(--dchome-sticky-bar-height) !important;

    max-height:
      var(--dchome-sticky-bar-height) !important;

    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;

    gap: 0 !important;

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

    list-style: none !important;

    transform: none !important;
  }

  /* Cada botón ocupa la mitad */

  html body
  #mystickyelements-wrap
  .mystickyelements-fixed
  > .mystickyelements-social-icon,
  html body
  #mystickyelements-wrap li,
  html body
  #mystickyelements-wrap
  .mystickyelements-social-icon li {
    position: relative !important;

    flex:
      0 0 50% !important;

    width: 50% !important;
    min-width: 50% !important;
    max-width: 50% !important;

    height:
      var(--dchome-sticky-bar-height) !important;

    min-height:
      var(--dchome-sticky-bar-height) !important;

    max-height:
      var(--dchome-sticky-bar-height) !important;

    display: flex !important;
    align-items: stretch !important;
    justify-content: center !important;

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

    overflow: hidden !important;

    border-radius: 0 !important;

    float: none !important;

    transform: none !important;
  }

  /* Separador */

  html body
  #mystickyelements-wrap
  .mystickyelements-social-icon {
    border-right:
      1px solid rgba(255, 255, 255, .20) !important;
  }

  html body
  #mystickyelements-wrap
  .mystickyelements-social-icon:last-child {
    border-right:
      0 !important;
  }

  /* Contenido del botón */

  html body
  #mystickyelements-wrap
  li > a,

  html body
  #mystickyelements-wrap
  .mystickyelements-social-icon > a,

  html body
  #mystickyelements-wrap
  .mystickyelements-social-icon > span,

  html body
  #mystickyelements-wrap
  .mystickyelements-social-icon > div,

  html body
  #mystickyelements-wrap
  .mystickyelements-social-icon > div > a,

  html body
  #mystickyelements-wrap
  .mystickyelements-social-icon > div > span {
    position: relative !important;

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

    height: 100% !important;

    min-height:
      var(--dchome-sticky-bar-height) !important;

    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;

    gap: 7px !important;

    margin: 0 !important;

    padding:
      0 8px !important;

    border-radius:
      0 !important;

    box-sizing:
      border-box !important;

    font-size:
      15px !important;

    line-height:
      1 !important;

    white-space:
      nowrap !important;

    transform:
      none !important;
  }

  /* Iconos */

  html body
  #mystickyelements-wrap i,

  html body
  #mystickyelements-wrap svg,

  html body
  #mystickyelements-wrap img {
    position: static !important;

    flex: 0 0 auto !important;

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

    vertical-align: middle !important;

    transform: none !important;
  }

  html body
  #mystickyelements-wrap svg,

  html body
  #mystickyelements-wrap img {
    width: 21px !important;
    height: 21px !important;

    object-fit: contain !important;
  }

  /* Ocultar minimizar */

  #mystickyelements-wrap
  .mystickyelements-minimize,

  #mystickyelements-wrap
  .mystickyelements-minimize-position,

  #mystickyelements-wrap
  .mystickyelements-minimize-button {
    display: none !important;
  }

  /* Eliminar pseudoelementos */

  #mystickyelements-wrap::before,
  #mystickyelements-wrap::after,
  #mystickyelements-wrap
  .mystickyelements-fixed::before,
  #mystickyelements-wrap
  .mystickyelements-fixed::after {
    content: none !important;

    display: none !important;
  }

  /* Header debajo de la barra */

  html body .dchome-header {
    position: fixed !important;

    top:
      var(--dchome-sticky-bar-height) !important;

    right: 0 !important;
    left: 0 !important;

    width: 100% !important;

    margin: 0 !important;

    transform: none !important;

    z-index: 999990 !important;
  }

  html body .dchome-header__wrap {
    width: 100% !important;

    margin: 0 !important;

    padding-top: 0 !important;

    border-top: 0 !important;
  }

  html body .dchome-header__inner {
    min-height:
      var(--dchome-header-mobile) !important;

    height:
      var(--dchome-header-mobile) !important;
  }

  html body .dchome-nav {
    top: 100% !important;

    max-height:
      calc(
        100dvh -
        var(--dchome-sticky-bar-height) -
        var(--dchome-header-mobile)
      ) !important;
  }
}

/* ==================================================
   MÓVILES MUY PEQUEÑOS
================================================== */

@media (max-width: 390px) {
  :root {
    --dchome-sticky-bar-height: 40px;
    --dchome-header-mobile: 80px;
  }

  #mystickyelements-wrap li > a,
  #mystickyelements-wrap
  .mystickyelements-social-icon a,
  #mystickyelements-wrap
  .mystickyelements-social-icon span {
    gap: 5px !important;

    padding:
      0 6px !important;

    font-size:
      14px !important;
  }

  #mystickyelements-wrap svg,
  #mystickyelements-wrap img {
    width: 20px !important;
    height: 20px !important;
  }
}

/* ==================================================
   ACCESIBILIDAD
================================================== */

.dchome-header a:focus-visible,
.dchome-footer a:focus-visible,
.dchome-menu-btn:focus-visible,
.dchome-nav__arrow:focus-visible {
  outline:
    3px solid rgba(201, 133, 87, .38);

  outline-offset:
    3px;
}

/* ==================================================
   REDUCCIÓN DE MOVIMIENTO
================================================== */

@media (prefers-reduced-motion: reduce) {
  .dchome-header *,
  .dchome-footer * {
    scroll-behavior:
      auto !important;

    transition-duration:
      .01ms !important;

    animation-duration:
      .01ms !important;

    animation-iteration-count:
      1 !important;
  }
}