/* DS4 Custom 1.0 — never alter theme templates or WPBakery content. */
/* No petals on the Home: the site uses pine and ocean, not a cherry tree. */
body.ds4c-no-home-petals .home-hero .ds4-petals, .home-hero .ds4-petals[hidden]{display:none!important}
.home-hero .hero-art{isolation:isolate}
.home-hero .hero-art .ds4c-water{position:absolute;inset:auto 1% 1% 6%;width:90%;height:39%;z-index:2;pointer-events:none;transform-origin:50% 70%;opacity:.36;will-change:transform}
.home-hero .ds4c-water img{width:100%;height:100%;display:block;object-fit:contain;object-position:center;mix-blend-mode:multiply}
@keyframes ds4c-water-drift{0%,100%{transform:translate3d(-3px,2px,0) rotate(-.15deg)}50%{transform:translate3d(4px,-2px,0) rotate(.15deg)}}
.home-hero .ds4c-water.ds4c-css-motion{animation:ds4c-water-drift 12s ease-in-out infinite}
@media(max-width:760px){.home-hero .hero-art .ds4c-water{width:87%;left:7%;bottom:3%;height:36%;opacity:.24}}
@media(prefers-reduced-motion:reduce){.home-hero .ds4c-water{animation:none!important;will-change:auto!important}}


/* DS4 panoramic hero: reusable on every WPBakery page; no hardcoded page slug. */
.ds4c-fullhero{position:relative;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);min-height:var(--ds4c-hero-height,800px);overflow:hidden;isolation:isolate;color:#0B1F3A;background:#FAF8F4}
.ds4c-fullhero__visual{position:absolute;inset:0;background-image:var(--ds4c-bg-url);background-size:cover;background-position:var(--ds4c-bg-position);z-index:-2}
.ds4c-fullhero__overlay{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(250,248,244,.97) 0%,rgba(250,248,244,.92) 22%,rgba(250,248,244,.70) 39%,rgba(250,248,244,.26) 57%,transparent 77%)}
.ds4c-overlay-medium .ds4c-fullhero__overlay{background:linear-gradient(90deg,#FAF8F4 0%,rgba(250,248,244,.95) 29%,rgba(250,248,244,.48) 58%,transparent 82%)}
.ds4c-overlay-strong .ds4c-fullhero__overlay{background:linear-gradient(90deg,#FAF8F4 0%,rgba(250,248,244,.99) 36%,rgba(250,248,244,.68) 62%,transparent 95%)}
.ds4c-overlay-none .ds4c-fullhero__overlay{display:none}
.ds4c-fullhero__container{width:min(1440px,100%);min-height:var(--ds4c-hero-height,800px);padding:100px 45px;margin:auto;display:grid;grid-template-columns:90px minmax(0,650px) 1fr;align-items:center;gap:32px;box-sizing:border-box}
.ds4c-fullhero__aside{align-self:center;display:flex;align-items:center;flex-direction:column;gap:23px;max-width:82px}
.ds4c-fullhero__kanji{font-family:serif;font-size:43px;line-height:1.12;writing-mode:vertical-rl;letter-spacing:9px}
.ds4c-fullhero__rule{width:1px;height:90px;background:#A7B9BE}
.ds4c-fullhero__aside small{font-size:9px;letter-spacing:2px;line-height:1.7;max-width:85px;text-transform:uppercase;text-align:center}
.ds4c-fullhero__copy{min-width:0;max-width:650px}
.ds4c-fullhero__eyebrow{font:600 11px/1.5 Arial,sans-serif;letter-spacing:3px;margin-bottom:23px;color:#173954}
.ds4c-fullhero__copy h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(42px,4.4vw,70px);line-height:1.06;letter-spacing:-1.7px;margin:0 0 24px;color:#0B1F3A}
.ds4c-fullhero__copy h1 span{display:block}
.ds4c-fullhero__copy p{font:400 clamp(16px,1.25vw,20px)/1.55 Arial,sans-serif;color:#4E5E69;max-width:510px;margin:0 0 27px}
.ds4c-fullhero__actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px}
.ds4c-fullhero__actions a{text-decoration:none!important;font:600 14px/1.3 Arial,sans-serif}
.ds4c-fullhero__primary{display:inline-flex;justify-content:space-between;align-items:center;gap:38px;padding:17px 24px;background:#13839A;color:#fff!important;min-width:205px}
.ds4c-fullhero__secondary{color:#0B1F3A!important;border-bottom:1px solid #688A9A;padding-bottom:5px}
.ds4c-fullhero.ds4c-motion-entrance .ds4c-fullhero__visual{animation:ds4c-entry-zoom 1.65s ease-out both}
@keyframes ds4c-entry-zoom{from{transform:scale(1.035)}to{transform:scale(1)}}
@media(max-width:900px){.ds4c-fullhero,.ds4c-fullhero__container{min-height:650px}.ds4c-fullhero__container{padding:65px 24px;grid-template-columns:55px minmax(0,1fr);gap:18px}.ds4c-fullhero__aside{max-width:55px}.ds4c-fullhero__kanji{font-size:33px}.ds4c-fullhero__copy h1{font-size:clamp(36px,6vw,58px)}.ds4c-fullhero__overlay{background:linear-gradient(90deg,#FAF8F4 0%,rgba(250,248,244,.93) 48%,rgba(250,248,244,.30) 100%)}}
@media(max-width:600px){.ds4c-fullhero,.ds4c-fullhero__container{min-height:680px}.ds4c-fullhero__container{padding:55px 21px;display:block}.ds4c-fullhero__aside{display:none}.ds4c-fullhero__copy{padding-top:40px}.ds4c-fullhero__copy h1{font-size:clamp(35px,10vw,48px);letter-spacing:-.7px}.ds4c-fullhero__eyebrow{font-size:9px;letter-spacing:1.6px}.ds4c-fullhero__overlay,.ds4c-overlay-medium .ds4c-fullhero__overlay,.ds4c-overlay-strong .ds4c-fullhero__overlay{display:block;background:linear-gradient(180deg,rgba(250,248,244,.97) 0%,rgba(250,248,244,.92) 57%,rgba(250,248,244,.46) 100%)}.ds4c-fullhero__visual{background-position:66% center}.ds4c-fullhero__actions{gap:18px}}
@media(prefers-reduced-motion:reduce){.ds4c-fullhero.ds4c-motion-entrance .ds4c-fullhero__visual{animation:none}}


/* 1.2 · Movimiento de agua por instancia, reutilizable en cualquier página.
   No altera la ilustración original. La máscara oculta cualquier efecto fuera del agua. */
.ds4c-fullhero__water{position:absolute;inset:0;z-index:-2;pointer-events:none;
 background-image:var(--ds4c-bg-url);background-size:cover;background-position:var(--ds4c-bg-position);
 -webkit-mask-image:linear-gradient(to bottom,transparent 0%,transparent 67%,rgba(0,0,0,.3) 77%,#000 97%);
 mask-image:linear-gradient(to bottom,transparent 0%,transparent 67%,rgba(0,0,0,.3) 77%,#000 97%);
 opacity:.8;will-change:transform;transform:translate3d(0,0,0)}
.ds4c-fullhero__water--asset{background-image:var(--ds4c-water-url);background-size:cover;
 -webkit-mask-image:none;mask-image:none;opacity:1}
@keyframes ds4c-water-shimmer{0%,100%{transform:translate3d(-2px,0,0)}50%{transform:translate3d(3px,-2px,0)}}
.ds4c-fullhero.ds4c-water-on .ds4c-fullhero__water{animation:ds4c-water-shimmer 11s ease-in-out infinite}
.ds4c-fullhero.ds4c-water-medium .ds4c-fullhero__water{animation-duration:8s}
@media(max-width:600px){.ds4c-fullhero__water{opacity:.48}}
@media(prefers-reduced-motion:reduce){.ds4c-fullhero__water{animation:none!important;will-change:auto!important}}

/* DS4 1.3: multi-image slider reusable across pages. Text and overlay stay fixed. */
.ds4c-fullhero__slider{overflow:hidden}
.ds4c-fullhero__slide{position:absolute;inset:0;background-position:var(--ds4c-bg-position);background-size:cover;opacity:0;transition:opacity var(--ds4c-slide-duration,1.6s) ease-in-out;will-change:opacity}
.ds4c-fullhero__slide.is-active{opacity:1;z-index:1}
.ds4c-transition-fadezoom .ds4c-fullhero__slide{transform:scale(1.025);transition:opacity var(--ds4c-slide-duration,1.6s) ease-in-out,transform 9s ease-out}
.ds4c-transition-fadezoom .ds4c-fullhero__slide.is-active{transform:scale(1)}
@media(prefers-reduced-motion:reduce){.ds4c-fullhero__slide{transition:none!important;transform:none!important}}

/* 1.3.1: slider first-frame is visible without JS; no extra water mask on slides. */
.ds4c-fullhero__slider{z-index:-2;transform:none!important;animation:none!important}
.ds4c-fullhero__slider .ds4c-fullhero__slide{background-repeat:no-repeat}
.ds4c-fullhero__slider .ds4c-fullhero__slide:first-child{opacity:1}
.ds4c-fullhero__slider .ds4c-fullhero__slide:not(.is-active){opacity:0}
@media(max-width:600px){.ds4c-fullhero__slider .ds4c-fullhero__slide{background-position:66% center}}

/* DS4 1.4 — Ambient mist: refined, reusable, independent of the background slider.
   No petals, no glitter, no added motifs. Motion stays out of the editorial copy. */
.ds4c-fullhero{isolation:isolate}
.ds4c-fullhero .ds4c-ambient{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:layout paint}
.ds4c-fullhero .ds4c-fullhero__container{position:relative;z-index:2}
.ds4c-fullhero .ds4c-fullhero__overlay{z-index:0}
.ds4c-fullhero .ds4c-fullhero__visual{z-index:-2}
.ds4c-ambient__mote{
  position:absolute;left:var(--x);top:var(--y);width:var(--size);height:calc(var(--size) * .48);
  border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse at center,rgba(180,210,213,.11) 0%,rgba(192,214,218,.045) 40%,transparent 72%);
  filter:blur(12px);
  animation:ds4c-mist-drift var(--duration) ease-in-out var(--delay) infinite;
  will-change:transform,opacity;
}
@keyframes ds4c-mist-drift{
  0%,100%{opacity:0;transform:translate3d(-16px,8px,0) scale(.94)}
  19%{opacity:.50}
  48%{opacity:.82;transform:translate3d(18px,-12px,0) scale(1.08)}
  81%{opacity:.28}
}
@media(max-width:700px){.ds4c-ambient__mote{filter:blur(10px);opacity:0;animation-duration:calc(var(--duration) * 1.2)}}
@media(prefers-reduced-motion:reduce){.ds4c-ambient{display:none!important}.ds4c-ambient__mote{animation:none!important}}


/* DS4 1.4.1 — Heroes responsive: overlay legible sin blanquear las ilustraciones.
   Afecta solamente tablet y teléfono. No cambia desktop ni el HTML.
   El shader de ds4-hero-animations continúa usando sus propios parámetros responsive. */
@media (min-width: 601px) and (max-width: 1024px) {
  .ds4c-fullhero:not(.ds4c-overlay-none) .ds4c-fullhero__overlay {
    background: linear-gradient(90deg,
      rgba(250,248,244,.94) 0%,
      rgba(250,248,244,.83) 24%,
      rgba(250,248,244,.48) 46%,
      rgba(250,248,244,.12) 67%,
      rgba(250,248,244,0) 86%);
  }
  .ds4c-fullhero .ds4c-ambient__mote {filter:blur(11px)}
}
@media (max-width: 600px) {
  /* El texto queda protegido arriba; la ilustración recupera contraste abajo. */
  .ds4c-fullhero:not(.ds4c-overlay-none) .ds4c-fullhero__overlay {
    background: linear-gradient(180deg,
      rgba(250,248,244,.91) 0%,
      rgba(250,248,244,.85) 25%,
      rgba(250,248,244,.62) 43%,
      rgba(250,248,244,.24) 58%,
      rgba(250,248,244,0) 75%);
  }
  /* Respeta también la opción "Sin overlay" elegida en WPBakery. */
  .ds4c-fullhero.ds4c-overlay-none .ds4c-fullhero__overlay {display:none}
  /* Capas ambientales más delicadas en pantalla pequeña. */
  .ds4c-fullhero .ds4c-ambient__mote {filter:blur(9px)}
  .ds4c-fullhero.ds4c-water-on .ds4c-fullhero__water {animation-duration:15s}
  .ds4c-fullhero.ds4c-water-medium .ds4c-fullhero__water {animation-duration:12s}
}

/* DS4HA 1.0.1 — fundido de entrada del canvas WebGL sobre la imagen estática */
.ds4ha-layer{opacity:0;transition:opacity .6s ease}
.ds4ha-layer[data-ds4ha-ready]{opacity:1}
@media(prefers-reduced-motion:reduce){.ds4ha-layer{transition:none!important}}
