/* IMAGEN SCALA */

.media-frame {
  width: 100%;
  height: auto;
  position: relative;
}

.media-frame img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* Capa que recorta y cubre la imagen. */
.media-frame__cover {
  width: 100%;
  height: 100%;
  position: absolute;
  overflow: hidden;
}

.media-frame__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.5s;
}

.media-frame:hover .media-frame__cover img {
  transform: scale(1.1);
}







/* ========================================
   PRESENTACIÓN TEXTO + FOTO
======================================== */

.box-presentation {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  position: relative;
}

.box-presentation__content {
  width: calc(100% - 460px);
  display: flex;
  flex-wrap: wrap;
  padding: 0px 5% 0px 15%;
  transition: 0.5s;
}

.box-presentation__media {
  width: 460px;
  height: auto;
  position: relative;
}

.box-presentation.border-left::after {
  content: "";
  position: absolute;
  top: 0;
  left: 10%;
  height: 100%;
  border-left: 6px solid var(--color-grey-lineal);
}


@media (min-width: 0px) and (max-width: 1200px) {
  .box-presentation__content {
    width: calc(100% - 400px);
  }
  .box-presentation__media {
    width: 400px;
  }
  .box-presentation__content {
    padding: 0px 5% 0px 5%;
  }
  .border-left {
    padding-left: 16px;
  }
  .box-presentation.border-left::after {
    left: 0%;
    border-left: 6px solid var(--color-grey-lineal);
  }
}

@media (min-width: 0px) and (max-width: 900px) {
  .box-presentation__content,
  .box-presentation__media {
    width: 100%;
  }
  .box-presentation__media-padding {
    padding-top: clamp(32px, 5vw, 64px);
  }
  .box-presentation__content {
    padding: 0px;
  }
   .border-left {
    padding-left: 32px;
  } 
  .padding16{
    padding: 16px 16px 0px 16px;
  }
}





/* ========================================
  BOTON
======================================== */
.button-link{
  background-color: var(--color-white);
  border: 2px solid var(--color-black);
  color: var(--color-black);
}
.button-link-black{
  background-color: var(--color-black);
  border: 2px solid var(--color-black);
  color: var(--color-white);
}

.button-link-black,
.button-link {
  width: auto;
  display: flex;
  align-items: center;
  font-family: var(--font-regular);
  font-size: 16px;
  padding: 10px 20px;
  transition: 0.5s;
  text-transform: uppercase;
}
.button-link-black__text,
.button-link__text {
  letter-spacing: 1px;
}

.button-link-black__icon,
.button-link__icon {
  width: 0;
  overflow: hidden;
  transition: 0.5s;
  padding-left: 0px;
}

.button-link-black:hover .button-link-black__icon,
.button-link:hover .button-link__icon {
  width: 25px;
  padding-left: 8px;
}










/*---------------------------------*/
/* ------------------ reveal */
/*---------------------------------*/

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.35s ease-out, transform 0.35s ease-out;
  visibility: hidden;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}

.reveal.exit-up {
  opacity: 0;
  transform: translateY(-24px);
}



/* =================================================== */

/*------------------BOTON GENERAL - fondo blanco*/

.icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.45s cubic-bezier(.4, 0, .2, 1),
    opacity 0.45s cubic-bezier(.4, 0, .2, 1);
}

.icon svg {
  width: 20px;
  stroke: var(--color-white);
  fill: none;
  transition: 0.5s;
}


/* ===== TEXTO de botón ===== */

.general-animated-button p::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 100%;
  height: 1.5px;
  top: 30px;
  background-color: var(--color-black);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s ease;
}

.general-animated-button:hover p::before {
  transform: scaleX(1);
  transform-origin: left;
}





/* =========================
   SCROLLBAR GLOBAL
========================= */

/* Chrome, Edge, Brave */
::-webkit-scrollbar {
  width: 10px;
}

::-webkit-scrollbar-track {
  background: var(--color-white);
}

::-webkit-scrollbar-thumb {
  background: var(--color-black);
  border-radius: 10px;
  border: 2px solid var(--color-white);
  transition: .3s ease;
}

/* Hover */
::-webkit-scrollbar-thumb:hover {
  background: #333;
}

/* Firefox */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--color-black) var(--color-white);
}


/* =====================================================
   ANIMACIONES EXTRA (cursor y fotos al hacer scroll)
   Las clases las añade js/jsall.js
===================================================== */

/* Fotos que se descubren al entrar en pantalla (solo la primera vez) */
.anim-media {
  clip-path: inset(14% 0 0 0);
  transition: clip-path 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.anim-media.is-in {
  clip-path: inset(0 0 0 0);
}

/* Cursor que sigue al ratón (solo ordenador) */
.henkan-cursor {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 34px;
  height: 34px;
  margin: -17px 0 0 -17px;
  border: 1px solid #fff;
  border-radius: 50%;
  pointer-events: none;
  mix-blend-mode: difference;
  opacity: 0;
  transition: opacity 0.3s ease, width 0.3s ease, height 0.3s ease, margin 0.3s ease, background-color 0.3s ease;
}

.henkan-cursor.is-visible {
  opacity: 1;
}

.henkan-cursor.is-hover {
  width: 70px;
  height: 70px;
  margin: -35px 0 0 -35px;
  background-color: #fff;
}

.henkan-cursor.is-hidden {
  opacity: 0;
}

@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
  .henkan-cursor {
    display: none;
  }

  .anim-media {
    clip-path: none;
    transition: none;
  }
}


/* PÁGINAS DE TEXTO (avís legal, privacitat, cookies) — plantilla page.php */
.legal-page {
    width: 100%;
    max-width: 820px;
    margin: 0 auto;
    padding-top: 60px;
}

.legal-page__title {
    font-size: clamp(34px, 4vw, 56px);
}

.legal-page__date {
    padding-bottom: 32px;
    color: var(--color-grey-black);
    font-size: 14px;
}

.legal-page__content h2 {
    padding-top: 32px;
    font-size: clamp(22px, 2vw, 28px);
}

.legal-page__content h3 {
    padding-top: 16px;
    font-size: 20px;
}

.legal-page__content p,
.legal-page__content li {
    color: var(--color-p);
    font-size: 16px;
    line-height: 1.7;
}

.legal-page__content ul {
    margin: 8px 0 16px;
    padding-left: 20px;
    list-style: disc;
}

.legal-page__content li {
    padding: 3px 0;
}

.legal-page__content a {
    color: var(--color-black);
    text-decoration: underline;
}

.legal-page__content mark {
    padding: 0 4px;
    background-color: #fff1b8;
    color: var(--color-black);
}

.legal-page__content table {
    width: 100%;
    margin: 16px 0;
    border-collapse: collapse;
    font-size: 15px;
}

.legal-page__content th,
.legal-page__content td {
    padding: 10px 8px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    color: var(--color-p);
    text-align: left;
    vertical-align: top;
}

.legal-page__content th {
    color: var(--color-black);
    font-family: var(--font-regular);
    font-weight: normal;
}

@media (max-width: 600px) {
    .legal-page {
        padding-top: 24px;
    }

    .legal-page__content table {
        display: block;
        overflow-x: auto;
        font-size: 13px;
    }
}
