.elementor-104 .elementor-element.elementor-element-e038f3e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}body.elementor-page-104:not(.elementor-motion-effects-element-type-background), body.elementor-page-104 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#000000;}/* Start custom CSS for html, class: .elementor-element-19d31c1 *//* ==========================================================
   DESPECHO MADRID · CONTACTO
========================================================== */

.despecho-contacto {

    --dco-black: #050505;
    --dco-black-soft: #101010;
    --dco-black-light: #171717;

    --dco-white: #ffffff;

    --dco-pink: #ed4565;
    --dco-pink-soft: #ff91b6;

    --dco-yellow: #ffd35f;
    --dco-coral: #ff9f7d;

    --dco-green: #009568;

    --dco-purple: #5620e8;
    --dco-blue: #123c94;

    background: var(--dco-black);

    color: var(--dco-white);

    font-family: "Courage", Arial, sans-serif;

    overflow: hidden;

}


.despecho-contacto *,
.despecho-contacto *::before,
.despecho-contacto *::after {

    box-sizing: border-box;

}


.dco-container {

    width: min(1180px, calc(100% - 60px));

    margin-left: auto;
    margin-right: auto;

}


.despecho-contacto a {

    color: inherit;
    font-size: 20px;

}


/* ==========================================================
   GENERAL
========================================================== */

.dco-kicker {

    display: block;

    margin-bottom: 22px;

    color: var(--dco-yellow);

    font-size: 21px;

    letter-spacing: 1.5px;

}


.dco-button {

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 14px;

    min-height: 56px;

    padding: 14px 23px;

    border-radius: 100px;

    text-decoration: none;

    font-size: 13px;

    transition:
        transform .25s ease,
        background .25s ease,
        border-color .25s ease;

}


.dco-button:hover {

    transform: translateY(-3px);

}


.dco-button-pink {

    background: var(--dco-pink);

}


.dco-button-outline {

    border: 1px solid rgba(255,255,255,.3);

}


.dco-button-outline:hover {

    background: white;

    color: var(--dco-black);

}


/* ==========================================================
   HERO
========================================================== */

.dco-hero {

    position: relative;

    min-height: 760px;

    display: flex;

    align-items: center;

    padding: 55px 0 100px;

    background:

        radial-gradient(
            circle at 87% 20%,
            rgba(255,211,95,.15),
            transparent 31%
        ),

        radial-gradient(
            circle at 6% 90%,
            rgba(86,32,232,.19),
            transparent 31%
        ),

        var(--dco-black);

}


.dco-hero-grid {

    display: grid;

    grid-template-columns: 1.05fr .95fr;

    gap: 75px;

    align-items: center;

}


.dco-title {

    max-width: 760px;

    margin: 0;

    font-size: clamp(57px, 7vw, 100px);

    line-height: .84;

    letter-spacing: -3px;

}


.dco-title span {

    display: block;

    color: var(--dco-pink);

}


.dco-intro {

    max-width: 650px;

    margin: 32px 0;

    color: rgba(255,255,255,.66);

    font-family: Mahesa, sans-serif;

    font-size: 28px;

    line-height: 0.9;

}


.dco-hero-actions {

    display: flex;

    flex-wrap: wrap;

    gap: 10px;

}


/* ==========================================================
   HERO CARD
========================================================== */

.dco-hero-card {

    position: relative;

    padding: 40px;

    background: var(--dco-yellow);

    color: var(--dco-black);

    border-radius: 26px;

    transform: rotate(2deg);

}


.dco-hero-card::before {

    content: "75";

    position: absolute;

    right: 22px;
    top: -25px;

    color: rgba(0,139,104,.16);

    font-size: 130px;

}


.dco-card-label {

    color: var(--dco-green);

    font-size: 21px;
        font-family: Mahesa, sans-serif;

}


.dco-hero-card h2 {

    position: relative;

    margin: 22px 0;

    font-size: clamp(42px, 5vw, 43px);

    line-height: .89;

}


.dco-hero-card h2 span {

    display: block;

    color: var(--dco-pink);

}


.dco-hero-card p {

    margin: 0 0 27px;

    font-family: Mahesa, sans-serif;

    font-size: 20px;

    line-height: 0.9;
}


.dco-location-link {

    display: inline-flex;

    gap: 12px;

    padding: 13px 18px;

    background: var(--dco-purple);

    color: white !important;

    border-radius: 100px;

    text-decoration: none;

    font-size: 11px;

}


/* ==========================================================
   MARQUEE
========================================================== */

.dco-marquee {

    overflow: hidden;

    padding: 10px 0;

    background: var(--dco-pink);

}


.dco-marquee-track {

    display: flex;

    width: max-content;

    gap: 38px;

    white-space: nowrap;

}


.dco-marquee-track span {

    position: relative;

    font-size: 11px;

}


.dco-marquee-track span:not(:last-child)::after {

    content: "✦";

    position: absolute;

    right: -24px;

    color: var(--dco-yellow);

}


/* ==========================================================
   CONTACT DATA
========================================================== */

.dco-data {

    padding: 80px 0;

    background: var(--dco-black);

}


.dco-section-heading {

    max-width: 830px;

    margin-bottom: 55px;

}


.dco-section-heading > span {

    display: block;

    margin-bottom: 17px;

    color: var(--dco-green);

    font-size: 21px;

}


.dco-section-heading h2 {

    margin: 0;

    font-size: clamp(50px, 6vw, 78px);

    line-height: .87;

}


.dco-section-heading h2 strong {

    display: block;

    color: var(--dco-pink);

}


.dco-contact-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 14px;

}


.dco-contact-card {

    position: relative;

    min-height: 370px;

    padding: 30px;

    overflow: hidden;

    transition:
        transform .3s ease,
        border-radius .3s ease;

}


.dco-contact-card:hover {

    transform: translateY(-8px);

    border-radius: 24px;

}


.dco-card-pink {

    background: var(--dco-pink);
    border-radius: 22px;

}


.dco-card-purple {

    background: var(--dco-purple);
    border-radius: 22px;


}


.dco-card-green {

    background: var(--dco-green);
    border-radius: 22px;


}


.dco-card-number {

    position: absolute;

    right: 18px;
    top: 10px;

    color: rgba(255,255,255,.16);

    font-size: 65px;

}


.dco-contact-label {

    display: block;

    margin-bottom: 35px;

    color: var(--dco-yellow);

    font-size: 22px;
    font-family: Mahesa, sans-serif;
}


.dco-contact-card h3 {

    max-width: 100%;

    margin: 0 0 20px;

    font-size: clamp(29px, 3vw, 32px);

    line-height: .93;

    overflow-wrap: anywhere;

}


.dco-contact-card h3 strong {

    display: block;

    margin-top: 7px;

    color: var(--dco-yellow);

}


.dco-contact-card p {

    margin: 0;

    font-family: Mahesa, sans-serif;

    font-size: 24px;

    line-height: 0.9;

}


.dco-contact-card a {

    position: absolute;

    left: 30px;
    bottom: 28px;

    display: inline-flex;

    gap: 9px;

    color: var(--dco-yellow);

    text-decoration: none;

    font-size: 21px;

}


/* ==========================================================
   NEEDS
========================================================== */

.dco-needs {

    padding: 80px 0;

    background: var(--dco-black-soft);

}


.dco-needs-grid {

    display: grid;

    grid-template-columns: .8fr 1.2fr;

    gap: 85px;

}


.dco-needs-heading > span {

    display: block;

    margin-bottom: 17px;

    color: var(--dco-yellow);

    font-size: 21px;


}


.dco-needs-heading h2 {

    margin: 0;

    font-size: clamp(48px, 6vw, 75px);

    line-height: .87;

}


.dco-needs-heading h2 strong {

    display: block;

    color: var(--dco-green);

}


.dco-needs-heading p {

    max-width: 470px;

    margin: 26px 0 0;

    color: rgba(255,255,255,.58);

    font-family: Mahesa, sans-serif;

    font-size: 26px;

    line-height: 0.9;

}


.dco-need-item {

    display: grid;

    grid-template-columns: 40px 1fr 40px;

    gap: 18px;

    align-items: center;

    min-height: 100px;

    padding: 20px 0;

    border-bottom:
        1px solid rgba(255,255,255,.14);

    text-decoration: none;

}


.dco-need-item > span {

    color: var(--dco-pink);

    font-size: 21px;

}


.dco-need-item strong {

    display: block;

    margin-bottom: 5px;

    font-size: 19px;

}


.dco-need-item p {

    margin: 0;

    color: rgba(255,255,255,.55);

    font-family: Mahesa, sans-serif;

    font-size: 23px;

}


.dco-need-item i {

    display: flex;

    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;

    border-radius: 50%;

    background: var(--dco-pink);

    font-style: normal;

    transition:
        transform .25s ease,
        background .25s ease;

}


.dco-need-item:hover i {

    transform: rotate(45deg);

    background: var(--dco-yellow);

    color: var(--dco-black);

}


/* ==========================================================
   LOCATION
========================================================== */

.dco-location {

    padding: 40px 0;

    background: var(--dco-black);

}


.dco-location-grid {

    display: grid;

    grid-template-columns: .78fr 1.22fr;

    gap: 60px;

    align-items: center;

}


.dco-location-copy h2 {

    margin: 0;

    max-width: 570px;

    font-size: clamp(51px, 6vw, 78px);

    line-height: .86;

}


.dco-location-copy h2 span {

    display: block;

    color: var(--dco-pink);

}


.dco-address {

    display: flex;

    flex-direction: column;

    gap: 5px;

    margin: 37px 0;

}


.dco-address small {

    color: var(--dco-green);

    font-size: 15px;

}


.dco-address strong {

    font-size: 21px;

}


.dco-address p {

    margin: 0;

    color: rgba(255,255,255,.58);

    font-family: Mahesa, sans-serif;

}


.dco-map {

    height: 480px;

    overflow: hidden;

    border-radius: 24px;

    background: var(--dco-black-light);

}


.dco-map iframe {

    display: block;

    width: 100%;
    height: 100%;

}


/* ==========================================================
   INFO
========================================================== */

.dco-info {

    padding: 80px 0;

    background: var(--dco-yellow);

    color: var(--dco-black);

}


.dco-info-grid {

    display: grid;

    grid-template-columns: .8fr 1.2fr;

    gap: 90px;

}


.dco-info-heading > span {

    color: var(--dco-green);

    font-size: 21px;

}


.dco-info-heading h2 {

    margin: 18px 0 0;

    font-size: clamp(48px, 6vw, 75px);

    line-height: .87;

}


.dco-info-heading h2 strong {

    display: block;

    color: var(--dco-pink);

}


.dco-info-list article {

    display: grid;

    grid-template-columns: 45px 1fr;

    gap: 18px;

    padding: 27px 0;

    border-bottom:
        1px solid rgba(0,0,0,.14);

}


.dco-info-list article > span {

    color: var(--dco-pink);

    font-size: 21px;

}


.dco-info-list h3 {

    margin: 0 0 8px;

    color: var(--dco-purple);

    font-size: 20px;

}


.dco-info-list p {

    max-width: 590px;

    margin: 0;
    font-family: Mahesa, sans-serif;

    font-size: 24px;

    line-height: 0.9;

}


.dco-info-list a {

    display: inline-block;

    margin-top: 12px;

    color: var(--dco-pink);

    text-decoration: none;

    font-size: 20px;

}


/* ==========================================================
   FINAL
========================================================== */

.dco-final {

    position: relative;

    padding: 70px 0;

    background: var(--dco-pink);

    overflow: hidden;

}


.dco-final-word {

    position: absolute;

    left: 50%;
    top: 50%;

    transform: translate(-50%, -50%);

    color: transparent;

    font-size: clamp(150px, 25vw, 360px);

    -webkit-text-stroke:
        2px rgba(255,255,255,.13);

}


.dco-final-content {

    position: relative;

    z-index: 2;

    text-align: center;

}


.dco-final-content > span {

    display: block;

    margin-bottom: 20px;

    color: var(--dco-yellow);

    font-size: 21px;

}


.dco-final-content h2 {

    max-width: 950px;

    margin: 0 auto 40px;

    font-size: clamp(49px, 7vw, 88px);

    line-height: .86;

}


.dco-final-content h2 strong {

    display: block;

    color: var(--dco-yellow);

}


.dco-final-button {

    display: inline-flex;

    align-items: center;

    gap: 14px;

    padding: 16px 25px;

    border-radius: 100px;

    background: var(--dco-purple);

    color: white !important;

    text-decoration: none;

    font-size: 13px;

}


/* ==========================================================
   TABLET
========================================================== */

@media (max-width: 1024px) {

    .dco-hero-grid {

        gap: 40px;

    }


    .dco-needs-grid,
    .dco-info-grid {

        gap: 45px;

    }

}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width: 767px) {

    .dco-container {

        width: calc(100% - 30px);

    }


    /* HERO */

    .dco-hero {

        min-height: auto;

        padding: 40px 0 20px;

    }


    .dco-hero-grid {

        grid-template-columns: 1fr;

        gap: 42px;

    }


    .dco-title {

        font-size: clamp(48px, 14vw, 66px);

        letter-spacing: -2px;

    }


    .dco-intro {

        font-size: 16px;

    }


    .dco-hero-actions {

        flex-direction: column;

    }


    .dco-button {

        width: 100%;

    }


    .dco-hero-card {

        padding: 38px 25px;

        transform: none;

    }


    /* CONTACT DATA */

    .dco-data {

        padding: 40px 0;

    }


    .dco-section-heading h2 {

        font-size: 47px;

    }


    .dco-contact-grid {

        grid-template-columns: 1fr;

    }


    .dco-contact-card {

        min-height: 320px;

    }


    /* NEEDS */

    .dco-needs {

        padding: 40px 0;

    }


    .dco-needs-grid {

        grid-template-columns: 1fr;

        gap: 45px;

    }


    .dco-needs-heading h2 {

        font-size: 47px;

    }


    /* LOCATION */

    .dco-location {

        padding: 40px 0;

    }


    .dco-location-grid {

        grid-template-columns: 1fr;

        gap: 45px;

    }


    .dco-location-copy h2 {

        font-size: 47px;

    }


    .dco-map {

        height: 360px;

    }


    /* INFO */

    .dco-info {

        padding: 50px 0;

    }


    .dco-info-grid {

        grid-template-columns: 1fr;

        gap: 45px;

    }


    .dco-info-heading h2 {

        font-size: 47px;

    }


    /* FINAL */

    .dco-final {

        padding: 55px 0;

    }


    .dco-final-content h2 {

        font-size: 40px;

    }


    .dco-final-button {

        width: 100%;

        justify-content: center;

    }

}


/* ==========================================================
   REDUCED MOTION
========================================================== */

@media (prefers-reduced-motion: reduce) {

    .despecho-contacto *,
    .despecho-contacto *::before,
    .despecho-contacto *::after {

        transition-duration: .01ms !important;

    }

}


.marquee {
  position: relative;
  width: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
    background-color:#ed4565 ;
  /*background: linear-gradient(90deg, #8f0000 0%, #de0201 45%, #b30000 100%);*/
  /*border-top: 2px solid rgba(255, 214, 102, 0.9);*/
  /*border-bottom: 2px solid rgba(255, 214, 102, 0.35);*/
  /*box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);*/
  min-height: 54px;
}

.marquee__track {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  width: max-content;
  animation: marquee 22s linear infinite;
  will-change: transform;
}

.marquee__item {
    font-family: Mahesa, sans-serif;
  font-weight: 400;
  font-size: 1.5em;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #fff8ef;
  text-shadow: 0 1px 2px rgba(0,0,0,0.28);
  padding: 0rem;
}

.marquee__divider {
  font-size: 1.5rem;
  color: #ffd666;
  opacity: 0.95;
  padding: 0rem;
}

.marquee__fade {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 10px;
  z-index: 2;
  pointer-events: none;
}

.marquee__fade--left {
  left: 0;
    background-color:#ED4565 ;
   /* background: linear-gradient(to right, rgba(143,0,0,1), rgba(143,0,0,0));*/
}

.marquee__fade--right {
  right: 0;
   background-color:#ED4565 ;
  /* background: linear-gradient(to left, rgba(179,0,0,1), rgba(179,0,0,0));*/
}

@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

.marquee:hover .marquee__track {
  animation-play-state: paused;
}

@media (max-width: 767px) {
  .marquee {
    min-height: 46px;
  }

  .marquee__item {
    font-size: 0.9rem;
    padding: 0 0.55rem;
  }

  .marquee__divider {
    font-size: 0.85rem;
  }

  .marquee__track {
    animation-duration: 18s;
  }
}



.marquee {
  position: relative;
  width: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
    background-color:#ed4565 ;
  /*background: linear-gradient(90deg, #8f0000 0%, #de0201 45%, #b30000 100%);*/
  /*border-top: 2px solid rgba(255, 214, 102, 0.9);*/
  /*border-bottom: 2px solid rgba(255, 214, 102, 0.35);*/
  /*box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);*/
  min-height: 54px;
}

.marquee__track {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  width: max-content;
  animation: marquee 22s linear infinite;
  will-change: transform;
}

.marquee__item {
    font-family: Mahesa, sans-serif;
  font-weight: 400;
  font-size: 1.5em;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #fff8ef;
  text-shadow: 0 1px 2px rgba(0,0,0,0.28);
  padding: 0rem;
}

.marquee__divider {
  font-size: 1.5rem;
  color: #ffd666;
  opacity: 0.95;
  padding: 0rem;
}

.marquee__fade {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 10px;
  z-index: 2;
  pointer-events: none;
}

.marquee__fade--left {
  left: 0;
    background-color:#ED4565 ;
   /* background: linear-gradient(to right, rgba(143,0,0,1), rgba(143,0,0,0));*/
}

.marquee__fade--right {
  right: 0;
   background-color:#ED4565 ;
  /* background: linear-gradient(to left, rgba(179,0,0,1), rgba(179,0,0,0));*/
}

@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

.marquee:hover .marquee__track {
  animation-play-state: paused;
}

@media (max-width: 767px) {
  .marquee {
    min-height: 46px;
  }

  .marquee__item {
    font-size: 0.9rem;
    padding: 0 0.55rem;
  }

  .marquee__divider {
    font-size: 0.85rem;
  }

  .marquee__track {
    animation-duration: 18s;
  }
}
.marquee {
  position: relative;
  width: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
    background-color:#ff9fbd ;
  /*background: linear-gradient(90deg, #8f0000 0%, #de0201 45%, #b30000 100%);*/
  /*border-top: 2px solid rgba(255, 214, 102, 0.9);*/
  /*border-bottom: 2px solid rgba(255, 214, 102, 0.35);*/
  /*box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);*/
  min-height: 54px;
}

.marquee__track {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  width: max-content;
  animation: marquee 22s linear infinite;
  will-change: transform;
}

.marquee__item {
  font-family: "Courage", sans-serif;
  font-weight: 700;
  font-size: 1.5em;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #fff8ef;
  text-shadow: 0 1px 2px rgba(0,0,0,0.28);
  padding: 0rem;
}

.marquee__divider {
  font-size: 1rem;
  color: #ffd666;
  opacity: 0.95;
  padding: 0rem;
}

.marquee__fade {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 10px;
  z-index: 2;
  pointer-events: none;
}

.marquee__fade--left {
  left: 0;
    background-color:#ff9fbd ;
   /* background: linear-gradient(to right, rgba(143,0,0,1), rgba(143,0,0,0));*/
}

.marquee__fade--right {
  right: 0;
  background-color:#ff9fbd ;
  /* background: linear-gradient(to left, rgba(179,0,0,1), rgba(179,0,0,0));*/
}

@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

.marquee:hover .marquee__track {
  animation-play-state: paused;
}

@media (max-width: 767px) {
  .marquee {
    min-height: 46px;
  }

  .marquee__item {
    font-size: 0.9rem;
    padding: 0 0.55rem;
  }

  .marquee__divider {
    font-size: 0.85rem;
  }

  .marquee__track {
    animation-duration: 18s;
  }
}

/* ==========================================
   BOTÓN TARJETA REGALO · ICONOS LATERALES
========================================== */

.dg-final-button.dg-button-icons {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 10px;
}


/* TEXTO */

.dg-button-text {
    display: inline-block;
    white-space: nowrap;
}


/* ICONOS */

.dg-button-icon {
    display: block;

    width: 21px !important;
    height: 21px !important;

    min-width: 21px;
    max-width: 21px;

    object-fit: contain;

    border-radius: 0 !important;

    pointer-events: none;

    transition: transform .3s ease;
}


/* ICONO IZQUIERDO ESPEJADO */

.dg-button-icon-left {
    transform: rotate(180deg);
}


/* PEQUEÑO MOVIMIENTO AL HOVER */

.dg-final-button:hover .dg-button-icon-left {
    transform:
        rotate(180deg)
        translateX(-2px);
}

.dg-final-button:hover .dg-button-icon-right {
    transform: translateX(2px);
}


/* MOBILE */

@media (max-width: 767px) {

    .dg-final-button.dg-button-icons {
        gap: 7px;
    }

    .dg-button-icon {
        width: 18px !important;
        height: 18px !important;

        min-width: 18px;
        max-width: 18px;
    }

}

/* ==========================================================
   CARTA · BOTONES CON ICONOS DESPECHO
========================================================== */

.dc-button-icons {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 9px;
}


/* TEXTO */

.dc-button-text {
    display: inline-block;

    width: auto;
    height: auto;

    white-space: nowrap;
}


/* ICONOS */

.despecho-carta .dc-button-icon {
    display: block;

    width: 21px !important;
    height: 21px !important;

    min-width: 21px;
    max-width: 21px;

    flex: 0 0 21px;

    object-fit: contain;

    border-radius: 0;

    pointer-events: none;

    transition:
        transform .3s ease;
}


/* IZQUIERDA ESPEJADA */

.dc-button-icon-left {
    transform: rotate(180deg);
}


/* HOVER */

.dc-button-icons:hover .dc-button-icon-left {
    transform:
        rotate(180deg)
        translateX(-2px);
}


.dc-button-icons:hover .dc-button-icon-right {
    transform:
        translateX(2px);
}
/* ==========================================================
   AJUSTE DE TAMAÑO
========================================================== */

.dc-pill-button.dc-button-icons,
.dc-reserve-button.dc-button-icons {

    gap: 9px;

    padding-left: 18px;
    padding-right: 18px;
}

/* ==========================================================
   TARJETA REGALO · BOTÓN HERO
========================================================== */

.dg-main-button.dg-button-icons {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 9px;

    min-height: 50px;

    padding: 11px 18px;

    font-size: 15px;
    line-height: 1;
}


/* TEXTO */

.dg-main-button .dg-button-text {
    display: inline-block;

    width: auto;
    height: auto;

    white-space: nowrap;
}


/* ICONOS */

.despecho-gift .dg-main-button .dg-button-icon {
    display: block;

    width: 21px !important;
    height: 21px !important;

    min-width: 21px !important;
    max-width: 21px !important;

    flex: 0 0 21px;

    object-fit: contain !important;

    border-radius: 0 !important;

    pointer-events: none;

    transition: transform .3s ease;
}


/* IZQUIERDA ESPEJADA */

.dg-button-icon-left {
    transform: rotate(180deg);
}


/* HOVER */

.dg-main-button:hover .dg-button-icon-left {
    transform:
        rotate(180deg)
        translateX(-2px);
}

.dg-main-button:hover .dg-button-icon-right {
    transform: translateX(2px);
}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width: 767px) {

    .dg-main-button.dg-button-icons {
        width: auto;

        gap: 7px;

        min-height: 46px;

        padding: 10px 15px;

        font-size: 14px;
    }


    .despecho-gift .dg-main-button .dg-button-icon {
        width: 18px !important;
        height: 18px !important;

        min-width: 18px !important;
        max-width: 18px !important;

        flex-basis: 18px;
    }


    .dg-main-button .dg-button-text {
        white-space: normal;

        text-align: center;
    }

}


.dco-location::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.72) 0%,
            rgba(0,0,0,.42) 42%,
            rgba(0,0,0,.16) 100%
        );

    pointer-events: none;
}
.dco-location .dco-container {
    position: relative;
    z-index: 2;
}
.dco-map {
    overflow: hidden;

    border-radius: 22px;

    box-shadow:
        0 30px 70px rgba(0,0,0,.42);

    border: 1px solid rgba(255,255,255,.08);
}
.dco-location-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;

    gap: 80px;

    align-items: center;
}
.dco-location {
    position: relative;
    overflow: hidden;

    padding: 110px 0;

    background-image:
        linear-gradient(
            rgba(5, 5, 5, 0.76),
            rgba(5, 5, 5, 0.88)
        ),
        url("https://despechomadrid.com/wp-content/uploads/2026/08/fondo1.png");

    background-repeat: no-repeat;

    /* un poco más grande para poder desplazarla */
    background-size:
        contain;
        
    /* degradado normal + foto desplazada */
    background-position:
        center,
       30% center;
}

/* =====================================================
   DESPECHO · CONTACTO
   UBICACIÓN RESPONSIVE
===================================================== */

@media (max-width: 767px) {

    /* SECCIÓN */

    .dco-location {
        width: 100%;
        max-width: 100%;
        padding: 65px 0;
        overflow-x: clip;
    }

    /* CONTENEDOR PRINCIPAL */

    .dco-location .dco-container {
        width: calc(100% - 40px);
        max-width: 100%;
        margin-inline: auto;
        box-sizing: border-box;
    }

    /* CAMBIAR A DISTRIBUCIÓN VERTICAL */

    .dco-location .dco-location-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 35px;
        width: 100%;
        min-width: 0;
        align-items: stretch;
    }

    /* BLOQUE DE TEXTO */

    .dco-location .dco-location-copy {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    /* TÍTULO */

    .dco-location .dco-location-copy h2 {
        max-width: 100%;
        margin: 18px 0 30px;

        font-size: clamp(34px, 9vw, 45px);
        line-height: 1.02;
        letter-spacing: -1px;

        overflow-wrap: break-word;
    }

    .dco-location .dco-location-copy h2 span {
        display: block;
        max-width: 100%;
    }

    /* DIRECCIÓN */

    .dco-location .dco-address {
        width: 100%;
        max-width: 100%;
        margin-bottom: 30px;
    }

    .dco-location .dco-address strong {
        display: block;
        max-width: 100%;
        overflow-wrap: break-word;
    }

    /* BOTÓN CÓMO LLEGAR */

    .dco-location .dco-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;

        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* MAPA */

    .dco-location .dco-map {
        position: relative;
        display: block;

        width: 100%;
        max-width: 100%;
        min-width: 0;

        height: 340px;
        min-height: 340px;

        margin: 0;
        overflow: hidden;
        border-radius: 20px;
    }

    .dco-location .dco-map iframe {
        display: block;

        width: 100% !important;
        height: 100% !important;

        min-width: 0;
        max-width: 100%;

        border: 0;
    }

}

/* MÓVILES PEQUEÑOS */

@media (max-width: 359px) {

    .dco-location .dco-location-copy h2 {
        font-size: 32px;
    }

    .dco-location .dco-map {
        height: 290px;
        min-height: 290px;
    }

}/* End custom CSS */